{"version":3,"file":"static/chunks/app/[locale]/(pdp)/meeting-rooms/[locationSlug]/[slug]/page-ac989a035d168262.js","mappings":"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","sources":["webpack://_N_E/?3606","webpack://_N_E/./components/form/Datepicker/DatepickerItem.tsx","webpack://_N_E/./app/[locale]/(pdp)/meeting-rooms/[locationSlug]/[slug]/_components/DateTimeReservationForm.tsx","webpack://_N_E/./app/[locale]/(pdp)/meeting-rooms/[locationSlug]/[slug]/_components/GTMEvents.tsx","webpack://_N_E/./app/[locale]/(pdp)/meeting-rooms/[locationSlug]/[slug]/_components/MobileDateTimeFooter.tsx","webpack://_N_E/./app/[locale]/(pdp)/meeting-rooms/[locationSlug]/[slug]/_components/MobileDateTimePickerModal.tsx","webpack://_N_E/./app/[locale]/(pdp)/meeting-rooms/[locationSlug]/[slug]/_components/MobileDateTimePicker.tsx","webpack://_N_E/./app/[locale]/(pdp)/meeting-rooms/[locationSlug]/[slug]/_components/ToggleReservationFlexibilityButtonGroup.tsx","webpack://_N_E/./app/[locale]/(pdp)/meeting-rooms/[locationSlug]/[slug]/_components/TotalPrice.tsx","webpack://_N_E/./app/[locale]/(pdp)/meeting-rooms/[locationSlug]/[slug]/_components/types.ts","webpack://_N_E/./components/FormattedPriceText.tsx","webpack://_N_E/./components/Header/constants.ts","webpack://_N_E/./components/Link.tsx","webpack://_N_E/./components/SubContentWithTitle.tsx","webpack://_N_E/./components/buttons/Button.tsx","webpack://_N_E/./components/buttons/PrimaryButton.tsx","webpack://_N_E/./components/DatePickerInput.tsx","webpack://_N_E/./components/form/DatePickerInput/DatePickerInputItem.tsx","webpack://_N_E/./components/form/Switch/SwitchItem.tsx","webpack://_N_E/./components/form/TimeSelect/TimeSelectItemCustom.tsx","webpack://_N_E/./components/form/shared/FormItem.tsx","webpack://_N_E/./components/gallery/GalleryMatterport.tsx","webpack://_N_E/./components/gallery/GalleryButton.tsx","webpack://_N_E/./components/gallery/GallerySummaryImage.tsx","webpack://_N_E/./components/gallery/GallerySummaryImages.tsx","webpack://_N_E/./components/gallery/GallerySummary.tsx","webpack://_N_E/./components/map/StaticMap.tsx","webpack://_N_E/./components/search/CancellationPolicyBanner.tsx","webpack://_N_E/./components/search/filters/FilterButton.tsx","webpack://_N_E/./hooks/useDateUtils.tsx","webpack://_N_E/./hooks/useMeetingRoomReservationPicker.tsx","webpack://_N_E/./hooks/useRouter.tsx","webpack://_N_E/./lib/meeting-rooms/meeting-room-api.tsx","webpack://_N_E/./lib/promises.ts","webpack://_N_E/./lib/shared/dto/reservation-status.ts","webpack://_N_E/./models/Frequency.enum.ts","webpack://_N_E/./models/OnDemandBookingType.enum.ts","webpack://_N_E/./models/meeting-room-reservation-utils.ts","webpack://_N_E/./models/meeting-room-utils.ts","webpack://_N_E/./node_modules/@industriousoffice/react-components/lib/lib.es.js","webpack://_N_E/./utils/date-picker-utils.ts","webpack://_N_E/./utils/date-utils.ts","webpack://_N_E/./utils/gtm.ts","webpack://_N_E/./utils/http-request.ts","webpack://_N_E/./models/BrandNames.enum.ts","webpack://_N_E/./utils/validators/string-day-validator.ts","webpack://_N_E/./utils/locations.ts","webpack://_N_E/./utils/select-option-utils.ts","webpack://_N_E/./utils/sentry.ts","webpack://_N_E/./utils/validators/enum-validator.ts","webpack://_N_E/./public/icons/amenityIcon-phone.svg","webpack://_N_E/./public/icons/amenityIcon-tv.svg","webpack://_N_E/./public/icons/amenityIcon-video-conference.svg","webpack://_N_E/./public/icons/amenityIcon-whiteboard.svg","webpack://_N_E/./public/icons/board-amenity.svg","webpack://_N_E/./public/icons/calendar.svg","webpack://_N_E/./public/icons/closeIcon.svg","webpack://_N_E/./public/icons/phone-amenity.svg","webpack://_N_E/./public/icons/seatsIcon.svg","webpack://_N_E/./public/icons/tv-amenity.svg","webpack://_N_E/./public/icons/verified.svg","webpack://_N_E/./public/icons/video-conference-amenity.svg","webpack://_N_E/./public/images/brands/TGR.svg","webpack://_N_E/./public/images/brands/welkin-and-meraki.svg","webpack://_N_E/./node_modules/next/font/local/target.css","webpack://_N_E/./node_modules/@hookform/resolvers/dist/resolvers.mjs","webpack://_N_E/./node_modules/@hookform/resolvers/yup/dist/yup.mjs"],"sourcesContent":["import(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/codebuild/output/src4237242273/src/website/app/[locale]/(pdp)/meeting-rooms/[locationSlug]/[slug]/_components/DateTimeReservationForm.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/codebuild/output/src4237242273/src/website/app/[locale]/(pdp)/meeting-rooms/[locationSlug]/[slug]/_components/GTMEvents.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/codebuild/output/src4237242273/src/website/app/[locale]/(pdp)/meeting-rooms/[locationSlug]/[slug]/_components/MobileDateTimePicker.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"FormattedPriceText\"] */ \"/codebuild/output/src4237242273/src/website/components/FormattedPriceText.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"GallerySummary\"] */ \"/codebuild/output/src4237242273/src/website/components/gallery/GallerySummary.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"ImageWithPlaceholder\"] */ \"/codebuild/output/src4237242273/src/website/components/ImageWithPlaceholder.tsx\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/components/Link.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/codebuild/output/src4237242273/src/website/components/map/StaticMap.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/codebuild/output/src4237242273/src/website/components/search/CancellationPolicyBanner.tsx\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/components/SubContentWithTitle.tsx\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/node_modules/next/dist/client/image-component.js\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/node_modules/next/dist/client/link.js\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/node_modules/next/font/local/target.css?{\\\"path\\\":\\\"theme/tiemposFont.ts\\\",\\\"import\\\":\\\"\\\",\\\"arguments\\\":[{\\\"src\\\":[{\\\"path\\\":\\\"../public/fonts/TiemposHeadline-Regular.otf\\\",\\\"weight\\\":\\\"400\\\"},{\\\"path\\\":\\\"../public/fonts/TiemposHeadline-Medium.otf\\\",\\\"weight\\\":\\\"500\\\"}],\\\"variable\\\":\\\"--tiempos-headline-font\\\"}],\\\"variableName\\\":\\\"tiemposFont\\\"}\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/public/icons/amenityIcon-phone.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/public/icons/amenityIcon-tv.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/public/icons/amenityIcon-video-conference.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/public/icons/amenityIcon-whiteboard.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/public/icons/board-amenity.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/public/icons/phone-amenity.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/public/icons/seatsIcon.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/public/icons/tv-amenity.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/public/icons/video-conference-amenity.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/public/images/brands/TGR.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/public/images/brands/welkin-and-meraki.svg\");\n","import {\n SingleDatePicker,\n SingleDatePickerProps,\n} from '@industriousoffice/react-components';\nimport {\n FieldValues,\n UseControllerProps,\n useController,\n} from 'react-hook-form';\n\nimport { FormItem } from '../shared/FormItem';\n\ntype DatepickerItemProps = {\n label?: string;\n labelClassName?: string;\n name: string;\n error?: string;\n tooltip?: React.ReactNode;\n required?: boolean;\n onChangeDate?: (date?: Date) => void;\n disabledDays?: SingleDatePickerProps['disabled'];\n dataTestId?: string;\n} & Omit;\n\nexport function DatepickerItem(\n props: UseControllerProps & DatepickerItemProps\n) {\n const {\n name,\n labelClassName,\n label,\n tooltip,\n required,\n error,\n control,\n onChangeDate,\n disabledDays,\n dataTestId = 'datepicker-wrapper',\n ...pickerProps\n } = props;\n\n const {\n field: { value, onChange },\n } = useController({\n name,\n control,\n });\n\n const handleOnChange = (date?: Date) => {\n onChange(date);\n onChangeDate?.(date);\n };\n\n return (\n \n \n \n );\n}\n","'use client';\n\nimport { useTranslations } from 'next-intl';\nimport Image from 'next/image';\nimport { useState } from 'react';\n\nimport GeneralPrices from '@/components/GeneralPrices';\nimport { PrimaryButton } from '@/components/buttons/PrimaryButton';\nimport { DatepickerItem } from '@/components/form/Datepicker/DatepickerItem';\nimport { SwitchItem } from '@/components/form/Switch/SwitchItem';\nimport { TimeSelectItemCustom } from '@/components/form/TimeSelect/TimeSelectItemCustom';\nimport { useDateUtils } from '@/hooks/useDateUtils';\nimport { useMeetingRoomReservationDateTimePicker } from '@/hooks/useMeetingRoomReservationPicker';\nimport { useRouter } from '@/hooks/useRouter';\nimport { LocationOpeningHoursDto } from '@/lib/locations/dto/location-opening-hours.dto';\nimport { MeetingRoomPriceDto } from '@/lib/meeting-rooms/dto/search-meeting-rooms-prices.dto';\nimport calendarIcon from '@/public/icons/calendar.svg';\nimport { stringifyUrl } from '@/utils/stringify-url';\n\nimport { ToggleReservationFlexibilityButtonGroup } from './ToggleReservationFlexibilityButtonGroup';\nimport TotalPrice from './TotalPrice';\nimport { MeetingRoomReservationTime, ReservationFlexibility } from './types';\n\ntype DateTimeReservationFormProps = {\n meetingRoomId: string;\n openingHours: LocationOpeningHoursDto;\n prices?: MeetingRoomPriceDto;\n blackoutDays: {\n date: string;\n description: string;\n }[];\n timeZone: string;\n isRequestToBook: boolean;\n meetingRoomSlug: string;\n};\n\nexport default function DateTimeReservationForm({\n meetingRoomId,\n openingHours,\n prices,\n blackoutDays,\n timeZone,\n isRequestToBook,\n meetingRoomSlug,\n}: DateTimeReservationFormProps) {\n const t = useTranslations('meeting-room');\n const [isLoading, setIsLoading] = useState(false);\n\n const { getFormattedDateWithTime } = useDateUtils();\n const router = useRouter();\n\n const {\n form,\n locationDayFilters,\n showAllDaySwitch,\n onDayChange,\n startTime,\n date,\n reservationFlexibility,\n endTime,\n possibleStartTimes,\n possibleEndTimes,\n onStartTimeChange,\n onAllDayChange,\n onEndTimeChange,\n onReservationFlexibilityChange,\n isAllDayAvailable,\n isLoadingAvailableSlots,\n isAllDay,\n } = useMeetingRoomReservationDateTimePicker({\n blackoutDays,\n openingHours,\n meetingRoomId,\n withAutoUpdateUrl: true,\n timeZone,\n isRequestToBook,\n });\n\n const onSubmit = (values: MeetingRoomReservationTime) => {\n if (!values.date) return;\n setIsLoading(true);\n\n router.push(\n stringifyUrl(`/meeting-rooms/${meetingRoomSlug}/reserve/summary`, {\n startDate: getFormattedDateWithTime(values.date, values.startTime),\n endDate: getFormattedDateWithTime(values.date, values.endTime),\n ...(isRequestToBook && {\n reservationFlexibility: values.reservationFlexibility,\n }),\n })\n );\n };\n\n return (\n
\n
\n {isRequestToBook && (\n
\n {t('request-to-book')}\n
\n )}\n {prices && (\n \n )}\n
\n (\n \n )}\n onChangeDate={onDayChange}\n data-testid=\"datepicker\"\n />\n\n {isRequestToBook && (\n
\n \n
\n )}\n
\n\n
\n \n\n
{t('to')}
\n\n \n
\n\n
\n {showAllDaySwitch && (\n \n )}\n
\n \n {!isLoading && (\n \n {isRequestToBook ? t('continue-cta') : t('reserve')}\n \n )}\n \n {isRequestToBook && (\n

\n {t('reserve-meeting-message')}\n

\n )}\n {prices && date && (\n \n )}\n
\n
\n );\n}\n","'use client';\n\nimport { useEffect } from 'react';\n\nimport { usePathname } from '@/i18n/navigation';\nimport { MeetingRoomDto } from '@/lib/meeting-rooms/dto/meeting-room.dto';\nimport * as gtm from '@/utils/gtm';\n\ntype GTMEventsProps = {\n meetingRoom: MeetingRoomDto;\n onDemandHourlyPrice?: number;\n};\n\nexport default function GTMEvents({\n meetingRoom,\n onDemandHourlyPrice,\n}: GTMEventsProps) {\n const pathname = usePathname();\n const isDataLayerLoaded = gtm.isDataLayerLoaded();\n\n useEffect(() => {\n if (!isDataLayerLoaded) return;\n\n gtm.pushECommerceEvent('view_item', {\n currency: meetingRoom.currencyIsoCode,\n value: onDemandHourlyPrice,\n items: [\n gtm.mapMeetingRoomToItemEcommerce(meetingRoom, meetingRoom.locationId),\n ],\n });\n\n gtm.pageview({\n url: pathname,\n pageType: 'meeting-room',\n options: {\n location_name: meetingRoom.locationName,\n meeting_room_name: meetingRoom.name,\n },\n });\n }, [isDataLayerLoaded]);\n\n return null;\n}\n","import { useTranslations } from 'next-intl';\n\nimport { Link } from '@/components/Link';\nimport { Button, ButtonSize } from '@/components/buttons/Button';\nimport { PrimaryButton } from '@/components/buttons/PrimaryButton';\nimport { useDateUtils } from '@/hooks/useDateUtils';\nimport { GeolocalizationDto } from '@/lib/locations';\nimport { MeetingRoomPriceDto } from '@/lib/meeting-rooms/dto/search-meeting-rooms-prices.dto';\nimport { DEFAULT_MAP_SEARCH_ZOOM } from '@/utils/constants';\n\nimport TotalPrice from './TotalPrice';\n\ntype MobileDateTimeFooterProps = {\n prices?: MeetingRoomPriceDto;\n onClickModalDatePicker: () => void;\n onContinueClick: () => void;\n isAvailable: boolean;\n isAllDay: boolean;\n isReservingMeetingRoom: boolean;\n geolocalization: GeolocalizationDto;\n startTime?: string;\n endTime?: string;\n date?: Date | null;\n};\n\nexport default function MobileDateTimeFooter({\n prices,\n onClickModalDatePicker,\n onContinueClick,\n isAllDay,\n isAvailable,\n startTime,\n endTime,\n date,\n isReservingMeetingRoom,\n geolocalization,\n}: MobileDateTimeFooterProps) {\n const t = useTranslations('meeting-room');\n\n const { format, getFormattedDateWithTime } = useDateUtils();\n\n if (!isAvailable) {\n return (\n
\n
{t('not-available')}
\n \n {t('search-near-by')}\n \n
\n );\n }\n\n return (\n
\n {startTime && endTime && date ? (\n
\n {prices && (\n \n )}\n \n {format(date, 'd MMM')}\n {t('edit-date-reservation-link', {\n start: format(\n new Date(getFormattedDateWithTime(date, startTime ?? '')),\n 'HH:mm a'\n ).toLowerCase(),\n end: format(\n new Date(getFormattedDateWithTime(date, endTime ?? '')),\n 'HH:mm a'\n ).toLowerCase(),\n })}\n \n
\n ) : (\n
\n
{t('select-time')}
\n \n {t.rich('any-time', {\n b: (chunks) => {chunks},\n })}\n \n
\n )}\n\n \n {t('continue-cta')}\n \n
\n );\n}\n","import * as Dialog from '@radix-ui/react-dialog';\nimport { useTranslations } from 'next-intl';\nimport Image from 'next/image';\n\nimport { FormattedPriceText } from '@/components/FormattedPriceText';\nimport { PrimaryButton } from '@/components/buttons/PrimaryButton';\nimport { DatePickerInputItem } from '@/components/form/DatePickerInput/DatePickerInputItem';\nimport { SwitchItem } from '@/components/form/Switch/SwitchItem';\nimport { TimeSelectItemCustom } from '@/components/form/TimeSelect/TimeSelectItemCustom';\nimport { useMeetingRoomReservationDateTimePicker } from '@/hooks/useMeetingRoomReservationPicker';\nimport { LocationOpeningHoursDto } from '@/lib/locations/dto/location-opening-hours.dto';\nimport { MeetingRoomPriceDto } from '@/lib/meeting-rooms/dto/search-meeting-rooms-prices.dto';\nimport { Frequency } from '@/models/Frequency.enum';\nimport closeIcon from '@/public/icons/closeIcon.svg';\n\nimport { ToggleReservationFlexibilityButtonGroup } from './ToggleReservationFlexibilityButtonGroup';\nimport TotalPrice from './TotalPrice';\nimport { MeetingRoomReservationTime, ReservationFlexibility } from './types';\n\nimport clsx from 'clsx';\n\ntype MobileDateTimePickerModalProps = {\n prices?: MeetingRoomPriceDto;\n onClose: () => void;\n isOpen: boolean;\n onOpenChange: () => void;\n onSubmit: (data: MeetingRoomReservationTime) => void;\n defaultValues?: Partial;\n meetingRoomId: string;\n openingHours: LocationOpeningHoursDto;\n blackoutDays: {\n date: string;\n description: string;\n }[];\n timeZone: string;\n isRequestToBook: boolean;\n};\n\nexport default function MobileDateTimePickerModal({\n onClose,\n prices,\n onSubmit,\n isOpen,\n onOpenChange,\n blackoutDays,\n openingHours,\n meetingRoomId,\n defaultValues,\n timeZone,\n isRequestToBook,\n}: MobileDateTimePickerModalProps) {\n const t = useTranslations('meeting-room');\n\n const {\n form,\n onDayChange,\n locationDayFilters,\n onEndTimeChange,\n possibleEndTimes,\n possibleStartTimes,\n startTime,\n endTime,\n isAllDayAvailable,\n onAllDayChange,\n isAllDay,\n onStartTimeChange,\n isLoadingAvailableSlots,\n date,\n reservationFlexibility,\n showAllDaySwitch,\n onResetDate,\n onReservationFlexibilityChange,\n } = useMeetingRoomReservationDateTimePicker({\n blackoutDays,\n openingHours,\n meetingRoomId,\n defaultValues,\n timeZone,\n isRequestToBook,\n });\n\n const clearSelectedDate = () => {\n onResetDate();\n };\n\n return (\n \n \n \n \n \n
\n
\n
\n {isRequestToBook ? t('continue-cta') : t('reserve')}\n
\n \n \n \n
\n {prices && (\n
\n \n \n
\n )}\n
\n {t('date-time')}\n
\n
\n
\n \n \n {t('any-date')}\n \n
\n {isRequestToBook && (\n
\n \n
\n )}\n
\n \n\n
\n {t('to')}\n
\n\n
\n \n
\n
\n
\n\n {showAllDaySwitch && (\n
\n \n
\n )}\n
\n\n
\n \n {prices && date && (\n \n )}\n\n \n {t('apply-cta')}\n \n
\n \n \n
\n
\n
\n
\n );\n}\n","'use client';\n\nimport { useSearchParams } from 'next/navigation';\nimport { useEffect, useState } from 'react';\n\nimport { useDateUtils } from '@/hooks/useDateUtils';\nimport { MeetingRoomReservationTime } from '@/hooks/useMeetingRoomReservationPicker';\nimport { useRouter } from '@/hooks/useRouter';\nimport { usePathname } from '@/i18n/navigation';\nimport { GeolocalizationDto } from '@/lib/locations';\nimport { LocationOpeningHoursDto } from '@/lib/locations/dto/location-opening-hours.dto';\nimport { MeetingRoomPriceDto } from '@/lib/meeting-rooms/dto/search-meeting-rooms-prices.dto';\nimport { fetchMeetingRoomAvailableSlots } from '@/lib/meeting-rooms/meeting-room-api';\nimport {\n getDayDateFromQuery,\n getDayFromQuery,\n getEndTimeFormQuery,\n getIsAllDay,\n getIsAllDayAvailable,\n getStartTimeFormQuery,\n} from '@/models/meeting-room-utils';\nimport { getDayOpeningHours } from '@/utils/locations';\nimport {\n getAllParamsFromSearchParams,\n stringifyUrl,\n} from '@/utils/stringify-url';\n\nimport MobileDateTimeFooter from './MobileDateTimeFooter';\nimport MobileDateTimePickerModal from './MobileDateTimePickerModal';\nimport { ReservationFlexibility } from './types';\n\ntype MobileDateTimePickerProps = {\n isAvailable: boolean;\n prices?: MeetingRoomPriceDto;\n meetingRoomId: string;\n openingHours: LocationOpeningHoursDto;\n blackoutDays: {\n date: string;\n description: string;\n }[];\n timeZone: string;\n isRequestToBook: boolean;\n geolocalization: GeolocalizationDto;\n meetingRoomSlug: string;\n};\n\nexport default function MobileDateTimePicker({\n isAvailable,\n prices,\n meetingRoomId,\n openingHours,\n blackoutDays,\n timeZone,\n isRequestToBook,\n geolocalization,\n meetingRoomSlug,\n}: MobileDateTimePickerProps) {\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [isReservingMeetingRoom, setIsReservingMeetingRoom] = useState(false);\n\n const router = useRouter();\n const searchParams = useSearchParams();\n const pathname = usePathname();\n const allParams = getAllParamsFromSearchParams(searchParams);\n\n const { format, getFormattedDateWithTime } = useDateUtils();\n const [formValue, setFormValues] = useState({\n startTime: getStartTimeFormQuery(allParams),\n endTime: getEndTimeFormQuery(allParams),\n date: getDayDateFromQuery(allParams),\n reservationFlexibility: ReservationFlexibility.Exact,\n isAllDay: false,\n });\n\n const handleFormSubmit = (data: MeetingRoomReservationTime) => {\n setFormValues({\n ...data,\n isAllDay: !!data.isAllDay,\n date: data.date ?? null,\n reservationFlexibility:\n data.reservationFlexibility || ReservationFlexibility.Exact,\n });\n router.replace(\n stringifyUrl(pathname, {\n ...allParams,\n startTime: data.startTime,\n endTime: data.endTime,\n day: data.date ? format(data.date, 'yyyy-MM-dd') : null,\n })\n );\n setIsModalOpen(false);\n };\n\n useEffect(() => {\n const checkIfItsAllDay = async () => {\n const day = getDayFromQuery(allParams);\n const startTime = getStartTimeFormQuery(allParams);\n const endTime = getEndTimeFormQuery(allParams);\n const dayOpeningHours = day\n ? getDayOpeningHours(openingHours, day)\n : null;\n\n if (!day || !startTime || !endTime || !dayOpeningHours) {\n return;\n }\n\n const slots = await fetchMeetingRoomAvailableSlots({\n id: meetingRoomId,\n day,\n });\n\n const isAllDayAvailable = getIsAllDayAvailable({\n dayOpeningHours,\n slots,\n });\n\n const isAllDay = getIsAllDay({\n isAllDayAvailable,\n dayOpeningHours,\n startTime,\n endTime,\n });\n\n setFormValues((prevData) => ({ ...prevData, isAllDay: !!isAllDay }));\n };\n\n checkIfItsAllDay();\n }, []);\n\n const handleContinueClick = () => {\n setIsReservingMeetingRoom(true);\n if (!formValue.startTime || !formValue.endTime || !formValue.date) {\n return;\n }\n\n router.push(\n stringifyUrl(`/meeting-rooms/${meetingRoomSlug}/reserve/summary`, {\n startDate: getFormattedDateWithTime(\n formValue.date,\n formValue.startTime\n ),\n endDate: getFormattedDateWithTime(formValue.date, formValue.endTime),\n ...(isRequestToBook && {\n reservationFlexibility: formValue.reservationFlexibility,\n }),\n })\n );\n };\n\n return (\n <>\n {isModalOpen && (\n setIsModalOpen(false)}\n onOpenChange={() => setIsModalOpen(true)}\n isOpen={isModalOpen}\n prices={prices}\n onSubmit={handleFormSubmit}\n meetingRoomId={meetingRoomId}\n openingHours={openingHours}\n blackoutDays={blackoutDays}\n defaultValues={formValue}\n timeZone={timeZone}\n isRequestToBook={isRequestToBook}\n />\n )}\n\n
\n setIsModalOpen(true)}\n prices={prices}\n isReservingMeetingRoom={isReservingMeetingRoom}\n isAllDay={formValue.isAllDay}\n startTime={formValue.startTime}\n endTime={formValue.endTime}\n date={formValue.date}\n geolocalization={geolocalization}\n onContinueClick={handleContinueClick}\n />\n
\n \n );\n}\n","import { useTranslations } from 'next-intl';\nimport { useMemo } from 'react';\n\nimport { ReservationFlexibility } from './types';\n\nimport clsx from 'clsx';\n\ntype ToggleReservationFlexibilityButtonGroupProps = {\n active: ReservationFlexibility;\n onChange: (value: ReservationFlexibility) => void;\n};\n\nexport function ToggleReservationFlexibilityButtonGroup({\n active,\n onChange,\n}: ToggleReservationFlexibilityButtonGroupProps) {\n const t = useTranslations('meeting-room');\n\n const options = useMemo(\n () => [\n {\n label: t('exact-date'),\n value: ReservationFlexibility.Exact,\n },\n {\n label: t('one-or-two-days'),\n value: ReservationFlexibility.OneOrTwoDays,\n },\n {\n label: t('flexible-dates'),\n value: ReservationFlexibility.Flexible,\n },\n ],\n [t]\n );\n\n return (\n
\n {options.map(({ label, value }) => (\n onChange(value)}\n >\n {label}\n \n ))}\n
\n );\n}\n","import { useLocale, useTranslations } from 'next-intl';\nimport { useMemo } from 'react';\n\nimport { FormattedPriceText } from '@/components/FormattedPriceText';\nimport { useDateUtils } from '@/hooks/useDateUtils';\nimport { MeetingRoomPriceDto } from '@/lib/meeting-rooms/dto/search-meeting-rooms-prices.dto';\nimport { getFormattedDateWithTime } from '@/utils/date-utils';\n\ntype TotalPriceProps = {\n isAllDay: boolean;\n date: Date;\n startTime: string;\n endTime: string;\n prices: MeetingRoomPriceDto;\n};\n\nexport default function TotalPrice({\n isAllDay,\n date,\n startTime,\n endTime,\n prices,\n}: TotalPriceProps) {\n const t = useTranslations('meeting-room');\n const { getNbHours } = useDateUtils();\n const locale = useLocale();\n\n const dateHourDifference = useMemo(() => {\n if (startTime && endTime) {\n const startDateformatted = getFormattedDateWithTime(date, startTime);\n const endDateformatted = getFormattedDateWithTime(date, endTime);\n\n return getNbHours(\n new Date(startDateformatted),\n new Date(endDateformatted)\n );\n }\n\n return 0;\n }, [startTime, endTime]);\n\n const total = useMemo(() => {\n if (isAllDay) {\n return prices.onDemandDailyPrice;\n }\n\n return prices.onDemandHourlyPrice * dateHourDifference;\n }, [isAllDay, date, startTime, endTime]);\n\n const renderMobile = () => {\n return (\n
\n {isAllDay ? (\n
\n {t.rich('day-price', {\n price: Intl.NumberFormat(locale, {\n style: 'currency',\n currency: prices.currencyIsoCode,\n maximumFractionDigits: 0,\n }).format(prices.onDemandDailyPrice),\n b: (chunks) => {chunks},\n })}\n
\n ) : (\n <>\n {Intl.NumberFormat(locale, {\n style: 'currency',\n currency: prices.currencyIsoCode,\n maximumFractionDigits: 0,\n }).format(total)}\n\n
\n {t('price-hour', {\n price: Intl.NumberFormat(locale, {\n style: 'currency',\n currency: prices.currencyIsoCode,\n maximumFractionDigits: 0,\n }).format(prices.onDemandHourlyPrice),\n count: dateHourDifference,\n })}\n
\n \n )}\n
\n );\n };\n\n if (!startTime || !endTime) {\n return null;\n }\n\n return (\n <>\n {renderMobile()}\n
\n

\n \n {!isAllDay &&\n t('price-hour', {\n price: Intl.NumberFormat(locale, {\n style: 'currency',\n currency: prices.currencyIsoCode,\n maximumFractionDigits: 0,\n }).format(prices.onDemandHourlyPrice),\n count: dateHourDifference,\n })}\n {isAllDay &&\n t('price-day', {\n price: Intl.NumberFormat(locale, {\n style: 'currency',\n currency: prices.currencyIsoCode,\n maximumFractionDigits: 0,\n }).format(prices.onDemandDailyPrice),\n })}\n \n \n

\n
\n

\n {t('total')}\n \n

\n
\n \n );\n}\n","import { useTranslations } from 'next-intl';\nimport { InferType, boolean, date, object, string } from 'yup';\n\nimport { EnumValidator } from '@/utils/validators/enum-validator';\n\nexport enum ReservationFlexibility {\n Exact = 'Exact',\n OneOrTwoDays = 'OneOrTwoDays',\n Flexible = 'Flexible',\n}\n\nexport const meetingRoomTimeReservationFormSchema = (\n t: ReturnType>\n) =>\n object({\n date: date().nullable(),\n reservationFlexibility: EnumValidator(\n ReservationFlexibility\n ).nullable(),\n isAllDay: boolean(),\n startTime: string().required(t('start-time-required')),\n endTime: string().required(t('end-time-required')),\n }).required();\n\nexport type MeetingRoomReservationTime = InferType<\n ReturnType\n>;\n","'use client';\n\nimport { useLocale, useTranslations } from 'next-intl';\n\nimport { Frequency } from '@/models/Frequency.enum';\n\ntype FormattedPriceTextProps = {\n price: number;\n currencyIsoCode: string;\n frequency?: Frequency;\n maximumFractionDigits?: number;\n} & React.ComponentPropsWithoutRef<'div'>;\n\nexport function FormattedPriceText({\n currencyIsoCode,\n price,\n frequency,\n maximumFractionDigits,\n ...divProps\n}: FormattedPriceTextProps) {\n const locale = useLocale();\n const t = useTranslations('general');\n\n const formattedPrice = Intl.NumberFormat(locale, {\n style: 'currency',\n currency: currencyIsoCode,\n maximumFractionDigits,\n }).format(price);\n\n if (frequency == null) {\n return
{formattedPrice}
;\n }\n\n const formattedPriceElement = t.rich(getFrequencyTranslationKey(frequency), {\n price: formattedPrice,\n frequency: (chunks) => {chunks},\n });\n\n return
{formattedPriceElement}
;\n}\n\nfunction getFrequencyTranslationKey(frequency: Frequency) {\n switch (frequency) {\n case Frequency.Daily:\n return 'daily-price';\n case Frequency.Hourly:\n return 'hourly-price';\n case Frequency.Monthly:\n return 'monthly-price';\n }\n}\n","export type MenuItem = {\n key: string;\n label?: string;\n url?: string;\n locale?: string;\n isExternal?: boolean;\n subMenu?: MenuItem[];\n isSelected?: boolean;\n showInDesktop?: boolean;\n isAction?: boolean;\n hasNewTag?: boolean;\n widthSubMenu?: number;\n};\n\nexport enum MenuKey {\n Members = 'members',\n Workspaces = 'workspaces',\n Locations = 'locations',\n Partnerships = 'partnerships',\n Ressources = 'ressources',\n User = 'user',\n Account = 'account',\n}\n\nexport const EMPTY_URL = '#';\n\nexport const MOBILE_NUVEEN_MENU: MenuItem[] = [\n {\n key: MenuKey.Members,\n url: '/account',\n subMenu: [\n {\n key: 'reservations',\n url: '/account/reservations',\n },\n {\n key: 'logout',\n isAction: true,\n },\n ],\n showInDesktop: false,\n },\n];\n\nexport const MENU: MenuItem[] = [\n {\n key: MenuKey.Members,\n url: '/account',\n subMenu: [\n {\n key: 'reservations',\n url: '/account/reservations',\n },\n {\n key: 'payment-methods',\n url: '/account/payment-methods',\n },\n {\n key: 'account',\n url: '/account/account-settings',\n },\n {\n key: 'logout',\n isAction: true,\n },\n ],\n showInDesktop: false,\n },\n {\n key: 'workspaces',\n widthSubMenu: 220,\n subMenu: [\n {\n key: 'solutions',\n url: '/solutions',\n },\n {\n key: 'book-meeting-room',\n url: '/meeting-rooms',\n },\n ],\n },\n {\n key: 'locations',\n url: '/locations',\n },\n {\n key: 'partnerships',\n subMenu: [\n {\n key: 'enterprise',\n url: '/enterprise',\n },\n {\n key: 'landlords',\n url: '/landlords',\n },\n {\n key: 'brokers',\n url: '/brokers',\n },\n ],\n },\n {\n key: 'ressources',\n subMenu: [\n {\n key: 'blog',\n url: '/blog',\n },\n {\n key: 'faqs',\n url: '/about-us#faqs',\n },\n ],\n },\n];\n\nexport const USER_AUTH_MENU_ITEMS: MenuItem = {\n key: 'members',\n subMenu: [\n {\n key: 'login',\n },\n {\n key: 'signup',\n },\n ],\n};\n\nexport const NUVEEN_SUPPLIER_MENU: MenuItem[] = [\n {\n key: 'reservations',\n url: '/account/reservations',\n },\n];\n\nexport const SUPPLIER_USER_AUTH_MENU_ITEMS: MenuItem = {\n key: 'supplier',\n subMenu: [\n {\n key: 'login',\n },\n {\n key: 'signup',\n },\n ],\n};\n\nexport const SUPPLIER_ACCOUNT_MENU_ITEMS: MenuItem = {\n key: MenuKey.Account,\n subMenu: [\n {\n key: 'account',\n url: '/account/account-settings',\n },\n {\n key: 'logout',\n },\n ],\n};\n\nexport const ACCOUNT_MENU_ITEMS: MenuItem = {\n key: MenuKey.Account,\n subMenu: [\n {\n key: 'reservations',\n url: '/account/reservations',\n },\n {\n key: 'payment-methods',\n url: '/account/payment-methods',\n },\n {\n key: 'account',\n url: '/account/account-settings',\n },\n {\n key: 'logout',\n },\n ],\n};\n","'use client';\n\n/* eslint-disable no-restricted-imports */\nimport { LinkProps as NextLinkProps } from 'next/link';\nimport { useSearchParams } from 'next/navigation';\nimport { ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport { Link as NextLink } from '@/i18n/navigation';\nimport { getPathnameFromHref } from '@/utils/routes';\nimport { getAllParamsFromHref } from '@/utils/stringify-url';\n\nimport { EMPTY_URL } from './Header/constants';\n\nimport clsx from 'clsx';\n\ntype LinkProps = {\n className?: string;\n children?: ReactNode;\n noNextLink?: boolean;\n} & NextLinkProps &\n React.ComponentPropsWithoutRef<'a'>;\n\nexport const Link = forwardRef((props, ref) => {\n const { className, children, noNextLink, locale, href, ...nextLinkProps } =\n props;\n const searchParams = useSearchParams();\n const allParams = getAllParamsFromHref(href);\n\n const updatedHref =\n !href || href === EMPTY_URL\n ? href\n : {\n pathname: getPathnameFromHref(href),\n hash: href.includes('#') ? href.split('#')[1] : undefined,\n query: {\n ...allParams,\n ...(searchParams?.has('supplier') && {\n supplier: searchParams?.get('supplier'),\n }),\n },\n };\n\n const mergeClassName = clsx('cursor-pointer', className);\n\n if (noNextLink) {\n return (\n \n {children}\n \n );\n }\n\n return (\n \n {children}\n \n );\n});\n\nLink.displayName = 'Link';\n","'use client';\n\nimport { useTranslations } from 'next-intl';\nimport { useState } from 'react';\n\ntype SubContentWithTitleProps = {\n id: string;\n title: string;\n listItems?: string[];\n description?: React.ReactNode;\n};\n\nconst ITEMS_TO_SHOW_MOBILE = 3;\n\nexport default function SubContentWithTitle({\n id,\n title,\n listItems,\n description,\n}: SubContentWithTitleProps) {\n const t = useTranslations('general');\n const [isReadMore, setIsReadMore] = useState(false);\n\n const handleReadMoreClicked = () => {\n setIsReadMore((prevValue) => !prevValue);\n };\n\n return (\n
\n \n {title}\n \n {listItems ? (\n
    \n {listItems.map((item, index) => (\n ITEMS_TO_SHOW_MOBILE - 1 && !isReadMore\n ? 'max-md:hidden'\n : ''\n }\n key={item}\n >\n {item}\n \n ))}\n
\n ) : (\n
{description}
\n )}\n\n {listItems && listItems.length > ITEMS_TO_SHOW_MOBILE && (\n \n {isReadMore ? t('read-less') : t('read-more')}\n \n )}\n
\n );\n}\n","import {\n ComponentPropsWithoutRef,\n ElementType,\n PropsWithChildren,\n} from 'react';\n\nimport { CircleLoader } from '../CircleLoader';\n\nimport clsx from 'clsx';\n\nexport enum ButtonAction {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n TERTIARY = 'tertiary',\n}\n\nexport enum ButtonSize {\n SMALL = 'small',\n MEDIUM = 'medium',\n LARGE = 'large',\n}\n\ntype AsProp = {\n as?: E;\n};\n\ntype ComponentProps = PropsWithChildren<\n ComponentPropsWithoutRef & AsProp\n>;\n\ntype ButtonProps = React.ComponentPropsWithoutRef<'button'> & {\n action?: ButtonAction;\n size?: ButtonSize;\n isLoading?: boolean;\n};\n\nconst defaultElement = 'button';\n\nexport function Button({\n as,\n action = ButtonAction.PRIMARY,\n size = ButtonSize.MEDIUM,\n isLoading,\n children,\n disabled,\n className,\n ...otherProps\n}: ButtonProps & ComponentProps) {\n const baseClasses =\n 'inline-flex items-center justify-center rounded-full font-medium border group text-center cursor-pointer disabled:cursor-default';\n const Component = as ?? defaultElement;\n\n const getSizeClasses = () => {\n switch (size) {\n case ButtonSize.SMALL:\n return 'text-sm leading-none py-1 px-5';\n case ButtonSize.LARGE:\n return 'text-lg py-2 px-5';\n default:\n return 'text-base py-2 px-5';\n }\n };\n\n const getActionClasses = () => {\n switch (action) {\n case ButtonAction.SECONDARY:\n return 'bg-white border-teal-40 text-teal-40 hover:bg-teal-40 hover:text-white disabled:pointer-events-none disabled:text-grey-60 disabled:border-grey-60';\n case ButtonAction.TERTIARY:\n return 'bg-white border-[2px] border-[#013E3F1A] text-teal-40 hover:bg-[#013E3F0A]';\n default:\n return 'bg-teal-40 border-teal-40 text-white';\n }\n };\n\n const getCircleLoaderClasses = () => {\n switch (action) {\n case ButtonAction.SECONDARY:\n return 'fill-teal-40 group-hover:fill-white';\n default:\n return 'fill-white';\n }\n };\n\n return (\n \n {isLoading && (\n \n )}\n {children}\n \n );\n}\n","import { CircleLoader } from '../CircleLoader';\n\nimport clsx from 'clsx';\n\ntype PrimaryButtonProps = React.ComponentPropsWithoutRef<'button'> & {\n sm?: boolean;\n isLoading?: boolean;\n};\n\nexport function PrimaryButton(props: PrimaryButtonProps) {\n const { className, sm, isLoading, children, ...otherProps } = props;\n\n return (\n \n
\n {isLoading && }\n {children}\n
\n \n );\n}\n","import {\n Picker,\n PickerProps,\n SingleDatePickerProps,\n} from '@industriousoffice/react-components';\nimport Image from 'next/image';\nimport { useEffect, useMemo, useState } from 'react';\n\nimport { useDateUtils } from '@/hooks/useDateUtils';\nimport calendarIcon from '@/public/icons/calendar.svg';\n\nimport FilterButton from './search/filters/FilterButton';\n\nimport clsx from 'clsx';\n\ninterface DatePickerInputProps extends PickerProps {\n selected?: Date;\n onChange: (value: Date | undefined) => void;\n placeholder?: string;\n disabledDays?: SingleDatePickerProps['disabled'];\n className?: string;\n prefixLabel?: string;\n}\n\nexport default function DatePickerInput({\n onChange,\n placeholder,\n onMonthChange,\n disabledDays,\n defaultMonth,\n selected,\n className,\n prefixLabel,\n}: DatePickerInputProps) {\n const [isPickerOpen, setIsPickerOpen] = useState(false);\n const [selectedDate, setSelectedDay] = useState(selected);\n const { format } = useDateUtils();\n\n useEffect(() => {\n setSelectedDay(selected);\n }, [selected]);\n\n const formatDateOrRange = (value: Date | undefined) => {\n if (!value) return null;\n\n if (value instanceof Date) {\n return format(value, 'EEE, MMM d');\n }\n };\n\n const inputDisplay = useMemo(() => {\n const formattedDate = formatDateOrRange(selectedDate) || placeholder;\n return prefixLabel ? `${prefixLabel} ${formattedDate}` : formattedDate;\n }, [selectedDate, prefixLabel]);\n\n const handleOnDaySelect = (value?: Date | undefined) => {\n setSelectedDay(value);\n onChange(value);\n setIsPickerOpen(false);\n };\n\n return (\n
\n }\n isActive={false}\n className={clsx(\n className,\n 'w-full py-2.5',\n !isPickerOpen && 'rounded-lg'\n )}\n onClick={() => setIsPickerOpen(!isPickerOpen)}\n >\n {inputDisplay}\n \n\n {isPickerOpen && (\n \n )}\n
\n );\n}\n","import { SingleDatePickerProps } from '@industriousoffice/react-components';\nimport {\n FieldValues,\n UseControllerProps,\n useController,\n} from 'react-hook-form';\n\nimport DatePickerInput from '@/components/DatePickerInput';\n\nimport { FormItem } from '../shared/FormItem';\n\ntype DatePickerInputItemProps = {\n label?: string;\n placeholder?: string;\n name: string;\n error?: string;\n tooltip?: React.ReactNode;\n required?: boolean;\n onChangeDate?: (date?: Date) => void;\n disabledDays?: SingleDatePickerProps['disabled'];\n onMonthChange?: SingleDatePickerProps['onMonthChange'];\n defaultMonth: SingleDatePickerProps['defaultMonth'];\n prefixLabel?: string;\n className?: string;\n};\n\nexport function DatePickerInputItem<\n FormValues extends FieldValues = FieldValues\n>({\n name,\n label,\n placeholder,\n tooltip,\n required,\n error,\n control,\n onChangeDate,\n disabledDays,\n onMonthChange,\n prefixLabel,\n className,\n defaultMonth,\n}: UseControllerProps & DatePickerInputItemProps) {\n const {\n field: { value, onChange },\n } = useController({\n name,\n control,\n });\n\n const handleOnChange = (date?: Date) => {\n onChange(date);\n onChangeDate?.(date);\n };\n\n return (\n \n \n \n );\n}\n","import { Switch } from '@industriousoffice/react-components';\nimport { HTMLAttributes } from 'react';\nimport {\n FieldValues,\n UseControllerProps,\n useController,\n} from 'react-hook-form';\n\ninterface SwitchItemProps {\n label?: string;\n placeholder?: string;\n isDisabled?: boolean;\n isInline?: boolean;\n isReverse?: boolean;\n onSwitchChange: (checked: boolean) => void;\n}\n\nexport function SwitchItem({\n label,\n isDisabled,\n isInline,\n isReverse,\n onSwitchChange,\n ...props\n}: UseControllerProps &\n SwitchItemProps &\n HTMLAttributes) {\n const { field, formState } = useController(props);\n const handleOnCheckedChange = (isChecked: boolean) => {\n field.onChange(isChecked);\n onSwitchChange(isChecked);\n };\n return (\n \n );\n}\n","import { useMemo } from 'react';\nimport {\n FieldValues,\n UseControllerProps,\n useController,\n} from 'react-hook-form';\n\nimport { useDateUtils } from '@/hooks/useDateUtils';\n\nimport { FormItem } from '../shared/FormItem';\nimport { TimeOption as TimeOptionType } from './types';\n\nimport { TimeSelect } from './TimeSelect';\n\ninterface TimeSelectItemCustomProps {\n label?: string;\n error?: string;\n displayError?: boolean;\n tooltip?: React.ReactNode;\n name: string;\n required?: boolean;\n hasLeftIcon?: boolean;\n placeholder?: string;\n times: string[];\n dataTestId?: string;\n onChange?: (time: string | undefined) => void;\n}\n\n// finds the option correponding to a certain value\n// that is because react-hook-form uses the value of the field\n// but react-select expects us to give it the current OPTION (ie { value, label }) that is selected\nfunction findOption(\n options: TimeOptionType[],\n value: string\n): TimeOptionType | null {\n return options.find((opt) => opt?.value === value) || null;\n}\n\nexport function TimeSelectItemCustom<\n FormValues extends FieldValues = FieldValues\n>({\n label,\n tooltip,\n required,\n hasLeftIcon,\n placeholder,\n times,\n dataTestId,\n displayError,\n ...props\n}: UseControllerProps & TimeSelectItemCustomProps) {\n const {\n field: { value, onChange },\n fieldState: { error },\n } = useController(props);\n\n const { format, getDateFromTime } = useDateUtils();\n\n const hasError = !!error || displayError;\n\n const formattedOptions = useMemo(() => {\n if (!times) {\n return [];\n }\n return times.map((time) => {\n const [hour, minute] = time.split(':');\n const date = getDateFromTime(+hour, +minute);\n\n return {\n value: format(date, 'HH:mm'),\n label: format(date, 'hh:mm a').toLowerCase(),\n };\n });\n }, [times]);\n\n const currentOption = useMemo(() => {\n return findOption(formattedOptions, value);\n }, [formattedOptions, value]);\n\n return (\n \n {\n onChange(selectedOptionValue);\n props.onChange?.(selectedOptionValue);\n }}\n options={formattedOptions}\n placeholder={placeholder}\n isDisabled={props.disabled}\n hasError={hasError}\n hasLeftIcon={hasLeftIcon}\n dataTestId={dataTestId}\n />\n \n );\n}\n","import dynamic from 'next/dynamic';\nimport { ReactNode } from 'react';\n\nimport clsx from 'clsx';\n\nconst ErrorMessage = dynamic(\n () => import('./ErrorMessage').then((mod) => mod.ErrorMessage),\n { ssr: false }\n);\nconst Label = dynamic(() => import('./Label').then((mod) => mod.Label), {\n ssr: false,\n});\n\ntype FormItem = {\n name: string;\n label?: string | ReactNode;\n labelClassName?: string;\n required?: boolean;\n error?: string;\n children: ReactNode;\n className?: string;\n tooltip?: React.ReactNode;\n description?: string;\n dataTestId: string;\n};\n\nexport function FormItem(props: FormItem) {\n const {\n name,\n required,\n error,\n label,\n labelClassName,\n children,\n className,\n tooltip,\n description,\n dataTestId,\n } = props;\n\n return (\n \n {label && (\n \n {label}\n \n )}\n {children}\n {description && (\n

{description}

\n )}\n {error && (\n \n )}\n
\n );\n}\n","import { useTranslations } from 'next-intl';\n\ntype GalleryMatterportProps = {\n url: string;\n className?: string;\n};\n\nexport function GalleryMatterport({ url, className }: GalleryMatterportProps) {\n const t = useTranslations('location.gallery');\n\n return (\n \n );\n}\n","import clsx from 'clsx';\n\nexport default function GalleryButton(\n props: React.ComponentPropsWithoutRef<'button'>\n) {\n const { className, children, ...btnProps } = props;\n\n return (\n \n {children}\n \n );\n}\n","import { ImageProps } from 'next/image';\n\nimport { ImageWithPlaceholder } from '@/components/ImageWithPlaceholder';\nimport { ImageDto } from '@/lib/image.dto';\n\ntype GallerySummaryImageProps = {\n image: ImageDto;\n className?: string;\n sizes: ImageProps['sizes'];\n priority?: ImageProps['priority'];\n placeholder?: ImageProps['placeholder'];\n blurDataURL?: ImageProps['blurDataURL'];\n loading?: ImageProps['loading'];\n};\n\nexport function GallerySummaryImage({\n image,\n sizes,\n priority,\n placeholder,\n blurDataURL,\n className,\n loading,\n}: GallerySummaryImageProps) {\n return (\n <>\n \n {image.isDefault && (\n

\n {image.caption}\n

\n )}\n \n );\n}\n","import { ImageDto } from '@/lib/image.dto';\n\nimport { GalleryMatterport } from './GalleryMatterport';\nimport { GallerySummaryImage } from './GallerySummaryImage';\n\nimport clsx from 'clsx';\n\ntype GallerySummaryProps = {\n images: ImageDto[];\n primaryImgSizes: string;\n otherImgSizes: string;\n numberImagesToDisplay?: number;\n matterportUrl?: string | null;\n showMatterportThumbnail?: boolean;\n};\n\nexport function GallerySummaryImages({\n images,\n numberImagesToDisplay = 3,\n primaryImgSizes,\n otherImgSizes,\n matterportUrl,\n showMatterportThumbnail,\n}: GallerySummaryProps) {\n const imagesToDisplay =\n showMatterportThumbnail && matterportUrl\n ? images.slice(1, numberImagesToDisplay - 1)\n : images.slice(1, numberImagesToDisplay);\n\n return (\n <>\n \n 3 ? 'grid-cols-2' : 'w-[388px]'\n )}\n >\n {imagesToDisplay.map((image) => (\n
\n \n
\n ))}\n {showMatterportThumbnail && matterportUrl && (\n
\n \n
\n )}\n \n \n );\n}\n","'use client';\n\nimport { useTranslations } from 'next-intl';\nimport dynamic from 'next/dynamic';\nimport { useState } from 'react';\n\nimport { ImageDto } from '@/lib/image.dto';\n\nimport GalleryButton from './GalleryButton';\nimport { GallerySummaryImages } from './GallerySummaryImages';\n\nimport clsx from 'clsx';\n\nconst GalleryModal = dynamic(\n () => import('./GalleryModal').then((mod) => mod.GalleryModal),\n { ssr: false }\n);\n\ntype GallerySummaryProps = {\n className: string;\n images: ImageDto[];\n primaryImgSizes: string;\n otherImgSizes: string;\n matterportUrl?: string | null;\n numberImagesToDisplay?: number;\n showMatterportThumbnail?: boolean;\n};\n\nexport function GallerySummary({\n className,\n images,\n primaryImgSizes,\n otherImgSizes,\n matterportUrl,\n numberImagesToDisplay = 3,\n showMatterportThumbnail,\n}: GallerySummaryProps) {\n const t = useTranslations('location');\n const [isOpened, setIsOpened] = useState(false);\n\n const handleGalleryModalDisplay = () => {\n setIsOpened((prevValue) => !prevValue);\n };\n\n return (\n <>\n \n \n {t('btn-gallery')}\n {matterportUrl && (\n <>\n |\n {t('btn-gallery-matterport')}\n \n )}\n \n\n \n \n {isOpened && (\n \n )}\n \n );\n}\n","'use client';\n\nimport Image, { ImageLoaderProps } from 'next/image';\n\nimport { LatLng } from '@/models/LatLng';\nimport { getServerConfig } from '@/utils/config';\nimport { MAP_STYLE } from '@/utils/constants';\n\nimport { CameraMapOptions } from './types';\n\nimport clsx from 'clsx';\n\ntype StaticMapProps = {\n coords: CameraMapOptions;\n withMarker?: boolean;\n className?: string;\n width?: number;\n height?: number;\n sizes?: string;\n scaleMultiplier?: boolean;\n};\n\nconst MAX_SIZE_MAPBOX_STATIC_API = 1280;\nconst DEFAULT_WIDTH = 1080;\nconst DEFAULT_HEIGHT = 1000;\n\nconst mapboxImageLoader = ({\n src,\n width,\n height,\n mapboxAccessToken,\n scaleMultiplier,\n}: ImageLoaderProps & {\n mapboxAccessToken: string;\n height: number;\n scaleMultiplier?: boolean;\n}) => {\n const maxWidth =\n width > MAX_SIZE_MAPBOX_STATIC_API ? MAX_SIZE_MAPBOX_STATIC_API : width;\n const maxHeight =\n height > MAX_SIZE_MAPBOX_STATIC_API ? MAX_SIZE_MAPBOX_STATIC_API : height;\n const multiplier = scaleMultiplier ? `@2x` : '';\n return `${src}/${maxWidth}x${maxHeight}${multiplier}?access_token=${mapboxAccessToken}&logo=false`;\n};\n\nexport default function StaticMap({\n coords,\n withMarker,\n className,\n sizes,\n scaleMultiplier,\n width = DEFAULT_WIDTH,\n height = DEFAULT_HEIGHT,\n}: StaticMapProps) {\n const { NEXT_PUBLIC_MAPBOX_STATIC_ACCESS_TOKEN } = getServerConfig();\n\n const zoom = coords.zoom;\n const { lat: latitude, lng: longitude } = coords.center as LatLng;\n\n return (\n
\n \n mapboxImageLoader({\n ...props,\n height,\n scaleMultiplier,\n mapboxAccessToken: NEXT_PUBLIC_MAPBOX_STATIC_ACCESS_TOKEN,\n })\n }\n src={`https://api.mapbox.com/styles/v1/mapbox/${MAP_STYLE}/static/${longitude},${latitude},${zoom}`}\n width={width}\n height={height}\n priority\n alt={`Static Map around the location ${longitude}-${latitude} with zoom ${zoom}`}\n sizes={sizes || `${width}px`}\n />\n {withMarker && (\n \n )}\n
\n );\n}\n","'use client';\n\nimport { useTranslations } from 'next-intl';\nimport Image from 'next/image';\n\nimport closeIcon from '@/public/icons/closeIcon.svg';\nimport verifiedIcon from '@/public/icons/verified.svg';\n\nimport clsx from 'clsx';\n\ntype CancellationPolicyBannerProps = {\n dataTestId: string;\n onClose?: () => void;\n};\n\nexport default function CancellationPolicyBanner({\n onClose,\n dataTestId,\n}: CancellationPolicyBannerProps) {\n const t = useTranslations('search.cancellation-policy-banner');\n\n return (\n \n {onClose && (\n \"verified-icon\"\n )}\n
\n
\n {!onClose && (\n \n )}\n
{t('title')}
\n
\n
{t('description')}
\n
\n {onClose && (\n \n \"close-icon\"\n \n )}\n \n );\n}\n","import Image from 'next/image';\nimport React from 'react';\n\nimport closeIcon from '@/public/icons/closeIcon.svg';\n\nimport clsx from 'clsx';\n\ntype FilterButtonProps = {\n icon: JSX.Element;\n isActive?: boolean;\n buttonStyle?: FilterButtonStyle;\n onClearClick?: () => void;\n} & React.ComponentPropsWithoutRef<'button'>;\n\nexport enum FilterButtonStyle {\n DEFAULT = 'default',\n CHIP = 'chip',\n}\n\nconst FilterButton = React.forwardRef(\n (\n {\n children,\n isActive,\n icon,\n onClearClick,\n className,\n buttonStyle = FilterButtonStyle.DEFAULT,\n ...rest\n },\n ref\n ) => {\n const handleClearClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n onClearClick?.();\n };\n\n return (\n \n {icon}\n \n {children}\n \n {isActive && (\n handleClearClick(e)}\n />\n )}\n \n );\n }\n);\nFilterButton.displayName = 'FilterButton';\n\nexport default FilterButton;\n","'use client';\n\nimport { useLocale } from 'next-intl';\nimport { useEffect } from 'react';\n\nimport * as dateUtils from '@/utils/date-utils';\n\nexport function useDateUtils() {\n const locale = useLocale();\n\n useEffect(() => {\n dateUtils.setLocale(locale);\n }, [locale]);\n\n return dateUtils;\n}\n","import { yupResolver } from '@hookform/resolvers/yup';\nimport { useTranslations } from 'next-intl';\nimport { useSearchParams } from 'next/navigation';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { InferType, boolean, date, object, string } from 'yup';\n\nimport { ReservationFlexibility } from '@/app/[locale]/(pdp)/meeting-rooms/[locationSlug]/[slug]/_components/types';\nimport { useDateUtils } from '@/hooks/useDateUtils';\nimport { useRouter } from '@/hooks/useRouter';\nimport { usePathname } from '@/i18n/navigation';\nimport { LocationOpeningHoursDto } from '@/lib/locations/dto/location-opening-hours.dto';\nimport { Slot } from '@/lib/meeting-rooms/dto/slot.dto';\nimport { fetchMeetingRoomAvailableSlots } from '@/lib/meeting-rooms/meeting-room-api';\nimport {\n DELAY_TO_BOOK_MEETING_ROOM_IN_HOURS,\n MIN_RESERVATION_DURATION_IN_HOURS,\n SLOT_GAP_IN_MINUTES,\n} from '@/models/meeting-room-reservation-utils';\nimport {\n getDayDateFromQuery,\n getEndTimeFormQuery,\n getIsAllDay,\n getIsAllDayAvailable,\n getStartTimeFormQuery,\n} from '@/models/meeting-room-utils';\nimport {\n getPossibleStartTimes,\n getSlotAvailableEndTimes,\n getSlotFromTime,\n} from '@/utils/availability';\nimport { HOUR_IN_MINUTES } from '@/utils/constants';\nimport {\n getBlackoutDatesDayFilter,\n getOpeningHoursDayFilter,\n getPastDayFilter,\n getPastDayOrTodayFilter,\n} from '@/utils/date-picker-utils';\nimport {\n addMinutes,\n createLocalDay,\n formatToDay,\n getDateFromLocal,\n getTimeFromLocalDate,\n isAfter,\n isEqual,\n} from '@/utils/date-utils';\nimport { getDayOpeningHours } from '@/utils/locations';\nimport {\n getAllParamsFromSearchParams,\n stringifyUrl,\n} from '@/utils/stringify-url';\nimport { EnumValidator } from '@/utils/validators/enum-validator';\n\nexport const meetingRoomTimeReservationFormSchema = (\n t: ReturnType>\n) =>\n object({\n date: date().nullable(),\n reservationFlexibility: EnumValidator(\n ReservationFlexibility\n ).nullable(),\n isAllDay: boolean(),\n startTime: string().required(t('start-time-required')),\n endTime: string().required(t('end-time-required')),\n }).required();\n\nexport type MeetingRoomReservationTime = InferType<\n ReturnType\n>;\n\ntype UseMeetingRoomReservationDateTimePickerProps = {\n meetingRoomId: string;\n withAutoUpdateUrl?: boolean;\n openingHours: LocationOpeningHoursDto;\n blackoutDays: {\n date: string;\n description: string;\n }[];\n defaultValues?: Partial;\n timeZone: string;\n isRequestToBook: boolean;\n};\n\nexport function useMeetingRoomReservationDateTimePicker({\n blackoutDays,\n openingHours,\n meetingRoomId,\n defaultValues,\n withAutoUpdateUrl,\n timeZone,\n isRequestToBook,\n}: UseMeetingRoomReservationDateTimePickerProps) {\n const t = useTranslations('meeting-room');\n const { format } = useDateUtils();\n const [isLoadingAvailableSlots, setIsLoadingAvailableSlots] = useState(false);\n const [slots, setSlots] = useState([]);\n\n const router = useRouter();\n const searchParams = useSearchParams();\n const pathname = usePathname();\n const allParams = getAllParamsFromSearchParams(searchParams);\n\n const blackoutDates = useMemo(\n () => blackoutDays.map((blackoutDay) => createLocalDay(blackoutDay.date)),\n [blackoutDays]\n );\n\n const locationDayFilters = useMemo(() => {\n const today = new Date();\n\n const elevenAmToday = new Date().setHours(11, 0, 0, 0);\n\n const isElevenAmOrLater =\n isAfter(today, new Date(elevenAmToday)) ||\n isEqual(today, new Date(elevenAmToday));\n\n return [\n ...getBlackoutDatesDayFilter(blackoutDays),\n getOpeningHoursDayFilter(openingHours),\n isElevenAmOrLater ? getPastDayOrTodayFilter() : getPastDayFilter(),\n ];\n }, [blackoutDates, openingHours]);\n\n const form = useForm({\n resolver: yupResolver(meetingRoomTimeReservationFormSchema(t)),\n mode: 'onBlur',\n defaultValues: {\n date: getDayDateFromQuery(allParams),\n startTime: getStartTimeFormQuery(allParams),\n endTime: getEndTimeFormQuery(allParams),\n isAllDay: false,\n reservationFlexibility: ReservationFlexibility.Exact,\n ...defaultValues,\n },\n });\n\n useEffect(() => {\n form.reset({\n startTime: getStartTimeFormQuery(allParams),\n endTime: getEndTimeFormQuery(allParams),\n date: getDayDateFromQuery(allParams) ?? null,\n isAllDay: false,\n reservationFlexibility: ReservationFlexibility.Exact,\n });\n }, []);\n\n const { startTime, endTime, date, isAllDay, reservationFlexibility } =\n form.getValues();\n\n const dateWithFormat = date ? formatToDay(date) : null;\n\n const dayOpeningHours = useMemo(() => {\n if (!dateWithFormat) return null;\n\n return getDayOpeningHours(openingHours, dateWithFormat);\n }, [dateWithFormat]);\n\n const isAllDayAvailable = useMemo(() => {\n if (!dayOpeningHours) return false;\n\n if (date && date <= new Date()) return false;\n\n return getIsAllDayAvailable({\n dayOpeningHours,\n slots,\n });\n }, [dayOpeningHours, slots, date]);\n\n // isAllDay useEffect\n useEffect(() => {\n form.setValue(\n 'isAllDay',\n getIsAllDay({\n isAllDayAvailable,\n dayOpeningHours,\n startTime,\n endTime,\n })\n );\n }, [startTime, endTime, isAllDayAvailable]);\n\n // startTime slot options useEffect\n useEffect(() => {\n if (!date) return;\n\n if (isRequestToBook) {\n const day = formatToDay(date);\n const currentDayOpeningHours = getDayOpeningHours(openingHours, day);\n\n if (currentDayOpeningHours) {\n const slots = {\n localStartDate: `${day}T${currentDayOpeningHours.open}:00`,\n localEndDate: `${day}T${currentDayOpeningHours.close}:00`,\n };\n\n setSlots([slots]);\n }\n return;\n }\n\n const fetchStartTimeDateSlots = async (date: Date) => {\n setIsLoadingAvailableSlots(true);\n try {\n const slots = await fetchMeetingRoomAvailableSlots({\n id: meetingRoomId,\n day: format(date, 'yyyy-MM-dd'),\n });\n\n setSlots(slots);\n } finally {\n setIsLoadingAvailableSlots(false);\n }\n };\n\n fetchStartTimeDateSlots(date);\n }, [dateWithFormat]);\n\n const possibleStartTimes = useMemo(() => {\n if (!slots) {\n return [];\n }\n\n const minDate = addMinutes(\n getDateFromLocal(new Date(), timeZone),\n DELAY_TO_BOOK_MEETING_ROOM_IN_HOURS * HOUR_IN_MINUTES\n );\n\n return getPossibleStartTimes({\n minDurationInHours: MIN_RESERVATION_DURATION_IN_HOURS,\n slotGapInMinutes: SLOT_GAP_IN_MINUTES,\n slots,\n minDate,\n timeZone,\n });\n }, [slots]);\n\n const possibleEndTimes = useMemo(() => {\n if (!slots) {\n return [];\n }\n\n const slot = getSlotFromTime({\n time: startTime,\n slots,\n });\n\n if (!slot) {\n return [];\n }\n\n return getSlotAvailableEndTimes({\n startTime,\n minDurationInHours: MIN_RESERVATION_DURATION_IN_HOURS,\n slotGapInMinutes: SLOT_GAP_IN_MINUTES,\n slot,\n timeZone,\n });\n }, [startTime, slots]);\n\n const showAllDaySwitch = useMemo(() => date && date > new Date(), [date]);\n\n useEffect(() => {\n if (withAutoUpdateUrl && !isLoadingAvailableSlots) {\n router.replace(\n stringifyUrl(pathname, {\n ...allParams,\n startTime,\n endTime,\n day: dateWithFormat,\n }),\n { scroll: false }\n );\n }\n }, [\n withAutoUpdateUrl,\n isLoadingAvailableSlots,\n startTime,\n endTime,\n dateWithFormat,\n ]);\n\n const onDayChange = async (date?: Date) => {\n if (date) {\n form.reset({\n startTime: '',\n endTime: '',\n isAllDay: false,\n reservationFlexibility,\n date,\n });\n return;\n }\n form.reset({\n startTime: '',\n endTime: '',\n isAllDay: false,\n date: null,\n reservationFlexibility,\n });\n };\n\n const onAllDayChange = (checked: boolean) => {\n if (checked && isAllDayAvailable && slots.length > 0) {\n return setAllDayTimes();\n }\n resetTimes();\n };\n\n const setAllDayTimes = () => {\n const slot = slots[0];\n const startTime = getTimeFromLocalDate(slot.localStartDate);\n const endTime = getTimeFromLocalDate(slot.localEndDate);\n\n form.setValue('startTime', startTime, { shouldValidate: true });\n form.setValue('endTime', endTime, { shouldValidate: true });\n };\n\n const resetTimes = () => {\n form.setValue('startTime', '', { shouldValidate: true });\n form.setValue('endTime', '', { shouldValidate: true });\n };\n\n const onStartTimeChange = (time: string | undefined) => {\n form.setValue('startTime', time ?? '', { shouldValidate: true });\n form.setValue('endTime', '');\n };\n\n const onEndTimeChange = (time: string | undefined) => {\n form.setValue('endTime', time ?? '', { shouldValidate: true });\n };\n\n const onResetDate = () => {\n form.setValue('date', null, { shouldValidate: true });\n resetTimes();\n };\n\n const onReservationFlexibilityChange = (type: ReservationFlexibility) => {\n form.setValue('reservationFlexibility', type, { shouldValidate: true });\n };\n\n return {\n form,\n locationDayFilters,\n blackoutDates,\n startTime,\n endTime,\n date,\n reservationFlexibility,\n isAllDay,\n isAllDayAvailable,\n possibleStartTimes,\n possibleEndTimes,\n showAllDaySwitch,\n isLoadingAvailableSlots,\n dayOpeningHours,\n onAllDayChange,\n setAllDayTimes,\n onStartTimeChange,\n onEndTimeChange,\n onDayChange,\n onReservationFlexibilityChange,\n onResetDate,\n };\n}\n\nexport type UseMeetingRoomReservationDateTimePickerHook = ReturnType<\n typeof useMeetingRoomReservationDateTimePicker\n>;\n","import { useSearchParams } from 'next/navigation';\n\n// eslint-disable-next-line no-restricted-imports\nimport { useRouter as useNextRouter } from '@/i18n/navigation';\nimport {\n getAllParamsFromSearchParams,\n stringifyUrl,\n} from '@/utils/stringify-url';\n\nexport function useRouter() {\n const searchParams = useSearchParams();\n const { push: routerPush, replace: routerReplace, refresh } = useNextRouter();\n const allParams = getAllParamsFromSearchParams(searchParams);\n\n const supplier = allParams.supplier ? allParams.supplier : null;\n\n const push: typeof routerPush = (href, options) => {\n return routerPush(\n stringifyUrl(href as string, {\n ...(supplier && {\n supplier,\n }),\n }),\n options\n );\n };\n\n const replace: typeof routerReplace = (href, options) => {\n return routerReplace(\n stringifyUrl(href as string, {\n ...(supplier && {\n supplier,\n }),\n }),\n options\n );\n };\n\n return {\n push,\n replace,\n refresh,\n };\n}\n","import { DurationUnits } from '@/models/DurationUnits.enum';\nimport { getServerConfig } from '@/utils/config';\nimport { Supplier } from '@/utils/constants';\nimport { tryFetchToJson } from '@/utils/http-request';\n\nimport { MeetingRoomFilterDto } from './dto/meeting-room-filter.dto';\nimport { MeetingRoomPricePreviewDto } from './dto/meeting-room-price-preview.dto';\nimport { MeetingRoomDto } from './dto/meeting-room.dto';\nimport { QrCodeDto } from './dto/qr-code.dto';\nimport { SearchMeetingRoomsPricesDto } from './dto/search-meeting-rooms-prices.dto';\nimport { SimpleMeetingRoomDto } from './dto/simple-meeting-room.dto';\nimport { Slot } from './dto/slot.dto';\n\nexport type SearchMeetingRoomsProps = {\n locale: string;\n fromSupplier?: Supplier;\n locationIds?: string[];\n} & MeetingRoomFilterDto;\n\nexport async function searchMeetingRooms({\n locale,\n ...filters\n}: SearchMeetingRoomsProps): Promise {\n const host = getServerConfig().NEXT_PUBLIC_INVENTORY_API_URL;\n\n const url = `${host}/discovery/meeting-rooms/search`;\n\n const meetingRooms = await tryFetchToJson({\n fetchParams: {\n input: url,\n init: {\n headers: {\n 'Accept-Language': locale,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n body: JSON.stringify(filters),\n },\n },\n skipFetchError: true,\n });\n\n return meetingRooms ?? [];\n}\n\nexport async function fetchMeetingRoomBySlug(params: {\n meetingRoomSlug: string;\n locale: string;\n}): Promise {\n const { meetingRoomSlug, locale } = params;\n\n const url = `${\n getServerConfig().NEXT_PUBLIC_INVENTORY_API_URL\n }/discovery/meeting-rooms/${meetingRoomSlug}`;\n\n return tryFetchToJson({\n fetchParams: {\n input: url,\n init: {\n headers: { 'Accept-Language': locale },\n },\n },\n });\n}\n\nexport async function fetchQrCodeBySlug(params: {\n qrCodeSlug: string;\n}): Promise {\n const { qrCodeSlug } = params;\n\n const url = `${\n getServerConfig().NEXT_PUBLIC_INVENTORY_API_URL\n }/discovery/meeting-rooms/${qrCodeSlug}/qr-code`;\n\n return tryFetchToJson({\n fetchParams: {\n input: url,\n init: {\n headers: {\n 'Content-Type': 'application/json',\n },\n cache: 'no-store',\n },\n },\n });\n}\n\nexport async function searchMeetingRoomsPriceBySlugs({\n slugs,\n}: {\n slugs: string[];\n}): Promise {\n const host = getServerConfig().NEXT_PUBLIC_PRICING_API_URL;\n\n const url = `${host}/discovery/meeting-rooms`;\n\n const meetingRooms = await tryFetchToJson({\n fetchParams: {\n input: url,\n init: {\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n body: JSON.stringify({ slugs }),\n },\n },\n skipFetchError: true,\n });\n\n return meetingRooms ?? {};\n}\n\nexport async function searchMeetingRoomPricePreview(params: {\n slug: string;\n duration: {\n type: DurationUnits;\n value: number;\n };\n promoCode?: string;\n}): Promise {\n const { slug, duration, promoCode } = params;\n\n const host = getServerConfig().NEXT_PUBLIC_PRICING_API_URL;\n\n const url = `${host}/discovery/meeting-rooms/${slug}/preview`;\n const body = {\n duration,\n promoCode,\n };\n\n return tryFetchToJson({\n fetchParams: {\n input: url,\n init: {\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n body: JSON.stringify(body),\n },\n },\n skipFetchError: true,\n });\n}\n\ntype FetchMeetingRoomAvailableSlotsParams = {\n id: string;\n day: string; // YYYY-MM-DD\n isOneClickBooking?: boolean;\n};\n\nexport async function fetchMeetingRoomAvailableSlots({\n id,\n day,\n isOneClickBooking,\n}: FetchMeetingRoomAvailableSlotsParams): Promise {\n const host = getServerConfig().NEXT_PUBLIC_RESERVATION_API_URL;\n\n const url = `${host}/meeting-rooms/${id}/search-availabilities`;\n\n return tryFetchToJson({\n fetchParams: {\n input: url,\n init: {\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n body: JSON.stringify({ day, isOneClickBooking: isOneClickBooking }),\n },\n },\n skipFetchError: true,\n });\n}\n\ntype MicroMeetingRoomDto = {\n id: string;\n slug: string;\n};\n\nexport async function fetchMeetingRoomsSlugs() {\n const host = getServerConfig().NEXT_PUBLIC_INVENTORY_API_URL;\n\n const url = `${host}/discovery/meeting-rooms/slugs`;\n\n const meetingRooms = await tryFetchToJson({\n fetchParams: {\n input: url,\n init: {\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n },\n skipFetchError: true,\n });\n\n return meetingRooms ?? [];\n}\n","export function delay(ms: number): Promise {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function fetchWithMinDuration(promise: Promise, ms: number) {\n return Promise.all([promise, delay(ms)]).then(([result]) => result);\n}\n","export enum ReservationStatus {\n Archived = 'archived',\n WaitingForPayment = 'waitingForPayment',\n PaymentFailed = 'paymentFailed',\n Confirmed = 'confirmed',\n Cancelled = 'cancelled',\n Requested = 'requested',\n PaymentRequested = 'paymentRequested',\n}\n","export enum Frequency {\n Hourly,\n Daily,\n Monthly,\n}\n","export enum OnDemandBookingType {\n InstantBook = 'InstantBook',\n RequestToBook = 'RequestToBook',\n}\n","import { MeetingRoomReservation as MeetingRoomReservationType } from '@/lib/meeting-room-reservations/dto/meeting-room-reservations.dto';\nimport { ReservationStatus } from '@/lib/shared/dto/reservation-status';\nimport { RESERVATION_CANCELLATION_LIMIT_HOURS } from '@/utils/constants';\nimport { addHours, getDateFromLocal } from '@/utils/date-utils';\n\nexport const MIN_RESERVATION_DURATION_IN_HOURS = 2;\nexport const SLOT_GAP_IN_MINUTES = 30;\nexport const MIN_HOURS_FOR_ALL_DAY = 8;\nexport const DELAY_TO_BOOK_MEETING_ROOM_IN_HOURS = 2;\nexport const REAL_DELAY_TO_BOOK_MEETING_ROOM_IN_HOURS = 2;\n\nexport function getIsCancellable(\n reservationlocaleStartDate: string,\n timezone: string\n) {\n const now = new Date();\n\n const reservationDate = getDateFromLocal(\n reservationlocaleStartDate,\n timezone\n );\n\n const limitCancellationDate = addHours(\n reservationDate,\n -RESERVATION_CANCELLATION_LIMIT_HOURS\n );\n\n return now < limitCancellationDate;\n}\n\nexport function getIsRTBSubmitted(\n isRequestToBook: boolean,\n meetingRoomReservation?: MeetingRoomReservationType\n) {\n if (!meetingRoomReservation) return false;\n\n return (\n isRequestToBook &&\n meetingRoomReservation.status === ReservationStatus.Requested\n );\n}\n\nexport function getIsRTBArchived(\n isRequestToBook: boolean,\n meetingRoomReservation?: MeetingRoomReservationType\n) {\n if (!meetingRoomReservation) return false;\n\n return (\n isRequestToBook &&\n meetingRoomReservation.status === ReservationStatus.Archived\n );\n}\n\nexport function getIsRTBWaitingForPayment(\n isRequestToBook: boolean,\n meetingRoomReservation?: MeetingRoomReservationType\n) {\n if (!meetingRoomReservation) return false;\n\n return (\n isRequestToBook &&\n meetingRoomReservation.status === ReservationStatus.PaymentRequested\n );\n}\n","import { LocationValueOpeningHour } from '@/lib/locations/dto/location-opening-hours.dto';\nimport { MeetingRoomDto } from '@/lib/meeting-rooms/dto/meeting-room.dto';\nimport { Slot } from '@/lib/meeting-rooms/dto/slot.dto';\nimport { MIN_HOURS_FOR_ALL_DAY } from '@/models/meeting-room-reservation-utils';\nimport phoneIcon from '@/public/icons/amenityIcon-phone.svg';\nimport tvIcon from '@/public/icons/amenityIcon-tv.svg';\nimport videoConferenceIcon from '@/public/icons/amenityIcon-video-conference.svg';\nimport whiteboardIcon from '@/public/icons/amenityIcon-whiteboard.svg';\nimport alternativeWhiteboardIcon from '@/public/icons/board-amenity.svg';\nimport alternativePhoneIcon from '@/public/icons/phone-amenity.svg';\nimport alternativeTvIcon from '@/public/icons/tv-amenity.svg';\nimport alternativeVideoConferenceIcon from '@/public/icons/video-conference-amenity.svg';\nimport {\n createLocalDay,\n generateMonthDayDates,\n getTimeFromLocalDate,\n isPastDay,\n isValidDate,\n} from '@/utils/date-utils';\n\nimport { OnDemandBookingType } from './OnDemandBookingType.enum';\n\nexport function getAmenityIconByCode(code: string, isDefaultIcon = true) {\n switch (code) {\n case 'tv':\n return isDefaultIcon ? tvIcon : alternativeTvIcon;\n case 'camera':\n return isDefaultIcon\n ? videoConferenceIcon\n : alternativeVideoConferenceIcon;\n case 'whiteboard':\n return isDefaultIcon ? whiteboardIcon : alternativeWhiteboardIcon;\n case 'phone':\n return isDefaultIcon ? phoneIcon : alternativePhoneIcon;\n default:\n return null;\n }\n}\n\nexport function getIsRequestToBook(meetingRoom: MeetingRoomDto) {\n return meetingRoom.onDemandBookingType === OnDemandBookingType.RequestToBook;\n}\n\nexport function getSearchUnavailableDays(date: Date): Date[] {\n const margin = 30;\n const monthDays = generateMonthDayDates(date, margin);\n\n return [...monthDays.filter((day) => isPastDay(day))];\n}\n\nexport function getIsAllDay({\n isAllDayAvailable,\n dayOpeningHours,\n startTime,\n endTime,\n}: {\n isAllDayAvailable: boolean;\n dayOpeningHours: LocationValueOpeningHour | null;\n startTime: string;\n endTime: string;\n}) {\n return (\n isAllDayAvailable &&\n dayOpeningHours?.open === startTime &&\n dayOpeningHours?.close === endTime\n );\n}\n\nfunction isDayOpeningHoursEligibleToAllDay(\n dayOpeningHours: LocationValueOpeningHour\n) {\n const openHour = +dayOpeningHours.open.split(':')[0];\n const closeHour = +dayOpeningHours.close.split(':')[0];\n\n return closeHour - openHour >= MIN_HOURS_FOR_ALL_DAY;\n}\n\ntype GetIsAllDayAvailableParams = {\n dayOpeningHours: LocationValueOpeningHour;\n slots: Slot[];\n};\nexport const getIsAllDayAvailable = ({\n dayOpeningHours,\n slots,\n}: GetIsAllDayAvailableParams): boolean => {\n if (slots.length !== 1) return false;\n\n const { localStartDate, localEndDate } = slots[0];\n const startTime = getTimeFromLocalDate(localStartDate);\n const endTime = getTimeFromLocalDate(localEndDate);\n\n return (\n isDayOpeningHoursEligibleToAllDay(dayOpeningHours) &&\n dayOpeningHours.open === startTime &&\n dayOpeningHours.close === endTime\n );\n};\n\nexport function getDayFromQuery(query?: Record) {\n const day = query?.day ?? null;\n\n if (!day || !isValidDate(day) || isPastDay(new Date(day))) return null;\n\n return day;\n}\n\nexport function getDayDateFromQuery(query?: Record) {\n const day = getDayFromQuery(query);\n return day ? createLocalDay(day) : null;\n}\n\nexport function getStartTimeFormQuery(query?: Record) {\n const startTime = query?.startTime ?? '';\n\n if (!startTime || !isValidTimeFromQuery(startTime)) return;\n\n return startTime;\n}\n\nexport function getEndTimeFormQuery(query?: Record) {\n const endTime = query?.endTime ?? '';\n\n if (!endTime || !isValidTimeFromQuery(endTime)) return;\n\n return endTime;\n}\n\nexport function isValidTimeFromQuery(time: string) {\n if (time.length !== 5) return false;\n\n if (time[2] !== ':') return false;\n\n const [hour, minute] = time.split(':');\n\n if (isNaN(+hour) || isNaN(+minute)) return false;\n\n if (+hour < 0 || +hour > 23) return false;\n\n if (+minute < 0 || +minute > 59) return false;\n\n return true;\n}\n","export * from \"/codebuild/output/src4237242273/src/website/node_modules/@industriousoffice/react-components/lib/lib.es.js\"","import { LocationOpeningHoursDto } from '@/lib/locations/dto/location-opening-hours.dto';\nimport { BlackoutDateDto } from '@/lib/shared/dto/blackout-date.dto';\nimport { DateRange } from '@/models/DateRange';\nimport {\n DateAfter,\n DateBefore,\n DateInterval,\n DayOfWeek,\n} from '@/types/DateFilter';\n\nimport { DAY_PASS_CUTOFF_HOUR } from './constants';\nimport { MAX_BOOKING_MONTHS } from './constants';\nimport {\n addDays,\n addMonths,\n createLocalDay,\n isAfter,\n setHours,\n setMinutes,\n} from './date-utils';\n\nconst dayOfWeekMap = {\n sun: 0,\n mon: 1,\n tue: 2,\n wed: 3,\n thu: 4,\n fri: 5,\n sat: 6,\n};\n\nexport function getBlackoutDatesDayFilter(\n blackoutDays: BlackoutDateDto[]\n): Date[] {\n return blackoutDays.map((blackoutDay) => createLocalDay(blackoutDay.date));\n}\n\nexport function getUnavailableDaysFilter(unavailableDays: string[]): Date[] {\n return unavailableDays.map(createLocalDay);\n}\n\nexport function getPastDayFilter(): DateBefore {\n return { before: new Date() };\n}\n\nexport function getPastDayOrTodayFilter(): DateBefore {\n return { before: addDays(new Date(), 1) };\n}\n\nexport function getDateFilterBeforeCutoff(): DateBefore {\n const today = new Date();\n\n const todayAtCutoff = setHours(setMinutes(today, 0), DAY_PASS_CUTOFF_HOUR);\n\n if (isAfter(today, todayAtCutoff)) {\n return { before: addDays(today, 1) };\n }\n\n return { before: addDays(today, 0) };\n}\n\nexport function getDateRangeDayFilter(dateRange: DateRange): DateInterval {\n return { before: dateRange.from, after: dateRange.to };\n}\n\nexport function getMaxMonthsFilter(months: number): DateAfter {\n const today = new Date();\n const dateAfterMonths = addMonths(today, months);\n return { after: dateAfterMonths };\n}\n\nexport function getMaxDaysFilter(days: number): DateAfter {\n const today = new Date();\n const dateAfterDays = addDays(today, days);\n return { after: dateAfterDays };\n}\n\nexport function getOpeningHoursDayFilter(\n openingHours: LocationOpeningHoursDto\n): DayOfWeek {\n const openedDays = Object.keys(openingHours).filter(\n (day) => openingHours[day as keyof LocationOpeningHoursDto] == null\n );\n\n return {\n dayOfWeek: openedDays.map(\n (day) => dayOfWeekMap[day as keyof typeof dayOfWeekMap]\n ),\n };\n}\n\nexport const weekEndDisabled = getOpeningHoursDayFilter({\n mon: { open: '09:00', close: '17:00' },\n tue: { open: '09:00', close: '17:00' },\n wed: { open: '09:00', close: '17:00' },\n thu: { open: '09:00', close: '17:00' },\n fri: { open: '09:00', close: '17:00' },\n sat: null,\n sun: null,\n});\n\nexport const pastDaysOrTodayDisabled = getPastDayOrTodayFilter();\n\nexport const pastDaysBeforeCutoffDisabled = getDateFilterBeforeCutoff();\nexport const futureMonthsDisabled = getMaxMonthsFilter(MAX_BOOKING_MONTHS);\n","import {\n Duration,\n Interval,\n add as dateFnsAdd,\n addBusinessDays as dateFnsAddBusinessDays,\n addDays as dateFnsAddDays,\n addHours as dateFnsAddHours,\n addMinutes as dateFnsAddMinutes,\n addMonths as dateFnsAddMonths,\n differenceInDays as dateFnsDifferenceInDays,\n differenceInMinutes as dateFnsDifferenceInMinutes,\n eachDayOfInterval as dateFnsEachDayOfInterval,\n endOfMonth as dateFnsEndOfMonth,\n format as dateFnsFormat,\n getQuarter as dateFnsGetQuarter,\n isAfter as dateFnsIsAfter,\n isEqual as dateFnsIsEqual,\n isFuture as dateFnsIsFuture,\n isPast as dateFnsIsPast,\n isSameDay as dateFnsIsSameDay,\n isSameHour as dateFnsIsSameHour,\n isSameISOWeek as dateFnsIsSameISOWeek,\n isSameMonth as dateFnsIsSameMonth,\n isWithinInterval as dateFnsIsWithinInterval,\n parse as dateFnsParse,\n setHours as dateFnsSetHours,\n setMinutes as dateFnsSetMinutes,\n startOfMonth as dateFnsStartOfMonth,\n subHours as dateFnsSubHours,\n differenceInHours as dateFnsdifferenceInHours,\n setDefaultOptions,\n} from 'date-fns';\nimport { formatInTimeZone, zonedTimeToUtc } from 'date-fns-tz';\nimport { enUS as en, fr, nl } from 'date-fns/locale';\n\nimport { DateRange, PartialDateRange } from '@/models/DateRange';\n\nconst LOCALES = [en, fr, nl];\nexport const DATE_LOCALE_EN = en;\nexport const SECOND_IN_MS = 1000;\nexport const MINUTE_IN_SECONDES = 60;\nexport const HOUR_IN_MINUTES = 60;\nexport const HOUR_IN_MS = HOUR_IN_MINUTES * MINUTE_IN_SECONDES * SECOND_IN_MS;\nexport const DAY_IN_MS = 24 * HOUR_IN_MS;\n\nexport function getFirstDayOfNextMonth(startDate: Date): Date {\n const nextMonth = addMonths(startDate, 1);\n nextMonth.setDate(1);\n\n return nextMonth;\n}\n\nexport function addMonths(startDate: Date, amount: number): Date {\n return dateFnsAddMonths(startDate, amount);\n}\n\nexport function isWithinInterval(date: Date, amount: Interval): boolean {\n return dateFnsIsWithinInterval(date, amount);\n}\n\nexport function format(\n date: Date,\n format: string,\n options?: {\n locale?: Locale;\n }\n): string {\n return dateFnsFormat(date, format, options);\n}\n\nexport function getQuarter(date: Date) {\n return dateFnsGetQuarter(date);\n}\n\nexport function differenceInDays(dateLeft: Date, dateRight: Date) {\n return dateFnsDifferenceInDays(dateLeft, dateRight);\n}\n\nexport function addDays(date: Date, amount: number) {\n return dateFnsAddDays(date, amount);\n}\n\nexport function endOfMonth(date: Date) {\n return dateFnsEndOfMonth(date);\n}\n\nexport function addHours(date: Date, hours: number) {\n return dateFnsAddHours(date, hours);\n}\n\nexport function setLocale(locale: string) {\n setDefaultOptions({ locale: LOCALES.find((l) => l.code === locale) });\n}\n\nexport function differenceInHours(dateLeft: Date, dateRight: Date) {\n return dateFnsdifferenceInHours(dateLeft, dateRight);\n}\n\nexport function differenceInMinutes(dateLeft: Date, dateRight: Date) {\n return dateFnsDifferenceInMinutes(dateLeft, dateRight);\n}\n\nexport function eachDayOfInterval(start: Date, end: Date) {\n return dateFnsEachDayOfInterval({ start, end });\n}\n\nexport function addMinutes(date: Date, amount: number) {\n return dateFnsAddMinutes(date, amount);\n}\n\nexport function add(date: Date, duration: Duration) {\n return dateFnsAdd(date, duration);\n}\n\nexport function addBusinessDays(date: Date, amount: number) {\n return dateFnsAddBusinessDays(date, amount);\n}\n\nexport function parse(time: string, format: string, date: Date) {\n return dateFnsParse(time, format, date);\n}\n\nexport function isSameHour(dateLeft: Date, dateRight: Date) {\n return dateFnsIsSameHour(dateLeft, dateRight);\n}\n\nexport function isSameMonth(dateLeft: Date, dateRight: Date) {\n return dateFnsIsSameMonth(dateLeft, dateRight);\n}\n\nexport function isEqual(dateLeft: Date, dateRight: Date) {\n return dateFnsIsEqual(dateLeft, dateRight);\n}\nexport function isAfter(dateLeft: Date, dateRight: Date) {\n return dateFnsIsAfter(dateLeft, dateRight);\n}\n\nexport function isSameDay(dateLeft: Date, dateRight: Date) {\n return dateFnsIsSameDay(dateLeft, dateRight);\n}\n\nexport function setHours(date: Date, hours: number) {\n return dateFnsSetHours(date, hours);\n}\n\nexport function setMinutes(date: Date, minutes: number) {\n return dateFnsSetMinutes(date, minutes);\n}\n\nexport function subHours(date: Date, amount: number) {\n return dateFnsSubHours(date, amount);\n}\n\nexport function getFormattedTime(time: string): string {\n const today = new Date();\n today.setHours(...(time.split(':').map(Number) as [number, number]));\n return format(today, 'p');\n}\n\nexport function getNbThirtyMinuteSlots(startDate: Date, endDate: Date): number {\n return differenceInHours(endDate, startDate) * 2;\n}\n\nexport function getThirtyMinuteSlots(startDate: Date, endDate: Date): Date[] {\n const dateHourDifference = getNbThirtyMinuteSlots(startDate, endDate);\n return Array.from({ length: dateHourDifference + 1 }, (_, index) => {\n return addMinutes(startDate, index * 30);\n });\n}\n\nexport function getFormattedDateWithTime(date: Date, time: string) {\n const today = new Date();\n today.setHours(...(time.split(':').map(Number) as [number, number]));\n today.setSeconds(0);\n return format(date, 'yyyy-MM-dd') + 'T' + format(today, 'HH:mm:ss');\n}\n\nexport function isPast(date: Date): boolean {\n return dateFnsIsPast(date);\n}\n\nexport function isFuture(date: Date): boolean {\n return dateFnsIsFuture(date);\n}\n\n// Used only for the time\nexport function getDateFromTime(hour: number, minute: number) {\n return new Date(2000, 1, 1, hour, minute, 0);\n}\n\nexport function createDateFromLocalDate(localDate: string) {\n return new Date(`${localDate}Z`);\n}\n\nexport function getISOTime(date: Date) {\n return getTimeFromLocalDate(date.toISOString());\n}\n\nexport function getTimeFromLocalDate(localDate: string) {\n return localDate.split('T')[1].slice(0, 5);\n}\n\nexport function isValidDate(date: string) {\n return new Date(date).toString() !== 'Invalid Date';\n}\n\nexport function isPastDay(date: Date) {\n const today = new Date(new Date().toISOString().split('T')[0]);\n\n return date.getTime() < today.getTime();\n}\n\nexport function createLocalDay(local: string) {\n const day = local.split('T')[0];\n return new Date(day.replace(/-/g, '/'));\n}\n\nexport function generateMonthDayDates(month: Date, margin = 0) {\n const nextMonth = getNextMonth(month);\n\n const start = addDays(month, -margin);\n const end = addDays(nextMonth, margin);\n\n return generateDates(start, end);\n}\n\nexport function getNextMonth(month: Date) {\n const nextMonth = new Date(month);\n\n nextMonth.setMonth(nextMonth.getMonth() + 1);\n\n return nextMonth;\n}\n\nexport function generateDates(start: Date, end: Date) {\n const dates: Date[] = [];\n\n const date = new Date(start);\n while (date < end) {\n dates.push(new Date(date));\n date.setDate(date.getDate() + 1);\n }\n\n return dates;\n}\n\nexport function getMonthDate(date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), 1);\n}\n\nexport function getDateFromLocal(localDate: string | Date, timeZone: string) {\n return zonedTimeToUtc(localDate, timeZone);\n}\n\nexport function getDateFormatInTimeZone(\n date: Date,\n timeZone: string,\n format: string\n) {\n return formatInTimeZone(date, timeZone, format);\n}\n\nexport function getTimeInTimeZone(date: Date, timeZone: string) {\n return getDateFormatInTimeZone(date, timeZone, 'HH:mm');\n}\n\nexport function getNbHours(start: Date, end: Date): number {\n return (end.getTime() - start.getTime()) / HOUR_IN_MS;\n}\n\nexport function formatTime(time: string) {\n return format(new Date(`2000-01-01T${time}:00`), 'h:mm a');\n}\n\nexport function formatTimeLowercase(time: string) {\n return formatTime(time).toLowerCase();\n}\n\nexport function getTomorrowDay() {\n return getNextDay(formatToDay(new Date()));\n}\n\nexport function formatToISODay(date: Date | string) {\n const dateStr = typeof date === 'string' ? date : date.toISOString();\n return dateStr.split('T')[0];\n}\n\nexport function getLocalDay(date: Date) {\n const isoDay = formatToISODay(date);\n return isoDay.replaceAll(/-/g, '/');\n}\n\nexport function getLocalDateFromDay(day: string) {\n return new Date(day.replaceAll(/-/g, '/'));\n}\n\nexport function formatToDay(date: Date) {\n return format(date, 'yyyy-MM-dd');\n}\n\nexport function getNbDays({ from, to }: DateRange): number {\n const timeGap = to.getTime() - from.getTime() + 1;\n return Math.ceil(timeGap / DAY_IN_MS);\n}\n\nexport function isDateRange(\n date: PartialDateRange | undefined\n): date is DateRange {\n return date?.from instanceof Date && date?.to instanceof Date;\n}\n\nexport function getNextDay(day: string) {\n const date = new Date(day);\n\n return formatToISODay(addDays(date, 1));\n}\n\nexport function getAbbreviatedDayName(day: string) {\n const date = parse(day, 'yyyy-MM-dd', new Date());\n return format(date, 'EEE', { locale: DATE_LOCALE_EN }).toLowerCase();\n}\n\nexport function eachDayOfDateRange({ from, to }: DateRange) {\n return dateFnsEachDayOfInterval({ start: from, end: to });\n}\n\nexport function isWeekEnd(day: string) {\n const dayName = getAbbreviatedDayName(day);\n\n return ['sat', 'sun'].includes(dayName);\n}\n\nexport function isSameWeek(day1: string, day2: string) {\n return dateFnsIsSameISOWeek(new Date(day1), new Date(day2));\n}\n\nexport function startOfMonth(date: Date) {\n return dateFnsStartOfMonth(date);\n}\n","import { MeetingRoomDto } from '@/lib/meeting-rooms/dto/meeting-room.dto';\nimport { SimpleMeetingRoomDto } from '@/lib/meeting-rooms/dto/simple-meeting-room.dto';\nimport { StringBool } from '@/models/StringBool.enum';\n\nimport { MeetingRoomMapFeatureProps } from './mapbox';\n\nexport enum GtmListId {\n SearchPage = 'search_page',\n LocationPdp = 'location_pdp',\n}\n\nexport enum GtmListName {\n SearchPage = 'Search Page',\n LocationPdp = 'Location PDP',\n}\n\ntype GtmOptionsPageView = {\n pageType?: string;\n};\n\ntype GtmOptionsLocation = {\n location_name?: string;\n location_city?: string;\n location_metro?: string;\n location_country?: string;\n location_id?: string;\n};\n\ntype GtmOptionsCheckoutCustomize = {\n country?: string;\n metro?: string;\n location?: string;\n global_access?: StringBool;\n location_id?: string;\n promo_code?: string;\n};\n\ntype GtmOptionsMeetingRoom = {\n location_name?: string;\n meeting_room_name?: string;\n};\n\nexport type GtmOptions = GtmOptionsPageView &\n GtmOptionsLocation &\n GtmOptionsMeetingRoom &\n GtmOptionsCheckoutCustomize;\n\nexport const isDataLayerLoaded = () => {\n return typeof window !== 'undefined' && !!window.dataLayer;\n};\n\nexport const pushEvent = (event: string, options = {}) => {\n if (!window.dataLayer) return;\n window.dataLayer.push({ event, ...options });\n};\n\nexport const pageview = ({\n url,\n pageType,\n options = {},\n}: {\n url: string;\n pageType: string;\n options: GtmOptions;\n}) => {\n pushEvent('pageview', { url, pageType, ...options });\n};\n\nexport const pushECommerceEvent = (\n event: string,\n options: Record\n) => {\n if (!window.dataLayer) return;\n window.dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.\n pushEvent(event, { ecommerce: options });\n};\n\nconst AFFILIATION = 'Online purchase';\nconst PRODUCT_CATEGORY_ON_DEMAND = 'On demand';\nconst PRODUCT_CATEGORY_SUBSCRIPTION = 'subscription';\n\nconst MEETING_ROOM_PRODUCT = 'Meeting room';\nconst COWORKING_ITEM_NAME = 'Coworking day pass';\nconst DAY_PASS_PRODUCT = 'Day pass';\nconst INDUSTRIOUS_BRAND_NAME = 'Industrious';\nconst OFFICE_PRODUCT = 'Private office';\n\nexport const mapMeetingRoomToItemEcommerce = (\n meetingRoom: MeetingRoomDto | SimpleMeetingRoomDto,\n locationId: string\n) => {\n return {\n item_name: `${meetingRoom.locationName} - ${meetingRoom.name}`,\n item_id: meetingRoom.slug,\n affiliation: AFFILIATION,\n item_brand:\n (meetingRoom as MeetingRoomDto)?.brandName || INDUSTRIOUS_BRAND_NAME,\n item_category: meetingRoom.locationName,\n item_category2: PRODUCT_CATEGORY_ON_DEMAND,\n item_category3: MEETING_ROOM_PRODUCT,\n ...(meetingRoom.locationTier != null && {\n item_category4: `Tier ${meetingRoom.locationTier}`,\n }),\n item_variant: meetingRoom.seats,\n location_id: locationId,\n };\n};\n\nexport const mapSimpleMeetingRoomToItemEcommerce = (\n meetingRoom: SimpleMeetingRoomDto | MeetingRoomMapFeatureProps\n) => {\n return {\n item_name: `${meetingRoom.locationName} - ${meetingRoom.name}`,\n item_id: meetingRoom.slug,\n affiliation: AFFILIATION,\n item_category: meetingRoom.locationName,\n item_category2: PRODUCT_CATEGORY_ON_DEMAND,\n item_category3: MEETING_ROOM_PRODUCT,\n ...(meetingRoom.locationTier != null && {\n item_category4: `Tier ${meetingRoom.locationTier}`,\n }),\n item_variant: meetingRoom.seats,\n };\n};\n\nexport const mapCoworkingToItemEcommerce = (location: {\n name: string;\n id: string;\n}) => {\n return {\n item_name: COWORKING_ITEM_NAME,\n affiliation: AFFILIATION,\n item_brand: INDUSTRIOUS_BRAND_NAME,\n item_category: location.name,\n item_category2: PRODUCT_CATEGORY_ON_DEMAND,\n item_category3: DAY_PASS_PRODUCT,\n location_id: location.id,\n };\n};\n\nexport const mapOfficeToItemEcommerce = (params: {\n officeName: string;\n officeId: string;\n locationName: string;\n seats?: number;\n locationId: string;\n}) => {\n const { officeName, officeId, locationName, seats, locationId } = params;\n return {\n item_id: officeId,\n item_name: officeName,\n affiliation: AFFILIATION,\n item_brand: INDUSTRIOUS_BRAND_NAME,\n item_category: locationName,\n item_category2: PRODUCT_CATEGORY_SUBSCRIPTION,\n item_category3: OFFICE_PRODUCT,\n item_variant: seats,\n location_id: locationId,\n quantity: 1,\n };\n};\n","import { NextRequest } from 'next/server';\n\nimport { delay } from '@/lib/promises';\n\nimport { SECOND_IN_MS } from './date-utils';\nimport { captureException, captureMessage } from './sentry';\n\nconst DEFAULT_RETRY_DELAY = 2 * SECOND_IN_MS;\nexport const DEFAULT_NB_RETRIES = 3;\n\nexport enum HttpMethods {\n Get = 'GET',\n Post = 'POST',\n Put = 'PUT',\n Patch = 'PATCH',\n Options = 'OPTIONS',\n Delete = 'DELETE',\n}\n\nexport enum HttpErrorNames {\n MethodNotAllowed = 'MethodNotAllowed',\n}\n\nexport type OnErrorResParams = {\n status: number;\n body: any;\n};\n\nexport async function tryFetchToJson(params: {\n fetchParams: { input: RequestInfo | URL; init?: RequestInit | undefined };\n onSuccess?: (response: T) => any;\n onFunctionalError?: (res?: OnErrorResParams) => any;\n onTechnicalError?: (err: any) => any;\n withoutResponse?: boolean;\n skipFetchError?: boolean;\n withAuthToken?: boolean;\n nbRetries?: number;\n retryDelay?: number;\n}): Promise {\n const {\n fetchParams,\n onSuccess,\n onFunctionalError,\n onTechnicalError,\n withoutResponse,\n skipFetchError,\n nbRetries = 0,\n retryDelay = DEFAULT_RETRY_DELAY,\n } = params;\n\n const fetchParamsInit = {\n ...fetchParams.init,\n headers: {\n ...fetchParams.init?.headers,\n ...(params.withAuthToken && {\n Authorization: `Bearer ${await getUserToken()}`,\n }),\n },\n };\n\n const retry = async () => {\n await delay(retryDelay);\n return tryFetchToJson({\n ...params,\n nbRetries: nbRetries - 1,\n });\n };\n\n try {\n const res = await fetch(fetchParams.input, fetchParamsInit);\n\n if (res.status >= 400) {\n captureMessage(\n `Failed to fetch ${fetchParams.input} with status code ${res.status}`,\n res.status < 500 ? 'warning' : 'error'\n );\n\n if (nbRetries > 0) {\n return retry();\n }\n\n try {\n const body = await res.json();\n return onFunctionalError?.({ status: res.status, body });\n } catch {\n return onFunctionalError?.({ status: res.status, body: undefined });\n }\n }\n\n const response =\n res.status === 204 || withoutResponse ? null : ((await res.json()) as T);\n\n if (onSuccess == null) {\n return response as T;\n }\n\n return onSuccess(response as T);\n } catch (err: any) {\n if (!skipFetchError) {\n captureException(\n `Failed to fetch ${fetchParams.input}: ${err?.toString()}`,\n err\n );\n }\n\n if (nbRetries > 0) {\n return retry();\n }\n\n return onTechnicalError?.(err);\n }\n}\n\nexport function getClientIp(req: NextRequest): string {\n let ip = req.headers.get('x-real-ip') as string;\n\n const forwardedFor = req.headers.get('x-forwarded-for') as string;\n if (!ip && forwardedFor) {\n ip = forwardedFor?.split(',').at(0) ?? 'Unknown';\n }\n\n return ip;\n}\n\nexport const getUserToken = async () => {\n const AuthHelpers = await import('@/lib/authentication/helpers');\n const { isValid } = await AuthHelpers.checkUserToken();\n const { token } = await AuthHelpers.getUserToken();\n\n let userToken = token;\n if (!isValid) {\n try {\n const { message } = await AuthHelpers.refreshUserToken();\n userToken = message.refreshToken.token;\n } catch (error) {\n AuthHelpers.logout(); // making sure we remove auth data from local storage\n }\n }\n\n return userToken;\n};\n","export enum BrandNames {\n Industrious = 'Industrious',\n WelkinMeraki = 'Welkin & Meraki',\n TheGreatRoom = 'The Great Room',\n}\n","import { string } from 'yup';\n\nimport { isValidDate } from '../date-utils';\n\nexport const stringDay = () =>\n string().test((x) => {\n if (x == null) {\n return true;\n }\n return isValidDate(x) && /^\\d{4}-\\d{2}-\\d{2}$/.test(x);\n });\n","import { useTranslations } from 'next-intl';\n\nimport { SelectOption } from '@/components/form/Select/types';\nimport {\n LocationDto,\n SimpleIndustriousLocationSearchDto,\n SimpleLocationSearchDto,\n WorlwideExternalLocationDto,\n} from '@/lib/locations/dto';\nimport { LocationPhases, ManagerRoles } from '@/lib/locations/dto';\nimport {\n LocationOpeningHoursDto,\n LocationValueOpeningHour,\n} from '@/lib/locations/dto/location-opening-hours.dto';\nimport { BlackoutDateDto } from '@/lib/shared/dto/blackout-date.dto';\nimport { BrandNames } from '@/models/BrandNames.enum';\nimport { DateRange } from '@/models/DateRange';\nimport tgrLogo from '@/public/images/brands/TGR.svg';\nimport wmLogo from '@/public/images/brands/welkin-and-meraki.svg';\n\nimport {\n DAY_PASS_CUTOFF_HOUR,\n DISPLAY_SEASON_AFTER_NB_DAYS,\n MAX_BOOKING_MONTHS,\n NORTH_SEASONS_BY_QUARTER,\n SOUTH_SEASONS_BY_QUARTER,\n} from './constants';\nimport {\n addMonths,\n createLocalDay,\n differenceInDays,\n formatToDay,\n getAbbreviatedDayName,\n getNextDay,\n getQuarter,\n getTomorrowDay,\n isAfter,\n isSameDay,\n setHours,\n setMinutes,\n} from './date-utils';\nimport { sortByLabel } from './select-option-utils';\nimport { stringifyUrl } from './stringify-url';\nimport { stringDay } from './validators/string-day-validator';\n\nexport function createLocationUrl(location: {\n isExternal?: boolean;\n externalLink?: string;\n slug: string;\n}) {\n return location.isExternal\n ? location.externalLink!\n : `/locations/${location.slug}`;\n}\n\nexport function createLocationDayPassUrl(params: {\n slug: string;\n dateRange?: DateRange;\n}) {\n const { slug, dateRange } = params;\n\n const url = `/locations/${slug}/coworking-day-pass`;\n\n if (!dateRange) return url;\n\n return stringifyUrl(url, {\n startDay: formatToDay(dateRange.from),\n endDay: formatToDay(dateRange.to),\n });\n}\n\nexport function isIndustriousLocation(\n location: SimpleLocationSearchDto\n): location is SimpleIndustriousLocationSearchDto {\n return !location.isExternal;\n}\n\nexport function isExternalLocation(\n location: SimpleLocationSearchDto\n): location is WorlwideExternalLocationDto {\n return location.isExternal;\n}\n\nexport function getBrandLogo(brandName: string | null) {\n switch (brandName) {\n case BrandNames.WelkinMeraki:\n return wmLogo;\n case BrandNames.TheGreatRoom:\n return tgrLogo;\n default:\n return undefined;\n }\n}\n\ntype LocationForOption = Pick & {\n metroName?: string;\n};\n\nexport const mapLocationsToOptions = (\n locations: Array\n): SelectOption[] => locations.map(mapLocationToOption).sort(sortByLabel);\n\nexport const mapLocationToOption = (\n location: LocationForOption\n): SelectOption => ({\n label: getLocationOptionLabel(location),\n value: location.sfId,\n});\n\nconst getLocationOptionLabel = (location: LocationForOption) => {\n return `${location.city} - ${location.name}`;\n};\n\n// This function extract the date disregarding time and timezone as we currently don't care in SF.\n// if we don't do this, it brings an issue\nexport function getOpeningDate(dateISO: string) {\n const year = +dateISO.substring(0, 4);\n const month = +dateISO.substring(5, 7) - 1;\n const day = +dateISO.substring(8, 10);\n\n return new Date(year, month, day);\n}\n\nexport function getOpeningLabelTranslationKey(params: {\n openingDate: Date;\n latitude: number;\n}) {\n const { openingDate, latitude } = params;\n\n const is60daysAway =\n differenceInDays(openingDate, new Date()) > DISPLAY_SEASON_AFTER_NB_DAYS;\n\n if (!is60daysAway) {\n return 'date';\n }\n\n const quarter = getQuarter(openingDate);\n\n return latitude > 0\n ? NORTH_SEASONS_BY_QUARTER[quarter]\n : SOUTH_SEASONS_BY_QUARTER[quarter];\n}\n\nexport function managerRoleToTranslationKey(role: string) {\n switch (role) {\n case ManagerRoles.MemberExperienceAssociate:\n return 'member-experience-associate';\n case ManagerRoles.ConferenceServicesManager:\n return 'conference-services-manager';\n case ManagerRoles.TechnicalAudioVisualManager:\n return 'technical-audio-visual-manager';\n default:\n return 'member-experience-manager';\n }\n}\n\nexport function shouldShowLogo(brandName: string | null) {\n return brandName === BrandNames.WelkinMeraki;\n}\n\nexport function getLocationHighlightName(params: {\n name: string;\n brandName: LocationDto['brandName'];\n t: ReturnType>;\n}) {\n const { name, brandName, t } = params;\n\n if (\n brandName == null ||\n brandName === BrandNames.WelkinMeraki ||\n name.includes(brandName)\n ) {\n return name;\n }\n\n return t('highlight-name', { brandName, locationName: name });\n}\n\nexport function shouldShowOpeningLabel(location: {\n isExternal?: boolean;\n firstDayOfBusinessISO: string | null;\n phase?: LocationPhases;\n hideOpeningDate?: boolean;\n isWaitlisting?: boolean;\n}) {\n return (\n !location.isExternal &&\n location.firstDayOfBusinessISO != null &&\n !location.hideOpeningDate &&\n location.phase != null &&\n !location.isWaitlisting &&\n [LocationPhases.Signed, LocationPhases.Launch].includes(location.phase)\n );\n}\n\nexport const getDayOpeningHours = (\n openingHours: LocationOpeningHoursDto,\n day: string\n): LocationValueOpeningHour | null => {\n const currentDayOfWeek = getAbbreviatedDayName(\n day\n ) as keyof LocationOpeningHoursDto;\n\n return openingHours[currentDayOfWeek] ?? null;\n};\n\nexport function getNextAvailableDay(props: {\n day: string;\n blackoutDates: BlackoutDateDto[];\n openingHours: LocationOpeningHoursDto;\n unavailableDays: string[];\n}) {\n const { day, blackoutDates, openingHours, unavailableDays } = props;\n let isAvailableDay = false;\n let currentDay = day;\n\n while (!isAvailableDay) {\n const dayOpeningHours = getDayOpeningHours(openingHours, currentDay);\n if (\n dayOpeningHours === null ||\n blackoutDates.some((blackoutDate) =>\n isBlackoutDay(currentDay, blackoutDate)\n ) ||\n unavailableDays.includes(currentDay)\n ) {\n currentDay = getNextDay(currentDay);\n continue;\n }\n isAvailableDay = true;\n }\n\n return currentDay;\n}\n\nexport function getValidEndDays(props: {\n startDay: string;\n blackoutDates: BlackoutDateDto[];\n openingHours: LocationOpeningHoursDto;\n unavailableDays: string[];\n}) {\n const { startDay, blackoutDates, openingHours, unavailableDays } = props;\n let currentDay = startDay;\n const possibleEndDays: string[] = [startDay];\n\n while (true) {\n const nextDay = getNextDay(currentDay);\n const nextAvailableDay = getNextAvailableDay({\n day: nextDay,\n blackoutDates,\n openingHours,\n unavailableDays,\n });\n if (nextAvailableDay !== nextDay) {\n break;\n }\n possibleEndDays.push(nextDay);\n currentDay = nextDay;\n }\n\n return possibleEndDays;\n}\n\nexport function getMaxValidEndDay(\n props: Parameters[0]\n) {\n const validEndDays = getValidEndDays(props);\n return validEndDays[validEndDays.length - 1];\n}\n\nfunction isBlackoutDay(day: string, blackoutDate: BlackoutDateDto) {\n const blackoutDay = blackoutDate.date.split('T')[0];\n return day === blackoutDay;\n}\n\nexport async function getNextAvailableDateRange(props: {\n location: LocationDto;\n preferredStartDay?: string;\n preferredEndDay?: string;\n unavailableDays: string[];\n}): Promise<{ startDay: string; endDay: string }> {\n const { location, preferredEndDay, preferredStartDay, unavailableDays } =\n props;\n\n const startDay = getNextAvailableDay({\n day: await getValidDay(preferredStartDay),\n openingHours: location.openingHours,\n blackoutDates: location.blackoutDates,\n unavailableDays,\n });\n\n if (\n startDay !== preferredStartDay ||\n !preferredEndDay ||\n preferredEndDay < preferredStartDay\n ) {\n return getDefaultDateRange(startDay);\n }\n\n const endDay = getNextAvailableDay({\n day: await getValidDay(preferredEndDay),\n openingHours: location.openingHours,\n blackoutDates: location.blackoutDates,\n unavailableDays,\n });\n\n if (endDay !== preferredEndDay) {\n return getDefaultDateRange(startDay);\n }\n\n const validEndDates = await getValidEndDays({\n startDay,\n blackoutDates: location.blackoutDates,\n openingHours: location.openingHours,\n unavailableDays,\n });\n\n if (validEndDates.some((x) => x === endDay)) {\n return { startDay, endDay };\n }\n\n return getDefaultDateRange(startDay);\n}\n\nasync function getValidDay(day: string | undefined): Promise {\n const tomorrowDay = getTomorrowDay();\n const today = new Date();\n const todayAtCutoff = setHours(setMinutes(today, 0), DAY_PASS_CUTOFF_HOUR);\n\n const maxBookingDate = addMonths(today, MAX_BOOKING_MONTHS);\n\n if (day && new Date(day) > maxBookingDate) {\n return tomorrowDay;\n }\n\n if (day == null) {\n return tomorrowDay;\n }\n\n if (isSameDay(createLocalDay(day), today) && !isAfter(today, todayAtCutoff)) {\n return day;\n }\n\n const isValid = await stringDay().isValid(day);\n\n if (!isValid || day < tomorrowDay) {\n return tomorrowDay;\n }\n return day;\n}\n\nexport function getValidDaySync(day: string | undefined): string {\n const tomorrowDay = getTomorrowDay();\n const today = new Date();\n const todayAtCutoff = setHours(setMinutes(today, 0), DAY_PASS_CUTOFF_HOUR);\n\n const maxBookingDate = addMonths(today, MAX_BOOKING_MONTHS);\n\n if (day && new Date(day) > maxBookingDate) {\n return tomorrowDay;\n }\n\n if (day == null) {\n return tomorrowDay;\n }\n\n if (isSameDay(createLocalDay(day), today) && !isAfter(today, todayAtCutoff)) {\n return day;\n }\n\n const isValid = stringDay().isValidSync(day);\n\n if (!isValid || day < tomorrowDay) {\n return tomorrowDay;\n }\n return day;\n}\n\nfunction getDefaultDateRange(startDay: string) {\n return { startDay, endDay: startDay };\n}\n\nexport function isCoworkingDayPassEnabled(location: LocationDto) {\n const {\n canBuyOnline,\n availableAtLocation,\n dailyOnDemandCapacity,\n currentlySellable,\n } = location.products.coworkingDayPass;\n\n return Boolean(\n canBuyOnline &&\n currentlySellable &&\n availableAtLocation &&\n dailyOnDemandCapacity != null &&\n dailyOnDemandCapacity > 0\n );\n}\n\nexport function isSsosEnabled(location: LocationDto) {\n const { canBuyOnline, availableAtLocation, currentlySellable } =\n location.products.dedicatedOffice;\n\n return (\n canBuyOnline === true &&\n currentlySellable === true &&\n availableAtLocation === true\n );\n}\n","import { SelectOption } from '@/components/form/Select/types';\n\nexport function sortByLabel(a: SelectOption, b: SelectOption) {\n return a.label.localeCompare(b.label);\n}\n","import * as Sentry from '@sentry/nextjs';\n\nexport function captureException(message: string, error?: Error) {\n Sentry.captureException(\n new Error(message, {\n cause: error,\n })\n );\n}\n\nexport function captureMessage(\n message: string,\n severity?: Sentry.SeverityLevel\n) {\n Sentry.captureMessage(message, severity ?? 'info');\n}\n","import { mixed } from 'yup';\n\nexport const EnumValidator = (e: { [key: string]: T }) =>\n mixed().oneOf(Object.values(e)).defined();\n","export default {\"src\":\"/_next/static/media/amenityIcon-phone.2899f9e2.svg\",\"height\":24,\"width\":24,\"blurWidth\":0,\"blurHeight\":0};","export default {\"src\":\"/_next/static/media/amenityIcon-tv.192604b4.svg\",\"height\":24,\"width\":24,\"blurWidth\":0,\"blurHeight\":0};","export default {\"src\":\"/_next/static/media/amenityIcon-video-conference.ff24cde9.svg\",\"height\":24,\"width\":24,\"blurWidth\":0,\"blurHeight\":0};","export default {\"src\":\"/_next/static/media/amenityIcon-whiteboard.76cf8fd1.svg\",\"height\":14,\"width\":20,\"blurWidth\":0,\"blurHeight\":0};","export default {\"src\":\"/_next/static/media/board-amenity.01a8b05c.svg\",\"height\":24,\"width\":24,\"blurWidth\":0,\"blurHeight\":0};","export default {\"src\":\"/_next/static/media/calendar.eaaacbb5.svg\",\"height\":20,\"width\":20,\"blurWidth\":0,\"blurHeight\":0};","export default {\"src\":\"/_next/static/media/closeIcon.09805f7c.svg\",\"height\":18,\"width\":18,\"blurWidth\":0,\"blurHeight\":0};","export default {\"src\":\"/_next/static/media/phone-amenity.c841c9af.svg\",\"height\":24,\"width\":24,\"blurWidth\":0,\"blurHeight\":0};","export default {\"src\":\"/_next/static/media/seatsIcon.2588b158.svg\",\"height\":20,\"width\":20,\"blurWidth\":0,\"blurHeight\":0};","export default {\"src\":\"/_next/static/media/tv-amenity.b310a8c5.svg\",\"height\":24,\"width\":24,\"blurWidth\":0,\"blurHeight\":0};","export default {\"src\":\"/_next/static/media/verified.c38866d8.svg\",\"height\":24,\"width\":24,\"blurWidth\":0,\"blurHeight\":0};","export default {\"src\":\"/_next/static/media/video-conference-amenity.326467fb.svg\",\"height\":24,\"width\":24,\"blurWidth\":0,\"blurHeight\":0};","export default {\"src\":\"/_next/static/media/TGR.30199ace.svg\",\"height\":15,\"width\":159,\"blurWidth\":0,\"blurHeight\":0};","export default {\"src\":\"/_next/static/media/welkin-and-meraki.3e549d5a.svg\",\"height\":20,\"width\":370,\"blurWidth\":0,\"blurHeight\":0};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"style\":{\"fontFamily\":\"'__tiemposFont_b85bab', '__tiemposFont_Fallback_b85bab'\"},\"className\":\"__className_b85bab\",\"variable\":\"__variable_b85bab\"};","import{get as r,set as i}from\"react-hook-form\";var e=function(i,e,t){if(i&&\"reportValidity\"in i){var f=r(t,e);i.setCustomValidity(f&&f.message||\"\"),i.reportValidity()}},t=function(r,i){var t=function(t){var f=i.fields[t];f&&f.ref&&\"reportValidity\"in f.ref?e(f.ref,t,r):f.refs&&f.refs.forEach(function(i){return e(i,t,r)})};for(var f in i.fields)t(f)},f=function(e,f){f.shouldUseNativeValidation&&t(e,f);var o={};for(var a in e){var n=r(f.fields,a);i(o,a,Object.assign(e[a],{ref:n&&n.ref}))}return o};export{f as toNestError,t as validateFieldsNatively};\n//# sourceMappingURL=resolvers.module.js.map\n","import{validateFieldsNatively as e,toNestError as t}from\"@hookform/resolvers\";import{appendErrors as r}from\"react-hook-form\";var o=function(o,n,a){return void 0===n&&(n={}),void 0===a&&(a={}),function(s,i,c){try{return Promise.resolve(function(t,r){try{var u=(n.context&&\"development\"===process.env.NODE_ENV&&console.warn(\"You should not used the yup options context. Please, use the 'useForm' context object instead\"),Promise.resolve(o[\"sync\"===a.mode?\"validateSync\":\"validate\"](s,Object.assign({abortEarly:!1},n,{context:i}))).then(function(t){return c.shouldUseNativeValidation&&e({},c),{values:a.rawValues?s:t,errors:{}}}))}catch(e){return r(e)}return u&&u.then?u.then(void 0,r):u}(0,function(e){if(!e.inner)throw e;return{values:{},errors:t((o=e,n=!c.shouldUseNativeValidation&&\"all\"===c.criteriaMode,(o.inner||[]).reduce(function(e,t){if(e[t.path]||(e[t.path]={message:t.message,type:t.type}),n){var o=e[t.path].types,a=o&&o[t.type];e[t.path]=r(t.path,n,e,t.type,a?[].concat(a,t.message):t.message)}return e},{})),c)};var o,n}))}catch(e){return Promise.reject(e)}}};export{o as yupResolver};\n//# sourceMappingURL=yup.module.js.map\n"],"names":["Promise","resolve","then","__webpack_require__","bind","t","DatepickerItem","props","name","labelClassName","label","tooltip","required","error","control","onChangeDate","disabledDays","dataTestId","pickerProps","field","value","onChange","useController","jsx_runtime","jsx","FormItem","SingleDatePicker","selected","defaultDate","disabled","date","DateTimeReservationForm","param","meetingRoomId","openingHours","prices","blackoutDays","timeZone","isRequestToBook","meetingRoomSlug","useTranslations","isLoading","setIsLoading","useState","getFormattedDateWithTime","useDateUtils","router","useRouter","form","locationDayFilters","showAllDaySwitch","onDayChange","startTime","reservationFlexibility","endTime","possibleStartTimes","possibleEndTimes","onStartTimeChange","onAllDayChange","onEndTimeChange","onReservationFlexibilityChange","isAllDayAvailable","isLoadingAvailableSlots","isAllDay","useMeetingRoomReservationDateTimePicker","withAutoUpdateUrl","onSubmit","handleSubmit","values","push","stringifyUrl","concat","startDate","endDate","jsxs","div","className","GeneralPrices","containerClassName","mode","register","defaultMonth","undefined","labelBetweenDatesText","renderIcon","Image","data-testid","src","calendarIcon","alt","aria-hidden","ToggleReservationFlexibilityButtonGroup","active","ReservationFlexibility","Exact","TimeSelectItemCustom","placeholder","hasLeftIcon","times","formState","errors","message","length","SwitchItem","isInline","isDisabled","onSwitchChange","PrimaryButton","type","span","p","TotalPrice","GTMEvents","meetingRoom","onDemandHourlyPrice","pathname","usePathname","isDataLayerLoaded","gtm","useEffect","currency","currencyIsoCode","items","locationId","url","pageType","options","location_name","locationName","meeting_room_name","MobileDateTimeFooter","onClickModalDatePicker","onContinueClick","isAvailable","isReservingMeetingRoom","geolocalization","format","a","onClick","start","Date","toLowerCase","end","rich","b","chunks","Button","size","ButtonSize","SMALL","as","Link","href","lng","DEFAULT_MAP_SEARCH_ZOOM","lat","MobileDateTimePickerModal","onClose","isOpen","onOpenChange","defaultValues","onResetDate","Dialog","modal","open","button","closeIcon","width","height","FormattedPriceText","price","frequency","Frequency","Hourly","maximumFractionDigits","onDemandDailyPrice","Daily","DatePickerInputItem","clsx","isValid","MobileDateTimePicker","isModalOpen","setIsModalOpen","setIsReservingMeetingRoom","searchParams","useSearchParams","allParams","getAllParamsFromSearchParams","formValue","setFormValues","getStartTimeFormQuery","getEndTimeFormQuery","getDayDateFromQuery","checkIfItsAllDay","day","getDayFromQuery","dayOpeningHours","getDayOpeningHours","slots","fetchMeetingRoomAvailableSlots","id","getIsAllDayAvailable","getIsAllDay","prevData","Fragment","data","replace","useMemo","OneOrTwoDays","Flexible","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","map","getNbHours","locale","useLocale","dateHourDifference","startDateformatted","endDateformatted","total","Intl","NumberFormat","style","count","divProps","formattedPrice","formattedPriceElement","getFrequencyTranslationKey","Monthly","MenuKey","EMPTY_URL","MOBILE_NUVEEN_MENU","key","subMenu","isAction","showInDesktop","MENU","widthSubMenu","USER_AUTH_MENU_ITEMS","NUVEEN_SUPPLIER_MENU","SUPPLIER_USER_AUTH_MENU_ITEMS","SUPPLIER_ACCOUNT_MENU_ITEMS","ACCOUNT_MENU_ITEMS","forwardRef","ref","children","noNextLink","nextLinkProps","getAllParamsFromHref","updatedHref","getPathnameFromHref","hash","includes","split","query","has","supplier","get","mergeClassName","NextLink","displayName","SubContentWithTitle","title","listItems","description","isReadMore","setIsReadMore","h4","ul","item","index","li","ITEMS_TO_SHOW_MOBILE","prevValue","ButtonAction","action","otherProps","Component","getSizeClasses","getActionClasses","CircleLoader","sm","DatePickerInput","onMonthChange","prefixLabel","isPickerOpen","setIsPickerOpen","selectedDate","setSelectedDay","formatDateOrRange","inputDisplay","formattedDate","FilterButton","icon","isActive","Picker","onSelect","isReverse","Switch","checked","onCheckedChange","isChecked","isSubmitting","displayError","fieldState","getDateFromTime","formattedOptions","hour","minute","time","currentOption","find","opt","TimeSelect","selectedOptionValue","hasError","ErrorMessage","dynamic","e","mod","ssr","Label","htmlFor","text","GalleryMatterport","iframe","allow","aria-label","allowFullScreen","GalleryButton","btnProps","GallerySummaryImage","image","sizes","priority","blurDataURL","loading","ImageWithPlaceholder","altText","isDefault","caption","GallerySummaryImages","images","numberImagesToDisplay","primaryImgSizes","otherImgSizes","matterportUrl","showMatterportThumbnail","imagesToDisplay","slice","GalleryModal","GallerySummary","isOpened","setIsOpened","handleGalleryModalDisplay","mapboxImageLoader","mapboxAccessToken","scaleMultiplier","maxWidth","maxHeight","multiplier","StaticMap","coords","withMarker","NEXT_PUBLIC_MAPBOX_STATIC_ACCESS_TOKEN","getServerConfig","zoom","latitude","longitude","center","loader","MAP_STYLE","CancellationPolicyBanner","verifiedIcon","FilterButtonStyle","React","onClearClick","buttonStyle","rest","handleClearClick","stopPropagation","__webpack_exports__","Z","dateUtils","meetingRoomTimeReservationFormSchema","object","nullable","EnumValidator","boolean","string","setIsLoadingAvailableSlots","setSlots","blackoutDates","createLocalDay","blackoutDay","today","elevenAmToday","setHours","isElevenAmOrLater","isAfter","isEqual","getBlackoutDatesDayFilter","getOpeningHoursDayFilter","getPastDayOrTodayFilter","getPastDayFilter","useForm","resolver","yupResolver","reset","getValues","dateWithFormat","formatToDay","setValue","currentDayOpeningHours","localStartDate","localEndDate","close","fetchStartTimeDateSlots","minDate","addMinutes","getDateFromLocal","DELAY_TO_BOOK_MEETING_ROOM_IN_HOURS","HOUR_IN_MINUTES","getPossibleStartTimes","minDurationInHours","MIN_RESERVATION_DURATION_IN_HOURS","slotGapInMinutes","SLOT_GAP_IN_MINUTES","slot","getSlotFromTime","getSlotAvailableEndTimes","scroll","setAllDayTimes","getTimeFromLocalDate","shouldValidate","resetTimes","routerPush","routerReplace","refresh","useNextRouter","searchMeetingRooms","filters","host","NEXT_PUBLIC_INVENTORY_API_URL","meetingRooms","tryFetchToJson","fetchParams","input","init","headers","method","body","JSON","stringify","skipFetchError","searchMeetingRoomsPriceBySlugs","slugs","NEXT_PUBLIC_PRICING_API_URL","searchMeetingRoomPricePreview","params","slug","duration","promoCode","isOneClickBooking","NEXT_PUBLIC_RESERVATION_API_URL","delay","ms","setTimeout","fetchWithMinDuration","promise","all","result","ReservationStatus","OnDemandBookingType","MIN_HOURS_FOR_ALL_DAY","REAL_DELAY_TO_BOOK_MEETING_ROOM_IN_HOURS","getIsCancellable","reservationlocaleStartDate","timezone","now","reservationDate","addHours","RESERVATION_CANCELLATION_LIMIT_HOURS","getIsRTBSubmitted","meetingRoomReservation","status","Requested","getIsRTBArchived","Archived","getIsRTBWaitingForPayment","PaymentRequested","getAmenityIconByCode","code","isDefaultIcon","tvIcon","alternativeTvIcon","videoConferenceIcon","alternativeVideoConferenceIcon","whiteboardIcon","alternativeWhiteboardIcon","phoneIcon","alternativePhoneIcon","getIsRequestToBook","onDemandBookingType","RequestToBook","getSearchUnavailableDays","monthDays","generateMonthDayDates","filter","isPastDay","isDayOpeningHoursEligibleToAllDay","openHour","closeHour","isValidDate","isValidTimeFromQuery","isNaN","dayOfWeekMap","sun","mon","tue","wed","thu","fri","sat","getUnavailableDaysFilter","unavailableDays","before","addDays","getDateRangeDayFilter","dateRange","from","after","to","getMaxDaysFilter","days","dayOfWeek","openedDays","keys","weekEndDisabled","pastDaysBeforeCutoffDisabled","getDateFilterBeforeCutoff","todayAtCutoff","setMinutes","DAY_PASS_CUTOFF_HOUR","futureMonthsDisabled","getMaxMonthsFilter","months","addMonths","MAX_BOOKING_MONTHS","LOCALES","en","fr","nl","DATE_LOCALE_EN","SECOND_IN_MS","MINUTE_IN_SECONDES","HOUR_IN_MS","DAY_IN_MS","getFirstDayOfNextMonth","nextMonth","setDate","amount","dateFnsAddMonths","isWithinInterval","dateFnsIsWithinInterval","dateFnsFormat","getQuarter","dateFnsGetQuarter","differenceInDays","dateLeft","dateRight","dateFnsDifferenceInDays","dateFnsAddDays","endOfMonth","dateFnsEndOfMonth","hours","dateFnsAddHours","setLocale","setDefaultOptions","l","differenceInHours","dateFnsdifferenceInHours","differenceInMinutes","dateFnsDifferenceInMinutes","eachDayOfInterval","dateFnsEachDayOfInterval","dateFnsAddMinutes","add","dateFnsAdd","addBusinessDays","dateFnsAddBusinessDays","parse","dateFnsParse","isSameHour","dateFnsIsSameHour","isSameMonth","dateFnsIsSameMonth","dateFnsIsEqual","dateFnsIsAfter","isSameDay","dateFnsIsSameDay","dateFnsSetHours","minutes","dateFnsSetMinutes","subHours","dateFnsSubHours","getFormattedTime","Number","getNbThirtyMinuteSlots","getThirtyMinuteSlots","Array","_","setSeconds","isPast","dateFnsIsPast","isFuture","dateFnsIsFuture","createDateFromLocalDate","localDate","getISOTime","toISOString","toString","getTime","local","month","margin","getNextMonth","generateDates","setMonth","getMonth","dates","getDate","getMonthDate","getFullYear","zonedTimeToUtc","getDateFormatInTimeZone","formatInTimeZone","getTimeInTimeZone","formatTime","formatTimeLowercase","getTomorrowDay","getNextDay","formatToISODay","dateStr","getLocalDay","isoDay","replaceAll","getLocalDateFromDay","getNbDays","Math","ceil","timeGap","isDateRange","getAbbreviatedDayName","eachDayOfDateRange","isWeekEnd","isSameWeek","day1","day2","dateFnsIsSameISOWeek","startOfMonth","dateFnsStartOfMonth","GtmListId","GtmListName","window","dataLayer","pushEvent","event","pageview","pushECommerceEvent","ecommerce","AFFILIATION","PRODUCT_CATEGORY_ON_DEMAND","MEETING_ROOM_PRODUCT","INDUSTRIOUS_BRAND_NAME","mapMeetingRoomToItemEcommerce","item_name","item_id","affiliation","item_brand","brandName","item_category","item_category2","item_category3","locationTier","item_category4","item_variant","seats","location_id","mapSimpleMeetingRoomToItemEcommerce","mapCoworkingToItemEcommerce","location","mapOfficeToItemEcommerce","officeName","officeId","quantity","HttpMethods","DEFAULT_RETRY_DELAY","DEFAULT_NB_RETRIES","onSuccess","onFunctionalError","onTechnicalError","withoutResponse","nbRetries","retryDelay","fetchParamsInit","withAuthToken","Authorization","getUserToken","retry","res","fetch","captureMessage","json","response","err","captureException","HttpErrorNames","AuthHelpers","checkUserToken","token","userToken","refreshUserToken","refreshToken","logout","BrandNames","stringDay","test","x","createLocationUrl","isExternal","externalLink","createLocationDayPassUrl","startDay","endDay","isIndustriousLocation","isExternalLocation","getBrandLogo","WelkinMeraki","wmLogo","TheGreatRoom","tgrLogo","mapLocationsToOptions","locations","mapLocationToOption","sort","sortByLabel","getLocationOptionLabel","sfId","city","getOpeningDate","dateISO","substring","getOpeningLabelTranslationKey","openingDate","DISPLAY_SEASON_AFTER_NB_DAYS","quarter","NORTH_SEASONS_BY_QUARTER","SOUTH_SEASONS_BY_QUARTER","managerRoleToTranslationKey","role","ManagerRoles","MemberExperienceAssociate","ConferenceServicesManager","TechnicalAudioVisualManager","shouldShowLogo","getLocationHighlightName","shouldShowOpeningLabel","firstDayOfBusinessISO","hideOpeningDate","phase","isWaitlisting","LocationPhases","Signed","Launch","getNextAvailableDay","isAvailableDay","currentDay","some","blackoutDate","getMaxValidEndDay","validEndDays","getValidEndDays","possibleEndDays","nextDay","nextAvailableDay","getValidDaySync","tomorrowDay","maxBookingDate","isValidSync","localeCompare","Sentry","cause","severity","mixed","oneOf","Object","defined","module","exports","i","f","index_esm","U2","setCustomValidity","reportValidity","resolvers_t","r","fields","refs","forEach","shouldUseNativeValidation","o","n","t8","assign","s","c","u","context","abortEarly","rawValues","inner","criteriaMode","reduce","path","types","KN","reject"],"sourceRoot":""}