{"version":3,"file":"static/chunks/2271-c68adc0bac62b6b7.js","mappings":"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","sources":["webpack://_N_E/./components/booking/day-slot-picker-content.tsx","webpack://_N_E/./components/equipments/multi-days-slot-picker-dialog.tsx","webpack://_N_E/./components/equipments/subscription-payment-success-dialog.tsx","webpack://_N_E/./components/equipments/v2/equipment-and-scientific-pricing.tsx","webpack://_N_E/./components/equipments/v2/price-info.tsx","webpack://_N_E/./components/equipments/v2/request-access.tsx","webpack://_N_E/./components/equipments/v2/equipment-detail.tsx","webpack://_N_E/./components/equipments/v2/training-section.tsx","webpack://_N_E/"],"sourcesContent":["import type { Dayjs } from \"dayjs\";\nimport { useSearchParams } from \"next/navigation\";\nimport { useRouter } from \"next/router\";\nimport { useEffect, useState } from \"react\";\nimport useSWR from \"swr\";\n\nimport { fetchGetEquipmentScheduleData } from \"@/components/booking/api\";\nimport { BOOKING_DT } from \"@/components/booking/constant\";\nimport DatePicker from \"@/components/booking/date-picker\";\nimport { RangeItem } from \"@/components/booking/interfaces\";\nimport { ScrollArea } from \"@/components/ui/scroll-area\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\";\nimport { formatUnitDayUpper, getOffsetFromTimezone } from \"@/lib/time-format\";\nimport { cn as classNames, encodeQueryData } from \"@/lib/utils\";\nimport dayjs from \"@/packages/dayjs\";\n\nconst useSlots = ({\n startTime,\n endTime,\n timeZone,\n duration,\n equipmentSlug,\n type,\n}: {\n startTime?: string;\n endTime?: string;\n timeZone?: string;\n duration?: number;\n enabled?: boolean;\n equipmentSlug: string;\n type?: string;\n}) => {\n const queryData = { start_time: startTime, end_time: endTime, duration };\n const endpoint =\n type === \"scientific-process\"\n ? `equipments/${equipmentSlug}/schedule${encodeQueryData(queryData)}&duration=1&for_sp=true`\n : `equipments/${equipmentSlug}/schedule${encodeQueryData(queryData)}`;\n const { data, isLoading } = useSWR(\n startTime && endTime ? endpoint : null,\n fetchGetEquipmentScheduleData,\n {\n shouldRetryOnError: false,\n },\n );\n\n return {\n slots: data?.time_slots || [],\n off_days: data?.off_days || {},\n trainingDuration: data?.training_duration || 0,\n isLoading,\n };\n};\n\nfunction generateDayRange(minDays: number, maxDays: number) {\n return Array.from({ length: maxDays + 1 - minDays }, (_, i) => i + minDays);\n}\n\nexport interface DaySlotPickerProps {\n equipment: any;\n eventType?: any;\n timeZone?: string;\n bookingAttendees?: number;\n recurringEventCount?: number;\n timeSlotUnit: \"month\" | \"day\";\n weekStart?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n range?: RangeItem;\n onRangeSelect: (time?: RangeItem) => void;\n duration: number;\n}\n\nexport const DaySlotPickerContent = (props: DaySlotPickerProps) => {\n const [browsingDate, setBrowsingDate] = useState();\n const [month, setMonth] = useState(); //YYYY-MM\n const [selectedMap, setSelectedMap] = useState<\n Map | undefined\n >(undefined); // Format: YYYY-MM-DD\n const router = useRouter();\n const [reservationDuration, setReservationDuration] = useState(\n props.duration,\n );\n\n const [availableDurations, setAvailableDurations] = useState(\n props.equipment.time_slot_unit == \"days\"\n ? generateDayRange(\n parseInt(props.equipment.min_booking_duration) || 1,\n parseInt(props.equipment.max_booking_duration) || 1,\n )\n : [1],\n );\n\n const searchParams = useSearchParams();\n const type = searchParams.get(\"type\") || undefined;\n\n useEffect(() => {\n if (!router.isReady) return;\n\n // Etc/GMT is not actually a timeZone, so handle this select option explicitly to prevent a hard crash.\n if (props.timeZone === \"Etc/GMT\") {\n const time = dayjs\n .utc(month)\n .set(\"date\", 1)\n .set(\"hour\", 0)\n .set(\"minute\", 0)\n .set(\"second\", 0);\n setBrowsingDate(time > dayjs() ? time : dayjs().add(1, \"minute\"));\n } else {\n // Set the start of the month without shifting time like startOf() may do.\n const time = dayjs\n .tz(month, props.timeZone)\n .set(\"date\", 1)\n .set(\"hour\", 0)\n .set(\"minute\", 0)\n .set(\"second\", 0);\n setBrowsingDate(\n time > dayjs().tz(props.timeZone)\n ? time\n : dayjs().tz(props.timeZone).add(1, \"minute\"),\n );\n }\n }, [router.isReady, month, props.timeZone]);\n\n let startTime =\n month && String(month) > dayjs().format(\"YYYY-MM\")\n ? browsingDate?.startOf(\"month\").toISOString()\n : dayjs().startOf(\"hour\").toISOString();\n let endTime = browsingDate?.endOf(\"month\").toISOString();\n if (props.timeSlotUnit === \"month\") {\n startTime = dayjs()\n .tz(props.timeZone)\n .add(1, \"day\")\n .startOf(\"day\")\n .toISOString();\n endTime = dayjs()\n .tz(props.timeZone)\n .add(props.equipment.reserve_limit ?? 120, \"day\")\n .startOf(\"day\")\n .toISOString();\n }\n const {\n slots: monthSlots,\n off_days: offDays,\n isLoading,\n } = useSlots({\n startTime: startTime,\n endTime: endTime,\n timeZone: props.timeZone,\n duration: reservationDuration,\n equipmentSlug: props.equipment?.slug || \"\",\n type,\n });\n\n function generateDateList(from: Dayjs, to: Dayjs, offDays: any) {\n const dateList = [];\n let currentDate = from;\n const endDate = to;\n\n while (\n currentDate.isBefore(endDate) ||\n currentDate.isSame(endDate, \"day\")\n ) {\n const dayString = currentDate.format(\"YYYY-MM-DD\");\n if (!offDays[dayString]) {\n dateList.push(dayString);\n }\n\n currentDate = currentDate.add(1, \"day\");\n }\n\n return dateList;\n }\n\n function arrayToMap(arr: any[]) {\n const map = new Map();\n arr.forEach((item) => {\n map.set(item, true);\n });\n return map;\n }\n\n return (\n
\n
\n
\n
\n \n Reservation Duration\n \n {\n setReservationDuration(parseInt(newDuration));\n }}\n disabled={props.equipment.time_slot_unit === \"months\"}\n >\n \n \n \n \n ref?.addEventListener(\"touchend\", (e) => e.preventDefault())\n }\n >\n \n
\n {availableDurations.map((duration: any) => (\n \n {duration}{\" \"}\n {props.equipment.time_slot_unit === \"days\"\n ? duration == 1\n ? \"day\"\n : \"days\"\n : \"month\"}\n \n ))}\n
\n
\n \n \n
\n monthSlots[k].length > 0,\n )}\n locale=\"en\"\n selectedMap={selectedMap}\n onChange={(newDate) => {\n const dayAvailable = monthSlots[newDate.format(\"YYYY-MM-DD\")];\n if (\n (!dayAvailable || dayAvailable.length == 0) &&\n selectedMap != null &&\n selectedMap.size > 0\n ) {\n setSelectedMap(new Map());\n props.onRangeSelect(undefined);\n return;\n }\n\n let dayStartEnd = dayAvailable[0];\n const dateList = generateDateList(\n dayjs(dayStartEnd.start_time).tz(props.timeZone),\n dayjs(dayStartEnd.end_time).tz(props.timeZone),\n offDays,\n );\n const newSelectedMap = arrayToMap(dateList);\n setSelectedMap(newSelectedMap);\n dayStartEnd.duration = reservationDuration;\n props.onRangeSelect(dayStartEnd);\n }}\n onMonthChange={(newMonth) => {\n setMonth(newMonth.format(\"YYYY-MM\"));\n }}\n browsingDate={browsingDate}\n weekStart={props.weekStart}\n timezone={props.timeZone || \"\"}\n />\n
\n
\n
\n
\n
Lab Time Zone
\n
\n \n (UTC {getOffsetFromTimezone(props.timeZone || \"\")}:00){\" \"}\n {props.timeZone || \"\"}\n \n
\n
\n
\n
\n
\n Check-In Date and Time\n
\n {props.range ? (\n <>\n
\n {dayjs(props.range.start_time)\n .tz(props.timeZone || \"\")\n .format(BOOKING_DT)}\n
\n \n ) : (\n <>-\n )}\n
\n
\n
\n Checkout Date and Time\n
\n {props.range ? (\n <>\n
\n {dayjs(props.range.end_time)\n .tz(props.timeZone || \"\")\n .format(BOOKING_DT)}\n
\n \n ) : (\n <>-\n )}\n
\n
\n
\n Reservation Duration\n
\n {props.timeSlotUnit === \"month\" ? (\n
1 Month
\n ) : (\n
\n {reservationDuration}{\" \"}\n {formatUnitDayUpper(reservationDuration)}\n
\n )}\n
\n
\n
\n
\n
\n
\n );\n};\n","import { DialogTitle } from \"@radix-ui/react-dialog\";\n\nimport {\n DaySlotPickerContent,\n DaySlotPickerProps,\n} from \"@/components/booking/day-slot-picker-content\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Dialog,\n DialogContent,\n DialogFooter,\n DialogHeader,\n} from \"@/components/ui/dialog\";\n\nexport interface DaySlotPickerDialogProps extends DaySlotPickerProps {\n onESC: (open: boolean) => void;\n submit: () => void;\n disabledNext: boolean;\n duration: number;\n}\n\nexport function MultiDaySlotPickerDialog(props: DaySlotPickerDialogProps) {\n return (\n props.onESC(false)}>\n \n \n \n
Set Booking Time and Date
\n
\n
\n \n \n {\n props.onESC(false);\n }}\n variant=\"secondary\"\n className=\"md:w-1/2\"\n size=\"lg\"\n >\n Cancel\n \n {\n props.submit();\n }}\n disabled={props.disabledNext}\n className=\"md:w-1/2\"\n size=\"lg\"\n >\n Proceed to payment\n \n \n
\n
\n );\n}\n","import { SubscriptionPlan } from \"@/components/booking/interfaces\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from \"@/components/ui/dialog\";\n\nexport function SubscriptionPaymentSuccessDialog({\n onEsc,\n plan,\n org,\n}: {\n onEsc: () => void;\n plan: SubscriptionPlan;\n org: any;\n}) {\n return (\n \n \n \n Subscription Request Placed\n \n \n
\n Your subscription request has been received. If this is your first\n engagement with this university, you won’t be charged until you\n submit your first booking request and receive university approval.\n
\n
\n \n \n \n
\n
\n );\n}\n","import React from \"react\";\n\ninterface EquipmentAndScientificTagProps {\n text: string;\n}\n\nconst EquipmentAndScientificTag = ({\n text,\n}: EquipmentAndScientificTagProps) => {\n return (\n \n {text}\n \n );\n};\n\nexport default EquipmentAndScientificTag;\n","import React from \"react\";\n\nimport { formatUSD } from \"@/lib/utils\";\n\ninterface PriceInfoProps {\n price: number;\n time_slot_unit: string;\n isInStickyHeader?: boolean;\n}\n\nconst PriceInfo = ({\n price,\n time_slot_unit,\n isInStickyHeader,\n}: PriceInfoProps) => {\n if (!price) return null;\n const unitString =\n time_slot_unit === \"minutes\"\n ? \"/hour\"\n : time_slot_unit === \"days\"\n ? \" / day\"\n : \" / month\";\n\n return (\n
\n {isInStickyHeader ? (\n

{formatUSD(price)}

\n ) : (\n

\n {formatUSD(price)}\n

\n )}\n {isInStickyHeader ? (\n

{unitString}

\n ) : (\n

{unitString}

\n )}\n
\n );\n};\n\nexport default PriceInfo;\n","import React, { useMemo } from \"react\";\n\nimport { EquipmentValues } from \"@/components/new-equipment/interfaces\";\nimport { ButtonLink } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\nimport pagePath from \"@/src/helpers/page-path.helper\";\nimport useAuthStore from \"@/stores/auth-store\";\n\ninterface RequestAccessProps {\n equipment: EquipmentValues;\n userLabProfileStatus: string;\n contractId: number;\n isRequiredSubscription?: boolean;\n isSticky?: boolean;\n userLabProfile?: any;\n labOrgID: number;\n}\n\nconst RequestAccess = ({\n equipment,\n userLabProfileStatus,\n isSticky = false,\n userLabProfile,\n labOrgID,\n}: RequestAccessProps) => {\n const { user } = useAuthStore();\n const backUrl = useMemo(\n () =>\n typeof window !== \"undefined\" ? window.location.pathname : undefined,\n [],\n );\n\n const href = (() => {\n if (!user)\n return `/login?redirect=${backUrl}&referrer_org_id=${equipment.org?.id}&referrer_source=equipment`;\n switch (userLabProfileStatus) {\n case \"new\":\n return pagePath.organizations.access(\n `${equipment.org.slug}-${equipment.org.id}`,\n `/equipments/${equipment?.slug}`,\n \"equipment\",\n Boolean(equipment?.requires_subscription),\n );\n case \"missing_insurance\":\n return pagePath.users.uploadInsurance(\n equipment.org.id,\n `/equipments/${equipment?.slug}`,\n \"equipment\",\n Boolean(equipment?.requires_subscription),\n );\n case \"missing_training_certificates\":\n return pagePath.users.uploadTrainings(\n equipment.org.id,\n `/equipments/${equipment?.slug}`,\n \"equipment\",\n Boolean(equipment?.requires_subscription),\n );\n case \"missing_subscription\":\n return pagePath.organizations.buySubscription(\n equipment.org.id,\n equipment.org.slug,\n `/equipments/${equipment?.slug}`,\n );\n case \"missing_contract\":\n return pagePath.organizations.contracts(\n userLabProfile.required_contract_id,\n labOrgID,\n userLabProfile.registration_type,\n window.location.pathname + window.location.search,\n false,\n );\n case \"declined\":\n return pagePath.organizations.access(\n `${equipment.org.slug}-${equipment.org.id}`,\n `/equipments/${equipment?.slug}`,\n \"equipment\",\n Boolean(equipment?.requires_subscription),\n );\n default:\n return \"default\";\n }\n })();\n\n return (\n
\n \n {userLabProfileStatus === \"missing_subscription\"\n ? \"Buy Subscription\"\n : \"Request Access\"}\n \n {userLabProfileStatus !== \"missing_subscription\" && (\n
\n *Contract and insurance required to access this equipment.\n
\n )}\n
\n );\n};\n\nexport default RequestAccess;\n","import { DialogTitle } from \"@radix-ui/react-dialog\";\nimport { generateHTML } from \"@tiptap/html\";\nimport { Info } from \"lucide-react\";\nimport dynamic from \"next/dynamic\";\nimport { useRouter } from \"next/router\";\nimport { useEffect, useMemo, useState } from \"react\";\n\nimport { RangeItem } from \"@/components/booking/interfaces\";\nimport { SlotPicker } from \"@/components/booking/slot-picker\";\nimport { Breadcrumb } from \"@/components/breadcrumb\";\nimport Divider from \"@/components/common/divider\";\nimport { BookUnavailableButton } from \"@/components/common/unavailable-buttons\";\nimport { MultiDaySlotPickerDialog } from \"@/components/equipments/multi-days-slot-picker-dialog\";\nimport { SubscriptionPaymentSuccessDialog } from \"@/components/equipments/subscription-payment-success-dialog\";\nimport Description from \"@/components/equipments/v2/description\";\nimport EquipmentAndScientificTag from \"@/components/equipments/v2/equipment-and-scientific-pricing\";\nimport { ExtraContent } from \"@/components/equipments/v2/extra-content\";\nimport { LabInfo } from \"@/components/equipments/v2/lab-info\";\nimport OrgInfo from \"@/components/equipments/v2/org-info\";\nimport PriceInfo from \"@/components/equipments/v2/price-info\";\nimport RequestAccess from \"@/components/equipments/v2/request-access\";\nimport Tag from \"@/components/equipments/v2/tag\";\nimport { TrainingSection } from \"@/components/equipments/v2/training-section\";\nimport { EquipmentValues } from \"@/components/new-equipment/interfaces\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Dialog,\n DialogContent,\n DialogFooter,\n DialogHeader,\n} from \"@/components/ui/dialog\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\";\nimport { ToolTipDefault } from \"@/components/ui/tooltip\";\nimport { TIPTAP_EXTENSIONS } from \"@/lib/text\";\nimport { formatUnitDayUpper, hourFromMinutes } from \"@/lib/time-format\";\nimport {\n cn,\n encodeQueryData,\n getListingHomeUrl,\n getUserType,\n isTokenExpired,\n} from \"@/lib/utils\";\nimport userService from \"@/src/services/user.service\";\nimport useAuthStore from \"@/stores/auth-store\";\nimport useSideBarStore from \"@/stores/sidebar-store\";\n\ninterface Props {\n preview?: boolean;\n equipment: EquipmentValues;\n mutate?: () => void;\n}\n\nexport function EquipmentDetail({ preview, equipment, mutate }: Props) {\n const { token } = useAuthStore();\n const { user } = useAuthStore();\n const userType = getUserType(user);\n const router = useRouter();\n const [duration, setDuration] = useState(\n equipment.min_booking_duration as any,\n );\n const [showTimePicker, setShowTimePicker] = useState(false);\n const [showDaySlotPicker, setShowDaySlotPicker] = useState(false);\n const [showMonthSlotPicker, setShowMonthSlotPicker] = useState(false);\n const [currentTime, setCurrentTime] = useState(\"\");\n const [selectedRange, setSelectedRange] = useState(\n undefined,\n );\n const [openSubscriptionPaymentSuccess, setOpenSubscriptionPaymentSuccess] =\n useState(false);\n const { setFocusSwitchBtn } = useSideBarStore();\n const [onsiteTrainingDuration, setOnsiteTrainingDuration] = useState(0);\n\n const [showSticky, setShowSticky] = useState(false);\n\n const handleScroll = (e: Event) => {\n const y = (e.target as HTMLElement).scrollTop;\n setShowSticky(y > 300);\n };\n\n useEffect(() => {\n window.addEventListener(\"scroll\", handleScroll, {\n passive: true,\n capture: true,\n });\n return () => {\n window.removeEventListener(\"scroll\", handleScroll);\n };\n }, []);\n\n const orgId = equipment.org?.id;\n const { data: userLabProfile, isLoading: isLabProfileLoading } =\n userService.useLabProfile(orgId, \"equipment\");\n\n const description = useMemo(() => {\n if (!equipment.description) return \"\";\n return generateHTML(equipment.description, TIPTAP_EXTENSIONS);\n }, [equipment.description]);\n\n const timeRanges = useMemo(() => {\n const arr = [] as any[];\n if (!equipment.max_booking_duration || !equipment.schedule_increment)\n return arr;\n for (\n let minuteItem = parseInt(equipment.min_booking_duration as any);\n minuteItem <= Number(equipment.max_booking_duration);\n minuteItem += parseInt(equipment.schedule_increment as any)\n ) {\n arr.push(minuteItem);\n }\n return arr;\n }, [\n equipment.min_booking_duration,\n equipment.max_booking_duration,\n equipment.schedule_increment,\n ]);\n\n function book() {\n if (preview) return;\n\n if (equipment.time_slot_unit == \"days\") {\n setShowDaySlotPicker(true);\n return;\n }\n\n if (equipment.time_slot_unit == \"months\") {\n setShowMonthSlotPicker(true);\n return;\n }\n\n if (!duration) return;\n setShowTimePicker(true);\n }\n const labName = `${equipment?.org?.name}, ${equipment?.org?.university?.name}`;\n\n function submit() {\n if (token && !isTokenExpired(token)) {\n if (selectedRange) {\n const params = encodeQueryData({\n type: \"equipment\",\n slug: equipment.slug,\n time: selectedRange.start_time,\n end_time: selectedRange.end_time,\n duration: selectedRange.duration ?? 1,\n onsite_training_duration: onsiteTrainingDuration,\n });\n router.push(`/checkout/detail${params}`);\n } else {\n const params = encodeQueryData({\n type: \"equipment\",\n slug: equipment.slug,\n time: currentTime,\n duration,\n onsite_training_duration: onsiteTrainingDuration,\n });\n router.push(`/checkout/detail${params}`);\n }\n } else {\n router.push(\n `/login?redirect=${router.asPath}&referrer_org_id=${org.id}&referrer_source=equipment`,\n );\n }\n }\n\n const PhotoGallery = dynamic(\n () => import(\"@/components/equipments/v2/photo-gallery\"),\n {\n ssr: false,\n },\n );\n\n const isUniversity = userType === \"university\";\n\n const selectSchedule = (isSticky: boolean) => {\n return (\n \n
\n setDuration(Number(v))}\n defaultValue={String(duration)}\n disabled={timeRanges?.length <= 1}\n >\n span]:p2 h-[51px] w-full text-coffee-500\"\n aria-label=\"Select booking duration\"\n >\n \n \n \n
\n {timeRanges.map((item) => (\n
\n span]:p2\">\n {equipment.time_slot_unit == \"minutes\"\n ? hourFromMinutes(item)\n : equipment.time_slot_unit == \"days\"\n ? `${item} ${formatUnitDayUpper(item)}`\n : `1 month`}\n \n
\n ))}\n
\n
\n \n
\n\n {(userType === \"company\" || !user) && (\n \n Check Availability\n \n )}\n \n );\n };\n\n const LabBookingSection = () => {\n return (\n <>\n \n You have to activate and switch to the booking mode from your\n settings to reserve this equipment.\n \n }\n >\n
\n Check Availability\n \n
\n \n \n );\n };\n\n const BookingSection = () => {\n if (isUniversity) {\n return ;\n }\n if (\n !user ||\n [\n \"new\",\n \"missing_insurance\",\n \"missing_contract\",\n \"declined\",\n \"missing_training_certificates\",\n ].includes(userLabProfile?.status) ||\n (userLabProfile?.status === \"missing_subscription\" &&\n equipment?.requires_subscription)\n ) {\n return (\n Boolean(equipment.org) && (\n \n )\n );\n }\n\n if (user?.org?.id === orgId) {\n return (\n \n );\n }\n\n if (\n !userLabProfile?.required_contract_id &&\n [\"new\", \"declined\"].includes(userLabProfile?.status)\n ) {\n return (\n \n );\n }\n\n return selectSchedule(false);\n };\n\n const org = equipment?.org;\n const minDuration = parseInt(equipment.min_booking_duration as any);\n const maxDuration = parseInt(equipment.max_booking_duration as any);\n\n const BookingSectionSticky = () => {\n if (isUniversity) {\n return ;\n }\n if (\n !user ||\n [\n \"new\",\n \"missing_insurance\",\n \"declined\",\n \"missing_training_certificates\",\n ].includes(userLabProfile?.status) ||\n (userLabProfile?.status === \"missing_subscription\" &&\n equipment?.requires_subscription)\n ) {\n return (\n Boolean(equipment.org) && (\n \n )\n );\n }\n\n if (user?.org?.id === orgId) {\n return (\n \n );\n }\n\n if (\n !userLabProfile?.required_contract_id &&\n [\"new\", \"declined\"].includes(userLabProfile?.status)\n ) {\n return (\n \n );\n }\n\n return selectSchedule(true);\n };\n\n const EquipmentStickyHeader = () => {\n return (\n \n
\n \n
\n
\n

\n Get On-demand Access to {equipment.name}\n

\n {!equipment.price_included_in_subscription && (\n \n )}\n
\n\n {!isLabProfileLoading && }\n
\n
\n \n );\n };\n\n return (\n
\n
\n \n\n
\n \n
\n\n
\n
\n \n\n {/* TODO: Discuss with design to make this consistent with SEO: SEO needs tag to be h1, but design style is h2 */}\n
\n

\n Get On-demand Access to {equipment.name}{\" \"}\n {equipment.requires_subscription &&\n equipment.price_included_in_subscription &&\n !equipment.user_subscription && (\n \n )}\n {equipment.requires_subscription &&\n !equipment.price_included_in_subscription &&\n !equipment.user_subscription && (\n \n )}\n {equipment.user_subscription && (\n \n )}\n

\n {!equipment.price_included_in_subscription && (\n \n )}\n
\n\n
\n \n
\n\n
\n {/*

Description

\n */}\n \n
\n\n {!isLabProfileLoading && (\n
\n \n
\n )}\n\n \n\n \n\n
\n \n
\n
\n \n
\n\n \n
\n
\n\n {showTimePicker && !!duration && (\n setShowTimePicker(false)}>\n \n \n \n
\n {equipment.time_slot_unit == \"minutes\"\n ? \"Set Booking Time and Date\"\n : \"Set Booking Date\"}\n
\n
\n
\n {!!onsiteTrainingDuration && (\n
\n \"info\"\n {`A mandatory ${equipment.onsite_training_duration}-minute on-site training is required for this booking and will be added to your booking time.`}\n
\n )}\n {\n setCurrentTime(time);\n }}\n setDuration={setDuration}\n />\n \n {\n setShowTimePicker(false);\n }}\n variant=\"secondary\"\n className=\"md:w-1/2\"\n size=\"lg\"\n >\n Cancel\n \n \n Proceed to payment\n \n \n
\n
\n )}\n\n {showDaySlotPicker && (\n {\n setSelectedRange(rg);\n }}\n disabledNext={!selectedRange}\n onESC={() => {\n setShowDaySlotPicker(false);\n }}\n submit={submit}\n />\n )}\n\n {showMonthSlotPicker && (\n {\n setSelectedRange(rg);\n }}\n disabledNext={!selectedRange}\n onESC={() => {\n setShowMonthSlotPicker(false);\n }}\n submit={submit}\n />\n )}\n\n {openSubscriptionPaymentSuccess && (\n {\n setOpenSubscriptionPaymentSuccess(false);\n }}\n plan={(equipment.subscription_plans ?? [])[0]}\n org={equipment.org}\n />\n )}\n
\n
\n );\n}\n","import { useRouter } from \"next/navigation\";\n\nimport Divider from \"@/components/common/divider\";\nimport ExtraContentItem from \"@/components/equipments/v2/extra-content-item\";\nimport { Training } from \"@/components/new-equipment/interfaces\";\n\nexport function TrainingSection({\n trainings,\n onsiteTrainingDescription,\n}: {\n trainings: Training[] | undefined;\n onsiteTrainingDescription: string | undefined;\n}) {\n const hasTrainingCert = Array.isArray(trainings) && trainings.length > 0;\n const hasOnsiteTraining = !!onsiteTrainingDescription;\n\n const router = useRouter();\n\n return (\n (hasTrainingCert || hasOnsiteTraining) && (\n
\n
\n List of Trainings Required by the Lab\n
\n\n {hasTrainingCert && (\n <>\n {\" \"}\n
    \n {trainings?.map((training) => (\n router.push(training.link)}\n >\n \n {training.subject}\n \n \n ))}\n
\n \n \n )}\n\n {hasOnsiteTraining && (\n <>\n
\n \n
\n \n \n )}\n
\n )\n );\n}\n"],"names":["useSlots","startTime","endTime","timeZone","duration","equipmentSlug","type","param","queryData","start_time","end_time","endpoint","encodeQueryData","concat","data","isLoading","useSWR","fetchGetEquipmentScheduleData","shouldRetryOnError","slots","time_slots","off_days","trainingDuration","training_duration","DaySlotPickerContent","props","minDays","browsingDate","setBrowsingDate","useState","month","setMonth","selectedMap","setSelectedMap","undefined","router","useRouter","reservationDuration","setReservationDuration","availableDurations","setAvailableDurations","equipment","time_slot_unit","parseInt","min_booking_duration","Array","from","length","maxDays","max_booking_duration","_","i","searchParams","useSearchParams","get","useEffect","isReady","time","dayjs","utc","set","add","tz","String","format","startOf","toISOString","endOf","timeSlotUnit","reserve_limit","monthSlots","offDays","slug","jsx_runtime","jsx","div","className","jsxs","classNames","span","Select","value","onValueChange","newDuration","disabled","SelectTrigger","SelectValue","SelectContent","ref","addEventListener","e","preventDefault","ScrollArea","map","SelectItem","DatePicker","includedDates","Object","keys","filter","k","locale","onChange","dayAvailable","newDate","size","Map","onRangeSelect","dayStartEnd","dateList","generateDateList","to","currentDate","isBefore","isSame","dayString","push","newSelectedMap","arrayToMap","arr","forEach","item","onMonthChange","newMonth","weekStart","timezone","getOffsetFromTimezone","range","Fragment","BOOKING_DT","formatUnitDayUpper","MultiDaySlotPickerDialog","Dialog","defaultOpen","onOpenChange","onESC","DialogContent","DialogHeader","DialogTitle","eventType","id","DialogFooter","Button","onClick","variant","submit","disabledNext","SubscriptionPaymentSuccessDialog","onEsc","plan","org","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","DialogDescription","__webpack_exports__","Z","text","price_info","price","isInStickyHeader","unitString","p","formatUSD","h2","h3","request_access","userLabProfileStatus","isSticky","userLabProfile","labOrgID","user","useAuthStore","backUrl","useMemo","window","location","pathname","href","pagePath","organizations","access","Boolean","requires_subscription","users","uploadInsurance","uploadTrainings","buySubscription","contracts","required_contract_id","registration_type","search","ButtonLink","cn","EquipmentDetail","preview","mutate","token","userType","getUserType","setDuration","showTimePicker","setShowTimePicker","showDaySlotPicker","setShowDaySlotPicker","showMonthSlotPicker","setShowMonthSlotPicker","currentTime","setCurrentTime","selectedRange","setSelectedRange","openSubscriptionPaymentSuccess","setOpenSubscriptionPaymentSuccess","setFocusSwitchBtn","useSideBarStore","onsiteTrainingDuration","setOnsiteTrainingDuration","showSticky","setShowSticky","handleScroll","y","target","scrollTop","passive","capture","removeEventListener","orgId","isLabProfileLoading","userService","useLabProfile","description","generateHTML","TIPTAP_EXTENSIONS","timeRanges","schedule_increment","minuteItem","Number","book","labName","name","university","isTokenExpired","params","onsite_training_duration","asPath","PhotoGallery","dynamic","Promise","all","__webpack_require__","then","bind","ssr","isUniversity","selectSchedule","v","defaultValue","aria-label","placeholder","hourFromMinutes","LabBookingSection","ToolTipDefault","content","Info","minDuration","maxDuration","BookingSectionSticky","includes","status","RequestAccess","contractId","BookUnavailableButton","Breadcrumb","list","link","getListingHomeUrl","Tag","price_included_in_subscription","PriceInfo","EquipmentStickyHeader","h1","user_subscription","EquipmentAndScientificTag","OrgInfo","universityName","orgName","manufacturer","fixedDaysNumber","Description","tags","BookingSection","Divider","photos","photoClassName","thumbnailClassName","ExtraContent","faqs","accessGuidelines","access_guidelines","customFields","custom_fields","labRules","lab_rules","usage","help","TrainingSection","trainings","onsiteTrainingDescription","onsite_training_requirement_type","onsite_training_desc","LabInfo","listing","img","src","alt","SlotPicker","onTimeSelect","rg","subscription_plans","hasTrainingCert","isArray","hasOnsiteTraining","h6","ul","li","training","a","subject","ExtraContentItem","title"],"sourceRoot":""}