{"version":3,"sources":["jwt_utils.js","components/ExtendedTable.jsx","components/NewsForm.jsx","components/CompanyForm.jsx","App.js","screens/pay.jsx","screens/Users.jsx","screens/Login.jsx","screens/Payments.jsx","screens/News.jsx","screens/Services.jsx","screens/Mammt.jsx","screens/Notifications.jsx","screens/BookingsComponents/context.js","screens/BookingsComponents/Details.js","screens/BookingsComponents/DayHours.jsx","screens/BookingsComponents/WeekTable.js","screens/BookingsComponents/WeekSlots.jsx","screens/Bookings.jsx","store.js","utils.js","screens/Companies.jsx","components/FormUtils.jsx","data/itemcache.js","trans.js","serviceWorker.js","index.js"],"names":["saveJwt","token","dispatch","localStorage","setItem","addAxiosFilter","type","payload","jwt_decode","deleteJwt","useJwt","useContext","store","useEffect","getItem","decoded","exp","Date","getTime","e","axios","interceptors","request","use","config","response","error","console","log","doLogin","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref","email","password","data","res","wrap","_context","prev","next","FormData","append","post","headers","sent","abrupt","access_token","t0","stop","_x","apply","arguments","makeStyles","theme","root","paddingLeft","spacing","paddingRight","highlight","palette","color","secondary","main","backgroundColor","lighten","light","text","primary","dark","title","flex","EnhancedTableHead","props","cells","React","createElement","TableHead","TableRow","map","headCell","TableCell","key","id","align","padding","disablePadding","label","useStyles","display","flexWrap","formControl","margin","minWidth","maxWidth","chips","chip","dropZone","height","fullWidth","previewContainer","container","justifyContent","flexDirection","width","preview","previewImg","borderColor","MenuProps","PaperProps","style","maxHeight","ITEM_HEIGHT","makeNews","newspiece","def_locations","_","defaultsDeep","_id","url","img_id","snippet","timestamp","published","locations","notify","notify_msg","LocationInput","setValue","_ref$name","name","children","styles","_objectWithoutProperties","_excluded","control","useFormContext","state","user_profile","loc_idx","keyBy","LocationChip","_excluded2","Chip","Object","assign","value","className","Controller","defaultValue","render","_ref3","onChange","ref","Select","multiple","target","shouldDirty","input","Input","renderValue","selected","is_location_disabled","upload_file","_ref4","image","onError","form","_yield$axios$post","undefined","length","status","_x2","_x3","_x4","_ref5","_ref5$onSubmit","onSubmit","_ref5$onError","_ref5$handleClose","handleClose","onCancel","schema","yup","shape","ensure","trim","required","i18n","t","nullable","transform","val","when","is","then","max","min","test","_useState","useState","_useState2","_slicedToArray","confirmDialog","askConfirm","formMethods","useForm","mode","resolver","yupResolver","reset","handleSubmit","register","errors","formState","filter","l","active","ConfirmDialog","Dialog","open","onClose","aria-labelledby","aria-describedby","DialogTitle","DialogContent","DialogContentText","DialogActions","Button","onClick","marginLeft","useWatch","_objectSpread","Fragment","FormProvider","Box","p","flexGrow","FormInput","variant","helperText","message","mt","at_least_one","flexShrink","m","Container","classes","_ref6","DropzoneArea","dropzoneClass","showAlerts","previewGridProps","alignItems","justify","item","md","alignContent","showPreviews","showPreviewsInDropzone","dialogTitle","dropzoneText","acceptedFiles","initialFiles","concat","filesLimit","clearOnUnmount","images","FormHelperText","rows","multiline","minHeight","website","_ref7","FormControlLabel","Checkbox","xs","checked","shouldValidate","inputRef","mx","MenuItem","disabled","_ref8","maxLength","mb","textAlign","isDirty","makeCompany","company","personal","fiscal_code","cod_unico","contact_phone","address","street","city","zipcode","province","country","as","TextField","FormCheckbox","_ref$onSubmit","Grid","marginTop","EventSource","EventSourcePolyfill","global","dayjs","extend","isoWeek","localizedFormat","localeData","utc","timezone","isSameOrAfter","isSameOrBefore","Duration","locale","appBar","zIndex","drawer","menuButton","marginRight","getContrastText","drawerPaper","draweContainer","overflow","toolbar","mixins","content","background","default","paddingTop","activeStyle","AppRouter","_useContext","logged_in","seen","updated","jwt_token","useMemo","process","sse","addEventListener","event","JSON","parse","_defineProperty","topic","ts","onerror","close","badges","users","isBefore","purchases","bookings","get_profile","_yield$axios$get","result","get","warn","get_locations","_callee2","_yield$axios$get2","_context2","params","start","limit","active_only","last_updates","_callee3","_yield$axios$get3","_context3","CssBaseline","Router","Switch","Route","exact","path","Pay","Login","Redirect","to","pathname","AppBar","position","Toolbar","alt","src","Typography","Drawer","anchor","paper","List","ListItem","button","component","NavLink","activeClassName","ListItemIcon","Payment","ListItemText","Badge","invisible","anchorOrigin","vertical","horizontal","CalendarToday","Shop","serviceTags","includes","BusinessCenter","AccountCircle","Fastfood","NotificationIcon","PostAdd","Home","HomeContent","Users","Payments","Companies","Bookings","Services","News","Notifications","Mammt","ChangePageTitle","pageTitle","App","StoreProvider","stripePromise","loadStripe","useOptions","fontSize","getFontSize","window","innerWidth","setFontSize","onResize","removeEventListener","useResponsiveFontSize","base","letterSpacing","fontFamily","invalid","Elements","stripe","CheckoutForm","useStripe","elements","useElements","options","_useAxios","useAxios","_useAxios2","_useAxios2$","intent","loading","cardElement","_yield$stripe$createP","paymentMethod","preventDefault","getElement","CardElement","createPaymentMethod","card","confirmCardPayment","client_secret","payment_method","buttonCancel","fontWeight","buttonOk","cell_small","findTag","tags","find","i","hasTag","TagSelector","values","requests","_ref$setValue","_ref$fixedOptions","fixedOptions","_ref$optionDisabaled","optionDisabaled","omap","Autocomplete","size","keys","getOptionLabel","option","renderOption","PriorityHigh","visibility","r","req","renderInput","renderTags","tagValue","getTagProps","index","indexOf","getOptionDisabled","CompanyJoiner","user","_ref2$onCompanyCreate","onCompanyCreated","showDialog","setShowDialog","tmp_company_id","tmpCompany","onBackdropClick","CompanyEditCreate","allowEdit","UserRow","tagOptions","skip","_useState3","_useState4","rowUser","setRowUser","_useState5","_useState6","setCompany","isPayAdmin","initFields","company_id","_toConsumableArray","_useState7","_useState8","fields","setFields","saveUser","difference","serviceRequests","_loop","_i","_arr","changes","_arr$_i","method","uid","patch","UserCompanySwitch","_ref7$onCompanyCreate","Avatar","VerifiedUser","surname","vals","CompanySelAsync","enableAdd","enableNone","onClear","f","is_superuser","pairs","zip","_React$createElement","dispatch_state","timeout","setTimeout","clearTimeout","_useReducer","useReducer","action","page","pageSize","all_loaded","filterRequests","filterTmpBillinfo","fullText","_useReducer2","_useAxios3","useCache","_useAxios4","_useAxios4$","usersPage","userCount","count","Paper","elevation","gutterBottom","UserSelAsync","FormGroup","row","CircularProgress","TableContainer","Table","aria-label","stickyHeader","TableBody","u","TablePagination","rowsPerPage","newPage","parseInt","history","useHistory","setPassword","setEmail","loginState","setLoginState","handleLogin","push","top","bottom","left","right","marginBottom","Alert","severity","borderRadius","require","paddin","currentSelector","setCurrentCompany","startOf","dateStart","setDateStart","endOf","dateEnd","setDateEnd","_useState9","_useState10","errorMessage","setError","MuiPickersUtilsProvider","it","utils","DateFnsUtils","KeyboardDatePicker","autoOk","format","showTodayButton","orientation","minDate","views","d","som","isAfter","handleDateStartChange","InputAdornmentProps","eom","handleDateEndChange","enableAll","v","valueOf","end","responseType","split","mime_type","filename","URL","createObjectURL","Blob","link","document","href","download","body","appendChild","click","parentNode","removeChild","catch","direction","BlockOutlined","Snackbar","table","visuallyHidden","border","clip","mainBody","textOverflow","maxLines","imgPreview","headCells","numeric","setRowsPerPage","setPage","editing","setEditing","setSavingMessage","newsfeedCount","not_published","location_id","paramsSerializer","qs","stringify","rowsPage","errorRows","refetchRows","row_count","changePublishedStatus","isPublished","news","put","EditNews","my","NewsForm","borderBottom","paddingBottom","colSpan","Collapse","in","unmountOnExit","labelId","hover","role","tabIndex","inputProps","scope","LinesEllipsis","maxLine","ellipsis","trimRight","basedOn","cur","rowsPerPageOptions","onChangePage","onChangeRowsPerPage","minMax","mainBodyBold","textTransform","cancel_req","expanded","setExpanded","searchSwitch","setSearchSwitch","_useState11","_useState12","startDate","setStartDate","_useState13","add","_useState14","endDate","setEndDate","hasBadge","start_date","end_date","buyer_id","purchased","servicesCount","companiesLoading","companiesError","_useAxios5","_useAxios6","_useAxios6$","servicesData","servicesLoading","servicesError","_useAxios7","_useAxios8","_useAxios8$","purchasesPage","refetchPurchases","purchases_count","services","data_ready","labels","idx_services","getItems","items","service","service_id","reduce","variation","variations","tag","quantity","paid","price","closed","String","emptyRows","Math","Text","TextBold","UserName","closeflag","next_status","purchase","ServiceDetails","BoxTitle","event_names","created","canc_refused","canceled","Card","pt","toFixed","desc","w","dense","NoteAddOutlined","CancelPresentationOutlined","EventAvailableOutlined","DoneAllOutlined","PaymentOutlined","getEventIcon","ItemDetails","_ref9","_useState15","_useState16","textUpdated","setUpdate","notes","useRef","saveNotes","_ref10","_yield$axios$post2","current","Divider","ml","TextareaAutosize","resize","rowsMin","contentEditable","ItemRow","_ref11","info","ReportProblemOutlined","bset","Set","Array","from","maxDate","subtract","isNaN","rowCount","_yup$object$shape","subtitle","notRequired","broadcast","setErrorMessage","success","setSuccess","notification_data","notification_topics","topics","n","default_notification","uids","filter_locations","defaultValues","err","isValid","autoHideDuration","dayKeyDate","date","tz","bookingStore","createContext","_fetchBookings","resource","toISOString","confirmed_only","BookingProvider","mergeSelections","selections","sels","_selections","forEach","day","location","fromPairs","b","bookingsByDay","groupBy","daySels","deleteSelections","bulk","Provider","fetchBookings","HandleBooking","booking","booker_id","setStatus","full_name","company_name","annotation","currency","onDelete","ids","msg","none","confirm","deleting","BookInfo","_ref4$truncate","truncate","_useCache3","_useCache4","displayName","TextTruncate","line","element","truncateText","DayHours","start_offset","end_offset","slotSize","range","slot","dayStart","DayCol","slots","selectedBooking","setSelectedBooking","wholeDayBook","whole","isEqual","sort","some","day_key","slotStyle","booked","slotClick","marginX","cell","cellHeader","join","data-day","WeekTable","_ref2$slotSize","_ref2$openings","openings","_ref2$start_offset","_ref2$end_offset","days","x","slotTable","_step","_iterator","_createForOfIteratorHelper","s","done","_step$value","round","_step2","_iterator2","hour","minute","t1","rects","elsel","getElementsByClassName","rect","getBoundingClientRect","getAttribute","emptyRef","idx","dk","themes","baseline","booked_selected","setHour","_parseHour","toks","parseHour","_parseHour2","hh","mm","WeekSlots","week_start","norm_slots","getSelection","bookingClick","evt","stopPropagation","BookList","slotStart","slotEnd","_slotStart","_slotEnd","flex-direction","_start","_end","book_unit","_end$split$map","_end$split$map2","h","BookingControl","_objectDestructuringEmpty","currentCompany","setAnnotation","savingState","setSavingState","temp","sel","flatMap","entries","last","ranges","sortBy","o","resetSelection","makeBookings","resource_id","confirmed","bulk_price","manual","priceRes","sum","saveBooking","canSave","t2","fontStyle","_useContext4","_useResources","filtered","_useContext2","global_state","_useContext3","all_locations","findIndex","lid","resources","setLocation","setResource","loc_id","loc","res_id","_step3","_iterator3","useResources","changeWeek","dir","loaded","RangePopup","px","py","errorState","bookDays","_openings$weekhours$d","weekhours","_start$split$map","_start$split$map2","sh","sm","_end$split$map5","_end$split$map6","eh","em","dh_start","dh_end","mstart","mend","_step4","_iterator4","_step4$value","_start2$split$map","_start2$split$map2","s_slot_h","s_slot_m","_end$split$map7","_end$split$map8","e_slot_h","e_slot_m","s_day","e_day","Popup","modal","closeOnDocumentClick","contentStyle","InputProps","readOnly","eod","dd","getDaySlot","_end$split$map3","_end$split$map4","lastSlot","at","lastDay","sortedLastIndexBy","nax","findSlot","AlertTitle","duration","_res$data","is_full","date_range","addRange","initialState","_$merge","merge","ts_ms","unix","update_server","allow_list","editCard","_ref$allowEdit","_ref$onCompanyCreated","savingMessage","cancel","AddCircleOutlineOutlined","CompanyForm","_ref3$enableNone","_ref3$onClear","_ref3$fullWidth","_ref3$checkNotificati","checkNotifications","_ref3$onChange","setUser","setInput","include_uid","check_notifications","usersRes","user_ids","unshift","clearText","oid","onInputChange","newInput","reason","_ref5$enableNone","_ref5$enableAll","_ref5$onClear","_ref5$onChange","_ref5$clearable","clearable","askAdd","currentId","setCurrentId","companiesRes","_data","all_data","companies","company_ids","def_value","disableClearable","_defaultCache","baseurl","cache","_cache","maybeAsync","running","t3","workAsync","translations","save","addNews","login","navbar","statuses","events","companyForm","notifications","newsForm","payments","mammt","details","fallbacks","Boolean","hostname","match","ReactDOM","StrictMode","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.104948fa.chunk.js","sourcesContent":["import jwt_decode from 'jwt-decode';\nimport { useContext, useEffect } from 'react';\nimport axios from 'axios';\n\nimport { store } from \"./store\";\n\nexport const saveJwt = (token, dispatch) => {\n localStorage.setItem(\"__jwt\", token)\n addAxiosFilter()\n const decoded = jwt_decode(token);\n dispatch({ type: \"set_jwt_token\", payload: decoded })\n}\n\nexport const deleteJwt = (dispatch) => {\n localStorage.setItem(\"__jwt\", null)\n dispatch({ type: \"set_jwt_token\", payload: null })\n}\n\n// set either to null or token\nexport const useJwt = () => {\n const { dispatch } = useContext(store);\n useEffect(() => {\n try {\n const token = localStorage.getItem(\"__jwt\")\n const decoded = jwt_decode(token);\n if (decoded.exp > (new Date().getTime() / 1000)) {\n dispatch({ type: \"set_jwt_token\", payload: decoded })\n saveJwt(token, dispatch);\n return;\n }\n\n } catch (e) {\n // pass\n }\n // token not foun or exception\n deleteJwt(dispatch);\n }, []);\n}\n\nconst addAxiosFilter = () => {\n axios.interceptors.request.use(config => {\n const token = localStorage.getItem(\"__jwt\")\n config[\"headers\"][\"Authorization\"] = \"Bearer \" + token;\n\n return config;\n });\n\n axios.interceptors.response.use(\n response => {\n return response;\n }, error => {\n // extend\n console.log(\"EEE\", error)\n throw error;\n });\n}\n\n\nexport const doLogin = async ({ email, password }) => {\n try {\n const data = new FormData();\n data.append(\"grant\", \"password\");\n data.append(\"username\", email);\n data.append(\"password\", password);\n const res = await axios.post(\n \"/auth/jwt/login\", data, {\n headers: {\n 'content-type': 'multipart/form-data'\n }\n });\n\n return res.data.access_token;\n\n } catch (e) {\n console.log(\"e\", e)\n return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { lighten, makeStyles } from '@material-ui/core/styles';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport { Box, Button } from '@material-ui/core';\nimport i18n from 'i18n-js';\n\nconst useToolbarStyles = makeStyles((theme) => ({\n root: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(1),\n },\n highlight:\n theme.palette.type === 'light'\n ? {\n color: theme.palette.secondary.main,\n backgroundColor: lighten(theme.palette.secondary.light, 0.85),\n }\n : {\n color: theme.palette.text.primary,\n backgroundColor: theme.palette.secondary.dark,\n },\n title: {\n flex: '1 1 100%',\n },\n}));\n\nexport function EnhancedTableHead(props) {\n const { cells } = props;\n\n return (\n \n \n {cells.map((headCell) => (\n \n {headCell.label}\n \n ))}\n \n \n );\n}\n\nconst CellProps = PropTypes.shape({\n id: PropTypes.string.isRequired,\n align: PropTypes.string,\n label: PropTypes.string.isRequired,\n numeric: PropTypes.bool,\n disablePadding: PropTypes.bool,\n});\n\nEnhancedTableHead.propTypes = {\n cells: PropTypes.arrayOf(CellProps),\n};\n\n\n\nexport const EnhancedTableToolbar = (props) => {\n const classes = useToolbarStyles();\n\n return (\n \n \n {i18n.t(\"addNews\")}\n \n \n );\n};\n\nEnhancedTableToolbar.propTypes = {\n tableTitle: PropTypes.string,\n};\n\nEnhancedTableToolbar.defaultProps = {\n tableTitle: \"\"\n}\n ","import React, { Fragment } from \"react\";\nimport { Controller, useForm, useFormContext, FormProvider, useWatch } from 'react-hook-form';\nimport { makeStyles, Box, Button, Container, Checkbox, FormControlLabel, Select, Chip, MenuItem, FormHelperText, FormControl } from '@material-ui/core';\nimport Input from '@material-ui/core/Input';\nimport { DropzoneArea } from 'material-ui-dropzone';\nimport { useEffect, useContext, useState } from \"react\";\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport axios from 'axios';\nimport { yupResolver } from '@hookform/resolvers/yup';\nimport {store} from '../store'\nimport * as yup from 'yup';\nimport _ from 'lodash';\nimport { FormInput } from \"./FormUtils\";\nimport { is_location_disabled } from \"../utils\";\nimport i18n from \"i18n-js\";\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: \"flex\",\n flexWrap: \"wrap\"\n },\n\n formControl: {\n margin: theme.spacing(1),\n minWidth: 120,\n maxWidth: 300,\n },\n\n chips: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n\n chip: {\n margin: 2,\n },\n\n dropZone: {\n height: '100%',\n fullWidth: 'true',\n },\n\n previewContainer: {\n container: \"true\",\n justifyContent: \"center\",\n flexDirection: \"row\",\n height: \"100%\",\n width: \"100%\"\n },\n\n preview: {\n flex: 1,\n },\n\n previewImg: {\n flex: 1,\n width: \"100%\",\n height: \"100%\"\n },\n\n error: {\n borderColor: \"red\"\n }\n}));\n\nconst ITEM_HEIGHT = 48;\nconst ITEM_PADDING_TOP = 8;\nconst MenuProps = {\n PaperProps: {\n style: {\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\n width: 250,\n },\n },\n};\n\n\n\n\nconst makeNews = (newspiece, def_locations) => _.defaultsDeep(newspiece, {\n _id: null,\n url: null,\n img_id: null,\n title: \"\",\n text: \"\",\n snippet: \"\",\n timestamp: null,\n published: false,\n locations: def_locations,\n notify: false,\n notify_msg: \"\"\n});\n\nexport const LocationInput = ({locations, setValue, name='locations', children, ...props}) => {\n\n\n const styles = useStyles();\n const { control } = useFormContext();\n const { state } = useContext(store);\n const {user_profile} = state;\n const loc_idx = _.keyBy(state.locations, \"_id\");\n\n const LocationChip = ({id, name, ...props}) => {\n return \n }\n\n return ( \n {\n console.log(\"LOC: \", e.target.value);\n setValue(name, e.target.value, {shouldDirty: true});\n }\n }\n input={}\n renderValue={(selected) => (\n \n {\n selected.map((id) => {\n const name = (loc_idx[id] || {name: id}).name;\n const color = (name === id || is_location_disabled(loc_idx[id], user_profile.locations)) ? \"secondary\" : \"primary\"\n return \n })}\n \n )}\n MenuProps={MenuProps}\n >\n {children}\n \n } />)\n}\n\n\nconst upload_file = async (image, value, onChange, onError) => {\n if(image === undefined || image.name.length < 5)\n return onChange(null);\n if((image || {name: value}).name == value)\n return;\n try {\n let form = new FormData();\n form.append('file', image);\n\n const config = {headers: {\n 'Content-Type': 'multipart/form-data'\n }};\n\n const {data: img_id, status} = await axios.post('/api/newsfeed/image', \n form, config);\n\n return onChange(img_id.id);\n } catch(e) {\n onError(e);\n }\n}\n\nexport default ({\n newspiece,\n onSubmit = (data) => console.log(\"submit: \", data),\n onError = ((e) => console.log(\"Errorissimo: \", e)),\n handleClose = (() => console.log(\"Close\")),\n onCancel}) => {\n \n const schema = yup.object().shape({\n title: yup.string().ensure().trim().required(i18n.t(\"news.newsForm.titleReq\")),\n url: yup.string().nullable(true).url(i18n.t(\"news.newsForm.urlFail\")).transform((_, val) => val === \"\" ? null : val),\n snippet: yup.string().nullable(true).trim(),\n text: yup.string().nullable(true).trim(),\n notify_msg: yup.string().when(\n 'notify',\n {\n is: true,\n then: yup.string().nullable(false)\n .trim()\n .max(300, i18n.t(\"news.newsForm.messageMax\"))\n .min(1, i18n.t(\"news.newsForm.messageMin\"))\n .required(i18n.t(\"news.newsForm.messageRequired\")),\n }),\n locations: yup.array(),\n img_id: yup.string().nullable(false).ensure().required(i18n.t(\"news.newsForm.imgReq\")),\n }).test('at_least_one', i18n.t(\"news.newsForm.atLeastOne\"), value =>\n !!(value.text || value.snippet || value.url)\n );\n\n const { state } = useContext(store);\n const [confirmDialog, askConfirm] = useState(false);\n const styles = useStyles();\n const {locations, user_profile} = state;\n\n const formMethods = useForm({\n mode: \"onBlur\",\n resolver: yupResolver(schema)\n })\n const { reset, handleSubmit, register, errors, formState, setValue} = formMethods;\n useEffect(() => {\n const loc_idx = _.keyBy(state.locations, \"_id\");\n reset(makeNews(newspiece, _.filter(user_profile.locations, l => loc_idx[l].active)));\n return (() => {});\n }, [newspiece])\n\n const ConfirmDialog = () => {\n return ( askConfirm(false) }\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n {i18n.t(\"news.newsForm.unsaved\")}\n \n \n {i18n.t(\"news.newsForm.unsavedConfirm\")}\n \n \n \n askConfirm(false)} color=\"secondary\">\n {i18n.t(\"cancel\")}\n \n { \n askConfirm(false); \n handleClose();\n }} color=\"primary\"\n style={{marginLeft: 15}} \n >\n {i18n.t(\"news.newsForm.ignoreClose\")}\n \n { \n askConfirm(false); \n handleSubmit(onSubmit)();\n }} color=\"primary\">\n {i18n.t(\"news.newsForm.saveClose\")}\n \n \n )\n }\n\n const published = useWatch({...formMethods, name: 'published'});\n const notify = useWatch({...formMethods, name: 'notify'});\n return <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n upload_file(images[0], value, onChange, onError)}\n\n />\n \n {errors.img_id && errors.img_id.message} \n \n \n } />\n \n \n \n \n \n \n \n \n \n \n \n setValue('published', e.target.checked, {\n shouldValidate: false,\n shouldDirty: false,\n })\n }\n inputRef={ref} />\n }\n label={i18n.t(\"news.newsForm.publishNow\")}\n />\n }/>\n\n \n \n { locations &&\n locations.map(l => \n (\n {l.name}\n ))\n }\n \n \n \n \n \n \n setValue('notify', e.target.checked, {\n shouldValidate: false,\n shouldDirty: false,\n })\n }\n inputRef={ref} />\n }\n label={i18n.t(\"news.newsForm.userNotify\")}\n />\n }/>\n \n \n \n \n\n \n \n \n \n\n \n {\n reset(makeNews(newspiece));\n onCancel && onCancel();\n }}\n color=\"secondary\">\n {i18n.t(\"cancel\")}\n \n \n {\n if(formState.isDirty)\n askConfirm(true);\n else\n handleClose();\n }\n }>\n {i18n.t(\"close\")}\n \n \n {i18n.t(\"save\")}\n \n \n \n \n >;\n} ","import React from \"react\";\nimport { Controller, useForm, useFormContext, FormProvider } from 'react-hook-form';\n\n\nimport { Box, Button, Checkbox, FormControlLabel, Grid, makeStyles, TextField } from '@material-ui/core';\nimport _ from 'lodash';\nimport { useEffect } from \"react\";\nimport i18n from 'i18n-js';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: \"flex\",\n flexWrap: \"wrap\"\n }\n}));\n\nconst makeCompany = (company) => _.defaultsDeep(company, {\n _id: null,\n personal: true,\n name: \"\",\n fiscal_code: \"\",\n cod_unico: null,\n contact_phone: null,\n email: null,\n address: {\n street: \"\", city: \"\", zipcode: \"\", province: \"\", country: \"\"\n },\n active: true,\n});\n\nconst FormInput = (props) => {\n const { control } = useFormContext();\n\n return (\n \n );\n}\n\nconst FormCheckbox = (props) => {\n const { control } = useFormContext();\n\n return (\n {\n return props.onChange(e.target.checked)} />\n }}\n />\n );\n}\n\nexport default ({\n company, \n onSubmit = (data) => console.log(\"submit: \", data),\n onCancel }) => {\n\n const styles = useStyles();\n\n const formMethods = useForm()\n const { reset, handleSubmit, register, formState } = formMethods;\n useEffect(() => reset(makeCompany(company)), [company, reset])\n\n //watch(\"active\", (v, o) => console.log(\"---\", v, o) )\n\n return \n\n \n \n\n \n\n \n \n }\n label={i18n.t(\"companyForm.private\")} />\n \n \n }\n label={i18n.t(\"companyForm.active\")} />\n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n {\n reset(makeCompany(company));\n console.log(\"ON CANCEL\", onCancel)\n onCancel && onCancel();\n }}\n color=\"secondary\">\n {i18n.t(\"cancel\")}\n \n {i18n.t(\"save\")}\n \n \n \n \n}","import React, { useContext, useEffect, useMemo } from 'react';\nimport { NavLink, Route, BrowserRouter as Router, Switch, Redirect } from 'react-router-dom';\n\nimport {\n AppBar, Button, CssBaseline, Drawer, List, ListItem, ListItemIcon, ListItemText,\n makeStyles, Typography, Toolbar, Box, Badge\n} from '@material-ui/core';\nimport { AccountCircle, BusinessCenter, NotificationsOutlined as NotificationIcon, CalendarToday, Fastfood, Payment, PostAdd, Shop } from \"@material-ui/icons\"\nimport i18n from \"i18n-js\";\n\n\nimport './App.css';\nimport { StoreProvider, store } from './store'\nimport { useJwt, deleteJwt } from \"./jwt_utils\";\n\nimport Pay from './screens/pay';\nimport Users from \"./screens/Users\";\nimport Login from \"./screens/Login\";\nimport Companies from \"./screens/Companies\";\nimport Payments from \"./screens/Payments\";\nimport News from \"./screens/News\";\nimport Bookings from \"./screens/Bookings\";\nimport Services from \"./screens/Services\";\nimport Mammt from './screens/Mammt';\nimport Notifications from './screens/Notifications';\n\n// setup dayjs and locale\nimport translation from \"./trans.js\";\nimport dayjs from \"dayjs\";\nimport isoWeek from \"dayjs/plugin/isoWeek\";\nimport localizedFormat from \"dayjs/plugin/localizedFormat\";\nimport localeData from \"dayjs/plugin/localeData\"\nimport utc from \"dayjs/plugin/utc\";\nimport timezone from \"dayjs/plugin/timezone\";\nimport isSameOrAfter from \"dayjs/plugin/isSameOrAfter\";\nimport isSameOrBefore from \"dayjs/plugin/isSameOrBefore\";\nimport Duration from \"dayjs/plugin/duration\";\nimport axios from 'axios'\nimport '@fontsource/roboto/300.css';\nimport '@fontsource/roboto/400.css';\nimport '@fontsource/roboto/500.css';\nimport '@fontsource/roboto/700.css';\nimport {ChangePageTitle} from './utils';\nimport useSSE from './sse';\nimport { NativeEventSource, EventSourcePolyfill } from 'event-source-polyfill';\n\n\nconst EventSource = EventSourcePolyfill;\nglobal.EventSource = EventSourcePolyfill;\n\ndayjs.extend(isoWeek);\ndayjs.extend(localizedFormat)\ndayjs.extend(localeData)\ndayjs.extend(utc);\ndayjs.extend(timezone)\ndayjs.extend(isSameOrAfter);\ndayjs.extend(isSameOrBefore);\ndayjs.extend(Duration);\n\ni18n.locale = \"en\";\n\nconst drawerWidth = 240;\n\nconst yellow = \"#fde261\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: \"flex\",\n flexGrow: 1,\n height: \"100%\"\n },\n appBar: {\n zIndex: theme.zIndex.drawer + 1,\n backgroundColor: yellow\n },\n menuButton: {\n marginRight: theme.spacing(2),\n },\n title: {\n flexGrow: 1,\n marginLeft: 30,\n color: theme.palette.getContrastText(yellow)\n },\n drawer: {\n width: drawerWidth,\n flexShrink: 0,\n },\n drawerPaper: {\n width: drawerWidth,\n },\n\n draweContainer: {\n overflow: \"auto\"\n },\n\n // necessary for content to be below app bar\n toolbar: theme.mixins.toolbar,\n\n content: {\n backgroundColor: theme.palette.background.default,\n flexGrow: 1,\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n paddingTop: 64,\n height: \"100vh\",\n overflow: \"auto\"\n },\n\n activeStyle: {\n backgroundColor: yellow\n }\n\n}));\n\n\nconst App = () => {\n\n\n return \n \n \n}\n\n\nconst AppRouter = () => {\n\n const classes = useStyles();\n const { state, dispatch } = useContext(store);\n const { logged_in, user_profile, seen, updated } = state;\n\n useJwt();\n\n const jwt_token = localStorage.getItem(\"__jwt\");\n const url = useMemo(() => {\n if(!jwt_token)\n return null;\n\n return `/api/events/updates?token=${jwt_token}`\n }, [jwt_token]);\n\n useEffect(() => {\n if(!logged_in)\n return;\n\n const url = `${process.env.REACT_APP_SERVER}/api/events/updates`;\n const sse = new EventSource(url, {\n headers: {\n 'Cache-Control': 'no-transform',\n 'Authorization': 'Bearer ' + jwt_token\n }\n })\n console.log(\"Event source: \", url);\n\n sse.addEventListener(\"updates\", e => {\n const event = JSON.parse(e.data);\n console.log(\"Update received\", event)\n dispatch({type: 'set_last_update', payload: {updated: {[event.topic]: event.ts}}});\n })\n\n /*\n sse.addEventListener(\"tick\", e => {\n const event = JSON.parse(e.data);\n console.log(\"Tick received\", event)\n })\n */\n\n sse.onerror = (e) => console.log(\"error\", e)\n\n return () => {\n sse.close()\n }\n\n }, [logged_in])\n\n const badges = {\n users: dayjs(seen.users).isBefore(dayjs(updated.users)),\n purchases: dayjs(seen.purchases).isBefore(dayjs(updated.purchases)),\n bookings: dayjs(seen.bookings).isBefore(dayjs(updated.bookings)),\n }\n\n useEffect(() => {\n const get_profile = async () => {\n try {\n const { data: result } = await axios.get(\"/users/me\");\n dispatch({ type: \"set_user_profile\", payload: result })\n } catch(e) {\n // logout in case we can't get profile, for any reason\n deleteJwt(dispatch)\n console.warn(e)\n }\n }\n\n const get_locations = async () => {\n const { data: result } = await axios.get(\"/api/locations\", {\n params :{\n start: 0, limit: 0, active_only: false\n }\n });\n dispatch({ type: \"set_locations_list\", payload: result.data })\n }\n\n const last_updates = async () => {\n const { data: result } = await axios.get(\"/api/notifications/updates\");\n dispatch({ type: \"set_last_update\", payload: result.payload })\n }\n\n if(logged_in) {\n get_profile();\n get_locations();\n last_updates();\n }\n\n }, [logged_in])\n\n\n\n return (\n\n \n\n \n \n \n \n \n\n \n \n \n\n {logged_in === false &&\n \n \n \n }\n\n {logged_in && user_profile && <>\n \n\n \n \n {\n // \n // \n // \n }\n \n\n \n UltraBackoffice\n \n { logged_in && deleteJwt(dispatch)} color=\"inherit\">logout}\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n {\n user_profile.serviceTags.includes('pay_admin') &&\n <>\n \n \n \n \n\n \n \n \n \n \n \n\n \n \n {\n \n \n \n }\n \n \n \n >\n }\n {\n user_profile.serviceTags.includes('mammt') && <>\n \n \n \n \n >\n }\n\n \n \n \n \n\n \n \n \n \n \n\n {/* \n \n */}\n \n\n \n \n \n \n >}\n \n \n )\n}\n\nconst Home = () => {\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nfunction HomeContent() {\n return (\n \n \n \n \n \n \n );\n}\n\n\nexport default App;\n","import React, {useEffect, useMemo, useState} from 'react';\nimport {Container} from '@material-ui/core';\n\nimport {CardElement, Elements, useStripe, useElements} from \"@stripe/react-stripe-js\";\nimport {loadStripe} from \"@stripe/stripe-js\";\nimport useAxios from 'axios-hooks';\n\nconst stripePromise = loadStripe(\"pk_test_51HJPOdHUSKReLpFkNbOIJlCV4Irfy6x8jvyMLzWFjI1CYVLcxdeUPYHS2AtokOavKRswPBrKPJ2BT4cmTf9VtxDv000D4ZEq3G\");\n\nfunction useResponsiveFontSize() {\n const getFontSize = () => (window.innerWidth < 450 ? \"16px\" : \"22px\");\n const [fontSize, setFontSize] = useState(getFontSize);\n\n useEffect(() => {\n const onResize = () => {\n setFontSize(getFontSize());\n };\n\n window.addEventListener(\"resize\", onResize);\n\n return () => {\n window.removeEventListener(\"resize\", onResize);\n };\n });\n\n return fontSize;\n}\n\nconst useOptions = () => {\n const fontSize = useResponsiveFontSize();\n const options = useMemo(\n () => ({\n style: {\n base: {\n fontSize,\n color: \"#424770\",\n letterSpacing: \"0.025em\",\n fontFamily: \"Source Code Pro, monospace\",\n \"::placeholder\": {\n color: \"#aab7c4\"\n }\n },\n invalid: {\n color: \"#9e2146\"\n }\n }\n }),\n [fontSize]\n );\n \n return options;\n };\n\nexport default function () {\n\n return (\n \n \n \n )\n}\n\n\nconst CheckoutForm = () => {\n const stripe = useStripe();\n const elements = useElements();\n const options = useOptions();\n const [{data: intent, loading, error}, refetch] = useAxios(\n \"/api/payments/intent?amount=1000\"\n )\n\n const handleSubmit = async (event) => {\n // Block native form submission.\n event.preventDefault();\n\n if (!stripe || !elements || ! intent) {\n // Stripe.js has not loaded yet. Make sure to disable\n // form submission until Stripe.js has loaded.\n return;\n }\n\n // Get a reference to a mounted CardElement. Elements knows how\n // to find your CardElement because there can only ever be one of\n // each type of element.\n const cardElement = elements.getElement(CardElement);\n\n console.log(\"CE\", cardElement);\n\n // Use your card Element with other Stripe.js APIs\n const {error, paymentMethod} = await stripe.createPaymentMethod({\n type: 'card',\n card: cardElement,\n });\n\n if (error) {\n console.log('[error]', error);\n } else {\n console.log('[PaymentMethod]', paymentMethod);\n //const res = await stripe.confirmCardPayment(\n // intent.client_secret, {payment_method: paymentMethod});\n const res = await stripe.confirmCardPayment(\n intent.client_secret, {payment_method: {card: cardElement}});\n console.log(\"RES:\", res);\n }\n\n };\n\n // const __handleSubmit = async (event) => {\n // \n // // Block native form submission.\n // event.preventDefault();\n\n // if (!stripe || !elements || ! intent) {\n // // Stripe.js has not loaded yet. Make sure to disable\n // // form submission until Stripe.js has loaded.\n // return;\n // }\n\n // // Get a reference to a mounted CardElement. Elements knows how\n // // to find your CardElement because there can only ever be one of\n // // each type of element.\n // const cardElement = elements.getElement(CardElement);\n\n // const res = await stripe.confirmCardPayment(intent.client_secret, paymentMethod);\n // console.log(\"RES:\", res);\n // };\n\n console.log(\"intent: \", intent);\n\n return (\n \n \n Card details\n \n \n \n Pay\n \n \n );\n};","import React, { useContext, useEffect, useReducer, useRef, useState } from 'react';\nimport {\n Avatar, Box, Button, Checkbox, Chip, CircularProgress, Dialog, DialogContent, DialogTitle, FormControl, FormControlLabel, FormGroup, Grid,\n IconButton,\n InputAdornment,\n makeStyles, Paper, Table, TableBody, TableCell, TableContainer, TableHead, TablePagination, TableRow, TextField, Typography\n} from \"@material-ui/core\";\nimport { Autocomplete } from \"@material-ui/lab\"\nimport { VerifiedUser, PriorityHigh, Clear, ContactSupportOutlined } from \"@material-ui/icons\";\nimport useAxios from 'axios-hooks';\nimport axios from \"axios\";\nimport { store } from \"../store\";\nimport { CompanySelAsync, UserSelAsync, CompanyEditCreate } from './Companies';\nimport CompanyForm from \"../components/CompanyForm\"\nimport _ from \"lodash\";\nimport { ChangePageTitle } from '../utils';\nimport i18n from 'i18n-js';\n\nconst useStyles = makeStyles(theme => ({\n buttonCancel: {\n fontWeight: \"bold\",\n color: theme.palette.primary.light\n },\n buttonOk: {\n fontWeight: \"bold\",\n color: theme.palette.primary.main\n },\n container: {\n marginTop: 20\n },\n cell_small: {\n minWidth: 1,\n width: 100\n }\n}));\n\nconst findTag = (tags, t) => _.find(tags, i => i == t)\nconst hasTag = (tags, t) => _.find(tags, i => i == t) !== undefined\n\n\n\nconst TagSelector = ({\n values,\n options,\n requests,\n setValue = () => { },\n fixedOptions = [],\n optionDisabaled = () => false } = {}) => {\n //const _options = _(options)\n // .map(o => o.value)\n // .filter(v => _.indexOf(values, v) < 0)\n // .value();\n const omap = _.keyBy(options, \"value\");\n \n\n return {\n setValue(values)\n }}\n //options={_.keys(omap).filter(v => _.indexOf(values, v) < 0)}\n options={_.keys(omap)}\n getOptionLabel={option => omap[option].label}\n renderOption={option => \n r == omap[option].req) ? \"visible\" : \"hidden\" }} />\n {omap[option].label}\n }\n style={{ maxWidth: 400 }}\n renderInput={(params) => (\n \n )}\n renderTags={(tagValue, getTagProps) =>\n tagValue.map((option, index) => {\n\t\tconsole.log(omap[option])\t\n\n return = 0}\n />\n })}\n getOptionDisabled={(option, value) => optionDisabaled(option)}\n />\n}\n\n\nconst CompanyJoiner = ({ user, onCompanyCreated = () => { } }={}) => {\n\n const [showDialog, setShowDialog] = useState(false)\n const [{ data }] = useAxios(`/api/tmp_companies/${user.tmp_company_id}`)\n const tmpCompany = data || {};\n\n const handleSubmit = (newCompany) => {\n // created and join\n }\n\n return \n setShowDialog(true)}>\n Aggiungi {tmpCompany.name}? \n \n setShowDialog(false)}>\n setShowDialog(false)}\n onCompanyCreated={id => {\n setShowDialog(false);\n onCompanyCreated(id)\n }} />\n \n \n}\n\n\nconst UserRow = ({ user, styles }) => {\n \n const tagOptions = [\n { value: \"verified\", label: i18n.t(\"users.verified\"), req: \"verify-req\", skip: false },\n { value: \"ontab\", label: i18n.t(\"users.ontab\"), req: \"ontab-req\", skip: false },\n { value: \"ferrucci\", label: i18n.t(\"users.ferrucci\"), req: \"none\", skip: false },\n { value: \"pay_admin\", label: i18n.t(\"users.pay_admin\"), req: \"none\", skip: true },\n { value: \"db_update\", label: i18n.t(\"users.db_admin\"), req: \"none\", skip: true },\n { value: \"mammt\", label: i18n.t(\"users.mammt_admin\"), req: \"none\", skip: true }\n ]\n\n const [rowUser, setRowUser] = useState(user);\n const [company, setCompany] = useState(null);\n\n const { state } = useContext(store);\n const { user_profile } = state;\n const isPayAdmin = hasTag(user_profile.serviceTags, \"pay_admin\");\n\n const initFields = () => ({\n company_id: rowUser.company_id,\n serviceTags: [...rowUser.serviceTags],\n })\n\n // controlling inputs\n const [fields, setFields] = useState(initFields());\n\n const filteredTags = _.difference(rowUser.serviceTags, [\"verified\"]);\n\n const isDirty = () => {\n if (fields.company_id !== rowUser.company_id)\n return true;\n //if (fields.verified != verified)\n // return true;\n const pairs = _.zip(fields.serviceTags, rowUser.serviceTags);\n if (_.find(pairs, ([a, b]) => a != b))\n return true;\n };\n\n const saveUser = async () => {\n\n let serviceRequests = [...rowUser.serviceRequests];\n for (const [t, req] of [[\"verified\", \"verify-req\"], [\"ontab\", \"ontab-req\"]]) {\n if (findTag(fields.serviceTags, t)) {\n serviceRequests = serviceRequests.filter(r => r != req)\n }\n }\n const changes = {\n ...fields,\n serviceRequests,\n };\n\n // TODO: handle server side with one call only an admin_update \n\n // apply the side effects to company change\n if(fields.company_id != rowUser.company_id) {\n await axios({\n method: \"POST\", \n url: \"/users/_admin/change_company\",\n params: {\n uid: rowUser.id,\n company_id: fields.company_id\n }\n })\n changes.tmp_company_id = null;\n }\n\n // it may be redundant if we have just changed \n await axios.patch(\"/users/\" + user.id, changes);\n \n setRowUser(user => ({ ...user, ...changes }));\n }\n\n\n const handleVerified = checked => {\n if (checked) {\n setFields(f => ({ ...f, serviceTags: [...f.serviceTags, \"verified\"] }));\n } else {\n setFields(f => ({ ...f, serviceTags: f.serviceTags.filter(t => t != \"verified\") }));\n }\n }\n\n const UserCompanySwitch = ({ user, onCompanyCreated=()=>{} }={}) => {\n\n if (user.company_id)\n return \"\"\n else if (user.tmp_company_id)\n return \n else\n return Da profilo: {rowUser.company || \"non indicata\"} \n }\n\n return <>\n \n {hasTag(rowUser.serviceTags, \"verified\") && } \n {rowUser.name} - {rowUser.surname}\n {rowUser.email}\n \n\n setFields(vals => ({...vals, company_id: id}))\n } />\n\n \n \n setFields(vals => ({ ...vals, company_id: rowUser.company_id }))}\n onChange={val => {\n setCompany(val);\n setFields(vals => ({ ...vals, company_id: val ? val._id : null }))\n }\n }\n />\n\n \n \n \n \n \n \n setFields(f => ({ ...f, serviceTags: tags }))}\n fixedOptions={isPayAdmin ? [] : [\"pay_admin\"]}\n optionDisabaled={option => {\n switch (option) {\n case \"verified\":\n return !fields.company_id\n case \"ontab\":\n return !_.find(fields.serviceTags, t => t == \"verified\")\n case \"pay_admin\":\n return !isPayAdmin || !user.is_superuser;\n default:\n return false;\n }\n }} />\n \n \n {rowUser.serviceRequests.length > 0 && }\n \n \n\n \n \n {isDirty() && <>\n saveUser()}>salva\n setFields(initFields())}>{i18n.t(\"cancel\")}\n >\n }\n \n >\n}\n\nexport default () => {\n const styles = useStyles();\n\n const initialState = {\n all_loaded: false, // true when all data is loaded the first time \n page: 0,\n pageSize: 10,\n filterRequests: false,\n filterTmpBillinfo: false,\n fullText: \"\",\n uid: null\n }\n const {dispatch: dispatch_state} = useContext(store)\n\n useEffect(() => {\n const timeout = setTimeout(() => {\n dispatch_state({type: 'set_last_seen', payload: 'users'});\n }, 5000);\n return () => { clearTimeout(timeout)};\n }, []);\n\n\n\n const [state, dispatch] = useReducer((state, action) => {\n const { type, payload } = action;\n switch (type) {\n case \"set-page\":\n return { ...state, page: payload.page }\n case \"set-page-size\":\n return { ...state, pageSize: payload.size, page: 0 }\n case \"set-all-loaded\":\n return { ...state, all_loaded: true }\n case \"set-filter-requests\":\n return { ...state, filterRequests: payload.value }\n case \"set-filter-billinfo\":\n return { ...state, filterTmpBillinfo: payload.value }\n case \"set-search\":\n return { ...state, fullText: payload.value }\n case \"set-uid\":\n return { ...state, uid: payload.value }\n default:\n console.warn(\"unknown action\", type)\n }\n return state;\n }, initialState);\n\n const { page, pageSize, all_loaded, filterRequests, filterTmpBillinfo, fullText, uid } = state;\n\n console.log(\"uid\", uid)\n\n const [{ data: usersPage, loading:\n loadingUsers,\n error: errorUsers }, refetchUsers] = useAxios({\n url: \"/users/_admin/search\",\n params: {\n skip: page * pageSize,\n limit: pageSize,\n filterRequests,\n filterTmpBillinfo,\n fullText,\n uid: uid\n },\n }, { useCache: false })\n\n const { data: users, count: userCount } = usersPage || {};\n\n useEffect(() => {\n !all_loaded && users && dispatch({ type: \"set-all-loaded\" })\n }, [all_loaded, users]);\n\n return \n \n \n\n {i18n.t(\"navbar.users\")}\n\n \n \n\n \n \n dispatch({\n type: \"set-uid\",\n payload: { value: null }\n })\n }\n onChange={user => {\n dispatch({\n type: \"set-uid\",\n payload: { value: user ? user.id : null }\n })\n }} />\n \n {\n //\n // \n // dispatch({\n // type: \"set-uid\",\n // payload: { value: null }\n // })\n // }\n // onChange={user => {\n // dispatch({\n // type: \"set-uid\",\n // payload: { value: user ? user.id : null }\n // })\n // }} />\n //\n }\n \n \n dispatch({ type: \"set-filter-requests\", payload: { value: !filterRequests } })} />}\n label={i18n.t(\"users.pendingReq\")}\n />\n dispatch({ type: \"set-filter-billinfo\", payload: { value: !filterTmpBillinfo } })} />}\n label={i18n.t(\"users.waitingApproval\")}\n />\n \n \n \n {!all_loaded && }\n {all_loaded && <>\n \n \n \n \n {i18n.t(\"users.pic\")}\n {i18n.t(\"users.verified\")}\n {i18n.t(\"users.name\")}\n {i18n.t(\"users.email\")}\n {i18n.t(\"users.company\")}\n {i18n.t(\"users.options\")}\n {i18n.t(\"users.actions\")}\n \n \n \n {users.map(u => )}\n \n \n \n dispatch({ type: \"set-page\", payload: { page: newPage } })}\n onChangeRowsPerPage={\n e => dispatch({ type: \"set-page-size\", payload: { size: parseInt(e.target.value) } })} />\n >}\n \n \n \n}\n","import React, { useContext, useState } from 'react';\nimport { Box, Button, CircularProgress, Paper, TextField, Typography } from \"@material-ui/core\";\nimport { Alert } from '@material-ui/lab'\nimport { store } from \"../store\";\nimport { useHistory } from 'react-router-dom';\nimport jwt_decode from \"jwt-decode\";\nimport { doLogin, saveJwt } from \"../jwt_utils\";\nimport i18n from \"i18n-js\";\n\nconst yellow = \"#fde261\";\n\nexport default () => {\n\n const { dispatch } = useContext(store);\n const history = useHistory();\n\n const [password, setPassword] = useState();\n const [email, setEmail] = useState();\n\n const [loginState, setLoginState] = useState(\"none\") // none | logging_in | error\n\n const handleLogin = async () => {\n setLoginState(\"logging_in\")\n const token = await doLogin({ email, password });\n\n if (!token) {\n setLoginState(\"error\")\n } else {\n const decoded = jwt_decode(token);\n if (decoded.is_superuser) {\n saveJwt(token, dispatch);\n history.push(\"/\")\n } else {\n setLoginState(\"error\")\n }\n }\n }\n\n return \n\n \n\n \n \n \n {i18n.t(\"login.welcome\")}\n \n \n setEmail(e.target.value)} />\n setPassword(e.target.value)} />\n {loginState === \"error\" && {i18n.t(\"login.credentials_error\")}}\n handleLogin()}\n disabled={loginState === \"logging_in\"}\n style={{\n marginTop: 20,\n backgroundColor: yellow,\n fontWeight: \"bold\",\n borderRadius: 20\n }}>LOGIN\n {loginState === \"logging_in\" && < CircularProgress />}\n \n \n \n \n\n}","import React, { useContext, useEffect, useState } from 'react';\nimport {Paper, Box, makeStyles, Button, Select, MenuItem, FormControl, InputLabel, Typography, TextField, Grid, Snackbar} from '@material-ui/core';\nimport { KeyboardDatePicker, MuiPickersUtilsProvider } from '@material-ui/pickers';\nimport DateFnsUtils from '@date-io/date-fns';\nimport { it } from \"date-fns/locale\";\nimport useAxios from 'axios-hooks';\nimport axios from \"axios\";\nimport dayjs from 'dayjs';\nimport {store} from '../store';\nimport { Fragment } from 'react';\nimport { BlockOutlined, Label } from '@material-ui/icons';\nimport { Alert, Autocomplete } from '@material-ui/lab';\nimport { CompanySelAsync } from './Companies';\nimport { set } from 'lodash';\nimport { ChangePageTitle } from '../utils';\nimport i18n from \"i18n-js\";\n\nconst utc = require('dayjs/plugin/utc');\ndayjs.extend(utc)\n\n\nconst useStyles = makeStyles(theme => ({\n paper: {\n margin: 20,\n paddin: 20,\n },\n container: {\n padding: 10,\n }\n}));\n\nexport default () => {\n const styles = useStyles();\n const {state} = useContext(store);\n const {user_profile} = state;\n const [currentSelector, setCurrentCompany] = useState({_id: \"__all__\"});\n const [dateStart, setDateStart] = useState(dayjs().startOf('month'));\n const [dateEnd, setDateEnd] = useState(dayjs().endOf('month'));\n const [fileFormat, setFormat] = useState('xlsx');\n const [errorMessage, setError] = useState(null);\n\n const downloadData = () => {\n if(!currentSelector)\n return;\n\n if(errorMessage)\n setError(null);\n console.log(dateStart, dateEnd);\n\n const start = dateStart.utc().valueOf();\n const end = dateEnd.utc().valueOf();\n //const url = `/api/services/_purchases/download_payments/${fileFormat}/${currentSelector._id}/?start_date=${start}&end_date=${end}`\n const url = `/api/services/_purchases/download_payments/xlsx/${currentSelector._id}/?start_date=${start}&end_date=${end}`\n axios.get(url, {responseType: 'arraybuffer'})\n .then(response => ({\n 'payload': response.data,\n 'mime_type': response.headers['content-type'],\n 'filename': response.headers['content-disposition'].split('=')[1],\n })).then(({payload, mime_type, filename}) => {\n const url = window.URL.createObjectURL(new Blob([payload], {type: mime_type}));\n const link = document.createElement('a');\n link.href = url;\n link.target = \"_blank\";\n link.download = filename;\n document.body.appendChild(link);\n link.click()\n link.parentNode.removeChild(link)\n }).catch(error => {\n setError(i18n.t(\"payments.networkError\") + error);\n })\n }\n\n const handleDateStartChange = d => {\n const som = dayjs(d).startOf('month');\n if(som.isAfter(dateEnd))\n setDateEnd(som.endOf(\"month\"));\n setDateStart(som);\n }\n \n const handleDateEndChange = d => {\n const eom = dayjs(d).endOf('month');\n if(eom.isBefore(dateStart))\n setDateStart(eom.startOf(\"month\"));\n setDateEnd(eom);\n }\n\n return \n \n \n \n \n {i18n.t(\"navbar.payments\")}\n \n \n { \n user_profile.serviceTags.includes('pay_admin') ?\n \n \n \n {\n handleDateStartChange(d);\n }\n }\n InputAdornmentProps={{ position: \"start\" }}\n />\n \n \n \n \n {\n handleDateEndChange(d);\n }\n }\n InputAdornmentProps={{ position: \"start\" }}\n />\n \n \n \n setCurrentCompany(null)}\n onChange={v => setCurrentCompany(v)}\n />\n \n \n { false &&\n\n \n \n {i18n.t(\"payments.fileFormat\")}\n setFormat(e.target.value)} \n value={fileFormat}\n > \n Excel XLSX\n \n \n \n }\n \n \n {i18n.t(\"payments.download\")}\n \n \n \n : \n \n \n \n {i18n.t(\"payments.insufficientPermissions\")}\n \n \n \n \n {i18n.t(\"payments.missingPermssion\")} \n \n \n \n \n }\n \n \n {errorMessage}\n \n \n \n \n} ","import React, { useState, useEffect, Fragment} from 'react';\nimport useAxios from 'axios-hooks';\nimport {Box, Button, Collapse, Grid, Paper, Snackbar } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TablePagination from '@material-ui/core/TablePagination';\nimport TableRow from '@material-ui/core/TableRow';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport LinesEllipsis from 'react-lines-ellipsis'\nimport dayjs from 'dayjs';\nimport {EnhancedTableHead} from '../components/ExtendedTable';\nimport NewsForm from '../components/NewsForm';\nimport axios from 'axios';\nimport qs from 'querystring';\nimport { Alert } from '@material-ui/lab';\nimport { ChangePageTitle } from '../utils';\nimport i18n from \"i18n-js\";\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n marginTop: 20\n },\n\n root: {\n width: '100%',\n },\n\n paper: {\n width: '100%',\n marginBottom: theme.spacing(2),\n },\n\n table: {\n minWidth: 750,\n },\n\n visuallyHidden: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1,\n },\n\n mainBody: {\n overflow: 'hidden',\n textAlign: \"justify\",\n textOverflow: \"ellipsis\",\n maxLines: 4,\n maxWidth: \"20%\",\n width: \"10%\",\n },\n\n imgPreview: {\n width: 150,\n\n }\n}));\n\n\n\nexport default () => {\n \n const headCells = [\n { id: 'published', numeric: false, align: \"left\", disablePadding: true, label: i18n.t(\"news.headCells.published\")},\n { id: 'timestamp', numeric: true, align: \"left\", disablePadding: false, label: i18n.t(\"news.headCells.pubDate\")},\n { id: 'img', numeric: false, align: \"center\", disablePadding: false, label: i18n.t(\"news.headCells.image\")},\n { id: 'title', numeric: false, align: \"left\", disablePadding: false, label: i18n.t(\"news.headCells.title\")},\n { id: 'snippet', numeric: false, align: \"left\", disablePadding: false, label: i18n.t(\"news.headCells.preview\")},\n { id: 'text', numeric: false, align: \"left\", disablePadding: false, label: i18n.t(\"news.headCells.text\")},\n { id: 'url', numeric: false, align: \"left\", disablePadding: false, label: i18n.t(\"news.headCells.link\")},\n ];\n\n const styles = useStyles();\n const [rowsPerPage, setRowsPerPage] = useState(10);\n const [page, setPage] = useState(0);\n const [editing, setEditing] = useState(0);\n const [error, setError] = useState(null);\n const [savingMessage, setSavingMessage] = useState(\"\");\n\n const [ {data: newsfeedCount, loading: newsfeedCountLoading, error: newsfeedCountError} ] = useAxios({url: \"/api/newsfeed/count\"});\n\n const [{ data: rowsPage, loading: loadingRows, error: errorRows }, refetchRows] = useAxios({\n url: '/api/newsfeed',\n params: {\n not_published: true,\n location_id: '__all__',\n skip: page * rowsPerPage,\n limit: rowsPerPage,\n },\n paramsSerializer: params => {\n return qs.stringify(params)\n }\n }, { useCache: false })\n const { data: rows, count: row_count } = rowsPage || {};\n\n if (errorRows) {\n console.log(errorRows);\n }\n\n const changePublishedStatus = async (row, isPublished) => {\n const data = {...row, published: isPublished};\n const {notify, notify_msg, ...news} = data\n\n\n try {\n await axios.put(`/api/newsfeed/${data._id}`, {notify, notify_msg, news});\n refetchRows();\n } catch(e) {\n setError(i18n.t(\"news.errorStatus\"));\n }\n }\n const handleChangePage = (event, newPage) => {\n setPage(newPage);\n };\n\n const handleChangeRowsPerPage = (event) => {\n setRowsPerPage(parseInt(event.target.value, 10));\n setPage(0);\n };\n\n const EditNews = ({index}) => {\n const newspiece = index >= 0 ? rows[index] : undefined;\n return \n \n setEditing(-1)\n }\n onSubmit={onSubmit} onCancel={()=> true}/>\n \n \n }\n\n const onSubmit = async (data) => {\n setError(null);\n setSavingMessage(i18n.t(\"news.saving\"));\n try {\n if(!data.img_id)\n delete data.img_id;\n\n const {notify, notify_msg, ...news} = data\n if (!data._id) {\n delete data._id;\n delete data.timestamp;\n \n await axios.post(\"/api/newsfeed\", {notify, notify_msg, news});\n } else {\n await axios.put(`/api/newsfeed/${data._id}`, {notify, notify_msg, news});\n }\n \n setSavingMessage(\"saved\")\n setEditing(-1);\n refetchRows();\n } catch (e) {\n if(e.response.status == 403)\n setError(i18n.t(\"news.403\"));\n else\n setError(i18n.t(\"news.saveError\"));\n }\n }\n\n\n const handlePublish = (event, id) => {\n console.log(\"EVENT: \", event);\n }\n\n return \n \n \n \n\n \n setEditing(\"new_row\")}\n >{i18n.t(\"news.newPost\")}\n \n\n \n \n \n \n \n \n \n \n \n \n \n {\n rows &&\n rows.map((row, index) => {\n const labelId = `enhanced-table-checkbox-${index}`;\n\n return (\n \n \n \n changePublishedStatus(row, event.target.checked)}\n />\n \n \n {dayjs(row.timestamp).format('LLL')}\n \n \n \n \n {row.title}\n {row.snippet}\n \n \n \n {row.link}\n \n {\n setEditing((cur) => row._id);\n }}\n disabled={editing===row._id} \n >\n {i18n.t(\"news.edit\")}\n \n \n \n \n \n \n \n \n \n \n \n );\n })}\n {rows && row_count > 0 && (\n \n \n \n )}\n \n \n\n \n\n \n\n \n \n \n {error}\n \n \n} ","import React, { useState, useEffect, useMemo, useContext, Fragment, useRef} from 'react';\nimport {NoteAddOutlined, ReportProblemOutlined, DoneAllOutlined, CancelPresentationOutlined, PaymentOutlined, BlockOutlined} from '@material-ui/icons';\nimport FormGroup from '@material-ui/core/FormGroup';\nimport Box from '@material-ui/core/Box';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Switch from '@material-ui/core/Switch';\nimport {Button, Card, Divider, Grid, List, ListItem, ListItemIcon, ListItemText, Paper, TextareaAutosize } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TablePagination from '@material-ui/core/TablePagination';\nimport TableRow from '@material-ui/core/TableRow';\nimport { CompanySelAsync, UserSelAsync } from \"./Companies\"\nimport Collapse from '@material-ui/core/Collapse';\nimport dayjs from 'dayjs';\nimport {EnhancedTableHead} from '../components/ExtendedTable';\nimport _ from \"lodash\";\nimport 'react-dropdown/style.css';\nimport axios from 'axios';\nimport { useCache, useCacheL } from '../data/itemcache';\nimport DateFnsUtils from '@date-io/date-fns';\nimport { it } from \"date-fns/locale\";\nimport { KeyboardDatePicker, MuiPickersUtilsProvider } from '@material-ui/pickers';\nimport { EventAvailableOutlined } from '@material-ui/icons';\nimport useAxios from 'axios-hooks';\nimport {store} from '../store';\nimport { ChangePageTitle } from '../utils';\nimport i18n from \"i18n-js\";\n\n\nvar minMax = require('dayjs/plugin/minMax')\ndayjs.extend(minMax)\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n marginTop: 20\n },\n\n root: {\n width: '100%',\n },\n\n paper: {\n width: '100%',\n marginBottom: theme.spacing(2),\n },\n\n table: {\n minWidth: 750,\n },\n\n visuallyHidden: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1,\n },\n\n mainBody: {\n overflow: 'hidden',\n textAlign: \"justify\",\n textOverflow: \"ellipsis\",\n maxLines: 4,\n maxWidth: \"20%\",\n width: \"10%\",\n },\n\n mainBodyBold: {\n fontWeight: 'bold',\n overflow: 'hidden',\n textAlign: \"justify\",\n textOverflow: \"ellipsis\",\n maxLines: 4,\n maxWidth: \"20%\",\n width: \"10%\",\n },\n\n status: {\n textTransform: \"capitalize\",\n color: \"black\",\n fontSize: 12\n },\n\n cancel_req: {\n color: \"red\",\n },\n\n imgPreview: {\n width: 150,\n\n }\n}));\n\n\n\n\n\nexport default () => {\n const headCells = [\n { id: 'status_idx', numeric: false, disablePadding: false, align: \"left\", label: i18n.t(\"services.status\") },\n { id: 'ts', numeric: false, disablePadding: false, align: \"center\", label: i18n.t(\"services.date\") },\n { id: 'service', numeric: false, disablePadding: false, align: \"center\", label: i18n.t(\"services.service\") },\n { id: 'buyer', numeric: false, disablePadding: false, align: \"center\", label: i18n.t(\"services.buyer\") },\n { id: 'paid', numeric: false, disablePadding: false, align: \"center\", label: i18n.t(\"services.paid\") },\n { id: 'price', numeric: true, disablePadding: false, align: \"right\", label: i18n.t(\"services.price\") },\n ];\n\n const styles = useStyles();\n const [rowsPerPage, setRowsPerPage] = useState(10);\n const [page, setPage] = useState(0);\n const [expanded, setExpanded] = useState(-1);\n\n const {state, dispatch: dispatch_state} = useContext(store)\n const [currentSelector, setCurrentCompany] = useState(null);\n const [searchSwitch, setSearchSwitch] = useState(false);\n const [startDate, setStartDate] = useState(dayjs(new Date()).startOf('day'));\n const [endDate, setEndDate] = useState(dayjs(new Date()).add(1, 'month').endOf('day'));\n const locations = useMemo(() => _.keyBy(state.locations, \"_id\"));\n const hasBadge = dayjs(state.updated.purchases).isAfter(dayjs(state.seen.purchases));\n\n\n const [ {data: servicesCount, loading: servicesCountLoading, error: servicesCountError} ] = useAxios({url: \"/api/services/_purchases/count\", params: {\n start_date: dayjs(startDate).valueOf(),\n end_date: dayjs(endDate).valueOf(),\n buyer_id: searchSwitch ? currentSelector : null,\n company_id: searchSwitch ? null : currentSelector,\n purchased: true,\n }}, {useCache: false});\n\n //console.log(\"SERVICE \", servicesCount, servicesCountError, servicesCountLoading)\n\n const [ {data: companiesData, loading: companiesLoading, error: companiesError }, companiesFetch] = useAxios({url: \"/api/companies\", params: { limit: 0 }});\n const [ {data: servicesData, loading: servicesLoading, error: servicesError }, servicesFetch] = useAxios({url: \"/api/services\", params: { limit: 0 }});\n\n const [{ data: purchasesPage, loading: loadingPurchases, error: errorPurchases }, refetchPurchases] = useAxios({\n url: \"/api/services/_admin/search\", \n params: {\n skip: page * rowsPerPage,\n limit: rowsPerPage,\n buyer_id: searchSwitch ? currentSelector : null,\n company_id: searchSwitch ? null : currentSelector,\n start_date: dayjs(startDate).valueOf(),\n end_date: dayjs(endDate).valueOf(),\n purchased: true,\n }\n }, { useCache: false })\n\n\n useEffect(() => {\n const timeout = setTimeout(() => {\n dispatch_state({type: 'set_last_seen', payload: 'purchases'});\n }, 3000);\n return () => { clearTimeout(timeout)};\n }, [hasBadge]);\n\n const {data: purchases, count: purchases_count} = purchasesPage || {};\n const {data: services} = (servicesData && servicesData.count) ? servicesData : {}\n const data_ready = !(servicesLoading | companiesLoading | companiesError | servicesError);\n\n const rows = useMemo(() => {\n if(!services || !purchases)\n return [];\n\n\n /*\n const filterPurchases = () => {\n if(!purchases || !currentSelector)\n return purchases || [];\n\n if(!searchSwitch) \n return _.filter(purchases, p => p.company_id === currentSelector);\n else \n return _.filter(purchases, p => p.buyer_id === currentSelector);\n };\n const curPurchases = filterPurchases();\n */\n\n const labels = {\n \"active\": i18n.t(\"services.statuses.active\"),\n \"closed\": i18n.t(\"services.statuses.closed\"),\n \"cancel_req\": i18n.t(\"services.statuses.cancelReq\"),\n \"canc_refused\": i18n.t(\"services.statuses.cancelRefused\"),\n \"canceled\": i18n.t(\"services.statuses.canceled\"),\n }\n\n const get_status_index = (item) => {\n const idxs = {\n \"active\": 0,\n \"cancel_req\": 2,\n \"closed\": 6,\n \"canceled\": 6,\n }\n\n return String(idxs[item.status]) + \"_\" + String(item.closed || 0);\n }\n\n const idx_services = _.keyBy(services, \"_id\");\n const getItems = (cur) => {\n if(cur.items) {\n const service = idx_services[cur.service_id];\n\n const ret = _.reduce(cur.items, function(result, value) {\n const variation = _.find(service.variations, (v) => (v.tag === value[0]), {});\n\n result.push({ variation: variation, quantity: value[1] });\n\n return result;\n }, []);\n\n return ret;\n }\n return null;\n }\n\n return purchases.map((cur, index) => ({\n \"name\": idx_services[cur.service_id].name,\n \"paid\": cur.paid,\n \"purchased\": cur.purchased,\n \"price\": cur.price,\n \"closed\": cur.closed,\n \"items\": getItems(cur),\n \"status\": cur.status,\n \"status_idx\": get_status_index(cur),\n \"info\": labels[cur.status],\n \"buyer_id\": cur.buyer_id,\n \"row_id\": index,\n \"id\": cur._id,\n \"purchase\": cur,\n \"service\": idx_services[cur.service_id],\n }));\n\n }, [currentSelector, purchases, services, searchSwitch, data_ready]);\n\n const handleChangePage = (event, newPage) => {\n setPage(newPage);\n };\n\n const handleChangeRowsPerPage = (event) => {\n setRowsPerPage(parseInt(event.target.value, 10));\n setPage(0);\n };\n\n\n const emptyRows = rowsPerPage - Math.min(rowsPerPage, rows.length - page * rowsPerPage);\n const Text = ({ children, className }) => {children};\n const TextBold = ({ children, className }) => {children};\n\n const UserName = ({id}) => {\n const {item} = useCache('/users', id);\n\n const name = (item || {name:\"\"}).name;\n const surname = (item || {surname:\"\"}).surname;\n return {surname} {name}\n }\n\n const getEventIcon = ((event) => {\n const icons = {\n \"created\": ,\n \"cancel_req\": ,\n \"canceled\": ,\n \"active\": ,\n \"closed\": ,\n \"paid\": ,\n \"canc_refused\": \n }\n\n return icons[event];\n })\n\n const handleClose = async (row, closeflag) => {\n try {\n const next_status = closeflag ? (row.purchase.status === 'cancel_req' ? 'canceled' : 'closed') : \n (row.purchase.status === 'cancel_req' ? 'canc_refused' : 'active');\n const { data:updated, status } = await axios.post('/api/services/_actions/set_status', {\n \"updates\": [\n {\n 'status': next_status,\n 'ids': [row.purchase._id]\n }\n ]\n\n });\n refetchPurchases();\n }\n catch (e) {\n console.log(\"Errorissimo\", e)\n }\n }\n\n const ServiceDetails = ({row}) => {\n const items = row.items;\n\n const BoxTitle = ({text}) => {\n return \n {text}\n \n }\n\n const event_names = {\n paid: i18n.t(\"services.events.paid\"),\n created: i18n.t(\"services.events.created\"),\n active: i18n.t(\"services.events.active\"),\n closed: i18n.t(\"services.events.closed\"),\n cancel_req: i18n.t(\"services.events.cancelReq\"),\n canc_refused: i18n.t(\"services.events.cancRefused\"),\n canceled: i18n.t(\"services.events.canceled\"),\n }\n\n return \n {\n items.length > 0 && \n \n {\n items.map((v, index) => (\n \n \n \n \n {v.variation.name}: {v.quantity} x €{(v.variation.price / 100.0).toFixed(2)}\n \n {\n v.variation.desc &&\n \n {v.variation.desc}\n \n }\n \n {i18n.t(\"services.buyDate\")} {dayjs(row.ts).format('LLL')}\n \n \n ))\n }\n \n }\n {\n row.purchase.message && \n \n \n \n \n {row.purchase.message}\n \n \n \n }\n\n \n \n \n \n \n {\n row.purchase.history.map((event, index) => (\n \n \n {\n getEventIcon(event.event)\n }\n \n \n {dayjs(event.ts).format('LLL')}: {event_names[event.event] || \"\"}\n \n \n ))\n\n }\n \n \n \n \n \n }\n\n\n const ItemDetails = ({row}) => {\n const purchase = row.purchase;\n\n const [textUpdated, setUpdate] = useState(false);\n const notes = useRef(purchase.notes || \"\");\n\n const saveNotes = async () => {\n if(textUpdated) {\n const { data:updated, status } = await axios.post('/api/services/_actions/update_notes', {\n \"id\": row.id, \n \"notes\": notes.current.value\n });\n\n refetchPurchases();\n }\n }\n const disabled=[\"closed\", \"canceled\"].includes(purchase.status);\n\n return (\n \n\n \n \n \n \n \n \n \n \n \n Note:\n \n setUpdate(event.target.value != purchase.notes) }\n rowsMin={8}\n\n contentEditable={!disabled}\n variant=\"outlined\"\n ref={notes}\n defaultValue = {purchase.notes || \"Note\"} />\n \n\n \n \n {\n notes.current.value = purchase.notes || \"\";\n setUpdate(false);\n }\n }\n disabled={!textUpdated}>{i18n.t(\"cancel\")}\n {i18n.t(\"services.save\")}\n \n \n \n \n \n {\n purchase.closed ? {i18n.t(\"services.dateClosed\")} + dayjs(purchase.closed).format('LLL') :\n \n {false &&\n \n {i18n.t(\"services.confirmPayment\")}\n \n }\n {\n row.status === 'cancel_req' &&\n \n handleClose(row, false)}\n variant=\"contained\" color=\"secondary\" \n >{i18n.t(\"services.refuseCanc\")}\n \n }\n \n handleClose(row, true)}\n variant=\"contained\" color=\"primary\" \n disabled={disabled}>{row.status==='cancel_req' ? i18n.t(\"services.acceptCanc\") : i18n.t(\"services.terminate\")}\n \n \n setExpanded(-1)}\n variant=\"contained\" color=\"secondary\">\n {i18n.t(\"close\")}\n \n \n \n }\n \n \n \n );\n }\n\n const ItemRow = ({row, index}) => {\n const params = {\n active: { style: \"\" },\n closed: { style: \"\"},\n cancel_req: { style: styles.cancel_req},\n canc_refused: { style: \"\"},\n canceled: { style: styles.cancel_req}\n }[row.status];\n\n const className = styles.status + \" \" + params.style;\n return (<>\n setExpanded((expanded) => (expanded == row.id ? -1 : row.id))}\n tabIndex={-1}\n >\n \n { {row.info} } \n \n {dayjs(row.purchase.ts).format('LLL')}\n \n {row.name}\n \n {\n row.paid \n ?\n \n : \n \n }\n \n € {row.price / 100.0} \n \n \n \n \n \n \n \n \n >\n );\n }\n\n const buyers_set = useMemo(() => {\n if(purchases_count) {\n const bset = new Set(purchases.map(p => p.buyer_id));\n\n return Array.from(bset);\n }\n }, [purchases]);\n\n\n return \n \n \n \n \n \n \n \n { searchSwitch ? \n setCurrentCompany(null)}\n onChange={v => {\n setCurrentCompany(v.id)\n }}\n />\n :\n setCurrentCompany(null)}\n onChange={v => setCurrentCompany(v._id)}\n />\n }\n \n \n {\n setCurrentCompany(null);\n setSearchSwitch(value => !value)\n }\n } />}\n label={i18n.t(\"services.searchUsers\")}\n />\n \n \n \n \n \n {\n if(!isNaN(d * 1.0)) {\n setStartDate(d);\n }\n }\n }\n InputAdornmentProps={{ position: \"start\" }}\n />\n \n \n \n \n {\n if(!isNaN(d * 1.0)) {\n setEndDate(d);\n }\n }\n }\n InputAdornmentProps={{ position: \"start\" }}\n />\n \n \n \n \n \n \n \n \n \n {\n rows.length > 0 && \n {\n rows.map((row, index) => \n \n )}\n {\n emptyRows > 0 && (\n \n \n \n )}\n \n }\n \n \n \n \n \n \n \n} ","import React, { useContext, useEffect, useState } from 'react';\nimport {Paper, Box, makeStyles, Button, Select, MenuItem, FormControl, InputLabel, Typography, TextField, Grid, Snackbar} from '@material-ui/core';\nimport { KeyboardDatePicker, MuiPickersUtilsProvider } from '@material-ui/pickers';\nimport DateFnsUtils from '@date-io/date-fns';\nimport { it } from \"date-fns/locale\";\nimport useAxios from 'axios-hooks';\nimport axios from \"axios\";\nimport dayjs from 'dayjs';\nimport {store} from '../store';\nimport { Fragment } from 'react';\nimport { BlockOutlined, Label } from '@material-ui/icons';\nimport { Alert, Autocomplete } from '@material-ui/lab';\nimport { CompanySelAsync } from './Companies';\nimport { set } from 'lodash';\nimport { ChangePageTitle } from '../utils';\nimport i18n from \"i18n-js\";\n\nconst utc = require('dayjs/plugin/utc');\ndayjs.extend(utc)\n\n\nconst useStyles = makeStyles(theme => ({\n paper: {\n margin: 20,\n padding: 20,\n },\n container: {\n padding: 10,\n }\n}));\n\nexport default () => {\n const styles = useStyles();\n const {state} = useContext(store);\n const {user_profile} = state;\n const [dateStart, setDateStart] = useState(dayjs());\n const [dateEnd, setDateEnd] = useState(dayjs().endOf('day'));\n const [fileFormat, setFormat] = useState('csv');\n const [errorMessage, setError] = useState(null);\n\n const downloadData = () => {\n if(errorMessage)\n setError(null);\n console.log(dateStart.utc.valueOf(), dateEnd.utc.valueOf());\n\n const start = dateStart.utc().startOf('day').valueOf();\n const end = dateEnd.utc().endOf('day').valueOf();\n const url = `/api/services/_purchases/download_mammt/csv/?start_date=${start}&end_date=${end}`\n axios.get(url, {responseType: 'arraybuffer'})\n .then(response => ({\n 'payload': response.data,\n 'mime_type': response.headers['content-type'],\n 'filename': response.headers['content-disposition'].split('=')[1],\n })).then(({payload, mime_type, filename}) => {\n const url = window.URL.createObjectURL(new Blob([payload], {type: mime_type}));\n const link = document.createElement('a');\n link.href = url;\n link.target = \"_blank\";\n link.download = filename;\n document.body.appendChild(link);\n link.click()\n link.parentNode.removeChild(link)\n }).catch(error => {\n setError(i18n.t(\"mammt.networkError\") + error);\n })\n }\n\n const handleDateStartChange = d => {\n const som = dayjs(d).startOf('day');\n if(som.isAfter(dateEnd))\n setDateEnd(som.endOf('day'));\n setDateStart(som);\n }\n \n const handleDateEndChange = d => {\n const eom = dayjs(d).endOf('day');\n if(eom.isBefore(dateStart))\n setDateStart(eom.startOf('day'));\n setDateEnd(eom);\n }\n\n return \n \n \n \n\n \n {i18n.t(\"mammt.orders\")}\n \n \n { \n user_profile.serviceTags.includes('mammt') ?\n \n \n \n {\n handleDateStartChange(d);\n }\n }\n InputAdornmentProps={{ position: \"start\" }}\n />\n \n \n \n \n {\n handleDateEndChange(d);\n }\n }\n InputAdornmentProps={{ position: \"start\" }}\n />\n \n \n \n { false &&\n\n \n \n {i18n.t(\"mammt.fileFormat\")}\n setFormat(e.target.value)} \n value={fileFormat}\n > \n Excel XLSX\n \n \n \n }\n \n \n {i18n.t(\"mammt.download\")}\n \n \n \n : \n \n \n \n {i18n.t(\"mammt.insufficientPermissions\")}\n \n \n \n \n {i18n.t(\"mammt.missingPermission\")} \n \n \n \n \n }\n \n \n {errorMessage}\n \n \n \n \n} \n","import React, { useContext, useEffect, useState } from 'react';\nimport {Paper, Box, makeStyles, Button, Select, MenuItem, FormControl, InputLabel, Typography, TextField, Grid, Snackbar, FormControlLabel, Checkbox} from '@material-ui/core';\nimport { it } from \"date-fns/locale\";\nimport axios from \"axios\";\nimport dayjs from 'dayjs';\nimport {store} from '../store';\nimport { Alert, Autocomplete } from '@material-ui/lab';\nimport { FormProvider, useForm, Controller, useWatch } from 'react-hook-form';\nimport { ChangePageTitle, is_location_disabled } from \"../utils\";\nimport { yupResolver } from '@hookform/resolvers/yup';\nimport * as yup from 'yup';\nimport { FormInput } from '../components/FormUtils';\nimport { UserSelAsync } from './Companies';\nimport useAxios from 'axios-hooks';\nimport _ from 'lodash';\nimport { LocationInput } from '../components/NewsForm';\nimport useSSE from '../sse';\nimport i18n from \"i18n-js\";\n\nconst utc = require('dayjs/plugin/utc');\ndayjs.extend(utc)\n\n\n/*\n [\n ['url', 'url']\n ]\n */\n\nconst useStyles = makeStyles(theme => ({\n paper: {\n margin: 20,\n padding: 20,\n },\n container: {\n padding: 10,\n }\n}));\n\nexport default () => {\n const schema = yup.object().shape({\n title: yup.string().nullable(false)\n .trim()\n .max(50, i18n.t(\"notifications.titleMax\"))\n .min(5, i18n.t(\"notifications.titleMin\")).required(),\n subtitle: yup.string().nullable(false)\n .trim()\n .max(50, i18n.t(\"notifications.subtitleMax\"))\n .nullable().notRequired(),\n broadcast: yup.bool(),\n message: yup.string().nullable(false)\n .trim()\n .max(200, i18n.t(\"notifications.messageMax\"))\n .required(i18n.t(\"notifications.messageRequired\")),\n topic: yup.string().nullable(false).required(i18n.t(\"notifications.channelRequired\")),\n broadcast: yup.bool(),\n /*\n url: yup.string().notRequired().nullable().when('url', {\n is: (value) => value?.length,\n then: yup.string().url(\"URL non valido\").transform((_, val) => val === \"\" ? null : val),\n }),\n */\n locations: yup.array().min(1),\n user: yup.object().when('broadcast', {\n is: false,\n then: yup.object().nullable(false).required(true)\n }) \n });\n const styles = useStyles();\n const {state} = useContext(store);\n const [errorMessage, setErrorMessage] = useState(null);\n const {user_profile, locations} = state;\n const [success, setSuccess] = useState(false);\n const [{data: notification_data, loading, error}] = useAxios({\n url: \"/api/appconfig/notification_topics\",\n method: \"GET\",\n });\n const {result: notification_topics} = notification_data || {result: []};\n const topics = _.map(notification_topics, n => ({label: n, value: n}));\n\n const filter_locations = () => {\n const loc_idx = _.keyBy(locations, \"_id\");\n if(!locations || !user_profile)\n return [];\n return _.filter(user_profile.locations, l => loc_idx[l].active);\n }\n \n const default_notification = {\n message: '',\n title: 'ULTRAAPP',\n subtitle: '',\n uids: null,\n broadcast: true,\n topic: notification_topics[0] || '',\n locations: filter_locations()\n };\n\n useEffect(() => {\n reset(default_notification);\n }, [locations, user_profile, notification_topics])\n\n \n const formMethods = useForm({\n defaultValues: default_notification,\n mode: \"onChange\",\n resolver: yupResolver(schema),\n });\n const {reset, errors, control, setValue, formState, handleSubmit} = formMethods;\n\n const broadcast = useWatch({control, name: 'broadcast'});\n\n useEffect(() => {\n console.log(\"Reset: \", default_notification)\n reset();\n }, [reset])\n\n const onSubmit = (data, e) => {\n setErrorMessage(null)\n setSuccess(false);\n console.log(\"DATA: \", data, e)\n\n axios.post('/api/notifications/send_notification', data).then(res => {\n setSuccess(true);\n reset();\n }).catch(err => {\n setErrorMessage(i18n.t(\"notification.error\"))\n })\n };\n\n const onError = (errors, e) => {\n console.log(\"ERR\", errors, e)\n setErrorMessage(`Errore: ${e}`)\n }\n\n const handleClose = () => {\n setSuccess(false);\n }\n\n return \n \n \n \n \n {i18n.t(\"notifications.pageTitle\")}\n \n \n \n \n \n \n \n \n \n \n \n \n \n { /* \n \n \n \n */}\n \n \n {!loading && notification_topics &&\n \n \n {\n _.map(notification_topics, (n, i) => \n {n})\n }\n \n }\n />\n }\n \n {/*\n \n \n \n setValue('broadcast', e.target.checked, {\n shouldValidate: false,\n shouldDirty: false,\n })\n }\n inputRef={ref} />\n }\n label={\"Manda a tutti\"}\n />}\n />\n \n \n { \n !broadcast &&\n \n {\n setValue('user', null)\n }}\n onChange={user => {\n setValue('user', [user]);\n }} />\n }\n />\n }\n \n */}\n \n \n \n Location\n \n { locations &&\n locations.map(l => \n (\n {l.name}\n ))\n }\n \n \n \n reset()}\n >\n RESET\n \n \n {i18n.t(\"notifications.send\")}\n \n \n \n \n \n {i18n.t(\"notifications.notificationSent\")}\n \n \n {errorMessage}\n \n \n \n \n} \n","import React, {createContext, useReducer} from 'react';\nimport dayjs from 'dayjs';\nimport _ from \"lodash\";\nimport axios from 'axios';\n\n// export const dayStart = (date, tz) => {\n// return dayjs(date).tz(tz).startOf(\"day\").toISOString();\n// }\n\nexport const dayKeyDate = (date, tz) => {\n return dayjs(date).tz(tz).format(\"YYYY-MM-DD\");\n}\n\n\nconst initialState = () => ({\n location: null,\n resource: null,\n date: null,\n bookings: {}, // start => booking\n bookingsByDay: {},\n selections: {},\n bulk: false\n});\n\nexport const bookingStore = createContext();\n\nconst _fetchBookings = async (resource, date) => {\n try {\n const res = await axios({\n url: `/api/resources/${resource._id}/bookings`,\n params: {\n limit: 0,\n start: date.startOf(\"isoweek\").toISOString(),\n end: date.endOf(\"isoweek\").toISOString(),\n active: true,\n confirmed_only: true\n }\n })\n return _.filter(res.data.data, v => !v.canceled);\n } catch (e) {\n console.warn(\"error fetching bookings\", e)\n }\n}\n\nexport const BookingProvider = ({ children }) => {\n\n const [state, dispatch] = useReducer((state, action) => {\n\n const mergeSelections = (selections, sels) => {\n const _selections = { ...selections };\n _(sels).forEach(({start, day}) => {\n _selections[day] = { ..._selections[day], [start]: 1 }\n })\n return _selections;\n }\n\n const deleteSelections = (selections, sels) => {\n const _selections = { ...selections };\n _(sels).forEach(({start, day}) => {\n // const day = dayStart(sel, state.resource.timezone)\n const daySels = { ..._selections[day] };\n delete daySels[start]\n _selections[day] = daySels;\n })\n return _selections;\n }\n\n switch (action.type) {\n case \"set_location\": {\n return { ...state, location: action.payload }\n }\n case \"set_resource\": {\n const resource = action.payload;\n return { ...state, resource, selections: {}, date: dayjs().tz(resource.tz) }\n }\n // case \"set_booking\": {\n // const b = action.payload;\n // const bookings = { ...state.bookings, [b.start]: b };\n // return { ...state, bookings };\n // }\n // case \"unset_booking\": {\n // const b = action.payload;\n // const bookings = { ...state.bookings }\n // bookings[b.start] = b\n // return { ...state, bookings };\n // }\n\n case \"set_bookings\": {\n \n const bookings = _.fromPairs(action.payload, b => [b.start, b]);\n // group by day\n const bookingsByDay = _.groupBy(action.payload, b => {\n return dayKeyDate(b.start, state.resource.timezone)\n });\n \n return { ...state, bookings, bookingsByDay }\n }\n\n case \"reset_selections\": {\n return { ...state, selections: {} }\n }\n case \"replace_selections\": {\n const sels = action.payload;\n return { ...state, selections: mergeSelections({}, sels) }\n }\n case \"set_selections\": {\n const sels = action.payload;\n const d = mergeSelections(state.selections, sels)\n console.log(\"$$ set_selections\", sels, d)\n return { ...state, selections: d }\n }\n case \"unset_selections\": {\n const sels = action.payload;\n return { ...state, selections: deleteSelections(state.selections, sels) }\n }\n case \"toggle_bulk\": {\n return { ...state, bulk: !state.bulk}\n }\n\n case \"set_date\":\n return { ...state, date: action.payload }\n default:\n console.warn(\"unknown action\", action.type)\n }\n return state;\n }, initialState());\n\n const { Provider } = bookingStore;\n\n return {\n (async () => {\n const bookings = await _fetchBookings(resource, date);\n dispatch({ type: \"set_bookings\", payload: bookings });\n })();\n }\n }}>{children}\n}","import React, {useContext, useState} from 'react'; \nimport {Button, Dialog, Grid, Paper} from \"@material-ui/core\";\nimport {bookingStore} from \"./context\";\nimport {useCache} from \"../../data/itemcache\";\nimport TextTruncate from \"react-text-truncate\";\nimport dayjs from \"dayjs\";\nimport axios from \"axios\";\nimport _ from \"lodash\";\nimport i18n from \"i18n-js\";\n\nexport const HandleBooking = ({ booking, onClose }) => {\n\n const { item: user } = useCache(\"/users\", booking && booking.booker_id)\n const { item: company } = useCache(\"/api/companies\", booking && booking.company_id)\n\n const { fetchBookings, state } = useContext(bookingStore);\n const { resource, date } = state;\n\n const [status, setStatus] = useState(\"none\"); // none | confim | deleting | success | error\n\n const full_name = user ? `${user.name} ${user.surname}` : \"-\";\n const company_name = company ? company.name : (user ? user.company : \"-\")\n \n const start = dayjs(booking.start).tz(resource.timezone).format(\"HH:mm\");\n const end = dayjs(booking.end).tz(resource.timezone).format(\"HH:mm\");\n\n const items = [\n { label: i18n.t(\"bookings.details.times\"), value: `${start} - ${end}` },\n { label: i18n.t(\"bookings.details.user\"), value: full_name },\n { label: i18n.t(\"bookings.details.company\"), value: company_name },\n { label: i18n.t(\"bookings.details.notes\"), value: booking.annotation },\n { label: i18n.t(\"bookings.details.price\"), value: `${booking.price / 100} ${booking.currency}` },\n { label: i18n.t(\"bookings.details.paid\"), value: booking.paid ? i18n.t(\"bookings.details.yes\") : i18n.t(\"bookings.details.no\") }];\n\n const onDelete = async () => {\n if (status === \"none\") {\n setStatus(\"confirm\")\n } else {\n setStatus(\"deleting\")\n try {\n await axios.post(\n \"/api/bookings/_actions/cancel\",\n { ids: [booking._id] })\n setStatus(\"success\")\n fetchBookings(resource, date)\n } catch (e) {\n setStatus(\"error\")\n }\n }\n }\n\n let msg = {\n none: i18n.t(\"bookings.details.none\"),\n confirm: i18n.t(\"bookings.details.confirm\"),\n deleting: i18n.t(\"bookings.details.deleting\"),\n success: i18n.t(\"bookings.details.success\"),\n error: i18n.t(\"bookings.details.error\")\n }[status];\n\n return \n \n \n {items.map(({ label, value }) => {\n return \n \n {label}\n \n \n {value}\n \n \n })}\n \n\n \n \n {i18n.t(\"bookings.details.close\")}\n \n {i18n.t(\"bookings.details.delete\")}\n \n \n \n \n \n \n {msg}\n \n \n \n \n \n}\n\nexport const BookInfo = ({ booking, truncate=1 }={}) => {\n\n const { item: user } = useCache(\"/users\", booking && booking.booker_id)\n const { item: company } = useCache(\"/api/companies\", booking && booking.company_id)\n\n const displayName = () => {\n if (company && company.name)\n return company.name;\n if (user)\n return (user.company || `${user.name} ${user.surname}`)\n if (booking.annotation)\n return booking.annotation;\n return \"Loading...\";\n\n }\n\n return \n\n}","import React, {} from 'react';\nimport {Box, Typography} from \"@material-ui/core\"\nimport _ from 'lodash';\n\nexport const DayHours = ({ date, start_offset, end_offset, slotSize }) => {\n\n return \n \n {_.range(start_offset, end_offset, slotSize).map(slot => {\n const dayStart = date.startOf(\"day\")\n return \n \n {dayStart.add(slot, \"minute\").format(\"HH:mm\")}\n \n \n })\n }\n \n}","import React, { useContext, useEffect, useMemo, useRef, useState } from \"react\";\nimport dayjs from \"dayjs\";\nimport { makeStyles, Box, Typography } from \"@material-ui/core\";\nimport TextTruncate from \"react-text-truncate\";\nimport { useCache } from \"../../data/itemcache\";\nimport { HandleBooking, BookInfo } from \"./Details\"\nimport { bookingStore } from \"./context\"\nimport { DayHours } from \"./DayHours\";\nimport _ from \"lodash\";\n\n\nconst _t = () => new Date().getTime();\n\n/**\n * @typedef {\n * start: string,\n * open: boolean,\n * booking: {}\n * } Slot\n * \n * @typedef {\n * day: dayjs.Dayjs,\n * slots: [Slot],\n * selections: [boolean]\n * dispatch: function\n * \n * } Props\n* @type React.FunctionComponent\n */\nconst DayCol = ({\n day, slots, selections, dispatch\n} = {}) => {\n const [selectedBooking, setSelectedBooking] = useState(null);\n const styles = useStyles()\n\n const wholeDayBook = () => {\n const whole = _.isEqual(_.keys(selections).sort(), _.map(slots, slot => slot.start).sort());\n\n if(_.some(slots, (slot) => slot.booking) && !whole)\n return;\n\n dispatch({type: (whole ? \"unset_selections\" : \"set_selections\"), payload: _.map(slots, (slot) => {return {\"start\": slot.start, \"day\": slot.day_key}})});\n }\n\n\n const slotStyle = (slot) => {\n if (slot.booking) {\n return styles.booked\n }\n if (selections[slot.start]) {\n return styles.selected\n }\n return \"\"\n }\n\n const slotClick = (slot) => {\n if (slot.booking) {\n setSelectedBooking(slot.booking);\n } else {\n dispatch({\n type: selections[slot.start] ? \"unset_selections\" : \"set_selections\",\n payload: [{start: slot.start, day: slot.day_key}]\n })\n }\n }\n\n return \n \n \n {dayjs(day).format(\"ddd\")}\n \n {dayjs(day).format(\"D/M/YY\")}\n \n \n {\n _.map(slots, (slot) =>\n slotClick(slot)}\n >\n {slot.booking && \n \n }\n )\n }\n {selectedBooking != null && setSelectedBooking(null)} />}\n \n}\n\n\n/**\n* @typedef {{\n* height: number\n* slotSize: number,\n* openings: [[number, number]]\n* start_offset: number\n* end_offset: number\n* }} Props\n* @type React.FunctionComponent\n*/\nexport const WeekTable = ({\n height,\n slotSize = 60,\n openings = [[8 * 60, 24 * 60]],\n start_offset = 8 * 60,\n end_offset = 24 * 60, } = {}) => {\n\n //const t0 = _t();\n\n // const styles = useStyles();\n const { state, dispatch } = useContext(bookingStore);\n const { date, bookingsByDay, selections, resource } = state;\n\n const days = useMemo(() => {\n const startDate = date.startOf(\"isoWeek\");\n return _.range(0, 7).map(x => {\n const day = startDate.add(x, \"day\");\n const day_key = day.format(\"YYYY-MM-DD\")\n\n return {\n day_key,\n bookings: bookingsByDay[day_key] || [],\n // selections: daySels\n }\n });\n }, [date, bookingsByDay])\n\n\n const slotTable = useMemo(() => {\n\n const table = days.map(v => {\n const slots = _.range(start_offset, end_offset, slotSize).map(slot => ({\n start: dayjs(v.day_key).add(slot, \"minute\").format(\"HH:mm\"), // questo è valore indipendente dalla tz \n day_key: v.day_key,\n open: false,\n booking: null\n }));\n\n for (const [start, end] of openings) {\n for (let t = start; t < end; t += slotSize) {\n const i = Math.round((t - start_offset) / slotSize);\n slots[i].open = true;\n }\n }\n\n // set bookings\n for (const b of v.bookings) {\n const start = dayjs(b.start).tz(resource.timezone);\n const end = dayjs(b.end).tz(resource.timezone);\n const t0 = start.hour() * 60 + start.minute()\n const t1 = (end.hour()===0?24:end.hour()) * 60 + end.minute()\n // console.log(\"$$ bookings build\", resource.timezone, start.hour(), start.format(\"HH:mm\"), t0, t1)\n for (let t = t0; t < t1; t += slotSize) {\n const i = Math.round((t - start_offset) / slotSize);\n // console.log(\"$$ i \", i)\n try {\n slots[i].booking = b;\n }\n catch (e) {\n console.log(\"$$ invalid booking\", b)\n }\n }\n }\n return slots;\n });\n return table;\n }, [days]);\n\n // drag selection, disabled\n // const onSelectionChange = (box) => {\n // rects.forEach(r => {\n // if (boxesIntersect(box, r.rect)) {\n // }\n // })\n // }\n\n // const { DragSelection } = useSelectionContainer({\n // onSelectionChange,\n // eventsElement: document.getElementsByClassName(\"select-root\")[0],\n // })\n\n const rects = useRef([]).current;\n useEffect(() => {\n const elsel = document.getElementsByClassName(\"selectable\");\n\n for (let i = 0; i < elsel.length; i++) {\n rects.push({\n rect: elsel[i].getBoundingClientRect(),\n day: elsel[i].getAttribute(\"data-ay\")\n });\n }\n }, [resource, date]);\n\n const emptyRef = useRef({}).current;\n\n //console.log(\"WEEK COMP: \", _t() - t0)\n\n return \n {/**/}\n \n {days.map((v, idx) => {\n const dk = v.day_key;\n return \n })}\n \n}\n\n\nconst useStyles = makeStyles(themes => ({\n\n cell: {\n margin: 1,\n backgroundColor: \"#A0E7B3\"\n },\n\n cellHeader: {\n backgroundColor: \"#E3C63B\",\n textAlign: \"center\",\n baseline: \"center\"\n },\n\n booked: {\n backgroundColor: \"#FFBAB1\"\n },\n\n\n booked_selected: {\n backgroundColor: \"#ff7373\"\n },\n\n selected: {\n backgroundColor: \"#FFEA85\"\n },\n\n}))","\nimport React, { useContext, useState } from 'react';\nimport { makeStyles, Box, List, ListItem, Typography } from \"@material-ui/core\";\nimport { bookingStore, dayKeyDate } from \"./context\";\nimport { BookInfo, HandleBooking } from \"./Details\";\nimport _ from \"lodash\";\nimport dayjs from \"dayjs\";\n\n/**\n * @param {string} s\n * @returns {[number, number]}\n */\nconst parseHour = s => {\n const toks = s.split(\":\")\n return [parseInt(toks[0]), parseInt(toks[1])]\n}\n\n/**\n * make e new dayjs object with hour set\n * @param {string} s\n * @returns {dayjs.Dayjs}\n */\nconst setHour = (day, s) => {\n const [hh, mm] = parseHour(s);\n return day.add(hh, \"hour\").add(mm, \"minute\").format(\"HH:mm\")\n}\n\n\n/**\n* @typedef {{\n* height: number\n* slotSize: number,\n* openings: [[number, number]]\n* start_offset: number\n* end_offset: number\n* }} Props\n* @type React.FunctionComponent\n*/\nexport const WeekSlots = ({\n height\n} = {}) => {\n\n const [selectedBooking, setSelectedBooking] = useState(null);\n const { state, dispatch } = useContext(bookingStore);\n const { resource, bookingsByDay, date, selections } = state;\n const styles = useStyles();\n const week_start = dayjs(date).tz(state.resource.timezone).startOf(\"isoweek\");\n const slots = resource.slots\n\n const wholeDayBook = (day) => {\n const key = dayKeyDate(day, state.resource.timezone);\n const norm_slots = _.map(slots, function(slot){\n return {start: setHour(day, slot.start), day: key}\n });\n console.log(\"$$ norm_slots\", norm_slots)\n const whole = _.isEqual(_.keys(selections[key]), norm_slots);\n\n if(_.some(slots, (slot) => slot.booking) && !whole)\n return;\n\n dispatch({type: (whole ? \"unset_selections\" : \"set_selections\"), payload: norm_slots});\n }\n\n\n const getSelection = (day, start) => {\n const daySels = selections[day] || {};\n return daySels[start];\n }\n\n const slotStyle = (day, start) => {\n const full = false;\n if (full) {\n return styles.booked;\n }\n if (getSelection(day, start)) {\n return styles.selected;\n }\n return \"\"\n }\n\n const slotClick = (day, start) => {\n const full = false;\n if (!full) {\n dispatch({\n type: getSelection(day, start) ? \"unset_selections\" : \"set_selections\",\n payload: [{start: start, day: day}]\n })\n }\n };\n\n\n\n const bookingClick = (evt, b) => {\n setSelectedBooking(b)\n evt.stopPropagation();\n }\n\n \n const BookList = ({ start: slotStart, end: slotEnd, day: day}) => {\n let bookings = bookingsByDay[day];\n const _slotStart = dayjs.tz(day+\"T\"+slotStart, state.resource.timezone)\n const _slotEnd = dayjs.tz(day+\"T\"+slotEnd, state.resource.timezone)\n \n bookings = _.filter(bookings, b => {\n const start = dayjs(b.start);\n const end = dayjs(b.end);\n return start.isBefore(_slotEnd) && end.isAfter(_slotStart);\n })\n return \n {_.map(bookings, b => {\n return bookingClick(evt, b)}>\n \n \n })}\n \n }\n\n return \n {_.range(0, 7).map(i => {\n const day = week_start.add(i, \"day\")\n const dk = dayKeyDate(day)\n return \n wholeDayBook(day)}\n flex=\"0\" className={[styles.cell, styles.cellHeader].join(' ')}>\n \n {day.format(\"ddd\")}\n \n {day.format(\"D/M/YY\")}\n \n \n {_.map(slots, ({ start, end }) => {\n const _start = setHour(day, start);\n const _end = setHour(day, end);\n return { slotClick(dk, _start) }}>\n \n {`${start}-${end}`}\n \n \n \n \n \n })}\n\n \n })}\n\n {selectedBooking != null && setSelectedBooking(null)} />}\n\n \n}\n\n\nconst useStyles = makeStyles(themes => ({\n\n cell: {\n margin: 1,\n width: \"100%\",\n backgroundColor: \"#A0E7B3\"\n },\n\n cellHeader: {\n backgroundColor: \"#E3C63B\",\n textAlign: \"center\",\n baseline: \"center\"\n },\n\n booked: {\n backgroundColor: \"#FFBAB1\"\n },\n\n\n booked_selected: {\n backgroundColor: \"#ff7373\"\n },\n\n selected: {\n backgroundColor: \"#FFEA85\"\n },\n\n}))","import React, { useContext, useEffect, useMemo, useState, useRef } from \"react\";\nimport {\n Box, Button, CircularProgress, Grid, List, ListItem, ListItemText,\n makeStyles, MenuItem, Paper, Select, TextField, Typography, Checkbox, \n} from \"@material-ui/core\";\nimport Alert from '@material-ui/lab/Alert';\nimport { KeyboardDatePicker, MuiPickersUtilsProvider } from '@material-ui/pickers';\nimport DateFnsUtils from '@date-io/date-fns';\nimport { it } from \"date-fns/locale\";\n// import \"react-big-calendar/lib/css/react-big-calendar.css\";\n\nimport dayjs from \"dayjs\";\nimport _ from \"lodash\";\nimport useAxios from \"axios-hooks\";\nimport axios from \"axios\";\nimport { CompanySelAsync, UserSelAsync } from \"./Companies\"\nimport { WeekTable } from \"./BookingsComponents/WeekTable\";\nimport { WeekSlots } from \"./BookingsComponents/WeekSlots\";\nimport { ChangePageTitle, startOfWeek } from \"../utils\"\nimport { bookingStore, BookingProvider, dayStart } from \"./BookingsComponents/context\"\nimport Popup from 'reactjs-popup';\nimport 'reactjs-popup/dist/index.css';\nimport {store} from \"../store\"\nimport { AlertTitle } from \"@material-ui/lab\";\nimport useSSE from \"../sse\";\nimport i18n from \"i18n-js\";\n\nvar minMax = require('dayjs/plugin/minMax')\ndayjs.extend(minMax)\nvar utc = require('dayjs/plugin/utc')\ndayjs.extend(utc)\n\nconst slotEnd = (slotStart, resource) => {\n const _start = dayjs(slotStart);\n if (resource.book_unit === \"hour\") {\n return _start.add(60, \"minute\").toISOString();\n } else {\n for (const { start, end } of resource.slots) {\n if (_start.format(\"HH:mm\") === start) {\n const [h, m] = end.split(\":\").map(x => parseInt(x))\n return _start.hour(h).minute(m).toISOString();\n }\n }\n }\n}\n\nconst findSlot = (d, resource) => {\n const dd = dayjs(d);\n\n if (resource.book_unit === \"hour\") \n return dd;\n\n const getDaySlot = (day, end) => {\n const [h, m] = end.split(\":\").map(x => parseInt(x));\n return dayjs(day).hour(h).minute(m);\n }\n\n const {slots} = resource;\n const lastSlot = slots.at(-1);\n const lastDay = getDaySlot(dd, lastSlot.end);\n\n if(dd.isSameOrAfter(lastDay))\n return lastDay;\n\n const idx = _.sortedLastIndexBy(resource.slots, \n true,\n (slot) => {\n const {start, end} = slot;\n return getDaySlot(dd, start).isSameOrBefore(dd);\n });\n\n return getDaySlot(dd, resource.slots[Math.nax(idx, 0)].end)\n}\n\nconst BookingControl = ({ } = {}) => {\n\n const { state, dispatch, fetchBookings } = useContext(bookingStore);\n const { selections, resource, date} = state;\n const [currentCompany, setCurrentCompany] = useState(null);\n const [annotation, setAnnotation] = useState(\"\");\n const [savingState, setSavingState] = useState(\"none\") // saving | error | done\n\n const temp = []; // [{start in dayjs, end in dayjs}] sorted(start)\n const flatsels = _(selections).values().map(sel => _.keys(sel)).flatMap().sort().value();\n\n _(selections).entries().forEach(([day_key, sel]) => {\n _.keys(sel).forEach(hour => {\n const last = temp.length - 1\n const start = dayjs.tz(day_key+\"T\"+hour, resource.timezone);\n const end = slotEnd(start, resource)\n if ( last >= 0){\n if (temp[last][1] == start.toISOString()){\n temp[last][1] = end\n } else if (temp[last][0] == end) {\n temp[last][0] = start.toISOString()\n } else {\n temp.push([start.toISOString(), end])\n }\n } else {\n temp.push([start.toISOString(), end])\n }\n })\n })\n\n const ranges = _.sortBy(temp, [function(o) {return o[0]}])\n // flatsels.forEach(sel => {\n // const last = ranges.length - 1;\n // const end = slotEnd(sel, resource);\n // if (last >= 0 && ranges[last][1] === sel) {\n // ranges[last][1] = end;\n // } else {\n // ranges.push([sel, end]);\n // }\n // })\n\n const resetSelection = () => {\n setCurrentCompany(null)\n setAnnotation(\"\")\n dispatch({ type: \"reset_selections\" })\n }\n\n const makeBookings = () => ranges.map(sel => {\n return {\n resource_id: resource._id,\n company_id: currentCompany,\n start: sel[0],\n end: sel[1],\n currency: resource.currency,\n annotation,\n confirmed: true,\n paid: false,\n bulk_price: state.bulk\n }\n })\n\n const [{ data: priceRes }] = useAxios({\n method: \"POST\",\n url: \"/api/bookings/_purchases/prices\",\n data: makeBookings()\n }, {\n manual: ranges.length === 0\n })\n\n // filtering out element[2]: that's the VAT%\n const price = (ranges.length && !state.bulk) ? _.sum(_.flatMap(\n _.map(priceRes, (element) => ([element[0], element[1]]))\n )) / 100 : 0;\n\n const saveBooking = async () => {\n setSavingState(\"saving\")\n const bookings = makeBookings();\n try {\n await axios.post(\"/api/bookings/_admin/add\", bookings);\n setSavingState(\"done\")\n setCurrentCompany(null)\n setAnnotation(\"\")\n resetSelection()\n fetchBookings(resource, date);\n setTimeout(() => setSavingState(\"none\"), 3000);\n } catch (e) {\n console.warn(e)\n setSavingState(\"error\")\n }\n\n }\n const canSave = ranges.length > 0 && (currentCompany || annotation);\n\n return \n \n {i18n.t(\"bookings.add\")}\n\n\n setCurrentCompany(null)}\n onChange={v => setCurrentCompany(v._id)}\n />\n\n setAnnotation(e.target.value)}\n fullWidth\n label={\"note\"} />\n\n \n { dispatch({type: \"toggle_bulk\"}) }}\n />{i18n.t(\"bookings.bulk\")}\n\n \n\n\n \n {ranges.map(([start, end]) => {\n const t1 = dayjs(start).tz(resource.timezone)\n const t2 = dayjs(end).tz(resource.timezone)\n return \n {t1.format(\"D/M/YY\")} {t1.format(\"HH:mm\")} - {t2.format(\"HH:mm\")} \n \n })}\n \n\n \n {i18n.t(\"bookings.total\")}: {`${parseInt(price)}.${parseInt(price*100%100)}`} {resource.currency}\n \n\n {savingState === \"saving\" && \n \n \n }{savingState === \"done\" &&\n {i18n.t(\"bookings.saved\")}\n } {savingState === \"error\" &&\n {i18n.t(\"bookings.errorSave\")}\n }\n\n \n \n saveBooking()}>\n {i18n.t(\"bookings.createBooking\")}\n \n \n {i18n.t(\"cancel\")}\n \n \n \n}\n\n\nconst useResources = (filtered=false) => {\n\n const { state: global_state } = useContext(store);\n const {user_profile} = global_state; \n \n const { state, dispatch } = useContext(bookingStore);\n const { location } = state;\n\n const [{ data: all_locations, error: loc_error, loading: loc_loading }] = useAxios({\n url: \"/api/tags/__all__/locations\",\n params: { limit: 0 }\n }, {\n useCache: false\n });\n\n\n const locations = useMemo(() => {\n if(filtered) \n return _.filter(all_locations, \n l => _.findIndex(user_profile.locations, lid => lid === l._id)>=0)\n else\n return all_locations;\n }, [filtered, all_locations])\n\n const [{ data: resources, error: res_error, loading: res_loading }] = useAxios({\n url: `/api/locations/${location && location._id}/resources`,\n params: { limit: 0 }\n }, {\n manual: !location,\n useCache: false\n });\n\n\n useEffect(() => {\n if (locations && locations.length) {\n setLocation(locations[0]._id);\n }\n }, [locations]);\n\n useEffect(() => {\n if (resources && resources.length) {\n setResource(resources[0]._id);\n }\n }, [resources]);\n\n\n const setLocation = loc_id => {\n for (let loc of locations) {\n if (loc._id === loc_id) {\n dispatch({ type: \"set_location\", payload: loc });\n break;\n }\n }\n }\n const setResource = res_id => {\n for (let res of resources) {\n if (res._id === res_id) {\n dispatch({ type: \"set_resource\", payload: res });\n break;\n }\n }\n }\n\n return {\n locations: locations, resources,\n setLocation, setResource,\n\n }\n}\n\nconst Bookings = () => {\n // useEffect(() => {\n // return () => {\n // for (const k of Object.keys(cache)) delete cache[k];\n // }\n // }, []);\n\n const styles = useStyles();\n const { state, dispatch, fetchBookings } = useContext(bookingStore);\n const { location, resource, date, bookingsByDay } = state;\n\n const { locations, resources, setLocation, setResource } = useResources(true);\n\n useEffect(() => {\n if (resource) fetchBookings(resource, date);\n }, [resource, date]);\n\n const changeWeek = dir => {\n dispatch({ type: \"set_date\", payload: date.add(dir, \"w\") })\n }\n\n const loaded = location && resource && date;\n\n // const prevDisabled = () => startOfWeek(resource.tz).isSameOrAfter(date.startOf(\"isoweek\"));\n const RangePopup = ({ resource, disabled, p, m, px, py, mx, my, children }) => {\n const [dateStart, handleDateStartChange] = useState(dayjs(resource.timezone).startOf('day'));\n const [dateEnd, handleDateEndChange] = useState(dayjs(resource.timezone).endOf('day'));\n const [errorState, setError] = useState(null);\n\n const t1 = dayjs(dateStart).startOf('day').add(8, 'hour');\n const t2 = dayjs(dateEnd).endOf('day');\n\n const ref = useRef();\n const close = () => ref.current.close();\n const open = () => ref.current.open();\n\n const bookDays = () => {\n const {openings } = resource;\n let sels = [];\n\n for(let d = dayjs(dateStart); d.isBefore(dayjs(dateEnd)); d = d.add(1, 'day').startOf('day')) {\n const day = (d.day() + 6) % 7 /* Sunday == 6, Monday == 0 */\n const {start, end} = openings.weekhours[day];\n const [sh, sm] = start.split(\":\").map(x => parseInt(x))\n const [eh, em] = end.split(\":\").map(x => parseInt(x))\n\n const dh_start = dayjs(d).hour(sh).minute(sm)\n const dh_end = dayjs(d).hour(eh).minute(em)\n const mstart = dayjs.max([dh_start, dayjs(dateStart)]);\n const mend = dayjs.min([dh_end, dayjs(dateEnd)])\n\n if (resource.book_unit === \"hour\") {\n let day_h = {}\n const dstring = d.startOf('day').toISOString();\n\n for(let h = mstart; h.isBefore(mend); h = h.add(60, 'minute')){\n const s = h.format(\"HH:mm\")\n const dk = h.format(\"YYYY-MM-DD\")\n sels = [...sels, {start:s, day: dk}]\n }\n } else {\n for (const { start, end } of resource.slots) {\n const [s_slot_h, s_slot_m] = start.split(\":\").map(x => parseInt(x))\n const [e_slot_h, e_slot_m] = end.split(\":\").map(x => parseInt(x))\n\n const s_day = dayjs(d).hour(s_slot_h).minute(s_slot_m);\n const e_day = dayjs(d).hour(e_slot_h).minute(e_slot_m);\n if(s_day.isSameOrAfter(mstart) && e_day.isSameOrBefore(mend)){\n const s = s_day.format(\"HH:mm\");\n const dk = s_day.format(\"YYYY-MM-DD\");\n sels = [...sels, {start: s, day: dk}]\n }\n }\n }\n }\n return sels;\n };\n\n\n const addRange = () => {\n const one_day = dayjs.duration({ 'days': 1 });\n const sels = []\n axios.get(`/api/bookings/check_avail/${resource._id}`, {\n params: {\n start: dayjs(dateStart).utc().valueOf(),\n end: dayjs(dateEnd).utc().valueOf()\n }\n }).then(res => {\n const { status, is_full, date_range } = res.data\n\n if (is_full)\n setError('Date invalide: ' + \n dayjs(date_range[0]).locale('it').format(\"D MMM YYYY\") + \" - \" +\n dayjs(date_range[1]).locale('it').format(\"D MMM YYYY\"));\n else {\n const bookdays = bookDays();\n close();\n dispatch({ type: \"set_selections\", payload: bookDays()});\n }\n }).catch(err => {\n setError(i18n.t(\"bookings.networkError\"), err)\n })\n }\n\n const reset = () => {\n setError(null);\n handleDateStartChange(dayjs().startOf('day'));\n handleDateEndChange(dayjs().endOf('day'));\n };\n\n return <>\n \n \n {state.bulk && \n {\n reset();\n open();\n }\n }\n disabled={disabled}>\n {i18n.t(\"bookings.periodPicker\")}\n \n }\n \n \n \n {i18n.t(\"bookings.periodDatePicker\")}\n\n \n \n {\n if(!isNaN(d * 1.0)) {\n handleDateStartChange(d);\n if (dayjs(d).startOf('day').isSameOrAfter(dateEnd))\n handleDateEndChange(dayjs(d).add(1, 'day').endOf('day'));\n }\n }\n }\n InputProps={{ readOnly: true }}\n InputAdornmentProps={{ position: \"start\" }}\n />\n \n \n \n \n {\n if(isNaN(d*1.0))\n return;\n\n const eod = findSlot(d, resource);\n\n if(dayjs(eod).isAfter(dateStart)) {\n handleDateEndChange(eod);\n }\n }\n }\n InputProps={{ readOnly: true }}\n InputAdornmentProps={{ position: \"start\" }}\n />\n \n \n \n {errorState && \n {i18n.t(\"bookings.error\")}{errorState}\n }\n \n \n \n {i18n.t(\"cancel\")}\n \n \n \n \n {i18n.t(\"bookings.reset\")}\n \n \n addRange(t1, t2)}\n color=\"primary\"\n >{i18n.t(\"bookings.select\")}\n \n \n \n \n >\n };\n\n return \n {!loaded && }\n\n {loaded &&\n \n \n \n \n \n changeWeek(-1)}>\n {i18n.t(\"bookings.prev\")}\n \n changeWeek(+1)}>{i18n.t(\"bookings.next\")}\n \n \n \n \n \n \n setLocation(target.value)}>\n {locations.map(l => {l.name} - {l.address.city})}\n \n \n \n setResource(target.value)}>\n {resources.map(r => {r.name})}\n \n \n \n \n \n {resource.book_unit === \"hour\" &&\n }\n {resource.book_unit === \"slot\" &&\n }\n \n \n \n \n \n \n \n }\n \n}\n\n\nexport default () => {\n const {dispatch: dispatch_state} = useContext(store)\n\n useEffect(() => {\n const timeout = setTimeout(() => {\n dispatch_state({type: 'set_last_seen', payload: 'bookings'});\n }, 5000)\n return () => { clearTimeout(timeout); }\n }, []);\n\n return \n \n \n \n \n};\n\nconst useStyles = makeStyles(theme => ({\n\n container: {\n height: \"100%\",\n },\n\n}));\n\n","import axios from 'axios';\nimport dayjs from 'dayjs';\nimport React, { useReducer } from 'react';\nimport _ from \"lodash\";\n\nvar utc = require('dayjs/plugin/utc')\ndayjs.extend(utc)\n\nconst initialState = {\n logged_in: undefined,\n jwt_token: undefined,\n user_profile: undefined,\n locations: undefined,\n updated: {\n 'news': new Date(0),\n 'bookings': new Date(0),\n 'purchases': new Date(0),\n 'users': new Date(0),\n },\n seen: {\n 'news': new Date(0),\n 'users': new Date(0),\n 'bookings': new Date(0),\n 'purchases': new Date(0),\n }\n}\n\nexport const store = React.createContext(initialState);\n\nconst { Provider } = store;\n\nconst update_server = (topic, ts) => {\n const ts_ms = ts.unix() * 1000;\n\n axios.put(`/api/seen/${topic}/${ts_ms}`)\n .then(console.info)\n .catch(console.error);\n}\n\nexport const StoreProvider = ({ children }) => {\n const [state, dispatch] = useReducer((state, action) => {\n console.log(\"action:\", action.type)\n switch (action.type) {\n case \"set_jwt_token\":\n const logged_in = action.payload !== null;\n return { ...state, jwt_token: action.payload, logged_in }\n case \"set_user_profile\":\n return { ...state, user_profile: action.payload }\n case \"set_locations_list\":\n return { ...state, locations: action.payload }\n case \"set_last_update\": {\n console.log(\"UPDATES \", action.payload)\n const {seen, updated} = _.merge({seen: state.seen, updated: state.updated}, action.payload);\n\n return { ...state, seen, updated};\n }\n\n case \"set_last_seen\": {\n const topic = action.payload;\n const ts = dayjs().utc();\n\n update_server(topic, ts);\n return { ...state, seen: {...state.seen, [topic] : ts}}\n }\n\n default:\n console.warn(\"unknown action:\", action)\n }\n return state;\n }, initialState);\n\n return {children}\n}\n\n","import React, { Fragment, useEffect, useState } from \"react\";\nimport dayjs from \"dayjs\";\n\nexport const stableSort = function (array, comparator) {\n const stabilizedThis = array.map((el, index) => [el, index]);\n stabilizedThis.sort((a, b) => {\n const order = comparator(a[0], b[0]);\n if (order !== 0) return order;\n return a[1] - b[1];\n });\n return stabilizedThis.map((el) => el[0]);\n}\n\n\nexport const ChangePageTitle = ({ pageTitle }) => {\n document.title = \"UltraBackoffice: \" + pageTitle;\n /*\n const [prevTitle, setPrevTitle] = useState(null);\n\n useEffect(() => {\n if(!prevTitle) {\n document.title = \"UltraSpazio: \" + pageTitle;\n setPrevTitle(document.title);\n }\n\n return () => {\n document.title = prevTitle;\n };\n },[pageTitle]);\n */\n\n return ;\n};\n\n\nexport const is_location_disabled = (location, allow_list) => {\n return !(location.active && allow_list.includes(location._id));\n}\n\n\n// end and start of the current week\nexport const startOfWeek = tz => dayjs().tz(tz).startOf(\"isoweek\");\nexport const endOfWeek = tz => dayjs().tz(tz).endOf(\"isoweek\");","import React, { useContext, useEffect, useState } from 'react';\nimport { Button, Dialog, Grid, makeStyles, Paper, TextField, Typography } from '@material-ui/core';\nimport { Autocomplete } from '@material-ui/lab';\nimport CompanyForm from \"../components/CompanyForm\";\nimport useAxios from 'axios-hooks';\nimport axios from 'axios';\nimport _ from \"lodash\";\nimport { AddCircleOutlineOutlined } from '@material-ui/icons';\nimport { useCompanyCache, clearCompanyCache } from \"../data/itemcache\";\nimport { store } from '../store';\nimport { ChangePageTitle } from '../utils';\nimport i18n from 'i18n-js';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: 40,\n },\n editCard: {\n padding: 20,\n width: \"100%\"\n }\n\n}));\n\nexport default () => {\n const styles = useStyles();\n\n return \n \n \n \n \n};\n\nexport const CompanyEditCreate = ({ \n company,\n allowEdit = true,\n onCompanyCreated = () => { }, \n onCancel }) => {\n \n const styles = useStyles();\n\n const [savingMessage, setSavingMessage] = useState(null);\n const [error, setError] = useState(false);\n const [currentCompany, setCurrentCompany] = useState(null);\n\n useEffect(() => {\n if (!error)\n return;\n const cancel = setTimeout(() => setError(false), 5000);\n return () => clearTimeout(cancel);\n }, [error]);\n\n useEffect(() => {\n setSavingMessage(null);\n }, [currentCompany]);\n\n // const [{ data: result }, refetch] = useAxios({\n // url: \"/api/companies\",\n // params: { skip: 0, limit: 0 }\n // });\n\n // const { data: companies } = result || { data: [] };\n\n const onSubmit = async (data) => {\n setError(false);\n setSavingMessage(i18n.t(\"companies.saving\"));\n try {\n let res;\n if (!data._id) {\n delete data._id;\n res = await axios.post(\"/api/companies\", data);\n\n } else {\n res = await axios.put(`/api/companies/${data._id}`, data);\n }\n\n setSavingMessage(i18n.t(\"companies.saved\"))\n onCompanyCreated(res.data.id);\n\n } catch (e) {\n setError(true);\n }\n }\n\n return \n \n {i18n.t(\"companies.title\")}\n \n \n\n {allowEdit && <>\n \n \n setCurrentCompany(company)} />\n \n \n setCurrentCompany(null)}>\n {i18n.t(\"companies.new\")} \n \n \n \n >\n }\n \n \n \n \n {error && {i18n.t(\"companies.savingError\")}}\n {savingMessage && {savingMessage}}\n \n \n}\n\nexport const UserSelAsync = ({\n value,\n enableNone = true,\n onClear = () => { },\n fullWidth = false,\n checkNotifications = false,\n onChange = () => { } }) => {\n\n const [user, setUser] = useState(value);\n const [input, setInput] = useState(\"\")\n\n const [{ data: usersRes, loading }] = useAxios({\n url: \"/users/_admin/search\",\n params: {\n fullText: input,\n include_uid: value,\n check_notifications: checkNotifications\n }\n })\n const users = _.keyBy((usersRes || {}).data, \"id\")\n\n const user_ids = _(users)\n .values()\n .sortBy(\"surname\")\n .sortBy(\"name\")\n .map(v => v.id)\n .value();\n\n const get_name = u => u.surname + (u.name ? \", \" + u.name : \"\") + \", \" + u.email;\n\n enableNone && user_ids.unshift(\"__none__\")\n\n // console.log(\"users: \", users)\n\n return <>\n {\n switch (oid) {\n case \"__none__\":\n return i18n.t(\"companies.noUser\")\n default:\n return get_name(users[oid] || {}) || \"\";\n }\n }}\n renderInput={({ ...params }) => {\n return \n }}\n\n onInputChange={(event, newInput, reason) => {\n if (reason == \"input\")\n setInput(newInput)\n }}\n\n onChange={(e, oid, reason) => {\n if (reason === \"clear\") {\n setUser(null)\n onClear()\n return;\n }\n\n switch (oid) {\n case \"\":\n case \"__none__\":\n setUser(null)\n onChange(null);\n break;\n default:\n const user = users[oid];\n if (user) {\n setUser(oid);\n onChange(user);\n } else\n console.log(\"not found\", oid)\n }\n }}\n />\n >\n}\n\nexport const CompanySelAsync = ({\n value,\n enableAdd,\n enableNone = true,\n enableAll = false,\n onClear = () => { },\n onChange = () => { },\n clearable = true,\n askAdd = () => { }, } = {}) => {\n\n const [showDialog, setShowDialog] = useState(false)\n const [currentId, setCurrentId] = useState(value)\n\n useEffect(() => {\n value != currentId && setCurrentId(value)\n }, [value]);\n //const currentId = value;\n\n const [input, setInput] = useState(\"\")\n const [{ data: companiesRes, loading }] = useAxios({\n url: \"/api/companies/_admin/search\",\n params: { text: input, include_uid: currentId }\n }, { useCache: false, manual: !input && (!currentId || currentId === \"__all__\")})\n\n // const { company } = useCompanyCache(currentId)\n const _data = [...(companiesRes || { data: [] }).data];\n // _data.push(company || { _id: currentId })\n\n const all_data = enableAll ? _data.concat({_id: '__all__'}) : _data;\n const companies = _.keyBy(all_data, \"_id\")\n\n const company_ids = _(companies)\n .values()\n .sortBy(\"name\")\n .map(v => v._id)\n .value();\n\n enableAdd && company_ids.unshift(\"__add__\")\n enableNone && company_ids.unshift(\"__none__\")\n enableAll && company_ids.unshift(\"__all__\")\n\n if (currentId && !companies[currentId]) return <>>\n\n const def_value = enableAll ? \"__all__\" : \"__none__\";\n\n return <>\n {\n switch (oid) {\n case \"__none__\":\n return i18n.t(\"companies.none\")\n case \"__all__\":\n return i18n.t(\"companies.all\")\n case \"__add__\":\n return i18n.t(\"companies.createNew\");\n default:\n return (companies[oid] || {}).name || \"\";\n }\n }}\n renderInput={({ ...params }) => {\n return \n }}\n\n onInputChange={(event, newInput, reason) => {\n if (reason == \"input\")\n setInput(newInput)\n }}\n\n onChange={(e, oid, reason) => {\n if (reason === \"clear\") {\n setCurrentId(value)\n onClear()\n return;\n }\n\n console.log(\"OID: \", oid)\n switch (oid) {\n case \"\":\n case \"__none__\":\n setCurrentId(null)\n onChange(null);\n break;\n case \"__all__\":\n setCurrentId(\"__all__\")\n onChange({_id: \"__all__\"});\n break\n case \"__add__\":\n setShowDialog(true);\n break;\n default:\n const company = companies[oid];\n if (company) {\n setCurrentId(oid)\n onChange(companies[oid]);\n } else\n console.log(\"not found\", oid)\n }\n }}\n />\n setShowDialog(false)}>\n setShowDialog(false)}\n onCompanyCreated={id => {\n setShowDialog(false);\n setCurrentId(id);\n }} />\n \n >\n}","import React from \"react\";\nimport { TextField } from '@material-ui/core';\nimport { Controller, useFormContext } from 'react-hook-form';\n\nexport const FormInput = (props) => {\n const { control } = useFormContext();\n\n return (\n \n );\n}\n\n","import {useEffect, useState} from 'react';\nimport axios from 'axios';\n\nconst _defaultCache = {};\n\nexport const clearCache = id => {\n delete _defaultCache[id]; \n} \n\nexport const useCache = (baseurl, uid, cache=null) => {\n\n const _cache = cache || _defaultCache;\n\n const [item, setItem] = useState(null);\n const [error, setError] = useState(null)\n\n // stub to make await work the data is not a promise\n const maybeAsync = async (data) => {\n return data;\n }\n\n useEffect(() => {\n let running = true;\n const workAsync = async () => {\n\n if (uid in _cache) {\n try {\n // this works sinc eyou can await multiple times \n // the same promise.\n if(running)\n setItem(await maybeAsync(_cache[uid]))\n } catch (e) {\n if(running)\n setError(e)\n }\n } else {\n try {\n _cache[uid] = axios.get(`${baseurl}/${uid}`).then(res => res.data);\n const res = _cache[uid];\n _cache[uid] = (await res);\n if(running)\n setItem(_cache[uid])\n } catch (e) {\n if(running)\n setError(e)\n }\n }\n };\n\n if (uid) {\n workAsync();\n }\n\n return () => (running = false);\n }, [uid, baseurl]);\n\n return { item, error }\n}\n\nexport const useCacheL = (baseurl, uids) => {\n\n const [item, setItem] = useState(null);\n const [error, setError] = useState(null)\n\n // stub to make await work if the data is not a promise\n const maybeAsync = async (data) => {\n return data;\n }\n\n useEffect(() => {\n let running = true;\n const workAsync = () => {\n uids.forEach(async (uid) => {\n if(!running)\n return;\n\n if (uid in _defaultCache) {\n try {\n const it = await maybeAsync(_defaultCache[uid]);\n if(running)\n setItem((items) => [].concat(items || [], it))\n } catch (e) {\n if(running)\n setError(e)\n }\n } else {\n try {\n _defaultCache[uid] = axios.get(`${baseurl}/${uid}`).then(res => res.data);\n const res = _defaultCache[uid];\n _defaultCache[uid] = (await res);\n\n if(running)\n setItem(items => [].concat(items || [], _defaultCache[uid]))\n } catch (e) {\n if(running)\n setError(e)\n }\n }\n })\n };\n\n if (uids) {\n workAsync();\n }\n\n return (() => { running = false; });\n\n }, [uids, baseurl]);\n\n return { item, error }\n}\n\n\nconst _companyCache = {};\n\nexport const clearCompanyCache = id => {\n delete _companyCache[id];\n}\n\nexport const useCompanyCache = (uid) => {\n const {item, error} = useCache(\"/api/companies\", uid, _companyCache);\n return {company: item, error}\n}\n\nconst _userCache = {}\n\nexport const clearUserCache = id => {\n delete _userCache[id];\n}\n\nexport const useUserCache = (uid) => {\n const {item, error} = useCache(\"/users\", uid, _userCache);\n return {user: item, error}\n}","import i18n from 'i18n-js';\n\n\ni18n.translations = {\n \"en\": {\n test: \"pippo\",\n cancel: \"cancel\",\n save: \"save\",\n close: \"Close\",\n addNews: \"Add news\",\n \n login: {\n \"welcome\": \"WELCOME\",\n \"credentials_error\": \"wrong username or password\"\n },\n navbar: {\n \"home\": \"Home\",\n \"bookings\": \"Bookings\",\n \"services\": \"Services\",\n \"payments\": \"Payments\",\n \"companies\": \"Companies\",\n \"users\": \"Users\",\n \"mammt\": \"Mammt\",\n \"notifications\": \"Notifications\",\n \"news\": \"News\"\n },\n services: {\n \"details\": \"Details\",\n \"buyDate\": \"Purchase date\",\n \"requestText\": \"Request text\",\n \"history\": \"History\",\n \"save\": \"Save changes\",\n \"dateClosed\": \"Closed on\",\n \"confirmPayment\": \"Confirm Payment\",\n \"refuseCanc\": \"Refuse Cancel\",\n \"acceptCanc\": \"Accept Cancel\",\n \"terminate\": \"Terminate Service\",\n \"status\": \"Status\",\n \"date\": \"Date\",\n \"service\": \"Service\",\n \"buyer\": \"Buyer\",\n \"paid\": \"Paid\",\n \"price\": \"Price\",\n \"searchUsers\": \"Search by Users\",\n \"dateFrom\": \"From (month and year)\",\n \"dateTo\": \"To (month and year)\",\n statuses:{\n \"active\": \"Active\",\n \"closed\": \"Closed\",\n \"cancelReq\": \"Cancel Requested\",\n \"cancelRefused\": \"Cancel Refused\",\n \"canceled\": \"Canceled\"\n },\n events: {\n \"paid\": \"Paid\",\n \"created\": \"Service Requested\",\n \"active\": \"In progress\",\n \"closed\": \"Completed\",\n \"cancelReq\": \"Cancel requested\",\n \"cancRefused\": \"Cancel refused\",\n \"canceled\": \"Canceled\",\n\n }\n },\n companies: {\n \"title\": \"Manage Companies\",\n \"new\": \"New\",\n \"saving\": \"saving, please wait\",\n \"saved\": \"saved\",\n \"savingError\": \"error saving, please retry later\",\n \"noUser\": \"none\",\n \"none\": \"none\",\n \"all\": \"all\",\n \"createNew\": \"create new\",\n \"companies\": \"Companies\",\n \"users\": \"Users\",\n },\n companyForm: {\n \"private\": \"Private\",\n \"active\": \"Active\",\n \"country\": \"Country\",\n \"province\": \"Province\",\n \"zipcode\": \"Zipcode\",\n \"city\": \"City\",\n \"street\": \"Street/Square\",\n \"email\": \"Email/PEC\",\n \"tel\": \"Telephone\",\n \"code_uniq\": \"Unique code\",\n \"fiscalcode\": \"Fiscal Code\",\n \"name\": \"Name\"\n },\n users: {\n \"verified\": \"Verified\",\n \"ontab\": \"company tab\",\n \"ferrucci\" : \"ferrucci\",\n \"pay_admin\": \"payment admin\",\n \"db_admin\": \"database admin\",\n \"mammt_admin\": \"mammt admin\",\n \"pendingReq\": \"Pending verification\",\n \"waitingApproval\": \"Billing information to be approved\",\n \"pic\": \"Pic\",\n \"name\": \"Name\",\n \"email\": \"Email\",\n \"company\": \"Company/Billing\",\n \"options\": \"Options\",\n \"actions\": \"Actions\",\n },\n notifications: {\n \"pageTitle\": \"Send notification\",\n \"title\": \"Title\",\n \"subtitle\": \"Subtitle (optional)\",\n \"message\": \"Notification message\",\n \"titleMax\": \"Maximum 40 characters\",\n \"titleMin\": \"Minimum 5 characters\",\n \"subtitleMax\": \"Maximum 50 characters\",\n \"messageMax\": \"Maximum 200 characters\",\n \"messageRequired\": \"Please write a message\",\n \"channelRequired\": \"Please choose a channel\",\n \"notificationSent\": \"Notification sent!\",\n \"error\": \"Error while sending notification\",\n \"send\": \"Send\",\n },\n news: {\n headCells: {\n \"published\": \"Published\",\n \"pubDate\": \"Publication date\",\n \"image\": \"Image\",\n \"title\": \"Title\",\n \"preview\": \"Preview\",\n \"text\": \"Text\",\n \"link\": \"Link\"\n },\n \"newPost\": \"New Post\",\n \"errorStatus\": \"Error while updating the status\",\n \"403\": \"Permission Denied\",\n \"saveError\": \"Error while saving\",\n \"edit\": \"edit\",\n \"saving\": \"Saving, please wait\",\n newsForm: {\n \"titleReq\": \"Please write a title\",\n \"urlFail\": \"Invalid URL\",\n \"messageMax\": \"Maximum 300 characters\",\n \"messageMin\": \"Maximum 1 character\",\n \"messageRequired\": \"Please write a message\",\n \"imgReq\": \"Please pick an image\",\n \"atLeastOne\": \"Insert at least one\",\n \"unsaved\": \"Unsaved post\",\n \"unsavedConfirm\": \"Unsaved post, close?\",\n \"ignoreClose\": \"Ignore and close\",\n \"saveClose\": \"Save and close\",\n \"title\": \"Title\",\n \"link\": \"Link\",\n \"imgTitle\": \"Load image\",\n \"imgText\": \"Click or drag an image here\",\n \"summary\": \"Short summary\",\n \"text\": \"Text\",\n \"publishNow\": \"Publish now\",\n \"userNotify\": \"Notify users\",\n \"notifyMsg\": \"Notification message\"\n }\n },\n payments: {\n \"dateFrom\": \"From (month and year)\",\n \"dateTo\": \"To (month and year)\",\n \"download\": \"Download data\",\n \"fileFormat\": \"File format: \",\n \"networkError\": \"Network error: \",\n \"insufficientPermissions\": \"Insufficient permissions.\",\n \"missingPermission\": \"You do not have permission to view this page.\",\n },\n mammt: {\n \"orders\": \"MAMMT\",\n \"networkError\": \"Network error: \",\n \"insufficientPermissions\": \"Insufficient permissions.\",\n \"missingPermission\": \"You do not have permission to view this page.\",\n \"dateFrom\": \"From (month and year)\",\n \"dateTo\": \"To (month and year)\",\n \"download\": \"Download data\",\n \"fileFormat\": \"File format: \",\n },\n bookings: {\n \"add\": \"Add booking\",\n \"bulk\": \"Bulk booking\",\n \"saved\": \"Booking saved\",\n \"errorSave\": \"Errore while saving\",\n \"createBooking\": \"Create Booking\",\n \"networkError\": \"Network Error: \",\n \"periodPicker\": \"Pick interval\",\n \"periodDatePicker\": \"Pick a date interval\",\n \"dateFrom\": \"From (month and year)\",\n \"dateTo\": \"To (month and year)\",\n \"error\": \"Error\",\n \"reset\": \"Reset\",\n \"select\": \"Select\",\n \"prev\": \"Prev\",\n \"next\": \"Next\",\n \"total\": \"Total\",\n details: {\n \"times\": \"Times\",\n \"user\": \"User\",\n \"company\": \"Company\",\n \"notes\": \"Notes\",\n \"price\": \"Price\",\n \"paid\": \"Paid\",\n \"yes\": \"yes\",\n \"no\": \"no\",\n \"none\": \"No message\",\n \"confirm\": \"Press delete again to confirm the deletion\",\n \"deleting\": \"Deleting\",\n \"success\": \"Booking deleted\",\n \"error\": \"Oops, something went wrong. Try again later\",\n \"close\": \"close\",\n \"delete\": \"delete\",\n }\n }\n },\n \"it\": {\n test: \"prova\",\n cancel: \"annulla\",\n save: \"salva\",\n login: {\n \"welcome\": \"BENVENUTO\",\n \"credentials_error\": \"username o password errati\"\n },\n navbar: {\n \"home\": \"Home\",\n \"bookings\": \"Prenotazioni\",\n \"services\": \"Servizi\",\n \"payments\": \"Pagamenti\",\n \"companies\": \"Aziende\",\n \"users\": \"Utenti\",\n \"mammt\": \"Mammt\",\n \"notifications\": \"Notifiche\",\n \"news\": \"Notizie\"\n },\n services: {\n \"status\": \"Stato\",\n \"date\": \"Data\",\n \"service\": \"Servizio\",\n \"buyer\": \"Acquirente\",\n \"paid\": \"Pagato\",\n \"price\": \"Prezzo\",\n \"searchUsers\": \"Cerca per utenti\",\n \"dateFrom\": \"Da (mese e anno)\",\n \"dateTo\": \"A (mese e anno)\",\n },\n companies: {\n \"title\": \"Gestione Aziende\",\n \"new\": \"Nuova\",\n \"saving\": \"sto salvando, per favore aspettare\",\n \"saved\": \"salvata\",\n \"savingError\": \"erore nel salvataggio, riprovare più tardi\",\n \"noUser\": \"nessuno\",\n \"none\": \"nessuna\",\n \"all\": \"tutte\",\n \"createNew\": \"crea nuova\",\n \"companies\": \"Aziende\",\n \"users\": \"Utenti\",\n },\n companyForm: {\n \"private\": \"Privato\",\n \"active\": \"Attiva\",\n \"country\": \"Nazione\",\n \"province\": \"Provincia\",\n \"zipcode\": \"Codice Fiscale\",\n \"city\": \"Città \",\n \"street\": \"Via / Piazza\",\n \"email\": \"Email/PEC\",\n \"tel\": \"Telefono\",\n \"code_uniq\": \"Codice Unico\",\n \"fiscalcode\": \"Codice Fiscale\",\n \"name\": \"Ragione Sociale / Nome\"\n },\n }\n}\n\ni18n.fallbacks = true;","// 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 window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\n\nReactDOM.render(\n \n \n ,\n document.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"],"sourceRoot":""}
Da profilo: {rowUser.company || \"non indicata\"}