{"version":3,"file":"application-fN-PWdMA.js","sources":["../../../app/frontend/src/sentry.ts","../../../app/frontend/src/bugsnag.ts","../../../app/frontend/src/components/hooks/useWindowSize.ts","../../../app/frontend/src/utils.ts","../../../app/frontend/images/logos/logo-algolia.svg","../../../app/frontend/images/backgrounds/heroes/hero-2-7680.jpg","../../../app/frontend/src/components/jobs/JobsList/index.tsx","../../../app/frontend/src/components/TimesheetAuthority.tsx","../../../app/frontend/src/components/TimesheetFooter.tsx","../../../app/frontend/src/components/Timesheet.tsx","../../../app/frontend/src/components/TimesheetTable.tsx","../../../app/frontend/src/components/TimesheetSuccessDialog.tsx","../../../app/frontend/src/components/TimesheetInstructions.tsx","../../../app/frontend/src/components/TimesheetConfirmDialog.tsx","../../../app/frontend/src/components/TimesheetForm.tsx","../../../app/frontend/src/components/TimesheetUploader/index.tsx","../../../app/frontend/src/components/TimesheetPasscodeDialog.tsx","../../../app/frontend/src/components/ContactUsForm/index.tsx","../../../app/frontend/entrypoints/application.ts"],"sourcesContent":["import * as Sentry from \"@sentry/browser\"\n\nSentry.init({\n dsn: import.meta.env.VITE_SENTRY_DSN,\n\n // Alternatively, use `process.env.npm_package_version` for a dynamic release version\n // if your build tool supports it.\n release: \"sps\",\n environment: import.meta.env.VITE_RAILS_ENV,\n enabled: import.meta.env.VITE_RAILS_ENV !== \"development\",\n integrations: [\n Sentry.browserTracingIntegration(),\n Sentry.replayIntegration(),\n ],\n\n // Set tracesSampleRate to 1.0 to capture 100%\n // of transactions for tracing.\n // We recommend adjusting this value in production\n tracesSampleRate: 1.0,\n\n // Set `tracePropagationTargets` to control for which URLs trace propagation should be enabled\n tracePropagationTargets: [\"localhost\", /https:\\/\\/surepeople\\.com\\.au/, /https\\:\\/\\/sure-people-solutions\\.onrender\\.com/],\n\n // Capture Replay for 10% of all sessions,\n // plus for 100% of sessions with an error\n replaysSessionSampleRate: 1.0,\n replaysOnErrorSampleRate: 1.0,\n});\n","import Bugsnag from '@bugsnag/js'\n\nBugsnag.start({\n apiKey: import.meta.env.VITE_BUGSNAG_API_KEY!,\n releaseStage: import.meta.env.VITE_RAILS_ENV,\n enabledReleaseStages: [ 'production', 'staging' ],\n})","import { useLayoutEffect, useState } from 'react'\n\nexport type WindowSize = {\n width: number\n height: number\n break: string\n}\n\nconst useWindowSize = (): WindowSize => {\n const [size, setSize] = useState({\n width: 0,\n height: 0,\n break: 'xs'\n })\n\n useLayoutEffect(() => {\n function updateSize() {\n setSize(\n {\n width: window.innerWidth,\n height: window.innerHeight,\n break: breakpoint(window.innerWidth)\n }\n )\n }\n window.addEventListener('resize', updateSize)\n updateSize()\n return () => window.removeEventListener('resize', updateSize)\n }, [])\n\n const breakpoint = (width: number) => {\n if(width < 576) return 'xs'\n if(width < 768) return 'sm'\n if(width < 992) return 'md'\n if(width < 1200) return 'lg'\n if(width < 1400) return 'xl'\n return 'xxl'\n }\n\n return size\n}\n\nexport default useWindowSize\n","import { createElement } from 'react'\n\ntype RenderHTMLType = {\n rawHTML: string\n className?: string\n}\nexport const renderHTML = ({rawHTML, className = \"\"}: RenderHTMLType) => createElement(\"span\", { className: className, dangerouslySetInnerHTML: { __html: rawHTML } })\n","export default \"__VITE_ASSET__PB8O4BPG__\"","export default \"__VITE_ASSET__DNL4rk6C__\"","import React, { FunctionComponent, CSSProperties, useEffect, useState } from 'react'\nimport algoliasearch from 'algoliasearch/lite'\nimport {\n InstantSearch,\n Configure,\n ScrollTo,\n connectHits,\n connectPagination,\n connectRefinementList,\n connectSearchBox,\n connectStats,\n connectStateResults,\n connectPoweredBy,\n} from 'react-instantsearch-dom'\nimport { Hit, RefinementListProvided , SearchBoxProvided, StatsProvided, StateResultsProvided } from 'react-instantsearch-core'\nimport Skeleton from 'react-loading-skeleton'\nimport useWindowSize from '../../hooks/useWindowSize.js'\nimport { renderHTML } from '../../../utils.js'\nimport AlgoliaLogo from '@/images/logos/logo-algolia.svg'\nimport Hero2 from '@/images/backgrounds/heroes/hero-2-7680.jpg'\n\ntype Props = {\n algoliaIndex: string\n algoliaApplicationId: string\n algoliaApiKeySearch: string\n}\n\nexport const JobsList: FunctionComponent = ({ algoliaIndex, algoliaApplicationId, algoliaApiKeySearch }: Props): JSX.Element => {\n const noHits = (): JSX.Element => {\n return (\n
\n
\n
\n \n
\n Sorry, we can't find any matches to your query!\n
\n

\n Please try another query.\n

\n
\n
\n
\n )\n }\n\n const Hits = ({ hits }: any): JSX.Element => {\n if(hits.length === 0)\n return noHits()\n\n return (\n <>\n \n { hits.map((hit: Hit) => (\n
\n \n
\n
\n
{renderHTML({ rawHTML: hit.title })}
\n
    \n
  • \n \n \n \n Location:\n \n {renderHTML({ rawHTML: hit.location, className: \"text-dark ps-1\" })}\n \n
  • \n
  • \n \n \n \n Salary:\n \n {renderHTML({ rawHTML: hit.salary_description, className: \"text-dark ps-1\" })}\n \n
  • \n
  • \n \n \n \n Type:\n \n \n {hit.work_type}\n \n \n
  • \n
  • \n \n \n \n Job added:\n \n \n {hit.humanized_published_date}\n \n \n
  • \n
\n

\n {renderHTML({ rawHTML: hit.summary, className: \"text-dark\" })}\n

\n
\n
\n
\n
\n ))}\n \n \n )\n };\n const CustomHits = connectHits(Hits)\n\n const Pagination = ({ currentRefinement, nbPages, refine, createURL }: any): JSX.Element => {\n const [paginationSize, setPaginationSize] = useState(0)\n const { break: breakpoint } = useWindowSize()\n useEffect(() => {\n // console.log('breakpoint:', breakpoint)\n switch(breakpoint) {\n case 'xs':\n setPaginationSize(5)\n break\n case 'sm':\n setPaginationSize(7)\n break\n case 'md':\n setPaginationSize(9)\n break\n default:\n setPaginationSize(9)\n }\n }, [breakpoint])\n // console.log('paginationSize', paginationSize)\n\n if (paginationSize === 0) return(<>)\n\n const first_page = 1\n const last_page = nbPages\n const prev_page = currentRefinement - 1\n const next_page = currentRefinement + 1\n\n const innerSize = paginationSize - 4\n const padding = (innerSize - 1)/2\n const offset = (innerSize - (padding - 2))\n const items = Math.min(nbPages, paginationSize)\n if(nbPages === 0)\n return(<>)\n\n return (\n \n )\n }\n\n const CustomPagination = connectPagination(Pagination)\n\n const PaginationSummary = ({ currentRefinement, nbPages }: any): JSX.Element => {\n return(\n \n Page {currentRefinement} of {nbPages}\n \n )\n }\n const CustomPaginationSummary = connectPagination(PaginationSummary)\n\n const Stats = ({ nbHits }: StatsProvided): JSX.Element => {\n return(\n \n {nbHits.toLocaleString()} jobs -\n \n )\n }\n\n const CustomStats = connectStats(Stats);\n\n const RefinementList = ({ items, refine }: RefinementListProvided): JSX.Element => {\n return(\n
\n
\n
\n \n
Categories
\n
    \n {items.map((item: any) => (\n
  • \n {\n event.preventDefault()\n refine(item.value)\n }}\n >\n {item.label}\n \n \n {item.count}\n \n
  • \n ))}\n
\n
\n
\n
\n )\n };\n\n const CustomRefinementList = connectRefinementList(RefinementList)\n\n const SearchBox = ({ currentRefinement, refine }: SearchBoxProvided): JSX.Element => {\n return(\n <>\n
\n refine(event.currentTarget.value)}\n />\n \n \n \n \n
\n \n )\n };\n\n const CustomSearchBox = connectSearchBox(SearchBox);\n\n const PoweredBy = ({ url, algoliaLogo }: any) => {\n return(\n
\n Search by\n \n \"Search\n \n
\n )\n }\n const CustomPoweredBy = connectPoweredBy(PoweredBy)\n\n const CustomSkeleton = (): JSX.Element => {\n return(\n
\n
\n

\n \n

\n

\n \n

\n

\n \n

\n

\n \n \n

\n \n
\n
\n )\n }\n\n const StateResults = ({ searchResults }: StateResultsProvided): JSX.Element => {\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 { searchResults ? : }\n
\n
\n
\n
\n )\n }\n\n const CustomStateResults = connectStateResults(StateResults)\n\n const searchClient = algoliasearch(\n algoliaApplicationId,\n algoliaApiKeySearch\n );\n\n return (\n
\n
\n \"Search\n
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n )\n}\n\nexport default JobsList\n","import React, { FunctionComponent } from 'react'\nimport Typography from '@mui/material/Typography'\n\nconst TimesheetAuthority: FunctionComponent = (): JSX.Element => {\n return (\n \n

Check this timesheet carefully. Submitting is authority to invoice the total hours & allowance.

\n

We certify that the details of attendance stated above are correct and that the work of the above named has been satisfactory. We confirm our agreement to your terms and conditions of business and undertake to pay\nyour account in accordance with such terms, of which we have received a copy.

\n
\n )\n}\n\nexport default TimesheetAuthority","import * as React from 'react'\nimport BottomNavigation from '@mui/material/BottomNavigation'\nimport { Grid, Typography } from '@mui/material'\n\nconst primaryColor = '#54bceb'\nconst keySx = { pl: '2px', color: primaryColor }\nconst valueSx = { pl: '2px', pr: 1 }\nexport default function TimesheetFooter() {\n return (\n \n \n \n recruitment specialists\n \n \n w:\n www.surepeople.com.au\n e:\n timesheets@surepeople.net.au\n p:\n 08 6143 4484\n a:\n 2/752 N Lake Rd, South Lake WA 6164\n \n \n\n \n );\n}\n","import React, { FunctionComponent } from 'react'\nimport { LocalizationProvider } from '@mui/x-date-pickers'\nimport { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'\nimport dayjs, { Dayjs } from 'dayjs'\nimport objectSupport from 'dayjs/plugin/objectSupport'\nimport weekday from 'dayjs/plugin/weekday'\nimport isoWeek from 'dayjs/plugin/isoWeek'\nimport updateLocale from 'dayjs/plugin/updateLocale'\nimport duration from 'dayjs/plugin/duration'\nimport isBetweenPlugin from 'dayjs/plugin/isBetween'\nimport TextField from '@mui/material/TextField'\nimport Grid from '@mui/material/Unstable_Grid2'\nimport CssBaseline from '@mui/material/CssBaseline'\nimport { ThemeProvider, createTheme } from '@mui/material/styles'\n\nimport Table from '@mui/material/Table'\nimport TableBody from '@mui/material/TableBody'\nimport TableCell from '@mui/material/TableCell'\nimport TableHead from '@mui/material/TableHead'\nimport TableRow from '@mui/material/TableRow'\nimport Box from '@mui/material/Box'\nimport TimesheetAuthority from './TimesheetAuthority'\nimport TimesheetFooter from './TimesheetFooter'\n\nconst theme = createTheme({\n typography: {\n fontSize: 12,\n },\n components: {\n MuiCssBaseline: {\n styleOverrides: `\n h1 {\n color: #333;\n }\n `,\n },\n },\n})\n\ndayjs.extend(objectSupport)\ndayjs.extend(weekday)\ndayjs.extend(isoWeek)\ndayjs.extend(updateLocale)\ndayjs.extend(duration)\ndayjs.updateLocale('en', {\n weekStart: 1,\n})\ndayjs.extend(isBetweenPlugin)\n\ninterface DailyData {\n id: number,\n day: string,\n date: Dayjs,\n startTime: Dayjs | null,\n endTime: Dayjs | null,\n breaks: Dayjs | null,\n total: Dayjs,\n notes: string | null,\n}\n\ntype Timesheet = {\n id: number,\n data: DailyData[]\n classification: string\n grandTotal: string\n firstName: string\n lastName: string\n supervisor: string\n location: string\n client: string\n createdAt: string\n purchaseOrder: string\n}\ntype Props = {\n timesheet: Timesheet\n}\n\nconst parseTime = (time: string): Dayjs | null => {\n if (dayjs(time, 'hh:mm').isValid()) {\n return dayjs(time, 'hh:mm')\n }\n return null\n}\n\nconst toTime = (time: string): string => parseTime(time)?.format('h:mma') || '-'\nconst toDuration = (time: string): string => {\n if(time === '00:00') return '-'\n const hrAndMin = parseTime(time)\n if (!hrAndMin) return '-'\n if(hrAndMin?.minute() === 0) return `${hrAndMin?.hour()}hr`\n return `${hrAndMin?.hour()}hr, ${hrAndMin?.minute()}min`\n}\n\nconst toDailyDataRow = (data: any, index: number): any => {\n return {\n id: index,\n day: dayjs(data.date, 'DD/MM/YYYY').format('dddd'),\n date: data.date,\n startTime: toTime(data.startTime),\n endTime: toTime(data.endTime),\n breaks: toDuration(data.break),\n total: toDuration(data.total),\n notes: data.notes\n // notes: \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut a\"\n }\n}\n\nconst grandTotalRow = (grandTotal: string): any => {\n return {\n id: 8,\n breaks: 'Total',\n total: `${grandTotal.split(':')[0]}hr, ${grandTotal.split(':')[1]}min`,\n // total: \"288hr, 59min\"\n }\n}\n\nconst Timesheet: FunctionComponent = ({ timesheet }: Props): JSX.Element => {\n const rows = timesheet.data.map((d, index) => toDailyDataRow(d, index))\n rows.push(grandTotalRow(timesheet.grandTotal))\n\n const detailsInputProps = {\n readOnly: true,\n }\n\n const fullName = `${timesheet.firstName} ${timesheet.lastName}`\n\n const cellSX = {\n padding: 0,\n fontSize: 12,\n height: 40,\n border: '1px solid #999',\n }\n const TSTableCell = ({ children, sx, ...other }: any) => {children}\n\n return (\n \n \n \n
\n

TIMESHEET

\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 Day\n Date\n Start Time\n End Time\n Breaks\n Total\n Notes\n \n \n \n {rows.map((row) => (\n \n {row.day}\n {row.date}\n {row.startTime}\n {row.endTime}\n {row.breaks}\n {row.total}\n {row.notes}\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\nexport default Timesheet","import React, { FunctionComponent, useState, useEffect, useRef } from 'react'\nimport IconButton from '@mui/material/IconButton'\nimport DeleteIcon from '@mui/icons-material/Delete'\nimport { DatePicker } from '@mui/x-date-pickers/DatePicker'\nimport { TimePicker } from '@mui/x-date-pickers/TimePicker'\nimport { TimeField } from '@mui/x-date-pickers/TimeField'\nimport dayjs, { Dayjs } from 'dayjs'\nimport TextField from '@mui/material/TextField'\nimport { styled, useTheme } from '@mui/material/styles'\nimport { DateTimeValidationError } from '@mui/x-date-pickers/models'\nimport { PickersDay, PickersDayProps } from '@mui/x-date-pickers/PickersDay'\nimport { DailyData, GrandTotal } from './TimesheetForm'\nimport Button from '@mui/material/Button'\nimport Grid from '@mui/material/Grid'\nimport Box from '@mui/material/Box'\nimport useMediaQuery from '@mui/material/useMediaQuery'\n\nconst columns = 24\nconst ItemWidths = {\n date: { lg: 4, md: 6, sm: 18, xs: 16 },\n start: { lg: 3, md: 4, xs: 6 },\n end: { lg: 3, md: 4, xs: 6 },\n breaks: { lg: 3, md: 4, xs: 5 },\n total: { lg: 3, md: 4, xs: 5 },\n notes: { lg: 7, md: 22, xs: 24 },\n reset: { lg: 1, md: 2, sm: 2, xs: 4 }\n}\nconst Item = ({children}: any) => (<>{children})\n\ninterface CustomPickerDayProps extends PickersDayProps {\n isSelected: boolean;\n isHovered: boolean;\n}\n\nconst CustomPickersDay = styled(PickersDay, {\n shouldForwardProp: (prop) => prop !== 'isSelected' && prop !== 'isHovered',\n})(({ theme, isSelected, isHovered, day }) => ({\n borderRadius: 0,\n ...(isSelected && {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n '&:hover, &:focus': {\n backgroundColor: theme.palette.primary.main,\n },\n }),\n ...(isHovered && {\n backgroundColor: theme.palette.primary[theme.palette.mode],\n '&:hover, &:focus': {\n backgroundColor: theme.palette.primary[theme.palette.mode],\n },\n }),\n ...(day.day() === 1 && {\n borderTopLeftRadius: '50%',\n borderBottomLeftRadius: '50%',\n }),\n ...(day.day() === 0 && {\n borderTopRightRadius: '50%',\n borderBottomRightRadius: '50%',\n }),\n})) as React.ComponentType\n\nconst calculateDuration = (start: Dayjs | null, end: Dayjs | null) => {\n if (!start || !end) {\n return dayjs({ hour: 0, minute: 0 })\n }\n\n if(end.isBefore(start)) {\n // handle night shift\n const d1 = dayjs.duration(dayjs({ hour: 24 }).diff(start))\n const d2 = dayjs.duration(end.diff(dayjs({ hour: 0 })))\n return dayjs({ hour: d1.hours() + d2.hours(), minute: d1.minutes() + d2.minutes() })\n }\n\n const duration = dayjs.duration(end.diff(start))\n\n return dayjs({ hour: duration.hours(), minute: duration.minutes() })\n}\n\nconst calculateTotal = (data: DailyData) => {\n data.total = calculateDuration(data.start, data.end)\n\n if (data.breaks && !data.breaks.isAfter(data.total)) {\n data.total = calculateDuration(data.breaks, data.total)\n }\n\n return data\n}\n\nconst isInSameWeek = (dayA: Dayjs, dayB: Dayjs | null | undefined) => {\n if (dayB == null) {\n return false;\n }\n\n return dayA.isSame(dayB, 'week');\n}\n\nfunction Day(\n props: PickersDayProps & {\n selectedDay?: Dayjs | null;\n hoveredDay?: Dayjs | null;\n },\n) {\n const { day, selectedDay, hoveredDay, ...other } = props;\n\n return (\n \n );\n}\n\ntype TimePickerProps = React.ComponentProps & any\nconst SpsTimePicker = (props: TimePickerProps) => {\n const {helperText, ...rest} = props\n const [error, setError] = React.useState(null);\n\n const errorMessage = React.useMemo(() => {\n switch (error) {\n default: return ''\n }\n }, [error]);\n\n return (\n setError(newError)}\n ampm={true}\n sx={{\n width: '100%',\n '& .MuiInputAdornment-positionStart': { marginRight: 0 }\n }}\n slotProps={{\n inputAdornment: {\n position: 'start',\n },\n textField: {\n helperText: errorMessage || helperText,\n id: `${props.className}-field-${props.index}`,\n },\n }}\n />\n )\n}\n\ntype TimeFieldProps = React.ComponentProps & any\nconst Breaks = (props: TimeFieldProps) => {\n const [error, setError] = React.useState(null);\n\n const errorMessage = React.useMemo(() => {\n switch (error) {\n case 'maxTime': return 'Must be less than total duration'\n default: return ''\n }\n }, [error])\n\n return (\n setError(newError)}\n sx={{ width: '100%' }}\n slotProps={{\n textField: {\n helperText: errorMessage || ' ',\n },\n }}\n />\n )\n}\n\ntype DatePickerProps = React.ComponentProps & any\nconst SpsDatePicker = (props: DatePickerProps) => {\n const { helperText, ...rest } = props\n const [hoveredDay, setHoveredDay] = React.useState(null);\n const [open,setOpen] = useState(false)\n\n const theme = useTheme()\n const lgScreenSize = useMediaQuery(theme.breakpoints.down('md'))\n\n return (\n setOpen(false)}\n showDaysOutsideCurrentMonth\n format={lgScreenSize ? 'dddd D MMM, YYYY' : 'ddd D MMM, YYYY'}\n slots={{ day: Day }}\n sx={{\n width: '100%',\n '& .MuiInputAdornment-positionStart': { marginRight: 0 },\n '& .MuiButtonBase-root': { padding: '8px 0 8px 8px' }\n }}\n slotProps={{\n openPickerButton: {\n color: 'primary',\n },\n inputAdornment: {\n position: 'start',\n },\n field: {\n id: `date-field-${props.index}`,\n readOnly: true,\n onClick: () => setOpen(!props.readOnly),\n helperText: helperText,\n },\n day: (ownerState) =>\n ({\n selectedDay: props.value,\n hoveredDay,\n onPointerEnter: () => setHoveredDay(ownerState.day as Dayjs),\n onPointerLeave: () => setHoveredDay(null),\n } as any),\n }}\n />\n )\n}\n\nconst Total = (props: TimeFieldProps) => (\n \n)\n\nconst GrandTotalField = (props: TimeFieldProps) => {\n const theme = useTheme()\n const lgScreenSize = useMediaQuery(theme.breakpoints.down('lg'))\n\n return (\n \n )\n}\n\ntype TextFieldProps = React.ComponentProps\nconst Notes = (props: any) => {\n const { onChange, ...rest } = props\n const [error, setError] = React.useState(false)\n const onValueChange = ({ target }: React.ChangeEvent) => {\n if (target.value.length >= 200) {\n setError(true)\n return\n }\n\n setError(false)\n onChange({ target })\n }\n\n return (\n \n )\n}\n\ntype TimesheetRowProps = {\n index: number,\n day: string,\n date: Dayjs,\n data: DailyData[],\n setData: React.Dispatch>\n}\nconst TimesheetRow = ({ index, date, data, setData }: TimesheetRowProps) => {\n const setSelectedDate = (newValue: Dayjs) => {\n setData((prev) => {\n const newData = [...prev]\n newData.forEach((el) => el.date = newValue.weekday(el.id))\n return newData\n })\n }\n\n const resetRow = () => {\n data[index].start = null\n data[index].end = null\n setData((prev) => {\n const newData = [...prev]\n newData[index].start = null\n newData[index].end = null\n newData[index].breaks = null\n newData[index].notes = null\n newData[index].total = dayjs({ hour: 0, minute: 0 })\n return newData\n })\n }\n\n const displayResetIcon = () => {\n return data[index].start || data[index].end || data[index].breaks ? 'block' : 'none'\n }\n\n const ResetButton = () => {\n return (\n \n )\n }\n\n const theme = useTheme()\n const smScreenSize = useMediaQuery(theme.breakpoints.up('md'))\n const lgScreenSize = useMediaQuery(theme.breakpoints.down('lg'))\n\n return (\n <>\n \n \n 0}\n readOnly={index > 0}\n onAccept={setSelectedDate}\n index={index}\n />\n \n \n \n \n \n \n \n {\n setData((prev) => {\n const newData = [...prev]\n newData[index].start = newValue\n calculateTotal(newData[index])\n return newData\n })\n }}\n />\n \n \n \n \n {\n setData((prev) => {\n const newData = [...prev]\n newData[index].end = newValue\n calculateTotal(newData[index])\n return newData\n })\n }}\n />\n \n \n \n \n {\n setData((prev) => {\n const newData = [...prev]\n newData[index].breaks = newValue || dayjs({ hour:0, minute:0 })\n calculateTotal(newData[index])\n return newData\n })\n }}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n ) => {\n setData((prev) => {\n const newData = [...prev]\n newData[index].notes = target.value\n return newData\n })\n }}\n />\n \n \n \n \n \n \n )\n}\n\ntype Props = {\n data: DailyData[]\n setData: React.Dispatch>\n grandTotal: GrandTotal\n setGrandTotal: React.Dispatch>\n}\n\nconst formatGrandTotal = (grandTotal: GrandTotal) => {\n const hours = grandTotal.hours.toString().padStart(2, '0')\n const minutes = grandTotal.minutes.toString().padStart(2, '0')\n return `${hours}hr:${minutes}min`\n}\n\nconst TimesheetTable: FunctionComponent = ({ data, setData, grandTotal, setGrandTotal }): JSX.Element => {\n useEffect(() => {\n const total = data.reduce((acc, el) => {\n acc.hours = acc.hours + el.total.hour() + Math.floor((acc.minutes + el.total.minute()) / 60)\n acc.minutes = (acc.minutes + el.total.minute()) % 60\n return acc\n }, { hours:0, minutes:0 })\n\n setGrandTotal(total)\n }, [data])\n\n const padding = '16px 8px'\n const margin = '16px 8px'\n const sx={\n padding: '32px 0 14px',\n margin: '16px 0 0',\n borderBottom: '1px solid #000',\n }\n\n const rowSpacing = { xs: 2, lg: 2 }\n const columnSpacing = { xs: 0.5, xl: 1, xxl: 2 }\n const display = { xs: 'none', md: 'block' }\n\n return (\n <>\n \n \n Date\n \n \n Start\n \n \n End\n \n \n Breaks\n \n \n Total\n \n \n Notes\n \n \n \n \n {\n data.map((el) => {\n return (\n \n \n \n )\n })\n }\n \n \n Total\n \n \n Total\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default TimesheetTable","import React, { Fragment, FunctionComponent } from 'react'\nimport Button from '@mui/material/Button'\nimport Dialog from '@mui/material/Dialog'\nimport DialogActions from '@mui/material/DialogActions'\nimport DialogTitle from '@mui/material/DialogTitle'\nimport CloseIcon from '@mui/icons-material/Close'\nimport Alert from '@mui/material/Alert'\nimport { AlertTitle, DialogContent, DialogContentText, IconButton } from '@mui/material'\nimport { SuccessResponse } from './TimesheetForm'\nimport CloudDownloadIcon from '@mui/icons-material/CloudDownload'\n\ntype Props = {\n open: boolean,\n setOpen: (open: boolean) => void,\n success: SuccessResponse,\n}\n\nconst TimesheetSuccessDialog: FunctionComponent = ({ open, setOpen, success }: Props): JSX.Element => {\n const handleClose = () => {\n setOpen(false)\n }\n\n // opens the pdfUrl in a new tab and then closes the dialog\n const downloadAndClose = () => {\n window.open(success.url, '_blank')\n setOpen(false)\n }\n\n if (success.url) {\n return (\n \n \n \n \n Success\n {success.message}\n \n \n \n \n A copy of your submitted timesheet is ready to download.\n \n \n \n \n \n \n \n \n )\n }\n\n return (\n \n \n \n \n \n }\n sx={{ p: 3 }}\n >\n Success\n {success.message}\n \n \n \n )\n}\n\nexport default TimesheetSuccessDialog\n","import React, { FunctionComponent } from 'react'\nimport Box from '@mui/material/Box'\nimport { Typography } from '@mui/material'\n\nconst TimesheetInstructions: FunctionComponent = (): JSX.Element => {\n return (\n \n \n

Instructions:

\n\n

Timesheets must be submitted as soon as you finish work for the week, at the latest by 6pm Sunday night for the previous week worked (Monday to Sunday).

\n

Use the notes section for: allowances, locations (if different certain days), travel/flight details, standdown or service numbers.

\n

If you have service docket's or receipt etc. please email them to timesheets@surepeople.net.au with the details of what they are for.

\n

Please make sure you double check all details are correct (including AM or PM shift) before submitting, and downloading a copy for your records (please wait a few seconds after submitting as this lets you know it has been submitted successfully).

\n
\n
\n )\n}\n\nexport default TimesheetInstructions","import React, { Fragment, FunctionComponent, useState } from 'react'\nimport Button from '@mui/material/Button'\nimport Dialog from '@mui/material/Dialog'\nimport DialogActions from '@mui/material/DialogActions'\nimport SendIcon from '@mui/icons-material/Send'\nimport DialogContentText from '@mui/material/DialogContentText'\nimport DialogTitle from '@mui/material/DialogTitle'\nimport Form from 'react-bootstrap/Form'\nimport TextField from '@mui/material/TextField'\nimport Container from '@mui/material/Container'\nimport FormControl from '@mui/material/FormControl'\nimport FormControlLabel from '@mui/material/FormControlLabel'\nimport Radio from '@mui/material/Radio'\nimport RadioGroup from '@mui/material/RadioGroup'\nimport { useForm } from 'react-hook-form'\nimport { DeliveryOption } from './TimesheetForm'\n\ntype Props = {\n open: boolean,\n setOpen: (open: boolean) => void,\n setDeliveryOption: (option: DeliveryOption) => void,\n}\n\nconst Options = {\n download: 'download',\n email: 'email',\n}\n\nconst defaultOption = Options.download\n\nconst TimesheetConfirmDialog: FunctionComponent = ({ open, setOpen, setDeliveryOption }: Props): JSX.Element => {\n const [option, setOption] = useState(defaultOption)\n\n const handleRadioChange = (event: React.ChangeEvent) => {\n setValue('downloadOrEmail', (event.target as HTMLInputElement).value)\n setOption((event.target as HTMLInputElement).value);\n }\n\n const onSubmit = (data: DeliveryOption) => {\n setDeliveryOption(data)\n handleClose()\n }\n\n const handleClose = () => {\n setOpen(false)\n }\n\n const {\n register,\n handleSubmit,\n setValue,\n formState: { errors }\n } = useForm({ mode: 'onBlur', defaultValues: { downloadOrEmail: defaultOption, email: '' } })\n\n return (\n \n \n \n
\n \n \n Confirm and Submit\n \n \n Select how you would like to receive a copy of your timesheet.\n \n \n } label=\"Download a copy\" />\n } label=\"Email me a copy\" />\n {option === Options.email && }\n \n \n \n \n \n \n
\n\n
\n \n
\n )\n}\n\nexport default TimesheetConfirmDialog","import React, { FunctionComponent, useState, useEffect } from 'react'\nimport Form from 'react-bootstrap/Form'\nimport Col from 'react-bootstrap/Col'\nimport Row from 'react-bootstrap/Row'\nimport { useForm } from 'react-hook-form'\nimport { LocalizationProvider } from '@mui/x-date-pickers'\nimport { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'\nimport dayjs, { Dayjs } from 'dayjs'\nimport objectSupport from 'dayjs/plugin/objectSupport'\nimport weekday from 'dayjs/plugin/weekday'\nimport isoWeek from 'dayjs/plugin/isoWeek'\nimport updateLocale from 'dayjs/plugin/updateLocale'\nimport duration from 'dayjs/plugin/duration'\nimport isBetweenPlugin from 'dayjs/plugin/isBetween'\nimport axios from 'axios'\nimport TimesheetTable from './TimesheetTable'\nimport TextField from '@mui/material/TextField'\nimport LoadingButton from '@mui/lab/LoadingButton'\nimport SendIcon from '@mui/icons-material/Send'\nimport TimesheetSuccessDialog from './TimesheetSuccessDialog'\nimport Alert from '@mui/material/Alert'\nimport TimesheetInstructions from './TimesheetInstructions'\nimport TimesheetConfirmDialog from './TimesheetConfirmDialog'\nimport { createTheme, ThemeProvider, styled } from '@mui/material/styles'\n\ndayjs.extend(objectSupport)\ndayjs.extend(weekday)\ndayjs.extend(isoWeek)\ndayjs.extend(updateLocale)\ndayjs.extend(duration)\ndayjs.updateLocale('en', {\n weekStart: 1,\n})\ndayjs.extend(isBetweenPlugin)\nconst dateFormat = 'DD/MM/YYYY'\n\ninterface FormData {\n firstName: string,\n lastName: string,\n classification: string,\n client: string,\n supervisor: string,\n location: string,\n purchaseOrder: string,\n}\nexport interface DailyData {\n id: number,\n day: string,\n date: Dayjs,\n start: Dayjs | null,\n end: Dayjs | null,\n breaks: Dayjs | null,\n total: Dayjs,\n notes: string | null,\n}\n\nexport interface SuccessResponse {\n message: string,\n url: string,\n}\n\nconst currentMonday = dayjs().weekday(0)\nconst initialData: DailyData[] = Array.from({ length: 7 }, (_, i) => {\n const date = currentMonday.weekday(currentMonday.weekday() + i)\n return {\n id: i,\n day: date.format('dddd'),\n date,\n start: null,\n end: null,\n breaks: null,\n total: dayjs({ hour:0, minute:0 }),\n notes: null\n\n // fixture data\n // start: dayjs({ hour:9, minute:0 }),\n // end: dayjs({ hour:21, minute:0 }),\n // breaks: dayjs({ hour:1, minute:30 }),\n // total: dayjs({ hour:10, minute:30 }),\n // notes: \"Sed ut perspiciatis unde omnis iste natus \"//error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dictass\"\n }\n})\nconst initialDetails = {\n firstName: 'Ashley',\n lastName: 'Ramsey',\n classification: 'Welder',\n client: 'Crane Corp FMG Solomon',\n supervisor: 'George Castanza',\n location: 'Crane Corp FMG Solomon',\n purchaseOrder: 'PO1234',\n}\n\ntype Props = {\n csrfToken: string,\n recaptchaKey: string,\n}\n\nexport type GrandTotal = {\n hours: number,\n minutes: number,\n}\n\nexport type DeliveryOption = {\n downloadOrEmail: string,\n email: string,\n}\n\ndeclare module '@mui/material/styles' {\n interface BreakpointOverrides {\n xxl: true\n }\n}\n\nconst theme = createTheme({\n breakpoints: {\n values: {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400,\n },\n },\n})\n\nconst TimesheetForm: FunctionComponent = ({ csrfToken, recaptchaKey }: Props): JSX.Element => {\n const [confirm, setConfirm] = useState(false)\n const [loading, setLoading] = useState(false)\n const [success, setSuccess] = useState(null)\n const [error, setError] = useState(null)\n const recaptcha_action = 'upload_timesheet'\n const [formData, setFormData] = useState()\n const [data, setData] = useState(initialData) // timesheet data\n const [grandTotal, setGrandTotal] = useState({ hours: 0, minutes :0 })\n const [dialogOpen, setDialogOpen] = useState(false)\n const [deliveryOption, setDeliveryOption] = useState(null)\n\n const {\n register,\n handleSubmit,\n reset,\n formState: { errors }\n } = useForm({ mode: 'onBlur' }) //, defaultValues: initialDetails })\n\n useEffect(() => {\n if (error) {\n const timer = setTimeout(() => {\n setError(null)\n }, 5000)\n return () => clearTimeout(timer)\n }\n return\n }, [error])\n\n useEffect(() => {\n if (success) {\n setDialogOpen(true)\n }\n return () => setDialogOpen(false)\n }, [success])\n\n const confirmSubmit = (data: any) => {\n setFormData(data)\n setConfirm(true)\n }\n\n useEffect(() => {\n if (deliveryOption) {\n submitFormWithRecaptcha()\n }\n }, [deliveryOption])\n\n const grecaptchaObject = window.grecaptcha\n const submitFormWithRecaptcha = () => {\n setLoading(true)\n setError(null)\n setSuccess(null)\n\n grecaptchaObject.enterprise.ready(() => {\n grecaptchaObject.enterprise\n .execute(recaptchaKey, { action: recaptcha_action })\n .then((recaptchaToken: string) => {\n submitForm(recaptchaToken)\n })\n })\n }\n\n const parseData = (data: DailyData[]): any => {\n return data.map((day: DailyData) => {\n return {\n date: day.date.format(dateFormat),\n startTime: day.start?.format('HH:mm'),\n endTime: day.end?.format('HH:mm'),\n break: day.breaks?.format('HH:mm'),\n notes: day.notes,\n total: day.total.format('HH:mm'),\n }\n })\n }\n\n const submitForm = async (recaptchaToken: string) => {\n const url = '/timesheets'\n const payload = {\n timesheet: {\n ...formData,\n email: deliveryOption?.downloadOrEmail === 'email' ? deliveryOption.email : null,\n data: parseData(data),\n grandTotal: `${grandTotal.hours}:${grandTotal.minutes}`\n },\n recaptcha_token: recaptchaToken,\n recaptcha_action,\n }\n const config = {\n headers: {\n 'content-type': 'application/json',\n 'X-CSRF-TOKEN': csrfToken,\n },\n }\n\n axios.post(url, payload, config)\n .then((response) => {\n setLoading(false)\n setSuccess(response.data)\n reset()\n setData(initialData)\n })\n .catch((error) => {\n console.log({error})\n setLoading(false)\n setSuccess(null)\n setError(error.response.data.error)\n })\n }\n\n const submitButton = (): JSX.Element => {\n return (\n <>\n }\n variant=\"outlined\"\n className=\"float-end\"\n type=\"submit\"\n size=\"large\"\n >\n Submit\n \n
\n
\n {error && {error}}\n \n )\n }\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 \n \n\n \n \n \n
\n {submitButton()}\n
\n \n {confirm && }\n {success && }\n
\n
\n )\n}\n\nexport default TimesheetForm","import React, { FunctionComponent, CSSProperties, useState, useEffect, FormEvent } from 'react'\nimport axios from 'axios'\n\ntype Props = {\n csrfToken: string,\n recaptchaKey: string,\n}\n\ndeclare global {\n interface Window {\n grecaptcha: any\n }\n}\n\nconst TimesheetUploader: FunctionComponent = ({ csrfToken, recaptchaKey }: Props): JSX.Element => {\n const [file, setFile] = useState(null)\n const [uploading, setUploading] = useState(false)\n const [uploaded, setUploaded] = useState(false)\n const [errorUploading, setErrorUploading] = useState(false)\n\n const grecaptchaObject = window.grecaptcha\n const recaptcha_action = 'upload_timesheet'\n\n const fileSelected = (e: FormEvent): void => {\n const files = (e.target as HTMLInputElement).files || []\n if (files.length > 0) setFile(files[0])\n }\n\n const uploadFileWithRecaptcha = (): void => {\n grecaptchaObject.enterprise.ready(() => {\n grecaptchaObject.enterprise.execute(recaptchaKey, {action: recaptcha_action}).then((recaptchaToken: string) => {\n uploadFile(recaptchaToken)\n })\n })\n }\n\n const uploadFile = async (recaptchaToken: string): Promise => {\n if (file) {\n setUploading(true)\n const url = '/timesheets'\n const formData: any = new FormData()\n formData.append('file', file)\n formData.append('recaptcha_token', recaptchaToken)\n formData.append('recaptcha_action', recaptcha_action)\n const config = {\n headers: {\n 'content-type': 'multipart/form-data',\n 'X-CSRF-TOKEN': csrfToken,\n },\n }\n\n axios.post(url, formData, config)\n .then((response) => {\n setUploading(false)\n setUploaded(true)\n })\n .catch((error) => {\n console.error('Error uploading timesheet', error)\n setUploading(false)\n setErrorUploading(true)\n })\n }\n }\n\n useEffect(() => {\n if (uploaded || errorUploading) {\n const timer = setTimeout(() => {\n resetFile()\n }, 5000)\n return () => clearTimeout(timer)\n }\n return\n }, [uploaded, errorUploading])\n\n const resetFile = () => {\n setFile(null)\n setErrorUploading(false)\n setUploaded(false)\n setUploading(false)\n }\n\n const content = () => {\n if (!file)\n return (\n \n )\n\n if (uploading)\n return(\n \n \n \n {file.name}\n \n
\n \n \n \n
\n )\n\n if (uploaded)\n return(\n \n \n \n {file.name}\n \n
\n \n \n \n
\n )\n\n if (errorUploading)\n return(\n \n \n \n {file.name}\n \n
\n \n \n \n
\n )\n\n return (\n \n \n \n {file.name}\n \n
\n \n \n \n \n
\n )\n }\n\n return (\n <>{content()}\n )\n}\n\nexport default TimesheetUploader\n","import React, { Fragment, FunctionComponent, useEffect, useState } from 'react'\nimport Button from '@mui/material/Button'\nimport Dialog from '@mui/material/Dialog'\nimport DialogActions from '@mui/material/DialogActions'\nimport DialogContent from '@mui/material/DialogContent'\nimport DialogContentText from '@mui/material/DialogContentText'\nimport DialogTitle from '@mui/material/DialogTitle'\nimport LoadingButton from '@mui/lab/LoadingButton'\nimport SendIcon from '@mui/icons-material/Send'\nimport TextField from '@mui/material/TextField'\nimport axios from 'axios'\nimport { Link } from '@mui/material'\n\ntype Props = {\n csrfToken: string,\n recaptchaKey: string,\n}\n\nconst TimesheetPasscodeDialog: FunctionComponent = ({ csrfToken, recaptchaKey }: Props): JSX.Element => {\n const [ open, setOpen ] = useState(false)\n const [loading, setLoading] = useState(false)\n const [success, setSuccess] = useState(null)\n const [error, setError] = useState(null)\n const recaptcha_action = 'authenticate_timesheets'\n\n const handleClickOpen = () => {\n setOpen(!window.location.href.includes('timesheets/new'))\n }\n\n const handleClose = () => {\n setOpen(false)\n setError(null)\n setSuccess(null)\n }\n\n const grecaptchaObject = window.grecaptcha\n const submitFormWithRecaptcha = (event: React.FormEvent) => {\n event.preventDefault()\n setLoading(true)\n setError(null)\n setSuccess(null)\n\n grecaptchaObject.enterprise.ready(() => {\n grecaptchaObject.enterprise\n .execute(recaptchaKey, { action: recaptcha_action })\n .then((recaptchaToken: string) => {\n submitForm(recaptchaToken, event)\n })\n })\n }\n\n useEffect(() => {\n if(success !== null) {\n console.log('success', success)\n // redirect user to timesheets/new\n window.location.href = '/timesheets/new?passcode=' + success\n }\n return () => setSuccess(null)\n }, [success])\n\n const submitForm = (recaptchaToken: string, event: React.FormEvent) => {\n const formData = new FormData(event.target as HTMLFormElement)\n const formJson = Object.fromEntries((formData as any).entries())\n const passcode = formJson.passcode\n console.log(passcode)\n\n const url = '/timesheets/authenticate'\n const payload = {\n passcode,\n recaptcha_token: recaptchaToken,\n recaptcha_action,\n }\n const config = {\n headers: {\n 'content-type': 'application/json',\n 'X-CSRF-TOKEN': csrfToken,\n },\n }\n\n axios.post(url, payload, config)\n .then((response) => {\n setLoading(false)\n setSuccess(response.data.passcode)\n // reset()\n })\n .catch((error) => {\n console.log({error})\n setLoading(false)\n setSuccess(null)\n setError(error.response.data.error)\n })\n }\n\n return (\n \n \n \n Timesheets\n \n \n \n Please enter your passcode\n \n \n \n Submitting timesheets requires a passcode.\n Your passcode was provided to you when you signed up.\n \n
\n \n
\n \n \n }\n variant=\"outlined\"\n className=\"float-end\"\n size=\"large\"\n type=\"submit\"\n >\n Submit\n \n \n \n
\n )\n}\n\nexport default TimesheetPasscodeDialog","import React, { FunctionComponent, useState, useEffect } from 'react'\nimport { useForm } from 'react-hook-form'\nimport axios from 'axios'\nimport LoadingButton from '@mui/lab/LoadingButton'\nimport SendIcon from '@mui/icons-material/Send'\nimport { TextField } from '@mui/material'\n\ntype Props = {\n csrfToken: string,\n recaptchaKey: string,\n}\n\nconst messageMaxLength = 10000\n\nconst ContactUsForm: FunctionComponent = ({ csrfToken, recaptchaKey }: Props): JSX.Element => {\n const [loading, setLoading] = useState(false)\n const [success, setSuccess] = useState(null)\n const [error, setError] = useState(null)\n const recaptcha_action = 'submit_contact_us'\n\n const {\n register,\n handleSubmit,\n reset,\n formState: { errors }\n } = useForm()\n\n useEffect(() => {\n if (success || error) {\n const timer = setTimeout(() => {\n setError(null)\n setSuccess(null)\n }, 5000)\n return () => clearTimeout(timer)\n }\n return\n }, [success, error])\n\n const grecaptchaObject = window.grecaptcha\n\n const submitFormWithRecaptcha = (data: any) => {\n setLoading(true)\n setError(null)\n setSuccess(null)\n\n grecaptchaObject.enterprise.ready(() => {\n grecaptchaObject.enterprise.execute(recaptchaKey, { action: recaptcha_action }).then((recaptchaToken: string) => {\n submitForm(recaptchaToken, data)\n })\n })\n }\n\n const submitForm = async (recaptchaToken: string, data: any) => {\n const url = '/email'\n const payload = {\n email: data,\n recaptcha_token: recaptchaToken,\n recaptcha_action,\n }\n const config = {\n headers: {\n 'content-type': 'application/json',\n 'X-CSRF-TOKEN': csrfToken,\n },\n }\n\n axios.post(url, payload, config)\n .then((response) => {\n setLoading(false)\n setSuccess(response.data)\n reset()\n })\n .catch((error) => {\n setLoading(false)\n setSuccess(null)\n setError(error.response.data)\n })\n }\n\n const submitButton = (): JSX.Element => {\n return(\n <>\n }\n variant=\"outlined\"\n className=\"float-end\"\n type=\"submit\"\n size=\"large\"\n >\n Send\n \n {error &&
{error}
}\n {success &&
{success}
}\n \n )\n }\n\n return (\n
\n
\n \n\n
\n
\n \n
\n
\n ) => {\n if (e.target.value.length > messageMaxLength)\n e.target.value = e.target.value.slice(0, messageMaxLength)\n }}\n />\n
\n
\n {submitButton()}\n
\n
\n )\n}\n\nexport default ContactUsForm\n","// To see this message, add the following to the `` section in your\n// views/layouts/application.html.erb\n//\n// <%= vite_client_tag %>\n// <%= vite_javascript_tag 'application' %>\n\n// If using a TypeScript entrypoint file:\n// <%= vite_typescript_tag 'application' %>\n//\n// If you want to use .jsx or .tsx, add the extension:\n// <%= vite_javascript_tag 'application.jsx' %>\n\n// Example: Load Rails libraries in Vite.\n//\n// import * as Turbo from '@hotwired/turbo'\n// Turbo.start()\n//\n// import ActiveStorage from '@rails/activestorage'\n// ActiveStorage.start()\n//\n// // Import all channels.\n// const channels = import.meta.globEager('./**/*_channel.js')\n\n// Example: Import a stylesheet in app/frontend/index.css\n// import '~/index.css'\n\nimport '../src/sentry'\nimport '../src/bugsnag'\nimport 'react-loading-skeleton/dist/skeleton.css'\nimport '@fortawesome/fontawesome-free/css/all.css'\nimport '../src/bootstrap_js_files'\nimport ReactOnRails from 'react-on-rails'\nimport JobsList from '../src/components/jobs/JobsList/index'\nimport Timesheet from '../src/components/Timesheet'\nimport TimesheetForm from '../src/components/TimesheetForm'\nimport TimesheetUploader from '../src/components/TimesheetUploader/index'\nimport TimesheetPasscodeDialog from '../src/components/TimesheetPasscodeDialog'\nimport ContactUsForm from '../src/components/ContactUsForm/index'\nimport Bugsnag from '@bugsnag/js'\nimport * as Sentry from \"@sentry/browser\";\n\n// This is how react_on_rails can see the HelloWorld in the browser.\nReactOnRails.register({\n JobsList,\n TimesheetPasscodeDialog,\n TimesheetForm,\n Timesheet,\n TimesheetUploader,\n ContactUsForm,\n})\n\n// When the user scrolls down 80px from the top of the document, resize the navbar's padding and the logo's font size\nwindow.onscroll = function() {scrollFunction()};\n\nfunction scrollFunction() {\n const navbar = document.getElementById(\"navbar\");\n if (navbar) {\n if (document.body.scrollTop > 80 || document.documentElement.scrollTop > 80) {\n navbar.classList.add(\"affix\")\n } else {\n navbar.classList.remove(\"affix\")\n }\n }\n}\n"],"names":["Sentry.init","Sentry.browserTracingIntegration","Sentry.replayIntegration","Bugsnag","useWindowSize","size","setSize","useState","useLayoutEffect","updateSize","breakpoint","width","renderHTML","rawHTML","className","createElement","AlgoliaLogo","Hero2","JobsList","algoliaIndex","algoliaApplicationId","algoliaApiKeySearch","noHits","jsx","jsxs","CustomHits","connectHits","hits","Fragment","Configure","hit","CustomPagination","connectPagination","currentRefinement","nbPages","refine","createURL","paginationSize","setPaginationSize","useEffect","first_page","last_page","prev_page","next_page","innerSize","padding","offset","items","event","_","i","index","page","style","CustomPaginationSummary","CustomStats","connectStats","nbHits","CustomRefinementList","connectRefinementList","item","CustomSearchBox","connectSearchBox","CustomPoweredBy","connectPoweredBy","url","algoliaLogo","CustomSkeleton","Skeleton","CustomStateResults","connectStateResults","searchResults","searchClient","algoliasearch","InstantSearch","ScrollTo","TimesheetAuthority","Typography","primaryColor","keySx","valueSx","TimesheetFooter","BottomNavigation","Grid","theme","createTheme","dayjs","objectSupport","weekday","isoWeek","updateLocale","duration","isBetweenPlugin","parseTime","time","toTime","_a","toDuration","hrAndMin","toDailyDataRow","data","grandTotalRow","grandTotal","Timesheet","timesheet","rows","d","detailsInputProps","fullName","cellSX","TSTableCell","children","sx","other","TableCell","ThemeProvider","CssBaseline","LocalizationProvider","AdapterDayjs","TextField","Table","TableHead","TableRow","TableBody","row","Box","columns","ItemWidths","Item","CustomPickersDay","styled","PickersDay","prop","isSelected","isHovered","day","calculateDuration","start","end","d1","d2","calculateTotal","isInSameWeek","dayA","dayB","Day","props","selectedDay","hoveredDay","SpsTimePicker","helperText","rest","error","setError","React","errorMessage","TimePicker","newError","Breaks","TimeField","SpsDatePicker","setHoveredDay","open","setOpen","useTheme","lgScreenSize","useMediaQuery","DatePicker","ownerState","Total","GrandTotalField","Notes","onChange","onValueChange","target","TimesheetRow","date","setData","setSelectedDate","newValue","prev","newData","el","resetRow","displayResetIcon","ResetButton","Button","DeleteIcon","smScreenSize","formatGrandTotal","hours","minutes","TimesheetTable","setGrandTotal","total","acc","rowSpacing","columnSpacing","display","TimesheetSuccessDialog","success","handleClose","downloadAndClose","Dialog","DialogTitle","Alert","AlertTitle","DialogContent","DialogContentText","DialogActions","CloudDownloadIcon","IconButton","CloseIcon","TimesheetInstructions","Options","defaultOption","TimesheetConfirmDialog","setDeliveryOption","option","setOption","handleRadioChange","setValue","onSubmit","register","handleSubmit","errors","useForm","Container","Form","FormControl","RadioGroup","FormControlLabel","Radio","SendIcon","dateFormat","currentMonday","initialData","TimesheetForm","csrfToken","recaptchaKey","confirm","setConfirm","loading","setLoading","setSuccess","recaptcha_action","formData","setFormData","dialogOpen","setDialogOpen","deliveryOption","reset","timer","confirmSubmit","submitFormWithRecaptcha","grecaptchaObject","recaptchaToken","submitForm","parseData","_b","_c","payload","config","axios","response","submitButton","LoadingButton","Row","Col","_d","_e","_f","_g","TimesheetUploader","file","setFile","uploading","setUploading","uploaded","setUploaded","errorUploading","setErrorUploading","fileSelected","e","files","uploadFileWithRecaptcha","uploadFile","resetFile","content","TimesheetPasscodeDialog","handleClickOpen","passcode","Link","messageMaxLength","ContactUsForm","ReactOnRails","scrollFunction","navbar"],"mappings":"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"}