{"version":3,"sources":["redux/reducers/index.js","redux/reducers/bookingReducer.js","redux/reducers/filterReducer.js","redux/reducers/settingsReducer.js","redux/reducers/localeReducer.js","components/Coliving/Amenities.js","components/Coliving/Amenity.js","../ui-common/http.js","../locales/index.js","../locales/en.js","../locales/pl.js","../locales/lt.js","../ui-common/components/Toast/Toast.js","../ui-common/utils.js","../ui-common/hooks.js","../ui-common/customMomentLocales.js","components/Coliving/DatePickers.js","../ui-common/components/Button/Button.js","../ui-common/components/Container/Container.js","../ui-common/components/HeaderMessage/HeaderMessage.js","../ui-common/components/GoogleMap/GoogleMap.js","redux/actions/localeActions.js","../ui-common/components/Header/Header.js","../ui-common/components/Footer/img/visa_logo.png","../ui-common/components/Footer/Footer.js","../ui-common/components/Footer/img/master_card_logo.png","../ui-common/components/ColivingCard/ColivingCard.js","../ui-common/components/ColivingDetail/ColivingDetail.js","../ui-common/components/LanguagePicker/LanguagePicker.js","pages/Coliving/components/Banner.js","../ui-common/components/Icon/Clear.js","../ui-common/components/Icon/GalleryLeft.js","../ui-common/components/Icon/GalleryRight.js","pages/Coliving/components/BookingCard.js","pages/Coliving/components/Bookings.js","pages/Coliving/components/BookingExpired.js","pages/Coliving/components/BookingSummary.js","pages/Coliving/components/CheckoutSummary.js","pages/Coliving/components/DateFilter.js","pages/Coliving/components/ServiceCard.js","pages/Coliving/components/Services.js","pages/Coliving/components/PhoneInput.js","pages/Coliving/components/ColivingUpgrade.js","pages/Coliving/ColivingBookings.js","../schemas/coliving/checkout.js","pages/Coliving/components/CheckOutInputsForm/selectInputOptions.js","pages/Coliving/components/CheckOutInputsForm/CheckOutInputsForm.js","pages/Coliving/ColivingCheckout.js","../../@shared/services/checkout.js","pages/Coliving/ColivingDetails.js","pages/Coliving/ColivingList.js","pages/Coliving/Order.js","components/Router/ScrollToTop.js","components/Router/Router.js","components/Coliving/HeaderMessages.js","components/Coliving/ProductImages.js","components/Coliving/ProductOptions.js","components/Coliving/Progress.js","components/Coliving/QuantitySelector.js","../schemas/coliving/requestForm.js","components/Coliving/RequestSubmitDialog.js","components/Coliving/DatePicker.js","components/Coliving/TermsAndConditionsConfirmDialog.js","components/Coliving/FormAutocomplete.js","components/Coliving/FormSelect.js","pages/Privacy/Privacy.js","pages/Terms/Terms.js","pages/Covid/Covid.js","components/Layout/Layout.js","http.js","redux/actions/settingsActions.js","components/App/App.js","components/Navigation/NavigationItem.js","components/Navigation/NavigationLogo.js","components/Navigation/Navigation.js","../ui-common/serviceWorker.js","../ui-common/theme/index.js","index.js","redux/configureStore.js"],"names":["combineReducers","booking","state","arguments","length","undefined","action","type","_objectSpread","id","filter","_defineProperty","data","pathname","search","settings","locale","payload","Amenities","_ref","_ref$amenities","amenities","max","large","classes","useStyles","list","slice","_jsx","className","container","children","map","amenity","i","Amenity","concat","makeStyles","theme","display","alignItems","flexWrap","margin","spacing","_jsxs","inner","background","image","imageId","src","img","label","title","width","padding","breakpoints","up","flexDirection","backgroundColor","palette","custom","height","marginBottom","maxWidth","whiteSpace","overflow","textOverflow","textAlign","fontSize","_get","_asyncToGenerator","_regeneratorRuntime","mark","_callee","url","options","_args","wrap","_context","prev","next","request","method","abrupt","sent","stop","apply","_post","_callee2","_args2","_context2","_put","_callee3","_args3","_context3","_DELETE","_callee4","_args4","_context4","_x8","_x9","_x10","_request","_callee5","body","extraHeaders","res","_context5","JSON","stringify","fetch","headers","get","includes","json","ok","_x","post","_x2","_x3","put","_x4","_x5","delete","_x6","_x7","en","pl","lt","toastBody","justifyContent","icon","marginLeft","marginRight","text","flex","Toast","Icon","ErrorIcon","CheckCircle","dic","tr","key","useTranslation","useSelector","_locales$locale","translation","locales","useI18n","obj","_obj$locale","fallback","toast","value","opts","alert","status","Error","message","statusText","alertFinal","isError","isWarning","css","borderRadius","closeButton","showToast","TYPE","ERROR","WARNING","SUCCESS","hideProgressBar","position","autoClose","usePageFilter","history","useHistory","_useSelector3","params","qs","location","_useState","useState","_useState2","_slicedToArray","setPageFilter","_useState3","_useState4","initial","setInitial","debouncedUpdate","useCallback","debounce","replace","useEffect","language","setFilter","page","handleChangeFilter","e","target","name","handleChangeOptions","handleChangePage","handleChangePageSize","pageSize","resetFilter","isFilterStateInitial","setFilterStateInitial","useRecords","path","triggers","preventFetch","_useState19","_useState20","records","setRecords","recordsFetch","controller","signal","inProgress","fetchRecords","_fetchRecords","http","then","catch","instantFetch","abort","AbortController","debouncedFetch","useDetails","_useState21","_useState22","details","setDetails","_useState23","_useState24","isLoading","setIsLoading","fetchDetails","_fetchDetails","some","trigger","useSessionState","defaultValue","_useState25","parse","sessionStorage","getItem","_useState26","setState","setItem","useSettings","reservationDates","minDuration","minimumDuration","openingDate","closingDate","from","moment","isAfter","to","googleMapsAPIKey","headerText","headerLinkTo","headerLinkText","bookingConfirmationHeaderText","bookingConfirmationLeftText","bookingConfirmationRightText","bookingFailureLeftText","bookingFailureRightText","privacyPolicy","termsAndConditions","i18n","paymentGatewaySettings","currencySymbol","currencyCode","credentials","isUpgradesEnabled","languages","visibleCheckOutFormInputs","universities","faculties","sourceOfDiscoveryOptions","months","split","monthsShort","weekdays","weekdaysShort","weekdaysMin","longDateFormat","LT","LTS","L","LL","LLL","LLLL","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","this","day","sameElse","relativeTime","future","past","s","ss","m","mm","h","hh","d","dd","M","MM","y","yy","ordinal","number","week","dow","doy","ordinalParse","customLocale","localeData","customLocales","DateComponent","pickerProps","boxes","format","inputRef","onClick","onKeyDown","placeholder","props","box","InputBase","date","readOnly","input","getAvailabilityDates","productId","rangeFrom","FROM","TO","RANGE_FROM","_yield$http$post","toISOString","products","DatePickers","_ref2","dates","setDates","updateLocale","thisMoment","startOfMonth","startOf","endOfMonth","endOf","anchorElRef","useRef","anchorEl","setAnchorEl","availabilityDates","setAvailabilityDates","_useState5","_useState6","availabilityRange","setAvailabilityRange","t0","selected","handleDateClose","handleDateOpen","prop","handleDateChange","datetime","diff","add","subtract","handleMonthChange","getBoolean","checkedDay","getDayElement","selectedDate","isInCurrentMonth","specificDays","today","Date","disabledDays","availableCheckIn","availableCheckOut","Number","getDisabledDates","isDisabled","isSelected","isToday","isPastDays","specificSelectedDayPaper","Paper","selectedDayPaper","specificDaysTodayPaper","specificDaysNormalDayPaper","Grid","item","daysHover","getDate","todayPaper","normalDayPaper","pastDays","notInThisMonthDayPaper","style","MuiPickersUtilsProvider","utils","MomentUtils","ref","pickers","DatePicker","disableToolbar","variant","autoOk","minDate","maxDate","TextFieldComponent","onChange","onClose","onOpen","renderDay","onMonthChange","PopoverProps","current","separator","_box","border","borders","down","fontFamily","color","primary","dark","fontWeight","lineHeight","cursor","borderColor","main","boxShadow","Button","wide","third","MaterialButton","disableRipple","button","textTransform","textDecoration","opacity","Container","MaterialContainer","HeaderMessage","classCSS","_Fragment","Link","link","AnyReactComponent","transform","GoogleMap","coordinates","_ref$zoom","zoom","lat","lng","coords","isNaN","GoogleMapReact","bootstrapURLKeys","defaultCenter","defaultZoom","console","warn","changeLocale","AppLogo","logo","alt","CountDown","timer","Tagline","content","tagline","Header","_ref3","dispatch","useDispatch","bookingId","setBooking","timerRef","setTimer","bookingExpired","setBookingExpired","_useSettings","i18nSettings","_usePageFilter","expiresAt","expired","window","substring","lastIndexOf","test","localExpiresAt","toDate","isMounted","_id","setInterval","now","difference","clearInterval","seconds","hours","Math","floor","minutes","AppBar","header","workationButton","hiddenSm","href","aside","LanguagePicker","shoppingCartContainer","component","shoppingCart","timerIcon","ShoppingCart","timerText","_header","_inner","_tagline","_aside","_hiddenMd","paddingTop","paddingBottom","borderBottom","maxHeight","marginTop","borderLeft","flexGrow","hiddenMd","PaymentLogo","visa","Links","TextArea","document","querySelectorAll","textArea","forEach","element","webkitAppearance","outline","TextareaAutosize","spellCheck","Footer","footer","_footer","bottom","borderTop","minWidth","resize","ColivingCardPrice","pricePerDay","pricePerDayAfterDiscount","Typography","price","currency","textDecorationLine","ColivingCard","coliving","summary","isPriceVisible","isOnlyInquired","available","dataLayer","push","ecommerce","event","items","item_id","item_name","discount","quantity","Card","card","disabled","CardActionArea","area","CardMedia","media","maxDuration","xs","isMinDurationValid","durationType","isMaxDurationValid","CardContent","gutterBottom","dangerouslySetInnerHTML","__html","_nthChildN","_prop","borderTopColor","alignSelf","light","float","paddingLeft","ColivingDetail","queryString","URLSearchParams","Select","lang","MenuItem","toUpperCase","Banner","banner","note","Clear","SvgIcon","fill","IconLeft","GalleryRight","BookingCard","_product$i18n$locale","removeReservations","product","productAssetPersonCapacity","productAssetType","productPersonCapacity","reservation","total","totalServices","isDorm","assetType","duration","backgroundImage","info","headline","Table","table","TableBody","TableRow","TableCell","col","section","colSpan","first","align","last","colQTY","sep","row","order","fee","mandatory","removeBox","removeButton","ClearIcon","backgroundSize","backgroundRepeat","backgroundPosition","paddingRight","Bookings","_ref$bookings","bookings","md","alignContent","BookingExpired","error","Summary","totalFees","totalBeds","totalRooms","totalMandatory","discounts","uninvoicedTotal","isInitial","_ref$productsGrouped","productsGrouped","productById","totalUpgrades","bookableProducts","p","upgrade","room","index","_productById$room$pro","_productById$room$pro2","_productById$room$pro3","_productById$room$pro4","_productById$room$pro5","roomsConatiner","rows","_p$mandatoryBookingPr","_productById$p$produc5","_productById$p$produc6","_productById$p$produc7","_productById$p$produc8","mandatoryBookingProducts","_productById$p$produc","_productById$p$produc2","_productById$p$produc3","_productById$p$produc4","subRow","mandatoryType","upgradeType","code","appliedAmount","defaultProps","CheckoutSummary","pricing","_ref$VATLines","VATLines","totalVAT","_pricing$discountWith","discountWithCodeInfo","setProductById","Promise","all","uniq","responses","response","Boolean","keyBy","productVAT","find","v","String","cityTaxProduct","cityTaxVAT","cityTaxPricePerProduct","productIsCityTaxApplied","productMandatoryTotal","reduce","accumulator","percent","toFixed","_VATLines$find","vatPercent","_VATLines$find2","vat","amount","rowQTY","separator2","DateFilter","local","setLocal","_component","_button","actions","services","Services","PhoneInputForm","setFieldValue","errors","handleBlur","touched","required","PhoneInput","containerClass","conteiner","containerStyle","inputStyle","dropdownStyle","searchStyle","inputProps","specialLabel","country","enableSearch","onBlur","phone","FormHelperText","getBookingProductId","_booking$products","_booking$products$fin","b","Recurring","handleAdd","handleRemove","isInCart","Add","qtyIncDec","Remove","Unit","totalInCart","size","ColivingUpgrade","_booking$products2","_booking$products2$fi","handleAddUpgrade","handleRemoveUpgrade","isRecurring","upgradeInCart","CardActions","ColivingBookings","match","setParams","setBookingId","_useDetails","createdAt","totalProducts","updatedAt","orders","upgrades","reservations","ids","_iterator","_step","bookingProductId","indexOf","_createForOfIteratorHelper","n","done","f","finish","updated","getTime","_useState7","_useState8","removeUpgrades","bookingProductIds","_iterator2","_step2","_ref5","_ref4","_ref4$quantity","_ref7","_ref6","useMemo","_products","root","HeaderMessages","Progress","BookingSummary","every","minHeight","Yup","require","checkoutSchema","personSchemaObject","companyField","schema","string","matches","min","email","when","is","stayPurpose","integer","nullable","typeError","universityName","faculty","companySchemaObject","mergedSchema","acceptsTermsConditions","boolean","oneOf","object","shape","defaultSourceOfDiscoveryOptions","defaultUniversities","defaultFaculties","countries","CheckOutInputsForm","_ref$visibleCheckOutF","_ref$props","roomReservation","values","getOptions","studyPurposeValueCondition","_i18n$locale4","_i18n$locale5","_i18n$locale6","_i18n$locale7","_i18n$locale8","_i18n$locale9","_i18n$locale","_i18n$locale2","_i18n$locale3","sm","FormAutocomplete","alias","TextField","fullWidth","FormControl","FormGroup","FormControlLabel","control","Checkbox","company","withAdditionalProps","clearable","FormSelect","_i18n$locale10","_i18n$locale11","adyenBlankConfiguration","environment","clientKey","analytics","enabled","session","sessionData","onPaymentCompleted","result","onError","paymentMethodsConfiguration","hasHolderName","holderNameRequired","billingAddressRequired","ColivingCheckout","_useSessionState2","uuidv4","bookingGuid","setBookingGuid","payseraRequest","setPayseraRequest","discountCode","setDiscountCode","appliedDiscountCode","setAppliedDiscountCode","isAppliedDiscountCodeValid","setAppliedDiscountCodeValidity","_useState9","_useState10","setPricing","_useState11","_useState12","setVATLines","_useState13","_useState14","isOrdered","setIsOrdered","_useState15","_useState16","isAdditionalPaymentStepUsed","setIsAdditionalPaymentStepUsed","_useState17","_useState18","adyenConfiguration","setAdyenConfiguration","adyenPaymentSuccess","setAdyenPaymentSuccess","isBackdropOpen","setBackdropOpen","isAcceptTermsConditions","setIsAcceptTermsConditions","isConfirmModalOpen","setIsConfirmModalOpen","payseraFormRef","_useState27","surname","birthday","companyName","companyCode","companyAddress","companyVATCode","agreeMarketingInfo","preferredCheckInDate","_useState28","customer","setCustomer","calculateTotals","_yield$http$post$data","_yield$http$post$data2","submitForm","_checkout$data","_checkout$data2","_checkout$data3","_checkout$data4","customerPayload","companyPayload","checkout","otherFaculty","otherUniversityName","Object","keys","address","guid","submit","adyenCheckoutSession","config","autopayRequest","handleFormSubmit","_e$data","_e$data2","t1","setSubmitting","handleDiscountCodeInputChange","applyDiscountCode","payseraForm","sign","onAdyenPaymentCompleted","resultCode","onAdyenPaymentError","provider","adyenEnvironment","adyenClientKey","_callee6","_context6","_booking$orders$0$cus","_booking$orders$0$cus2","_booking$orders$0$cus3","_booking$orders$0$cus4","personDetails","_adyenConfiguration$s","_adyenConfiguration$s2","AdyenCheckout","create","mount","checkoutResultUrl","resolve","setTimeout","Formik","enableReinitialize","initialValues","validationSchema","onSubmit","validateOnChange","_ref9","handleChange","helperText","Form","form","Alert","severity","aggrements","chekcbox","checked","htmlFor","TermsAndConditionsConfirmDialog","isOpen","submitAction","Backdrop","backdrop","open","CircularProgress","payment","borderBottomColor","userSelect","zIndex","drawer","handleBookingError","_e$data2$extra","_e$data3","extra","processed","ColivingDetails","_coliving$location","_coliving$location2","_coliving$location3","_coliving$location4","_coliving$location5","_coliving$location6","_coliving$location7","_coliving$location8","_coliving$location9","_coliving$location10","isRequestFormDialogOpen","setIsRequestFormDialogOpen","isRequestConfirmDialogOpen","setIsRequestConfirmDialogOpen","isSent","requestButton","setRequestButon","setSeconds","_useSessionState","_yield$http$get","setQuantity","asset","assetCapacity","assetPersonCapacity","description","images","street","city","gettingThere","perks","personCapacity","productDescription","handleBook","durationInDays","Array","handelRequestFormSubmit","_i","_Object$entries","_Object$entries$_i","interval","preventDefault","entries","_","omit","prevSeconds","back","isDateSelected","isBookingAvailable","BookOrInquiredButton","MuiButton","backButton","ProductImages","ProductOptions","totalDisabled","RequestSubmitDialog","handleClose","handleAction","question","actionLabel","Dialog","DialogContent","DialogActions","log","_Array$from$map$find","textContent","ColivingList","recordsFlat","r","colivings","flat","colivingsSorted","sortBy","Infinity","sortOrder","Order","_details$orders$","_details$orders$2","_match$params","_i18","checkouts","setCheckouts","cumulativeCheckout","setCumulativeCheckout","setUninvoicedTotal","setIsInitial","isPaymentFailed","checkoutResponses","o","c","_toConsumableArray","uninvoicedBookingProducts","purchaseEvent","transactionId","transactionTotal","transactionTax","transactionProducts","sku","category","transaction_id","tax","ScrollToTop","unlisten","listen","scrollTo","propTypes","PropTypes","withRouter","routeColivingOrder","Router","Switch","Route","ColivingOrder","exact","render","useRouteMatch","bannerText","opening","closing","isExact","MemoProductImages","memo","renderItem","renderThumbInner","renderLeftNav","renderRightNav","ImageGallery","showFullscreenButton","showPlayButton","useTranslate3D","showThumbnails","original","thumbnailClass","thumb","thumbInner","nav","left","GalleryLeftIcon","right","GalleryRightIcon","_thumb","_thumbInner","_nav","top","Option","option","Radio","radio","getOption","_ref2$search","setOptions","sort","a","QuantitySelector","pointerEvents","progress","step","_ref$max","parseInt","requestFormSchema","_ref$question","cancelLabel","DialogTitle","setIsOpen","getProps","Fragment","libInstance","KeyboardDatePicker","InputLabelProps","shrink","inputValue","KeyboardButtonProps","onFocus","disableRestoreFocus","InputProps","startAdornment","IconButton","dialogContentRef","isModalActionDisabled","setIsModalActionDisabled","handleScroll","dialogContent","contentHight","scrollHeight","scrollTop","clientHeight","handleCloseDialog","WIDTH","innerWidth","node","onScroll","AutocompleteMaterial","getOptionSelected","clearOnEscape","popupIcon","ExpandMoreIcon","getOptionLabel","renderInput","InputLabel","common","white","Privacy","Terms","sub","Covid","Layout","fetchSettings","_fetchSettings","App","ready","setReady","timezone","useLayoutEffect","tz","setDefault","BrowserRouter","basename","LastLocationProvider","ToastContainer","active","avatar","pointer","flexShrink","overflowX","paper","borderRight","hostname","createTheme","default","typography","h1","h2","h3","h4","h5","body1","body2","overrides","Sentry","dsn","attachStacktrace","beforeSend","integrations","CaptureConsole","levels","store","initialState","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","createStore","reducers","applyMiddleware","reduxImmutableStateInvariant","configureStore","ReactDOM","Provider","ThemeProvider","CssBaseline","getElementById","navigator","serviceWorker","registration","unregister"],"mappings":"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","file":"static/js/main.9f8651d8.chunk.js","sourcesContent":["import { combineReducers } from 'redux';\n// import session from './sessionReducer';\nimport booking from './bookingReducer';\nimport filter from './filterReducer';\nimport settings from './settingsReducer';\nimport locale from './localeReducer';\n\nexport default combineReducers({\n\t// session,\n\tbooking,\n\tfilter,\n\tsettings,\n\tlocale,\n});\n","export default function bookingReducer(state = {}, action) {\r\n\t// console.error('action');\r\n\t// console.log(action);\r\n\r\n\tswitch (action.type) {\r\n\tcase 'BOOKING_UPDATED':\r\n\t\treturn {\r\n\t\t\t...state,\r\n\t\t\tid: action.id,\r\n\t\t\t// ...{ [action.data.pathname]: action.data.search },\r\n\t\t};\r\n\tdefault:\r\n\t\treturn state;\r\n\t}\r\n}\r\n","export default function filterReducer(state = {}, action) {\n\tswitch (action.type) {\n\tcase 'FILTER_UPDATED':\n\t\treturn {\n\t\t\t...state,\n\t\t\t...{ [action.data.pathname]: action.data.search },\n\t\t};\n\tdefault:\n\t\treturn state;\n\t}\n}\n","export default function settingsReducer(state = {}, action) {\n\tswitch (action.type) {\n\tcase 'SETTINGS_UPDATED':\n\t\treturn {\n\t\t\t...state,\n\t\t\t...action.data,\n\t\t};\n\tdefault:\n\t\treturn state;\n\t}\n}\n","export default function localeReducer(state = {}, action) {\n\tswitch (action.type) {\n\tcase 'LOCALE_CHANGED':\n\t\treturn {\n\t\t\t...state,\n\t\t\t...action.payload,\n\t\t};\n\tdefault:\n\t\treturn {\n\t\t\t...state,\n\t\t\tlocale: 'en',\n\t\t};\n\t}\n}\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nimport { Amenity } from '@components/Coliving';\r\n\r\nfunction Amenities({ amenities = [], max, large }) {\r\n\tconst classes = useStyles();\r\n\r\n\tconst list = max ? amenities.slice(0, max) : amenities;\r\n\r\n\treturn (\r\n\t\t<div className={classes.container}>\r\n\t\t\t{list.map((amenity, i) => (\r\n\t\t\t\t<Amenity key={`amenity-${i}`} amenity={amenity} large={large} />\r\n\t\t\t))}\r\n\t\t</div>\r\n\t);\r\n}\r\n\r\nAmenities.propTypes = {\r\n\tamenities: PropTypes.array.isRequired,\r\n\tmax: PropTypes.number,\r\n\tlarge: PropTypes.bool,\r\n};\r\n\r\nexport default Amenities;\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n\tcontainer: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tflexWrap: 'wrap',\r\n\t\tmargin: `0 -${theme.spacing(2)}px`,\r\n\t},\r\n}));\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nfunction Amenity({ amenity, large }) {\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t<div className={`${classes.amenity} ${large ? classes.large : ''}`}>\r\n\t\t\t<div className={`${classes.inner} ${large ? classes.background : ''}`}>\r\n\t\t\t\t<div className={classes.image}>\r\n\t\t\t\t\t{amenity.imageId && <img src={`/images/${amenity.imageId}`} className={classes.img} />}\r\n\t\t\t\t</div>\r\n\t\t\t\t<div className={classes.label}>\r\n\t\t\t\t\t{amenity.title}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n}\r\n\r\nAmenity.propTypes = {\r\n\tamenity: PropTypes.object.isRequired,\r\n\tlarge: PropTypes.bool,\r\n};\r\n\r\nexport default Amenity;\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n\tamenity: {\r\n\t\twidth: '25%',\r\n\t\tpadding: theme.spacing(1),\r\n\t},\r\n\tlarge: {\r\n\t\twidth: '50%',\r\n\t\t[theme.breakpoints.up('sm')]: {\r\n\t\t\twidth: '33.33%',\r\n\t\t},\r\n\t},\r\n\tinner: {\r\n\t\tdisplay: 'flex',\r\n\t\tflexDirection: 'column',\r\n\t\talignItems: 'center',\r\n\t\tpadding: `${theme.spacing(2)}px 0`,\r\n\t},\r\n\tbackground: {\r\n\t\tbackgroundColor: theme.palette.custom.background,\r\n\t\tpadding: `${theme.spacing(2)}px ${theme.spacing(1)}px`,\r\n\t},\r\n\timage: {\r\n\t\twidth: theme.spacing(3),\r\n\t\theight: theme.spacing(3),\r\n\t\tmarginBottom: theme.spacing(1),\r\n\t},\r\n\timg: {\r\n\t\tmaxWidth: '100%',\r\n\t\theight: 'auto',\r\n\t},\r\n\tlabel: {\r\n\t\twhiteSpace: 'nowrap',\r\n\t\twidth: '100%',\r\n\t\toverflow: 'hidden',\r\n\t\ttextOverflow: 'ellipsis',\r\n\t\ttextAlign: 'center',\r\n\t\tfontSize: '14px',\r\n\t},\r\n}));\r\n","\nexport async function get(url, options = {}) {\n\treturn await request(url, undefined, { method: 'GET', ...options });\n}\n\nexport async function post(url, data, options = {}) {\n\treturn await request(url, data, { method: 'POST', ...options });\n}\n\nexport async function put(url, data, options = {}) {\n\treturn await request(url, data, { method: 'PUT', ...options });\n}\n\nexport async function DELETE(url, data, options = {}) {\n\treturn await request(url, data, { method: 'DELETE', ...options });\n}\n\nasync function request(url, data, options) {\n\tlet body = undefined;\n\tconst extraHeaders = {};\n\n\tif (data !== undefined) {\n\t\tbody = JSON.stringify(data);\n\t\textraHeaders['Content-Type'] = 'application/json';\n\t}\n\n\tconst res = await fetch(url, {\n\t\tbody,\n\t\t...options,\n\t\theaders: {\n\t\t\t...extraHeaders,\n\t\t\t...options.headers,\n\t\t},\n\t});\n\n\tif ((res.headers.get('Content-Type') || '').includes('application/json')) {\n\t\tres.data = await res.json();\n\t}\n\n\tif (!res.ok) {\n\t\tthrow res;\n\t}\n\n\treturn res;\n}\n\nexport default {\n\tget,\n\tpost,\n\tput,\n\tdelete: DELETE,\n};\n","import en from './en';\nimport pl from './pl';\nimport lt from './lt';\n\nexport default { en, pl, lt };\n","export default {\n\t'Search': 'Search',\n\t'Back to search': 'Back to search',\n\t'Check in': 'Check in',\n\t'Check Out': 'Check Out',\n\t'Terms and Conditions': 'Terms and Conditions',\n\t'Privacy Policy': 'Privacy Policy',\n\t'Book a co-living space': 'Book a co-living space',\n\t'Minimum duration': 'Minimum duration',\n\t'Maximum duration': 'Maximum duration',\n\t'day': 'day',\n\t'Days': 'Days',\n\t'week': 'week',\n\t'weeks': 'weeks',\n\t'month': 'month',\n\t'months': 'months',\n\t'January': 'January',\n\t'February': 'February',\n\t'March': 'March',\n\t'April': 'April',\n\t'May': 'May',\n\t'June': 'June',\n\t'July': 'July',\n\t'August': 'August',\n\t'September': 'September',\n\t'October': 'October',\n\t'November': 'November',\n\t'December': 'December',\n\t'Minimum stay is': 'Minimum stay is',\n\t'Description': 'Description',\n\t'Free cancellation': 'Free cancellation',\n\t'Location': 'Location',\n\t'Getting here': 'Getting here',\n\t'Add dates for prices': 'Add dates for prices',\n\t'Refine your booking': 'Refine your booking',\n\t'Total': 'Total',\n\t'Inquire': 'Inquire',\n\t'Book Now': 'Book Now',\n\t'Room': 'Room',\n\t'Rooms': 'Rooms',\n\t'Request for availability': 'Request for availability',\n\t'Extras and upgrades': 'Extras and upgrades',\n\t'Extras': 'Extras',\n\t'unit': 'unit',\n\t'remove': 'remove',\n\t'Booking summary': 'Booking summary',\n\t'Checkout': 'Checkout',\n\t'Proceed to checkout': 'Proceed to checkout',\n\t'Need more rooms?': 'Need more rooms?',\n\t'Add Room': 'Add Room',\n\t'We will hold your reservation until you add all rooms you need.': 'We will hold your reservation until you add all rooms you need.',\n\t'person': 'person',\n\t'Amenities': 'Amenities',\n\t'City tax': 'City tax',\n\t'Contact information': 'Contact information',\n\t'Services': 'Services',\n\t'Name': 'Name',\n\t'Last name': 'Last name',\n\t'Email': 'Email',\n\t'Your phone': 'Your phone',\n\t'Country': 'Country',\n\t'Date of birth': 'Date of birth',\n\t'Company': 'Company',\n\t'Company code': 'Company code',\n\t'Company address': 'Company address',\n\t'Company VAT code': 'Company VAT code',\n\t'Have a discount code?': 'Have a discount code?',\n\t'Discount code': 'Discount code',\n\t'Apply': 'Apply',\n\t'I accept': 'I accept',\n\t'and': 'and',\n\t'I agree to get marketing info.': 'I agree to get marketing info.',\n\t'I agree to get marketing info. I may unsubscribe anytime.': 'I agree to get marketing info. I may unsubscribe anytime.',\n\t'Pay': 'Pay',\n\t'Booking details': 'Booking details',\n\t'VAT': 'VAT',\n\t'Total (taxes incl.)': 'Total (taxes incl.)',\n\t'Required': 'Required',\n\t'It appears that this discount code is invalid.': 'It appears that this discount code is invalid.',\n\t'Must be an email': 'Must be an email',\n\t'Discount code applied': 'Discount code applied',\n\t'It is not available during selected dates': 'It is not available during selected dates',\n\t'Request': 'Request',\n\t'Failed reservation': 'Failed reservation',\n\t'There was a problem and we were not able to complete your reservation order. Possible reasons why order failed are,': 'There was a problem and we were not able to complete your reservation order. Possible reasons why order failed are,',\n\t'a billing error caused by your bank': 'a billing error caused by your bank',\n\t'insufficient credit on your account': 'insufficient credit on your account',\n\t'your credit card is expired': 'your credit card is expired',\n\t'booking was cancelled or expired': 'booking was cancelled or expired',\n\t'Total paid': 'Total paid',\n\t'Total due (taxes incl.)': 'Total due (taxes incl.)',\n\t'Check-in': 'Check-in',\n\t'Check-out': 'Check-out',\n\t'Minimum stay duration': 'Minimum stay duration',\n\t'Maximum stay duration': 'Maximum stay duration',\n\t'It seems that your booking has expired, please, start over.': 'It seems that your booking has expired, please, start over.',\n\t'InvalidId': 'InvalidId',\n\t'BookingProductEmptyFromToDates': 'BookingProductEmptyFromToDates',\n\t'InvalidBooking': 'InvalidBooking',\n\t'BookingExpired': 'BookingExpired',\n\t'BookingHasUnavailableProducts': 'BookingHasUnavailableProducts',\n\t'BookingAlreadyCheckedOut': 'BookingAlreadyCheckedOut',\n\t'BookingAlreadyDeleted': 'BookingAlreadyDeleted',\n\t'BookingExpectedAllBookingProductsToHaveReservation': 'BookingExpectedAllBookingProductsToHaveReservation',\n\t'ColivingBookingCheckoutMissingDeliveryMethod': 'ColivingBookingCheckoutMissingDeliveryMethod',\n\t'BookingOneOrMoreProductsUnavailable': 'BookingOneOrMoreProductsUnavailable',\n\t'DurationIsTooShort': 'DurationIsTooShort',\n\t'DurationIsTooLong': 'DurationIsTooLong',\n\t'DurationIsNegativeOrZero': 'DurationIsNegativeOrZero',\n\t'InvalidDate': 'InvalidDate',\n\t'DuplicateOrder': 'DuplicateOrder',\n\t'BookingNothingToInvoice': 'BookingNothingToInvoice',\n\t'InvalidAvailabilityRange': 'InvalidAvailabilityRange',\n\t'InvalidAvailabilityRangeExceedsTwoCalendarMonths': 'InvalidAvailabilityRangeExceedsTwoCalendarMonths',\n\t'MinDurationMustBe1day': 'MinDurationMustBe1day',\n\t'BookingShouldHaveAtLeastOneBookableProduct': 'BookingShouldHaveAtLeastOneBookableProduct',\n\t'PayseraIntegrationDisabled': 'PayseraIntegrationDisabled',\n\t'CheckoutCreationFailed': 'CheckoutCreationFailed',\n\t'CheckoutPriceCalculationFailed': 'CheckoutPriceCalculationFailed',\n\t'NotFound': 'NotFound',\n\t'ValidationError': 'ValidationError',\n\t'Hello there': 'Hello there',\n\t'Your booking has been updated. Please, review the newly added items and proceed with a follow-up payment.': 'Your booking has been updated. Please, review the newly added items and proceed with a follow-up payment.',\n\t'Your booking reservation': 'Your booking reservation',\n\t'Customer': 'Customer',\n\t'Your order online': 'Your order online',\n\t'Added items': 'Added items',\n\t'Beds': 'Beds',\n\t'Quantity': 'Quantity',\n\t'Night': 'Night',\n\t'Book again': 'Book again',\n\t'Booking updated': 'Booking updated',\n\t'Thanks for booking.': 'Thanks for booking.',\n\t'Booking confirmation': 'Booking confirmation',\n\t'Click here to View Order online': 'Click here to View Order online',\n\t'Discount': 'Discount',\n\t'Submit': 'Submit',\n\t'Cancel': 'Cancel',\n\t'Please fill contact form': 'Please fill contact form',\n\t'Add': 'Add',\n\t'Thank you, your inquiry has been received and is being processed. Someone will contact you as soon as possible!': 'Thank you, your inquiry has been received and is being processed. Someone will contact you as soon as possible!',\n\t'Back to main page after': 'Back to main page after',\n\t'seconds': 'seconds',\n\t'Upon arrival': 'Upon arrival',\n\t'Price (taxes incl.)': 'Price (taxes incl.)',\n\t'room': 'room',\n\t'bed': 'bed',\n\t'Nights': 'Nights',\n\t'nights': 'nights',\n\t'We are now accepting reservations': 'We are now accepting reservations',\n};\n","export default {\n\t'Search': 'Szukaj',\n\t'Back to search': 'Wróć do wyszukiwania',\n\t'Check in': 'Zameldowanie',\n\t'Check Out': 'Wymeldowanie',\n\t'Terms and Conditions': 'Warunki',\n\t'Privacy Policy': 'Polityka prywatności',\n\t'Book a co-living space': 'Zarezerwuj miejsce w przestrzeni co-living',\n\t'Minimum duration': 'Minimalny okres',\n\t'Maximum duration': 'Maksymalny okres',\n\t'day': 'dzień',\n\t'night': 'noc',\n\t'Days': 'Dni',\n\t'days': 'dni',\n\t'week': 'tydzień',\n\t'weeks': 'tygodnie',\n\t'month': 'miesiąc',\n\t'months': 'miesiące',\n\t'January': 'styczeń',\n\t'February': 'luty',\n\t'March': 'marzec',\n\t'April': 'kwiecień',\n\t'May': 'maj',\n\t'June': 'czerwiec',\n\t'July': 'lipiec',\n\t'August': 'sierpień',\n\t'September': 'wrzesień',\n\t'October': 'październik',\n\t'November': 'listopad',\n\t'December': 'grudzień',\n\t'Minimum stay is': 'Minimalny okres pobytu to',\n\t'Description': 'Opis',\n\t'Free cancellation': 'Bezpłatne anulowanie',\n\t'Location': 'Lokalizacja',\n\t'Getting here': 'Dojazd',\n\t'Add dates for prices': 'Wybierz daty, aby zobaczyć ceny',\n\t'Refine your booking': 'Zawęź wyszukiwanie',\n\t'Total': 'Razem',\n\t'Inquire': 'Wyślij zapytanie',\n\t'Book Now': 'Zarezerwuj teraz',\n\t'Room': 'Pokój',\n\t'Rooms': 'Pokoje',\n\t'Request for availability': 'Wyślij zapytanie o dostępność',\n\t'Extras and upgrades': 'Usługi dodatkowe i zmiany rezerwacji',\n\t'Extras': 'Usługi dodatkowe',\n\t'unit': 'lokal',\n\t'remove': 'usuń',\n\t'Remove': 'Usuń',\n\t'Booking summary': 'Podsumowanie rezerwacji',\n\t'Checkout': 'Finalizacja zamówienia',\n\t'Proceed to checkout': 'Sfinalizuj rezerwację',\n\t'Need more rooms?': 'Potrzebujesz więcej pokoi?',\n\t'Add Room': 'Dodaj pokoje',\n\t'We will hold your reservation until you add all rooms you need.': 'Wstrzymamy Twoją rezerwację do momentu dodania wszystkich pokoi.',\n\t'person': 'osoba',\n\t'Amenities': 'Udogodnienia',\n\t'City tax': 'Podatek miejski',\n\t'Contact information': 'Dane kontaktowe',\n\t'Services': 'Usługi',\n\t'Name': 'Imię',\n\t'Last name': 'Nazwisko',\n\t'Email': 'Adres e-mail',\n\t'Your phone': 'Numer telefonu',\n\t'Phone': 'Numer telefonu',\n\t'Country': 'Kraj',\n\t'Date of birth': 'Data urodzenia',\n\t'Company': 'Firma',\n\t'Company code': 'Numer identyfikacyjny firmy',\n\t'Company address': 'Adres firmy',\n\t'Company VAT code': 'Numer identyfikacyjny VAT firmy',\n\t'Have a discount code?': 'Czy posiadasz kod zniżkowy?',\n\t'Discount code': 'Kod zniżkowy',\n\t'Apply': 'Zastosuj',\n\t'I accept': 'Wyrażam zgodę',\n\t'and': 'oraz',\n\t'I agree to get marketing info.': 'zgadzam się na otrzymywanie materiałów reklamowych.',\n\t'I agree to get marketing info. I may unsubscribe anytime.': 'Zgadzam się na otrzymywanie materiałów reklamowych. Mam prawo zrezygnować z subskrypcji w każdej chwili.',\n\t'Pay': 'Zapłać',\n\t'Booking details': 'Dane rezerwacji',\n\t'VAT': 'VAT',\n\t'Total (taxes incl.)': 'Razem (w tym podatki)',\n\t'Required': 'Wymagane',\n\t'It appears that this discount code is invalid.': 'Wygląda na to, że podany kod zniżkowy jest nieważny.',\n\t'Must be an email': 'Musi być adresem e-mail',\n\t'Discount code applied.': 'Zastosowano kod zniżkowy.',\n\t'Discount code applied': 'Zastosowano kod zniżkowy',\n\t'It is not available during selected dates': 'Nie jest dostępny w wybranym zakresie dat',\n\t'Request': 'Zapytanie',\n\t'Failed reservation': 'Rezerwacja nie powiodła się',\n\t'There was a problem and we were not able to complete your reservation order. Possible reasons why order failed are,': 'Wystąpił problem i nie udało się dokończyć rezerwacji. Możliwe powody niepowodzenia rezerwacji to:',\n\t'a billing error caused by your bank': 'błąd rozliczeń ze strony banku,',\n\t'insufficient credit on your account': 'niewystarczające środki pieniężne na koncie,',\n\t'your credit card is expired': 'Twoja karta kredytowa straciła ważność,',\n\t'booking was cancelled or expired': 'rezerwacja została anulowana lub wygasła.',\n\t'Total paid': 'Razem zapłacono',\n\t'Total due (taxes incl.)': 'Razem do zapłaty (w tym podatki)',\n\t'Check-in': 'Zameldowanie',\n\t'Check-out': 'Wymeldowanie',\n\t'Check-Out': 'Wymeldowanie',\n\t'Minimum stay duration': 'Minimalny okres pobytu',\n\t'Maximum stay duration': 'Maksymalny okres pobytu',\n\t'It seems that your booking has expired, please, start over.': 'Wygląda na to, że rezerwacja wygasła, prosimy zacząć od nowa.',\n\t'InvalidId': 'NieważnyIdentyfikator:',\n\t'BookingProductEmptyFromToDates': 'ProduktRezerwacjiNieWypełnionoDatOdDo',\n\t'InvalidBooking': 'NieważnaRezerwacja',\n\t'BookingExpired': 'RezerwacjaWygasła',\n\t'BookingHasUnavailableProducts': 'RezerwacjaZawieraNiedostępneProdukty',\n\t'BookingAlreadyCheckedOut': 'RezerwacjaZostałaJużOpłacona',\n\t'BookingAlreadyDeleted': 'RezerwacjaZostałaJużAnulowana',\n\t'BookingExpectedAllBookingProductsToHaveReservation': 'OczekiwanieNaRezerwacjęWszystkieRezerwowaneProduktyMusząByćObjęteRezerwacją',\n\t'ColivingBookingCheckoutMissingDeliveryMethod': 'FinalizacjaRezerwacjiPrzestrzeniColivingBrakMetodyDostarczenia',\n\t'BookingOneOrMoreProductsUnavailable': 'RezerwacjaNiedostępnyJedenLubWięcejProduktów',\n\t'DurationIsTooShort': 'PobytJestZbytKrótki',\n\t'DurationIsTooLong': 'PobytJestZbytDługi',\n\t'DurationIsNegativeOrZero': 'PobytToLiczbaUjemnaLubZero',\n\t'InvalidDate': 'NieprawidłowaData',\n\t'DuplicateOrder': 'DuplikatZamówienia',\n\t'BookingNothingToInvoice': 'RezerwacjaBrakElementówDoOpłacenia',\n\t'InvalidAvailabilityRange': 'NieprawidłowyZakresDostępności',\n\t'InvalidAvailabilityRangeExceedsTwoCalendarMonths': 'NieprawidłowyZakresDostępnościPrzekraczaDwaMiesiąceKalendarzowe',\n\t'MinDurationMustBe1day': 'MinimalnyOkresWynosi1Dzień',\n\t'BookingShouldHaveAtLeastOneBookableProduct': 'RezerwacjaPowinnaZawieraćCoNajmniejJedenMożliwyDoZarezerowaniaProdukt',\n\t'PayseraIntegrationDisabled': 'IntegracjaZSystememPayseraWyłączona',\n\t'CheckoutCreationFailed': 'NiepowodzenieWygenerowaniaStronyPłatności',\n\t'CheckoutPriceCalculationFailed': 'NiepowodzenieWyliczeniaCenyDoZapłaty',\n\t'NotFound': 'NieZnaleziono',\n\t'ValidationError': 'BłądWeryfikacji',\n\t'Hello there': 'Witamy',\n\t'Your booking has been updated. Please, review the newly added items and proceed with a follow-up payment.': 'Twoja rezerwacja została zaktualizowana. Prosimy sprawdzić nowo dodane pozycje i dokonać dodatkowej płatności.',\n\t'Your booking reservation': 'Twoja rezerwacja',\n\t'Customer': 'Klient',\n\t'Your order online': 'Twoje zamówienie online',\n\t'Added items': 'Dodane pozycje',\n\t'Beds': 'Łóżka',\n\t'Quantity': 'Liczba',\n\t'Night': 'Noc',\n\t'Book again': 'Zarezerwuj ponownie',\n\t'Booking updated': 'Rezerwacja zaktualizowana',\n\t'Thanks for booking.': 'Dziękujemy za dokonanie rezerwacji.',\n\t'Booking confirmation': 'Potwierdzenie rezerwacji',\n\t'Click here to View Order online': 'Kliknij tutaj, aby zobaczyć swoje zamówienie online',\n\t'Discount': 'Zniżka',\n\t'Submit': 'Prześlij',\n\t'Cancel': 'Anuluj',\n\t'Please fill contact form': 'Prosimy uzupełnić formularz kontaktowy',\n\t'Add': 'Dodaj',\n\t'Thank you, your inquiry has been received and is being processed. Someone will contact you as soon as possible!': 'Dziękujemy, otrzymaliśmy Twoje zapytanie i rozpatrujemy je. Skontaktujemy się z Tobą najszybciej, jak to możliwe!',\n\t'Back to main page after': 'Powrót do strony głównej za',\n\t'seconds': 'sekund',\n\t'Accept': 'zaakceptować',\n\t'Reservation removed successfully': 'Rezerwacja została pomyślnie usunięta',\n\t'Your booking expired': 'Twoja rezerwacja wygasła',\n\t'Search for Room': 'Wyszukaj pokój',\n\t'We hold bookings for 15 minutes.': 'Rezerwacje utrzymujemy przez 15 minut.',\n\t'Upon arrival': 'Po przyjeździe',\n\t'Price (taxes incl.)': 'Cena (z podatkami)',\n\t'room': 'pokój',\n\t'bed': 'łóżko',\n\t'Nights': 'Noce',\n\t'nights': 'noce',\n\t'We are now accepting reservations': 'Przyjmujemy już rezerwacje',\n\t'Birthday': 'Urodziny',\n\t'Actual arrival date': 'Rzeczywista data przyjazdu',\n\t'Due today': 'Do zapłaty dzisiaj',\n\t'Deposits': 'Depozyt',\n};\n","export default {\n\t'Search': 'Ieškoti',\n\t'Check in': 'Atvykimas',\n\t'Check Out': 'Išvykimas',\n\t'Terms and Conditions': ' Sąlygos ir Nuostatos',\n\t'Privacy Policy': 'Privatumo politika',\n\t'Book a co-working space': 'Užsisakykite darbo vietą',\n\t'day': 'diena',\n\t'night': 'naktis',\n\t'Days': 'Dienos',\n\t'period': 'periodas',\n\t'week': 'savaitė',\n\t'weeks': 'savaitės',\n\t'month': 'mėnuo',\n\t'months': 'mėnesiai',\n\t'hour': 'valanda',\n\t'Hours': 'Valandos',\n\t'hours': 'valandos',\n\t'days': 'dienos',\n\t'guests': 'svečių', // eg \"100 guests\"\n\t'access to coworking': 'prieiga prie darbo vietų',\n\t'Description': 'Aprašymas',\n\t'Free cancellation': 'Nemokamas atšaukimas',\n\t'Location': 'Lokacija',\n\t'Add dates for prices': 'Pasirinkite datas',\n\t'Total': 'Iš viso',\n\t'Inquire': 'Teirautis',\n\t'Book Now': 'Užsakyti',\n\t'Room': 'Kambarys',\n\t'Request for availability': 'Prašymas dėl prieinamumo',\n\t'Please fill contact form': 'Prašome užpildyti kontaktinę formą',\n\t'Refine your booking': 'Patikslinkite rezervaciją',\n\t'Your booking details': 'Jūsų rezervacijos duomenys',\n\t'Booking summary': 'Užsakymo santrauka',\n\t'Checkout': 'Apmokėjimas',\n\t'Need more rooms?': 'Reikia daugiau kambarių?',\n\t'Add Room': 'Pridėti kambarį',\n\t'Add room': 'Pridėti kambarį',\n\t'We will hold your reservation until you add all rooms you need.': 'Išsaugosime jūsų rezervaciją, kol pridėsite visus jums reikalingus kambarius.',\n\t'Summary': 'Santrauka',\n\t'Services': 'Paslaugos',\n\t'Proceed to checkout': 'Pereiti prie apmokėjimo',\n\t'Check-in': 'Atvykimas',\n\t'Check-out': 'Išvykimas',\n\t'Rooms': 'Kambariai',\n\t'room': 'Kambarys',\n\t'Quantity': 'Trukmė',\n\t'Price (taxes incl.)': 'Kaina (su mokesčiais)',\n\t'remove reservation': 'Pašalinti rezervaciją',\n\t'remove': 'pašalinti',\n\t'Contact information': 'Kontaktinė informacija',\n\t'Name': 'Vardas',\n\t'Last name': 'Pavardė',\n\t'Email': 'El. paštas',\n\t'Your phone': 'Jūsų telefonas',\n\t'Company': 'Įmonė',\n\t'Company code': 'Įmonės kodas',\n\t'Company address': 'Įmonės adresas',\n\t'Company VAT code': 'Įmonės PVM kodas',\n\t'Have a discount code?': 'Turite nuolaidos kodą?',\n\t'Discount code': 'Nuolaidos kodas',\n\t'Apply': 'Taikyti',\n\t'I accept': 'Aš sutinku',\n\t'and': 'ir',\n\t'I agree to get marketing info. I may unsubscribe anytime.': 'Sutinku gauti rinkodaros informaciją. Galėsite bet kada atsisakyti prenumeratos.',\n\t'Pay': 'Mokėti',\n\t'Booking details': 'Rezervacijos informacija',\n\t'VAT': 'PVM',\n\t'Total (taxes incl.)': 'Iš viso (su mokesčiais)',\n\t'Check-Out': 'Išsiregistruoti',\n\t'Required': 'Privalomas',\n\t'Must be an email': 'Turi būti El. paštas',\n\t'It appears that this discount code is invalid.': 'Pasirodo, kad šis nuolaidos kodas neteisingas.',\n\t'Discount code applied': 'Nuolaidos kodas pritaikytas',\n\t'It is not available during selected dates': 'Nepasiekiama pasirinktomis dienomis',\n\t'Request': 'Prašymas',\n\t'Failed reservation': 'Nepavyko rezervuoti',\n\t'There was a problem and we were not able to complete your reservation order. Possible reasons why order failed are:': 'Iškilo problema ir mes negalėjome įvykdyti jūsų rezervacijos užsakymo. Galimos priežastys, kodėl nepavyko užsakyti:',\n\t'a billing error caused by your bank': 'Atsiskaitymo klaida, kurią sukėlė jūsų bankas',\n\t'insufficient credit on your account': 'Nepakankamas kreditas jūsų sąskaitoje',\n\t'your credit card is expired': 'Baigėsi jūsų kredito kortelės galiojimo laikas',\n\t'booking was cancelled or expired': 'užsakymas buvo atšauktas arba pasibaigęs',\n\t'Your booking reservation': 'Jūsų užsakymo rezervacija',\n\t'Booking confirmation was sent to you by email at': 'Užsakymo patvirtinimas buvo išsiųstas jums el. paštu',\n\t'Hello there,': 'Sveiki,',\n\t'Thank you for booking with us. We are looking forward to welcoming you.': 'Dėkojame, kad užsisakėte pas mus. Nekantriai laukiame jūsų.',\n\t'If you have any questions or preferences for your stay please get in touch': 'Jei turite klausimų ar pageidavimų dėl viešnagės, susisiekite',\n\t'Your payment failed': 'Jūsų mokėjimas nepavyko',\n\t'Unfortunately, we couldn\\'t collect payment on your purchase. Please take a moment to review your billing information - if it looks correct, please': 'Deja, negalime priimti mokėjimo už pirkinį. Skirkite šiek tiek laiko ir peržiūrėkite atsiskaitymo informaciją, jei ji atrodo teisinga',\n\t'to let us know. Otherwise, please update your information': 'Praneškite mums. Kitu atveju atnaujinkite savo informaciją',\n\t'f you have any questions about your checkout,': 'jei turite klausimų dėl atsiskaitymo,',\n\t'and we\\'ll get right back to you.': 'ir mes tuoj su jumis susisieksime.',\n\t'Upon arrival': 'Atvykus',\n\t'here to find us': 'mus galite rasti',\n\t'There are plenty of public parking places at the location.': 'Vietoje yra daug viešų automobilių stovėjimo vietų.',\n\t'NotFound': 'Resursas nerastas',\n\t'BookingOneOrMoreProductsUnavailable': 'Nėra laisvų lovų kambaryje',\n\t'CoworkingOrConferenceRoomBookingOneOrMoreProductsUnavailable': 'Nėra laisvų kambarių',\n\t'DuplicateOrder': 'Atrodo, kad jūsų užsakymas jau pateiktas! Nenorime apmokestinti daugiau nei jau užsisakėte :)',\n\t'BookingExpired': 'Panašu, kad jūsų užsakymas baigėsi, pradėkite iš naujo.',\n\t'IncorrectBookingCheckOutDate': 'Neteisinga užsakymo išsiregistravimo data.',\n\t'Amenities': 'Patogumai',\n\t'persons': 'vietos',\n\t'Getting here': 'Kaip atvykti',\n\t'Extras and upgrades': 'Papildomi priedai',\n\t'Extras': 'Priedai',\n\t'unit': 'vienetas',\n\t'person': 'asmuo',\n\t'City tax': 'Miesto mokestis',\n\t'Country': 'Šalis',\n\t'Date of birth': 'Gimimo data',\n\t'I agree to get marketing info.': 'Sutinku gauti rinkodaros informaciją.',\n\t'Discount code applied.': 'Nuolaidos kodas pritaikytas.',\n\t'There was a problem and we were not able to complete your reservation order. Possible reasons why order failed are,': 'Kilusios problemos negalėjome užbaigti jūsų rezervacijos užsakymo. Galimos priežastys, kodėl užsakymas nepavyko:',\n\t'Total paid': 'Iš viso sumokėta',\n\t'Total due (taxes incl.)': 'Iš viso sumokėti (su mokesčiais)',\n\t'Check-In': 'Registracija',\n\t'Minimum stay duration': 'Minimalus viešnagės laikotarpis',\n\t'Maximum stay duration': 'Maksimalus viešnagės laikotarpis',\n\t'It seems that your booking has expired, please, start over.': 'Atrodo, kad jūsų rezervacija pasibaigė, prašome pradėti iš naujo.',\n\t'InvalidBooking': 'NegaliojantiRezervacija',\n\t'BookingHasUnavailableProducts': 'RezervacijaTuriNepasiekiamųProduktų',\n\t'BookingAlreadyCheckedOut': 'RezervacijaJauApmokėta',\n\t'BookingAlreadyDeleted': 'RezervacijaJauPašalinta',\n\t'BookingExpectedAllBookingProductsToHaveReservation': 'ReikiaVisiemsRezervuojamiemsProduktamsTuretiRezervaciją',\n\t'ColivingBookingCheckoutMissingDeliveryMethod': 'BendravimoRezervacijosApmokėjimoTrūkstaPristatymoBūdo',\n\t'DurationIsTooShort': 'LaikotarpisPerTrumpas',\n\t'DurationIsTooLong': 'LaikotarpisPerIlgas',\n\t'DurationIsNegativeOrZero': 'LaikotarpisNeigiamasArbaNulis',\n\t'BookingNothingToInvoice': 'RezervacijaNėraKąSąskaituoti',\n\t'InvalidAvailabilityRange': 'NegaliojantisPrieinamumoIntervalas',\n\t'InvalidAvailabilityRangeExceedsTwoCalendarMonths': 'NegaliojantisPrieinamumoIntervalasViršijaDviKalendorinesMenesio',\n\t'MinDurationMustBe1day': 'MinimalusLaikotarpisTuriBūti1Diena',\n\t'BookingShouldHaveAtLeastOneBookableProduct': 'RezervacijaTurėtųTurėtiMažiausiaiVienąRezervuojamąProduktą',\n\t'PayseraIntegrationDisabled': 'PayseraIntegracijaIšjungta',\n\t'CheckoutCreationFailed': 'ApmokėjimoKūrimasNepavyko',\n\t'CheckoutPriceCalculationFailed': 'ApmokėjimoKainosSkaičiavimasNepavyko',\n\t'ValidationError': 'Validacijos klaida',\n\t'Hello there': 'Sveiki',\n\t'Your booking has been updated. Please, review the newly added items and proceed with a follow-up payment.': 'Jūsų rezervacija buvo atnaujinta. Prašome peržiūrėti naujai pridėtas prekes ir tęsti mokėjimą.',\n\t'Customer': 'Klientas',\n\t'Your order online': 'Jūsų užsakymas internetu',\n\t'Added items': 'Pridėtos prekės',\n\t'Beds': 'Lova',\n\t'Night': 'Naktis',\n\t'Book again': 'Užsisakykite dar kartą',\n\t'Booking updated': 'Rezervacija atnaujinta',\n\t'Thanks for booking.': 'Ačiū už užsakymą.',\n\t'Booking confirmation': 'Rezervacijos patvirtinimas',\n\t'Click here to View Order online': 'Spustelėkite čia, norėdami peržiūrėti užsakymą internetu',\n\t'Discount': 'Nuolaida',\n\t'discount': 'nuolaida',\n\t'Submit': 'Pateikti',\n\t'Cancel': 'Atšaukti',\n\t'Add': 'Pridėti',\n\t'Thank you, your inquiry has been received and is being processed. Someone will contact you as soon as possible!': 'Ačiū, jūsų užklausa gauta ir apdorojama. Kažkas su jumis susisieks kuo skubiau!',\n\t'Back to main page after': 'Grįžti į pagrindinį puslapį po',\n\t'seconds': 'sekundžių',\n\t'Accept': 'Priimti',\n\t'Reservation removed successfully': 'Rezervacija sėkmingai pašalinta',\n\t'Your booking expired': 'Jūsų rezervacija pasibaigė',\n\t'Search for Room': 'Ieškoti kambario',\n\t'We hold bookings for 15 minutes.': 'Mes išsaugojame rezervacijas 15 minučių.',\n\t'select season': 'pasirinkite sezoną',\n\t'Select season': 'Pasirinkite sezoną',\n\t'Season': 'Sezonas',\n\t'Deposit': 'Depozitas',\n\t'Due Today': 'Mokėtina suma',\n\t'Gender': 'Lytis',\n\t'University': 'Universitetas',\n\t'Stay purpose': 'Viešnagės tikslas',\n\t'Phone': 'Telefonas',\n\t'Study year': 'Mokslo metai',\n\t'Faculty': 'Fakultetas',\n\t'Type of study program': 'Mokymo programos tipas',\n\t'Study': 'Studijos',\n\t'Work': 'Darbas',\n\t'Leisure': 'Poilsis',\n\t'Exchange (Erasmus 5 months)': 'Mainai (Erasmus 5 mėnesiai)',\n\t'Exchange (Erasmus 10 months)': 'Mainai (Erasmus 10 mėnesiai)',\n\t'Full-time': 'Nuolatinės studijos',\n\t'Remove': 'Pašalinti',\n\t'Male': 'Vyras',\n\t'Female': 'Moteris',\n\t'Other': 'Kita',\n\t'Must be only digits': 'Turi būti tik skaitmenys',\n\t'Phone number is not valid': 'Netinkamas telefono numeris',\n\t'Incorrect format. Allowed symbols: 0-9': 'Neteisingas formatas. Leidžiami simboliai: 0-9',\n\t'bed': 'lova',\n\t'Nights': 'Naktys',\n\t'nights': 'naktys',\n\t'We are now accepting reservations': 'Dabar priimame rezervacijas',\n\t'Address': 'Adresas',\n\t'Additional person': 'Papildomas asmuo',\n\t'Minimum stay is': 'Minimali viešnagė yra',\n\t'Minimum duration': 'Minimalus laikotarpis',\n\t'Maximum duration': 'Maksimalus laikotarpis',\n\t'Back to search': 'Atgal į paiešką',\n\t'Birthday': 'Gimimo diena',\n\t'Actual arrival date': 'Atvykimo data',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport ErrorIcon from '@material-ui/icons/Error';\nimport CheckCircle from '@material-ui/icons/CheckCircle';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(theme => ({\n\ttoastBody: {\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'space-around',\n\t\talignItems: 'center',\n\t},\n\ticon: {\n\t\tmarginLeft: theme.spacing(1),\n\t\tmarginRight: theme.spacing(1),\n\t},\n\ttext: {\n\t\tflex: 2,\n\t},\n}));\n\nconst Toast = ({ text, type }) => {\n\tconst classes = useStyles();\n\tconst Icon = type === 'error' ? ErrorIcon : CheckCircle;\n\n\treturn (\n\t\t<div className={classes.toastBody}>\n\t\t\t<Icon className={classes.icon} />\n\t\t\t<div className={classes.text}>{text}</div>\n\t\t</div>\n\t);\n};\n\nToast.propTypes = {\n\ttext: PropTypes.string.isRequired,\n\ttype: PropTypes.string.isRequired,\n};\n\nexport default Toast;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { useSelector } from 'react-redux';\nimport { useHistory, matchPath } from 'react-router-dom';\nimport { useLastLocation } from 'react-router-last-location';\nimport http from './http';\nimport { toast as showToast } from 'react-toastify';\nimport { css } from 'glamor';\nimport * as qs from 'query-string';\nimport { debounce } from 'lodash';\n// import { updateFilter } from '@redux/actions';\n\nimport locales from '../locales';\nimport Toast from './components/Toast/Toast';\nimport 'react-toastify/dist/ReactToastify.css';\n\nconst dic = {\n\t'BookingOneOrMoreProductsUnavailable': 'Available beds in room',\n\t'UnexpectedError': 'Oops, we messed up. We are deeply sorry, but sometimes things just fall apart. You might want to try again. Please? :)',\n\t'DuplicateOrder': 'It seems that your order has been submitted already! We don\\'t want to charge you for more than you have ordered already :)',\n\t'BookingExpired': 'It seems that your booking has expired, please, start over.',\n};\n\nexport const tr = key => dic[key] || key;\n\nexport const useTranslation = () => {\n\tconst { locale } = useSelector(state => state.locale);\n\n\tconst translate = key => {\n\t\tif (!key) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst translation = locales[locale]?.[key];\n\n\t\tif (!translation) {\n\t\t\treturn key;\n\t\t}\n\n\t\treturn translation;\n\t};\n\n\treturn translate;\n};\n\nexport const useI18n = (obj) => {\n\tconst { locale } = useSelector(state => state.locale);\n\n\tconst translate = (key, fallback = '') => {\n\n\t\tif (!key || !obj || !locale) {\n\t\t\treturn fallback;\n\t\t}\n\n\t\tconst translation = obj[locale]?.[key];\n\n\t\treturn translation || fallback;\n\t};\n\n\treturn translate;\n};\n\nexport const toast = (value, opts) => {\n\tif (!value.type) { value.type = 'success'; }\n\tlet alert = {};\n\n\tif (value && value.status === 401) {\n\t\talert = {\n\t\t\ttext: 'Session error',\n\t\t};\n\t} else if (value instanceof Error) {\n\t\talert = {\n\t\t\ttype: 'error',\n\t\t\ttext: value.message,\n\t\t};\n\t} else if (value.data && value.data.data) {\n\t\talert = {\n\t\t\ttext: value.data.data,\n\t\t};\n\t} else if (value.status) {\n\t\talert = {\n\t\t\ttext: value.data && value.data.message ? value.data.message : value.statusText,\n\t\t};\n\t} else if (typeof value === 'object') {\n\t\talert = {\n\t\t\t...value,\n\t\t};\n\t} else {\n\t\talert = {\n\t\t\ttext: value.message || value,\n\t\t};\n\t}\n\n\tif (value && value.status && value.status >= 400) {\n\t\talert.type = 'error';\n\t}\n\n\tconst alertFinal = {\n\t\ttext: tr(alert.text),\n\t\ttype: alert.type || value.type,\n\t};\n\n\tconst isError = alert.type === 'error';\n\tconst isWarning = alert.type === 'warning';\n\n\tconst options = {\n\t\tclassName: css({\n\t\t\tbackground: isError\n\t\t\t\t? '#eb5757 !important'\n\t\t\t\t: isWarning\n\t\t\t\t\t? '#e38512 !important'\n\t\t\t\t\t: '#00C78B !important', // can't use useStyles() here\n\t\t\tborderRadius: '3px !important',\n\t\t}),\n\t\tcloseButton: false,\n\t\ttype: isError\n\t\t\t? showToast.TYPE.ERROR\n\t\t\t: isWarning\n\t\t\t\t? showToast.TYPE.WARNING\n\t\t\t\t: showToast.TYPE.SUCCESS,\n\t\thideProgressBar: true,\n\t\tposition: 'bottom-right',\n\t\tautoClose: (isError || isWarning) ? 6000 : 3000,\n\t\t...opts,\n\t};\n\n\tshowToast(<Toast text={alertFinal.text} type={alertFinal.type} />, options);\n};\n\nexport const parseQuery = query => qs.parse(query);\n\nexport function usePageFilter(state = {}) {\n\tconst history = useHistory();\n\tconst { locale } = useSelector(state => state.locale);\n\t// const dispatch = useDispatch();\n\tconst params = qs.parse(history.location.search);\n\tconst [filter, setPageFilter] = useState({ ...state, ...params });\n\tconst [initial, setInitial] = useState(state);\n\n\tconst dispatchFilterUpdate = () => {\n\t\t// dispatch(updateFilter(history.location.pathname, history.location.search));\n\t};\n\n\tconst debouncedUpdate = useCallback(debounce((filter) => {\n\t\thistory.replace({\n\t\t\tsearch: qs.stringify(filter),\n\t\t});\n\n\t\tdispatchFilterUpdate();\n\t}, 400), []);\n\n\tuseEffect(() => {\n\t\tsetPageFilter({\n\t\t\t...filter,\n\t\t\tlanguage: locale,\n\t\t});\n\t}, [locale]);\n\n\tconst setFilter = (params) => {\n\t\tconst page = params.page && filter.page === params.page ? { page: 0 } : {};\n\n\t\tconst state = { ...filter, ...params, ...page };\n\n\t\tsetPageFilter(state);\n\n\t\tdebouncedUpdate(state);\n\t};\n\n\tconst handleChangeFilter = (e) => {\n\t\tsetFilter({\n\t\t\t...filter,\n\t\t\t[e.target.name]: e.target.value,\n\t\t});\n\t};\n\n\tconst handleChangeOptions = (name, value) => {\n\t\tsetFilter({\n\t\t\t...filter,\n\t\t\t[name]: value,\n\t\t});\n\t};\n\n\tconst handleChangePage = (e, page) => {\n\t\tsetFilter({\n\t\t\t...filter,\n\t\t\tpage,\n\t\t});\n\t};\n\n\tconst handleChangePageSize = (e) => {\n\t\tsetFilter({\n\t\t\t...filter,\n\t\t\tpage: 0,\n\t\t\tpageSize: e.target.value,\n\t\t});\n\t};\n\n\tconst resetFilter = () => {\n\t\tsetPageFilter(initial);\n\n\t\thistory.replace({\n\t\t\tsearch: '',\n\t\t\tlanguage: filter.language,\n\t\t});\n\n\t\t// dispatchFilterUpdate();\n\t};\n\n\tconst setFilterStateInitial = (state = {}) => {\n\t\tsetInitial({\n\t\t\t...initial,\n\t\t\t...state,\n\t\t});\n\t};\n\n\tconst isFilterStateInitial = () => {\n\t\treturn JSON.stringify(initial) === JSON.stringify(filter);\n\t};\n\n\tuseEffect(() => {\n\t\t// dispatchFilterUpdate();\n\t}, [history.location.pathname]);\n\n\treturn {\n\t\tfilter,\n\t\tsetFilter,\n\t\thandleChangeFilter,\n\t\thandleChangeOptions,\n\t\thandleChangePage,\n\t\thandleChangePageSize,\n\t\tresetFilter,\n\t\tisFilterStateInitial,\n\t\tsetFilterStateInitial,\n\t};\n}\n\nexport function getChipsByIds(options, values) {\n\treturn options.filter((option) => { return values.indexOf(option.id) !== -1; });\n}\n\nexport function mapOptions(option) {\n\treturn {\n\t\t...option,\n\t\tlabel: option.title,\n\t\tvalue: option.id,\n\t};\n}\n\nexport function mapCountries(country) {\n\treturn {\n\t\t...country,\n\t\tlabel: country.name,\n\t\tvalue: country.id,\n\t};\n}\n\nexport function mapUsers(user) {\n\treturn {\n\t\t...user,\n\t\ttitle: `${user.firstName} ${user.lastName}`,\n\t\tlabel: `${user.firstName} ${user.lastName}`,\n\t\tvalue: user.id,\n\t};\n}\n\nexport function useOptions(path) {\n\tconst [options, setOptions] = useState([]);\n\n\tuseEffect(() => {\n\t\tasync function fetchOptions() {\n\t\t\tconst params = { page: 0, pageSize: 1500 };\n\n\t\t\tawait http.get(`${path}?${qs.stringify(params)}`).then((res) => {\n\t\t\t\tswitch (path) {\n\t\t\t\tcase '/api/admin/countries':\n\t\t\t\t\tsetOptions(res.data.map(mapCountries));\n\t\t\t\t\tbreak;\n\t\t\t\tcase '/api/kiosks/coliving/users':\n\t\t\t\t\tsetOptions(res.data.data.map(mapUsers));\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tsetOptions(res.data.data.map(mapOptions));\n\t\t\t\t}\n\t\t\t}).catch(toast);\n\t\t}\n\n\t\tfetchOptions();\n\t}, []);\n\n\treturn {\n\t\toptions,\n\t\tsetOptions,\n\t};\n}\n\nexport function useStatus() {\n\tconst [status] = useState([\n\t\t{ label: tr('Enabled'), value: 'enabled' },\n\t\t{ label: tr('Disabled'), value: 'disabled' },\n\t\t{ label: tr('All'), value: 'all' },\n\t]);\n\n\treturn {\n\t\tstatus,\n\t};\n}\n\nexport function useReservationStatus() {\n\tconst [status] = useState([\n\t\t{ label: tr('Ended'), value: 'ended' },\n\t\t{ label: tr('Canceled'), value: 'disabled' },\n\t\t{ label: tr('Active'), value: 'active' },\n\t\t{ label: tr('All'), value: 'all' },\n\t]);\n\n\treturn {\n\t\tstatus,\n\t};\n}\n\nexport function useIssueStatus(filter) {\n\tconst initial = [\n\t\t{ label: tr('New'), value: 'new' },\n\t\t{ label: tr('In progress'), value: 'in_progress' },\n\t\t{ label: tr('Closed'), value: 'closed' },\n\t];\n\n\tconst [status] = useState(filter ? [\n\t\t...initial,\n\t\t{ label: tr('All'), value: 'all' },\n\t] : initial);\n\n\treturn {\n\t\tstatus,\n\t};\n}\n\nexport function useLinked() {\n\tconst [linked] = useState([\n\t\t{ label: tr('Linked'), value: 'linked' },\n\t\t{ label: tr('Unlinked'), value: 'unlinked' },\n\t\t{ label: tr('All'), value: 'all' },\n\t]);\n\n\treturn {\n\t\tlinked,\n\t};\n}\n\nexport function useDates() {\n\tconst [dates] = useState([\n\t\t{ value: 'MMM DD, YYYY' },\n\t\t{ value: 'YYYY-MM-DD' },\n\t\t{ value: 'MM/DD/YYYY' },\n\t\t{ value: 'DD/MM/YYYY' },\n\t]);\n\n\treturn {\n\t\tdates,\n\t};\n}\n\nexport function useTimes() {\n\tconst [times] = useState([\n\t\t{ value: 'HH:mm' },\n\t\t{ value: 'hh:mm a' },\n\t\t{ value: 'hh:mm A' },\n\t]);\n\n\treturn {\n\t\ttimes,\n\t};\n}\n\nexport function useRecords(path, filter, triggers = [], preventFetch = () => { }) {\n\tconst [records, setRecords] = useState([]);\n\tconst recordsFetch = {\n\t\t[path]: {\n\t\t\tcontroller: null,\n\t\t\tsignal: null,\n\t\t\tinProgress: false,\n\t\t},\n\t};\n\n\tasync function fetchRecords(params, signal) {\n\t\tawait http.get(`${path}?${qs.stringify(params)}`, { signal }).then(res => {\n\t\t\tsetRecords(res.data);\n\t\t}).catch(e => {\n\t\t\tif (e.name === 'AbortError') {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttoast(e);\n\t\t});\n\t}\n\n\tconst instantFetch = (params) => {\n\t\tif (recordsFetch[path].signal) {\n\t\t\trecordsFetch[path].controller.abort();\n\t\t}\n\n\t\trecordsFetch[path].controller = new AbortController();\n\n\t\trecordsFetch[path].signal = recordsFetch[path].controller.signal;\n\t\tfetchRecords(params, recordsFetch[path].signal);\n\t};\n\n\tconst debouncedFetch = useCallback(debounce((params) => {\n\t\tinstantFetch(params);\n\t}, 350), []);\n\n\tuseEffect(() => {\n\t\tif (preventFetch(filter)) {\n\t\t\treturn;\n\t\t}\n\n\t\trecordsFetch[path].inProgress = true;\n\n\t\tinstantFetch(filter);\n\t}, triggers);\n\n\tuseEffect(() => {\n\t\tif (preventFetch(filter)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (recordsFetch[path].inProgress) {\n\t\t\trecordsFetch[path].inProgress = false;\n\t\t\treturn;\n\t\t}\n\n\t\tdebouncedFetch(filter);\n\t}, [filter]);\n\n\treturn {\n\t\trecords,\n\t\tsetRecords,\n\t\tfetchRecords,\n\t};\n}\n\nexport function useDetails(path, initial, triggers = []) {\n\tconst [details, setDetails] = useState(initial);\n\tconst [isLoading, setIsLoading] = useState(true);\n\n\tasync function fetchDetails() {\n\t\tawait http.get(path).then((res) => {\n\t\t\tsetDetails(res.data);\n\t\t\tsetIsLoading(false);\n\t\t}).catch(toast);\n\t}\n\n\tuseEffect(() => {\n\t\tif (triggers.some(trigger => !trigger)) {\n\t\t\tsetIsLoading(false);\n\t\t\treturn;\n\t\t}\n\n\t\tsetIsLoading(true);\n\t\tfetchDetails();\n\t}, triggers);\n\n\n\treturn {\n\t\tdetails,\n\t\tsetDetails,\n\t\tfetchDetails,\n\t\tisLoading,\n\t};\n}\n\nexport function getListPagePath(pathname) {\n\tconst filter = useSelector(store => store.filter);\n\n\treturn filter[pathname] ? pathname + filter[pathname] : pathname;\n}\n\nexport function getBackPath(pathname) {\n\tconst lastLocation = useLastLocation();\n\n\treturn lastLocation && lastLocation.pathname ? lastLocation.pathname + lastLocation.search : pathname;\n}\n\nexport function getBackAction(pathname) {\n\tconst history = useHistory();\n\tconst path = getBackPath(pathname);\n\n\treturn () => {\n\t\thistory.push(path);\n\t};\n}\n\nexport function isPreviousMatch(props) {\n\tconst lastLocation = useLastLocation();\n\n\treturn lastLocation && matchPath(lastLocation.pathname, props);\n}\n\nexport function useSessionState(key, defaultValue) {\n\tconst [state, setState] = useState(JSON.parse(sessionStorage.getItem(key)) || defaultValue);\n\n\tuseEffect(() => {\n\t\tsessionStorage.setItem(key, JSON.stringify(state));\n\t}, [key, state]);\n\n\treturn {\n\t\tstate,\n\t\tsetState,\n\t};\n}\n","import { useSelector } from 'react-redux';\n\nimport moment from 'moment';\n\nexport function useSettings() {\n\tconst settings = useSelector(state => state.settings);\n\n\tconst reservationDates = {\n\t\tminDuration: settings.minimumDuration,\n\t\topeningDate: settings.openingDate,\n\t\tclosingDate: settings.closingDate,\n\t\tfrom: moment(settings.openingDate).isAfter(moment()) ? moment(settings.openingDate) : moment(),\n\t\tto: moment(settings.closingDate).isAfter(moment()) ? moment(settings.closingDate) : moment('2100-01-01'),\n\t};\n\n\treturn {\n\t\treservationDates,\n\t\tgoogleMapsAPIKey: settings.googleMapsAPIKey || '',\n\t\theaderText: settings.headerText,\n\t\theaderLinkTo: settings.headerLinkTo,\n\t\theaderLinkText: settings.headerLinkText,\n\t\tbookingConfirmationHeaderText: settings.bookingConfirmationHeaderText,\n\t\tbookingConfirmationLeftText: settings.bookingConfirmationLeftText,\n\t\tbookingConfirmationRightText: settings.bookingConfirmationRightText,\n\t\tbookingFailureLeftText: settings.bookingFailureLeftText,\n\t\tbookingFailureRightText: settings.bookingFailureRightText,\n\t\tprivacyPolicy: settings.privacyPolicy || '',\n\t\ttermsAndConditions: settings.termsAndConditions || '',\n\t\ti18n: settings.i18n || {},\n\t\tpaymentGatewaySettings: settings.paymentGatewaySettings,\n\t\tcurrencySymbol: settings.currencySymbol,\n\t\tcurrencyCode: settings.currencyCode,\n\t\tcredentials: settings.credentials,\n\t\tisUpgradesEnabled: settings.isUpgradesEnabled,\n\t\tlanguages: settings.languages,\n\t\tvisibleCheckOutFormInputs: settings.visibleCheckOutFormInputs || [],\n\t\tuniversities: settings.universities,\n\t\tfaculties: settings.faculties,\n\t\tsourceOfDiscoveryOptions: settings.sourceOfDiscoveryOptions,\n\t};\n}\n","export default {\n\tlt: {\n\t\tmonths: 'Sausis_Vasaris_Kovas_Balandis_Gegužė_Birželis_Liepa_Rugpjūtis_Rugsėjis_Spalis_Lapkritis_Gruodis'.split('_'),\n\t\tmonthsShort: 'Sau_Vas_Kov_Bal_Geg_Bir_Lie_Rugp_Rugs_Spa_Lap_Gru'.split('_'),\n\t\tweekdays: 'Sekmadienis_Pirmadienis_Antradienis_Trečiadienis_Ketvirtadienis_Penktadienis_Šeštadienis'.split('_'),\n\t\tweekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n\t\tweekdaysMin: 'Se_Pi_An_Tr_Ke_Pe_Še'.split('_'),\n\t\tlongDateFormat: {\n\t\t\tLT: 'HH:mm',\n\t\t\tLTS: 'HH:mm:ss',\n\t\t\tL: 'YYYY-MM-DD',\n\t\t\tLL: 'YYYY [m.] MMMM D [d.]',\n\t\t\tLLL: 'YYYY [m.] MMMM D [d.], HH:mm',\n\t\t\tLLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm',\n\t\t},\n\t\tcalendar: {\n\t\t\tsameDay: '[Šiandien] LT',\n\t\t\tnextDay: '[Rytoj] LT',\n\t\t\tnextWeek: 'dddd LT',\n\t\t\tlastDay: '[Vakar] LT',\n\t\t\tlastWeek: function () {\n\t\t\t\tswitch (this.day()) {\n\t\t\t\tcase 0:\n\t\t\t\tcase 3:\n\t\t\t\tcase 6:\n\t\t\t\t\treturn '[Praeitą] dddd [at] LT';\n\t\t\t\tdefault:\n\t\t\t\t\treturn '[Praeitį] dddd [at] LT';\n\t\t\t\t}\n\t\t\t},\n\t\t\tsameElse: 'L',\n\t\t},\n\t\trelativeTime: {\n\t\t\tfuture: 'po %s',\n\t\t\tpast: 'prieš %s',\n\t\t\ts: 'kelių sekundžių',\n\t\t\tss: '%d sekundžių',\n\t\t\tm: 'minutės',\n\t\t\tmm: '%d minučių',\n\t\t\th: 'valanda',\n\t\t\thh: '%d valandos',\n\t\t\td: 'dienos',\n\t\t\tdd: '%d dienos',\n\t\t\tM: 'mėnesio',\n\t\t\tMM: '%d mėnesių',\n\t\t\ty: 'metų',\n\t\t\tyy: '%d metų',\n\t\t},\n\t\tordinal: function (number) {\n\t\t\treturn number;\n\t\t},\n\t\tweek: {\n\t\t\tdow: 1,\n\t\t\tdoy: 4,\n\t\t},\n\t},\n\tpl: {\n\t\tmonths: 'Styczeń_Luty_Marzec_Kwiecień_Maj_Czerwiec_Lipiec_Sierpień_Wrzesień_Październik_Listopad_Grudzień'.split('_'),\n\t\tmonthsShort: 'Sty_Lut_Mar_Kwi_Maj_Cze_Lip_Sie_Wrz_Paź_Lis_Gru'.split('_'),\n\t\tweekdays: 'Niedziela_Poniedziałek_Wtorek_Środa_Czwartek_Piątek_Sobota'.split('_'),\n\t\tweekdaysShort: 'Nd_Pon_Wt_Śr_Czw_Pt_So'.split('_'),\n\t\tweekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n\t\tlongDateFormat: {\n\t\t\tLT: 'HH:mm',\n\t\t\tLTS: 'HH:mm:ss',\n\t\t\tL: 'DD.MM.YYYY',\n\t\t\tLL: 'D MMMM YYYY',\n\t\t\tLLL: 'D MMMM YYYY HH:mm',\n\t\t\tLLLL: 'dddd, D MMMM YYYY HH:mm'\n\t\t},\n\t\tcalendar: {\n\t\t\tsameDay: '[Dziś o] LT',\n\t\t\tnextDay: '[Jutro o] LT',\n\t\t\tnextWeek: '[W] dddd [o] LT',\n\t\t\tlastDay: '[Wczoraj o] LT',\n\t\t\tlastWeek: function () {\n\t\t\t\tswitch (this.day()) {\n\t\t\t\tcase 0:\n\t\t\t\t\treturn '[W zeszłą niedzielę o] LT';\n\t\t\t\tcase 3:\n\t\t\t\t\treturn '[W zeszłą środę o] LT';\n\t\t\t\tcase 6:\n\t\t\t\t\treturn '[W zeszłą sobotę o] LT';\n\t\t\t\tdefault:\n\t\t\t\t\treturn '[W zeszły] dddd [o] LT';\n\t\t\t\t}\n\t\t\t},\n\t\t\tsameElse: 'L',\n\t\t},\n\t\trelativeTime: {\n\t\t\tfuture: 'za %s',\n\t\t\tpast: '%s temu',\n\t\t\ts: 'kilka sekund',\n\t\t\tss: '%d sekund',\n\t\t\tm: 'minuta',\n\t\t\tmm: '%d minut',\n\t\t\th: 'godzina',\n\t\t\thh: '%d godzin',\n\t\t\td: 'dzień',\n\t\t\tdd: '%d dni',\n\t\t\tM: 'miesiąc',\n\t\t\tMM: '%d miesięcy',\n\t\t\ty: 'rok',\n\t\t\tyy: '%d lat',\n\t\t},\n\t\tordinalParse: /\\d{1,2}\\./,\n\t\tordinal: '%d.',\n\t\tweek: {\n\t\t\tdow: 1,\n\t\t\tdoy: 4,\n\t\t},\n\t},\n};","import React, { useRef, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useSelector } from 'react-redux';\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport { InputBase } from '@material-ui/core';\n\nimport MomentUtils from '@date-io/moment';\nimport { MuiPickersUtilsProvider } from '@material-ui/pickers';\n\nimport { DatePicker } from '@material-ui/pickers';\n\nimport { Paper, Grid } from '@material-ui/core';\n\nimport moment from 'moment-timezone';\n\nimport { useTranslation, toast } from '@common/utils';\nimport { useSettings } from '@common/hooks';\nimport http from '@common/http';\nimport customLocales from '@common/customMomentLocales';\n\nconst customLocale = {\n\ten: moment.localeData('en-gb'),\n\tlt: customLocales.lt,\n\tpl: customLocales.pl,\n};\n\n\nfunction DateComponent(pickerProps, boxes) {\n\tconst classes = useStyles();\n\n\tconst { format, inputRef, onClick, onKeyDown, placeholder, value } = pickerProps;\n\tconst props = { format, inputRef, onClick, onKeyDown, value };\n\n\tif (boxes) {\n\t\treturn (\n\t\t\t<label className={classes.box}>\n\t\t\t\t<div className={classes.label}>{placeholder}</div>\n\t\t\t\t<InputBase {...props} className={classes.date} placeholder={boxes ? '-' : placeholder} readOnly />\n\t\t\t</label>\n\t\t);\n\t}\n\n\treturn (\n\t\t<InputBase {...props} className={classes.input} placeholder={placeholder} />\n\t);\n}\n\n\nconst getAvailabilityDates = async (from, to, productId, rangeFrom) => {\n\tconst FROM = moment(from).toISOString();\n\tconst TO = moment(to).toISOString();\n\tconst RANGE_FROM = moment(rangeFrom).toISOString();\n\n\tconst body = productId ? { from: FROM, to: TO, products: [productId], rangeFrom: RANGE_FROM } : { from: FROM, to: TO };\n\n\tconst { data } = await http.post('/api/kiosks/coliving/products/availability', body);\n\n\treturn data;\n};\n\nfunction DatePickers({ dates, setDates, boxes, productId, minDuration }) {\n\tconst classes = useStyles();\n\tconst tr = useTranslation();\n\tconst { locale } = useSelector(state => state.locale);\n\tmoment.updateLocale(locale, customLocale[locale]);\n\n\tconst thisMoment = moment();\n\tconst startOfMonth = moment(thisMoment).startOf('month');\n\tconst endOfMonth = moment(thisMoment).endOf('month');\n\n\tconst anchorElRef = useRef();\n\tconst { reservationDates } = useSettings();\n\tconst [anchorEl, setAnchorEl] = useState();\n\tconst [availabilityDates, setAvailabilityDates] = useState([]);\n\tconst [availabilityRange, setAvailabilityRange] = useState(\n\t\t{\n\t\t\tfrom: startOfMonth,\n\t\t\tto: endOfMonth,\n\t\t},\n\t);\n\n\tuseEffect(() => {\n\t\tsetAnchorEl(anchorElRef);\n\t}, [anchorElRef]);\n\n\tuseEffect(async () => {\n\t\tconst FROM = availabilityRange.from;\n\t\tconst TO = availabilityRange.to;\n\t\tconst rangeFrom = availabilityRange.rangeFrom;\n\n\t\ttry {\n\t\t\tconst data = await getAvailabilityDates(FROM, TO, productId, rangeFrom);\n\n\t\t\tsetAvailabilityDates(data);\n\n\t\t} catch (e) {\n\t\t\tsetAvailabilityDates([]);\n\n\t\t\ttoast(e);\n\t\t}\n\n\t}, [availabilityRange]);\n\n\tlet selected = false;\n\n\tconst handleDateClose = () => {\n\t\tif (!dates.from) {\n\t\t\tselected = false;\n\t\t}\n\t};\n\n\tconst handleDateOpen = (prop) => {\n\n\t\tif (dates.from !== null && prop === 'from') {\n\t\t\tsetAvailabilityRange({\n\t\t\t\tfrom: moment(dates.from).startOf('month'),\n\t\t\t\tto: moment(dates.from).endOf('month'),\n\t\t\t\trangeFrom: prop === 'to' ? moment(dates.from) : null,\n\t\t\t});\n\t\t} else if (dates.to !== null && prop === 'to') {\n\t\t\tsetAvailabilityRange({\n\t\t\t\tfrom: moment(dates.to).startOf('month'),\n\t\t\t\tto: moment(dates.to).endOf('month'),\n\t\t\t\trangeFrom: prop === 'to' ? moment(dates.from) : null,\n\t\t\t});\n\t\t} else {\n\t\t\tsetAvailabilityRange({\n\t\t\t\tfrom: availabilityRange?.from || startOfMonth,\n\t\t\t\tto: availabilityRange?.to || endOfMonth,\n\t\t\t\trangeFrom: null,\n\t\t\t});\n\t\t}\n\t};\n\n\tconst handleDateChange = (prop, datetime) => {\n\t\tif ((moment(reservationDates.from).isAfter(moment()) && prop === 'to') && !selected && !dates[prop]) {\n\t\t\tselected = true;\n\t\t\treturn;\n\t\t}\n\n\t\tlet from = prop === 'from' ? moment(datetime).startOf('day') : dates.from ? moment(dates.from).startOf('day') : null;\n\t\tlet to = prop === 'to' ? moment(datetime).endOf('day') : dates.to ? moment(dates.to).endOf('day') : null;\n\n\t\tif (prop === 'from' && (!to || moment(to).startOf('day').diff(moment(datetime).startOf('day'), 'days') < reservationDates.minDuration)) {\n\t\t\tto = moment(datetime).add(minDuration ? minDuration : reservationDates.minDuration, 'days').endOf('day');\n\t\t}\n\n\t\tif (prop === 'to' && (!from || moment(datetime).startOf('day').diff(moment(from).startOf('day'), 'days') < reservationDates.minDuration)) {\n\t\t\tfrom = moment(datetime).subtract(minDuration ? minDuration : reservationDates.minDuration, 'days').startOf('day');\n\t\t}\n\n\t\tsetDates({\n\t\t\t...dates,\n\t\t\tfrom: from.toISOString(),\n\t\t\tto: to.toISOString(),\n\t\t});\n\n\t};\n\n\tconst handleMonthChange = (prop, date) => {\n\t\tconst FROM = moment(date).startOf('month');\n\t\tconst TO = moment(date).endOf('month');\n\n\t\tsetAvailabilityRange({\n\t\t\tfrom: FROM,\n\t\t\tto: TO,\n\t\t\trangeFrom: prop === 'to' ? moment(dates.from) : null,\n\t\t});\n\n\t};\n\n\tconst getDisabledDates = (prop) => {\n\t\tconst disabledDays = (availabilityDates || [])\n\t\t\t.filter(d => prop === 'checkIn' ? !d.availableCheckIn : !d.availableCheckOut)\n\t\t\t.map(d => Number(moment(d.day).format('D')));\n\n\t\treturn disabledDays || [];\n\t};\n\n\tconst getBoolean = (day, checkedDay) => {\n\t\treturn (\n\t\t\tmoment(day).format('YYYY-MM-DD') === moment(checkedDay).format('YYYY-MM-DD')\n\t\t);\n\t};\n\n\tfunction getDayElement(day, selectedDate, isInCurrentMonth, prop) {\n\t\tconst today = new Date();\n\t\tconst disabledDays = getDisabledDates(prop);\n\n\t\tconst isDisabled = disabledDays.includes(Number(moment(day).format('D')));\n\t\tconst isSelected = getBoolean(day, selectedDate);\n\t\tconst isToday = getBoolean(day, today);\n\t\tconst isPastDays = moment(day).format('YYYY-MM-DD') < moment(today).format('YYYY-MM-DD');\n\n\t\tlet specificDays;\n\t\tif (isInCurrentMonth) {\n\t\t\tif (isDisabled) {\n\t\t\t\tspecificDays = (\n\t\t\t\t\t<div className={isSelected ? classes.specificSelectedDayPaper : {}} >\n\t\t\t\t\t\t<Paper className={isSelected ? classes.selectedDayPaper : isToday ? classes.specificDaysTodayPaper : classes.specificDaysNormalDayPaper}>\n\t\t\t\t\t\t\t<Grid item>\n\t\t\t\t\t\t\t\t<div className={!isSelected ? classes.daysHover : {}}>\n\t\t\t\t\t\t\t\t\t{new Date(day).getDate()}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</Paper >\n\t\t\t\t\t</div>\n\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tspecificDays = (\n\t\t\t\t\t<Paper className={isSelected ? classes.selectedDayPaper : isToday ? classes.todayPaper : classes.normalDayPaper}>\n\t\t\t\t\t\t<div className={!isSelected ? classes.daysHover : {}}>\n\t\t\t\t\t\t\t<Grid item > {new Date(day).getDate()}</Grid>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Paper >\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (isPastDays) {\n\t\t\t\tspecificDays = (\n\t\t\t\t\t<Paper className={classes.pastDays}>\n\t\t\t\t\t\t<Grid item > {new Date(day).getDate()}</Grid>\n\t\t\t\t\t</Paper>\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tspecificDays = (<Paper className={classes.notInThisMonthDayPaper}>\n\t\t\t\t<Grid item style={{ display: 'none' }}>\n\t\t\t\t\t{new Date(day).getDate()}\n\t\t\t\t</Grid>\n\t\t\t</Paper>\n\t\t\t);\n\t\t}\n\t\treturn specificDays;\n\t}\n\n\treturn (\n\t\t<MuiPickersUtilsProvider utils={MomentUtils} locale={locale}>\n\t\t\t<div ref={anchorElRef} className={`${classes.container}  ${boxes ? classes.boxes : classes.pickers}`}> {/*ref using to fix mui bug https://github.com/mui/material-ui-pickers/issues/2022 */}\n\t\t\t\t<DatePicker\n\t\t\t\t\tdisableToolbar\n\t\t\t\t\tvariant=\"inline\"\n\t\t\t\t\tplaceholder={tr('Check in')}\n\t\t\t\t\tformat={boxes ? 'MMM-DD' : 'YYYY-MM-DD'}\n\t\t\t\t\tvalue={dates.from}\n\t\t\t\t\tautoOk={true}\n\t\t\t\t\tminDate={moment(reservationDates.from)}\n\t\t\t\t\tmaxDate={moment(reservationDates.to).subtract(reservationDates.minDuration, 'days')}\n\t\t\t\t\tTextFieldComponent={(props) => DateComponent(props, boxes)}\n\t\t\t\t\tonChange={(date) => handleDateChange('from', date)}\n\t\t\t\t\tonClose={handleDateClose}\n\t\t\t\t\tonOpen={() => handleDateOpen('from')}\n\t\t\t\t\trenderDay={(day, selectedDate, isInCurrentMonth) => getDayElement(day, dates.from, isInCurrentMonth, 'checkIn')}\n\t\t\t\t\tonMonthChange={(date) => handleMonthChange('from', date)}\n\t\t\t\t\tPopoverProps={{\n\t\t\t\t\t\tanchorEl: () => anchorEl ? anchorEl.current : '',\n\t\t\t\t\t}}\n\t\t\t\t/>\n\n\n\t\t\t\t{!boxes &&\n\t\t\t\t\t<span className={classes.separator} />\n\t\t\t\t}\n\t\t\t\t<DatePicker\n\t\t\t\t\tdisableToolbar\n\t\t\t\t\tvariant=\"inline\"\n\t\t\t\t\tplaceholder={tr('Check Out')}\n\t\t\t\t\tformat={boxes ? 'MMM-DD' : 'YYYY-MM-DD'}\n\t\t\t\t\tvalue={dates.to}\n\t\t\t\t\tautoOk={true}\n\t\t\t\t\tminDate={moment(reservationDates.from).add(reservationDates.minDuration, 'days')}\n\t\t\t\t\tmaxDate={moment(reservationDates.to)}\n\t\t\t\t\tTextFieldComponent={(props) => DateComponent(props, boxes)}\n\t\t\t\t\tonChange={(date) => handleDateChange('to', date)}\n\t\t\t\t\tonClose={handleDateClose}\n\t\t\t\t\tonOpen={() => handleDateOpen('to')}\n\t\t\t\t\trenderDay={(day, selectedDate, isInCurrentMonth) => getDayElement(day, dates.to, isInCurrentMonth, 'checkOut')}\n\t\t\t\t\tonMonthChange={(date) => handleMonthChange('to', date)}\n\t\t\t\t\tPopoverProps={{\n\t\t\t\t\t\tanchorEl: () => anchorEl ? anchorEl.current : '',\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</MuiPickersUtilsProvider >\n\t);\n}\n\nDatePickers.propTypes = {\n\tdates: PropTypes.object.isRequired,\n\tsetDates: PropTypes.func.isRequired,\n\tboxes: PropTypes.bool,\n\tproductId: PropTypes.string,\n\tminDuration: PropTypes.number,\n};\n\nexport default DatePickers;\n\nconst useStyles = makeStyles(theme => ({\n\tcontainer: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'row',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'center',\n\t},\n\tpickers: {\n\t\tpadding: '3px 8px',\n\t\tborder: `1px solid ${theme.palette.custom.borders}`,\n\t\tborderRadius: '4px',\n\n\t\t[theme.breakpoints.down('sm')]: {\n\t\t\tpadding: '2px 0',\n\t\t\tmarginBottom: theme.spacing(2),\n\t\t},\n\t},\n\tinput: {\n\t\tborder: 0,\n\t\twidth: '128px',\n\t\tpadding: '4px 0',\n\t\tfontFamily: 'inherit',\n\t\tcolor: theme.palette.primary.dark,\n\t\t'& input': {\n\t\t\ttextAlign: 'center',\n\t\t\tfontSize: '16px',\n\t\t},\n\t\t[theme.breakpoints.down('sm')]: {\n\t\t\twidth: '110px',\n\t\t},\n\t},\n\tseparator: {\n\t\twidth: '14px',\n\t\theight: '1px',\n\t\tbackgroundColor: theme.palette.custom.separator,\n\n\t\t[theme.breakpoints.down('sm')]: {\n\t\t\tdisplay: 'none',\n\t\t},\n\t},\n\n\tlabel: {\n\t\tfontWeight: 600,\n\t},\n\tbox: {\n\t\ttextAlign: 'center',\n\t\tpadding: '1px 16px',\n\t\tborder: `1px solid ${theme.palette.custom.borders}`,\n\t\tborderRadius: '4px',\n\t\tlineHeight: '1.4rem',\n\t\tmarginLeft: '8px',\n\t\tcursor: 'pointer',\n\n\t\t[theme.breakpoints.up('sm')]: {\n\t\t\tpadding: '1px 32px',\n\t\t},\n\t\t[theme.breakpoints.up('md')]: {\n\t\t\tpadding: '1px 48px',\n\t\t},\n\n\t\t'&:hover': {\n\t\t\tborderColor: theme.palette.custom.main,\n\t\t},\n\t},\n\tdate: {\n\t\tcolor: theme.palette.primary.dark,\n\t\twidth: '70px',\n\t\theight: '22px',\n\t\t'& input': {\n\t\t\ttextAlign: 'center',\n\t\t\tfontSize: '16px',\n\t\t\tcursor: 'pointer',\n\t\t},\n\t},\n\tnotInThisMonthDayPaper: {\n\t\twidth: '39.5px',\n\t\theight: '39.5px',\n\t\tboxShadow: 'none',\n\t\tpadding: '1px',\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'center',\n\t\talignItems: 'center',\n\t},\n\tpastDays: {\n\t\twidth: '39.5px',\n\t\theight: '39.5px',\n\t\tboxShadow: 'none',\n\t\tpadding: '1px',\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'center',\n\t\talignItems: 'center',\n\t\tcolor: '#aeaeae',\n\t},\n\tnormalDayPaper: {\n\t\twidth: '39.5px',\n\t\theight: '39.5px',\n\t\tboxShadow: 'none',\n\t\tborderRadius: 0,\n\t\tpadding: '1px',\n\t\tcursor: 'pointer',\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'center',\n\t\talignItems: 'center',\n\t},\n\tselectedDayPaper: {\n\t\twidth: '39.5px',\n\t\theight: '39.5px',\n\t\tbackgroundColor: '#006CFF',\n\t\tcolor: 'white',\n\t\tboxShadow: 'none',\n\t\tborderRadius: '50%',\n\t\tborder: '2px solid #fff',\n\t\tpadding: '1px',\n\t\tcursor: 'pointer',\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'center',\n\t\talignItems: 'center',\n\t},\n\ttodayPaper: {\n\t\twidth: '39.5px',\n\t\theight: '39.5px',\n\t\tboxShadow: 'none',\n\t\tpadding: '1px',\n\t\tcursor: 'pointer',\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'center',\n\t\talignItems: 'center',\n\t\tborderRadius: '50%',\n\t},\n\tspecificDaysTodayPaper: {\n\t\twidth: '39.5px',\n\t\theight: '39.5px',\n\t\tcolor: '#aeaeae',\n\t\tboxShadow: 'none',\n\t\tpadding: '1px',\n\t\tcursor: 'pointer',\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'center',\n\t\talignItems: 'center',\n\t\tborderRadius: 0,\n\t},\n\tspecificDaysNormalDayPaper: {\n\t\twidth: '39.5px',\n\t\theight: '39.5px',\n\t\tboxShadow: 'none',\n\t\tborderRadius: 0,\n\t\tpadding: '1px',\n\t\tcursor: 'pointer',\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'center',\n\t\talignItems: 'center',\n\t\tcolor: '#aeaeae',\n\t},\n\tdaysHover: {\n\t\twidth: '36px',\n\t\theight: '36px',\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'center',\n\t\talignItems: 'center',\n\t\t'&:hover': {\n\t\t\tborderRadius: '50%',\n\t\t\tborder: '2px solid #006CFF',\n\t\t},\n\t},\n\tspecificSelectedDayPaper: {\n\t\twidth: '39.5px',\n\t\theight: '39.5px',\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'center',\n\t\talignItems: 'center',\n\t},\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport { Button as MaterialButton } from '@material-ui/core';\n\nimport { useTranslation } from '@common/utils';\n\nfunction Button(params) {\n\tconst classes = useStyles();\n\tconst tr = useTranslation();\n\tconst props = { ...params };\n\n\tdelete props.color;\n\tdelete props.wide;\n\tdelete props.third;\n\tdelete props.children;\n\n\treturn (\n\t\t<MaterialButton disableRipple className={`${classes.button} ${params.wide ? classes.wide : ''}  ${params.third && classes.third} ${params.color ? classes[params.color] : ''}`} {...props}>\n\t\t\t{tr(params.children)}\n\t\t</MaterialButton>\n\t);\n}\n\nButton.propTypes = {\n\tcolor: PropTypes.string,\n\twide: PropTypes.bool,\n\tthird: PropTypes.bool,\n\tchildren: PropTypes.node,\n};\n\nexport default Button;\n\nconst useStyles = makeStyles(theme => ({\n\tbutton: {\n\t\tpadding: `${theme.spacing(1.5)}px ${theme.spacing(6)}px`,\n\t\tfontSize: '16px',\n\t\tlineHeight: '22px',\n\t\ttextTransform: 'initial',\n\t\tcolor: theme.palette.primary.dark,\n\t\ttextDecoration: 'none',\n\t\tborder: `1px solid ${theme.palette.primary.dark}`,\n\t\tborderRadius: '48px',\n\t\t'&:hover': {\n\t\t\topacity: 0.9,\n\t\t},\n\t},\n\twide: {\n\t\tborderRadius: '4px',\n\t\twidth: '100%',\n\t},\n\tthird: {\n\t\tborderRadius: '4px',\n\t\twidth: '33%',\n\t},\n\tdark: {\n\t\tcolor: '#fff',\n\t\tbackgroundColor: `${theme.palette.primary.dark} !important`,\n\t\tborderColor: theme.palette.primary.dark,\n\n\t\t'&[disabled]': {\n\t\t\tcolor: '#fff',\n\t\t\topacity: 0.3,\n\t\t},\n\t},\n\tprimary: {\n\t\tcolor: '#fff',\n\t\tbackgroundColor: `${theme.palette.primary.main} !important`,\n\t\tborderColor: theme.palette.primary.main,\n\n\t\t'&[disabled]': {\n\t\t\tcolor: '#fff',\n\t\t\topacity: 0.25,\n\t\t},\n\t},\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport { Container as MaterialContainer } from '@material-ui/core';\n\nfunction Container({ children }) {\n\tconst classes = useStyles();\n\n\treturn (\n\t\t<MaterialContainer className={classes.container} maxWidth={false}>\n\t\t\t{children}\n\t\t</MaterialContainer>\n\t);\n}\n\nContainer.propTypes = {\n\tchildren: PropTypes.node,\n};\n\nexport default Container;\n\nconst useStyles = makeStyles(theme => ({\n\tcontainer: {\n\t\tmaxWidth: '1176px',\n\t\t[theme.breakpoints.down('sm')]: {\n\t\t\toverflow: 'hidden',\n\t\t},\n\t},\n}));\n\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport { useTranslation } from '@common/utils';\n\nimport { Link } from 'react-router-dom';\n\nfunction HeaderMessage({ message, theme, to }) {\n\tconst classes = useStyles();\n\tconst tr = useTranslation();\n\tconst classCSS = `${classes.container} ${classes[theme]}`;\n\n\treturn (\n\t\t<>\n\t\t\t{!!to &&\n\t\t\t\t<Link to={to} className={`${classCSS} ${classes.link}`}>\n\t\t\t\t\t{tr(message)}\n\t\t\t\t</Link>\n\t\t\t}\n\t\t\t{!to &&\n\t\t\t\t<div className={classCSS}>\n\t\t\t\t\t{tr(message)}\n\t\t\t\t</div>\n\t\t\t}\n\t\t</>\n\t);\n}\nHeaderMessage.propTypes = {\n\tmessage: PropTypes.string.isRequired,\n\ttheme: PropTypes.string,\n\tto: PropTypes.string,\n};\n\nexport default HeaderMessage;\n\nconst useStyles = makeStyles(theme => ({\n\tcontainer: {\n\t\theight: '48px',\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'center',\n\t\ttextDecoration: 'none',\n\t\toverflow: 'hidden',\n\t\twidth: '100%',\n\t\tpadding: '0 16px',\n\t\ttextAlign: 'center',\n\t\tlineHeight: '18px',\n\t\tfontSize: '16px',\n\n\t\t[theme.breakpoints.down('sm')]: {\n\t\t\theight: '52px',\n\t\t\tfontSize: '15px',\n\t\t},\n\t},\n\tdark: {\n\t\tcolor: '#fff',\n\t\tbackgroundColor: theme.palette.primary.dark,\n\t},\n\taction: {\n\t\tcolor: '#fff',\n\t\tbackgroundColor: theme.palette.custom.main,\n\t},\n\tlink: {\n\t\t'&:hover': {\n\t\t\topacity: 0.9,\n\t\t},\n\t},\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport GoogleMapReact from 'google-map-react';\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport { useSettings } from '@common/hooks';\n\nconst AnyReactComponent = () => {\n\tconst classes = useStyles();\n\n\treturn (\n\t\t<div className={classes.icon} />\n\t);\n};\n\nconst useStyles = makeStyles(theme => ({\n\ticon: {\n\t\tbackground: '#fff',\n\t\theight: '30px',\n\t\twidth: '30px',\n\t\tborderRadius: '50%',\n\t\ttransform: 'translate(-50%, -50%)',\n\t\tborder: `6px solid ${theme.palette.primary.main}`,\n\t},\n}));\n\nconst GoogleMap = ({ coordinates, zoom = 16 }) => {\n\tconst location = {\n\t\tlat: 54.6872,\n\t\tlng: 25.2797,\n\t};\n\n\tconst { googleMapsAPIKey } = useSettings();\n\n\tconst coords = coordinates.split(',');\n\n\tconst lat = Number(coords[0]);\n\tconst lng = Number(coords[1]);\n\n\tif (!isNaN(lat) && !isNaN(lng)) {\n\t\tlocation.lat = lat;\n\t\tlocation.lng = lng;\n\t}\n\n\tif (!googleMapsAPIKey) {\n\t\tconsole.warn('GoogleMap: missing google maps api key');\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<GoogleMapReact\n\t\t\tbootstrapURLKeys={{ key: googleMapsAPIKey }}\n\t\t\tdefaultCenter={location}\n\t\t\tdefaultZoom={zoom}\n\t\t>\n\t\t\t<AnyReactComponent\n\t\t\t\tlat={location.lat}\n\t\t\t\tlng={location.lng}\n\t\t\t\ttext=\"\"\n\t\t\t/>\n\t\t</GoogleMapReact>\n\t);\n};\n\n\nGoogleMap.propTypes = {\n\tcoordinates: PropTypes.string,\n\tzoom: PropTypes.number,\n};\n\nexport default GoogleMap;\n","export function changeLocale(locale) {\n\treturn {\n\t\ttype: 'LOCALE_CHANGED',\n\t\tpayload: { locale },\n\t\tdata: { locale },\n\t};\n}\n","import React, { useEffect, useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport http from '@common/http';\n\nimport { useSelector, useDispatch } from 'react-redux';\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport { AppBar, Button } from '@material-ui/core';\nimport { Container, LanguagePicker } from '@common/components';\nimport moment from 'moment';\n\nimport { useTranslation, useSessionState, useI18n } from '@common/utils';\nimport ShoppingCart from '@material-ui/icons/ShoppingCart';\nimport { changeLocale } from '@redux/actions/localeActions';\nimport { useSettings } from '@common/hooks';\n\nimport { usePageFilter } from '@common/utils';\n\nimport { Link } from 'react-router-dom';\n\nconst AppLogo = () => {\n\tconst classes = useStyles();\n\tconst { locale } = useSelector(state => state.locale);\n\n\treturn (\n\t\t<Link to={`/?language=${locale}`}>\n\t\t\t<div className={classes.logo}>\n\t\t\t\t<img src=\"/img/kiosks/coliving/logo.png\" className={classes.img} alt=\"\" />\n\t\t\t</div>\n\t\t</Link>\n\t);\n};\n\nconst CountDown = ({ timer }) => {\n\treturn (\n\t\t<div>{timer}</div>\n\t);\n};\n\nconst Tagline = ({ content }) => {\n\tconst classes = useStyles();\n\tconst tr = useTranslation();\n\n\treturn (\n\t\t<div className={classes.tagline}>\n\t\t\t{tr(content)}\n\t\t</div>\n\t);\n};\n\nfunction Header({ children }) {\n\tconst classes = useStyles();\n\tconst dispatch = useDispatch();\n\tconst { state: bookingId } = useSessionState('booking-id', '');\n\tconst [booking, setBooking] = useState({});\n\tconst timerRef = useRef();\n\tconst [timer, setTimer] = useState('');\n\tconst [bookingExpired, setBookingExpired] = useState(null);\n\tconst { headerLinkTo, i18n: i18nSettings, languages } = useSettings();\n\tconst { locale } = useSelector(state => state.locale);\n\tconst { filter, setFilter } = usePageFilter();\n\tconst i18n = useI18n(i18nSettings);\n\n\tconst headerLinkText = i18n('headerLinkText', i18nSettings.headerLinkText);\n\tconst headerText = i18n('headerText', i18nSettings.headerText);\n\n\tconst { expiresAt, expired } = booking;\n\n\tconst url = window.location.pathname;\n\tconst id = url.substring(url.lastIndexOf('/') + 1);\n\n\tuseEffect(() => {\n\t\tif (!bookingId && !id) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!/^[a-f]{24}$/i.test(id)) {\n\t\t\treturn;\n\t\t}\n\n\t\thttp.get(`/api/kiosks/coliving/bookings/${bookingId || id}`).then(({ data } = {}) => setBooking(data));\n\n\t}, [bookingId, id]);\n\n\tconst localExpiresAt = moment(expiresAt).toDate();\n\n\tuseEffect(() => {\n\t\tlet isMounted = true;\n\n\t\tif (!booking._id || expired || !expiresAt) {\n\t\t\treturn;\n\t\t}\n\n\t\ttimerRef.current = setInterval(() => {\n\t\t\tif (!isMounted) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst now = new Date();\n\t\t\tconst difference = moment(localExpiresAt).diff(now, 'seconds');\n\n\t\t\tif (difference <= 0) {\n\t\t\t\tsetBookingExpired(true);\n\t\t\t\tclearInterval(timerRef.current);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (bookingExpired !== false) {\n\t\t\t\tsetBookingExpired(false);\n\t\t\t}\n\n\t\t\tconst seconds = difference % 60;\n\t\t\tconst hours = Math.floor((difference / 60) / 60);\n\t\t\tconst minutes = Math.floor((difference / 60) % 60);\n\n\t\t\tsetTimer(\n\t\t\t\thours > 0 ? `${hours < 10 ? '0' + hours : hours}:${minutes < 10 ? '0' + minutes : minutes}:${seconds < 10 ? '0' + seconds : seconds}`\n\t\t\t\t\t: `${minutes < 10 ? '0' + minutes : minutes}:${seconds < 10 ? '0' + seconds : seconds}`,\n\t\t\t);\n\t\t}, 1000);\n\n\t\treturn () => {\n\t\t\tisMounted = false;\n\t\t};\n\t}, [expiresAt, expired, bookingId, booking.id]);\n\n\tconst handleChangeLocale = e => {dispatch(changeLocale(e.target.value)); setFilter({ ...filter, language: e.target.value }); };\n\n\treturn (\n\t\t<AppBar position=\"static\" color=\"transparent\" className={classes.header}>\n\t\t\t<Container>\n\t\t\t\t<div className={classes.inner}>\n\t\t\t\t\t<AppLogo />\n\t\t\t\t\t<Tagline content={headerText || 'Book a co-living space'} />\n\t\t\t\t\t{!!headerLinkText && <Button\n\t\t\t\t\t\tclassName={`${classes.workationButton} ${classes.hiddenSm}`}\n\t\t\t\t\t\tvariant='contained'\n\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\thref={headerLinkTo}\n\t\t\t\t\t>\n\t\t\t\t\t\t{headerLinkText}\n\t\t\t\t\t</Button>\n\t\t\t\t\t}\n\t\t\t\t\t<div className={classes.aside}>\n\t\t\t\t\t\t{languages && languages.length > 1 &&\n\t\t\t\t\t\t\t<LanguagePicker onChange={handleChangeLocale} languages={languages} />\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</div>\n\t\t\t\t\t{bookingExpired === false &&\n\t\t\t\t\t\t<div className={classes.shoppingCartContainer}>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tcomponent={Link}\n\t\t\t\t\t\t\t\tclassName={classes.shoppingCart}\n\t\t\t\t\t\t\t\tto={`/booking/${bookingId || id}/?language=${locale}`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div className={classes.timerIcon}>\n\t\t\t\t\t\t\t\t\t<ShoppingCart />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div className={classes.timerText}>\n\t\t\t\t\t\t\t\t\t<CountDown timer={timer} />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</Container>\n\t\t</AppBar>\n\t);\n}\n\nHeader.propTypes = {\n\tchildren: PropTypes.node,\n};\n\nTagline.propTypes = {\n\tcontent: PropTypes.string,\n};\n\nCountDown.propTypes = {\n\ttimer: PropTypes.string,\n};\n\nexport default Header;\n\nconst useStyles = makeStyles(theme => ({\n\theader: {\n\t\tmarginBottom: theme.spacing(5),\n\t\tboxShadow: 'none',\n\n\t\t[theme.breakpoints.down('sm')]: {\n\t\t\tpaddingTop: theme.spacing(1.5),\n\t\t},\n\t\t[theme.breakpoints.up('md')]: {\n\t\t\tpaddingTop: theme.spacing(2.5),\n\t\t\tpaddingBottom: theme.spacing(2.5),\n\t\t\tborderBottom: `1px solid ${theme.palette.custom.separator}`,\n\t\t},\n\n\t},\n\tinner: {\n\t\t[theme.breakpoints.down('sm')]: {\n\t\t\ttextAlign: 'center',\n\t\t},\n\t\t[theme.breakpoints.up('md')]: {\n\t\t\tdisplay: 'flex',\n\t\t\tflexDirection: 'row',\n\t\t\talignItems: 'center',\n\t\t},\n\t},\n\tlogo: {\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'center',\n\t},\n\timg: {\n\t\tmaxWidth: '150px',\n\t\tmaxHeight: '48px',\n\t\theight: 'auto',\n\t},\n\ttimerIcon: {\n\t\tflex: 1,\n\t\talignItems: 'center',\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'center',\n\t},\n\ttimerText: {\n\t\tflex: 1,\n\t\talignItems: 'center',\n\t\tdisplay: 'flex',\n\t},\n\tshoppingCartContainer: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t\ttextAlign: 'center',\n\t},\n\tshoppingCart: {\n\t\tpadding: '12.5px 12px 12px 24px',\n\t\tdisplay: 'flex',\n\t\twidth: 100,\n\t\tjustifyContent: 'space-around',\n\t\tmarginLeft: 8,\n\t\talignItems: 'center',\n\t},\n\ttagline: {\n\t\t[theme.breakpoints.down('sm')]: {\n\t\t\ttextAlign: 'center',\n\t\t\tmarginTop: theme.spacing(1),\n\t\t\tmarginBottom: theme.spacing(1.5),\n\t\t},\n\t\t[theme.breakpoints.up('md')]: {\n\t\t\tmarginLeft: theme.spacing(3),\n\t\t\tpadding: '12px 12px 12px 24px',\n\t\t\tborderLeft: `1px solid ${theme.palette.custom.separator}`,\n\t\t},\n\t},\n\taside: {\n\t\tflexGrow: 1,\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'row',\n\n\t\t[theme.breakpoints.down('sm')]: {\n\t\t\tjustifyContent: 'center',\n\t\t},\n\t\t[theme.breakpoints.up('md')]: {\n\t\t\tjustifyContent: 'flex-end',\n\t\t},\n\t},\n\tworkationButton: {\n\t\tpadding: '8px 32px',\n\t\ttextTransform: 'initial',\n\t\tfontSize: '16px',\n\t\tboxShadow: 'none',\n\n\t\t'&:hover': {\n\t\t\tboxShadow: 'none',\n\t\t},\n\t},\n\thiddenSm: {\n\t\tmarginLeft: '16px',\n\t\tborderRadius: '32px',\n\n\t\t[theme.breakpoints.down('sm')]: {\n\t\t\tdisplay: 'none',\n\t\t},\n\t},\n\thiddenMd: {\n\t\t[theme.breakpoints.up('md')]: {\n\t\t\tdisplay: 'none',\n\t\t},\n\t\t[theme.breakpoints.down('sm')]: {\n\t\t\twidth: '100%',\n\t\t\tmarginBottom: theme.spacing(2),\n\t\t},\n\t},\n}));\n","export default __webpack_public_path__ + \"static/media/visa_logo.a05453b4.png\";","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport { useSelector } from 'react-redux';\n\nimport { Grid, TextareaAutosize } from '@material-ui/core';\n\nimport { Container } from '@common/components';\n\nimport { useTranslation } from '@common/utils';\n\nimport { Link } from 'react-router-dom';\nimport visa from './img/visa_logo.png';\nimport masterCard from './img/master_card_logo.png';\n\nimport { useSettings } from '@common/hooks';\n\nconst PaymentLogo = () => {\n\tconst classes = useStyles();\n\n\treturn (\n\t\t<div className={classes.logo}>\n\t\t\t<img src={visa} className={classes.img} alt=\"\" />\n\t\t\t<img src={masterCard} className={classes.img} alt=\"\" />\n\t\t</div>\n\t);\n};\n\nconst Links = ({ label, href }) => {\n\tconst classes = useStyles();\n\tconst tr = useTranslation();\n\n\treturn (\n\t\t<Link style={{ textDecoration: 'none' }} to={href} target=\"_blank\">\n\t\t\t<div className={classes.link}>\n\t\t\t\t{tr(label)}\n\t\t\t</div>\n\t\t</Link>\n\t);\n};\n\nconst TextArea = ({ value }) => {\n\tconst classes = useStyles();\n\n\tconst textAreaElements = document.querySelectorAll(`.${classes.textArea}`);\n\n\ttextAreaElements.forEach(element => {\n\t\telement.style.webkitAppearance = 'none';\n\t\telement.style.border = 'none';\n\t\telement.style.outline = 'none';\n\t\telement.style.fontSize = '15px';\n\t});\n\n\treturn (\n\t\t<TextareaAutosize\n\t\t\tclassName={classes.textArea}\n\t\t\tvalue={value}\n\t\t\tmargin=\"dense\"\n\t\t\tspellCheck=\"false\"\n\t\t\tstyle={{ outline: 'none' }}\n\t\t/>\n\t);\n};\n\nfunction Footer() {\n\tconst classes = useStyles();\n\n\tconst { locale } = useSelector(state => state.locale);\n\n\tconst { credentials } = useSettings();\n\n\treturn (\n\t\t<div className={classes.footer}>\n\t\t\t<Container>\n\t\t\t\t<div className={classes.inner}>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<Links label=\"Terms and Conditions\" href={`/terms/?language=${locale}`} />\n\t\t\t\t\t\t<Links label=\"Privacy Policy\" href={`/privacy/?language=${locale}`} />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className={classes.credentials}>\n\t\t\t\t\t\t<Grid item style={{ flex: 1 }}>\n\t\t\t\t\t\t\t{credentials &&\n\t\t\t\t\t\t\t\t<TextArea value={credentials}/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<PaymentLogo />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Container>\n\t\t</div>\n\t);\n}\n\nFooter.propTypes = {\n\tchildren: PropTypes.node,\n};\n\nLinks.propTypes = {\n\tlabel: PropTypes.string,\n\thref: PropTypes.string,\n};\n\nTextArea.propTypes = {\n\tvalue: PropTypes.string,\n};\n\nexport default Footer;\n\nconst useStyles = makeStyles(theme => ({\n\tfooter: {\n\t\tmarginTop: theme.spacing(4),\n\t\tmarginBottom: theme.spacing(3),\n\t\tboxShadow: 'none',\n\t\twidth: '100%',\n\t\theight: '50px',\n\t\tbottom: 0,\n\t\tposition: 'absolute',\n\n\t\t[theme.breakpoints.down('sm')]: {\n\t\t\tpaddingTop: theme.spacing(1.5),\n\t\t},\n\t\t[theme.breakpoints.up('md')]: {\n\t\t\tpaddingTop: theme.spacing(2.5),\n\t\t\tborderTop: `1px solid ${theme.palette.custom.separator}`,\n\t\t},\n\n\t},\n\tinner: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'row',\n\t\talignItems: 'center',\n\t\twidth: '100%',\n\t\tjustifyContent: 'space-between',\n\t\tmarginBottom: theme.spacing(2),\n\n\t},\n\tcredentials: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'row',\n\t\talignItems: 'center',\n\t\tminWidth: '30%',\n\t\tjustifyContent: 'space-between',\n\t},\n\tlogo: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t},\n\timg: {\n\t\tmaxWidth: '70px',\n\t\theight: 'auto',\n\t},\n\tlink: {\n\t\tcolor: '#949494',\n\t\tfontWeight: 'bold',\n\t\tmarginBottom: '4px',\n\n\t\t'&:hover': {\n\t\t\tcolor: '#313133',\n\t\t},\n\t},\n\ttextArea: {\n\t\tborder: 'none',\n\t\tresize: 'none',\n\t\twidth: '100%',\n\t\tfontWeight: 'bold',\n\t\tcolor: '#949494',\n\t\tbackgroundColor: 'unset',\n\t\tmarginBottom: theme.spacing(2),\n\t},\n}));\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANwAAACcCAYAAAAUAsXtAAAACXBIWXMAACE3AAAhNwEzWJ96AAAKt0lEQVR4nO2dz25b1xHGRyQlixIdyq6JCmCRGLCBAOlC6iKrLCytsoz8BLb0AraeQPGmW1kvQMtPYHnZVZRFV0UQedEWBWpATkvABZ1YrhVREUWqmKu5KU2LFimS58w58/0AwX9g65yh7ne/mTnn3EsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0TCGH+X71Kg8Q0TzRHRdvory5w+xS0QviGiPiHb4zyWq7ioKq2fqlXIaN8c8c9H48ythxj9KILhTgS0QEX/darvIhsW2XIDf8u9LVN3zG+271CvJzWVB4h55/PkVXfG7xqTgapTcwZfkAltyPDxffE+JaKtE1R3HYyeIg3HcX4nYXMIxPxbxeYnfJ2YEJ2kiX2R3PFxk3eCUa0PEN9L0S5yM47/XQ3roilR8m1acL3rBiZutycU2zFRp2GzyxVei6vYwv6+4WTDx51eGG782ohVcm9DuKphOP/AF92BQ4dUrSV16z0PKPChJ/LEKLzrBBSy0Ti4kvDZHiyH+1djqvKgEV6Py13JX15w69QunWqvndTelRrsvYouJTRFeFDVeFIKTtv4jWTuKkT1xu4dnxSbpY+zxL+dXqlsK5jIQwQuuRuV1ubNbgNOs26nbiautGYp/S4QXrNsFK7galeflrq6lxe2K5G5fqCRLClbjvx1qUyVIwdWovCQXW0y1Ws+MTbSo8LC1dzKZMxm/wHXdmSm2ZjKhTVgaI0+sii13tUHFL1/Rpe9qM5n9hoIZeWO9Xik/Cm3SQTlcjZIPOPR294VJxcYOl9L49Ao1Z6dCDGdY8LLBYih1XTCCsy62iY8P6fIXr98RWwpEF47oghCcdbFN3jygwhevP/hvILowRKe+hrMuNna288TGjP/jNWVfHjiZk1K4W/uNLJWoRbXgrIuNa7bLPYgtBaI7FZ2CeXRFreBqVL5vXWydDZJeYNFl9n7xNW0NzGvuXqoUnKyzrSuYiheSdbYuDZJemPjrT2R8yeBuvZIsH6lDXdNEdvt/b3Wdjflo8cekdhuEk8I4Hc1do5NccEutw2RR244UjT8Ns4vaTP6z/YHFxoztNyj3/M1Q5hQwT7Q1UVQJTjYiW9sb+Ctct01/PjyRcAMl+2pw8QbMjNzA1aBGcHLExsqu9zPppf3fL9xEGTtsug5FEwv1SlnNdaXJ4YLbFzdMpubfJg43dI5bNP7c9JPpmDUtqaUKwcmG5FgPT55LttCkqbn/juz7Z14dIrVUckP3LjjpSt7zPQ+fjCKV7CQHl1uSk/Fe0eBwa5a7kuOzvyRfo4bruNyLt77D9Y335714FZy4m9ndJMwwu5Lnkfv3Po0dX2wxPRIWfLucb4eL7QlTfcGnAEbSKOnGcYuy1Z/djacTr9ecN8HB3Ygu3XC/0Rgu59flfDqcabG5qt3e47iVdC2N483lfArOdGdy0oO7peRejG4JIhAW5AnVzvEiuBqV71ruTPIpgEs3/QmOO5bGj/CQrxu+L4f7ytO4Kpj0KLaU7H9MH1QlXy85cS64tve0mcVHs6QT4ztPmOv1Stn5RnkfDmdabLyNy+lSQDd4iQCiu+N6QB+CM51OTnxcVzCLUzI/6pmLJ5zf/H0ITsvrfr0w/ls9zQo0TpK00mm30qng5Myb5efhD+U097DgbqXxs3Lk2uVcO5zZ09wki93agMvRnMvBXAvuluPxVKGiWdJB5o15wTktceBwDsldUSg424/TI9cHn10Lzuypbiar0OHGIDhyuZnZmeCkYWIajSklweXIpRG4dDjT3Ule8FaL7eM6FKvgTNdvmcKxglmcDRyOPnE1kOnnYAOheWL9k4jS4ZzdRTQyPntkOXwguBSc6Q6lZrD47Q6klAA4XPyG4ABwCAQHgEMgOAAcAsEBQLTj6jNwKbhdh2OBPuDXExvH2ZtOXAruhcOx1NF4OaF2bsbfA+4UfNIAROpwzvJkjbT2c3rnVtTrvo545mogl4Iz/UbA5n5WwSy6gJQyPocrUXXb1VhaOf5JZ3OihaZJlF1Kst6pbCl0OXQoE6IVnOk67vi1vloJ7ka7+ZVqlE0TclmcakTj0sDJtHnBOTUB14IzXcc1Xl5SMIt3ac3om5NjvnU5nFPBoXGiTHS5DFJKxybgox+85WFMNRz9a1LNXJrX9MzFE1y/RZ1SkmsL18bRD3k1M2oVzaeTzjMuOJxjeAFcy/JACw731PWAzgVXouqu9eWB+t8L3ufQnJ2yvml5L79SdX7z9/WJb3gaVwUa0srWb/Sktp7Y9DGsL8FtWd5byWnl0Q/+0rmTySwaJkSPfQzqRXAlSlb2Tddyh8+nvY3dnPU3thK2XXcnU3wm8Q88ju0ddjgvzZNchppl84Lz4m7kU3DSPPGSR2vh4NlHzmdy/LuC9WYJr715u+58f/Le7jQaOPznlFuXg7uR78zKq+BkqxdczhFwN7/uRkqeaWK6lmOXc7K/Eu7GrPqegHfBSS1nWnQHzy6PfIzGjaJ1d9v2sdDdiZafwEPLp8HZ4ep/G93uEz6CwztLjLOsIXwVgpN1Oe927xN2uVE1UI5vFEP5GEbFg/xKVcUNXU2OUaLE7s02UE6OMvT2z1eG/n1ZbMbPvO3kV6pfK5hHgraHJa7Ku7pMvrwxTS3zn+0P5ftxKsmdScNw5nQ7Db9eKfN19Y0cy5mXMmYjv+LuYLSqKlpSy9s9/NNo+fkvxeE8Ti+Xocbvr1r+KJnV9lRSfr8r67/XRXROUde2KlGyx01FgeuLN3+6lqSYg3A0d816V3Kzy5rbqhwP+4N8Od1TOeZysH6oUfkREd3VOr9Rk7vaoOKXr2hsotX3SI1Pr1jvSvISwKKCebyH2ltgiarLlk8UcFrJ6WXf/+9G0brYdjSXJdpzjmXLp8N5F8p+H51LFprxJgnXZ4suH+zaL6oFJ02URYjufNGx2DiVNEzScNMsNgrh/XAQ3fmig9h+dTb114japkknNSrPEBE3UpZ0zcwdkzcPaPrzN+80UrhmM55G7mhPI9sJRnAp6F5K93LqdEOy9W5kCGlkO8EJjk5Fd5+I1hVMxQvZQpOm/9iyvmWL19mCW68NcmW0RNWHUteZfPJXcz+73CqMW42fY14OUWwUqsOlGKzrkl04shuH9wZy/E9k/6kFdiSFDPYoV9CCS6lReUmEN6NjRiPhQYnO3vVeryQp9lrs8Wva9X9RohAc/d/t1iNsqHBjYDV1tW7ITvj1CN1+W1LIKA4oRyO4lBqVF+RuH3qatSuu1tcZwXolqvhXNTwWYZhEJ7iUgIV3IaF1Uq8kafaajyMoA7Ir6WOUh5GjFVyKCO9eAKkWp4wbgwqtk4Acj1PHx7EKLSV6waXUKKlxuL67o+hEefqOhY3zarRBkRovvfGoiz+EbVnDwIzg2qlReV6E5+PiSy+yp/IcF+fUK17j3xU3expbfdYLJgXXjjgfp1u3RvQ8lfQFlPyq5e1RO1m/iPOx8OZcxG/FybphXnBnIXXfdfn6pOMi7KyFdtp2fPCvz+RX/vsdOe0QDLKYPt8l/pkzmjAfjD+kfY4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoGeI6H/qW0dOPQpK2gAAAABJRU5ErkJggg==\"","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport * as qs from 'query-string';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Card, CardMedia, Typography, CardContent, CardActionArea, Grid } from '@material-ui/core';\n\nimport { useTranslation, useI18n } from '@common/utils';\nimport { useSettings } from '@common/hooks';\nimport { Amenities } from '@components/Coliving';\n\nconst ColivingCardProps = ({ personCapacity }) => {\n\tconst classes = useStyles();\n\tconst tr = useTranslation();\n\n\treturn (\n\t\t<Typography variant=\"body2\" className={classes.props}>\n\t\t\t{personCapacity && <span className={classes.prop}>{personCapacity} {tr(personCapacity > 1 ? 'guests' : 'guest')}</span>}\n\t\t\t<span className={classes.prop}>{tr('access to coworking')}</span>\n\t\t</Typography>\n\t);\n};\n\nconst ColivingCardPrice = ({ pricePerDay, pricePerDayAfterDiscount }) => {\n\tconst classes = useStyles();\n\tconst tr = useTranslation();\n\n\tconst { currencySymbol } = useSettings();\n\n\treturn (<>\n\t\t{!pricePerDayAfterDiscount && <Typography variant=\"body2\" className={classes.price}>\n\t\t\t{pricePerDay} {currencySymbol}<span className={classes.currency}>{`/${tr('night')}`}</span>\n\t\t</Typography>}\n\t\t{pricePerDayAfterDiscount > 0 && <Typography variant=\"body2\" className={classes.price}>\n\t\t\t<span style={{ textDecorationLine: 'line-through', color: 'red' }}>{pricePerDay} {currencySymbol}</span>&nbsp;\n\t\t\t<span>{pricePerDayAfterDiscount} {currencySymbol}</span>\n\t\t\t<span className={classes.currency}>{`/${tr('night')}`}</span>\n\t\t</Typography>}\n\t</>);\n};\n\nfunction ColivingCard({ coliving, filter }) {\n\tconst classes = useStyles();\n\tconst i18n = useI18n(coliving.i18n);\n\tconst tr = useTranslation();\n\n\tconst { currencyCode } = useSettings();\n\n\tconst title = i18n('title', coliving.title);\n\tconst summary = i18n('summary', coliving.summary);\n\tconst isPriceVisible = coliving?.isOnlyInquired && coliving?.isPriceVisible === false ? false : true;\n\tconst isDisabled = coliving.available === false && coliving?.isOnlyInquired === false ? true : false;\n\n\n\tconst trackItemViews = () => {\n\t\twindow.dataLayer = window.dataLayer || [];\n\t\twindow.dataLayer.push({ ecommerce: null });\n\t\twindow.dataLayer.push({\n\t\t\tevent: 'view_item',\n\t\t\tecommerce: {\n\t\t\t\tcurrency: currencyCode,\n\t\t\t\tvalue: coliving.pricePerDayAfterDiscount || coliving.pricePerDay,\n\t\t\t\titems: [\n\t\t\t\t\t{\n\t\t\t\t\t\titem_id: coliving._id,\n\t\t\t\t\t\titem_name: coliving.title,\n\t\t\t\t\t\tdiscount: coliving.pricePerDayAfterDiscount ? coliving.pricePerDay - coliving.pricePerDayAfterDiscount : 0,\n\t\t\t\t\t\tprice: coliving.pricePerDay,\n\t\t\t\t\t\tquantity: 1,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t});\n\t};\n\n\treturn (\n\t\t<Link onClick={trackItemViews} to={`/${coliving._id}?${qs.stringify(filter)}`} className={classes.link}>\n\t\t\t<Card className={`${classes.card} ${isDisabled ? classes.disabled : ''}`}>\n\t\t\t\t<CardActionArea className={classes.area}>\n\t\t\t\t\t{coliving.image && <CardMedia className={`${classes.media} ${isDisabled ? classes.disabled : ''}`} image={`/images/${coliving.image}`} title=\"\" />}\n\t\t\t\t\t{!coliving.image && <div className={`${classes.media} ${isDisabled ? classes.disabled : ''}`} />}\n\t\t\t\t\t{(coliving?.minDuration || coliving?.maxDuration) &&\n\t\t\t\t\t\t<Grid style={{ margin: '0 auto', padding: '12px 12px 0 12px', maxHeight: '50px' }} container spacing={2} item xs={12}>\n\t\t\t\t\t\t\t{coliving?.minDuration &&\n\t\t\t\t\t\t\t\t<Grid className={isDisabled && coliving.isMinDurationValid !== false ? classes.disabled : (isDisabled && coliving.isMinDurationValid === false) ? classes.border : ''} style={{ padding: '0 4px 0 0', alignItems: 'center', display: 'flex', flexDirection: 'column' }} item xs={6}>\n\t\t\t\t\t\t\t\t\t<Typography style={{ color: isDisabled && coliving.isMinDurationValid === false ? 'red' : 'grey' }} variant=\"caption\">\n\t\t\t\t\t\t\t\t\t\t{tr('Minimum duration')}\n\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t<Typography style={{ color: isDisabled && coliving.isMinDurationValid === false ? 'red' : '' }} variant=\"subtitle2\">\n\t\t\t\t\t\t\t\t\t\t{`${coliving?.minDuration} ${tr(coliving?.durationType === 'months' ? coliving?.durationType : 'nights')}`}\n\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{coliving?.maxDuration &&\n\t\t\t\t\t\t\t\t<Grid className={isDisabled && coliving.isMaxDurationValid !== false ? classes.disabled : isDisabled && coliving.isMaxDurationValid === false ? classes.border : ''} style={{ padding: '0 0 0 4px', alignItems: 'center', display: 'flex', flexDirection: 'column' }} item xs={6}>\n\t\t\t\t\t\t\t\t\t<Typography style={{ color: isDisabled && coliving.isMaxDurationValid === false ? 'red' : 'grey' }} variant=\"caption\">\n\t\t\t\t\t\t\t\t\t\t{tr('Maximum duration')}\n\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t<Typography style={{ color: isDisabled && coliving.isMaxDurationValid === false ? 'red' : '' }} variant=\"subtitle2\">\n\t\t\t\t\t\t\t\t\t\t{`${coliving?.maxDuration} ${tr(coliving?.durationType === 'months' ? coliving?.durationType : 'nights')}`}\n\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t}\n\t\t\t\t\t<CardContent className={`${classes.content} ${isDisabled ? classes.disabled : ''}`}>\n\t\t\t\t\t\t{/* hide by task PIN-2602 */}\n\t\t\t\t\t\t{/* <ColivingCardProps personCapacity={coliving.personCapacity} /> */}\n\t\t\t\t\t\t<div className={classes.header}>\n\t\t\t\t\t\t\t{isPriceVisible &&\n\t\t\t\t\t\t\t\t<ColivingCardPrice pricePerDay={coliving.pricePerDay} pricePerDayAfterDiscount={coliving.pricePerDayAfterDiscount} />\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t<Typography gutterBottom variant=\"h3\" component=\"h3\" className={classes.title}>\n\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<Typography variant=\"body2\" dangerouslySetInnerHTML={{ __html: summary ? summary : '' }} />\n\n\t\t\t\t\t</CardContent>\n\t\t\t\t\t{coliving.amenities && coliving.amenities.length > 0 &&\n\t\t\t\t\t\t<CardContent className={`${classes.footer} ${isDisabled ? classes.disabled : ''}`}>\n\t\t\t\t\t\t\t<Amenities amenities={coliving.amenities} max={4} />\n\t\t\t\t\t\t</CardContent>\n\t\t\t\t\t}\n\t\t\t\t</CardActionArea>\n\t\t\t</Card>\n\t\t</Link>\n\t);\n}\n\nColivingCard.propTypes = {\n\tcoliving: PropTypes.object.isRequired,\n\tfilter: PropTypes.object,\n};\n\nColivingCardProps.propTypes = {\n\tpersonCapacity: PropTypes.number,\n};\n\nColivingCardPrice.propTypes = {\n\tpricePerDay: PropTypes.number,\n\tpricePerDayAfterDiscount: PropTypes.number,\n};\n\nexport default ColivingCard;\n\nconst useStyles = makeStyles(theme => ({\n\tlink: {\n\t\ttextDecoration: 'none',\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t\twidth: '100%',\n\t},\n\ttitle: {\n\t\tflex: '1 1 auto',\n\t},\n\tcard: {\n\t\tposition: 'relative',\n\t\tborderRadius: '4px',\n\t\tborder: `1px solid ${theme.palette.custom.borders}`,\n\t\tboxShadow: 'none',\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t\tflex: '1 1 auto',\n\t},\n\tarea: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t\tflex: '1 1 auto',\n\t},\n\theader: {\n\t\toverflow: 'hidden',\n\t\t// [theme.breakpoints.up('md')]: {\n\t\t// \tdisplay: 'flex',\n\t\t// \tflexDirection: 'row',\n\t\t// },\n\t},\n\n\tcontent: {\n\t\twidth: '100%',\n\t\tflex: '1 1 auto',\n\t\tpadding: `${theme.spacing(2)}px ${theme.spacing(3)}px`,\n\n\t\t[theme.breakpoints.down('sm')]: {\n\t\t\tpadding: `${theme.spacing(2)}px`,\n\t\t},\n\t},\n\tfooter: {\n\t\tborderTop: '1px solid',\n\t\tborderTopColor: theme.palette.custom.separator,\n\t\tpadding: 0,\n\t\tmargin: `0 ${theme.spacing(3)}px`,\n\t\talignSelf: 'stretch',\n\t},\n\tmedia: {\n\t\twidth: '100%',\n\t\theight: '248px',\n\t\tbackgroundColor: theme.palette.custom.background,\n\t},\n\tprops: {\n\t\tdisplay: 'flex',\n\t\tmarginBottom: theme.spacing(2),\n\n\t\t[theme.breakpoints.down('sm')]: {\n\t\t\tflexDirection: 'column',\n\t\t},\n\t},\n\tprop: {\n\t\tpadding: `5px ${theme.spacing(2)}px`,\n\t\tborder: `1px solid ${theme.palette.custom.borders}`,\n\t\tcolor: theme.palette.primary.light,\n\t\tborderRadius: '18px',\n\t\twhiteSpace: 'nowrap',\n\t\tfontSize: '14px',\n\n\t\t[theme.breakpoints.down('sm')]: {\n\t\t\tdisplay: 'block',\n\t\t\twidth: '100%',\n\t\t\toverflow: 'hidden',\n\t\t\ttextOverflow: 'hidden',\n\t\t},\n\n\t\t'&:nth-child(n+2)': {\n\t\t\t[theme.breakpoints.down('sm')]: {\n\t\t\t\tmarginTop: theme.spacing(1),\n\t\t\t},\n\t\t\t[theme.breakpoints.up('md')]: {\n\t\t\t\tmarginLeft: theme.spacing(2),\n\t\t\t},\n\t\t},\n\t},\n\tprice: {\n\t\tfloat: 'right',\n\t\tpadding: '4px 0 0 8px',\n\t},\n\tcurrency: {\n\t\tcolor: theme.palette.primary.light,\n\t\tpaddingLeft: '4px',\n\t},\n\tdisabled: {\n\t\topacity: 0.6,\n\t},\n\tborder: {\n\t\tborder: '1px solid red',\n\t\tborderRadius: '50px',\n\t},\n}));\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nimport { Typography } from '@material-ui/core';\r\n\r\nfunction ColivingDetail({ header, children }) {\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t<div className={classes.container}>\r\n\t\t\t<Typography variant=\"h3\" className={classes.header}>\r\n\t\t\t\t{header}\r\n\t\t\t</Typography>\r\n\t\t\t<Typography variant=\"body2\" component=\"div\">\r\n\t\t\t\t{children}\r\n\t\t\t</Typography>\r\n\t\t</div>\r\n\t);\r\n}\r\n\r\nColivingDetail.propTypes = {\r\n\theader: PropTypes.string,\r\n\tchildren: PropTypes.node,\r\n};\r\n\r\nexport default ColivingDetail;\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n\tcontainer: {\r\n\t\tmarginBottom: theme.spacing(5),\r\n\t},\r\n\theader: {\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t},\r\n}));\r\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Select from '@material-ui/core/Select';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport { useSelector, useDispatch } from 'react-redux';\nimport { changeLocale } from '@redux/actions/localeActions';\n\nconst useStyles = makeStyles(() => ({\n\t'@global': {\n\t\t'.MuiOutlinedInput-notchedOutline': {\n\t\t\tborder: '1px solid #EAEAEA',\n\t\t},\n\t},\n}));\n\nconst LanguagePicker = ({ onChange, languages }) => {\n\tconst { locale } = useSelector(state => state.locale);\n\tconst classes = useStyles();\n\tconst dispatch = useDispatch();\n\n\tuseEffect(() => {\n\t\tconst queryString = window.location.search;\n\t\tconst urlParams = new URLSearchParams(queryString);\n\t\tconst language = urlParams.get('language');\n\n\t\tconst defaultLocale = language || 'en';\n\n\t\tdispatch(changeLocale(defaultLocale));\n\t}, [dispatch]);\n\n\treturn (\n\t\t<Select\n\t\t\tvalue={locale}\n\t\t\tonChange={onChange}\n\t\t\tvariant=\"outlined\"\n\t\t\tclasses={classes}\n\t\t\tstyle={{ margin: '0px 5px' }}\n\t\t>\n\t\t\t{languages.map((lang, i) => (\n\t\t\t\t<MenuItem key={i} value={lang}>\n\t\t\t\t\t{lang.toUpperCase()}\n\t\t\t\t</MenuItem>\n\t\t\t))}\n\t\t</Select>\n\t);\n};\n\nLanguagePicker.propTypes = {\n\tonChange: PropTypes.func,\n\tlanguages: PropTypes.array.isRequired,\n};\n\nexport default LanguagePicker;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\n\nimport { useSelector } from 'react-redux';\n\nimport { Typography } from '@material-ui/core';\n\nimport { Button } from '@common/components';\n\nimport { useTranslation } from '@common/utils';\nimport { Link } from 'react-router-dom';\n\nfunction Banner({ params }) {\n\tconst classes = useStyles();\n\tconst tr = useTranslation();\n\tconst { locale } = useSelector(state => state.locale);\n\n\treturn (\n\t\t<div className={classes.banner}>\n\t\t\t<Typography variant=\"h3\">\n\t\t\t\t{tr('Need more rooms?')}\n\t\t\t</Typography>\n\t\t\t<div className={classes.action}>\n\t\t\t\t<Button color=\"dark\" style={{ minWidth: '240px' }} component={Link} to={`/${params}&language=${locale}`}>{tr('Add Room')}</Button>\n\t\t\t</div>\n\t\t\t<Typography variant=\"body2\" className={classes.note}>\n\t\t\t\t{tr('We will hold your reservation until you add all rooms you need.')}\n\t\t\t</Typography>\n\t\t</div>\n\t);\n}\n\nBanner.propTypes = {\n\tparams: PropTypes.string,\n};\n\nexport default Banner;\n\nconst useStyles = makeStyles(theme => ({\n\tbanner: {\n\t\tborder: `1px solid ${theme.palette.custom.borders}`,\n\t\tborderRadius: '4px',\n\t\tmarginBottom: theme.spacing(5),\n\t\tpadding: `${theme.spacing(2)}px ${theme.spacing(1)}px`,\n\t\ttextAlign: 'center',\n\n\t\t[theme.breakpoints.up('md')]: {\n\t\t\tpadding: `${theme.spacing(4)}px ${theme.spacing(3)}px`,\n\t\t},\n\t},\n\taction: {\n\t\tpadding: theme.spacing(3),\n\t},\n\tnote: {\n\t\tcolor: theme.palette.primary.light,\n\t},\n}));\n","import React from 'react';\r\n\r\nimport { SvgIcon } from '@material-ui/core';\r\n\r\nfunction Clear(props) {\r\n\treturn (\r\n\t\t<SvgIcon {...props}>\r\n\t\t\t<path\r\n\t\t\t\tfill=\"currentColor\"\r\n\t\t\t\td=\"M5,20.976h1V9.001H5V20.976z M8,20.976h1V9.001H8V20.976z M11,20.976h1V9.001h-1V20.976z M14,20.976h1V9.001h-1V20.976z M19,6.037h-1H2H1V3.542c0-0.275,0.225-0.499,0.5-0.499h17c0.275,0,0.5,0.224,0.5,0.499V6.037z M17,21.505c0,0.825-0.673,1.497-1.5,1.497h-11c-0.827,0-1.5-0.672-1.5-1.497V7.035h14V21.505z M5,1.497 c0-0.275,0.225-0.499,0.5-0.499h9c0.275,0,0.5,0.224,0.5,0.499v0.499H5V1.497z M20,3.542c0-0.825-0.673-1.497-1.5-1.497H16V1.497 C16,0.672,15.327,0,14.5,0h-9C4.673,0,4,0.672,4,1.497v0.548H1.5C0.673,2.045,0,2.716,0,3.542v3.493h2v14.47 C2,22.881,3.121,24,4.5,24h11c1.379,0,2.5-1.119,2.5-2.495V7.035h2V3.542z\"\r\n\t\t\t/>\r\n\t\t</SvgIcon>\r\n\t);\r\n}\r\n\r\nexport default Clear;\r\n","import React from 'react';\r\n\r\nimport { SvgIcon } from '@material-ui/core';\r\n\r\nfunction IconLeft(props) {\r\n\treturn (\r\n\t\t<SvgIcon {...props}>\r\n\t\t\t<path\r\n\t\t\t\tfill=\"currentColor\"\r\n\t\t\t\td=\"M14.998,6c0.272,0,0.544,0.11,0.742,0.327 c0.371,0.409,0.341,1.042-0.068,1.413L10.977,12l4.695,4.26c0.409,0.371,0.439,1.004,0.068,1.413 c-0.373,0.408-1.008,0.438-1.416,0.067L8,12l6.324-5.74C14.516,6.086,14.758,6,14.998,6\"\r\n\t\t\t/>\r\n\t\t</SvgIcon>\r\n\t);\r\n}\r\n\r\nexport default IconLeft;\r\n","import React from 'react';\r\n\r\nimport { SvgIcon } from '@material-ui/core';\r\n\r\nfunction GalleryRight(props) {\r\n\treturn (\r\n\t\t<SvgIcon {...props}>\r\n\t\t\t<path\r\n\t\t\t\tfill=\"currentColor\"\r\n\t\t\t\td=\"M9.002,18c-0.272,0-0.544-0.11-0.742-0.327 c-0.371-0.409-0.341-1.042,0.068-1.413L13.023,12L8.328,7.74C7.919,7.369,7.889,6.736,8.26,6.327 C8.633,5.919,9.268,5.889,9.676,6.26L16,12l-6.324,5.74C9.484,17.914,9.242,18,9.002,18\"\r\n\t\t\t/>\r\n\t\t</SvgIcon>\r\n\t);\r\n}\r\n\r\nexport default GalleryRight;\r\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector } from 'react-redux';\n\nimport * as qs from 'query-string';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Button } from '@material-ui/core';\nimport { Card, Typography, Table, TableBody, TableRow, TableCell } from '@material-ui/core';\n\nimport moment from 'moment';\n\nimport { useTranslation, useDetails } from '@common/utils';\nimport { useSettings } from '@common/hooks';\nimport { Link } from 'react-router-dom';\n\nimport { ClearIcon } from '@common/components/Icon';\n\nfunction BookingCard({ booking, removeReservations }) {\n\tconst classes = useStyles();\n\tconst tr = useTranslation();\n\tconst { locale } = useSelector(state => state.locale);\n\n\tconst { currencySymbol } = useSettings();\n\n\tconst { details: product } = useDetails(`/api/kiosks/coliving/products/${booking.product}`, {\n\t\tfrom: '',\n\t\tprice: 0,\n\t\tproduct: '',\n\t\tproductAssetPersonCapacity: 0,\n\t\tproductAssetType: '',\n\t\tproductPersonCapacity: 0,\n\t\tquantity: 0,\n\t\treservation: [],\n\t\tto: '',\n\t\ttotal: 0,\n\t\ttotalServices: 0,\n\t\ti18n: {},\n\t}, [booking.product]);\n\n\tconst isDorm = product.assetType === 'dorm';\n\n\tconst duration = moment(booking.to).endOf('day').diff(moment(booking.from).startOf('day'), 'days');\n\n\treturn (\n\t\t<Card className={classes.card}>\n\t\t\t<div className={classes.product}>\n\t\t\t\t<Link to={`/${booking.product}?${qs.stringify({ from: booking.from, to: booking.to })}`} className={classes.link}>\n\t\t\t\t\t<div className={classes.image} style={{ backgroundImage: product.image ? `url(/images/${product.image})` : 'none' }} />\n\t\t\t\t</Link>\n\t\t\t</div>\n\t\t\t<div className={classes.info}>\n\t\t\t\t<div>\n\t\t\t\t\t<Typography variant=\"h4\" className={classes.headline}>\n\t\t\t\t\t\t{product?.i18n[locale]?.title || product.title}\n\t\t\t\t\t</Typography>\n\t\t\t\t</div>\n\t\t\t\t{booking.from && booking.to && <div className={classes.dates}>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<b>{tr('Check-in')}</b>\n\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t\t{moment(booking.from).format('MMM DD, YYYY')}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<b>{tr('Check-out')}</b>\n\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t\t{moment(booking.to).format('MMM DD, YYYY')}\n\t\t\t\t\t</div>\n\t\t\t\t</div>}\n\t\t\t</div>\n\n\t\t\t<Table className={classes.table}>\n\t\t\t\t<TableBody>\n\t\t\t\t\t<TableRow>\n\t\t\t\t\t\t<TableCell className={`${classes.col} ${classes.section}`} colSpan=\"3\">\n\t\t\t\t\t\t\t{tr((booking.from && booking.to) ? isDorm ? 'Beds' : 'Rooms' : 'Items')}\n\t\t\t\t\t\t</TableCell>\n\t\t\t\t\t</TableRow>\n\t\t\t\t\t<TableRow>\n\t\t\t\t\t\t{booking.from && booking.to && <TableCell className={`${classes.col} ${classes.first}`}>1 {tr(isDorm ? 'bed' : 'room')}</TableCell>}\n\t\t\t\t\t\t{(!booking.from || !booking.to) && <TableCell className={`${classes.col} ${classes.first}`}>1 {tr('item')}</TableCell>}\n\t\t\t\t\t\t<TableCell className={classes.col} align=\"right\"></TableCell>\n\t\t\t\t\t\t<TableCell className={`${classes.col} ${classes.last}`} align=\"right\">{booking.price} {currencySymbol}</TableCell>\n\t\t\t\t\t</TableRow>\n\t\t\t\t\t{booking.quantity > 1 && <TableRow>\n\t\t\t\t\t\t<TableCell className={`${classes.col} ${classes.colQTY} ${classes.first}`}>{tr('Quantity')}</TableCell>\n\t\t\t\t\t\t<TableCell className={`${classes.col} ${classes.colQTY}`} align=\"right\"></TableCell>\n\t\t\t\t\t\t<TableCell className={`${classes.col} ${classes.colQTY} ${classes.last}`} align=\"right\">{booking.quantity}</TableCell>\n\t\t\t\t\t</TableRow>}\n\t\t\t\t\t <TableRow>\n\t\t\t\t\t\t<TableCell className={`${classes.col} ${classes.colQTY} ${classes.first}`}>{tr('Nights')}</TableCell>\n\t\t\t\t\t\t<TableCell className={`${classes.col} ${classes.colQTY}`} align=\"right\"></TableCell>\n\t\t\t\t\t\t<TableCell className={`${classes.col} ${classes.colQTY} ${classes.last}`} align=\"right\">{duration}</TableCell>\n\t\t\t\t\t</TableRow>\n\n\t\t\t\t\t{booking.totalServices > 0 &&\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<TableRow>\n\t\t\t\t\t\t\t\t<TableCell className={`${classes.col} ${classes.sep}`} colSpan=\"3\">\n\t\t\t\t\t\t\t\t\t<div className={classes.separator} />\n\t\t\t\t\t\t\t\t</TableCell>\n\t\t\t\t\t\t\t</TableRow>\n\t\t\t\t\t\t\t<TableRow>\n\t\t\t\t\t\t\t\t<TableCell className={`${classes.col} ${classes.section}`} colSpan=\"3\">\n\t\t\t\t\t\t\t\t\t{tr('Services')}\n\t\t\t\t\t\t\t\t</TableCell>\n\t\t\t\t\t\t\t</TableRow>\n\t\t\t\t\t\t\t<TableRow className={classes.row}>\n\t\t\t\t\t\t\t\t<TableCell className={`${classes.col} ${classes.first}`}>-</TableCell>\n\t\t\t\t\t\t\t\t<TableCell className={classes.col} align=\"right\"></TableCell>\n\t\t\t\t\t\t\t\t<TableCell className={`${classes.col} ${classes.last}`} align=\"right\">{booking.totalServices} {currencySymbol}</TableCell>\n\t\t\t\t\t\t\t</TableRow>\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\n\t\t\t\t\t<TableRow>\n\t\t\t\t\t\t<TableCell className={`${classes.col} ${classes.sep}`} colSpan=\"3\">\n\t\t\t\t\t\t\t<div className={classes.separator} />\n\t\t\t\t\t\t</TableCell>\n\t\t\t\t\t</TableRow>\n\t\t\t\t\t<TableRow className={classes.row}>\n\t\t\t\t\t\t<TableCell className={`${classes.col} ${classes.first}`}><b>{tr('Price (taxes incl.)')}</b></TableCell>\n\t\t\t\t\t\t<TableCell className={classes.col}></TableCell>\n\t\t\t\t\t\t<TableCell className={`${classes.col} ${classes.last}`} align=\"right\"><b>{booking.total} {currencySymbol}</b></TableCell>\n\t\t\t\t\t</TableRow>\n\t\t\t\t</TableBody>\n\t\t\t</Table>\n\t\t\t{removeReservations && !booking.order.length && !booking.fee && !booking.mandatory &&\n\t\t\t\t<div className={classes.removeBox}>\n\t\t\t\t\t<Button className={classes.removeButton} onClick={() => removeReservations(booking.reservation)}>\n\t\t\t\t\t\t<ClearIcon className={classes.icon} />\n\t\t\t\t\t\t{tr('remove reservation')}\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</Card>\n\t);\n}\n\nBookingCard.propTypes = {\n\tbooking: PropTypes.object.isRequired,\n\tremoveReservations: PropTypes.func,\n};\n\nexport default BookingCard;\n\nconst useStyles = makeStyles(theme => ({\n\tcard: {\n\t\tborderRadius: '4px',\n\t\tborder: `1px solid ${theme.palette.custom.borders}`,\n\t\tboxShadow: 'none',\n\t\tpadding: theme.spacing(3),\n\t},\n\theadline: {\n\t\tmarginBottom: theme.spacing(2),\n\t},\n\tproduct: {\n\t\tmarginBottom: theme.spacing(3),\n\t},\n\tlink: {\n\t\tflex: '0 0 calc(50% + 12px)',\n\t\theight: '180px',\n\t},\n\timage: {\n\t\twidth: '118%',\n\t\theight: '180px',\n\t\tmargin: '-24px 24px 0 -24px',\n\t\tbackgroundColor: theme.palette.custom.background,\n\t\tborderRadius: '4px 0 0',\n\t\tbackgroundSize: 'cover',\n\t\tbackgroundRepeat: 'no-repeat',\n\t\tbackgroundPosition: 'center',\n\n\t\t[theme.breakpoints.down('sm')]: {\n\t\t\tdisplay: 'none',\n\t\t},\n\t},\n\tremoveBox: {\n\t\ttextAlign: 'center',\n\t},\n\tremoveButton: {\n\t\tmarginBottom: '-12px',\n\t\tcolor: theme.palette.primary.light,\n\t\ttextTransform: 'lowercase',\n\t},\n\ticon: {\n\t\tfontSize: '20px',\n\t\tmarginRight: '8px',\n\t},\n\tinfo: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t\tjustifyContent: 'space-between',\n\t\tpaddingBottom: '24px',\n\t\tflex: 1,\n\t},\n\tsection: {\n\t\tpaddingLeft: 0,\n\t\tfontSize: '18px',\n\t\tcolor: theme.palette.primary.light,\n\t\tfontWeight: 600,\n\t},\n\tcol: {\n\t\tpaddingTop: theme.spacing(1),\n\t\tpaddingBottom: theme.spacing(1),\n\t\tborderBottom: 0,\n\t},\n\tcolQTY: {\n\t\tpaddingTop: 0,\n\t},\n\tfirst: {\n\t\tpaddingLeft: 0,\n\t},\n\tlast: {\n\t\tpaddingRight: 0,\n\t},\n\tsep: {\n\t\tpaddingLeft: 0,\n\t\tpaddingRight: 0,\n\t},\n\tseparator: {\n\t\theight: '1px',\n\t\tbackgroundColor: theme.palette.custom.separator,\n\t},\n\n\n\t// header: {\n\t// \tdisplay: 'flex',\n\t// \tflexDirection: 'row',\n\t// },\n\t// aside: {\n\t// \tflex: '0 0 auto',\n\t// },\n\t// content: {\n\t// \tpadding: `${theme.spacing(2)}px ${theme.spacing(3)}px`,\n\t// },\n\t// actions: {\n\t// \tpadding: '0 24px 24px',\n\t// },\n\t// media: {\n\t// \theight: '248px',\n\t// \tbackgroundColor: theme.palette.custom.background,\n\t// },\n\t// props: {\n\t// \tdisplay: 'flex',\n\t// \tflexDirection: 'row',\n\t// \tmarginBottom: theme.spacing(2),\n\t// },\n\t// prop: {\n\t// \tpadding: `5px ${theme.spacing(2)}px`,\n\t// \tborder: `1px solid ${theme.palette.custom.borders}`,\n\t// \tcolor: theme.palette.primary.light,\n\t// \tborderRadius: '18px',\n\t// \twhiteSpace: 'nowrap',\n\t// \t'&:nth-child(n+2)': {\n\t// \t\tmarginLeft: theme.spacing(2),\n\t// \t}\n\t// },\n\t// price: {\n\t// \tlineHeight: '2.1rem',\n\t// },\n\t// currency: {\n\t// \tcolor: theme.palette.primary.light,\n\t// \tpaddingLeft: '4px',\n\t// },\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Grid } from '@material-ui/core';\n\nimport BookingCard from './BookingCard';\n\nfunction Bookings({ bookings = [], removeReservations }) {\n\treturn (\n\t\t<Grid\n\t\t\tcontainer\n\t\t\titem\n\t\t\tspacing={2}\n\t\t\txs={12} md={8}\n\t\t\talignContent='space-between'\n\t\t>\n\t\t\t<Grid container spacing={3}>\n\t\t\t\t{bookings.map((booking, i) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Grid key={`booking-${i}`} item xs={12} md={bookings.length > 1 ? 6 : 8}>\n\t\t\t\t\t\t\t<BookingCard booking={booking} removeReservations={removeReservations} />\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</Grid>\n\t\t</Grid>\n\t);\n}\n\nBookings.propTypes = {\n\tbookings: PropTypes.array,\n\tremoveReservations: PropTypes.func,\n};\n\nexport default Bookings;\n\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport { Typography } from '@material-ui/core';\r\n\r\nimport { Button } from '@common/components';\r\n\r\nimport { useTranslation } from '@common/utils';\r\nimport { Link } from 'react-router-dom';\r\n\r\nfunction BookingExpired() {\r\n\tconst classes = useStyles();\r\n\tconst tr = useTranslation();\r\n\tconst { locale } = useSelector(state => state.locale);\r\n\r\n\treturn (\r\n\t\t<div className={classes.banner}>\r\n\t\t\t<Typography variant=\"h3\" className={classes.error}>\r\n\t\t\t\t{tr('Your booking expired')}\r\n\t\t\t</Typography>\r\n\t\t\t<div className={classes.action}>\r\n\t\t\t\t<Button color=\"dark\" style={{ minWidth: '240px' }} component={Link} to={`/?language=${locale}`}>{tr('Search for Room')}</Button>\r\n\t\t\t</div>\r\n\t\t\t<Typography variant=\"body2\" className={classes.note}>\r\n\t\t\t\t{tr('We hold bookings for 15 minutes.')}\r\n\t\t\t</Typography>\r\n\t\t</div>\r\n\t);\r\n}\r\n\r\nexport default BookingExpired;\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n\tbanner: {\r\n\t\tborder: `1px solid ${theme.palette.custom.borders}`,\r\n\t\tborderRadius: '4px',\r\n\t\tmarginBottom: theme.spacing(5),\r\n\t\tpadding: `${theme.spacing(4)}px ${theme.spacing(3)}px`,\r\n\t\ttextAlign: 'center',\r\n\t},\r\n\terror: {\r\n\t\tcolor: theme.palette.error.main,\r\n\t},\r\n\taction: {\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\tnote: {\r\n\t\tcolor: theme.palette.primary.light,\r\n\t},\r\n}));\r\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\n\nimport { useSelector } from 'react-redux';\n\nimport { Typography } from '@material-ui/core';\n\nimport { Button } from '@common/components';\n\nimport { useTranslation } from '@common/utils';\nimport { useSettings } from '@common/hooks';\nimport { Link } from 'react-router-dom';\n\nimport * as qs from 'query-string';\n\nimport moment from 'moment';\n\nimport { ClearIcon } from '@common/components/Icon';\n\nfunction Summary({ total, totalFees, totalBeds, totalRooms, totalServices, totalMandatory, bookingId, discounts, uninvoicedTotal, isInitial, productsGrouped = [], productById, totalUpgrades, removeReservations }) {\n\tconst classes = useStyles();\n\tconst tr = useTranslation();\n\tconst { locale } = useSelector(state => state.locale);\n\n\tconst { currencySymbol, isUpgradesEnabled } = useSettings();\n\n\tconst trackProceedToCheckout = () => {\n\t\twindow.dataLayer = window.dataLayer || [];\n\t\twindow.dataLayer.push({ 'event': 'Proceed to Checkout' });\n\t};\n\n\tconst bookableProducts = productsGrouped.filter(p => !p.fee && !p.mandatory && !p.upgrade);\n\n\treturn (\n\t\t<div className={classes.summary}>\n\t\t\t{isUpgradesEnabled && bookableProducts.map((room, index) => (\n\t\t\t\t<div key={index} className={classes.roomsConatiner}>\n\t\t\t\t\t<div className={classes.product}>\n\t\t\t\t\t\t<Link to={`/${room.product}?${qs.stringify({ from: room.from, to: room.to, language: locale })}`} className={classes.link}>\n\t\t\t\t\t\t\t<div className={classes.image} style={{ backgroundImage: productById[room.product]?.image ? `url(/images/${productById[room.product]?.image })` : 'none' }} />\n\t\t\t\t\t\t</Link>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className={classes.info}>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<Typography variant=\"h4\" className={classes.headline}>\n\t\t\t\t\t\t\t\t{productById[room.product]?.i18n[locale]?.title || productById[room.product]?.title}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{room.from && room.to && <div className={classes.dates}>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<b>{tr('Check-in')}</b>\n\t\t\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t\t\t\t{moment(room.from).format('MMM DD, YYYY')}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<b>{tr('Check-out')}</b>\n\t\t\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t\t\t\t{moment(room.to).format('MMM DD, YYYY')}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{removeReservations && !room.order.length &&  (\n\t\t\t\t\t\t\t<div className={classes.removeBox}>\n\t\t\t\t\t\t\t\t<Button className={classes.removeButton} onClick={() => removeReservations(room.reservation)}>\n\t\t\t\t\t\t\t\t\t<ClearIcon className={classes.icon} />\n\t\t\t\t\t\t\t\t\t{tr('remove')}\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t))}\n\t\t\t{!isUpgradesEnabled &&\n\t\t\t\t<Typography variant=\"h3\">\n\t\t\t\t\t{tr('Summary')}\n\t\t\t\t</Typography>\n\t\t\t}\n\t\t\t<div className={classes.rows}>\n\n\t\t\t\t{totalRooms > 0 &&\n\t\t\t\t\t<>\n\t\t\t\t\t\t<div className={classes.row}>\n\t\t\t\t\t\t\t<div>{tr('Rooms')}</div>\n\t\t\t\t\t\t\t<div>{totalRooms} {currencySymbol}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className={classes.separator} />\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t\t{totalBeds > 0 &&\n\t\t\t\t\t<>\n\t\t\t\t\t\t<div className={classes.row}>\n\t\t\t\t\t\t\t<div>{tr('Beds')}</div>\n\t\t\t\t\t\t\t<div>{totalBeds} {currencySymbol}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className={classes.separator} />\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t\t{totalFees > 0 &&\n\t\t\t\t\t<>\n\t\t\t\t\t\t<div className={classes.row}>\n\t\t\t\t\t\t\t<div>{tr('City tax')}</div>\n\t\t\t\t\t\t\t<div>{totalFees} {currencySymbol}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className={classes.separator} />\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t\t{(totalMandatory > 0 || totalUpgrades > 0) &&\n\t\t\t\t\t<>\n\t\t\t\t\t\t<div className={classes.row} style={{ paddingBottom: '4px' }}>\n\t\t\t\t\t\t\t<div>{tr('Extras')}</div>\n\t\t\t\t\t\t\t<div>{(totalMandatory || 0) + (totalUpgrades || 0)} {currencySymbol}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{productsGrouped.length > 0 && (productsGrouped || []).map((p, i) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<div key={`product-${i}`}>\n\t\t\t\t\t\t\t\t\t{p.mandatoryBookingProducts?.length > 0 &&\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t{p.mandatoryBookingProducts.map(p =>\n\t\t\t\t\t\t\t\t\t\t\t\t<div key={p._id} className={classes.subRow}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div>&nbsp;&nbsp;&nbsp;&nbsp;{productById[p.product]?.i18n[locale]?.title || productById[p.product]?.title}</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div>{p.total} {currencySymbol}/{productById[p.product]?.mandatoryType === 'recurring' ? tr('month') : tr('unit')}</div>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>,\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t{p.upgrade === true && !!productById[p.product] &&\n\t\t\t\t\t\t\t\t\t\t<div className={classes.subRow}>\n\t\t\t\t\t\t\t\t\t\t\t<div>&nbsp;&nbsp;&nbsp;&nbsp;{productById[p.product]?.i18n[locale]?.title || productById[p.product]?.title}</div>\n\t\t\t\t\t\t\t\t\t\t\t<div>{p.total} {currencySymbol}/{productById[p.product]?.upgradeType === 'recurring' ? tr('month') : tr('unit')}</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t\t{totalServices > 0 && <div className={classes.row}>\n\t\t\t\t\t<div>{tr('Services')}</div>\n\t\t\t\t\t<div>{totalServices} {currencySymbol}</div>\n\t\t\t\t</div>}\n\n\t\t\t\t<div className={classes.separator} />\n\n\t\t\t\t{discounts.filter(d => d.code && d.appliedAmount >= 0).map((d, i) => <div key={i} className={`${classes.row} ${classes.total}`}>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t{tr(`Discount (${d.code})`)}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t&minus;{d.appliedAmount} {currencySymbol}\n\t\t\t\t\t</div>\n\t\t\t\t</div>)}\n\n\t\t\t\t<div className={`${classes.row} ${classes.total}`}>\n\t\t\t\t\t<div>{tr(!isInitial && uninvoicedTotal > 0 ? 'Total paid' : 'Total')}</div>\n\t\t\t\t\t<div>{total} {currencySymbol}</div>\n\t\t\t\t</div>\n\n\t\t\t\t{!isInitial && uninvoicedTotal > 0 && <div className={`${classes.row} ${classes.total}`}>\n\t\t\t\t\t<div>{tr('Total due')}</div>\n\t\t\t\t\t<div>{uninvoicedTotal} {currencySymbol}</div>\n\t\t\t\t</div>}\n\t\t\t</div>\n\n\t\t\t{(isInitial || uninvoicedTotal > 0) && <Button\n\t\t\t\twide={true} color=\"primary\"\n\t\t\t\tcomponent={Link}\n\t\t\t\tto={`/checkout/${bookingId}/?language=${locale}`}\n\t\t\t\tonClick={trackProceedToCheckout}\n\t\t\t>\n\t\t\t\t{tr('Proceed to checkout')}\n\t\t\t</Button>}\n\t\t</div>\n\t);\n}\n\nSummary.propTypes = {\n\ttotal: PropTypes.number.isRequired,\n\ttotalFees: PropTypes.number.isRequired,\n\ttotalBeds: PropTypes.number.isRequired,\n\ttotalRooms: PropTypes.number.isRequired,\n\ttotalServices: PropTypes.number.isRequired,\n\ttotalMandatory: PropTypes.number.isRequired,\n\tbookingId: PropTypes.string.isRequired,\n\tdiscounts: PropTypes.array,\n\tuninvoicedTotal: PropTypes.number,\n\tisInitial: PropTypes.bool,\n\tproductsGrouped: PropTypes.array,\n\tproductById: PropTypes.object,\n\ttotalUpgrades: PropTypes.number.isRequired,\n\tremoveReservations: PropTypes.func,\n};\n\nSummary.defaultProps = {\n\tdiscounts: [],\n\tuninvoicedTotal: 0,\n\tisInitial: true,\n};\n\nexport default Summary;\n\nconst useStyles = makeStyles(theme => ({\n\tsummary: {\n\t\tmarginBottom: theme.spacing(5),\n\t\tpadding: `${theme.spacing(4)}px ${theme.spacing(3)}px`,\n\t\tborderRadius: '4px',\n\t\tbackgroundColor: theme.palette.custom.background,\n\t},\n\trows: {\n\t\tpadding: `${theme.spacing(2)}px 0`,\n\t},\n\trow: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'row',\n\t\tjustifyContent: 'space-between',\n\t\tpadding: `${theme.spacing(2)}px 0`,\n\t},\n\tsubRow: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'row',\n\t\tjustifyContent: 'space-between',\n\t\tfontSize: 'small',\n\t},\n\ttotal: {\n\t\tfontWeight: 600,\n\t},\n\tseparator: {\n\t\theight: '1px',\n\t\tbackgroundColor: theme.palette.custom.separator,\n\t},\n\tremoveBox: {\n\t\tmarginTop: theme.spacing(1),\n\t},\n\tremoveButton: {\n\t\tcolor: theme.palette.primary.light,\n\t\ttextTransform: 'lowercase',\n\t\tpadding: 0,\n\t},\n\tproduct: {\n\t\tflexDirection: 'row',\n\t\tmarginBottom: theme.spacing(3),\n\t},\n\tlink: {\n\t\tflex: '0 0 calc(50% + 12px)',\n\t\theight: '180px',\n\t},\n\timage: {\n\t\tflex: 1,\n\t\twidth: '100%',\n\t\theight: '200px',\n\t\tbackgroundColor: theme.palette.custom.background,\n\t\tborderRadius: '4px 0 0',\n\t\tbackgroundSize: 'cover',\n\t\tbackgroundRepeat: 'no-repeat',\n\t\tbackgroundPosition: 'center',\n\n\t\t[theme.breakpoints.down('sm')]: {\n\t\t\tdisplay: 'none',\n\t\t},\n\t},\n\troomsConatiner: {\n\t\tmarginBottom: theme.spacing(4),\n\t},\n}));\n","import React, { useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nimport { useSelector } from 'react-redux';\nimport { keyBy, uniq } from 'lodash';\nimport moment from 'moment';\n\nimport { Typography } from '@material-ui/core';\nimport { useTranslation, toast } from '@common/utils';\nimport { useSettings } from '@common/hooks';\nimport http from '@common/http';\n\nfunction CheckoutSummary({ booking, pricing, VATLines = [] }) {\n\tconst classes = useStyles();\n\tconst tr = useTranslation();\n\tconst { locale } = useSelector(state => state.locale);\n\n\tconst { currencySymbol } = useSettings();\n\n\tconst { totalBeds, totalRooms, totalServices, totalFees, totalMandatory, products, productsGrouped, totalUpgrades } = booking;\n\n\tconst {\n\t\ttotal,\n\t\ttotalVAT,\n\t\tdiscountWithCodeInfo: {\n\t\t\tappliedAmount,\n\t\t\tcode,\n\t\t},\n\t} = pricing;\n\n\tconst [productById, setProductById] = useState({});\n\n\tuseEffect(() => {\n\n\t\tPromise\n\t\t\t.all(uniq(products, 'product').map(p => http.get(`/api/kiosks/coliving/products/${p.product}`).catch(() => ({}))))\n\t\t\t.then(responses => responses.map(response => response.data).filter(Boolean))\n\t\t\t.then(products => setProductById(keyBy(products, '_id')))\n\t\t\t.catch(error => {\n\t\t\t\tconsole.error(error);\n\t\t\t\ttoast(error);\n\t\t\t});\n\n\t}, [productsGrouped]);\n\n\treturn (\n\t\t<>\n\t\t\t<div className={classes.summary}>\n\t\t\t\t<Typography variant=\"h3\">\n\t\t\t\t\t{tr('Booking details')}\n\t\t\t\t</Typography>\n\n\t\t\t\t{booking.productsGrouped.map((p, i) => {\n\n\t\t\t\t\tconst product = productById[p.product];\n\n\t\t\t\t\tconst productVAT = VATLines.find(v => v.products.includes(String(p.product)));\n\n\t\t\t\t\tif (!product) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (p.fee) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (p.mandatory) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (p.upgrade) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst isDorm = p.productAssetType === 'dorm';\n\n\t\t\t\t\tconst duration = moment(p.to).endOf('day').diff(moment(p.from).startOf('day'), 'days');\n\n\t\t\t\t\tconst cityTaxProduct = booking.productsGrouped.find(p => p.fee);\n\t\t\t\t\tconst cityTaxVAT = VATLines.find(v => v.products.includes(String(cityTaxProduct?.product)));\n\t\t\t\t\tconst cityTaxPricePerProduct = cityTaxProduct && p.productIsCityTaxApplied ? cityTaxProduct.price * duration * p.productPersonCapacity : 0;\n\t\t\t\t\tconst productMandatoryTotal = (p.mandatoryBookingProducts || []).reduce((accumulator, product) => {\n\t\t\t\t\t\treturn accumulator + product.total;\n\t\t\t\t\t}, 0);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div key={`product-${i}`}>\n\t\t\t\t\t\t\t<div className={classes.product}>\n\t\t\t\t\t\t\t\t<Typography variant=\"h4\" className={classes.headline}>\n\t\t\t\t\t\t\t\t\t{product?.i18n[locale]?.title || product?.title || '-'}\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t{p.from && p.to && <div className={classes.dates}>\n\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t<b>{tr('Check-in')}</b>\n\t\t\t\t\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t\t\t\t\t\t{moment(p.from).format('MMM DD, YYYY')}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t<b>{tr('Check-Out')}</b>\n\t\t\t\t\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t\t\t\t\t\t{moment(p.to).format('MMM DD, YYYY')}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>}\n\t\t\t\t\t\t\t</div>\n\n\n\t\t\t\t\t\t\t<div className={classes.rows}>\n\t\t\t\t\t\t\t\t<div className={classes.row} style={{ paddingBottom: '4px' }}>\n\t\t\t\t\t\t\t\t\t<div>{tr(isDorm ? 'Beds' : 'Rooms')}</div>\n\t\t\t\t\t\t\t\t\t<div>{productVAT?.percent ? (p.total / (1 + productVAT?.percent / 100)).toFixed(2) : p.total.toFixed(2)}{currencySymbol}</div>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t{productVAT &&\n\t\t\t\t\t\t\t\t\t<div className={classes.row} style={{ paddingTop: 0 }}>\n\t\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t\t{`${tr('VAT')} (${productVAT?.percent || 0}%)`}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t\t{(p.total - (p.total / (1 + productVAT?.percent / 100))).toFixed(2)}{currencySymbol}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t{cityTaxProduct && p.productIsCityTaxApplied &&\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<div className={classes.row} style={{ paddingBottom: '4px' }}>\n\t\t\t\t\t\t\t\t\t\t\t<div>{tr('City tax')}</div>\n\t\t\t\t\t\t\t\t\t\t\t<div>{(cityTaxPricePerProduct / (1 + cityTaxVAT?.percent / 100)).toFixed(2)}{currencySymbol}</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t{cityTaxVAT &&\n\t\t\t\t\t\t\t\t\t\t\t<div className={classes.row} style={{ paddingTop: 0 }}>\n\t\t\t\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{`${tr('VAT')} (${cityTaxVAT?.percent || 0}%)`}\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{(cityTaxPricePerProduct - (cityTaxPricePerProduct / (1 + cityTaxVAT?.percent / 100))).toFixed(2)}{currencySymbol}\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t<div className={classes.separator} />\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t{p.totalServices > 0 && <><div className={classes.separator} />\n\t\t\t\t\t\t\t\t\t<div className={classes.row}>\n\t\t\t\t\t\t\t\t\t\t<div>{tr('Services')}</div>\n\t\t\t\t\t\t\t\t\t\t<div>{p.totalServices}{currencySymbol}</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</>}\n\n\t\t\t\t\t\t\t\t{p.mandatoryBookingProducts?.length > 0 &&\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<div className={classes.row} style={{ paddingBottom: '4px' }}>\n\t\t\t\t\t\t\t\t\t\t\t<div>{tr('Extras')}</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t\t{p.mandatoryBookingProducts.map(p => {\n\t\t\t\t\t\t\t\t\t\t\tconst vatPercent = VATLines.find(v => v.products.includes(String(p.product)))?.percent;\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<div key={p._id} style={{ paddingBottom: '12px' }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className={classes.subRow}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div>&nbsp;&nbsp;&nbsp;&nbsp;{productById[p.product]?.i18n[locale]?.title || productById[p.product]?.title}</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div>{(p.total - (p.total - (p.total / (1 + vatPercent / 100)))).toFixed(2)}{currencySymbol}/{productById[p.product]?.mandatoryType === 'recurring' ? tr('month') : tr('unit')}</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className={classes.subRow}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t&nbsp;&nbsp;&nbsp;&nbsp;{`${tr('VAT')} (${vatPercent || 0}%)`}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{(p.total - (p.total / (1 + vatPercent / 100))).toFixed(2)}{currencySymbol}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t<div className={classes.separator} />\n\t\t\t\t\t\t\t\t<div className={`${classes.row} ${classes.total}`}>\n\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t{tr('Total (taxes incl.)')}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t{p.total + productMandatoryTotal + (cityTaxProduct?.total || 0)}{currencySymbol}\n\t\t\t\t\t\t\t\t\t\t{/* {p.total + ((cityTaxPricePerProduct || 0) * (p.quantity || 1)) + (p.mandatoryBookingProducts.reduce((p, c) => p + c.total, 0))}{currencySymbol} */}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\n\t\t\t\t{booking.productsGrouped.filter(i => i.upgrade).length > 0 &&\n\t\t\t\t\t<>\n\t\t\t\t\t\t<div className={classes.separator} />\n\t\t\t\t\t\t<div className={classes.row} style={{ paddingBottom: '4px' }}>\n\t\t\t\t\t\t\t<div>{tr('Extras and upgrades')}</div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{booking.productsGrouped.filter(i => i.upgrade).map(p => {\n\t\t\t\t\t\t\tconst vatPercent = VATLines.find(v => v.products.includes(String(p.product)))?.percent;\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\tp.upgrade === true && !!productById[p.product] &&\n\t\t\t\t\t\t\t\t<div key={p._id} style={{ paddingBottom: '12px' }}>\n\t\t\t\t\t\t\t\t\t<div className={classes.subRow}>\n\t\t\t\t\t\t\t\t\t\t<div>&nbsp;&nbsp;&nbsp;&nbsp;{productById[p.product]?.i18n[locale]?.title || productById[p.product]?.title}</div>\n\t\t\t\t\t\t\t\t\t\t<div>{(p.total - (p.total - (p.total / (1 + vatPercent / 100)))).toFixed(2)}{currencySymbol}/{productById[p.product]?.upgradeType === 'recurring' ? tr('month') : tr('unit')}</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div className={classes.subRow}>\n\t\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t\t&nbsp;&nbsp;&nbsp;&nbsp;{`${tr('VAT')} (${vatPercent || 0}%)`}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t\t{(p.total - (p.total / (1 + vatPercent / 100))).toFixed(2)}{currencySymbol}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\t<div className={classes.separator} />\n\t\t\t\t\t\t<div className={`${classes.row} ${classes.total}`}>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t{tr('Total (taxes incl.)')}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t{totalUpgrades}{currencySymbol}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<div className={classes.summary}>\n\t\t\t\t<Typography variant=\"h3\">\n\t\t\t\t\t{tr('Booking summary')}\n\t\t\t\t</Typography>\n\n\t\t\t\t<div className={classes.rows}>\n\n\t\t\t\t\t{totalRooms > 0 &&\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<div className={classes.row}>\n\t\t\t\t\t\t\t\t<div>{tr('Rooms')}</div>\n\t\t\t\t\t\t\t\t<div>{totalRooms}{currencySymbol}</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className={classes.separator} />\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\n\t\t\t\t\t{totalBeds > 0 &&\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<div className={classes.row}>\n\t\t\t\t\t\t\t\t<div>{tr('Beds')}</div>\n\t\t\t\t\t\t\t\t<div>{totalBeds}{currencySymbol}</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className={classes.separator} />\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\n\t\t\t\t\t{totalFees > 0 &&\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<div className={classes.row}>\n\t\t\t\t\t\t\t\t<div>{tr('City tax')}</div>\n\t\t\t\t\t\t\t\t<div>{totalFees}{currencySymbol}</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className={classes.separator} />\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\n\t\t\t\t\t{(totalMandatory > 0 || totalUpgrades > 0) &&\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<div className={classes.row}>\n\t\t\t\t\t\t\t\t<div>{tr('Extras')}</div>\n\t\t\t\t\t\t\t\t<div>{(totalMandatory || 0) + (totalUpgrades || 0)}{currencySymbol}</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className={classes.separator} />\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\n\t\t\t\t\t{totalServices > 0 && <div className={classes.row}>\n\t\t\t\t\t\t<div>{tr('Services')}</div>\n\t\t\t\t\t\t<div>{totalServices}{currencySymbol}</div>\n\t\t\t\t\t</div>}\n\n\t\t\t\t\t<div className={classes.separator} />\n\n\t\t\t\t\t{totalVAT >= 0 && VATLines.map(vat => <div key={vat.percent} className={`${classes.row}`}>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t{`${tr('VAT')} (${vat.percent}%)`}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t{vat.amount.toFixed(2)}{currencySymbol}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>)}\n\t\t\t\t\t{code && appliedAmount >= 0 && <div className={`${classes.row} ${classes.total}`}>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t{`${tr('Discount')} (${code})`}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t&minus;{appliedAmount}{currencySymbol}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>}\n\t\t\t\t\t{booking.totalUpgrades > 0 &&\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<div className={`${classes.row} ${classes.total}`}>\n\t\t\t\t\t\t\t\t<Typography variant=\"h5\">\n\t\t\t\t\t\t\t\t\t{tr('Total paid')}\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t<Typography variant=\"h5\">\n\t\t\t\t\t\t\t\t\t{booking.total - total}{currencySymbol}\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className={`${classes.row} ${classes.total}`}>\n\t\t\t\t\t\t\t\t<Typography variant=\"h5\">\n\t\t\t\t\t\t\t\t\t{tr('Total due (taxes incl.)')}\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t<Typography variant=\"h5\">\n\t\t\t\t\t\t\t\t\t{total}{currencySymbol}\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t\t{!booking.totalUpgrades < 0 || booking.totalUpgrades === 0 &&\n\t\t\t\t\t\t<div className={`${classes.row} ${classes.total}`}>\n\t\t\t\t\t\t\t<Typography variant=\"h5\">\n\t\t\t\t\t\t\t\t{tr('Total (taxes incl.)')}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t<Typography variant=\"h5\">\n\t\t\t\t\t\t\t\t{total}{currencySymbol}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nCheckoutSummary.propTypes = {\n\tbooking: PropTypes.object.isRequired,\n\tpricing: PropTypes.object.isRequired,\n\tVATLines: PropTypes.array.isRequired,\n};\n\nexport default CheckoutSummary;\n\nconst useStyles = makeStyles(theme => ({\n\tsummary: {\n\t\tmarginBottom: theme.spacing(5),\n\t\tpadding: `${theme.spacing(4)}px ${theme.spacing(3)}px 0`,\n\t\tborderRadius: '4px',\n\t\tbackgroundColor: theme.palette.custom.background,\n\t},\n\trows: {\n\t\tpadding: `${theme.spacing(1)}px 0 ${theme.spacing(2)}px`,\n\t},\n\trow: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'row',\n\t\tjustifyContent: 'space-between',\n\t\tpadding: `${theme.spacing(2)}px 0`,\n\t},\n\tsubRow: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'row',\n\t\tjustifyContent: 'space-between',\n\t\tfontSize: 'small',\n\t},\n\trowQTY: {\n\t\tpaddingTop: 0,\n\t},\n\ttotal: {\n\t\tfontWeight: 600,\n\t},\n\tseparator: {\n\t\theight: '1px',\n\t\tbackgroundColor: theme.palette.custom.separator,\n\t},\n\n\theadline: {\n\t\tmarginTop: theme.spacing(2),\n\t\tmarginBottom: theme.spacing(2),\n\t},\n\tproduct: {\n\t\t// marginBottom: theme.spacing(3),\n\t},\n\n\tsection: {\n\t\tpaddingLeft: 0,\n\t\tfontSize: '18px',\n\t\tcolor: theme.palette.primary.light,\n\t\tfontWeight: 600,\n\t},\n\tcol: {\n\t\tpaddingTop: theme.spacing(1),\n\t\tpaddingBottom: theme.spacing(1),\n\t\tborderBottom: 0,\n\t},\n\tfirst: {\n\t\tpaddingLeft: 0,\n\t},\n\tlast: {\n\t\tpaddingRight: 0,\n\t},\n\tsep: {\n\t\tpaddingLeft: 0,\n\t\tpaddingRight: 0,\n\t},\n\tseparator2: {\n\t\theight: '1px',\n\t\tbackgroundColor: theme.palette.custom.separator,\n\t},\n\n}));\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport { Button } from '@material-ui/core';\n\nimport { useTranslation } from '@common/utils';\n\nimport { DatePickers } from '@components/Coliving';\n\nfunction DateFilter({ filter, setFilter }) {\n\tconst classes = useStyles();\n\tconst [local, setLocal] = useState(filter);\n\tconst tr = useTranslation();\n\n\tconst handleSearch = () => {\n\t\tsetFilter({\n\t\t\t...filter,\n\t\t\t...local,\n\t\t});\n\t};\n\n\treturn (\n\t\t<div className={classes.component}>\n\t\t\t<DatePickers dates={local} setDates={setLocal} />\n\t\t\t<Button variant=\"contained\" color=\"primary\" className={classes.button} onClick={handleSearch}>{tr('Search')}</Button>\n\t\t</div>\n\t);\n}\n\nDateFilter.propTypes = {\n\tfilter: PropTypes.object.isRequired,\n\tsetFilter: PropTypes.func.isRequired,\n};\n\nexport default DateFilter;\n\nconst useStyles = makeStyles(theme => ({\n\tcomponent: {\n\t\t[theme.breakpoints.down('sm')]: {\n\t\t\twidth: '100%',\n\t\t},\n\t\t[theme.breakpoints.up('md')]: {\n\t\t\tdisplay: 'flex',\n\t\t\tflexDirection: 'row',\n\t\t},\n\t},\n\tbutton: {\n\t\tbackgroundColor: '#000091',\n\t\tcolor: '#fff',\n\t\tpadding: '8px 32px',\n\t\ttextTransform: 'initial',\n\t\tfontSize: '16px',\n\t\tboxShadow: 'none',\n\n\t\t[theme.breakpoints.down('sm')]: {\n\t\t\twidth: '100%',\n\t\t},\n\t\t[theme.breakpoints.up('md')]: {\n\t\t\tmarginLeft: '48px',\n\t\t\tborderRadius: '32px',\n\t\t},\n\n\t\t'&:hover': {\n\t\t\tboxShadow: 'none',\n\t\t},\n\t},\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Card, CardMedia, Typography, CardContent, CardActions } from '@material-ui/core';\n\nimport { Button } from '@common/components';\nimport { useTranslation } from '@common/utils';\nimport { useSettings } from '@common/hooks';\n\nconst ServiceCardProps = ({ personCapacity }) => {\n\tconst classes = useStyles();\n\tconst tr = useTranslation();\n\n\treturn (\n\t\t<Typography variant=\"body2\" className={classes.props}>\n\t\t\t{personCapacity && <span className={classes.prop}>{personCapacity} {tr(personCapacity > 1 ? 'guests' : 'guest')}</span>}\n\t\t\t<span className={classes.prop}>{tr('access to coworking')}</span>\n\t\t</Typography>\n\t);\n};\n\nconst ServiceCardPrice = ({ pricePerDay }) => {\n\tconst classes = useStyles();\n\tconst tr = useTranslation();\n\n\tconst { currencySymbol } = useSettings();\n\n\treturn (\n\t\t<Typography variant=\"body2\" className={classes.price}>\n\t\t\t{currencySymbol}{pricePerDay}\n\t\t\t<span className={classes.currency}> {`/${tr('day')}`}</span>\n\t\t</Typography>\n\t);\n};\n\nfunction ServiceCard({ service }) {\n\tconst classes = useStyles();\n\tconst tr = useTranslation();\n\n\treturn (\n\t\t<Card className={classes.card}>\n\t\t\t{service.image && <CardMedia className={classes.media} image={`/images/${service.image}`} title=\"\" />}\n\t\t\t{!service.image && <div className={classes.media} />}\n\t\t\t<CardContent className={classes.content}>\n\t\t\t\t<div className={classes.aside}>\n\t\t\t\t\t<ServiceCardPrice pricePerDay={service.pricePerDay} />\n\t\t\t\t</div>\n\t\t\t\t<Typography gutterBottom variant=\"h3\" component=\"h3\">\n\t\t\t\t\t{service.title}\n\t\t\t\t</Typography>\n\t\t\t\t<Typography variant=\"body2\" component=\"p\">\n\t\t\t\t\t{service.description}\n\t\t\t\t</Typography>\n\t\t\t</CardContent>\n\t\t\t<CardActions className={classes.actions}>\n\t\t\t\t<Button color=\"dark\" style={{ minWidth: '180px' }}>{tr('Add')}</Button>\n\t\t\t</CardActions>\n\t\t</Card>\n\t);\n}\n\nServiceCard.propTypes = {\n\tservice: PropTypes.object.isRequired,\n};\n\nServiceCardProps.propTypes = {\n\tpersonCapacity: PropTypes.number,\n};\n\nServiceCardPrice.propTypes = {\n\tpricePerDay: PropTypes.number,\n};\n\nexport default ServiceCard;\n\nconst useStyles = makeStyles(theme => ({\n\tcard: {\n\t\tborderRadius: '4px',\n\t\tborder: `1px solid ${theme.palette.custom.borders}`,\n\t\tboxShadow: 'none',\n\t},\n\theader: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'row',\n\t},\n\taside: {\n\t\tflex: '0 0 auto',\n\t},\n\tcontent: {\n\t\tpadding: `${theme.spacing(2)}px ${theme.spacing(3)}px`,\n\t},\n\tactions: {\n\t\tpadding: '0 24px 24px',\n\t},\n\tmedia: {\n\t\theight: '248px',\n\t\tbackgroundColor: theme.palette.custom.background,\n\t},\n\tprops: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'row',\n\t\tmarginBottom: theme.spacing(2),\n\t},\n\tprop: {\n\t\tpadding: `5px ${theme.spacing(2)}px`,\n\t\tborder: `1px solid ${theme.palette.custom.borders}`,\n\t\tcolor: theme.palette.primary.light,\n\t\tborderRadius: '18px',\n\t\twhiteSpace: 'nowrap',\n\t\tfontSize: '14px',\n\n\t\t[theme.breakpoints.down('sm')]: {\n\t\t\tdisplay: 'block',\n\t\t\twidth: '100%',\n\t\t\toverflow: 'hidden',\n\t\t\ttextOverflow: 'hidden',\n\t\t},\n\n\t\t'&:nth-child(n+2)': {\n\t\t\t[theme.breakpoints.down('sm')]: {\n\t\t\t\tmarginTop: theme.spacing(1),\n\t\t\t},\n\t\t\t[theme.breakpoints.up('md')]: {\n\t\t\t\tmarginLeft: theme.spacing(2),\n\t\t\t},\n\t\t},\n\t},\n\tprice: {\n\t\tlineHeight: '2.1rem',\n\t},\n\tcurrency: {\n\t\tcolor: theme.palette.primary.light,\n\t\tpaddingLeft: '4px',\n\t},\n}));\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nimport { Grid } from '@material-ui/core';\r\n\r\nimport ServiceCard from './ServiceCard';\r\n\r\nfunction Services({ services }) {\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t<div className={classes.services}>\r\n\t\t\t<Grid container spacing={3}>\r\n\t\t\t\t{services.map((service, i) => {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t<Grid key={`service-${i}`} item xs={12} md={4}>\r\n\t\t\t\t\t\t\t<ServiceCard service={service} />\r\n\t\t\t\t\t\t</Grid>\r\n\t\t\t\t\t);\r\n\t\t\t\t})}\r\n\t\t\t</Grid>\r\n\t\t</div>\r\n\t);\r\n}\r\n\r\nServices.propTypes = {\r\n\tservices: PropTypes.array,\r\n};\r\n\r\nexport default Services;\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n\tservices: {\r\n\t\tpaddingTop: theme.spacing(3),\r\n\t\tpaddingBottom: theme.spacing(5),\r\n\t},\r\n}));\r\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport 'react-phone-input-2/lib/material.css';\nimport PhoneInput from 'react-phone-input-2';\n\nimport {\n\tFormHelperText,\n} from '@material-ui/core';\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport { useTranslation } from '@common/utils';\n\nfunction PhoneInputForm({ setFieldValue, props, prop, errors, handleBlur, touched, required, label }) {\n\tconst classes = useStyles();\n\tconst tr = useTranslation();\n\n\tconst { value } = props || {};\n\n\treturn (\n\t\t<>\n\t\t\t<PhoneInput\n\t\t\t\tcontainerClass={classes.conteiner}\n\t\t\t\tcontainerStyle={{ color: (touched[prop] && Boolean(errors[prop])) ? '#f44336' : '' }}\n\t\t\t\tinputStyle={{ width: '100%', padding: '14px 14px 14px 58px', borderRadius: '4px', border: (touched[prop] && Boolean(errors[prop])) ? '1px solid #f44336' : '' }}\n\t\t\t\tdropdownStyle={{ width: '265px' }}\n\t\t\t\tsearchStyle={{ width: '94%' }}\n\t\t\t\tinputProps={{\n\t\t\t\t\trequired: required,\n\t\t\t\t}}\n\t\t\t\tspecialLabel={label ? `${label} ${required ? '*' : ''}` : `${tr('Phone')} ${required ? '*' : ''}`}\n\t\t\t\tcountry={'lt'}\n\t\t\t\tvalue={value}\n\t\t\t\tenableSearch={true}\n\t\t\t\tonBlur={handleBlur(prop)}\n\t\t\t\tonChange={phone => setFieldValue(prop, phone, true)} />\n\t\t\t{touched[prop] && Boolean(errors[prop]) && (\n\t\t\t\t<FormHelperText error={true}>\n\t\t\t\t\t{errors[prop]}\n\t\t\t\t</FormHelperText>\n\t\t\t)}\n\t\t</>\n\t);\n}\n\nPhoneInputForm.propTypes = {\n\tvalues: PropTypes.object,\n\tsetFieldValue: PropTypes.func,\n\tprops: PropTypes.object,\n\tprop: PropTypes.string.isRequired,\n\terrors: PropTypes.object,\n\thandleBlur: PropTypes.func,\n\ttouched: PropTypes.object,\n\trequired: PropTypes.bool,\n\tlabel: PropTypes.string,\n};\n\nexport default PhoneInputForm;\n\nconst useStyles = makeStyles(({\n\tconteiner: {\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tcolor: 'rgba(0, 0, 0, 0.54)',\n\t},\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Card, CardMedia, Typography, CardContent, CardActions, Grid } from '@material-ui/core';\n\nimport { useTranslation, useI18n } from '@common/utils';\nimport { useSettings } from '@common/hooks';\nimport { Button } from '@common/components';\n\nconst getBookingProductId = (booking, id) => booking?.products?.find(b => b.product === id)?._id;\n\nfunction ColivingUpgrade({ booking, upgrade, handleAddUpgrade, handleRemoveUpgrade }) {\n\tconst classes = useStyles();\n\tconst tr = useTranslation();\n\tconst i18n = useI18n(upgrade.i18n);\n\n\tconst summary = i18n('summary', upgrade.summary);\n\tconst title = i18n('title', upgrade.title);\n\n\tconst { currencySymbol } = useSettings();\n\n\tconst { image, price, upgradeType } = upgrade;\n\tconst isRecurring = upgradeType === 'recurring';\n\n\tconst handleAdd = () => handleAddUpgrade({ id: upgrade._id });\n\tconst handleRemove = () => handleRemoveUpgrade({ id: getBookingProductId(booking, upgrade._id) });\n\n\tconst totalInCart = booking?.products?.filter(b => b.product === upgrade._id && !b.mandatory)?.length;\n\tconst isInCart = totalInCart > 0;\n\n\treturn (\n\t\t<Card className={`${classes.card} ${upgrade.available === false ? classes.disabled : ''} ${isInCart && classes.upgradeInCart}`}>\n\t\t\t<div className={classes.area}>\n\t\t\t\t{!!image && <CardMedia className={classes.media} image={`/images/${image}`} title=\"\" />}\n\t\t\t\t{!image && <div className={classes.media} />}\n\t\t\t\t<CardContent className={classes.content}>\n\t\t\t\t\t<Grid container>\n\t\t\t\t\t\t<Grid item xs={8} className={classes.header}>\n\t\t\t\t\t\t\t<Typography gutterBottom variant=\"h5\" component=\"h5\" className={classes.title}>\n\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item xs={4} style={{ justifyContent: 'flex-end' }}>\n\t\t\t\t\t\t\t<div style={{ textAlign: 'right' }}>\n\t\t\t\t\t\t\t\t{price} {currencySymbol}/{isRecurring ? tr('mo') : tr('unit')}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item xs={12}>\n\t\t\t\t\t\t\t<div dangerouslySetInnerHTML={{ __html: summary }} />\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t</CardContent>\n\t\t\t\t<CardActions className={classes.actions}>\n\t\t\t\t\t{isRecurring\n\t\t\t\t\t\t? <Recurring\n\t\t\t\t\t\t\thandleAdd={handleAdd}\n\t\t\t\t\t\t\thandleRemove={handleRemove}\n\t\t\t\t\t\t\tisInCart={isInCart}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t: <Unit\n\t\t\t\t\t\t\ttotalInCart={totalInCart}\n\t\t\t\t\t\t\thandleAdd={handleAdd}\n\t\t\t\t\t\t\thandleRemove={handleRemove}\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t</CardActions>\n\t\t\t</div>\n\t\t</Card>\n\t);\n}\n\nColivingUpgrade.propTypes = {\n\tbooking: PropTypes.object.isRequired,\n\tupgrade: PropTypes.object.isRequired,\n\thandleAddUpgrade: PropTypes.func.isRequired,\n\thandleRemoveUpgrade: PropTypes.func.isRequired,\n};\n\nconst Recurring = ({ handleAdd, handleRemove, isInCart }) => {\n\tconst classes = useStyles();\n\tconst tr = useTranslation();\n\n\tconst Add = () => (\n\t\t<Button\n\t\t\tcolor=\"blue\"\n\t\t\tonClick={handleAdd}\n\t\t\twide={true}\n\t\t>\n\t\t\t<span className={classes.qtyIncDec}>{tr('Add')}</span>\n\t\t</Button>\n\t);\n\n\tconst Remove = () => (\n\t\t<Button\n\t\t\tcolor=\"red\"\n\t\t\twide={true}\n\t\t\tonClick={handleRemove}\n\t\t>\n\t\t\t<span className={classes.qtyIncDec}>{tr('Remove')}</span>\n\t\t</Button>\n\t);\n\n\treturn (\n\t\t<Grid\n\t\t\titem\n\t\t\tcontainer\n\t\t\txs={12}\n\t\t\tstyle={{ justifyContent: 'center' }}\n\t\t>\n\t\t\t{isInCart ? <Remove /> : <Add />}\n\t\t</Grid>\n\t);\n};\nRecurring.propTypes = {\n\thandleAdd: PropTypes.func.isRequired,\n\thandleRemove: PropTypes.func.isRequired,\n\tisInCart: PropTypes.bool,\n};\n\nconst Unit = ({ handleAdd, handleRemove, totalInCart }) => {\n\tconst classes = useStyles();\n\n\treturn (\n\t\t<Grid\n\t\t\titem\n\t\t\tcontainer\n\t\t\txs={12}\n\t\t\tstyle={{ justifyContent: 'space-between', alignItems: 'center' }}\n\t\t>\n\t\t\t<Button\n\t\t\t\tcolor=\"dark\"\n\t\t\t\tthird={true}\n\t\t\t\tonClick={handleRemove}\n\t\t\t\tdisabled={!totalInCart || totalInCart < 1}\n\t\t\t>\n\t\t\t\t<span className={classes.qtyIncDec}>-</span>\n\t\t\t</Button>\n\t\t\t<div style={{ margin: '0 30px' }}>\n\t\t\t\t<Typography variant=\"h4\" size={24}>\n\t\t\t\t\t{totalInCart}\n\t\t\t\t</Typography>\n\t\t\t</div>\n\t\t\t<Button\n\t\t\t\tcolor=\"dark\"\n\t\t\t\tthird={true}\n\t\t\t\tonClick={handleAdd}\n\t\t\t>\n\t\t\t\t<span className={classes.qtyIncDec}>+</span>\n\t\t\t</Button>\n\t\t</Grid>\n\t);\n};\nUnit.propTypes = {\n\thandleAdd: PropTypes.func.isRequired,\n\thandleRemove: PropTypes.func.isRequired,\n\ttotalInCart: PropTypes.number,\n};\n\nexport default ColivingUpgrade;\n\nconst useStyles = makeStyles(theme => ({\n\ttitle: {\n\t\tflex: '1 1 auto',\n\t},\n\tcard: {\n\t\tborderRadius: '4px',\n\t\tborder: `1px solid ${theme.palette.custom.borders}`,\n\t\tboxShadow: 'none',\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t\tflex: '1 1 auto',\n\t\tmargin: '0 5px 10px 5px',\n\t\tbackgroundColor: '#F7F7F7',\n\t},\n\tupgradeInCart: {\n\t\tborderColor: `${theme.palette.dark}`,\n\t\tborder: '2.5px dashed',\n\t},\n\tarea: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t\tflex: '1 1 auto',\n\t},\n\theader: {\n\t\toverflow: 'hidden',\n\t},\n\n\tcontent: {\n\t\twidth: '100%',\n\t\tflex: '1 1 auto',\n\n\t\t[theme.breakpoints.down('sm')]: {\n\t\t\tpadding: `${theme.spacing(2)}px`,\n\t\t},\n\t},\n\tmedia: {\n\t\twidth: '100%',\n\t\theight: '248px',\n\t\tbackgroundColor: '#EAEAEA',\n\t},\n\tdisabled: {\n\t\topacity: 0.4,\n\t},\n\n\tactions: {\n\t\twidth: '100%',\n\t\tjustifyContent: 'center',\n\t},\n\n\tqtyIncDec: {\n\t\tfontSize: 14,\n\t},\n}));\n","import React, { useMemo, useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport http from '@common/http';\n\nimport { Header, Container, Footer } from '@common/components';\n\nimport { Banner, Bookings, BookingSummary, BookingExpired, ColivingUpgrade } from './components';\n\nimport { HeaderMessages, Progress } from '@components/Coliving';\n\nimport { Grid, Typography } from '@material-ui/core';\n\nimport { useTranslation, toast, useDetails, useSessionState, useRecords } from '@common/utils';\n\nimport { keyBy, uniq } from 'lodash';\n\nimport { useSettings } from '@common/hooks';\n\nfunction ColivingBookings({ history, match }) {\n\tconst classes = useStyles();\n\tconst { id } = match.params;\n\tconst [state, setState] = useState(match.params);\n\tconst [filter] = useState({});\n\tconst [params, setParams] = useState('');\n\tconst { setState: setBookingId } = useSessionState('booking-id', '');\n\tconst { isUpgradesEnabled } = useSettings();\n\tconst tr = useTranslation();\n\n\tconst { details, fetchDetails } = useDetails(`/api/kiosks/coliving/bookings/${state.id}`, {\n\t\tcreatedAt: '',\n\t\texpiresAt: '',\n\t\tproducts: [],\n\t\tproductsGrouped: [],\n\t\ttotal: 0,\n\t\ttotalBeds: 0,\n\t\ttotalFees: 0,\n\t\ttotalProducts: 0,\n\t\ttotalRooms: 0,\n\t\ttotalServices: 0,\n\t\ttotalMandatory: 0,\n\t\tupdatedAt: '',\n\t\t_id: '',\n\t\torders: [],\n\t}, [state]);\n\n\tconst { records: upgrades } = useRecords('/api/kiosks/coliving/products/upgrades', filter, [id]);\n\n\tconst removeReservations = async (reservations) => {\n\t\tconst ids = details.products.filter(p => reservations.indexOf(p.reservation) !== -1).map(p => p._id);\n\n\t\tfor (const bookingProductId of ids) {\n\t\t\tawait http.delete(`/api/kiosks/coliving/bookings/${state.id}/products/${bookingProductId}`).catch(toast);\n\t\t}\n\n\t\ttoast({ text: tr('Reservation removed successfully') });\n\n\t\tif (ids.length === details.products.filter(p => !p.productIsCityTaxApplied && !p.mandatory && !p.upgrade).length) {\n\t\t\tsetBookingId('');\n\t\t\thistory.replace('/');\n\t\t} else {\n\t\t\tsetState({\n\t\t\t\t...state,\n\t\t\t\tupdated: new Date().getTime(),\n\t\t\t});\n\t\t}\n\t};\n\n\tconst [productById, setProductById] = useState({});\n\n\tconst removeUpgrades = async (bookingProductIds = []) => {\n\t\tif (!bookingProductIds?.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor (const bookingProductId of bookingProductIds) {\n\t\t\tawait http.delete(`/api/kiosks/coliving/bookings/${state.id}/products/${bookingProductId}`).catch(toast);\n\t\t}\n\n\t\tsetState({\n\t\t\t...state,\n\t\t\tupdated: new Date().getTime(),\n\t\t});\n\t};\n\n\tconst handleAddUpgrade = async ({ id, quantity = 1 }) => {\n\t\tawait http\n\t\t\t.post(`/api/kiosks/coliving/bookings/${details._id}/products/upgrades`, { product: id, quantity })\n\t\t\t.then(() => fetchDetails())\n\t\t\t.catch(toast);\n\t};\n\n\tconst handleRemoveUpgrade = async ({ id }) => removeUpgrades([id]);\n\n\tconst bookings = useMemo(() => details.productsGrouped.filter(p => !p.fee && !p.mandatory), [details.productsGrouped]);\n\n\tuseEffect(() => {\n\n\t\tPromise\n\t\t\t.all(uniq(details.products, 'product').map(p => http.get(`/api/kiosks/coliving/products/${p.product}`).catch(() => ({}))))\n\t\t\t.then(responses => responses.map(response => response.data).filter(Boolean))\n\t\t\t.then(products => setProductById(keyBy(products, '_id')))\n\t\t\t.catch(error => {\n\t\t\t\tconsole.error(error);\n\t\t\t\ttoast(error);\n\t\t\t});\n\n\t\tconst products = details.productsGrouped.filter(p => !p.fee && !p.mandatory && !p.upgrade);\n\t\tif (products.length) {\n\t\t\tconst { from, to } = products[products?.length - 1];\n\t\t\tsetParams(`?from=${from}&to=${to}`);\n\t\t}\n\n\t}, [details.productsGrouped]);\n\n\treturn (\n\t\t<div className={classes.root}>\n\t\t\t<HeaderMessages />\n\t\t\t<Header>\n\t\t\t\t<Progress status=\"booking\" id={id} />\n\t\t\t</Header>\n\n\t\t\t<Container>\n\t\t\t\t{isUpgradesEnabled &&\n\t\t\t\t\t<Grid container spacing={4} style={{ paddingBottom: '100px' }} >\n\t\t\t\t\t\t<Grid item xs={12}>\n\t\t\t\t\t\t\t<Typography variant=\"h1\">\n\t\t\t\t\t\t\t\t{tr('Extras and upgrades')}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\tcontainer\n\t\t\t\t\t\t\txs={12} md={8}\n\t\t\t\t\t\t\talignContent='flex-start'\n\t\t\t\t\t\t\tclassName={classes.container}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{upgrades.map((upgrade, i) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<Grid item key={i} xs={12} md={6} className={classes.upgrades}>\n\t\t\t\t\t\t\t\t\t\t<ColivingUpgrade\n\t\t\t\t\t\t\t\t\t\t\tbooking={details}\n\t\t\t\t\t\t\t\t\t\t\tupgrade={upgrade}\n\t\t\t\t\t\t\t\t\t\t\thandleAddUpgrade={handleAddUpgrade}\n\t\t\t\t\t\t\t\t\t\t\thandleRemoveUpgrade={handleRemoveUpgrade}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item xs={12} md={4}>\n\t\t\t\t\t\t\t{details && !details.expired &&\n\t\t\t\t\t\t\t\t<BookingSummary\n\t\t\t\t\t\t\t\t\tbookingId={id}\n\t\t\t\t\t\t\t\t\ttotal={details.total}\n\t\t\t\t\t\t\t\t\ttotalFees={details.totalFees}\n\t\t\t\t\t\t\t\t\ttotalBeds={details.totalBeds}\n\t\t\t\t\t\t\t\t\ttotalRooms={details.totalRooms}\n\t\t\t\t\t\t\t\t\ttotalServices={details.totalServices}\n\t\t\t\t\t\t\t\t\ttotalMandatory={details.totalMandatory}\n\t\t\t\t\t\t\t\t\ttotalUpgrades={details.totalUpgrades}\n\t\t\t\t\t\t\t\t\tproductsGrouped={details?.productsGrouped || []}\n\t\t\t\t\t\t\t\t\tproductById={productById}\n\t\t\t\t\t\t\t\t\tisInitial={details.products.every(p => !p.order)}\n\t\t\t\t\t\t\t\t\tremoveReservations={removeReservations}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{details && details.expired &&\n\t\t\t\t\t\t\t\t<BookingExpired />\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{(!details || !details.expired) &&\n\t\t\t\t\t\t\t\t<Banner params={params} />\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t}\n\t\t\t\t{!isUpgradesEnabled &&\n\t\t\t\t\t<Grid container spacing={3} style={{ paddingBottom: '100px' }}>\n\t\t\t\t\t\t<Grid container spacing={2} style={{ paddingBottom: '24px' }}>\n\t\t\t\t\t\t\t<Grid item xs={12}>\n\t\t\t\t\t\t\t\t<Typography variant=\"h1\">\n\t\t\t\t\t\t\t\t\t{tr('Your booking details')}\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</Grid>\n\n\t\t\t\t\t\t{details &&\n\t\t\t\t\t\t\t<Bookings bookings={bookings} removeReservations={removeReservations} />\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t<Grid item xs={12} md={4} style={{ paddingTop: '4px' }}>\n\t\t\t\t\t\t\t{details && !details.expired &&\n\t\t\t\t\t\t\t\t<BookingSummary\n\t\t\t\t\t\t\t\t\tbookingId={id}\n\t\t\t\t\t\t\t\t\ttotal={details.total}\n\t\t\t\t\t\t\t\t\ttotalFees={details.totalFees}\n\t\t\t\t\t\t\t\t\ttotalBeds={details.totalBeds}\n\t\t\t\t\t\t\t\t\ttotalRooms={details.totalRooms}\n\t\t\t\t\t\t\t\t\ttotalServices={details.totalServices}\n\t\t\t\t\t\t\t\t\ttotalMandatory={details.totalMandatory}\n\t\t\t\t\t\t\t\t\tproductsGrouped={details?.productsGrouped || []}\n\t\t\t\t\t\t\t\t\tproductById={productById}\n\t\t\t\t\t\t\t\t\tisInitial={details.products.every(p => !p.order)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{details && details.expired &&\n\t\t\t\t\t\t\t\t<BookingExpired />\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{(!details || !details.expired) &&\n\t\t\t\t\t\t\t\t<Banner params={params} />\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</Grid>\n\n\t\t\t\t\t\t{/*\n\t\t\t\t\t<Grid container spacing={6}>\n\t\t\t\t\t\t<Grid item xs={12}>\n\t\t\t\t\t\t\t<Typography variant=\"h1\">\n\t\t\t\t\t\t\t\t{tr('Add these services to enjoy your work and stay')}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\n\t\t\t\t\t<Services services={services} />\n\t\t\t\t*/}\n\t\t\t\t\t</Grid>\n\t\t\t\t}\n\t\t\t</Container>\n\t\t\t<Footer />\n\t\t</div>\n\t);\n}\n\nColivingBookings.propTypes = {\n\thistory: PropTypes.object,\n\tmatch: PropTypes.object,\n};\n\nexport default ColivingBookings;\n\nconst useStyles = makeStyles(() => ({\n\troot: {\n\t\tflexGrow: 1,\n\t\tposition: 'relative',\n\t\tminHeight: '96vh',\n\t},\n\tcontainer: {\n\t\tdisplay: 'flex',\n\t},\n\tupgrades: {\n\t\tdisplay: 'flex',\n\t\tflex: '1 1 auto',\n\t},\n}));\n\n","const Yup = require('yup');\n\nconst checkoutSchema = (tr, visibleCheckOutFormInputs) => {\n\tconst personSchemaObject = visibleCheckOutFormInputs.filter(i => !i.companyField).concat([{ id: 'otherUniversityName' }, { id: 'otherFaculty' } ]).reduce((schema, input) => {\n\t\tconst { id, required } = input;\n\t\tif (required) {\n\t\t\tschema[id] = Yup.string().required(tr('Required'));\n\t\t} else {\n\t\t\tschema[id] = Yup.string();\n\t\t}\n\n\t\tif (id === 'phone') {\n\t\t\tschema[id] = schema[id]\n\t\t\t\t.matches(/^[0-9]+$/, tr('Must be only digits'))\n\t\t\t\t.min(9, tr('Phone number is not valid'));\n\t\t} else if (id === 'email') {\n\t\t\tschema[id] = schema[id].email(tr('Must be an email'));\n\t\t} else if (id === 'studyYear') {\n\t\t\tif (required) {\n\t\t\t\tschema[id] = Yup.number()\n\t\t\t\t\t.when('stayPurpose', {\n\t\t\t\t\t\tis: (stayPurpose) => stayPurpose === 'study',\n\t\t\t\t\t\tthen: Yup.number()\n\t\t\t\t\t\t\t.integer(tr('Incorrect format. Allowed symbols: 0-9'))\n\t\t\t\t\t\t\t.required(tr('Required')),\n\t\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tschema[id] = Yup.number()\n\t\t\t\t\t.integer(tr('Incorrect format. Allowed symbols: 0-9'));\n\t\t\t}\n\t\t} else if (id === 'preferredCheckInDate') {\n\t\t\tif (required) {\n\t\t\t\tschema[id] = Yup.date().nullable().typeError('Invalid date').required(tr('Required'));\n\t\t\t} else {\n\t\t\t\tschema[id] = Yup.date().nullable().typeError('Invalid date');\n\t\t\t}\n\t\t} else if (id === 'birthday') {\n\t\t\tif (required) {\n\t\t\t\tschema[id] = Yup.date().nullable().typeError('Invalid date').required(tr('Required'));\n\t\t\t} else {\n\t\t\t\tschema[id] = Yup.date().nullable().typeError('Invalid date');\n\t\t\t}\n\t\t} else if (id === 'universityName') {\n\t\t\tif (required) {\n\t\t\t\tschema[id] = Yup.string().nullable()\n\t\t\t\t\t.when('stayPurpose', {\n\t\t\t\t\t\tis: (stayPurpose) => stayPurpose === 'study',\n\t\t\t\t\t\tthen: Yup.string().required(tr('Required')),\n\t\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tschema[id] = schema[id] = Yup.string().nullable();\n\t\t\t}\n\t\t} else if (id === 'otherUniversityName') {\n\t\t\tschema[id] = Yup.string().nullable()\n\t\t\t\t.when('universityName', {\n\t\t\t\t\tis: (universityName) => universityName === 'Other',\n\t\t\t\t\tthen: Yup.string().required(tr('Required')),\n\t\t\t\t});\n\t\t} else if (id === 'otherFaculty') {\n\t\t\tschema[id] = Yup.string().nullable()\n\t\t\t\t.when('faculty', {\n\t\t\t\t\tis: (faculty) => faculty === 'Other',\n\t\t\t\t\tthen: Yup.string().required(tr('Required')),\n\t\t\t\t});\n\t\t}  else if (id === 'faculty') {\n\t\t\tif (required) {\n\t\t\t\tschema[id] = Yup.string().nullable()\n\t\t\t\t\t.when('stayPurpose', {\n\t\t\t\t\t\tis: (stayPurpose) => stayPurpose === 'study',\n\t\t\t\t\t\tthen: Yup.string().required(tr('Required')),\n\t\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tschema[id] = schema[id] = Yup.string().nullable();\n\t\t\t}\n\t\t} else if (id === 'typeOfStudent') {\n\t\t\tif (required) {\n\t\t\t\tschema[id] = Yup.string().nullable()\n\t\t\t\t\t.when('stayPurpose', {\n\t\t\t\t\t\tis: (stayPurpose) => stayPurpose === 'study',\n\t\t\t\t\t\tthen: Yup.string().required(tr('Required')),\n\t\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tschema[id] = schema[id] = Yup.string().nullable();\n\t\t\t}\n\t\t}\n\n\t\treturn schema;\n\t}, {});\n\n\tconst companySchemaObject = visibleCheckOutFormInputs.filter(i => i.companyField === true).reduce((schema, input) => {\n\t\tconst { id, required } = input;\n\t\tif (id !== 'company') {\n\t\t\tschema[id] = Yup.string().nullable()\n\t\t\t\t.when('company', {\n\t\t\t\t\tis: true,\n\t\t\t\t\tthen: required ? Yup.string().nullable().required(tr('Required')) : Yup.string().nullable(),\n\t\t\t\t});\n\t\t}\n\t\treturn schema;\n\t}, {});\n\n\tconst mergedSchema = {\n\t\t...personSchemaObject,\n\t\t...companySchemaObject,\n\t\tacceptsTermsConditions: Yup.boolean().oneOf([true], tr('Required')),\n\t};\n\n\treturn Yup.object().shape(mergedSchema);\n};\n\nexport default checkoutSchema;\n\n","import { useTranslation } from '@common/utils';\nimport { useSettings } from '@common/hooks';\n\nimport defaultUniversities from '../../../Coliving/universities.json';\nimport defaultFaculties from '../../../Coliving/faculties.json';\nimport countries from '../../../Coliving/countries.json';\n\nconst defaultSourceOfDiscoveryOptions = [\n\t{ value: 'googleSearch', label: 'Google search' },\n\t{ value: 'socialMedia', label: 'Social media' },\n\t{ value: 'onlineAdvertisement', label: 'Online advertisement' },\n\t{ value: 'emailCampaign', label: 'Email campaign' },\n\t{ value: 'friendOrFamilyMember', label: 'Referral from a Friend or Family Member' },\n\t{ value: 'other', label: 'Other' },\n];\n\nfunction options() {\n\tconst tr = useTranslation();\n\n\tconst { universities, faculties, sourceOfDiscoveryOptions } = useSettings();\n\n\treturn {\n\t\t'typeOfStudent': [\n\t\t\t{ value: 'exchangeFiveMonths', label: tr('Exchange (Erasmus 5 months)') },\n\t\t\t{ value: 'exchangeTenMonths', label: tr('Exchange (Erasmus 10 months)') },\n\t\t\t{ value: 'fullTime', label: tr('Full-time') },\n\t\t],\n\t\t'gender': [\n\t\t\t{ value: 'male', label: tr('Male') },\n\t\t\t{ value: 'female', label: tr('Female') },\n\t\t\t{ value: 'other', label: tr('Other') },\n\t\t],\n\t\t'stayPurpose': [\n\t\t\t{ value: 'study', label: tr('Study') },\n\t\t\t{ value: 'work', label: tr('Work') },\n\t\t\t{ value: 'leisure', label: tr('Leisure') },\n\t\t],\n\t\t'studyYear': [\n\t\t\t{ value: 1, label: '1' },\n\t\t\t{ value: 2, label: '2' },\n\t\t\t{ value: 3, label: '3' },\n\t\t\t{ value: 4, label: '4' },\n\t\t\t{ value: 5, label: '5' },\n\t\t\t{ value: 6, label: '6' },\n\t\t],\n\t\t'universityName': universities.length > 0 ? universities : defaultUniversities,\n\t\t'faculty': faculties.length > 0 ? faculties : defaultFaculties,\n\t\t'country': countries,\n\t\t'sourceOfDiscovery': sourceOfDiscoveryOptions.length > 0 ? sourceOfDiscoveryOptions : defaultSourceOfDiscoveryOptions,\n\t};\n}\n\nexport default options;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector } from 'react-redux';\n\nimport {\n\tGrid,\n\tTextField,\n\tFormControlLabel, FormControl, Checkbox, FormGroup,\n} from '@material-ui/core';\n\nimport {\n\tFormSelect,\n\tDatePicker,\n\tFormAutocomplete,\n} from '@components/Coliving';\n\nimport PhoneInput from '../../../Coliving/components/PhoneInput';\n\nimport getOptions from './selectInputOptions';\n\nimport { useTranslation } from '@common/utils';\n\nconst CheckOutInputsForm = ({ visibleCheckOutFormInputs = [], props = () => { }, roomReservation, values }) => {\n\tconst tr = useTranslation();\n\tconst { locale } = useSelector(state => state.locale);\n\n\tconst options = getOptions();\n\n\tif (visibleCheckOutFormInputs.find(i => i.id === 'stayPurpose') && values.stayPurpose !== 'study') {\n\t\tvisibleCheckOutFormInputs = visibleCheckOutFormInputs.filter(i => i.studyPurposeValueCondition !== 'study');\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{visibleCheckOutFormInputs.filter(i => !i.companyField).map(input => {\n\t\t\t\tconst prop = input.id || undefined;\n\t\t\t\tconst i18n = input?.i18n || {};\n\n\t\t\t\tif (prop === 'faculty' && values.faculty === 'Other') {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Grid item xs={12} sm={6} style={{ position: 'relative' }}>\n\t\t\t\t\t\t\t\t<FormAutocomplete\n\t\t\t\t\t\t\t\t\tprop={prop}\n\t\t\t\t\t\t\t\t\tlabel={i18n[locale]?.alias || tr(input.label)}\n\t\t\t\t\t\t\t\t\toptions={options[input.id]}\n\t\t\t\t\t\t\t\t\t{...props(prop)}\n\t\t\t\t\t\t\t\t\trequired={input.required}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t<Grid item xs={12} sm={6} style={{ position: 'relative' }}>\n\t\t\t\t\t\t\t\t<TextField fullWidth required={input.required} variant=\"outlined\" label={tr('Faculty name')} {...props('otherFaculty')} />\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</>\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (prop === 'universityName' && values.universityName === 'Other') {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Grid item xs={12} sm={6} style={{ position: 'relative' }}>\n\t\t\t\t\t\t\t\t<FormAutocomplete\n\t\t\t\t\t\t\t\t\tprop={prop}\n\t\t\t\t\t\t\t\t\tlabel={i18n[locale]?.alias || tr(input.label)}\n\t\t\t\t\t\t\t\t\toptions={options[input.id]}\n\t\t\t\t\t\t\t\t\t{...props(prop)}\n\t\t\t\t\t\t\t\t\trequired={input.required}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t<Grid item xs={12} sm={6} style={{ position: 'relative' }}>\n\t\t\t\t\t\t\t\t<TextField fullWidth required={input.required} variant=\"outlined\" label={tr('University name')} {...props('otherUniversityName')} />\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</>\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (prop === 'company') {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Grid key={2} item xs={12}>\n\t\t\t\t\t\t\t<FormControl component=\"fieldset\">\n\t\t\t\t\t\t\t\t<FormGroup>\n\t\t\t\t\t\t\t\t\t<FormControlLabel\n\t\t\t\t\t\t\t\t\t\tcontrol={<Checkbox color=\"primary\" value={values.company} onChange={() => props(prop).setFieldValue('company', !values.company)} />}\n\t\t\t\t\t\t\t\t\t\tlabel={i18n[locale]?.alias || tr(input.label)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</FormGroup>\n\t\t\t\t\t\t\t</FormControl>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Grid key={prop} item xs={12} sm={6} style={{ position: 'relative' }}>\n\t\t\t\t\t\t\t{(input.type === 'text' || input.type === 'email' || input.type === 'number') && (\n\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\trequired={input.required}\n\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\tlabel={i18n[locale]?.alias || tr(input.label)}\n\t\t\t\t\t\t\t\t\t{...props(prop)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{prop != null && input.type === 'date' && !input.withAdditionalProps && (\n\t\t\t\t\t\t\t\t<DatePicker\n\t\t\t\t\t\t\t\t\tprop={prop}\n\t\t\t\t\t\t\t\t\tlabel={i18n[locale]?.alias || tr(input.label)}\n\t\t\t\t\t\t\t\t\trequired={input.required}\n\t\t\t\t\t\t\t\t\t{...props(prop)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{prop != null && input.type === 'date' && input.withAdditionalProps && (\n\t\t\t\t\t\t\t\t<DatePicker\n\t\t\t\t\t\t\t\t\tprop={prop}\n\t\t\t\t\t\t\t\t\tlabel={i18n[locale]?.alias || tr(input.label)}\n\t\t\t\t\t\t\t\t\t{...props(prop)}\n\t\t\t\t\t\t\t\t\tminDate={roomReservation?.from}\n\t\t\t\t\t\t\t\t\tmaxDate={roomReservation?.to}\n\t\t\t\t\t\t\t\t\trequired={input.required}\n\t\t\t\t\t\t\t\t\tclearable\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{input.type === 'single-choice' && (\n\t\t\t\t\t\t\t\t<FormSelect\n\t\t\t\t\t\t\t\t\tprop={prop}\n\t\t\t\t\t\t\t\t\tlabel={i18n[locale]?.alias || tr(input.label)}\n\t\t\t\t\t\t\t\t\toptions={options[input.id]}\n\t\t\t\t\t\t\t\t\trequired={input.required}\n\t\t\t\t\t\t\t\t\t{...props(prop)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{input.type === 'autocomplete' && (\n\t\t\t\t\t\t\t\t<FormAutocomplete\n\t\t\t\t\t\t\t\t\tprop={prop}\n\t\t\t\t\t\t\t\t\tlabel={i18n[locale]?.alias || tr(input.label)}\n\t\t\t\t\t\t\t\t\toptions={options[input.id]}\n\t\t\t\t\t\t\t\t\trequired={input.required}\n\t\t\t\t\t\t\t\t\t{...props(prop)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{input.type === 'phone-number' && (\n\t\t\t\t\t\t\t\t<PhoneInput\n\t\t\t\t\t\t\t\t\tprop={prop}\n\t\t\t\t\t\t\t\t\tlabel={i18n[locale]?.alias || tr(input.label)}\n\t\t\t\t\t\t\t\t\toptions={options[input.id]}\n\t\t\t\t\t\t\t\t\trequired={input.required}\n\t\t\t\t\t\t\t\t\t{...props(prop)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t})}\n\t\t\t{visibleCheckOutFormInputs.filter(i => i.companyField === true).map(input => {\n\t\t\t\tconst prop = input.id || undefined;\n\t\t\t\tconst i18n = input?.i18n || {};\n\n\t\t\t\tif (prop === 'company') {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Grid key={2} item xs={12}>\n\t\t\t\t\t\t\t<FormControl component=\"fieldset\">\n\t\t\t\t\t\t\t\t<FormGroup>\n\t\t\t\t\t\t\t\t\t<FormControlLabel\n\t\t\t\t\t\t\t\t\t\tcontrol={<Checkbox color=\"primary\" value={values.company} onChange={() => props(prop).setFieldValue(prop, !values.company)} />}\n\t\t\t\t\t\t\t\t\t\tlabel={i18n[locale]?.alias || tr(input.label)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</FormGroup>\n\t\t\t\t\t\t\t</FormControl>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (values.company) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Grid key={prop} item xs={12} sm={6} style={{ position: 'relative' }}>\n\t\t\t\t\t\t\t{(input.type === 'text' || input.type === 'email' || input.type === 'number') && (\n\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\trequired={input.required}\n\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\tlabel={i18n[locale]?.alias || tr(input.label)}\n\t\t\t\t\t\t\t\t\t{...props(prop)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t})}\n\t\t</>\n\t);\n};\n\nCheckOutInputsForm.propTypes = {\n\tprops: PropTypes.func.isRequired,\n\tvisibleCheckOutFormInputs: PropTypes.array.isRequired,\n\troomReservation: PropTypes.object,\n\tisAdditional: PropTypes.bool,\n\tindex: PropTypes.bool,\n\tvalues: PropTypes.object.isRequired,\n};\n\nexport default CheckOutInputsForm;\n","import React, { useState, useMemo, useRef, useEffect, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport AdyenCheckout from '@adyen/adyen-web';\nimport '@adyen/adyen-web/dist/adyen.css';\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport { useSelector } from 'react-redux';\n\nimport http from '@common/http';\n\nimport { Header, Container, Button, Footer } from '@common/components';\n\nimport { CheckoutSummary } from './components';\n\nimport { HeaderMessages, Progress, TermsAndConditionsConfirmDialog } from '@components/Coliving';\n\nimport { Grid, Typography, TextField, FormControlLabel, FormControl, Checkbox, FormGroup, FormHelperText, Backdrop, CircularProgress } from '@material-ui/core';\n\nimport { useTranslation, toast, useDetails, useSessionState } from '@common/utils';\n\nimport { Formik, Form } from 'formik';\n\nimport checkoutSchema from '@schemas/coliving/checkout';\n\nimport { Link } from 'react-router-dom';\n\nimport Alert from '@material-ui/lab/Alert';\n\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { useSettings } from '@common/hooks';\n\nimport CheckOutInputsForm from '../Coliving/components/CheckOutInputsForm/CheckOutInputsForm';\n\nimport { getAdyenConfiguration } from '@shared/services/checkout';\n\nconst adyenBlankConfiguration = getAdyenConfiguration();\n\nfunction ColivingCheckout({ match, history }) {\n\tconst classes = useStyles();\n\tconst tr = useTranslation();\n\n\tconst { id } = match.params;\n\n\tconst {\n\t\tpaymentGatewaySettings,\n\t\tvisibleCheckOutFormInputs,\n\t} = useSettings();\n\n\tconst { setState: setBookingId } = useSessionState('booking-id', '');\n\tconst { state: bookingGuid, setState: setBookingGuid } = useSessionState('booking-guid', uuidv4());\n\tconst [payseraRequest, setPayseraRequest] = useState(null);\n\tconst [discountCode, setDiscountCode] = useState('');\n\tconst [appliedDiscountCode, setAppliedDiscountCode] = useState('');\n\tconst [isAppliedDiscountCodeValid, setAppliedDiscountCodeValidity] = useState();\n\tconst [pricing, setPricing] = useState();\n\tconst [VATLines, setVATLines] = useState([]);\n\tconst [isOrdered, setIsOrdered] = useState(false);\n\tconst [isAdditionalPaymentStepUsed, setIsAdditionalPaymentStepUsed] = useState(false);\n\tconst [adyenConfiguration, setAdyenConfiguration] = useState(adyenBlankConfiguration);\n\tconst [adyenPaymentSuccess, setAdyenPaymentSuccess] = useState(undefined);\n\tconst [isBackdropOpen, setBackdropOpen] = useState(false);\n\tconst [isAcceptTermsConditions, setIsAcceptTermsConditions] = useState(false);\n\tconst [isConfirmModalOpen, setIsConfirmModalOpen] = useState(false);\n\tconst { locale } = useSelector(state => state.locale);\n\n\tconst payseraFormRef = useRef();\n\n\tconst [customer, setCustomer] = useState({\n\t\tname: '',\n\t\tsurname: '',\n\t\temail: '',\n\t\tphone: '',\n\t\tcountry: '',\n\t\tbirthday: null,\n\t\tcompanyName: '',\n\t\tcompanyCode: '',\n\t\tcompanyAddress: '',\n\t\tcompanyVATCode: '',\n\t\tacceptsTermsConditions: false,\n\t\tagreeMarketingInfo: false,\n\t\tpreferredCheckInDate: null,\n\t});\n\n\tconst { details: booking } = useDetails(`/api/kiosks/coliving/bookings/${id}`);\n\n\tconst roomReservation = (booking?.productsGrouped || []).find(p => p.productAssetType === 'room');\n\n\tconst calculateTotals = useCallback(async ({ discountCode }) => {\n\t\tconst { data: { pricing, VATLines: { VATLines } } = {} } = await http.post('/api/kiosks/coliving/checkouts/prices', {\n\t\t\tbooking: booking._id,\n\t\t\tdiscountCode,\n\t\t});\n\t\tsetVATLines(VATLines);\n\n\t\treturn pricing;\n\t}, [booking]);\n\n\tconst submitForm = async data => {\n\t\tconst updated = {\n\t\t\t...data,\n\t\t\tfaculty: data?.faculty !== 'Other' ? data?.faculty : data?.otherFaculty,\n\t\t\tuniversityName: data?.universityName !== 'Other' ? data?.universityName : data?.otherUniversityName,\n\t\t};\n\n\t\tlet customerPayload = {};\n\t\tvisibleCheckOutFormInputs.filter(i => !i.companyField).forEach(input => {\n\t\t\tif (Object.keys(updated).includes(input.id)) {\n\t\t\t\tcustomerPayload[input.id] = updated[input.id];\n\t\t\t}\n\t\t});\n\n\t\tlet companyPayload = {};\n\t\tvisibleCheckOutFormInputs.filter(i => i.companyField === true).forEach(input => {\n\t\t\tif (Object.keys(data).includes(input.id)) {\n\t\t\t\tcompanyPayload[input.id] = data[input.id];\n\t\t\t}\n\t\t});\n\n\t\tconst body = {\n\t\t\tbooking: id,\n\t\t\tcustomer: {\n\t\t\t\t...customerPayload,\n\t\t\t\tagreeMarketingInfo: data.agreeMarketingInfo,\n\t\t\t\tcompany: {\n\t\t\t\t\tname: companyPayload.companyName,\n\t\t\t\t\tcode: companyPayload.companyCode,\n\t\t\t\t\taddress: companyPayload.companyAddress,\n\t\t\t\t\tvat: companyPayload.companyVATCode,\n\t\t\t\t},\n\t\t\t},\n\t\t\tdiscountCode: appliedDiscountCode,\n\t\t\tguid: bookingGuid,\n\t\t\tlanguage: locale,\n\t\t};\n\n\t\tconst checkout = await http.post('/api/kiosks/coliving/checkouts/', body);\n\n\t\tsetBookingId('');\n\t\tsetBookingGuid('');\n\n\t\tif (checkout?.data?.total === 0) {\n\t\t\ttoast({ text: 'Your purchase was a success! Thank You!' });\n\t\t\thistory.push(`/order/${id}/success`);\n\t\t} else if (checkout?.data?.payseraRequest) {\n\t\t\tsetPayseraRequest(checkout.data.payseraRequest);\n\t\t\tpayseraFormRef.current.submit();\n\t\t} else if (checkout?.data?.adyenCheckoutSession) {\n\t\t\tsetIsAdditionalPaymentStepUsed(true);\n\t\t\tsetAdyenConfiguration(config => ({\n\t\t\t\t...config,\n\t\t\t\tsession: {\n\t\t\t\t\tid: checkout.data.adyenCheckoutSession.id,\n\t\t\t\t\tsessionData: checkout.data.adyenCheckoutSession.sessionData,\n\t\t\t\t},\n\t\t\t}));\n\t\t} else if (checkout?.data?.autopayRequest) {\n\t\t\twindow.location.replace(checkout.data.autopayRequest.url);\n\t\t} else {\n\t\t\tthrow Error('UnexpectedError');\n\t\t}\n\t};\n\n\tconst handleFormSubmit = async (values, actions) => {\n\t\twindow.dataLayer = window.dataLayer || [];\n\t\twindow.dataLayer.push({ 'event': 'Pay' });\n\n\t\ttry {\n\t\t\tif (appliedDiscountCode) {\n\t\t\t\t(async () => {\n\t\t\t\t\tsetPricing(await calculateTotals({ discountCode: appliedDiscountCode }));\n\t\t\t\t})().catch(e => {\n\t\t\t\t\ttoast(e);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tawait submitForm(values);\n\t\t} catch (e) {\n\t\t\ttoast(e);\n\n\t\t\tif (e?.data?.message === 'BookingExpired') {\n\t\t\t\thistory.push('/');\n\t\t\t}\n\n\t\t\tif (e?.message === 'UnexpectedError' || e?.data?.message === 'DuplicateOrder') {\n\t\t\t\tsetBookingId('');\n\t\t\t\tsetBookingGuid('');\n\t\t\t\thistory.push('/');\n\t\t\t}\n\t\t} finally {\n\t\t\tactions.setSubmitting(false);\n\t\t}\n\t};\n\n\tconst handleDiscountCodeInputChange = e => {\n\t\tsetDiscountCode(e.target.value);\n\t\tsetAppliedDiscountCodeValidity();\n\t};\n\n\tconst applyDiscountCode = () => {\n\t\t(async () => {\n\t\t\tconst pricing = await calculateTotals({ discountCode });\n\n\t\t\tsetPricing(pricing);\n\t\t\tsetAppliedDiscountCode(pricing.discountWithCodeInfo.code || '');\n\t\t\tsetAppliedDiscountCodeValidity(!!pricing.discountWithCodeInfo.code && pricing.discountWithCodeInfo.appliedAmount >= 0);\n\t\t})().catch(e => {\n\t\t\ttoast(e);\n\t\t});\n\t};\n\n\tconst payseraForm = useMemo(() => payseraRequest != null && (\n\t\t<form ref={payseraFormRef} method=\"POST\" action={payseraRequest.url}>\n\t\t\t<input type=\"hidden\" name=\"data\" defaultValue={payseraRequest.data} />\n\t\t\t<input type=\"hidden\" name=\"sign\" defaultValue={payseraRequest.sign} />\n\t\t</form>\n\t), [payseraRequest, payseraFormRef]);\n\n\tconst onAdyenPaymentCompleted = (result) => {\n\t\tsetAdyenPaymentSuccess(!['Cancelled', 'Error', 'Refused'].includes(result.resultCode));\n\t};\n\n\tconst onAdyenPaymentError = () => {\n\t\tsetAdyenPaymentSuccess(false);\n\t};\n\n\tconst handleAcceptTermsAndConditions = () => {\n\t\tif (isAcceptTermsConditions) {\n\t\t\tsetIsAcceptTermsConditions(false);\n\t\t\treturn;\n\t\t}\n\t\tsetIsConfirmModalOpen(true);\n\t};\n\n\tuseEffect(() => {\n\t\tif (!paymentGatewaySettings?.provider) { return; }\n\n\t\tif (paymentGatewaySettings?.provider === 'adyen') {\n\t\t\tsetAdyenConfiguration(config => ({\n\t\t\t\t...config,\n\t\t\t\tenvironment: paymentGatewaySettings.adyenEnvironment,\n\t\t\t\tclientKey: paymentGatewaySettings.adyenClientKey,\n\t\t\t\tanalytics: {\n\t\t\t\t\tenabled: paymentGatewaySettings.adyenEnvironment === 'live',\n\t\t\t\t},\n\t\t\t\tonPaymentCompleted: onAdyenPaymentCompleted,\n\t\t\t\tonError: onAdyenPaymentError,\n\t\t\t}));\n\t\t}\n\n\t}, [paymentGatewaySettings]);\n\n\tuseEffect(() => {\n\t\tif (booking && booking.expired) {\n\t\t\tsetBookingId('');\n\t\t\tsetBookingGuid('');\n\t\t}\n\t}, [booking, setBookingId, setBookingGuid]);\n\n\tuseEffect(() => {\n\t\tif (booking) {\n\t\t\tsetIsOrdered(booking?.orders.length > 0);\n\t\t}\n\t}, [booking]);\n\n\tuseEffect(() => {\n\t\tif (booking && !booking.expired) {\n\t\t\t(async () => {\n\t\t\t\tsetPricing(await calculateTotals({ discountCode: appliedDiscountCode }));\n\t\t\t})().catch(e => {\n\t\t\t\ttoast(e);\n\t\t\t});\n\n\t\t\tif (booking.orders.length) {\n\t\t\t\tsetCustomer(customer => ({\n\t\t\t\t\t...customer,\n\t\t\t\t\tname: booking.orders[0].customer.name,\n\t\t\t\t\tsurname: booking.orders[0].customer.surname,\n\t\t\t\t\temail: booking.orders[0].customer.email,\n\t\t\t\t\tphone: booking.orders[0].customer.phone,\n\t\t\t\t\tcountry: booking.personDetails.country,\n\t\t\t\t\tbirthday: booking.personDetails.birthday,\n\t\t\t\t\tcompanyName: booking.orders[0].customer?.company.name,\n\t\t\t\t\tcompanyCode: booking.orders[0].customer?.company.code,\n\t\t\t\t\tcompanyAddress: booking.orders[0].customer?.company.address,\n\t\t\t\t\tcompanyVATCode: booking.orders[0].customer?.company.vat,\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t}, [booking, appliedDiscountCode]);\n\n\tuseEffect(() => {\n\t\tif (!isAdditionalPaymentStepUsed) { return; }\n\t\tif (!adyenConfiguration?.clientKey) { return; }\n\t\tif (!adyenConfiguration?.session?.sessionData) { return; }\n\t\tif (!adyenConfiguration?.session?.id) { return; }\n\n\t\tAdyenCheckout(adyenConfiguration)\n\t\t\t.then(checkout => {\n\t\t\t\tcheckout.create('dropin').mount('#adyen-dropin-container');\n\t\t\t})\n\t\t\t.catch(console.error);\n\t}, [isAdditionalPaymentStepUsed, adyenConfiguration]);\n\n\tuseEffect(() => {\n\t\tif (id && typeof adyenPaymentSuccess === 'boolean') {\n\t\t\tconst checkoutResultUrl = `/order/${id}`;\n\n\t\t\tsetBackdropOpen(true);\n\n\t\t\tnew Promise(resolve => setTimeout(resolve, 2000))\n\t\t\t\t.then(() => {\n\t\t\t\t\tsetBackdropOpen(false);\n\n\t\t\t\t\tif (adyenPaymentSuccess === true) {\n\t\t\t\t\t\thistory.push(`${checkoutResultUrl}/success/?language=${locale}`);\n\t\t\t\t\t} else {\n\t\t\t\t\t\thistory.push(`${checkoutResultUrl}/failure/?language=${locale}`);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch(console.error);\n\t\t}\n\t}, [id, adyenPaymentSuccess]);\n\n\treturn (\n\t\t<div className={classes.root}>\n\t\t\t<HeaderMessages />\n\t\t\t<Header>\n\t\t\t\t<Progress status=\"checkout\" id={id} isOrdered={isOrdered} />\n\t\t\t</Header>\n\n\t\t\t<Container>\n\t\t\t\t<Grid container spacing={3} style={{ paddingBottom: '100px' }}>\n\t\t\t\t\t{!isAdditionalPaymentStepUsed && <Grid item xs={12} md={8}>\n\t\t\t\t\t\t<Formik\n\t\t\t\t\t\t\tenableReinitialize={true}\n\t\t\t\t\t\t\tinitialValues={customer}\n\t\t\t\t\t\t\tvalidationSchema={checkoutSchema(tr, visibleCheckOutFormInputs)}\n\t\t\t\t\t\t\tonSubmit={handleFormSubmit}\n\t\t\t\t\t\t\tvalidateOnChange={true} >\n\t\t\t\t\t\t\t{({\n\t\t\t\t\t\t\t\tvalues,\n\t\t\t\t\t\t\t\thandleChange,\n\t\t\t\t\t\t\t\thandleBlur,\n\t\t\t\t\t\t\t\ttouched,\n\t\t\t\t\t\t\t\terrors,\n\t\t\t\t\t\t\t\tsetFieldValue,\n\t\t\t\t\t\t\t}) => {\n\t\t\t\t\t\t\t\tconst props = (name, initial = '') => ({\n\t\t\t\t\t\t\t\t\tname: name,\n\t\t\t\t\t\t\t\t\tvalue: typeof values[name] !== 'undefined' ? values[name] : initial,\n\t\t\t\t\t\t\t\t\tonChange: handleChange,\n\t\t\t\t\t\t\t\t\tonBlur: handleBlur,\n\t\t\t\t\t\t\t\t\terror: touched[name] && Boolean(errors[name]),\n\t\t\t\t\t\t\t\t\thelperText: touched[name] ? errors[name] : '',\n\t\t\t\t\t\t\t\t\tsetFieldValue: setFieldValue,\n\t\t\t\t\t\t\t\t\tvalues,\n\t\t\t\t\t\t\t\t\thandleBlur,\n\t\t\t\t\t\t\t\t\ttouched,\n\t\t\t\t\t\t\t\t\terrors,\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<Form>\n\t\t\t\t\t\t\t\t\t\t<Typography variant=\"h3\" className={classes.headline}>\n\t\t\t\t\t\t\t\t\t\t\t{tr('Contact information')}\n\t\t\t\t\t\t\t\t\t\t</Typography>\n\n\t\t\t\t\t\t\t\t\t\t<Grid container spacing={3} className={classes.form}>\n\t\t\t\t\t\t\t\t\t\t\t<CheckOutInputsForm\n\t\t\t\t\t\t\t\t\t\t\t\tprops={props}\n\t\t\t\t\t\t\t\t\t\t\t\tvisibleCheckOutFormInputs={visibleCheckOutFormInputs}\n\t\t\t\t\t\t\t\t\t\t\t\troomReservation={roomReservation}\n\t\t\t\t\t\t\t\t\t\t\t\tvalues={values}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t<Grid item xs={12}>\n\t\t\t\t\t\t\t\t\t\t\t\t{tr('Have a discount code?')}\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t\t<Grid item xs={8}>\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField fullWidth variant=\"outlined\" label={tr('Discount code')} {...props('discountCode')} value={discountCode} onChange={handleDiscountCodeInputChange} />\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t\t<Grid item xs={4} style={{ textAlign: 'center', alignSelf: 'center' }}>\n\t\t\t\t\t\t\t\t\t\t\t\t<Button disabled={!discountCode} color=\"secondary\" type=\"button\" onClick={applyDiscountCode}>{tr('Apply')}</Button>\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t\t{isAppliedDiscountCodeValid === true && <Grid item xs={12}>\n\t\t\t\t\t\t\t\t\t\t\t\t<Alert>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{tr('Discount code applied.')}\n\t\t\t\t\t\t\t\t\t\t\t\t</Alert>\n\t\t\t\t\t\t\t\t\t\t\t</Grid>}\n\t\t\t\t\t\t\t\t\t\t\t{isAppliedDiscountCodeValid === false && <Grid item xs={12}>\n\t\t\t\t\t\t\t\t\t\t\t\t<Alert severity=\"error\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{tr('It appears that this discount code is invalid.')}\n\t\t\t\t\t\t\t\t\t\t\t\t</Alert>\n\t\t\t\t\t\t\t\t\t\t\t</Grid>}\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\n\t\t\t\t\t\t\t\t\t\t<FormControl component=\"fieldset\" className={classes.aggrements}>\n\t\t\t\t\t\t\t\t\t\t\t<FormGroup>\n\t\t\t\t\t\t\t\t\t\t\t\t<FormControlLabel className={classes.chekcbox}\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontrol={<Checkbox onBlur={handleBlur} id=\"terms\" color=\"primary\" name=\"acceptsTermsConditions\" checked={isAcceptTermsConditions} onChange={() => { handleAcceptTermsAndConditions(), setFieldValue('acceptsTermsConditions', !values.acceptsTermsConditions); }} />}\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<label htmlFor=\"terms\" className={`${classes.label} ${touched['acceptsTermsConditions'] && Boolean(errors['acceptsTermsConditions']) ? classes.error : ''}`} >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{tr('I accept')}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Link to={`/terms/?language=${locale}`} className={classes.link}>{tr('Terms and Conditions')}</Link>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{tr('and')}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Link to={`/privacy/?language=${locale}`} className={classes.link}>{tr('Privacy Policy')}</Link>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{Boolean(errors['acceptsTermsConditions']) &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<FormHelperText error={true}>{touched['acceptsTermsConditions'] ? errors['acceptsTermsConditions'] : ''}</FormHelperText>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t<FormControlLabel className={classes.chekcbox}\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontrol={<Checkbox id=\"mailing\" color=\"primary\" value={values.agreeMarketingInfo} onChange={() => setFieldValue('agreeMarketingInfo', !values.agreeMarketingInfo)} />}\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<label htmlFor=\"mailing\" className={classes.label}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{tr('I agree to get marketing info. I may unsubscribe anytime.')}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</FormGroup>\n\t\t\t\t\t\t\t\t\t\t</FormControl>\n\t\t\t\t\t\t\t\t\t\t{booking && !booking.expired &&\n\t\t\t\t\t\t\t\t\t\t\t<Button wide={true} color=\"primary\" type=\"submit\">{tr('Pay')}</Button>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t{booking && booking.expired &&\n\t\t\t\t\t\t\t\t\t\t\t<Alert variant=\"outlined\" severity=\"error\">\n\t\t\t\t\t\t\t\t\t\t\t\t{tr('Booking expired. Checkout is not available.')}\n\t\t\t\t\t\t\t\t\t\t\t</Alert>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t<TermsAndConditionsConfirmDialog\n\t\t\t\t\t\t\t\t\t\t\tisOpen={isConfirmModalOpen}\n\t\t\t\t\t\t\t\t\t\t\tonClose={() => { setIsConfirmModalOpen(false); setFieldValue('acceptsTermsConditions', false); setIsAcceptTermsConditions(false); }}\n\t\t\t\t\t\t\t\t\t\t\tsubmitAction={() => { setIsConfirmModalOpen(false); setFieldValue('acceptsTermsConditions', true); setIsAcceptTermsConditions(true); }}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Form>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</Formik>\n\t\t\t\t\t</Grid>}\n\n\t\t\t\t\t{isAdditionalPaymentStepUsed && <Grid item xs={12} md={8} container spacing={2}>\n\t\t\t\t\t\t<Grid item xs={12}>\n\t\t\t\t\t\t\t<div id=\"adyen-dropin-container\" />\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>}\n\n\t\t\t\t\t<Grid item xs={12} md={4}>\n\t\t\t\t\t\t{booking && pricing &&\n\t\t\t\t\t\t\t<CheckoutSummary booking={booking} pricing={pricing} VATLines={VATLines} />\n\t\t\t\t\t\t}\n\t\t\t\t\t</Grid>\n\t\t\t\t</Grid>\n\t\t\t</Container>\n\n\t\t\t<Footer />\n\n\t\t\t{payseraForm}\n\n\t\t\t<Backdrop\n\t\t\t\tclassName={classes.backdrop}\n\t\t\t\topen={isBackdropOpen}\n\t\t\t>\n\t\t\t\t<CircularProgress color=\"inherit\" />\n\t\t\t</Backdrop>\n\t\t</div>\n\t);\n}\n\nColivingCheckout.propTypes = {\n\tmatch: PropTypes.object,\n\thistory: PropTypes.object,\n};\n\nexport default ColivingCheckout;\n\nconst useStyles = makeStyles(theme => ({\n\troot: {\n\t\tflexGrow: 1,\n\t\tposition: 'relative',\n\t\tminHeight: '96vh',\n\t},\n\theadline: {\n\t\tmarginBottom: theme.spacing(3),\n\t},\n\tform: {\n\t\tmarginBottom: theme.spacing(5),\n\t},\n\tpayment: {\n\t\tmarginTop: theme.spacing(4),\n\t\tmarginBottom: theme.spacing(4),\n\t},\n\taggrements: {\n\t\tmarginBottom: theme.spacing(3),\n\t},\n\tchekcbox: {\n\t},\n\tlink: {\n\t\tcolor: 'inherit',\n\t\tborderBottom: '1px solid',\n\t\tborderBottomColor: 'inherit',\n\t\ttextDecoration: 'none',\n\n\t\t'&:hover': {\n\t\t\tborderBottomColor: 'transparent',\n\t\t},\n\t},\n\tlabel: {\n\t\tcolor: theme.palette.primary.light,\n\t\tuserSelect: 'none',\n\t\tcursor: 'pointer',\n\n\t\t'&:hover': {\n\t\t\tcolor: theme.palette.primary.dark,\n\t\t},\n\t},\n\terror: {\n\t\tcolor: theme.palette.error.main,\n\t},\n\tbackdrop: {\n\t\tzIndex: theme.zIndex.drawer + 1,\n\t\tcolor: theme.palette.custom.main,\n\t\tbackgroundColor: 'rgba(202, 204, 203, 0.1)',\n\t},\n}));\n\n","export const getAdyenConfiguration = () => ({\n\tenvironment: 'test',\n\tclientKey: '',\n\tanalytics: {\n\t\tenabled: false,\n\t},\n\tsession: {\n\t\tid: '', // Unique identifier for the payment session - received from BE.\n\t\tsessionData: '', // The payment session data - received from BE.\n\t},\n\tonPaymentCompleted: (result, component) => {\n\t},\n\tonError: (error, component) => {\n\t},\n\t// Any payment method specific configuration. Find the configuration specific to each payment method:  https://docs.adyen.com/payment-methods\n\t// For example, this is 3D Secure configuration for cards:\n\tpaymentMethodsConfiguration: {\n\t\tcard: {\n\t\t\thasHolderName: true,\n\t\t\tholderNameRequired: true,\n\t\t\tbillingAddressRequired: true,\n\t\t},\n\t},\n});\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport * as qs from 'query-string';\nimport _ from 'lodash';\n\nimport { useSelector } from 'react-redux';\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport http from '@common/http';\nimport moment from 'moment';\n\nimport { Grid, Typography, Button as MuiButton, Dialog, DialogContent, DialogActions } from '@material-ui/core';\n\nimport CheckCircle from '@material-ui/icons/CheckCircle';\n\nimport { Button, Container, Header, ColivingDetail, GoogleMap, Footer } from '@common/components';\n\nimport { toast, useDetails, useSessionState, useTranslation, useI18n } from '@common/utils';\n\nimport { useSettings } from '@common/hooks';\n\nimport {\n\tAmenities,\n\tDatePickers,\n\tHeaderMessages,\n\tProductImages,\n\tProductOptions,\n\tRequestSubmitDialog,\n} from '@components/Coliving';\n\nimport { Link } from 'react-router-dom';\n\nconst handleBookingError = (e) => {\n\tconst tr = useTranslation();\n\tif (e?.data?.message === 'BookingOneOrMoreProductsUnavailable') {\n\t\ttoast({ text: `${tr(e.data.message)}: ${e?.data?.extra?.processed || 0}`, type: 'error' });\n\t} else {\n\t\ttoast({ text: e?.data?.message || e.message, type: 'error' });\n\t}\n};\n\nfunction ColivingDetails({ history, match }) {\n\tconst classes = useStyles();\n\tconst { id } = match.params;\n\tconst { locale } = useSelector(state => state.locale);\n\tconst params = qs.parse(history.location.search);\n\tconst { currencySymbol, currencyCode } = useSettings();\n\tconst [isRequestFormDialogOpen, setIsRequestFormDialogOpen] = useState(false);\n\tconst [isRequestConfirmDialogOpen, setIsRequestConfirmDialogOpen] = useState(false);\n\tconst [requestButton, setRequestButon] = useState({ text: 'Inquire', isSent: false });\n\tconst [seconds, setSeconds] = useState(6);\n\tconst tr = useTranslation();\n\n\tconst { state: bookingId, setState: setBookingId } = useSessionState('booking-id', '');\n\n\tuseEffect(async () => {\n\t\tif (!bookingId) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { data: booking } = await http.get(`/api/kiosks/coliving/bookings/${bookingId}`);\n\n\t\tif (booking.expired) {\n\t\t\tsetBookingId('');\n\t\t}\n\t}, [bookingId]);\n\n\tconst [quantity, setQuantity] = useState(1);\n\n\tconst [state, setState] = useState({\n\t\t...params,\n\t\tfrom: params.from || null,\n\t\tto: params.to || null,\n\t});\n\n\tconst { details: coliving, isLoading } = useDetails(`/api/kiosks/coliving/products/${id}?${qs.stringify(state)}`, {\n\t\tamenities: [],\n\t\tasset: '',\n\t\tassetCapacity: 0,\n\t\tassetPersonCapacity: 0,\n\t\tassetType: '',\n\t\tdescription: '',\n\t\timage: '',\n\t\timages: [],\n\t\tlocation: {\n\t\t\tcoordinates: '',\n\t\t\tstreet: '',\n\t\t\tcity: '',\n\t\t\tcountry: '',\n\t\t\tgettingThere: '',\n\t\t},\n\t\toptions: [],\n\t\tperks: '',\n\t\tpersonCapacity: 0,\n\t\tpricePerDay: 0,\n\t\tpricePerDayAfterDiscount: 0,\n\t\tsummary: '',\n\t\ttitle: '',\n\t\tisOnlyInquired: false,\n\t\tisPriceVisible: true,\n\t\tminDuration: '',\n\t\tmaxDuration: '',\n\t\ti18n: {},\n\t}, [id, state]);\n\n\tconst i18n = useI18n(coliving.i18n);\n\tconst title = i18n('title', coliving.title);\n\tconst description = i18n('productDescription', coliving.productDescription);\n\tconst perks = i18n('perks', coliving.perks);\n\n\tuseEffect(() => {\n\t\thistory.replace({\n\t\t\tsearch: qs.stringify(state),\n\t\t});\n\t}, [state]);\n\n\tconst handleBook = async () => {\n\t\twindow.dataLayer = window.dataLayer || [];\n\t\twindow.dataLayer.push({ ecommerce: null });\n\t\twindow.dataLayer.push({ 'event': 'Buy Now' });\n\t\twindow.dataLayer.push({\n\t\t\tevent: 'begin_checkout',\n\t\t\tecommerce: {\n\t\t\t\tcurrency: currencyCode,\n\t\t\t\tvalue: coliving.pricePerDayAfterDiscount || coliving.pricePerDay,\n\t\t\t\titems: [\n\t\t\t\t\t{\n\t\t\t\t\t\titem_id: coliving._id,\n\t\t\t\t\t\titem_name: coliving.title,\n\t\t\t\t\t\tdiscount: coliving.pricePerDayAfterDiscount ? coliving.pricePerDay - coliving.pricePerDayAfterDiscount : 0,\n\t\t\t\t\t\tprice: coliving.total,\n\t\t\t\t\t\tquantity: coliving.durationInDays,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t});\n\n\t\tconst res = await http.get(`/api/kiosks/coliving/products/${id}?${qs.stringify(state)}`);\n\n\t\tif (!res.data.available) {\n\t\t\ttoast({ text: tr('Booking is not available'), type: 'error' });\n\t\t\treturn;\n\t\t}\n\n\t\tconst products = new Array(quantity).fill({\n\t\t\tproduct: id,\n\t\t\tfrom: state.from,\n\t\t\tto: state.to,\n\t\t});\n\n\t\tif (bookingId) {\n\t\t\thttp.post(`/api/kiosks/coliving/bookings/${bookingId}/products`, { products }).then(() => {\n\t\t\t\thistory.push(`/booking/${bookingId}/?language=${locale}`);\n\t\t\t}).catch(handleBookingError);\n\t\t} else {\n\t\t\thttp.post('/api/kiosks/coliving/bookings', { products }).then(({ data: bookings }) => {\n\t\t\t\tsetBookingId(bookings._id);\n\t\t\t\thistory.push(`/booking/${bookings._id}/?language=${locale}`);\n\t\t\t}).catch(handleBookingError);\n\t\t}\n\t};\n\n\tconst handelRequestFormSubmit = async (e, values) => {\n\t\te.preventDefault();\n\n\t\tconst { name, surname, email, phone, companyName, companyCode, companyAddress, companyVATCode, agreeMarketingInfo } = values;\n\n\t\tlet description = '';\n\n\t\tfor (let [key, value] of Object.entries(_.omit(values, ['agreeMarketingInfo']))) {\n\t\t\tif (key && values) {\n\t\t\t\tif (key === 'companyName') {\n\t\t\t\t\tkey = 'company name';\n\t\t\t\t}\n\t\t\t\tif (key === 'companyCode') {\n\t\t\t\t\tkey = 'company code';\n\t\t\t\t}\n\t\t\t\tif (key === 'companyAddress') {\n\t\t\t\t\tkey = 'company address';\n\t\t\t\t}\n\t\t\t\tif (key === 'companyVATCode') {\n\t\t\t\t\tkey = 'company VAT code';\n\t\t\t\t}\n\t\t\t\tdescription = description.concat(`${key}: ${value}\\n`);\n\t\t\t}\n\t\t}\n\n\t\tif (state.from && state.to) {\n\t\t\tdescription = `${description}${`from: ${moment(state.from).format('YYYY-MM-DD')}\\n`}${`to: ${moment(state.to).format('YYYY-MM-DD')}\\n`}`;\n\t\t}\n\n\t\tconst updated = { name, surname, email, phone, companyName, companyCode, companyAddress, companyVATCode, agreeMarketingInfo, description: description, product: id, size: coliving?.total || 0, from: state.from, to: state.to };\n\n\t\ttry {\n\t\t\tlet interval;\n\t\t\tawait http.post('/api/kiosks/coliving/products/opportunity', updated);\n\n\t\t\ttoast({ text: tr('Request created') });\n\n\t\t\tsetIsRequestFormDialogOpen(false);\n\n\t\t\tsetRequestButon({ text: tr('Request sent'), isSent: true });\n\n\t\t\tsetIsRequestConfirmDialogOpen(true);\n\n\t\t\tinterval = setInterval(() => {\n\t\t\t\tsetSeconds((prevSeconds) => prevSeconds - 1);\n\t\t\t}, 1000);\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tclearInterval(interval);\n\t\t\t\twindow.history.back();\n\t\t\t}, 7000);\n\n\t\t} catch (e) {\n\t\t\ttoast(e);\n\t\t}\n\t};\n\n\tconst isDateSelected = state.from && state.to ? true : false;\n\tconst isBookingAvailable = isDateSelected && coliving.available;\n\tconst isPriceVisible = coliving?.isOnlyInquired && coliving?.isPriceVisible === false ? false : true;\n\n\tconst BookOrInquiredButton = () => {\n\t\tif (coliving.isOnlyInquired) {\n\t\t\treturn <Button wide={true} color=\"dark\" onClick={() => setIsRequestFormDialogOpen(true)} disabled={!isDateSelected || requestButton.isSent}>{tr(requestButton.text)}</Button>;\n\t\t}\n\t\tif ((coliving.available || coliving.available === undefined)) {\n\t\t\treturn <Button wide={true} color=\"dark\" onClick={handleBook} disabled={!coliving.available}>{tr('Book Now')}</Button>;\n\t\t} else {\n\t\t\treturn <Button wide={true} color=\"dark\" onClick={() => setIsRequestFormDialogOpen(true)} disabled={!isDateSelected || requestButton.isSent}>{tr(requestButton.text)}</Button>;\n\t\t}\n\t};\n\n\treturn (\n\t\t<div className={classes.root}>\n\t\t\t<HeaderMessages />\n\t\t\t<Header>\n\t\t\t\t<DatePickers dates={state} setDates={setState} boxes={true} productId={id} />\n\t\t\t</Header>\n\n\t\t\t<Container >\n\t\t\t\t<Grid container spacing={3} className={classes.padding}>\n\t\t\t\t\t<Grid item xs={12} style={{ marginTop: '-24px', marginBottom: '-12px', padding: 0 }}>\n\t\t\t\t\t\t<MuiButton className={classes.backButton} variant='text' component={Link} to={`/?${qs.stringify(state)}&language=${locale}`}>{`← ${tr('Back to search')}`}</MuiButton>\n\t\t\t\t\t</Grid>\n\t\t\t\t\t<Grid item xs={12} md={8}>\n\t\t\t\t\t\t<Typography variant=\"h2\">\n\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t</Grid>\n\t\t\t\t\t<Grid item xs={12} md={4}>\n\t\t\t\t\t\t{!coliving.pricePerDayAfterDiscount && isPriceVisible && <div className={classes.price}>\n\t\t\t\t\t\t\t<span className={classes.outline}>{coliving.pricePerDay} {currencySymbol}/{tr('night')}</span>\n\t\t\t\t\t\t</div>}\n\t\t\t\t\t\t{coliving.pricePerDayAfterDiscount > 0 && isPriceVisible && <div className={classes.price}>\n\t\t\t\t\t\t\t&nbsp;<span className={classes.outline} style={{ textDecorationLine: 'line-through', color: 'red' }}>{coliving.pricePerDay} {currencySymbol}</span>\n\t\t\t\t\t\t\t&nbsp;<span className={classes.outline}>{coliving.pricePerDayAfterDiscount} {currencySymbol}</span><span className={classes.outline}>/{tr('night')}</span>\n\t\t\t\t\t\t</div>}\n\t\t\t\t\t</Grid>\n\t\t\t\t\t<Grid item xs={12} md={8}>\n\t\t\t\t\t\t<ProductImages images={coliving.images} />\n\n\t\t\t\t\t\t<ColivingDetail header={tr('Description')} >\n\t\t\t\t\t\t\t<div dangerouslySetInnerHTML={{ __html: description ? description : '-' }} />\n\t\t\t\t\t\t</ColivingDetail>\n\n\t\t\t\t\t\t{coliving.amenities && coliving.amenities.length > 0 &&\n\t\t\t\t\t\t\t<ColivingDetail header={tr('Amenities')}>\n\t\t\t\t\t\t\t\t<Amenities amenities={coliving.amenities} large={true} />\n\t\t\t\t\t\t\t</ColivingDetail>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t<ColivingDetail header={tr('Location')}>\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{coliving?.location?.street && <div>{coliving.location?.street}</div>}\n\t\t\t\t\t\t\t\t{coliving?.location?.city && <div>{coliving.location?.city}</div>}\n\t\t\t\t\t\t\t\t{coliving?.location?.country && <div>{coliving.location?.country}</div>}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t</ColivingDetail>\n\n\t\t\t\t\t\t{coliving?.location?.coordinates &&\n\t\t\t\t\t\t\t<div className={classes.map}>\n\t\t\t\t\t\t\t\t<GoogleMap coordinates={coliving.location?.coordinates} />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t{coliving?.location?.gettingThere &&\n\t\t\t\t\t\t\t<ColivingDetail header={tr('Getting here')}>\n\t\t\t\t\t\t\t\t<div dangerouslySetInnerHTML={{ __html: coliving.location?.gettingThere }} />\n\t\t\t\t\t\t\t</ColivingDetail>\n\t\t\t\t\t\t}\n\n\t\t\t\t\t</Grid>\n\t\t\t\t\t<Grid item xs={12} md={4}>\n\t\t\t\t\t\t{isPriceVisible &&\n\t\t\t\t\t\t\t<Typography variant=\"h3\" style={{ marginBottom: '16px' }}>\n\t\t\t\t\t\t\t\t{tr(isBookingAvailable ? 'Refine your booking' : 'Add dates for prices')}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\t<div className={`${perks !== '' ? '' : classes.options}`} dangerouslySetInnerHTML={{ __html: perks ? perks : '-' }} />\n\n\t\t\t\t\t\t<div className={classes.separator} />\n\n\t\t\t\t\t\t<div className={classes.options}>\n\t\t\t\t\t\t\t<ProductOptions coliving={coliving} search={qs.stringify(state)} quantity={quantity} setQuantity={setQuantity} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{isPriceVisible &&\n\t\t\t\t\t\t\t<div className={`${classes.total} ${isBookingAvailable ? '' : classes.totalDisabled}`}>\n\t\t\t\t\t\t\t\t<div>{tr('Total')}</div>\n\t\t\t\t\t\t\t\t{isDateSelected && !isLoading &&\n\t\t\t\t\t\t\t\t\t<div>{coliving.pricePerDayAfterDiscount > 0 ? coliving.pricePerDayAfterDiscount * coliving.durationInDays : coliving.total * quantity} {currencySymbol}</div>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t<div className={classes.dates}>\n\t\t\t\t\t\t\t{(coliving?.minDuration || coliving?.maxDuration) &&\n\t\t\t\t\t\t\t\t<Grid style={{ margin: '0 auto', paddingBottom: '12px' }} container spacing={2} item xs={12}>\n\t\t\t\t\t\t\t\t\t{coliving?.minDuration &&\n\t\t\t\t\t\t\t\t\t\t<Grid style={{ padding: '0 4px 0 0', alignItems: 'center', display: 'flex', flexDirection: 'column' }} item xs={12} sm={6}>\n\t\t\t\t\t\t\t\t\t\t\t<Typography variant=\"caption\">\n\t\t\t\t\t\t\t\t\t\t\t\t{tr('Minimum duration')}\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t\t<Typography variant=\"subtitle2\">\n\t\t\t\t\t\t\t\t\t\t\t\t{`${coliving?.minDuration} ${tr(coliving?.durationType === 'months' ? coliving?.durationType : 'nights')}`}\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t{coliving?.maxDuration &&\n\t\t\t\t\t\t\t\t\t\t<Grid style={{ padding: '0 0 0 4px', alignItems: 'center', display: 'flex', flexDirection: 'column' }} item xs={12} sm={6}>\n\t\t\t\t\t\t\t\t\t\t\t<Typography variant=\"caption\">\n\t\t\t\t\t\t\t\t\t\t\t\t{tr('Maximum duration')}\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t\t<Typography variant=\"subtitle2\">\n\t\t\t\t\t\t\t\t\t\t\t\t{`${coliving?.maxDuration} ${tr(coliving?.durationType === 'months' ? coliving?.durationType : 'nights')}`}\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t<DatePickers dates={state} setDates={setState} productId={id} minDuration={coliving?.minDuration || undefined} />\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<BookOrInquiredButton />\n\n\t\t\t\t\t\t{!coliving.available && !isLoading && isDateSelected && !coliving.isOnlyInquired &&\n\t\t\t\t\t\t\t<Typography gutterBottom variant=\"body2\" className={classes.error}>\n\t\t\t\t\t\t\t\t{coliving.available === false && coliving.isMinDurationValid === false &&\n\t\t\t\t\t\t\t\t`${tr('Minimum stay duration')} ${coliving?.minDuration} ${tr(coliving?.durationType === 'months' ? coliving?.durationType : 'nights')}`\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t{coliving.available === false && coliving.isMaxDurationValid === false &&\n\t\t\t\t\t\t\t\t`${tr('Maximum stay duration')} ${coliving?.maxDuration} ${tr(coliving?.durationType === 'months' ? coliving?.durationType : 'nights')}`\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t{coliving.available === false && coliving.isMaxDurationValid !== false && coliving.isMinDurationValid !== false &&\n\t\t\t\t\t\t\t\t`${tr('It is not available during selected dates')} ${moment(state.from).format('MMM DD')}-${moment(state.to).format('MMM DD')}`\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t}\n\t\t\t\t\t</Grid>\n\t\t\t\t</Grid>\n\t\t\t\t<RequestSubmitDialog\n\t\t\t\t\tisOpen={isRequestFormDialogOpen}\n\t\t\t\t\thandleClose={() => setIsRequestFormDialogOpen(false)}\n\t\t\t\t\thandleAction={handelRequestFormSubmit}\n\t\t\t\t\theadline=\"Request for availability\"\n\t\t\t\t\tquestion=\"Please fill contact form\"\n\t\t\t\t\tactionLabel=\"Submit\"\n\t\t\t\t/>\n\t\t\t\t<Dialog\n\t\t\t\t\topen={isRequestConfirmDialogOpen}\n\t\t\t\t\tonClose={() => setIsRequestConfirmDialogOpen(false)}\n\t\t\t\t\tfullWidth\n\t\t\t\t\tmaxWidth={'sm'}>\n\t\t\t\t\t<DialogContent style={{ minHeight: '200px', display: 'flex', alignItems: 'center', color: '#2e7d32' }}>\n\t\t\t\t\t\t<CheckCircle style={{ fontSize: '36px', marginRight: '12px' }}/>\n\t\t\t\t\t\t<Typography variant=\"h5\" style={{ marginBottom: '16px' }}>\n\t\t\t\t\t\t\t{tr('Thank you, your inquiry has been received and is being processed. Someone will contact you as soon as possible!')}\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t</DialogContent>\n\t\t\t\t\t<DialogActions style={{ fontSize: '14px', padding: '0 24px 24px 0' }}>\n\t\t\t\t\t\t{`${tr('Back to main page after')} ${seconds} ${tr('seconds')}`}\n\t\t\t\t\t</DialogActions>\n\t\t\t\t</Dialog >\n\t\t\t</Container>\n\t\t\t<Footer />\n\t\t</div>\n\t);\n}\n\n// AvailabilityChecker.propTypes = {\n// \tstate: PropTypes.object.isRequired,\n// \tparams: PropTypes.object.isRequired,\n// \tsetState: PropTypes.func.isRequired,\n// \thandleCheckAvailability: PropTypes.func.isRequired,\n// };\n\nColivingDetails.propTypes = {\n\thistory: PropTypes.object,\n\tmatch: PropTypes.object,\n};\n\nexport default ColivingDetails;\n\nconst useStyles = makeStyles(theme => ({\n\troot: {\n\t\tflexGrow: 1,\n\t\tposition: 'relative',\n\t\tminHeight: '100vh',\n\t},\n\tsection: {\n\t\tmarginBottom: theme.spacing(5),\n\t},\n\tmap: {\n\t\theight: '320px',\n\t\tmarginTop: theme.spacing(-2),\n\t\tmarginBottom: theme.spacing(5),\n\t\tbackground: theme.palette.custom.background,\n\t},\n\terror: {\n\t\tmarginTop: theme.spacing(2),\n\t\tcolor: theme.palette.error.main,\n\t},\n\n\tprice: {\n\t\tpaddingTop: '10px',\n\t\tcolor: theme.palette.custom.main,\n\t\tfontSize: '20px',\n\t\ttextAlign: 'right',\n\t},\n\toutline: {\n\t\tfontWeight: 600,\n\t\tfontSize: '28px',\n\t},\n\n\toptions: {\n\t\tpaddingTop: theme.spacing(2),\n\t\tpaddingBottom: theme.spacing(2),\n\t},\n\n\tseparator: {\n\t\tborderTop: `1px solid ${theme.palette.custom.separator}`,\n\t},\n\n\tdates: {\n\t\tmarginBottom: theme.spacing(2),\n\t},\n\n\ttotal: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'row',\n\t\tjustifyContent: 'space-between',\n\t\tfontWeight: 600,\n\t\tmarginBottom: theme.spacing(2),\n\t\tpadding: theme.spacing(2),\n\t\tbackground: theme.palette.custom.background,\n\t},\n\n\ttotalDisabled: {\n\t\topacity: 0.5,\n\t},\n\tpadding: {\n\t\tpaddingBottom: '100px',\n\t},\n\tbackButton: {\n\t\tcolor: '#000091',\n\t\t'&:hover': {\n\t\t\tcolor: '#551A8B',\n\t\t\tbackgroundColor: 'transparent',\n\t\t},\n\t},\n}));\n\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Grid } from '@material-ui/core';\n\nimport { HeaderMessages } from '@components/Coliving';\nimport { DateFilter } from './components';\nimport { Header, Container, ColivingCard, Footer } from '@common/components';\n\nimport { usePageFilter, useRecords } from '@common/utils';\n\nconsole.log('GTM_ID', Array.from(document.querySelectorAll('noscript')).map(e=>e.textContent).find(e => e.includes('id=GTM'))?.match(/(?:GTM-[^ \"]*)/)[0]); // eslint-disable-line no-console\n\nfunction ColivingList({ match }) {\n\tconst classes = useStyles();\n\n\tconst { filter, setFilter } = usePageFilter({\n\t\tfrom: null,\n\t\tto: null,\n\t});\n\n\tconst { records } = useRecords('/api/kiosks/coliving/products', filter, [match.url]);\n\tconst recordsFlat = records.map(r => r.colivings).flat(1);\n\n\tconst colivingsSorted = _.sortBy(recordsFlat,\n\t\ti => (i.available || Infinity),\n\t\ti => (i.sortOrder !== undefined ? i.sortOrder : (i.isOnlyInquired === true ? -1 : Infinity)),\n\t\ti => (i.isMinDurationValid === false || i.isMaxDurationValid === false || Infinity),\n\t\ti => (i.available === false || Infinity),\n\t\ti => (i.pricePerDay || Infinity),\n\t);\n\n\treturn (\n\t\t<div className={classes.root}>\n\t\t\t<HeaderMessages />\n\t\t\t<Header>\n\t\t\t\t<DateFilter filter={filter} setFilter={setFilter} />\n\t\t\t</Header>\n\n\t\t\t<Container style={{ display: 'flex', flexDirection: 'column' }}>\n\t\t\t\t<Grid container spacing={2} style={{ paddingBottom: '100px' }}>\n\t\t\t\t\t{\n\t\t\t\t\t\tcolivingsSorted.map((coliving, i) => (\n\t\t\t\t\t\t\t<Grid key={`coliving-${i}`} item xs={12} md={4} container>\n\t\t\t\t\t\t\t\t<ColivingCard\n\t\t\t\t\t\t\t\t\tcoliving={coliving}\n\t\t\t\t\t\t\t\t\tfilter={filter}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t))}\n\t\t\t\t</Grid>\n\t\t\t</Container>\n\t\t\t<Footer/>\n\t\t</div>\n\t);\n}\n\nColivingList.propTypes = {\n\tmatch: PropTypes.object,\n};\n\nexport default ColivingList;\n\nconst useStyles = makeStyles(() => ({\n\troot: {\n\t\tflexGrow: 1,\n\t\tposition: 'relative',\n\t\tminHeight: '96vh',\n\t},\n}));\n\n","import React, { useState, useEffect } from 'react';\n\nimport PropTypes from 'prop-types';\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport { Header, Container, Footer } from '@common/components';\n\nimport { Bookings, BookingSummary } from './components';\n\nimport { HeaderMessages, Progress } from '@components/Coliving';\n\nimport { Grid, Typography } from '@material-ui/core';\n\nimport { useTranslation, useDetails, toast, useSessionState, useI18n } from '@common/utils';\n\nimport http from '@common/http';\n\nimport { useSettings } from '@common/hooks';\n\nimport { keyBy, uniq } from 'lodash';\n\nfunction Order({ match }) {\n\tconst classes = useStyles();\n\tconst tr = useTranslation();\n\tconst { id, status } = match.params;\n\tconst { currencyCode, i18n: _i18 } = useSettings();\n\tconst i18n = useI18n(_i18);\n\n\tconst bookingConfirmationLeftText = i18n('bookingConfirmationLeftText', _i18.bookingConfirmationLeftText);\n\tconst bookingConfirmationRightText = i18n('bookingConfirmationRightText', _i18.bookingConfirmationRightText);\n\tconst bookingFailureLeftText = i18n('bookingFailureLeftText', _i18.bookingFailureLeftText);\n\tconst bookingFailureRightText = i18n('bookingFailureRightText', _i18.bookingFailureRightText);\n\n\tconst { details } = useDetails(`/api/kiosks/coliving/bookings/${id}`);\n\tconst { state: bookingId, setState: setBookingId } = useSessionState('booking-id', '');\n\tconst { setState: setBookingGuid } = useSessionState('booking-guid', '');\n\tconst [checkouts, setCheckouts] = useState([]);\n\tconst [cumulativeCheckout, setCumulativeCheckout] = useState();\n\tconst [uninvoicedTotal, setUninvoicedTotal] = useState(0);\n\tconst [isInitial, setIsInitial] = useState(true);\n\n\tconst isPaymentFailed = status === 'failure';\n\n\tif (isPaymentFailed && bookingId) {\n\t\tsetBookingId('');\n\t\tsetBookingGuid('');\n\t}\n\n\tuseEffect(() => {\n\t\tif (!details) { return; }\n\n\t\t(async () => {\n\t\t\tconst checkoutResponses = await Promise.all(details.orders.map(async o => await http.get(`/api/kiosks/coliving/checkouts/${o._id}`)));\n\t\t\tconst checkouts = checkoutResponses.map(r => r.data);\n\t\t\tsetCheckouts(checkouts);\n\t\t})().catch(console.error);\n\t}, [details, setCheckouts]);\n\n\tuseEffect(() => {\n\t\tsetCumulativeCheckout(checkouts.reduce((p, c) => ({\n\t\t\tpricing: {\n\t\t\t\ttotal: p.pricing.total + c.pricing.total,\n\t\t\t\ttotalVAT: p.pricing.totalVAT + c.pricing.totalVAT,\n\t\t\t\tdiscountWithCodeInfo: [...p.pricing.discountWithCodeInfo, c.pricing.discountWithCodeInfo],\n\t\t\t},\n\t\t\tproducts: [...p.products, ...c.products],\n\t\t}), {\n\t\t\tpricing: {\n\t\t\t\ttotal: 0,\n\t\t\t\ttotalVAT: 0,\n\t\t\t\tdiscountWithCodeInfo: [],\n\t\t\t},\n\t\t\tproducts: [],\n\t\t}));\n\t}, [checkouts, setCumulativeCheckout]);\n\n\tuseEffect(() => {\n\t\tif (!details) { return; }\n\n\t\tconst uninvoicedBookingProducts = details.products.filter(p => !p.order);\n\t\tconst uninvoicedTotal = uninvoicedBookingProducts.reduce((p, c) => p + c.total, 0);\n\t\tconst isInitial = uninvoicedBookingProducts.length === details.products.length;\n\n\t\tsetUninvoicedTotal(uninvoicedTotal);\n\t\tsetIsInitial(isInitial);\n\t}, [details, setUninvoicedTotal, setIsInitial]);\n\n\tuseEffect(() => {\n\t\tif (status !== 'success' || !cumulativeCheckout || !id) { return; }\n\t\tif (cumulativeCheckout.pricing.total === 0) { return; }\n\n\t\tconst purchaseEvent = {\n\t\t\tevent: 'purchase',\n\t\t\ttransactionId: id,\n\t\t\ttransactionTotal: cumulativeCheckout.pricing.total,\n\t\t\ttransactionTax: cumulativeCheckout.pricing.totalVAT,\n\t\t\ttransactionProducts: cumulativeCheckout.products.map(p => ({\n\t\t\t\tsku: p.sku,\n\t\t\t\tname: p.title,\n\t\t\t\tcategory: p.category,\n\t\t\t\tprice: p.price,\n\t\t\t\tquantity: p.quantity,\n\t\t\t})),\n\t\t\tecommerce: {\n\t\t\t\ttransaction_id: id,\n\t\t\t\tvalue: cumulativeCheckout.pricing.total,\n\t\t\t\ttax: cumulativeCheckout.pricing.totalVAT,\n\t\t\t\tcurrency: currencyCode,\n\t\t\t\titems: cumulativeCheckout.products.map(p => ({\n\t\t\t\t\titem_id: p._id,\n\t\t\t\t\titem_name: p.title,\n\t\t\t\t\tdiscount: p.discount,\n\t\t\t\t\tprice: p.price,\n\t\t\t\t\tquantity: p.quantity,\n\t\t\t\t})),\n\t\t\t},\n\t\t};\n\n\t\twindow.dataLayer = window.dataLayer || [];\n\t\twindow.dataLayer.push({ ecommerce: null });\n\t\twindow.dataLayer.push(purchaseEvent);\n\t}, [status, cumulativeCheckout, id]);\n\n\tconst [productById, setProductById] = useState({});\n\n\tuseEffect(() => {\n\n\t\tPromise\n\t\t\t.all(uniq(details?.products, 'product').map(p => http.get(`/api/kiosks/coliving/products/${p?.product}`).catch(() => ({}))))\n\t\t\t.then(responses => responses.map(response => response.data).filter(Boolean))\n\t\t\t.then(products => setProductById(keyBy(products, '_id')))\n\t\t\t.catch(error => {\n\t\t\t\tconsole.error(error);\n\t\t\t\ttoast(error);\n\t\t\t});\n\n\t}, [details?.productsGrouped]);\n\n\tif (!details || !cumulativeCheckout) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className={classes.root}>\n\t\t\t<HeaderMessages />\n\t\t\t<Header>\n\t\t\t\t<Progress status={isPaymentFailed ? 'cancellation' : 'confirmation'} />\n\t\t\t</Header>\n\n\t\t\t<Container>\n\t\t\t\t<Grid container spacing={3} style={{ paddingBottom: '100px' }}>\n\t\t\t\t\t<Grid item xs={12} md={6}>\n\t\t\t\t\t\t{isPaymentFailed &&\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Typography variant=\"h3\" className={classes.headline}>\n\t\t\t\t\t\t\t\t\t{tr('Failed reservation')} #{details?.orders[0]?.number}\n\t\t\t\t\t\t\t\t</Typography>\n\n\t\t\t\t\t\t\t\t<div dangerouslySetInnerHTML={{ __html: bookingFailureLeftText }} />\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t{!isPaymentFailed && bookingConfirmationLeftText &&\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Typography variant=\"h3\" className={classes.headline}>\n\t\t\t\t\t\t\t\t\t{tr('Your booking reservation')} #{details?.orders[0]?.number}\n\t\t\t\t\t\t\t\t</Typography>\n\n\t\t\t\t\t\t\t\t<div dangerouslySetInnerHTML={{ __html: bookingConfirmationLeftText }} />\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t}\n\t\t\t\t\t</Grid>\n\n\t\t\t\t\t<Grid item xs={12} md={6}>\n\t\t\t\t\t\t<div className={isPaymentFailed || (!isPaymentFailed && bookingConfirmationRightText) ? classes.box : ''}>\n\t\t\t\t\t\t\t{isPaymentFailed &&\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Typography variant=\"h3\" className={classes.headline}>\n\t\t\t\t\t\t\t\t\t\t{tr('Your payment failed')}\n\t\t\t\t\t\t\t\t\t</Typography>\n\n\t\t\t\t\t\t\t\t\t<div dangerouslySetInnerHTML={{ __html: bookingFailureRightText }} />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t{!isPaymentFailed && bookingConfirmationRightText &&\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Typography variant=\"h3\" className={classes.headline}>\n\t\t\t\t\t\t\t\t\t\t{tr('Upon arrival')}\n\t\t\t\t\t\t\t\t\t</Typography>\n\n\t\t\t\t\t\t\t\t\t<div dangerouslySetInnerHTML={{ __html: bookingConfirmationRightText }} />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Grid>\n\n\t\t\t\t\t<Grid container spacing={6} style={{ paddingBottom: '24px' }}>\n\t\t\t\t\t\t<Grid item xs={12}>\n\t\t\t\t\t\t\t<Typography variant=\"h3\">\n\t\t\t\t\t\t\t\t{tr('Booking details')}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\n\t\t\t\t\t{details &&\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Bookings bookings={details.productsGrouped.filter(p => !p.fee && !p.mandatory && !p.upgrade)} />\n\n\t\t\t\t\t\t\t<Grid item xs={12} md={4} style={{ paddingTop: '4px' }}>\n\t\t\t\t\t\t\t\t<BookingSummary\n\t\t\t\t\t\t\t\t\tbookingId={details._id}\n\t\t\t\t\t\t\t\t\ttotal={cumulativeCheckout.pricing.total}\n\t\t\t\t\t\t\t\t\ttotalBeds={details.totalBeds}\n\t\t\t\t\t\t\t\t\ttotalRooms={details.totalRooms}\n\t\t\t\t\t\t\t\t\ttotalServices={details.totalServices}\n\t\t\t\t\t\t\t\t\ttotalFees={details.totalFees}\n\t\t\t\t\t\t\t\t\ttotalMandatory={details.totalMandatory}\n\t\t\t\t\t\t\t\t\ttotalUpgrades={details.totalUpgrades}\n\t\t\t\t\t\t\t\t\tdiscounts={cumulativeCheckout.pricing.discountWithCodeInfo}\n\t\t\t\t\t\t\t\t\tproductsGrouped={details?.productsGrouped || []}\n\t\t\t\t\t\t\t\t\tproductById={productById}\n\t\t\t\t\t\t\t\t\tuninvoicedTotal={uninvoicedTotal}\n\t\t\t\t\t\t\t\t\tisInitial={isInitial}\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t</Grid>\n\t\t\t</Container>\n\t\t\t<Footer />\n\t\t</div>\n\t);\n}\n\nOrder.propTypes = {\n\tmatch: PropTypes.object,\n};\n\nexport default Order;\n\nconst useStyles = makeStyles(theme => ({\n\troot: {\n\t\tflexGrow: 1,\n\t\tposition: 'relative',\n\t\tminHeight: '96vh',\n\t},\n\theadline: {\n\t\tmarginBottom: theme.spacing(3),\n\t},\n\tbox: {\n\t\tpadding: `${theme.spacing(4)}px ${theme.spacing(3)}px ${theme.spacing(2)}px `,\n\t\tbackgroundColor: theme.palette.custom.background,\n\t},\n\tlink: {\n\t\tcolor: theme.palette.primary.dark,\n\t\tborderBottom: '1px solid',\n\t\ttextDecoration: 'none',\n\t\tborderBottomColor: theme.palette.primary.light,\n\n\t\t'&:hover': {\n\t\t\tborderBottomColor: 'transparent',\n\t\t},\n\t},\n}));\n\n","import { useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nfunction ScrollToTop({ history }) {\n\tuseEffect(() => {\n\t\tconst unlisten = history.listen(() => {\n\t\t\twindow.scrollTo(0, 0);\n\t\t});\n\t\treturn () => {\n\t\t\tunlisten();\n\t\t};\n\t}, []);\n\n\treturn (null);\n}\n\nScrollToTop.propTypes = {\n\thistory: PropTypes.object,\n};\n\nexport default withRouter(ScrollToTop);\n","import React from 'react';\nimport { Switch, Route } from 'react-router-dom';\n\nimport { ColivingList, ColivingDetails, ColivingBookings, ColivingCheckout, ColivingOrder } from '../../pages/Coliving';\n\nimport ScrollToTop from './ScrollToTop';\n\nexport const routeColivingOrder = '/order/:id/:status?';\n\nconst Router = () => (<>\n\t<ScrollToTop />\n\t<Switch>\n\t\t<Route path={routeColivingOrder} component={ColivingOrder} />\n\t\t<Route path=\"/checkout/:id\" component={ColivingCheckout} />\n\t\t<Route path=\"/booking/:id\" component={ColivingBookings} />\n\t\t<Route path=\"/:id\" component={ColivingDetails} />\n\t\t<Route path=\"/\" exact component={ColivingList} />\n\t\t<Route render={() => 'Not Found'} />\n\t</Switch>\n</>);\n\nexport default Router;\n","import React from 'react';\n\nimport { useRouteMatch } from 'react-router-dom';\n\nimport { HeaderMessage } from '@common/components';\n\nimport moment from 'moment';\n\nimport { useSettings } from '@common/hooks';\n\nimport { useTranslation, useI18n } from '@common/utils';\n\nimport { routeColivingOrder } from '@components/Router/Router';\n\nfunction HeaderMessages() {\n\tconst match = useRouteMatch(routeColivingOrder);\n\tconst { reservationDates, i18n: i18nSettings } = useSettings();\n\tconst i18n = useI18n(i18nSettings);\n\tconst tr = useTranslation();\n\n\tconst bookingConfirmationHeaderText = i18n('bookingConfirmationHeaderText', i18nSettings.bookingConfirmationHeaderText);\n\tconst bannerText = i18n('bannerText', i18nSettings.bannerText);\n\n\tconst opening = reservationDates.openingDate && moment(reservationDates.from).isAfter(moment()) ? ` from ${reservationDates.from.format('MMMM Do')}` : '';\n\tconst closing = reservationDates.closingDate && moment(reservationDates.to).isAfter(moment()) ? ` until ${reservationDates.to.format('MMMM Do')}` : '';\n\tconst duration = reservationDates.minDuration > 1 ? `${tr('Minimum stay is')} ${reservationDates.minDuration} ${tr('nights')}.` : undefined;\n\n\treturn (\n\t\t<>\n\t\t\t{!!bookingConfirmationHeaderText && match?.isExact && <HeaderMessage message={bookingConfirmationHeaderText} theme=\"dark\" />}\n\t\t\t{!!bannerText && <HeaderMessage message={bannerText} theme=\"dark\" />}\n\t\t\t{(opening || closing || duration) &&\n\t\t\t\t<HeaderMessage message={`${opening || closing ? `${tr('We are now accepting reservations')}${opening}${closing}.` : ''}${duration ? tr(duration) : ''}`} theme=\"action\" />\n\t\t\t}\n\t\t</>\n\t);\n}\n\nexport default HeaderMessages;\n","/* eslint-disable react/prop-types */\nimport React, { memo, useMemo, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport ImageGallery from 'react-image-gallery';\nimport { GalleryLeftIcon, GalleryRightIcon } from '@common/components/Icon';\n\nconst MemoProductImages = memo(function MemoProductImages({ items, renderItem, renderThumbInner, renderLeftNav, renderRightNav }) {\n\treturn (\n\t\t<ImageGallery\n\t\t\titems={items}\n\t\t\tshowFullscreenButton={false}\n\t\t\tshowPlayButton={false}\n\t\t\tuseTranslate3D={false}\n\t\t\tshowThumbnails={items.length > 1}\n\t\t\trenderItem={renderItem}\n\t\t\trenderThumbInner={renderThumbInner}\n\t\t\trenderLeftNav={renderLeftNav}\n\t\t\trenderRightNav={renderRightNav}\n\t\t/>\n\t);\n});\n\nfunction ProductImages({ images }) {\n\tconst classes = useStyles();\n\n\tconst items = useMemo(() => images.filter(i => !!i).map(i => ({\n\t\toriginal: `url(/images/${i})`,\n\t\timage: { backgroundImage: `url(/images/${i})` },\n\t\tthumbnailClass: classes.thumb,\n\t})) || [], [images]);\n\n\tconst renderItem = useCallback((props) => <div className={`${classes.box} ${classes.image}`} style={props.image} />, []);\n\n\tconst renderThumbInner = useCallback((props) => <div className={`${classes.box} ${classes.thumbInner}`} style={props.image} />, []);\n\n\tconst renderLeftNav = useCallback((onClick, disabled) => <button className={`${classes.nav} ${classes.left}`} disabled={disabled} onClick={onClick}><GalleryLeftIcon /></button>, []);\n\n\tconst renderRightNav = useCallback((onClick, disabled) => <button className={`${classes.nav} ${classes.right}`} disabled={disabled} onClick={onClick}><GalleryRightIcon /></button>, []);\n\n\treturn (\n\t\t<div className={classes.container}>\n\t\t\t{items.length === 0 &&\n\t\t\t\t<div className={`${classes.box} ${classes.image}`} />\n\t\t\t}\n\t\t\t{items.length > 0 &&\n\t\t\t\t<MemoProductImages\n\t\t\t\t\titems={items}\n\t\t\t\t\trenderItem={renderItem}\n\t\t\t\t\trenderThumbInner={renderThumbInner}\n\t\t\t\t\trenderLeftNav={renderLeftNav}\n\t\t\t\t\trenderRightNav={renderRightNav}\n\t\t\t\t/>\n\t\t\t}\n\t\t</div>\n\t);\n}\n\nMemoProductImages.propTypes = {\n\titems: PropTypes.array,\n\trenderItem: PropTypes.func.isRequired,\n\trenderThumbInner: PropTypes.func.isRequired,\n\trenderRightNav: PropTypes.func.isRequired,\n};\n\nProductImages.propTypes = {\n\timages: PropTypes.array,\n};\n\nexport default ProductImages;\n\nconst useStyles = makeStyles(theme => ({\n\tcontainer: {\n\t\tmarginBottom: theme.spacing(5),\n\t\t[theme.breakpoints.up('md')]: {\n\t\t\tmarginRight: theme.spacing(3),\n\t\t},\n\t},\n\tbox: {\n\t\tbackgroundColor: theme.palette.custom.background,\n\t\tborderRadius: 4,\n\t\tbackgroundSize: 'cover',\n\t\tbackgroundRepeat: 'no-repeat',\n\t\tbackgroundPosition: 'center',\n\t},\n\timage: {\n\t\theight: '248px',\n\n\t\t[theme.breakpoints.up('md')]: {\n\t\t\theight: '490px',\n\t\t},\n\t},\n\tthumb: {\n\t\tborder: 'none !important',\n\t\tmarginTop: '3px',\n\t\tcursor: 'pointer',\n\n\t\t[theme.breakpoints.down('xs')]: {\n\t\t\tdisplay: 'none',\n\t\t},\n\t\t[theme.breakpoints.up('sm')]: {\n\t\t\tflex: '0 0 153px;',\n\t\t\theight: '104px',\n\n\t\t\t'&:nth-child(n+2)': {\n\t\t\t\tmarginLeft: '8px',\n\t\t\t},\n\t\t},\n\t\t[theme.breakpoints.up('md')]: {\n\t\t\tflex: '0 0 229px;',\n\t\t\theight: '156px',\n\t\t\tmarginTop: '11px',\n\n\t\t\t'&:nth-child(n+2)': {\n\t\t\t\tmarginLeft: '16px',\n\t\t\t},\n\t\t},\n\n\n\t},\n\tthumbInner: {\n\t\tborder: 'none !important',\n\n\t\t[theme.breakpoints.up('sm')]: {\n\t\t\twidth: '153px;',\n\t\t\theight: '104px',\n\t\t},\n\t\t[theme.breakpoints.up('md')]: {\n\t\t\twidth: '229px;',\n\t\t\theight: '156px',\n\t\t},\n\t},\n\tnav: {\n\t\tposition: 'absolute',\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'center',\n\t\ttop: '50%',\n\t\ttransform: 'translateY(-50%)',\n\t\twidth: '36px',\n\t\theight: '36px',\n\t\tborder: 'none',\n\t\tborderRadius: '50%',\n\t\tbackground: 'rgba(255, 255, 255, .65)',\n\t\tzIndex: 50,\n\t\tcursor: 'pointer',\n\t\toutline: 'none',\n\n\t\t[theme.breakpoints.up('md')]: {\n\t\t\twidth: '48px',\n\t\t\theight: '48px',\n\t\t},\n\n\t\t'&:hover': {\n\t\t\tbackground: '#fff',\n\t\t},\n\t},\n\tright: {\n\t\tright: '12px',\n\t},\n\tleft: {\n\t\tleft: '12px',\n\t},\n}));\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport { Typography, Radio } from '@material-ui/core';\n\nimport { useSelector } from 'react-redux';\n\nimport { useTranslation, useI18n } from '@common/utils';\nimport { useSettings } from '@common/hooks';\nimport { Link } from 'react-router-dom';\n\nimport {\n\tQuantitySelector,\n} from '@components/Coliving';\n\nconst Option = ({ title, checked }) => {\n\tconst classes = useStyles();\n\n\treturn (\n\t\t<div className={classes.option}>\n\t\t\t<Radio color=\"primary\" checked={checked} disabled={!checked} className={classes.radio} />\n\t\t\t{title}\n\t\t</div>\n\t);\n};\n\nconst getOption = (id, diff, title, personCapacity, checked, available, isDorm, search, tr) => {\n\n\treturn {\n\t\tdiff,\n\t\ttitle: `${title}${isDorm ? '' : ` (${personCapacity} ${tr('person')})`}`,\n\t\tpersonCapacity,\n\t\tchecked,\n\t\tavailable,\n\t\tto: available ? `/${id}${search ? `?${search}` : ''}` : '',\n\t};\n};\n\nfunction ProductOptions({ coliving, search = '', quantity, setQuantity }) {\n\tconst classes = useStyles();\n\tconst { locale } = useSelector(state => state.locale);\n\n\tconst tr = useTranslation();\n\tconst i18n = useI18n(coliving.i18n);\n\tconst title = i18n('title', coliving.title);\n\n\tconst { currencySymbol } = useSettings();\n\n\tconst [options, setOptions] = useState([]);\n\n\tconst isDorm = coliving.assetType === 'dorm';\n\n\tuseEffect(() => {\n\t\tconst props = (coliving.options || []).map(option => {\n\t\t\tconst total = option.total - coliving.total || 0;\n\t\t\tconst diff = total === 0 ? '' : `${total > 0 ? '+' : ''}${total} ${currencySymbol}`;\n\n\t\t\treturn getOption(option._id, diff, option.title, option.personCapacity, false, option.available !== false, option.assetType === 'dorm', search, tr);\n\t\t});\n\n\t\tsetOptions([...props, getOption(coliving._id, '', title, coliving.personCapacity, true, coliving.available !== false, coliving.assetType === 'dorm', search, tr)]);\n\t}, [coliving, locale]);\n\n\treturn (\n\t\t<>\n\t\t\t<Typography variant=\"h5\" className={classes.label}>{tr(isDorm ? 'Bed' : 'Room')}</Typography>\n\n\t\t\t{options.sort((a, b) => b.personCapacity - a.personCapacity).map((option, i) => {\n\t\t\t\treturn (\n\t\t\t\t\t<div key={`option-${i}`} >\n\t\t\t\t\t\t{option.available && option.to &&\n\t\t\t\t\t\t\t<div className={`${classes.option}`}>\n\t\t\t\t\t\t\t\t<Link className={classes.link} to={option.to}>\n\t\t\t\t\t\t\t\t\t<Option checked={option.checked} title={option.title} />\n\t\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t\t{option.diff !== '' &&\n\t\t\t\t\t\t\t\t\t<div className={classes.aside}>{option.diff}</div>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t{isDorm && option.checked &&\n\t\t\t\t\t\t\t\t\t<div className={classes.aside}>\n\t\t\t\t\t\t\t\t\t\t<QuantitySelector quantity={quantity} max={coliving.assetCapacity} handleChange={(quantity) => setQuantity(quantity)} />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{!option.available &&\n\t\t\t\t\t\t\t<div className={`${classes.option} ${classes.disabled}`}>\n\t\t\t\t\t\t\t\t<Option checked={option.checked} title={option.title} />\n\t\t\t\t\t\t\t\t{option.diff &&\n\t\t\t\t\t\t\t\t\t<div className={classes.aside}>{option.diff}</div>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t})}\n\t\t</>\n\t);\n}\n\nOption.propTypes = {\n\tchecked: PropTypes.bool,\n\ttitle: PropTypes.string,\n\tdiff: PropTypes.string,\n\tchildren: PropTypes.node,\n};\n\nProductOptions.propTypes = {\n\tcoliving: PropTypes.object.isRequired,\n\tsearch: PropTypes.string,\n\tquantity: PropTypes.number.isRequired,\n\tsetQuantity: PropTypes.func.isRequired,\n};\n\nexport default ProductOptions;\n\nconst useStyles = makeStyles(theme => ({\n\n\tlabel: {\n\t\tcolor: theme.palette.primary.light,\n\t\tmarginBottom: theme.spacing(1),\n\t},\n\n\toption: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'row',\n\t\tjustifyContent: 'space-between',\n\t\tpaddingTop: theme.spacing(1),\n\t\tmarginBottom: theme.spacing(1),\n\t\talignItems: 'center',\n\t},\n\tlink: {\n\t\tcursor: 'pointer',\n\t\tcolor: theme.palette.primary.dark,\n\t\ttextDecoration: 'none',\n\t},\n\taside: {\n\t\tflex: '0 0 85px',\n\t\ttextAlign: 'right',\n\t},\n\tradio: {\n\t\tpointerEvents: 'none',\n\t\tfloat: 'left',\n\t\tmarginRight: '8px',\n\t\tpadding: 0,\n\t},\n\n\tdisabled: {\n\t\topacity: 0.5,\n\t\tpointerEvents: 'none',\n\t},\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from '@common/utils';\nimport { Link } from 'react-router-dom';\n\nfunction Progress({ status, id, isOrdered }) {\n\tconst classes = useStyles();\n\tconst tr = useTranslation();\n\tconst { locale } = useSelector(state => state.locale);\n\n\tconst trackProceedToCheckout = () => {\n\t\twindow.dataLayer = window.dataLayer || [];\n\t\twindow.dataLayer.push({ 'event': 'Proceed to Checkout', 'source': 'breadcrumb' });\n\t};\n\n\treturn (\n\t\t<div className={classes.progress}>\n\t\t\t{status === 'confirmation' &&\n\t\t\t\t<div className={`${classes.step} ${classes.outline}`}>\n\t\t\t\t\t{tr('Booking confirmation')}\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t{status === 'cancellation' &&\n\t\t\t\t<div className={`${classes.step} ${classes.error}`}>\n\t\t\t\t\t{tr('Payment failed')}\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t{status !== 'confirmation' && status !== 'cancellation' &&\n\t\t\t\t<>\n\t\t\t\t\t<Link className={`${classes.step} ${classes.link} ${status === 'booking' ? classes.outline : ''}`} to={`/${isOrdered ? 'order' : 'booking'}/${id}/?language=${locale}`}>{tr('Booking summary')}</Link>\n\t\t\t\t\t<div className={classes.separator} />\n\t\t\t\t\t<Link className={`${classes.step} ${classes.link} ${status === 'checkout' ? classes.outline : ''}`} to={`/checkout/${id}/?language=${locale}`} onClick={trackProceedToCheckout}>{tr('Checkout')}</Link>\n\t\t\t\t</>\n\t\t\t}\n\t\t</div>\n\t);\n}\n\nProgress.propTypes = {\n\tstatus: PropTypes.string.isRequired,\n\tid: PropTypes.string,\n\tisOrdered: PropTypes.bool,\n};\n\nexport default Progress;\n\nconst useStyles = makeStyles(theme => ({\n\tprogress: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'row',\n\t\talignItems: 'center',\n\t},\n\tstep: {\n\t\ttextDecoration: 'none',\n\t\t[theme.breakpoints.down('sm')]: {\n\t\t\tpadding: `0 ${theme.spacing(1)}px`,\n\t\t\tmargin: `0 ${theme.spacing(1)}px`,\n\t\t},\n\t\t[theme.breakpoints.up('md')]: {\n\t\t\tfontSize: '20px',\n\t\t},\n\t},\n\tlink: {\n\t\tcolor: theme.palette.primary.light,\n\t\t'&:hover': {\n\t\t\tcolor: theme.palette.custom.main,\n\t\t},\n\t},\n\toutline: {\n\t\tfontWeight: 600,\n\t\tcolor: theme.palette.custom.main,\n\t},\n\terror: {\n\t\tfontWeight: 600,\n\t\tcolor: theme.palette.error.main,\n\t},\n\tseparator: {\n\t\theight: '3px',\n\t\twidth: '40px',\n\t\tbackground: theme.palette.custom.separator,\n\t\tmargin: `0 ${theme.spacing(3)}px`,\n\n\t\t[theme.breakpoints.down('sm')]: {\n\t\t\tdisplay: 'none',\n\t\t},\n\t},\n}));\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { makeStyles, Button, InputBase } from '@material-ui/core';\r\n\r\nfunction QuantitySelector({ quantity, max = 1, handleChange }) {\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t<div className={classes.container}>\r\n\t\t\t<Button className={classes.button} disabled={quantity === 1} onClick={() => handleChange(quantity-1)}>\r\n\t\t\t\t&#60;\r\n\t\t\t</Button>\r\n\t\t\t<InputBase\r\n\t\t\t\ttype=\"number\"\r\n\t\t\t\tclassName={classes.InputBase}\r\n\t\t\t\tvalue={quantity}\r\n\t\t\t\tinputProps={{ min: 1, max, className: classes.input }}\r\n\t\t\t\tonChange={(e) => handleChange(Math.min(max, parseInt(e.target.value)))}\r\n\t\t\t/>\r\n\t\t\t<Button className={classes.button} disabled={max ? quantity === max : false} onClick={() => handleChange(quantity+1)}>\r\n\t\t\t\t&#62;\r\n\t\t\t</Button>\r\n\r\n\t\t</div>\r\n\t);\r\n}\r\n\r\nQuantitySelector.propTypes = {\r\n\tquantity: PropTypes.number.isRequired,\r\n\tmax: PropTypes.number,\r\n\thandleChange: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default QuantitySelector;\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n\tcontainer: {\r\n\t\twidth: '84px',\r\n\r\n\t},\r\n\tInputBase: {\r\n\t\twidth: '36px',\r\n\t},\r\n\tinput: {\r\n\t\ttextAlign: 'right',\r\n\t\tfontSize: '15px',\r\n\t},\r\n\tbutton: {\r\n\t\twidth: '24px',\r\n\t\theight: '24px',\r\n\t\tbackground: theme.palette.custom.background,\r\n\t\tcolor: theme.palette.primary.light,\r\n\t\tpadding: 0,\r\n\t\tminWidth: '24px',\r\n\t\tborderRadius: '2px',\r\n\t},\r\n}));\r\n","const Yup = require('yup');\n\nexport const requestFormSchema = () => {\n\n\treturn Yup.object().shape({\n\t\tname: Yup.string().required('Required'),\n\t\tsurname: Yup.string().required('Required'),\n\t\temail: Yup.string().email('Must be an email').required('Required'),\n\t\tphone: Yup.string().required('Required'),\n\t\tcompany: Yup.boolean(),\n\t\tcompanyName: Yup.string()\n\t\t\t.when('company', {\n\t\t\t\tis: true,\n\t\t\t\tthen: Yup.string().required('Required'),\n\t\t\t}),\n\t\tagreeMarketingInfo: Yup.boolean().oneOf([true], 'Required'),\n\t});\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from '@common/utils';\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport {\n\tButton,\n\tDialog,\n\tDialogTitle,\n\tDialogContent,\n\tDialogActions,\n\tGrid,\n\tTextField,\n\tFormControlLabel,\n\tFormControl,\n\tCheckbox,\n\tFormGroup,\n} from '@material-ui/core';\n\nimport { Formik } from 'formik';\n\nimport { PhoneInput } from '../../pages/Coliving/components';\n\nimport { requestFormSchema } from '@schemas/coliving/requestForm';\n\nfunction RequestSubmitDialog({ headline, question = '', isOpen, actionLabel, handleAction, handleClose, cancelLabel }) {\n\tconst classes = useStyles();\n\tconst tr = useTranslation();\n\n\tconst initial = {\n\t\tname: '',\n\t\tsurname: '',\n\t\temail: '',\n\t\tphone: '',\n\t\tagreeMarketingInfo: false,\n\t};\n\n\treturn (\n\t\t<Dialog\n\t\t\topen={isOpen}\n\t\t\tonClose={handleClose}\n\t\t\tfullWidth\n\t\t\tmaxWidth={'sm'}>\n\t\t\t<DialogTitle>\n\t\t\t\t{tr(headline)}\n\t\t\t</DialogTitle>\n\t\t\t<DialogContent className={classes.content}>\n\t\t\t\t{question !== '' && tr(question)}\n\t\t\t\t<Formik\n\t\t\t\t\tinitialValues={initial}\n\t\t\t\t\tvalidationSchema={requestFormSchema}\n\t\t\t\t>\n\t\t\t\t\t{({\n\t\t\t\t\t\tvalues,\n\t\t\t\t\t\thandleChange,\n\t\t\t\t\t\thandleBlur,\n\t\t\t\t\t\ttouched,\n\t\t\t\t\t\terrors,\n\t\t\t\t\t\tsetFieldValue,\n\t\t\t\t\t}) => {\n\t\t\t\t\t\tconst props = (name, initial = '') => ({\n\t\t\t\t\t\t\tname: name,\n\t\t\t\t\t\t\tvalue: typeof values[name] !== 'undefined' ? values[name] : initial,\n\t\t\t\t\t\t\tonChange: handleChange,\n\t\t\t\t\t\t\tonBlur: handleBlur,\n\t\t\t\t\t\t\terror: touched[name] && Boolean(errors[name]),\n\t\t\t\t\t\t\thelperText: touched[name] ? errors[name] : '',\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<form onSubmit={(e) => handleAction(e, values)} >\n\t\t\t\t\t\t\t\t<Grid container spacing={3} style={{ marginTop: '8px' }}>\n\t\t\t\t\t\t\t\t\t<Grid item xs={12} sm={6}>\n\t\t\t\t\t\t\t\t\t\t<TextField fullWidth required variant=\"outlined\" label={tr('Name')} {...props('name')} />\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item xs={12} sm={6}>\n\t\t\t\t\t\t\t\t\t\t<TextField fullWidth required variant=\"outlined\" label={tr('Last name')} {...props('surname')} />\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item xs={12} sm={6}>\n\t\t\t\t\t\t\t\t\t\t<TextField fullWidth required variant=\"outlined\" label={tr('Email')} {...props('email')} />\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item xs={12} sm={6}>\n\t\t\t\t\t\t\t\t\t\t<PhoneInput\n\t\t\t\t\t\t\t\t\t\t\thandleBlur={handleBlur}\n\t\t\t\t\t\t\t\t\t\t\tvalues={values}\n\t\t\t\t\t\t\t\t\t\t\tsetFieldValue={setFieldValue}\n\t\t\t\t\t\t\t\t\t\t\ttouched={touched}\n\t\t\t\t\t\t\t\t\t\t\terrors={errors}\n\t\t\t\t\t\t\t\t\t\t\tprop=\"phone\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item xs={12}>\n\t\t\t\t\t\t\t\t\t\t<FormControl component=\"fieldset\">\n\t\t\t\t\t\t\t\t\t\t\t<FormGroup>\n\t\t\t\t\t\t\t\t\t\t\t\t<FormControlLabel className={classes.chekcbox}\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontrol={<Checkbox color=\"primary\" value={values.company} onChange={() => setFieldValue('company', !values.company)} />}\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={tr('Company')}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</FormGroup>\n\t\t\t\t\t\t\t\t\t\t</FormControl>\n\t\t\t\t\t\t\t\t\t</Grid>\n\n\t\t\t\t\t\t\t\t\t{values.company &&\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<Grid item xs={12} sm={6}>\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField fullWidth variant=\"outlined\" required={values.company} label={tr('Company')} {...props('companyName')} />\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t\t<Grid item xs={12} sm={6}>\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField fullWidth variant=\"outlined\" label={tr('Company code')} {...props('companyCode')} />\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t\t<Grid item xs={12} sm={6}>\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField fullWidth variant=\"outlined\" label={tr('Company address')} {...props('companyAddress')} />\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t\t<Grid item xs={12} sm={6}>\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField fullWidth variant=\"outlined\" label={tr('Company VAT code')} {...props('companyVATCode')} />\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t<Grid item xs={12} sm={6}>\n\t\t\t\t\t\t\t\t\t\t<FormControl component=\"fieldset\">\n\t\t\t\t\t\t\t\t\t\t\t<FormGroup>\n\t\t\t\t\t\t\t\t\t\t\t\t<FormControlLabel className={classes.chekcbox}\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontrol={<Checkbox id=\"mailing\" color=\"primary\" value={values.agreeMarketingInfo} onChange={() => setFieldValue('agreeMarketingInfo', !values.agreeMarketingInfo)} />}\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<label htmlFor=\"mailing\" className={classes.label}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{tr('I agree to get marketing info.')}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</FormGroup>\n\t\t\t\t\t\t\t\t\t\t</FormControl>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t</Grid>\n\n\t\t\t\t\t\t\t\t<DialogActions className={classes.actions}>\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tonClick={handleClose}\n\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\tstyle={{ border: '1px solid rgba(0, 5, 58, 0.5)', color: '#00053a' }}\n\t\t\t\t\t\t\t\t\t\tclassName={classes.button}>\n\t\t\t\t\t\t\t\t\t\t{cancelLabel ? tr(cancelLabel) : tr('Cancel')}\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tstyle={{ backgroundColor: '#313133', color: '#fff' }}\n\t\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t\t\tclassName={classes.button} variant=\"contained\">\n\t\t\t\t\t\t\t\t\t\t{tr(actionLabel)}\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t</DialogActions>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t);\n\t\t\t\t\t}}\n\t\t\t\t</Formik>\n\t\t\t</DialogContent>\n\t\t</Dialog >\n\t);\n}\n\nRequestSubmitDialog.propTypes = {\n\theadline: PropTypes.string.isRequired,\n\tquestion: PropTypes.string,\n\tchildren: PropTypes.node,\n\tisOpen: PropTypes.bool.isRequired,\n\tactionLabel: PropTypes.string.isRequired,\n\thandleAction: PropTypes.func.isRequired,\n\thandleClose: PropTypes.func.isRequired,\n\tcancelLabel: PropTypes.string,\n\trequestInfo: PropTypes.object,\n\tsetRequestInfo: PropTypes.func,\n\thandleBlur: PropTypes.func,\n\ttouched: PropTypes.object,\n\terrors: PropTypes.object,\n\tvalues: PropTypes.object,\n\thandleChange: PropTypes.func,\n};\n\nexport default RequestSubmitDialog;\n\nconst useStyles = makeStyles(() => ({\n\tcontent: {\n\t\tminHeight: '60px',\n\t},\n\tactions: {\n\t\tjustifyContent: 'space-between',\n\t\tpadding: '16px 0',\n\t},\n\tbutton: {\n\t\tpadding: '8px 16px',\n\t\tminWidth: '100px',\n\t},\n}));\n","import React, { Fragment, useState } from 'react';\n\nimport { useSelector } from 'react-redux';\n\nimport PropTypes from 'prop-types';\nimport {\n\tMuiPickersUtilsProvider,\n\tKeyboardDatePicker,\n} from '@material-ui/pickers';\nimport MomentUtils from '@date-io/moment';\nimport moment from 'moment';\n\nimport { IconButton } from '@material-ui/core';\nimport ClearIcon from '@material-ui/icons/Clear';\n\nimport customLocales from '@common/customMomentLocales';\n\nimport { useTranslation } from '@common/utils';\n\nconst customLocale = {\n\ten: moment.localeData('en-gb'),\n\tlt: customLocales.lt,\n\tpl: customLocales.pl,\n};\n\nfunction DatePicker({ onBlur, value, setFieldValue, prop, helperText, error, label, clearable, minDate, maxDate, required, touched }) {\n\tconst tr = useTranslation();\n\tconst { locale } = useSelector(state => state.locale);\n\tmoment.locale(locale, customLocale[locale]);\n\n\tconst [isOpen, setIsOpen] = useState(false);\n\n\tconst getProps = (name, initial = null) => {\n\n\t\treturn {\n\t\t\tname: name,\n\t\t\tvalue: typeof value !== 'undefined' ? value : initial,\n\t\t\tonBlur,\n\t\t\terror: touched[name] && Boolean(error),\n\t\t\thelperText: helperText,\n\t\t};\n\t};\n\n\tconst props = getProps(prop, null);\n\n\treturn (\n\t\t<Fragment>\n\t\t\t<MuiPickersUtilsProvider libInstance={moment} utils={MomentUtils} locale={locale}>\n\t\t\t\t<KeyboardDatePicker\n\t\t\t\t\tInputLabelProps={{ shrink: true }}\n\t\t\t\t\tvariant=\"inline\"\n\t\t\t\t\tformat=\"YYYY-MM-DD\"\n\t\t\t\t\tlabel={tr(label ? label : 'Date of birth')}\n\t\t\t\t\tinputValue={props.value ? null : 'YYYY-MM-DD'}\n\t\t\t\t\tautoOk={true}\n\t\t\t\t\tminDate={minDate}\n\t\t\t\t\tmaxDate={maxDate}\n\t\t\t\t\tonChange={(date) => {\n\t\t\t\t\t\tsetFieldValue(prop, date ? moment(date).format('YYYY-MM-DD') : null, true);\n\t\t\t\t\t\tsetIsOpen(false);\n\t\t\t\t\t}}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t}}\n\t\t\t\t\t{...props}\n\t\t\t\t\tKeyboardButtonProps={{\n\t\t\t\t\t\tonFocus: () => {\n\t\t\t\t\t\t\tsetIsOpen(true);\n\t\t\t\t\t\t},\n\t\t\t\t\t}}\n\t\t\t\t\tPopoverProps={{\n\t\t\t\t\t\tonFocus: (minDate || minDate) ? () => setIsOpen(true) : undefined,\n\t\t\t\t\t\tdisableRestoreFocus: true,\n\t\t\t\t\t\tonClose: () => {\n\t\t\t\t\t\t\tsetIsOpen(false);\n\t\t\t\t\t\t},\n\t\t\t\t\t}}\n\t\t\t\t\tInputProps={{\n\t\t\t\t\t\tonFocus: (minDate || minDate) ? () => setIsOpen(true) : undefined,\n\t\t\t\t\t\tstartAdornment: clearable && props.value && (\n\t\t\t\t\t\t\t<IconButton onClick={() => setFieldValue(prop, null, true)} style={{ order: 1, position: 'absolute', right: '10%' }}>\n\t\t\t\t\t\t\t\t<ClearIcon color=\"disabled\" fontSize=\"small\" />\n\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t),\n\t\t\t\t\t}}\n\t\t\t\t\topen={isOpen}\n\t\t\t\t\trequired={required}\n\t\t\t\t/>\n\t\t\t</MuiPickersUtilsProvider>\n\t\t</Fragment>\n\t);\n}\n\nDatePicker.propTypes = {\n\tvalues: PropTypes.object,\n\tsetFieldValue: PropTypes.func,\n\tprops: PropTypes.object,\n\tprop: PropTypes.string.isRequired,\n\tvalue: PropTypes.string,\n\tonBlur: PropTypes.func,\n\ttouched: PropTypes.object,\n\terror: PropTypes.string,\n\thelperText: PropTypes.string,\n\tlabel: PropTypes.string,\n\tclearable: PropTypes.bool,\n\tminDate: PropTypes.string,\n\tmaxDate: PropTypes.string,\n\trequired: PropTypes.bool,\n};\n\nexport default DatePicker;\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport { Button, Typography, Dialog, DialogContent, DialogActions, Grid } from '@material-ui/core';\n\nimport { Formik, Form } from 'formik';\n\nimport { useSettings } from '@common/hooks';\n\nimport { useTranslation } from '@common/utils';\n\nfunction TermsAndConditionsConfirmDialog({ isOpen, onClose, submitAction }) {\n\tconst classes = useStyles();\n\tconst tr = useTranslation();\n\n\tconst dialogContentRef = useRef(null);\n\n\tconst {\n\t\tprivacyPolicy,\n\t\ttermsAndConditions,\n\t} = useSettings();\n\n\tconst [isModalActionDisabled, setIsModalActionDisabled] = useState(true);\n\n\tconst handleScroll = (dialogContent) => {\n\t\tif (dialogContent) {\n\t\t\tconst contentHight = dialogContent.scrollHeight - dialogContent.scrollTop;\n\t\t\tconst clientHeight = dialogContent.clientHeight;\n\t\t\tconst isScrollAtBottom = clientHeight - contentHight >= -2;\n\n\t\t\tif (isScrollAtBottom) {\n\t\t\t\tsetIsModalActionDisabled(false);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleCloseDialog = () => {\n\t\tonClose();\n\t\tsetIsModalActionDisabled(true);\n\t};\n\n\tconst WIDTH = window.innerWidth;\n\n\treturn (\n\n\t\t<Formik>\n\t\t\t{() => {\n\t\t\t\treturn (\n\t\t\t\t\t<Form>\n\t\t\t\t\t\t<Dialog\n\t\t\t\t\t\t\topen={isOpen}\n\t\t\t\t\t\t\tonClose={handleCloseDialog}\n\t\t\t\t\t\t\taria-labelledby=\"form-dialog-title\"\n\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\tmaxWidth={'lg'}>\n\t\t\t\t\t\t\t<DialogContent\n\t\t\t\t\t\t\t\tref={(node) => {\n\t\t\t\t\t\t\t\t\tdialogContentRef.current = node;\n\t\t\t\t\t\t\t\t\thandleScroll(node);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonScroll={() => handleScroll(dialogContentRef.current)}>\n\t\t\t\t\t\t\t\t<Grid container className={classes.container} style={WIDTH <= 768 ? { fontSize: '8px' } : {}}>\n\t\t\t\t\t\t\t\t\t{termsAndConditions ?\n\n\t\t\t\t\t\t\t\t\t\t<Grid item xs={12} style={{ paddingBottom: '100px' }} dangerouslySetInnerHTML={{ __html: termsAndConditions }} />\n\n\t\t\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\t\t<Typography variant=\"h4\" className={classes.headline}>\n\t\t\t\t\t\t\t\t\t\t\t{tr('Terms and Conditions')}\n\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t{privacyPolicy ?\n\t\t\t\t\t\t\t\t\t\t<Grid item xs={12} style={{ paddingBottom: '100px' }} dangerouslySetInnerHTML={{ __html: privacyPolicy }} />\n\t\t\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\t\t<Typography variant=\"h4\" className={classes.headline}>\n\t\t\t\t\t\t\t\t\t\t\t{tr('Privacy Policy')}\n\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</Grid>\n\n\t\t\t\t\t\t\t</DialogContent>\n\t\t\t\t\t\t\t<DialogActions style={{ padding: '16px 24px' }}>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tonClose={handleCloseDialog}\n\t\t\t\t\t\t\t\t\tonClick={handleCloseDialog}\n\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\tclassName={classes.button}>\n\t\t\t\t\t\t\t\t\t{tr('Cancel')}\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tonClick={submitAction}\n\t\t\t\t\t\t\t\t\tclassName={classes.button} variant=\"contained\"\n\t\t\t\t\t\t\t\t\tstyle={!isModalActionDisabled ? { backgroundColor: '#006CFF', borderColor: '#006CFF', color: '#fff' } : {}}\n\t\t\t\t\t\t\t\t\tdisabled={isModalActionDisabled}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{tr('Accept')}\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</DialogActions>\n\t\t\t\t\t\t</Dialog>\n\t\t\t\t\t</Form>\n\t\t\t\t);\n\t\t\t}\n\t\t\t}\n\t\t</Formik>\n\t);\n}\n\nTermsAndConditionsConfirmDialog.propTypes = {\n\tisOpen: PropTypes.bool.isRequired,\n\tonClose: PropTypes.func.isRequired,\n\tsubmitAction: PropTypes.func.isRequired,\n};\n\nexport default TermsAndConditionsConfirmDialog;\n\nconst useStyles = makeStyles(theme => ({\n\terror: {\n\t\tcolor: theme.palette.error.main,\n\t},\n\tbutton: {\n\t\tpadding: '8px 16px',\n\t\tminWidth: '100px',\n\t},\n\tcontainer: {\n\t\tmaxWidth: '100%',\n\t\tmargin: '0 auto',\n\t},\n}));\n\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {\n\tFormControl,\n\tFormHelperText,\n\tTextField,\n} from '@material-ui/core';\n\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\n\nimport { Autocomplete as AutocompleteMaterial } from '@material-ui/lab';\n\nimport { useTranslation } from '@common/utils';\n\nfunction FormAutocomplete({ handleBlur, values, touched, errors, setFieldValue, prop, options, label, required }) {\n\tconst tr = useTranslation();\n\n\treturn (\n\t\t<FormControl fullWidth>\n\t\t\t<>\n\t\t\t\t<AutocompleteMaterial\n\t\t\t\t\tgetOptionSelected={(option, value) => option.id === value.id}\n\t\t\t\t\toptions={options}\n\t\t\t\t\tname={prop}\n\t\t\t\t\tonBlur={handleBlur(prop)}\n\t\t\t\t\tonChange={(e, o) => setFieldValue(prop, o ? o.value : '')}\n\t\t\t\t\tvalue={typeof values[prop] !== 'undefined'\n\t\t\t\t\t\t? options.reduce((res, option) => {\n\t\t\t\t\t\t\tif (option.value === values[prop]) {\n\t\t\t\t\t\t\t\treturn option;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn res;\n\t\t\t\t\t\t}, null)\n\t\t\t\t\t\t: ''\n\t\t\t\t\t}\n\t\t\t\t\tclearOnEscape={true}\n\t\t\t\t\tpopupIcon={<ExpandMoreIcon />}\n\t\t\t\t\tgetOptionLabel={option => option.label || ''}\n\t\t\t\t\trenderInput={params => (\n\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t{...params}\n\t\t\t\t\t\t\trequired={required}\n\t\t\t\t\t\t\tlabel={tr(label)}\n\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\terror={touched[prop] && Boolean(errors[prop])}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t\t{touched[prop] && Boolean(errors[prop]) && (\n\t\t\t\t\t<FormHelperText style={{ marginLeft: '14px' }} error={true}>\n\t\t\t\t\t\t{errors[prop]}\n\t\t\t\t\t</FormHelperText>\n\t\t\t\t)}\n\t\t\t</>\n\t\t</FormControl>\n\t);\n}\n\nFormAutocomplete.propTypes = {\n\thandleBlur: PropTypes.func,\n\ttouched: PropTypes.object,\n\terrors: PropTypes.object,\n\tvalues: PropTypes.object,\n\tsetFieldValue: PropTypes.func,\n\tprop: PropTypes.string.isRequired,\n\tlabel: PropTypes.string.isRequired,\n\toptions: PropTypes.array.isRequired,\n\trequired: PropTypes.bool,\n};\n\nexport default FormAutocomplete;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport {\n\tFormControl,\n\tInputLabel,\n\tMenuItem,\n\tSelect,\n\tFormHelperText,\n} from '@material-ui/core';\n\nimport { useTranslation } from '@common/utils';\nfunction FormSelect({ label, options, touched, props, setFieldValue, prop, required, errors, handleBlur }) {\n\tconst classes = useStyles();\n\tconst tr = useTranslation();\n\tconst { value } = props || {};\n\n\treturn (\n\t\t<FormControl error={(Boolean(touched[prop]) && Boolean(errors[prop]))} fullWidth variant=\"outlined\" >\n\t\t\t<InputLabel required={required} className={classes.label} >{tr(label)}</InputLabel>\n\t\t\t<Select\n\t\t\t\tlabel={tr(label)}\n\t\t\t\tvalue={value}\n\t\t\t\tonChange={(e) => setFieldValue(prop, e.target.value, true)}\n\t\t\t\tonBlur={handleBlur(prop)}\n\t\t\t>\n\t\t\t\t{options.map((option, i) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<MenuItem key={i} value={option.value}>\n\t\t\t\t\t\t\t{tr(option.label)}\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</Select>\n\t\t\t{(Boolean(touched[prop]) && Boolean(errors[prop])) && (\n\t\t\t\t<FormHelperText style={{ marginLeft: '14px' }} error={true}>\n\t\t\t\t\t{errors[prop]}\n\t\t\t\t</FormHelperText>\n\t\t\t)}\n\t\t</FormControl>\n\t);\n}\n\nFormSelect.propTypes = {\n\tlabel: PropTypes.string,\n\toptions: PropTypes.array.isRequired,\n\tprops: PropTypes.object,\n\tprop: PropTypes.string.isRequired,\n\tvalue: PropTypes.string,\n\tsetFieldValue: PropTypes.func,\n\thelperText: PropTypes.string,\n\trequired: PropTypes.bool,\n\terrors: PropTypes.object,\n\ttouched: PropTypes.object,\n\thandleBlur: PropTypes.func,\n};\n\nexport default FormSelect;\n\nconst useStyles = makeStyles(theme => ({\n\tlabel: {\n\t\tbackground: theme.palette.common.white,\n\t},\n\ticon: {\n\t\tcolor: 'rgba(0, 0, 0, 0.54)',\n\t\tmarginRight: '8px',\n\t},\n}));\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\n\nimport { HeaderMessages } from '@components/Coliving';\nimport { Header, Container, Footer } from '@common/components';\n\nimport { useSettings } from '@common/hooks';\n\nconst Privacy = () => {\n\tconst classes = useStyles();\n\n\tconst { privacyPolicy } = useSettings();\n\n\treturn (\n\n\t\t<div className={classes.root}>\n\t\t\t<HeaderMessages />\n\t\t\t<Header />\n\n\t\t\t{privacyPolicy ?\n\t\t\t\t<Container>\n\t\t\t\t\t<div style={{ paddingBottom: '100px' }} dangerouslySetInnerHTML={{ __html: privacyPolicy }} />\n\t\t\t\t</Container>\n\t\t\t\t:\n\t\t\t\t<Container>\n\t\t\t\t\t<h1 style={{ paddingBottom: '100px' }} >PRIVACY POLICY</h1>\n\t\t\t\t</Container>\n\t\t\t}\n\t\t\t<Footer/>\n\t\t</div >\n\t);\n};\n\nexport default Privacy;\n\nconst useStyles = makeStyles(() => ({\n\troot: {\n\t\tflexGrow: 1,\n\t\tposition: 'relative',\n\t\tminHeight: '96vh',\n\t},\n}));\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\n\nimport { HeaderMessages } from '@components/Coliving';\nimport { Header, Container, Footer } from '@common/components';\n\nimport { useSettings } from '@common/hooks';\n\nconst Terms = () => {\n\tconst classes = useStyles();\n\n\tconst { termsAndConditions } = useSettings();\n\n\treturn (\n\t\t<div className={classes.root}>\n\t\t\t<HeaderMessages />\n\t\t\t<Header />\n\n\t\t\t{termsAndConditions ?\n\t\t\t\t<Container style={{ paddingBottom: '100px' }}>\n\t\t\t\t\t<div dangerouslySetInnerHTML={{ __html: termsAndConditions }} />\n\t\t\t\t</Container>\n\t\t\t\t:\n\t\t\t\t<Container style={{ paddingBottom: '100px' }}>\n\t\t\t\t\t<h1>TERMS AND CONDITIONS</h1>\n\t\t\t\t</Container>\n\t\t\t}\n\t\t\t<Footer />\n\t\t</div>\n\t);\n};\n\nexport default Terms;\n\nconst useStyles = makeStyles(theme => ({\n\troot: {\n\t\tflexGrow: 1,\n\t\tposition: 'relative',\n\t\tminHeight: '96vh',\n\t},\n\titem: {\n\t\tposition: 'relative',\n\t\tpaddingLeft: theme.spacing(5),\n\n\t\t'&::before': {\n\t\t\tcontent: 'attr(data-no)',\n\t\t\tposition: 'absolute',\n\t\t\tleft: 0,\n\t\t\ttop: 0,\n\t\t},\n\t},\n\tsection: {\n\t\tfontWeight: 'bold',\n\t},\n\tsub: {\n\t\tmarginLeft: theme.spacing(5),\n\t\tpaddingLeft: theme.spacing(7),\n\t},\n}));\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core';\r\n\r\nimport { HeaderMessages } from '@components/Coliving';\r\nimport { Header, Container, Button, Footer } from '@common/components';\r\n\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst Covid = () => {\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t<div className={classes.root}>\r\n\t\t\t<HeaderMessages />\r\n\t\t\t<Header />\r\n\r\n\t\t\t<Container>\r\n\t\t\t\t<h1>FREE CANCELLATION!</h1>\r\n\t\t\t\t<h3>Book with confidence – flexible cancellation</h3>\r\n\t\t\t\t<ul>\r\n\t\t\t\t\t<li>If your booking gets cancelled due to local government COVID-19 restrictions – we will refund full booking amount</li>\r\n\t\t\t\t\t<li>Otherwise, all guests are entitled to free, no questions asked, cancellation 48 hours before your booking</li>\r\n\t\t\t\t</ul>\r\n\r\n\t\t\t\t<br />\r\n\r\n\t\t\t\t<h1>COVID 19</h1>\r\n\t\t\t\t<p>We are doing everything we can to keep our space COVID free & maintain the highest standard of hygiene & cleanliness. The shared spaces are still open however with strict protocol - in line with Government advice. Our onsite cleaners continue to sanitise the communal spaces daily and our community managers are available  via our APP to help & deal with all requests.</p>\r\n\r\n\t\t\t\t<br />\r\n\t\t\t\t<p>\r\n\t\t\t\t\t<Button color=\"dark\" component={Link} to=\"/\">{'Back'}</Button>\r\n\t\t\t\t</p>\r\n\t\t\t</Container>\r\n\t\t\t<Footer/>\r\n\t\t</div >\r\n\r\n\t);\r\n};\r\n\r\nexport default Covid;\r\n\r\nconst useStyles = makeStyles(() => ({\r\n\troot: {\r\n\t\tflexGrow: 1,\r\n\t\tposition: 'relative',\r\n\t\tminHeight: '96vh',\r\n\t},\r\n}));\r\n","import React from 'react';\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport Router from '../Router/Router';\n\nfunction Layout() {\n\tconst classes = useStyles();\n\n\treturn (\n\t\t<div className={classes.root}>\n\t\t\t<Router />\n\t\t</div>\n\t);\n}\n\nexport default Layout;\n\nconst useStyles = makeStyles(() => ({\n\troot: {\n\t\tdisplay: 'flex',\n\t},\n}));\n","\nexport async function get(url, options = {}) {\n\treturn await request(url, undefined, { method: 'GET', ...options });\n}\n\nexport async function post(url, data, options = {}) {\n\treturn await request(url, data, { method: 'POST', ...options });\n}\n\nexport async function put(url, data, options = {}) {\n\treturn await request(url, data, { method: 'PUT', ...options });\n}\n\nexport async function DELETE(url, data, options = {}) {\n\treturn await request(url, data, { method: 'DELETE', ...options });\n}\n\nasync function request(url, data, options) {\n\tlet body = undefined;\n\tconst extraHeaders = {};\n\n\tif (data !== undefined) {\n\t\tbody = JSON.stringify(data);\n\t\textraHeaders['Content-Type'] = 'application/json';\n\t}\n\n\tconst res = await fetch(url, {\n\t\tbody,\n\t\t...options,\n\t\theaders: {\n\t\t\t...extraHeaders,\n\t\t\t...options.headers,\n\t\t},\n\t});\n\n\tif ((res.headers.get('Content-Type') || '').includes('application/json')) {\n\t\tres.data = await res.json();\n\t}\n\n\tif (!res.ok) {\n\t\tthrow res;\n\t}\n\n\treturn res;\n}\n\nexport default {\n\tget,\n\tpost,\n\tput,\n\tdelete: DELETE,\n};\n","import http from '../../http';\n\nexport async function fetchSettings() {\n\treturn {\n\t\ttype: 'SETTINGS_UPDATED',\n\t\tdata: (await http.get('/api/kiosks/coliving/settings')).data,\n\t};\n}\n","import React, { useEffect, useLayoutEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { BrowserRouter, Route, Switch } from 'react-router-dom';\nimport { LastLocationProvider } from 'react-router-last-location';\nimport { ToastContainer } from 'react-toastify';\n\nimport Privacy from '../../pages/Privacy/Privacy';\nimport Terms from '../../pages/Terms/Terms';\nimport Covid from '../../pages/Covid/Covid';\nimport Layout from '../Layout/Layout';\n\nimport { fetchSettings } from '@redux/actions';\n\nimport moment from 'moment-timezone';\n\nmoment.updateLocale('en', {\n\tweek: {\n\t\tdow: 1,\n\t},\n});\n\nimport './image-gallery.css';\nimport './App.css';\n\nfunction App() {\n\tconst dispatch = useDispatch();\n\tconst [ready, setReady] = useState(false);\n\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\tawait fetchSettings().then(dispatch);\n\t\t})();\n\t}, [dispatch]);\n\n\tconst timezone = useSelector(state => state.settings.timezone);\n\tuseLayoutEffect(() => {\n\t\tif (!timezone?.key) { return; }\n\t\tmoment.tz.setDefault(timezone.key);\n\t\tsetReady(true);\n\t}, [timezone?.key]);\n\n\tif (!ready) { return null; }\n\n\treturn (\n\t\t<BrowserRouter basename=\"/book/3\">\n\t\t\t<LastLocationProvider>\n\t\t\t\t<Switch>\n\t\t\t\t\t<Route path=\"/privacy\" exact component={Privacy} />\n\t\t\t\t\t<Route path=\"/terms\" exact component={Terms} />\n\t\t\t\t\t<Route path=\"/covid\" exact component={Covid} />\n\t\t\t\t\t<Route component={Layout} />\n\t\t\t\t</Switch>\n\t\t\t\t<ToastContainer />\n\t\t\t</LastLocationProvider>\n\t\t</BrowserRouter>\n\t);\n}\n\nexport default App;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport clsx from 'clsx';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport { ListItem } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n\titem: {\n\t\theight: 70,\n\t\tjustifyContent: 'center',\n\t\talignItems: 'center',\n\t\tpaddingRight: 0,\n\t\tpaddingLeft: 0,\n\t\tcolor: theme.palette.common.white,\n\t\tfontSize: 42,\n\t},\n\tactive: {\n\t\tbackgroundColor: '#3d2dff !important',\n\t},\n}));\n\nfunction NavigationItem({ active, children, section, sections = [] }) {\n\tconst classes = useStyles();\n\n\tlet isActive = false;\n\n\tif (sections.length && sections.indexOf(active) !== -1) {\n\t\tisActive = true;\n\t}\n\n\tif (section && active === section) {\n\t\tisActive = true;\n\t}\n\n\treturn (\n\t\t<ListItem\n\t\t\tclassName={clsx(classes.item, {\n\t\t\t\t[classes.active]: isActive,\n\t\t\t})}\n\t\t\tbutton\n\t\t\tselected={isActive}\n\t\t\tcomponent={Link}\n\t\t\tto={`/${section}`}>\n\t\t\t{children}\n\t\t</ListItem>\n\t);\n}\n\nNavigationItem.propTypes = {\n\tactive: PropTypes.string.isRequired,\n\tchildren: PropTypes.node,\n\tsection: PropTypes.string,\n\tsections: PropTypes.array,\n};\n\nexport default NavigationItem;\n","import React, { useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { logoutAction } from '@redux/actions';\n\nimport { useTranslation } from '@common/utils';\n\nimport { getImagePath } from '@common/services/imageService';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Avatar, Menu, MenuItem, Tooltip } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n\tavatar: {\n\t\twidth: '50px',\n\t\theight: '50px',\n\t\tlineHeight: '51px',\n\t\tbackgroundColor: '#C4C4C4',\n\t\tborderRadius: '2px',\n\t\tcolor: theme.palette.primary.dark,\n\t\tfontSize: '42px',\n\t\tfontWeight: '600',\n\t},\n\tpointer: {\n\t\tcursor: 'pointer',\n\t},\n}));\n\nfunction NavigationLogo() {\n\tconst classes = useStyles();\n\tconst dispatch = useDispatch();\n\tconst tr = useTranslation();\n\n\tconst user = useSelector(user => user.session);\n\n\tconst [anchorEl, setAnchorEl] = useState(null);\n\n\tconst handleOpen = event => setAnchorEl(event.currentTarget);\n\tconst handleClose = () => setAnchorEl(null);\n\tconst handleLogout = () => {\n\t\thandleClose();\n\n\t\tlogoutAction()\n\t\t\t.then(dispatch).catch(console.error);\n\t};\n\n\tif (!user.virtual) {\n\t\treturn (\n\t\t\t<Avatar src={user.client.logoId ? getImagePath(user.client.logoId) : ''} alt={user.client.title} className={classes.avatar}>{user.client.title ? user.client.title.charAt(0).toUpperCase() : ''}</Avatar>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Tooltip title={user.client.title} placement=\"right\">\n\t\t\t\t<Avatar onClick={handleOpen} src={user.client.logoId ? getImagePath(user.client.logoId) : ''} alt={user.client.title} className={`${classes.avatar} ${classes.pointer}`}>{user.client.title ? user.client.title.charAt(0).toUpperCase() : ''}</Avatar>\n\t\t\t</Tooltip>\n\t\t\t<Menu\n\t\t\t\tanchorEl={anchorEl}\n\t\t\t\televation={0}\n\t\t\t\tgetContentAnchorEl={null}\n\t\t\t\tanchorOrigin={{\n\t\t\t\t\tvertical: 'bottom',\n\t\t\t\t\thorizontal: 'center',\n\t\t\t\t}}\n\t\t\t\tkeepMounted\n\t\t\t\ttransformOrigin={{\n\t\t\t\t\tvertical: 'top',\n\t\t\t\t\thorizontal: 'center',\n\t\t\t\t}}\n\t\t\t\topen={Boolean(anchorEl)}\n\t\t\t\tonClose={handleClose}>\n\t\t\t\t<MenuItem onClick={handleLogout}>{tr('Exit client management')}</MenuItem>\n\t\t\t</Menu>\n\t\t</>\n\t);\n}\n\nexport default NavigationLogo;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n\nimport { makeStyles } from '@material-ui/styles';\nimport { Drawer, List } from '@material-ui/core';\n\nimport NavigationItem from './NavigationItem';\nimport NavigationLogo from './NavigationLogo';\n\nimport {\n\tUsersAltIcon,\n\tOfficesIcon,\n\tReservationsIcon,\n\tResourcesIcon,\n\tIssuesIcon,\n\tQRCodesIcon,\n\tSettingsIcon,\n} from '@common/components/Icon';\n\nconst useStyles = makeStyles(theme => ({\n\tdrawer: {\n\t\tflexShrink: 0,\n\t\toverflowX: 'hidden',\n\t\twidth: theme.spacing(10),\n\t\tborder: '10px solid red',\n\t},\n\tpaper: {\n\t\twidth: theme.spacing(10),\n\t\tbackground: theme.palette.primary.dark,\n\t\tborderRight: 0,\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'space-between',\n\t},\n\theader: {\n\t\tdisplay: 'flex',\n\t\tflex: '0 1 80px',\n\t\tjustifyContent: 'center',\n\t\talignItems: 'center',\n\t},\n\tmain: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t\tflex: '1 1 auto',\n\t\tjustifyContent: 'center',\n\t},\n\ticon: {\n\t\twidth: 28,\n\t\theight: 28,\n\t},\n}));\n\nfunction Navigation({ activeSection }) {\n\tconst classes = useStyles();\n\n\treturn (\n\t\t<Drawer\n\t\t\tclassName={classes.drawer}\n\t\t\tvariant=\"permanent\"\n\t\t\tanchor=\"left\"\n\t\t\tclasses={{\n\t\t\t\tpaper: clsx(classes.paper),\n\t\t\t}}>\n\t\t\t<div className={classes.header}>\n\t\t\t\t<NavigationLogo />\n\t\t\t</div>\n\t\t\t<List component=\"nav\" className={classes.main}>\n\t\t\t\t<NavigationItem active={activeSection} section={'reservations'} sections={['reservation', 'reservations']}>\n\t\t\t\t\t<ReservationsIcon className={classes.icon} />\n\t\t\t\t</NavigationItem>\n\t\t\t\t<NavigationItem active={activeSection} section={'offices'} sections={['office', 'offices']}>\n\t\t\t\t\t<OfficesIcon className={classes.icon} />\n\t\t\t\t</NavigationItem>\n\t\t\t\t<NavigationItem active={activeSection} section={'users'} sections={['user', 'users']}>\n\t\t\t\t\t<UsersAltIcon className={classes.icon} />\n\t\t\t\t</NavigationItem>\n\t\t\t\t<NavigationItem active={activeSection} section={'resources'} sections={['resource', 'resources', 'resource-group']}>\n\t\t\t\t\t<ResourcesIcon className={classes.icon} />\n\t\t\t\t</NavigationItem>\n\t\t\t\t<NavigationItem active={activeSection} section={'issues'} sections={['issue', 'issues']}>\n\t\t\t\t\t<IssuesIcon className={classes.icon} />\n\t\t\t\t</NavigationItem>\n\t\t\t\t<NavigationItem active={activeSection} section={'qr-codes'} sections={['qr-code', 'qr-codes']}>\n\t\t\t\t\t<QRCodesIcon className={classes.icon} />\n\t\t\t\t</NavigationItem>\n\t\t\t\t<NavigationItem active={activeSection} section={'settings'} >\n\t\t\t\t\t<SettingsIcon className={classes.icon} />\n\t\t\t\t</NavigationItem>\n\t\t\t</List>\n\t\t</Drawer>\n\t);\n}\n\nNavigation.propTypes = {\n\tactiveSection: PropTypes.string.isRequired,\n};\n\nexport default Navigation;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n\twindow.location.hostname === 'localhost' ||\n\t// [::1] is the IPv6 localhost address.\n\twindow.location.hostname === '[::1]' ||\n\t// 127.0.0.1/8 is considered localhost for IPv4.\n\twindow.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/),\n);\n\nexport function register(config) {\n\tif (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n\t\t// The URL constructor is available in all browsers that support SW.\n\t\tconst publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n\t\tif (publicUrl.origin !== window.location.origin) {\n\t\t\t// Our service worker won't work if PUBLIC_URL is on a different origin\n\t\t\t// from what our page is served on. This might happen if a CDN is used to\n\t\t\t// serve assets; see https://github.com/facebook/create-react-app/issues/2374\n\t\t\treturn;\n\t\t}\n\n\t\twindow.addEventListener('load', () => {\n\t\t\tconst swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n\t\t\tif (isLocalhost) {\n\t\t\t\t// This is running on localhost. Let's check if a service worker still exists or not.\n\t\t\t\tcheckValidServiceWorker(swUrl, config);\n\n\t\t\t\t// Add some additional logging to localhost, pointing developers to the\n\t\t\t\t// service worker/PWA documentation.\n\t\t\t\tnavigator.serviceWorker.ready.then(() => {\n\t\t\t\t\tconsole.info('This web app is being served cache-first by a service worker. To learn more, visit https://bit.ly/CRA-PWA');\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// Is not localhost. Just register service worker\n\t\t\t\tregisterValidSW(swUrl, config);\n\t\t\t}\n\t\t});\n\t}\n}\n\nfunction registerValidSW(swUrl, config) {\n\tnavigator.serviceWorker\n\t\t.register(swUrl)\n\t\t.then(registration => {\n\t\t\tregistration.onupdatefound = () => {\n\t\t\t\tconst installingWorker = registration.installing;\n\t\t\t\tif (installingWorker == null) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tinstallingWorker.onstatechange = () => {\n\t\t\t\t\tif (installingWorker.state === 'installed') {\n\t\t\t\t\t\tif (navigator.serviceWorker.controller) {\n\t\t\t\t\t\t\t// At this point, the updated precached content has been fetched,\n\t\t\t\t\t\t\t// but the previous service worker will still serve the older\n\t\t\t\t\t\t\t// content until all client tabs are closed.\n\t\t\t\t\t\t\tconsole.info('New content is available and will be used when all tabs for this page are closed. See https://bit.ly/CRA-PWA.');\n\n\t\t\t\t\t\t\t// Execute callback\n\t\t\t\t\t\t\tif (config && config.onUpdate) {\n\t\t\t\t\t\t\t\tconfig.onUpdate(registration);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// At this point, everything has been precached.\n\t\t\t\t\t\t\t// It's the perfect time to display a\n\t\t\t\t\t\t\t// \"Content is cached for offline use.\" message.\n\t\t\t\t\t\t\tconsole.info('Content is cached for offline use.');\n\n\t\t\t\t\t\t\t// Execute callback\n\t\t\t\t\t\t\tif (config && config.onSuccess) {\n\t\t\t\t\t\t\t\tconfig.onSuccess(registration);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\t\t})\n\t\t.catch(error => {\n\t\t\tconsole.error('Error during service worker registration:', error);\n\t\t});\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n\t// Check if the service worker can be found. If it can't reload the page.\n\tfetch(swUrl)\n\t\t.then(response => {\n\t\t\t// Ensure service worker exists, and that we really are getting a JS file.\n\t\t\tconst contentType = response.headers.get('content-type');\n\t\t\tif (\n\t\t\t\tresponse.status === 404 ||\n\t\t\t\t(contentType != null && contentType.indexOf('javascript') === -1)\n\t\t\t) {\n\t\t\t\t// No service worker found. Probably a different app. Reload the page.\n\t\t\t\tnavigator.serviceWorker.ready.then(registration => {\n\t\t\t\t\tregistration.unregister().then(() => {\n\t\t\t\t\t\twindow.location.reload();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// Service worker found. Proceed as normal.\n\t\t\t\tregisterValidSW(swUrl, config);\n\t\t\t}\n\t\t})\n\t\t.catch(() => {\n\t\t\tconsole.info('No internet connection found. App is running in offline mode.');\n\t\t});\n}\n\nexport function unregister() {\n\tif ('serviceWorker' in navigator) {\n\t\tnavigator.serviceWorker.ready.then(registration => {\n\t\t\tregistration.unregister();\n\t\t});\n\t}\n}\n","import { createTheme } from '@material-ui/core';\n\nconst palette = {\n\tprimary: {\n\t\tlight: '#949494', // (Grey Icons, text)\n\t\tmain: '#006CFF',\n\t\tdark: '#313133',\n\t},\n\tcustom: {\n\t\tmain: '#000091', // Customer specific color, (e.g. logo)\n\t\tseparator: '#DCDCDC', \t// (Separation Lines)\n\t\tborders: '#EAEAEA', \t  // (Components borders)\n\t\tbackground: '#F7F7F7',  // (Text backgrounds)\n\t},\n};\n\nexport default createTheme({\n\tpalette: {\n\t\tprimary: {\n\t\t\tlight: palette.primary.light,\n\t\t\tmain: palette.primary.main,\n\t\t\tdark: palette.primary.dark,\n\t\t},\n\t\tcustom: palette.custom,\n\t\tbackground: {\n\t\t\tdefault: '#FFF',\n\t\t},\n\t},\n\ttypography: {\n\t\tfontFamily: '\\'Poppins\\', sans-serif',\n\t\th1: {\n\t\t\tfontWeight: 600,\n\t\t\tfontSize: '2rem',\n\t\t\tlineHeight: '2.5rem',\n\t\t},\n\t\th2: {\n\t\t\tfontWeight: 600,\n\t\t\tfontSize: '1.5rem',\n\t\t\tlineHeight: '2rem',\n\n\t\t\t'@media (min-width: 600px)': {\n\t\t\t\tfontSize: '2rem',\n\t\t\t\tlineHeight: '2.5rem',\n\t\t\t},\n\t\t},\n\t\th3: {\n\t\t\tfontWeight: 600,\n\t\t\tfontSize: '1.25rem',\n\t\t\tlineHeight: '1.875rem',\n\n\t\t\t'@media (min-width: 600px)': {\n\t\t\t\tfontSize: '1.5rem',\n\t\t\t\tlineHeight: '2rem',\n\t\t\t},\n\t\t},\n\t\th4: {\n\t\t\tfontWeight: 600,\n\t\t\tfontSize: '1.25rem',\n\t\t\tlineHeight: '1.875rem',\n\t\t},\n\t\th5: {\n\t\t\tfontWeight: 600,\n\t\t\tfontSize: '1.125rem',\n\t\t\tlineHeight: '1.5rem',\n\t\t},\n\t\tbody1: {\n\t\t\tfontWeight: 400,\n\t\t\tfontSize: '0.875rem',\n\t\t\tlineHeight: '1.25rem',\n\t\t},\n\t\tbody2: {\n\t\t\tfontWeight: 400,\n\t\t\tfontSize: '1rem',\n\t\t\tlineHeight: '1.5rem',\n\t\t\tcolor: palette.primary.dark,\n\t\t},\n\t},\n\toverrides: {\n\t\t// MuiInput: {\n\t\t// \troot: {\n\t\t// \t\tfontSize: '15px',\n\t\t// \t\tfontWeight: '500',\n\t\t// \t},\n\t\t// },\n\t},\n});\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\nimport configureStore from './redux/configureStore';\nimport * as Sentry from '@sentry/react';\nimport { CaptureConsole } from '@sentry/integrations';\n\nimport { App } from './components';\n\nimport * as serviceWorker from '@common/serviceWorker';\nimport { ThemeProvider, CssBaseline } from '@material-ui/core';\nimport theme from '@common/theme';\n\nimport './index.css';\n\nSentry.init({\n\tdsn: 'https://0c90aac980d64ddc955d0d371100e92d@sentry.dev.gigsis.lt/12',\n\tattachStacktrace: true,\n\tbeforeSend: function (event) {\n\t\treturn process.env.NODE_ENV === 'production' ? event : null;\n\t},\n\tintegrations: [\n\t\tnew CaptureConsole({\n\t\t\tlevels: ['error'],\n\t\t}),\n\t],\n});\n\nconst store = configureStore();\n\nReactDOM.render(\n\t<Provider store={store}>\n\t\t<ThemeProvider theme={theme}>\n\t\t\t<CssBaseline />\n\t\t\t<App />\n\t\t</ThemeProvider>\n\t</Provider>,\n\tdocument.getElementById('root'),\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n\nif (module.hot) {\n\tmodule.hot.accept();\n}\n","import { createStore, applyMiddleware, compose } from 'redux';\nimport reduxImmutableStateInvariant from 'redux-immutable-state-invariant';\n\nimport reducers from './reducers';\n\nexport default initialState => {\n\tconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\n\n\treturn createStore(\n\t\treducers,\n\t\tinitialState,\n\t\tcomposeEnhancers(applyMiddleware(reduxImmutableStateInvariant())),\n\t);\n};\n"],"sourceRoot":""}