{"version":3,"file":"static/chunks/2411-5eeca32449d63f98.js","mappings":"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","sources":["webpack://_N_E/./src/svg/CameraVideo.svg","webpack://_N_E/./src/svg/Colapse.svg","webpack://_N_E/./src/svg/Expand.svg","webpack://_N_E/./src/assets/icons/BookedCheck.tsx","webpack://_N_E/./src/components/JobSectionList/JobSectionList.tsx","webpack://_N_E/./src/components/RadioButton/RadioButton.tsx","webpack://_N_E/./src/components/SearchBar/SearchBar.tsx","webpack://_N_E/./src/lib/utils/jobsHelper.ts","webpack://_N_E/./src/lib/utils/statuses.tsx"],"sourcesContent":["export default {\"src\":\"/_next/static/media/CameraVideo.f28cca92.svg\",\"height\":18,\"width\":18};","export default {\"src\":\"/_next/static/media/Colapse.9723b442.svg\",\"height\":20,\"width\":20};","export default {\"src\":\"/_next/static/media/Expand.2ffe8931.svg\",\"height\":20,\"width\":20};","const BookedCheck = ({ color }: { color?: string }): JSX.Element => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport { BookedCheck };\n","import { ReactNode, useState } from 'react';\nimport { Badge, Col, Collapse, Row, Table, Tag } from 'antd';\nimport type { ColumnsType } from 'antd/es/table';\nimport styled from 'styled-components';\n\nimport { getMainLayout } from '@layouts/MainLayout';\nimport { useCountryWording } from '@lib/geotargeting';\nimport { STATUS_CHECK_LABEL } from '@lib/utils/statuses';\nimport theme from '@styles/theme';\n\nimport ColapseIcon from '../../svg/Colapse.svg';\nimport ExpandIcon from '../../svg/Expand.svg';\n\ninterface DataType {\n key: string;\n projectname: any;\n role: string;\n location: string;\n dates: any;\n status: any;\n tags: string[];\n}\n\ninterface JobItemType {\n list_membership_id?: string | number;\n projectname: ReactNode;\n role: string;\n location: string;\n dates: ReactNode;\n status: string[];\n tags: string[];\n notification_id?: string;\n}\n\ninterface JobSectionListProps {\n defaultActiveKey?: string[];\n onClick: (item: JobItemType) => void;\n sectionTitle: string;\n badgeCount: ReactNode;\n data: JobItemType[];\n availChecksBookingsData?: JobItemType[];\n availChecksBookingsOnClick?: (item: JobItemType) => void;\n}\n\nconst columns: ColumnsType = [\n {\n title: 'Project Name',\n width: '400px',\n dataIndex: 'projectname',\n key: 'projectname',\n },\n {\n title: 'Role',\n width: '300px',\n dataIndex: 'role',\n key: 'role',\n },\n {\n title: 'Region',\n width: '300px',\n dataIndex: 'location',\n key: 'location',\n },\n {\n title: 'Date(s)',\n width: '300px',\n key: 'dates',\n dataIndex: 'dates',\n },\n {\n title: 'Status',\n width: '300px',\n key: 'status',\n dataIndex: 'status',\n render: (_, { tags }) => (\n <>\n {tags.map((tag) => {\n let color;\n let textColor = '#FFFFFF';\n switch (tag) {\n case 'Avail Check':\n color = '#FFBB0E';\n textColor = '#000000';\n break;\n case 'Available':\n color = '#8551D9';\n break;\n case STATUS_CHECK_LABEL:\n color = '#F89020';\n break;\n case 'Avail Confirmed':\n color = '#14984C';\n break;\n case 'Released':\n color = '#494949';\n break;\n case 'Expired':\n color = '#868686';\n break;\n case 'Booked':\n color = theme.palette.primary[0];\n break;\n case 'Unavailable':\n case 'Denied':\n case 'Canceled':\n case 'Canceled w/ Pay':\n case 'No Show':\n color = '#E14A4A';\n break;\n case 'Misc Message':\n color = '#ECECEC';\n textColor = '#494949';\n break;\n case '':\n default:\n color = theme.palette.primary[0];\n break;\n }\n return (\n \n {tag}\n \n );\n })}\n \n ),\n },\n];\n\nconst mobileStatusColor = (tag) => {\n switch (tag) {\n case 'Avail Check':\n return '#FFBB0E';\n case 'Available':\n return '#8551D9';\n case STATUS_CHECK_LABEL:\n return '#F89020';\n case 'Avail Confirmed':\n return '#14984C';\n case 'Released':\n return '#494949';\n case 'Expired':\n return '#868686';\n case 'Booked':\n return theme.palette.primary[0];\n case 'Unavailable':\n case 'Denied':\n case 'Canceled':\n case 'Canceled w/ Pay':\n case 'No Show':\n return '#E14A4A';\n case 'first_available':\n return theme.palette.primary[0];\n case 'Misc Message':\n return '#ECECEC';\n case '':\n default:\n return theme.palette.primary[0];\n }\n};\n\nconst JobSectionList = (props: JobSectionListProps): JSX.Element => {\n const { getCountryWording } = useCountryWording();\n // const [isMobile, setIsMobile] = useState(false);\n const [isExpanded, setIsExpanded] = useState(false);\n const isMobile = window.innerWidth <= 768;\n\n let showBadge = false;\n if (props.sectionTitle === 'Action Required') {\n showBadge = true;\n }\n let showBookCount = false;\n if (\n props.sectionTitle === 'Bookings' ||\n props.sectionTitle === 'Avail Checks' ||\n props.sectionTitle === getCountryWording('status_checks', 'capitalize')\n ) {\n showBookCount = true;\n }\n\n const toggleExpand = () => {\n setIsExpanded(!isExpanded);\n };\n const expandIcon = ({ isActive }) => {\n return isActive ? (\n Colapse Icon\n ) : (\n Expand Icon\n );\n };\n\n const combinedData = props.availChecksBookingsData\n ? [\n ...props.data.map((item) => ({ ...item, source: 'data' })),\n ...props.availChecksBookingsData.map((item) => ({\n ...item,\n source: 'availChecksBookings',\n })),\n ]\n : props.data.map((item) => ({ ...item, source: 'data' }));\n\n return (\n <>\n \n \n {props.sectionTitle} {showBookCount && `(${props.badgeCount})`}{' '}\n {showBadge && }\n \n }\n >\n {combinedData.length > 0 ? (\n isMobile ? (\n <>\n \n {combinedData.map((item, index) => (\n {\n if (item.source === 'data') {\n props.onClick(item);\n } else if (item.source === 'availChecksBookings') {\n props.availChecksBookingsOnClick(item);\n }\n }}\n style={{ borderTop: '1px solid #D8D8D8' }}\n >\n \n \n {item.projectname}\n {item.role}\n {item.dates}\n \n \n \n {item.tags}\n \n \n \n \n ))}\n \n \n ) : (\n // \n ({\n ...item,\n onClick: () => {\n if (item.source === 'data' && props.onClick) {\n props.onClick(item);\n } else if (\n item.source === 'availChecksBookings' &&\n props.availChecksBookingsOnClick\n ) {\n props.availChecksBookingsOnClick(item);\n }\n },\n }))}\n onRow={(record: any) => ({\n onClick: () => {\n if (record.source === 'data' && props.onClick) {\n props.onClick(record);\n } else if (\n record.source === 'availChecksBookings' &&\n props.availChecksBookingsOnClick\n ) {\n props.availChecksBookingsOnClick(record);\n }\n },\n })}\n />\n )\n ) : null}\n \n \n \n );\n};\n\nJobSectionList.getLayout = getMainLayout;\n\nexport default JobSectionList;\n\nconst StyledTable = styled(Table)`\n && {\n width: 100%;\n border: 1px solid #d8d8d8;\n border-radius: 8px;\n }\n .ant-table-tbody > tr > td {\n border-top: 1px solid #d8d8d8;\n }\n`;\nconst CustomCollapse = styled(Collapse.Panel)`\n &&& .ant-collapse-content-box {\n padding: 0px !important;\n }\n`;\nconst JobList = styled.div`\n display: grid;\n`;\n\nconst JobItem = styled.div`\n background: #fff;\n padding: 20px;\n cursor: pointer;\n`;\n\nconst JobTitle = styled.h3`\n font-family: Inter;\n font-size: 16px;\n font-weight: 600;\n margin: 0;\n`;\n\nconst JobRole = styled.p`\n font-family: Inter;\n font-size: 14px;\n font-weight: 400;\n margin: 5px 0;\n width: 300px;\n`;\n\nconst JobDates = styled.p`\n font-family: Inter;\n font-size: 14px;\n font-weight: 400;\n margin: 5px 0;\n`;\n\nconst JobStatus = styled.p`\n font-family: Inter;\n font-size: 14px;\n font-weight: 400;\n margin: 0;\n border-radius: 5px;\n text-align: center;\n color: #fdfdfd;\n`;\n","import { useState } from 'react';\nimport router from 'next/router';\nimport { Badge, Radio } from 'antd';\nimport styled from 'styled-components';\n\nimport { getMainLayout } from '@layouts/MainLayout';\nimport { useCountryWording } from '@lib/geotargeting';\nimport theme from '@styles/theme';\n\nconst RadioButton = (props) => {\n const [status, setStatus] = useState(props.status);\n\n const getButtonStyle = (value) => {\n if (value === 'invite') {\n return {\n backgroundColor: '#F8BC20',\n color: 'black',\n height: '39px',\n lineHeight: '39px',\n fontSize: '12px',\n fontFamily: 'Inter',\n fontWeight: '600',\n letterSpacing: '0em',\n };\n } else if (value === 'avail') {\n return {\n backgroundColor: '#14984C',\n color: 'white',\n height: '39px',\n lineHeight: '39px',\n fontSize: '12px',\n fontFamily: 'Inter',\n fontWeight: '600',\n letterSpacing: '0em',\n };\n } else if (value === 'booked') {\n return {\n backgroundColor: theme.palette.primary[0],\n color: 'white',\n height: '39px',\n lineHeight: '39px',\n fontSize: '12px',\n fontFamily: 'Inter',\n fontWeight: '600',\n letterSpacing: '0em',\n };\n }\n return { backgroundColor: '#ECECEC', color: 'black' };\n };\n\n const handleButtonClick = (route) => {\n router.push(route);\n if (props.onButtonClick) {\n props.onButtonClick(route);\n }\n };\n\n const handleRadioChange = (e) => {\n setStatus(e.target.value);\n if (props.handleMenuChange) {\n props.handleMenuChange(e);\n }\n };\n\n const { getCountryWording } = useCountryWording();\n\n return (\n \n \n handleButtonClick('AvailChecks')}\n >\n {getCountryWording('invites', 'capitalize')}{' '}\n \n \n handleButtonClick('StatusChecks')}\n >\n {getCountryWording('status_checks', 'capitalize', 'short')}{' '}\n \n \n handleButtonClick('Bookings')}\n >\n Bookings \n \n \n \n );\n};\n\nRadioButton.getLayout = (page) => {\n return getMainLayout(page);\n};\n\nexport default RadioButton;\n\nconst RadioButtonContainer = styled.div`\n .ant-radio-group {\n background-color: #ececec;\n border-start-start-radius: 50px;\n border-end-start-radius: 50px;\n border-start-end-radius: 50px;\n border-end-end-radius: 50px;\n }\n @media (max-width: 767px) {\n margin-left: 15px;\n }\n\n .ant-radio-button-wrapper {\n border: none;\n }\n\n .ant-radio-button-wrapper:first-child {\n border-start-start-radius: 50px;\n border-end-start-radius: 50px;\n border-start-end-radius: 50px;\n border-end-end-radius: 50px;\n }\n\n .ant-radio-button-wrapper {\n border-start-start-radius: 50px;\n border-end-start-radius: 50px;\n border-start-end-radius: 50px;\n border-end-end-radius: 50px;\n }\n\n .ant-radio-button-wrapper:last-child {\n border-start-end-radius: 50px;\n border-end-end-radius: 50px;\n border-start-start-radius: 50px;\n border-end-start-radius: 50px;\n }\n .ant-radio-button-wrapper:not(:first-child)::before {\n background-color: #ececec;\n }\n\n .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled)::before {\n background-color: #ececec;\n }\n`;\n\nconst BadgeWrapper = styled(Badge)`\n .ant-badge-count {\n background: #e14a4a;\n box-shadow: none;\n\n font-weight: 700;\n font-size: 11px;\n\n width: 100%;\n }\n`;\n","import type { InputProps } from 'antd';\nimport { Input } from 'antd';\nimport styled from 'styled-components';\n\nimport { SearchOutlined } from '@ant-design/icons';\n\nconst SearchBar = ({ placeholder, ...otherProps }: InputProps): JSX.Element => {\n return (\n }\n {...otherProps}\n />\n );\n};\n\nconst StyledInput = styled(Input)`\n &.ant-input-affix-wrapper {\n padding: 8px 10px;\n font-size: ${(props) => props.theme.palette.textFontSize[7]};\n border: ${(props) => `1px solid ${props.theme.palette.border[2]}`};\n border-color: #d8d8d8;\n\n border-radius: 4px;\n\n &:hover {\n border-color: ${(props) => props.theme.palette.primary[0]};\n }\n\n &:active,\n &.ant-input-affix-wrapper-focused {\n border-color: ${(props) => props.theme.palette.primary[0]};\n box-shadow: ${(props) => props.theme.palette.shadow[1]};\n }\n\n input::placeholder {\n color: ${(props) => props.theme.palette.greyscale[5]};\n }\n\n svg {\n color: ${(props) => props.theme.palette.greyscale[5]};\n width: 1.3em;\n height: 1.3em;\n }\n }\n`;\n\nexport default SearchBar;\n","import dayjs from 'dayjs';\n\nimport { INVALID_DATE_DAY_JS } from './stringHelper';\n\nexport const getFormattedDateRange = (\n dates: string[],\n isUk = false\n): string => {\n return dates\n ?.map((date) => {\n if (isUk) {\n const formattedDate = dayjs(date).format('D/M');\n return formattedDate === INVALID_DATE_DAY_JS ? date : formattedDate;\n }\n const [_, month, day] = date.split('-');\n return `${parseInt(month)}/${parseInt(day)}`;\n })\n .join(', ');\n};\n\nexport const getUnitToDatesMap = (\n bookingDatesObj: BookingDatesObj\n): { [unit: string]: string[] } =>\n Object.keys(bookingDatesObj).reduce((acc, curr) => {\n bookingDatesObj[curr].forEach((bookingDate) => {\n if (curr in acc) {\n acc[curr].push(bookingDate.booking_date);\n } else {\n acc[curr] = [bookingDate.booking_date];\n }\n });\n return acc;\n }, {});\n\nexport const convertDateFormat = (inputDate: string): string => {\n const dateParts = inputDate.split('-');\n const convertedDate = `${dateParts[1]}/${dateParts[2]}/${dateParts[0].slice(\n 2\n )}`;\n return convertedDate;\n};\n\nexport const getFormattedDates = (dates: string[], userSelectedCountry: ProductionCountry): string[] =>\n dates\n ? dates\n .map((date) => date.replace(/\\//g, '-')) // Ensure consistent \"YYYY-MM-DD\" format\n .sort((a, b) => new Date(a).getTime() - new Date(b).getTime()) // New sorting logic with Date objects\n .map((date, i) => {\n const [_, month, day] = date.split('-');\n const formattedDateString = userSelectedCountry === \"UK\" ? `${day}/${month}` : `${month}/${day}`;\n return i === 0 ? formattedDateString : `, ${formattedDateString}`;\n })\n : [];\n\nexport const formatPrice = (price?: string): string => {\n if (!price) return '';\n const hasDollarSign = price.startsWith('$');\n const value = hasDollarSign ? price.slice(1) : price;\n const [numericValue, ...rest] = value.split('/');\n\n const formattedValue =\n Number(numericValue) % 1 ? Number(numericValue).toFixed(2) : numericValue;\n return `${hasDollarSign ? '$' : ''}${formattedValue}${\n rest.length ? '/' : ''\n }${rest}`;\n};","import { NextRouter } from 'next/router';\n\nimport { BookedCheck } from '@assets/icons/BookedCheck';\nimport theme from '@styles/theme';\n\n// made these arrays in case more data needs to be added\n// without breaking existing implementations\n\nexport const STATUS_CHECK_LABEL = 'Status Check';\n\ntype JobPage = 'booked' | 'invited' | 'availed';\n\nexport const AVAIL_CHECK_STATUS_TO_LABEL_MAP = {\n invited: 'Avail Check',\n submitted: 'Available',\n unavailable: 'Unavailable',\n released: 'Released',\n misc_message_list: 'Misc Message',\n};\n\nexport const STATUS_CHECK_STATUS_TO_LABEL_MAP = {\n available_unconfirmed: STATUS_CHECK_LABEL,\n first_available: 'Avail Confirmed',\n released: 'Released',\n denied: 'Denied',\n misc_message_list: 'Misc Message',\n};\n\nexport const BOOKINGS_STATUS_TO_LABEL_MAP = {\n booked: 'Booked',\n booked_confirmed: (\n \n Booked \n \n ),\n canceled: 'Canceled',\n canceled_w_pay: 'Canceled w/ Pay',\n no_show: 'No Show',\n misc_message_bookings: 'Misc Message',\n released: 'Released',\n};\n\nconst JOB_PAGE_TO_STATUS_MAP = {\n invited: Object.keys(AVAIL_CHECK_STATUS_TO_LABEL_MAP).concat(null),\n availed: Object.keys(STATUS_CHECK_STATUS_TO_LABEL_MAP),\n booked: Object.keys(BOOKINGS_STATUS_TO_LABEL_MAP),\n};\n\nexport const checkJobPageStatus = (\n status: string,\n jobPage: JobPage,\n router: NextRouter\n) => {\n if (JOB_PAGE_TO_STATUS_MAP[jobPage].includes(status)) {\n return;\n } else if (JOB_PAGE_TO_STATUS_MAP.invited.includes(status)) {\n router.push('/jobs/AvailChecks');\n } else if (JOB_PAGE_TO_STATUS_MAP.availed.includes(status)) {\n router.push('/jobs/StatusChecks');\n } else if (JOB_PAGE_TO_STATUS_MAP.booked.includes(status)) {\n router.push('/jobs/Bookings');\n }\n};\n\nexport const FRONTEND_GENERATED_MESSAGE_TYPES = [\n 'submitted',\n 'unavailable',\n 'available_confirmed',\n 'denied',\n 'no_show',\n 'canceled',\n];\n\nexport const BACKEND_GENERATED_MESSAGE_TYPES = [\n 'invited',\n 'available_unconfirmed',\n 'released',\n 'booked',\n 'booked_confirmed',\n 'misc_message_lists',\n 'misc_message_bookings',\n 'canceled_w_pay',\n];\n\nexport const BOOKING_STATUS_FORMATTING = {\n available_unconfirmed: { backgroundColor: theme.palette.color[1] },\n first_available: { backgroundColor: theme.palette.color[2] },\n booked: { backgroundColor: theme.palette.primary[0] },\n booked_confirmed: {\n backgroundColor: theme.palette.primary[0],\n icon: BookedCheck,\n },\n released: { backgroundColor: theme.palette.greyscale[6] },\n canceled: { backgroundColor: theme.palette.color[0] },\n canceled_w_pay: { backgroundColor: theme.palette.color[0] },\n no_show: { backgroundColor: theme.palette.color[0] },\n denied: { backgroundColor: theme.palette.color[0] },\n} as const;\n\nexport const BOOKING_STATUS_OPTIONS = [\n {\n text: STATUS_CHECK_LABEL,\n abbrev: STATUS_CHECK_LABEL,\n value: 'available_unconfirmed',\n },\n {\n text: 'Avail Conf.',\n abbrev: 'Avail Conf.',\n value: 'first_available',\n },\n { text: 'Booked', abbrev: 'Booked', value: 'booked' },\n {\n text: 'Booked \\u2713',\n abbrev: 'Booked \\u2713',\n value: 'booked_confirmed',\n },\n { text: 'Released', abbrev: 'Released', value: 'released' },\n {\n text: 'Canceled',\n abbrev: 'Canceled',\n value: 'canceled',\n ukText: 'Cancelled',\n ukAbbrev: 'Cancelled',\n },\n {\n text: 'Canceled w/ Pay',\n abbrev: 'Canceled w/ Pay',\n value: 'canceled_w_pay',\n ukText: 'Cancelled w/ Pay',\n ukAbbrev: 'Cancelled w/ Pay',\n },\n { text: 'No Show', abbrev: 'No Show', value: 'no_show' },\n { text: 'Denied', abbrev: 'Denied', value: 'denied' },\n];\n"],"names":["BookedCheck","color","svg","width","height","viewBox","fill","xmlns","g","filter","path","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","defs","id","x","y","filterUnits","colorInterpolationFilters","feFlood","floodOpacity","result","feColorMatrix","in","type","values","feOffset","dy","feGaussianBlur","stdDeviation","feComposite","in2","operator","feBlend","mode","columns","title","dataIndex","key","render","_","tags","map","tag","textColor","STATUS_CHECK_LABEL","theme","Tag","style","backgroundColor","mobileStatusColor","JobSectionList","props","useCountryWording","getCountryWording","useState","isExpanded","setIsExpanded","isMobile","window","innerWidth","showBadge","sectionTitle","showBookCount","combinedData","availChecksBookingsData","data","item","source","Collapse","paddingBottom","defaultActiveKey","ghost","expandIcon","isActive","img","src","ColapseIcon","alt","ExpandIcon","onChange","CustomCollapse","header","span","fontWeight","badgeCount","Badge","count","length","JobList","index","JobItem","onClick","availChecksBookingsOnClick","borderTop","Row","Col","JobTitle","projectname","JobRole","role","JobDates","dates","display","justifyContent","JobStatus","padding","borderRadius","fontSize","lineHeight","alignItems","whiteSpace","StyledTable","cursor","pagination","dataSource","onRow","record","getLayout","getMainLayout","styled","Table","RadioButton","status","setStatus","getButtonStyle","value","fontFamily","letterSpacing","handleButtonClick","route","router","onButtonClick","RadioButtonContainer","Radio","defaultValue","e","target","handleMenuChange","BadgeWrapper","badgeCountInvites","badgeCountAvailChecks","badgeCountBookings","page","StyledInput","Input","palette","textFontSize","border","primary","shadow","greyscale","placeholder","otherProps","prefix","SearchOutlined","getFormattedDateRange","isUk","date","formattedDate","dayjs","format","INVALID_DATE_DAY_JS","split","month","day","parseInt","join","getUnitToDatesMap","bookingDatesObj","Object","keys","reduce","acc","curr","forEach","bookingDate","push","booking_date","convertDateFormat","inputDate","dateParts","slice","getFormattedDates","userSelectedCountry","replace","sort","a","b","Date","getTime","i","formattedDateString","formatPrice","price","hasDollarSign","startsWith","numericValue","formattedValue","Number","toFixed","rest","AVAIL_CHECK_STATUS_TO_LABEL_MAP","invited","submitted","unavailable","released","misc_message_list","STATUS_CHECK_STATUS_TO_LABEL_MAP","available_unconfirmed","first_available","denied","BOOKINGS_STATUS_TO_LABEL_MAP","booked","booked_confirmed","canceled","canceled_w_pay","no_show","misc_message_bookings","JOB_PAGE_TO_STATUS_MAP","concat","availed","checkJobPageStatus","jobPage","includes","BACKEND_GENERATED_MESSAGE_TYPES","BOOKING_STATUS_FORMATTING","icon","BOOKING_STATUS_OPTIONS","text","abbrev","ukText","ukAbbrev"],"sourceRoot":""}