{"version":3,"sources":["webpack:///./src/components/product-intro/product-intro-rooms.tsx","webpack:///./src/components/product-intro.tsx","webpack:///./node_modules/uuid/dist/esm-browser/rng.js","webpack:///./node_modules/uuid/dist/esm-browser/regex.js","webpack:///./node_modules/uuid/dist/esm-browser/stringify.js","webpack:///./node_modules/uuid/dist/esm-browser/validate.js","webpack:///./node_modules/uuid/dist/esm-browser/v4.js","webpack:///./src/components/labeled-select.tsx","webpack:///./src/components/offer-form/index.tsx","webpack:///./node_modules/date-fns/esm/isFuture/index.js","webpack:///./node_modules/lodash/cloneDeep.js","webpack:///./node_modules/date-fns/esm/addHours/index.js","webpack:///./node_modules/lodash/trimStart.js","webpack:///./src/components/product-info/product-info-block.tsx","webpack:///./src/components/product-info/index.tsx","webpack:///./src/components/pricing/product-price.tsx","webpack:///./node_modules/lodash/some.js","webpack:///./node_modules/lodash/_baseSome.js","webpack:///./src/components/fly-in/fly-in-rooms.tsx","webpack:///./src/components/sticky-bar/actions.tsx","webpack:///./node_modules/lodash/isEqual.js","webpack:///./src/components/highlight-frame.tsx","webpack:///./node_modules/date-fns/esm/differenceInHours/index.js","webpack:///./src/components/fly-in/fly-in-warnings.tsx","webpack:///./src/components/fly-in/fly-in-flights.tsx","webpack:///./node_modules/lodash/filter.js","webpack:///./src/components/breadcrumb.tsx","webpack:///./node_modules/lodash/_baseFilter.js","webpack:///./src/components/modal-portal.tsx","webpack:///./src/components/related-product-card/related-product-modal.tsx","webpack:///./src/components/related-product-card/index.tsx"],"names":["ProductIntroRooms","_qsmState$rooms","_requestRooms$length","qsmState","qsmDispatch","useQSMStore","requestRooms","setRequestRooms","useState","rooms","selectedOption","setSelectedOption","t","useI18next","useEffect","_qsmState$bookingPack","option","bookingPackage","options","find","x","isSelected","React","createElement","className","type","value","length","readOnly","map","r","index","_selectedOption$rooms","_selectedOption$rooms2","_selectedOption$rooms3","_qsmState$bookingRoom","_qsmState$bookingRoom2","_qsmState$bookingRoom3","_qsmState$bookingRoom4","_qsmState$bookingRoom5","_qsmState$bookingRoom6","_qsmState$bookingRoom7","_qsmState$bookingRoom8","_qsmState$bookingRoom9","_qsmState$bookingRoom10","_qsmState$bookingRoom11","_qsmState$bookingRoom12","key","roomNumber","bookingRooms","Fragment","from","to","numberOfNights","differenceInCalendarDays","Date","accommodationCode","o","accommodationName","regimeCode","regimeName","adults","min","children","_range","childIndex","age","childAges","ProductIntro","_ref","_qsmState$dateRange7","_qsmState$dateRange7$","_qsmState$dateRange8","_qsmState$dateRange8$","_qsmState$rooms3","_qsmState$rooms3$room","_qsmState$flight3","_qsmState$flight4","_first2","_first3","_last2","_first4","_last3","_first5","_first6","_last4","_first7","_last5","_qsmState$bookingPack4","_qsmState$bookingPack5","_qsmState$bookingPack6","_productState$price","_productState$price2","_productState$price3","_productState$price4","_productState$price5","_productState$estimat","_productState$estimat2","title","introductionTitle","introduction","factsheetUrl","destination","rating","mediaComponent","pricingComponent","language","productState","productDispatch","useProductStore","memberState","useMemberStore","flyInHasBeenOpened","setFlyInHasBeenOpened","isBookable","setBookable","datePanelActive","setDatePanelActive","offer","setOffer","printButtonState","setPrintButtonState","isLoading","label","tagIds","setTagIds","isFetchingPrice","setIsFetchingPrice","showFactsheet","setShowFactsheet","getPax","_qsmState$bookingPack2","_qsmState$bookingPack3","flatMap","room","pax","handleTagClick","e","tagId","Number","target","checked","updatedTagIds","concat","filter","printOffer","async","_offer","Error","config","buildTideClientConfig","printActionId","parseInt","process","tideLanguageId","getTideLanguageId","request","id","dossierNumber","number","languageId","response","print","catch","arrayBuffer","blob","Blob","url","window","URL","createObjectURL","open","updateHistory","isFirstTime","_qsmState$flight2","params","incomingParams","URLSearchParams","location","search","incomingAcco","get","incomingRegime","serialized","JsonURL","stringify","_omit","AQF","dateRange","fromDate","format","toDate","flight","outward","return","flightInfo","outwardCode","code","outwardNumbers","flightMetaData","flightLines","outwardClass","flightClass","returnCode","returnNumbers","returnClass","path","pathname","paramString","Object","keys","join","history","replaceState","selectedOutwardFlight","outwardFlights","selectedReturnFlight","returnFlights","hasFlight","includedServiceTypes","some","setHasFlight","hasTranfer","setHasTransfer","setBookingRooms","flightPrice","setFlight","price","undefined","setEstimatedPrice","member","officeId","agentId","payload","package","status","nonTravelPax","notifications","customerRequests","_result$details","result","priceDetails","finally","totalPrice","details","reduce","prev","curr","total","setPrice","defaultPrice","updatePrice","_qsmState$product$con4","_qsmState$product2","_qsmState$product2$co","_qsmState$product2$co2","_qsmState$product$con5","_qsmState$product3","_qsmState$product3$co","_qsmState$product3$co2","setIsUnavailable","product","content","general","estimatedPrice","promoPrice","estimatedPromoPrice","_qsmState$rooms2","controller","AbortController","signal","_qsmState$dateRange","_qsmState$dateRange2","_qsmState$dateRange3","_qsmState$dateRange4","_qsmState$product","_qsmState$product$con","_qsmState$product$con2","_qsmState$product$con3","setIsLoading","getPackageDetails","formatISO","representation","errorCode","setBookingPackage","selectCorrectRoomInBookingPackage","_cloneDeep","qsmRooms","selectCorrectRoomInQsmRooms","setRooms","ex","toString","includes","fetchPackage","abort","valueOf","loaded","JSON","sortProps","_qsmState$rooms4","_Tawk_API","_Tawk_API2","_isEmpty","Tawk_API","regimeFlyInIsOpen","flightsFlyInIsOpen","hideWidget","showWidget","Helmet","bodyAttributes","class","Icon","name","dangerouslySetInnerHTML","__html","Link","rel","href","Rating","onClick","event","document","preventDefault","setRegimeFlyInIsOpen","DatePicker","isProductIntro","panelActive","duration","onPanelToggle","isActive","onChange","setDateRange","scrollTo","_first","travelClass","parse","startDateTime","departureTime","endDateTime","_last","arrivalTime","isSameDay","departureDate","arrivalDate","departureAirportDescription","arrivalAirportDescription","setFlightsFlyInIsOpen","tags","tag","htmlFor","LabeledCheckbox","description","Loader","loaderText","formatter","handleBookClick","_qsmState$dateRange5","_qsmState$dateRange6","_qsmState$flight","endsWith","handleAnchorClick","newOffer","book","createOffer","disabled","getRandomValues","rnds8","Uint8Array","rng","crypto","bind","msCrypto","uuid","test","byteToHex","push","substr","arr","offset","arguments","toLowerCase","TypeError","buf","rnds","random","i","LabeledSelect","required","defaultValue","extraClassName","extraDropdownClassName","hasError","onBlur","buildClassName","_compact","OfferForm","_qsmState$rooms$reduc","_qsmState$rooms$reduc2","_qsmState$rooms$flatM","_accommodations$find$","_accommodations$find","_regimes$find$tideId$","_regimes$find","_qsmState$dateRange$f","_qsmState$dateRange$t","_formik$values$childr2","introText","emailSubject","emailMessage","confirmationEmailTemplate","newsletterTag","offerTag","productName","productCode","minDuration","minDurationType","accommodations","regimes","privacyPath","privacyText","confirmationTitle","confirmationText","formRef","useRef","formSubmitted","setFormSubmitted","formik","useFormik","initialValues","gender","firstName","lastName","email","telNr","formatDate","retourDate","adultCount","childCount","guid","accommodation","_qsmState$rooms$","tideId","regime","_qsmState$rooms$2","message","flightIncluded","newsletter","acceptTerms","validate","values","errors","Yup","validateSync","err","_head2","_head","isValid","dirtyDate","requiredArgs","getTime","now","isFuture","dateISO","earliestReturnDate","addHours","addDays","isBefore","_isNil","_get","_set","childNumber","onSubmit","_values$firstName","_values$lastName","_values$email","_values$telNr","_values$message","_values$adultCount$to","_values$childCount$to","_selectedRegime$name","_values$departureDate","_values$retourDate","_selectedAccommodatio","_selectedAccommodatio2","_formRef$current","selectedAccommodation","a","selectedRegime","replacements","phone","c","preferences","returnDate","acco","subject","processPlaceholders","Promise","all","requestCrmcontact","remark","contactMessage","tourGroupPreference","requestContact","current","scrollIntoView","error","console","flatErrors","flat","hasVisibleError","touched","setValues","produce","_qsmState$rooms$reduc3","_qsmState$rooms$reduc4","_qsmState$rooms$flatM2","firstRoom","_accommodations$find2","accommodationId","_regimes$find2","regimeId","ref","openForm","noValidate","handleSubmit","handleChange","handleBlur","defaultChecked","LabeledInput","placeholder","count","currentTarget","isNaN","_formik$values$childr","child","_toConsumableArray","element","_element$tideId","_element$name","_element$tideId2","_element$name2","LabeledTextArea","data-key","baseClone","module","exports","CLONE_DEEP_FLAG","dirtyAmount","amount","baseToString","castSlice","charsStartIndex","stringToArray","reTrimStart","string","chars","guard","replace","strSymbols","start","ProductInfoBlock","ProductInfo","blocks","block","ProductPrice","priceText","prefix","suffix","Pricing","assign","isTotalPrice","isUnavailable","arraySome","baseIteratee","baseSome","isArray","isIterateeCall","collection","predicate","func","baseEach","RoomFlyIn","_groupByAcco","_images$imageIndex$ur","_images$imageIndex","_images$url","_images","_images$url2","_images2","isRoundTrip","showRoomIndex","setShowRoomIndex","isBeingEdited","setIsBeingEdited","isFormActive","setIsFormActive","roomToEdit","setRoomToEdit","isVisible","imageIndex","setImageIndex","images","setImages","lightBoxIsOpen","setLightBoxIsOpen","activeOption","setActiveOption","toggleFormActive","editRoom","handleClose","confirmRoomDistribution","object","confirmOptions","getAccommodation","_ref2","childItems","_x$content","_x$content$general","productcode","getDefaultImage","_getAccommodation3","_getAccommodation3$co","_getAccommodation3$co2","picture","getNumberOfImages","_getAccommodation$con4","_getAccommodation4","_getAccommodation4$co","_getAccommodation4$co2","_getAccommodation4$co3","numberOfExtraImages","extraImages","getExtraImages","_getAccommodation5","_getAccommodation5$co","_getAccommodation5$co2","getSelectedAccoCode","roomIndex","_requestRooms$roomInd","_activeOption$rooms$r","_activeOption$rooms$r2","getRoomPriceDifference","isSelectedRoom","_requestRooms$index$r","_activeOption$rooms$i","_activeOption$rooms$i2","_activeOption$rooms$i3","selectedBookingOption","desiredOption","_desiredOption","_selectedBookingOptio","getRoomsPriceDifference","originalOptionsPrice","desiredOptionsPrice","_room$options","_originalOption$price","_room$options2","_originalOption$price2","originalOption","getSelectedRegimeCode","gr","_gr$value$find$regime2","_gr$value$find2","_gr$value$find$regime","_gr$value$find","qsmStateJSON","requestRoomsJSON","_isEqual","copy","AmountInput","_roomToEdit$childAges","AgeSelect","sort","b","addRoom","newState","xmlns","width","height","fill","viewBox","style","marginRight","fillRule","d","requestRoom","handleSelectRoom","cx","cy","removeRoom","splice","grouped","_groupBy","groupByAcco","accoGroupindex","_getDefaultImage$url","_getDefaultImage","_getDefaultImage$altT","_getDefaultImage2","_getAccommodationFaci","_getAccommodation2","_getAccommodation2$co","_getAccommodation2$co2","_getAccommodation2$co3","handleViewImages","data-count","src","setImageParameters","mode","alt","altText","_getAccommodation$con","_getAccommodation","_getAccommodation$con2","_getAccommodation$con3","getAccommodationName","Math","sign","abs","selectAccommodation","_first$regimeCode","roomsCopy","facilities","split","facility","facilityIndex","handleOptionChange","optionIndex","_option$regimeCode","_ref3","_option$regimeName","marginLeft","transform","getFlightPriceDifference","_qsmState$flight$outw","_qsmState$flight$retu","originalFlightsPrice","desiredFlightsPrice","LightBox","imageTitle","imageCaption","mainSrc","nextSrc","prevSrc","onCloseRequest","onMovePrevRequest","onMoveNextRequest","StickyBarActions","internal","baseIsEqual","other","HighlightFrame","highlights","highlight","differenceInHours","dateLeft","dateRight","diff","differenceInMilliseconds","roundingMethod","FlyInWarnings","warnings","FlightsFlyIn","travelClasses","setTravelClasses","selectedTravelClass","setSelectedTravelClass","departureAirports","setDepartureAirports","selectedDepartureAirport","setSelectedDepartureAirport","flightPairs","setFlightPairs","filteredFlightPairs","setFilteredFlightPairs","selectedFlightPair","setSelectedFlightPair","currentOption","setCurrentOption","queryResult","useStaticQuery","optionShouldBeChanged","validOptions","newOption","y","forEach","oldRoomOption","newRoomOption","entryLineGuid","oldOutwardFlight","newOutwardFlight","oldReturnFlight","newReturnFlight","getTotalPriceDiff","_selectedOutwardFligh","_originalOutwardFligh","_selectedReturnFlight","_originalReturnFlight","originalOutwardFlight","originalReturnFlight","flightPriceDiff","originalOptionPrice","calcHotelPrice","getPriceDifference","airportCode","_selectedFlightPair$o","_selectedFlightPair$r","_qsmState$bookingPack7","_cheapestOutwardFligh","_qsmState$bookingPack8","_qsmState$bookingPack9","_qsmState$bookingPack10","_qsmState$bookingPack11","_qsmState$bookingPack12","selectedFlight","returnFlight","originalPrice","cheapestOutwardFlight","_x$flightMetaData$fli","_x$flightMetaData$fli2","departureAirport","matchingReturnFlight","externalGuid","_cheapestOutwardFligh2","_cheapestOutwardFligh3","_cheapestOutwardFligh4","arrivalAirport","_cheapestOutwardFligh5","_cheapestOutwardFligh6","selectedHotel","matchingHotel","_cheapestOutwardFligh7","selectedHotelPrice","matchingHotelPrice","hotelPriceDifference","cheapestPriceForAirport","selectDepartureAirport","desiredFlight","_first8","_first9","_desiredFlight","_qsmState$bookingPack13","_qsmState$bookingPack14","_qsmState$bookingPack15","_desiredFlight2","_first10","_last6","_desiredFlight3","_first11","_last7","_first12","_desiredFlight4","_desiredFlight5","_first13","_last8","_desiredFlight6","_last9","_first14","_desiredFlight7","_desiredFlight8","bookingPackageOption","_qsmState$bookingPack16","_bookingPackageOption","_room$options$find$pr","_room$options$find","getAirlineIcon","_longestFlightLine$op","_longestFlightLine","_longestFlightLine2","longestFlightLine","longestFlightLinehours","line","startDate","departureTimes","setHours","setMinutes","endDate","arrivalTimes","difference","iata","operatingAirlineCode","airlineCode","_airline$content","_airline$content$gene","_airline$content$gene2","airline","allTideItemForAirline","nodes","_x$content$descriptiv","_x$content$descriptiv2","descriptive","data","imageSrc","icon","getWarnings","flightLine","isOutward","flightItem","isLastLine","isLandingSameDay","_qsmState$bookingPack22","_qsmState$bookingPack23","_qsmState$bookingPack24","_qsmState$bookingPack25","_qsmState$bookingPack26","_qsmState$bookingPack27","_qsmState$bookingPack31","_qsmState$bookingPack35","classes","_uniq","_first15","_first16","airports","_uniqBy","_x$flightMetaData$fli3","_x$flightMetaData$fli4","selectedAirport","_qsmState$bookingPack28","_qsmState$bookingPack29","_qsmState$bookingPack30","position","unshift","indexOf","flights","outwardFlight","_qsmState$bookingPack32","_qsmState$bookingPack33","_qsmState$bookingPack34","_first17","_last10","_first18","_last11","_first19","_first20","_last12","_last13","_first21","_first22","airport","_first23","_first24","_selectedDepartureAir","_selectedDepartureAir2","_selectedDepartureAir3","_selectedDepartureAir4","_first25","_first26","_first27","_first28","_first29","_first30","selectFlight","operatingAirlineDescription","arrayFilter","baseFilter","Breadcrumb","items","parentItems","slice","currentItem","breadcrumbItem","_trimStart","ModalPortal","props","domNode","getElementById","ReactDOM","createPortal","RelatedProductModal","_headerImage$url","_headerImage$altText","active","headerImage","destinationName","summary","onCloseClick","handleCloseClick","arrowStyle","borderRadius","color","backgroundColor","NukaCarousel","slideIndex","defaultControlsConfig","prevButtonText","prevButtonStyle","nextButtonText","nextButtonStyle","image","_image$url","_image$altText","Image","RelatedProductCard","isExcursion","hasModalVisible","setModalVisible","ProductCard","cardType","linkText","imageAlt","locationNames","handleOpenModalClick","body","classList","toggle","pageElement","querySelector","showAllIcons","handleCloseModalClick"],"mappings":"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","file":"3a73bbce1e4a6e329c5e732cf978462cb8b67d03-d6aa6088ad7a42744395.js","sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { useQSMStore } from \"../../app/search-results/qsm-store/context\";\nimport { Room } from \"@qite/tide-booking-component/src/booking-wizard/types\";\nimport { BookingPackageOption } from \"@qite/tide-client/build/types/offer/booking-v2/shared/booking-package-option\";\nimport { differenceInCalendarDays } from \"date-fns\";\nimport { range } from \"lodash\";\nimport { useI18next } from \"gatsby-plugin-react-i18next\";\n\nconst ProductIntroRooms: React.FC = () => {\n const [qsmState, qsmDispatch] = useQSMStore();\n const [requestRooms, setRequestRooms] = useState(qsmState?.rooms ?? []);\n const [selectedOption, setSelectedOption] = useState();\n const { t } = useI18next();\n\n useEffect(() => {\n const option = qsmState?.bookingPackage?.options.find((x) => x.isSelected);\n setSelectedOption(option);\n }, [qsmState, qsmState?.bookingPackage]);\n\n useEffect(() => {\n if (qsmState?.rooms) {\n setRequestRooms(qsmState.rooms);\n }\n }, [qsmState?.rooms]);\n\n return (\n
\n
\n
{t(\"NUMBER_OF_ROOMS\")}
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n {requestRooms.map((r, index) => (\n
\n
\n
\n

\n {t(\"ROOM_X\", { roomNumber: index + 1 })}\n

\n \n {qsmState?.bookingRooms && (\n <>\n {selectedOption?.rooms[index]?.options[0]?.from &&\n selectedOption?.rooms[index].options[0]?.to &&\n t(\"X_NIGHTS\", {\n numberOfNights: differenceInCalendarDays(\n new Date(selectedOption?.rooms[index].options[0].to),\n new Date(selectedOption?.rooms[index].options[0].from)\n ),\n })}{\" \"}\n {r.accommodationCode\n ? qsmState?.bookingRooms[index]?.options.find(\n (o) => o.accommodationCode == r.accommodationCode\n )?.accommodationName\n : qsmState?.bookingRooms[index]?.options.find((o) => o.isSelected)\n ?.accommodationName}\n {(qsmState?.bookingRooms[index]?.options.find(\n (o) => o.regimeCode == r.regimeCode\n )?.regimeName ||\n qsmState?.bookingRooms[index]?.options.find((o) => o.isSelected)\n ?.regimeName) && (\n <>\n , \n {r.regimeCode\n ? qsmState?.bookingRooms[index]?.options.find(\n (o) => o.regimeCode == r.regimeCode\n )?.regimeName\n : qsmState?.bookingRooms[index]?.options.find((o) => o.isSelected)\n ?.regimeName}\n \n )}\n \n )}\n \n
\n
\n
\n \n
\n \n
\n
\n
\n \n
\n \n
\n
\n
\n
\n {requestRooms[index].children > 0 && (\n
\n \n
\n )}\n
\n ))}\n
\n
\n
\n );\n};\n\nexport default ProductIntroRooms;\n","import JsonURL from \"@jsonurl/jsonurl\";\nimport { buildTideClientConfig } from \"@qite/tide-booking-component/src/shared/utils/tide-api-utils\";\nimport { book, getPrintActions, priceDetails, print, update } from \"@qite/tide-client\";\nimport {\n AgentPrintAction,\n AgentPrintActionRequest,\n BookingPackageBookRequest,\n BookingPackageUpdateRequest,\n BookingPackageDossier,\n BookingPackageRequest,\n} from \"@qite/tide-client/build/types\";\nimport { format, formatISO, isSameDay, parse } from \"date-fns\";\nimport { cloneDeep, first, isEmpty, last, omit } from \"lodash\";\nimport React, { useEffect, useState } from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport { useMemberStore } from \"../app/member-store/context\";\nimport { useProductStore } from \"../app/search-results/product-store/context\";\nimport {\n setEstimatedPrice,\n setFlightsFlyInIsOpen,\n setHasFlight,\n setHasTransfer,\n setIsUnavailable,\n setPrice,\n setRegimeFlyInIsOpen,\n} from \"../app/search-results/product-store/reducer\";\nimport { useQSMStore } from \"../app/search-results/qsm-store/context\";\nimport {\n setBookingPackage,\n setBookingRooms,\n setDateRange,\n setFlight,\n setIsLoading,\n setRooms,\n} from \"../app/search-results/qsm-store/reducer\";\nimport DatePicker from \"../app/search-results/qsm/date-picker\";\nimport { Room } from \"../app/search-results/qsm/room-picker\";\nimport { sortProps } from \"../app/search-results/qsm/utils\";\nimport { getPackageDetails } from \"../app/search-results/utils/search-util\";\nimport { officeId } from \"../tide-api\";\nimport {\n formatter,\n handleAnchorClick,\n selectCorrectRoomInBookingPackage,\n selectCorrectRoomInQsmRooms,\n} from \"../utils\";\nimport Icon from \"./icon\";\nimport Loader from \"./loader\";\nimport Rating from \"./rating\";\nimport ProductIntroRooms from \"./product-intro/product-intro-rooms\";\nimport { useI18next } from \"gatsby-plugin-react-i18next\";\nimport LabeledCheckbox from \"./labeled-checkbox\";\nimport { getTideLanguageId } from \"../i18n/languages\";\nimport Link from \"./link\";\n\ninterface ProductIntroProps {\n title: string;\n introductionTitle?: string;\n introduction: string;\n factsheetUrl?: string;\n destination: string;\n rating?: number;\n mediaComponent?: React.ReactElement;\n qsmComponent?: React.ReactElement;\n pricingComponent?: React.ReactElement;\n}\n\ninterface PrintButtonState {\n isLoading: boolean;\n label: string;\n}\n\nconst ProductIntro: React.FC = ({\n title,\n introductionTitle,\n introduction,\n factsheetUrl,\n destination,\n rating,\n mediaComponent,\n pricingComponent,\n}) => {\n const { t, language } = useI18next();\n\n const [qsmState, qsmDispatch] = useQSMStore();\n const [productState, productDispatch] = useProductStore();\n const [memberState] = useMemberStore();\n\n const [flyInHasBeenOpened, setFlyInHasBeenOpened] = useState(false);\n const [isBookable, setBookable] = useState();\n const [requestRooms, setRequestRooms] = useState(qsmState?.rooms ?? []);\n const [datePanelActive, setDatePanelActive] = useState(false);\n\n const [offer, setOffer] = useState();\n const [printButtonState, setPrintButtonState] = useState({\n isLoading: false,\n label: t(\"PRINT_OFFER\"),\n });\n const [tagIds, setTagIds] = useState([]);\n const [isFetchingPrice, setIsFetchingPrice] = useState(true);\n\n const [showFactsheet, setShowFactsheet] = useState(false);\n\n const fetchPackage = async (signal?: AbortSignal) => {\n if (\n qsmDispatch &&\n qsmState?.product &&\n qsmState?.dateRange?.fromDate &&\n qsmState?.dateRange?.toDate &&\n qsmState?.rooms\n ) {\n try {\n // Fetch package\n qsmDispatch(setIsLoading(true));\n if (productDispatch) {\n productDispatch(setIsUnavailable(false));\n productDispatch(setPrice(undefined));\n productDispatch(setEstimatedPrice(undefined));\n }\n\n const response = await getPackageDetails(\n qsmState?.rooms,\n formatISO(qsmState?.dateRange?.fromDate, { representation: \"date\" }) + \"T00:00:00Z\",\n formatISO(qsmState?.dateRange?.toDate, { representation: \"date\" }) + \"T00:00:00Z\",\n qsmState?.product?.content?.general?.product?.code,\n signal,\n language\n );\n\n if (!response.errorCode) {\n const bookingPackage = selectCorrectRoomInBookingPackage(\n qsmState?.rooms,\n cloneDeep(response.payload)\n );\n if (bookingPackage) {\n // This is done to catch the cases were the previous selected rooms in unavailable in the new package\n const qsmRooms = cloneDeep(qsmState?.rooms);\n const roomsChanged = selectCorrectRoomInQsmRooms(qsmRooms, bookingPackage);\n if (roomsChanged) {\n qsmDispatch(setRooms(qsmRooms));\n }\n }\n qsmDispatch(setBookingPackage(bookingPackage));\n } else {\n qsmDispatch(setBookingPackage(undefined));\n }\n if (!qsmState?.bookingPackage && productDispatch) {\n productDispatch(setIsUnavailable(true));\n }\n qsmDispatch(setIsLoading(false));\n } catch (ex: any) {\n if (productDispatch) {\n }\n\n // Something went wrong\n setBookable(false);\n if (!ex.toString().includes(\"user aborted\")) {\n qsmDispatch(setIsLoading(false));\n }\n }\n }\n };\n\n const handleBookClick: React.MouseEventHandler = () => {\n const params: Record = {};\n\n if (tagIds?.length) {\n params[\"tagIds\"] = tagIds.join(\",\");\n }\n\n if (qsmState?.rooms) {\n const serialized = JsonURL.stringify(\n qsmState.rooms.map((room) => omit(room, [\"children\"])),\n { AQF: true }\n );\n\n if (serialized) {\n params[\"rooms\"] = serialized;\n }\n }\n\n if (qsmState?.dateRange?.fromDate) {\n params[\"startDate\"] = format(qsmState.dateRange.fromDate, \"yyyy-MM-dd\");\n }\n\n if (qsmState?.dateRange?.toDate) {\n params[\"endDate\"] = format(qsmState.dateRange.toDate, \"yyyy-MM-dd\");\n }\n\n if (qsmState?.flight?.outward && qsmState.flight.return) {\n var flight = qsmState.flight;\n\n const flightInfo = {\n outwardCode: flight.outward.code,\n outwardNumbers: flight.outward.flightMetaData.flightLines.map((x) => x.number),\n outwardClass: flight.outward.flightMetaData.flightLines[0].flightClass,\n returnCode: flight.return.code,\n returnNumbers: flight.return.flightMetaData.flightLines.map((x) => x.number),\n returnClass: flight.return.flightMetaData.flightLines[0].flightClass,\n };\n\n const serialized = JsonURL.stringify(flightInfo, { AQF: true });\n\n if (serialized) {\n params[\"flight\"] = serialized;\n }\n }\n\n params[\"catalog\"] = \"1\";\n\n const path = window.location.pathname;\n\n const paramString = Object.keys(params)\n .map((key) => `${key}=${params[key]}`)\n .join(\"&\");\n\n window.location.href = `${path}${path.endsWith(\"/\") ? \"\" : \"/\"}boeken?${paramString}`;\n };\n\n const handleRegimeClick = (event: React.MouseEvent) => {\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n event.preventDefault();\n if (productDispatch && !qsmState?.isLoading) {\n productDispatch(setRegimeFlyInIsOpen(true));\n setFlyInHasBeenOpened(true);\n }\n }\n };\n\n const handleFlightsClick = (event: React.MouseEvent) => {\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n event.preventDefault();\n if (productDispatch) productDispatch(setFlightsFlyInIsOpen(true));\n }\n };\n\n const getPax = () => {\n const selectedOption =\n qsmState?.bookingPackage?.options.find((x) => x.isSelected) ??\n qsmState?.bookingPackage?.options[0];\n return selectedOption?.requestRooms.flatMap((room) => room.pax);\n };\n\n const createOffer = async (): Promise => {\n const pax = getPax();\n\n if (!qsmState?.bookingPackage || !qsmState || !memberState?.member || !pax) {\n throw new Error(\"Invalid input\");\n }\n\n const { member } = memberState;\n const config = buildTideClientConfig();\n\n let newOffer: BookingPackageDossier;\n // if (offer) {\n // const request: BookingPackageRequest = {\n // officeId,\n // agentId: member.agentId,\n // payload: {\n // dossierNumber: offer.number,\n // package: qsmState?.bookingPackage,\n // status: 0,\n // pax,\n // nonTravelPax: [],\n // notifications: [],\n // tagIds: tagIds,\n // customerRequests: [],\n // },\n // };\n\n // newOffer = await update(config, request);\n // } else {\n const request: BookingPackageRequest = {\n officeId,\n agentId: member.agentId,\n payload: {\n package: qsmState?.bookingPackage,\n status: 0,\n pax,\n nonTravelPax: [],\n notifications: [],\n tagIds: tagIds,\n customerRequests: [],\n },\n };\n\n newOffer = await book(config, request, undefined, language);\n // }\n\n setOffer(newOffer);\n return newOffer;\n };\n\n const handleTagClick: React.ChangeEventHandler = (e) => {\n const tagId = Number(e.target.value);\n if (e.target.checked) {\n var updatedTagIds = tagIds.concat([tagId]);\n setTagIds(updatedTagIds);\n } else {\n var updatedTagIds = tagIds.filter((x) => x != tagId);\n setTagIds(updatedTagIds);\n }\n };\n\n const handlePrintOfferClick = async () => {\n // Build offer\n setPrintButtonState({ isLoading: true, label: t(\"GENERATE_OFFER\") });\n const _offer = await createOffer();\n\n // Print offer\n if (!_offer) throw new Error(\"An offer is required\");\n setPrintButtonState({ isLoading: true, label: t(\"GENERATE_PRINT\") });\n await printOffer(_offer);\n\n // Done\n setPrintButtonState({ isLoading: false, label: t(\"PRINT_OFFER\") });\n };\n\n const printOffer = async (_offer: BookingPackageDossier) => {\n if (!_offer) throw new Error(\"An offer is required\");\n\n const config = buildTideClientConfig();\n const printActionId = parseInt(process.env.OFFER_PRINT_ID!); // 'Mooie offerte (website)'\n const tideLanguageId = getTideLanguageId(language);\n const request: AgentPrintActionRequest = {\n id: printActionId,\n dossierNumber: _offer.number,\n languageId: tideLanguageId,\n };\n\n const response = await print(config, request).catch();\n const arrayBuffer = await response.arrayBuffer();\n const blob = new Blob([arrayBuffer], { type: \"application/pdf\" });\n const url = window.URL.createObjectURL(blob);\n window.open(url);\n };\n\n const updateHistory = (isFirstTime: boolean) => {\n const params: Record = {};\n const incomingParams = new URLSearchParams(location.search);\n const incomingAcco = incomingParams.get(\"accommodation\");\n const incomingRegime = incomingParams.get(\"regime\");\n\n if (incomingAcco && isFirstTime) {\n params[\"accommodation\"] = incomingAcco;\n }\n\n if (incomingRegime && isFirstTime) {\n params[\"regime\"] = incomingRegime;\n }\n\n if (qsmState?.rooms) {\n const serialized = JsonURL.stringify(\n qsmState?.rooms.map((room) => {\n if (incomingAcco && isFirstTime) {\n room.accommodationCode = incomingAcco;\n }\n if (incomingRegime && isFirstTime) {\n room.regimeCode = incomingRegime;\n }\n return omit(room, [\"children\"]);\n }),\n { AQF: true }\n );\n\n if (serialized) {\n params[\"rooms\"] = serialized;\n }\n }\n\n if (qsmState?.dateRange.fromDate) {\n params[\"from\"] = format(qsmState?.dateRange.fromDate, \"yyyyMMdd\");\n }\n\n if (qsmState?.dateRange.toDate) {\n params[\"to\"] = format(qsmState?.dateRange.toDate, \"yyyyMMdd\");\n }\n\n if (qsmState?.flight?.outward && qsmState.flight.return) {\n var flight = qsmState.flight;\n\n const flightInfo = {\n outwardCode: flight.outward.code,\n outwardNumbers: flight.outward.flightMetaData.flightLines.map((x) => x.number),\n outwardClass: flight.outward.flightMetaData.flightLines[0].flightClass,\n returnCode: flight.return.code,\n returnNumbers: flight.return.flightMetaData.flightLines.map((x) => x.number),\n returnClass: flight.return.flightMetaData.flightLines[0].flightClass,\n };\n\n const serialized = JsonURL.stringify(flightInfo, { AQF: true });\n\n if (serialized) {\n params[\"flight\"] = serialized;\n }\n }\n\n const path = window.location.pathname;\n\n const paramString = Object.keys(params)\n .map((key) => `${key}=${params[key]}`)\n .join(\"&\");\n\n window.history.replaceState(\"\", \"\", `${path}?${paramString}`);\n };\n\n // const calculatePerBookingPrice = (group: BookingOptionGroup) => {\n // let bookingTotal = 0;\n // group.options.forEach((option) => {\n // if (option.isSelected) {\n // bookingTotal += option.line.price;\n\n // bookingTotal += option.groups.reduce((total, g) => total + calculatePerBookingPrice(g), 0);\n\n // option.units.forEach((unit) => {\n // bookingTotal += unit.groups.reduce((total, g) => total + calculatePerUnitPrice(g), 0);\n // });\n\n // option.pax.forEach((pax) => {\n // bookingTotal += pax.groups.reduce((total, g) => total + calculatePerPaxPrice(g), 0);\n // });\n // }\n // });\n\n // return bookingTotal;\n // };\n\n // const calculatePerUnitPrice = (group: BookingOptionGroup) => {\n // let unitTotal = 0;\n\n // group.options.forEach((option) => {\n // if (option.isSelected) {\n // unitTotal += option.line.price;\n\n // unitTotal += option.groups.reduce((total, g) => total + calculatePerUnitPrice(g), 0);\n\n // option.pax.forEach((pax) => {\n // unitTotal += pax.groups.reduce((total, g) => total + calculatePerPaxPrice(g), 0);\n // });\n // }\n // });\n\n // return unitTotal;\n // };\n\n // const calculatePerPaxPrice = (group: BookingOptionGroup) => {\n // let paxTotal = 0;\n\n // group.options.forEach((option) => {\n // if (option.isSelected) {\n // paxTotal += option.line.price;\n\n // paxTotal += option.groups.reduce((total, g) => total + calculatePerPaxPrice(g), 0);\n // }\n // });\n\n // return paxTotal;\n // };\n\n const updatePrice = async () => {\n const pax = getPax();\n\n if (!memberState || !qsmState?.bookingPackage || !productDispatch || !pax) return;\n\n setIsFetchingPrice(true);\n const config = buildTideClientConfig();\n const { member } = memberState;\n\n const request: BookingPackageRequest = {\n officeId: officeId,\n agentId: member?.agentId,\n payload: {\n package: qsmState.bookingPackage,\n status: 0,\n tagIds: tagIds,\n pax: pax,\n nonTravelPax: [],\n notifications: [],\n customerRequests: [],\n },\n };\n\n if (qsmState?.bookingPackage) {\n const result = await priceDetails(config, request).finally(() => setIsFetchingPrice(false));\n // Todo: Update booking with changed lines? (result.changedLines)\n const totalPrice = result?.details?.reduce((prev, curr) => prev + curr.total, 0);\n productDispatch(setPrice({ defaultPrice: totalPrice }));\n }\n };\n\n useEffect(() => {\n if (!productDispatch || !qsmDispatch) return;\n\n const bookingPackage = qsmState?.bookingPackage;\n const selectedOption = bookingPackage?.options.find((x) => x.isSelected);\n\n if (bookingPackage && selectedOption) {\n const selectedOutwardFlight = bookingPackage.outwardFlights.find((x) => x.isSelected);\n const selectedReturnFlight = bookingPackage.returnFlights.find((x) => x.isSelected);\n\n // let optionPrice = selectedOption.rooms.reduce(\n // (total, room) => total + (room.options.find((x) => x.isSelected)?.price ?? 0),\n // 0\n // );\n\n // optionPrice += selectedOption.groups.reduce(\n // (total, g) => total + calculatePerBookingPrice(g),\n // 0\n // );\n\n // selectedOption.optionUnits.forEach((unit) => {\n // optionPrice += unit.groups.reduce((total, g) => total + calculatePerUnitPrice(g), 0);\n // });\n\n // selectedOption.optionPax.forEach((pax) => {\n // optionPrice += pax.groups.reduce((total, g) => total + calculatePerPaxPrice(g), 0);\n // });\n\n const hasFlight = selectedOption.includedServiceTypes.some((x) => x === 7);\n productDispatch(setHasFlight(hasFlight));\n\n const hasTranfer = selectedOption.includedServiceTypes.some((x) => x === 13);\n productDispatch(setHasTransfer(hasTranfer));\n\n qsmDispatch(setBookingRooms(selectedOption.rooms));\n let flightPrice = 0;\n if (selectedOutwardFlight && selectedReturnFlight) {\n qsmDispatch(setFlight({ outward: selectedOutwardFlight, return: selectedReturnFlight }));\n flightPrice = selectedOutwardFlight.price + selectedReturnFlight.price;\n } else {\n qsmDispatch(setFlight(undefined));\n }\n\n productDispatch(setEstimatedPrice(undefined));\n updatePrice();\n\n setBookable(true);\n } else {\n productDispatch(setIsUnavailable(true));\n productDispatch(setPrice(undefined));\n productDispatch(setHasFlight(false));\n productDispatch(setHasTransfer(false));\n productDispatch(\n setEstimatedPrice({\n defaultPrice: qsmState?.product?.content?.general?.estimatedPrice ?? undefined,\n promoPrice: qsmState?.product?.content?.general?.estimatedPromoPrice ?? undefined,\n })\n );\n\n qsmDispatch(setBookingRooms([]));\n qsmDispatch(setFlight(undefined));\n\n setBookable(false);\n }\n }, [productDispatch, qsmDispatch, qsmState?.bookingPackage, tagIds]);\n\n useEffect(() => {\n setRequestRooms(qsmState?.rooms ?? []);\n\n const controller = new AbortController();\n const { signal } = controller;\n\n (async () => {\n fetchPackage(signal);\n })();\n return () => {\n controller.abort();\n };\n }, [\n qsmState?.product,\n qsmState?.dateRange?.fromDate?.valueOf(),\n qsmState?.dateRange?.toDate?.valueOf(),\n qsmState?.loaded,\n\n // Only refetch when roomDistribution changes, not when acco or regime changes\n JSON.stringify(\n {\n ...qsmState,\n rooms: qsmState?.rooms.map((room) => {\n return {\n ...room,\n accommodationCode: undefined,\n regimeCode: undefined,\n };\n }),\n }?.rooms?.map(sortProps)\n ),\n ]);\n\n useEffect(() => {\n setRequestRooms(qsmState?.rooms ?? []);\n if (flyInHasBeenOpened) {\n updateHistory(false);\n } else {\n updateHistory(true);\n }\n }, [qsmState?.rooms, qsmState?.flight]);\n\n useEffect(() => {\n if (typeof window !== \"undefined\") {\n if (!isEmpty((window as any).Tawk_API)) {\n if (productState?.regimeFlyInIsOpen || productState?.flightsFlyInIsOpen) {\n (window as any).Tawk_API?.hideWidget();\n } else {\n (window as any).Tawk_API?.showWidget();\n }\n }\n }\n }, [productState?.regimeFlyInIsOpen, productState?.flightsFlyInIsOpen]);\n\n useEffect(() => {\n if (memberState?.member && factsheetUrl) {\n setShowFactsheet(true);\n } else {\n setShowFactsheet(false);\n }\n }, [memberState, factsheetUrl]);\n\n return (\n
\n \n
\n
\n
\n \n {destination}\n
\n

{introductionTitle ?? <> }

\n
\n
\n {showFactsheet && (\n
\n \n \n {t(\"DOWNLOAD_FACTSHEET\")}\n \n
\n )}\n
{mediaComponent}
\n
\n
\n
\n
\n
\n {rating && }\n
{title}
\n
\n
\n {pricingComponent}\n {!qsmState?.isLoading && (\n
\n {productState?.price && (\n
\n \n
\n )}\n {productState?.hasFlight && (\n
\n \n
\n )}\n {productState?.hasTranfer && (\n
\n \n
\n )}\n
\n )}\n
\n
\n
\n
\n
\n \n {t(\"WHO_YOU_TRAVELING_WITH\")}\n
\n \n \n {t(\"EDIT_ROOM\")}\n \n
\n
\n
\n \n {t(\"TRAVEL_PERIOD\")}\n
\n {qsmState && qsmState.loaded && (\n {\n if (!qsmState?.isLoading) {\n if (isActive) {\n }\n setDatePanelActive(isActive);\n }\n }}\n onChange={(value) => {\n setDateRange(value);\n if (qsmDispatch) qsmDispatch(setDateRange(value));\n window.scrollTo(0, 0);\n }}\n />\n )}\n
\n {qsmState?.flight?.outward && qsmState?.flight?.return && (\n
\n
\n \n {t(\"FLIGHTS\")}\n
\n
\n
\n
{t(\"OUTWARD_FLIGHT\")}
\n
\n
\n {qsmState.flight.outward.code} - \n {\n first(qsmState.flight.outward.flightMetaData.flightLines)?.travelClass\n }{\" \"}\n - \n {qsmState.flight.outward.flightMetaData.flightLines.length > 1\n ? qsmState.flight.outward.flightMetaData.flightLines.length -\n 1 +\n \" \" +\n t(\"STOPOVERS\")\n : t(\"DIRECT\")}\n
\n
\n {format(\n parse(\n qsmState.flight.outward.startDateTime,\n \"yyyy-MM-dd'T'HH:mm:ss'Z'\",\n new Date()\n ),\n \"dd/MM/yyyy\"\n )}\n  \n {first(qsmState.flight.outward.flightMetaData.flightLines)?.departureTime}\n  - \n {format(\n parse(\n qsmState.flight.outward.endDateTime,\n \"yyyy-MM-dd'T'HH:mm:ss'Z'\",\n new Date()\n ),\n \"dd/MM/yyyy\"\n )}\n  \n {last(qsmState.flight.outward.flightMetaData.flightLines)?.arrivalTime}\n {!isSameDay(\n new Date(\n first(qsmState.flight.outward.flightMetaData.flightLines)!.departureDate\n ),\n new Date(\n last(qsmState.flight.outward.flightMetaData.flightLines)!.arrivalDate\n )\n ) && (\n \n
\n {t(\"IS_OVERNIGHT_FLIGHT\")}\n
\n
\n )}\n
\n
\n {\n first(qsmState.flight.outward.flightMetaData.flightLines)\n ?.departureAirportDescription\n }\n  {\">\"} \n {\n last(qsmState.flight.outward.flightMetaData.flightLines)\n ?.arrivalAirportDescription\n }\n
\n
\n
\n
\n
{t(\"RETURN_FLIGHT\")}
\n
\n
\n {qsmState.flight.return.code} - \n {first(qsmState.flight.return.flightMetaData.flightLines)?.travelClass}{\" \"}\n - \n {qsmState.flight.return.flightMetaData.flightLines.length > 1\n ? qsmState.flight.return.flightMetaData.flightLines.length -\n 1 +\n \" \" +\n t(\"STOPOVERS\")\n : t(\"DIRECT\")}\n
\n
\n {format(\n parse(\n qsmState.flight.return.startDateTime,\n \"yyyy-MM-dd'T'HH:mm:ss'Z'\",\n new Date()\n ),\n \"dd/MM/yyyy\"\n )}\n  \n {first(qsmState.flight.return.flightMetaData.flightLines)?.departureTime}\n  - \n {format(\n parse(\n qsmState.flight.return.endDateTime,\n \"yyyy-MM-dd'T'HH:mm:ss'Z'\",\n new Date()\n ),\n \"dd/MM/yyyy\"\n )}\n  \n {last(qsmState.flight.return.flightMetaData.flightLines)?.arrivalTime}\n {!isSameDay(\n new Date(\n first(qsmState.flight.return.flightMetaData.flightLines)!.departureDate\n ),\n new Date(\n last(qsmState.flight.return.flightMetaData.flightLines)!.arrivalDate\n )\n ) && (\n \n
\n {t(\"IS_OVERNIGHT_FLIGHT\")}\n
\n
\n )}\n
\n
\n {\n first(qsmState.flight.return.flightMetaData.flightLines)\n ?.departureAirportDescription\n }\n  {\">\"} \n {\n last(qsmState.flight.return.flightMetaData.flightLines)\n ?.arrivalAirportDescription\n }\n
\n
\n
\n
\n {qsmState.bookingPackage?.outwardFlights &&\n qsmState.bookingPackage?.outwardFlights.length > 1 && (\n \n {t(\"PICK_ALTERNATE_FLIGHT\")}\n \n )}\n
\n )}\n {memberState?.member && (\n
\n
\n {qsmState?.bookingPackage?.tags.map((tag) => (\n \n \n {tag.title}\n
\n {tag.description}\n \n \n ))}\n
\n
\n )}\n
\n
\n {qsmState?.isLoading ? (\n <>\n \n \n ) : (\n <>\n
\n
\n {productState?.price?.defaultPrice && (\n <>{productState?.price?.defaultPrice && <>{t(\"TOTAL_PRICE\")}}\n )}\n
\n
\n {productState?.price?.defaultPrice && (\n <>\n {isFetchingPrice ? (\n \n ) : (\n formatter.format(productState?.price?.defaultPrice)\n )}\n \n )}\n {!productState?.price?.defaultPrice &&\n productState?.estimatedPrice?.promoPrice && (\n <>\n {t(\"STARTING_FROM_SHORT\")}{\" \"}\n {formatter.format(productState?.estimatedPrice?.promoPrice)}{\" \"}\n {t(\"PER_PERSON_SHORT\")}\n \n )}\n
\n
\n
\n {isBookable ? (\n \n ) : (\n \n {t(\"REQUEST_OFFER\")}\n \n )}\n {isBookable && memberState?.member && (\n
\n \n {printButtonState.isLoading ? : \"\"}\n {printButtonState.label}\n \n
\n )}\n
\n \n )}\n
\n
\n
\n \n );\n};\n\nexport default ProductIntro;\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;","import REGEX from './regex.js';\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js';\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return stringify(rnds);\n}\nexport default v4;","import { compact } from \"lodash\";\nimport React from \"react\";\nimport { buildClassName } from \"../utils\";\n\ninterface LabeledSelectProps {\n name: string;\n id?: string;\n required?: boolean;\n value?: string | number;\n defaultValue?: string | number;\n label?: string;\n hasError?: boolean;\n extraClassName?: string;\n extraDropdownClassName?: string;\n options?: { key: string; value: string | number | undefined; label: string }[];\n onChange?: React.ChangeEventHandler;\n onBlur?: React.FocusEventHandler;\n}\n\nconst LabeledSelect: React.FC = ({\n name,\n id,\n required,\n value,\n defaultValue,\n label,\n extraClassName,\n extraDropdownClassName,\n hasError,\n options,\n onChange,\n onBlur,\n}) => {\n return (\n \n {compact([label, required && \"*\"]).join(\" \")}\n
\n \n {options?.map((option) => (\n \n ))}\n \n
\n \n );\n};\n\nexport default LabeledSelect;\n","import React, { useRef, useState, useEffect } from \"react\";\nimport { useFormik } from \"formik\";\nimport * as Yup from \"yup\";\nimport { v4 as uuid } from \"uuid\";\nimport flat from \"flat\";\nimport { requestContact, requestCrmcontact } from \"../../tide-api\";\nimport { formatDate, processPlaceholders } from \"../../utils\";\nimport { TideAccommodation, TideRegime } from \"../../types\";\nimport { compact, get, head, isEmpty, isNil, range, set, values } from \"lodash\";\nimport LabeledInput from \"../labeled-input\";\nimport LabeledTextArea from \"../labeled-text-area\";\nimport LabeledCheckbox from \"../labeled-checkbox\";\nimport LabeledSelect from \"../labeled-select\";\nimport produce from \"immer\";\nimport _ from \"lodash\";\nimport { format, addDays, addHours, isBefore, isFuture, isValid } from \"date-fns\";\nimport { useQSMStore } from \"../../app/search-results/qsm-store/context\";\nimport { sortProps } from \"../../app/search-results/qsm/utils\";\nimport { Room } from \"../../app/search-results/qsm/room-picker\";\nimport { useI18next } from \"gatsby-plugin-react-i18next\";\n\ninterface OfferFormProps {\n title?: string;\n introText?: string;\n emailSubject?: string;\n emailMessage?: string;\n newsletterTag?: number;\n offerTag?: number;\n productName?: string;\n productCode?: string;\n minDuration?: number;\n minDurationType?: \"hours\" | \"days\" | \"nights\";\n accommodations?: TideAccommodation[];\n regimes?: TideRegime[];\n confirmationEmailTemplate?: number;\n privacyPath?: string;\n privacyText?: string;\n confirmationTitle?: string;\n confirmationText?: string;\n}\n\ninterface OfferFormValues {\n firstName: string;\n lastName: string;\n email: string;\n telNr: string;\n departureDate: string;\n retourDate: string;\n message: string;\n adultCount: number;\n childCount: number;\n children: { guid: string; age?: number }[];\n gender: string;\n acceptTerms: boolean;\n newsletter: boolean;\n flightIncluded: boolean;\n accommodation: string;\n regime: string;\n}\n\nconst OfferForm: React.FC = ({\n title,\n introText,\n emailSubject,\n emailMessage,\n confirmationEmailTemplate,\n newsletterTag,\n offerTag,\n productName,\n productCode,\n minDuration,\n minDurationType,\n accommodations,\n regimes,\n privacyPath,\n privacyText,\n confirmationTitle,\n confirmationText,\n}) => {\n const [qsmState] = useQSMStore();\n\n const formRef = useRef(null);\n const [formSubmitted, setFormSubmitted] = useState(false);\n const openForm = () => {\n setFormSubmitted(false);\n };\n const { t } = useI18next();\n\n const formik = useFormik({\n initialValues: {\n gender: \"\",\n firstName: \"\",\n lastName: \"\",\n email: \"\",\n telNr: \"\",\n departureDate: qsmState?.dateRange.fromDate\n ? formatDate(qsmState?.dateRange.fromDate, \"yyyy-MM-dd\")\n : \"\",\n retourDate: qsmState?.dateRange.toDate\n ? formatDate(qsmState?.dateRange.toDate, \"yyyy-MM-dd\")\n : \"\",\n adultCount: qsmState?.rooms.reduce((total, room) => total + room.adults, 0) ?? 1,\n childCount: qsmState?.rooms.reduce((total, room) => total + room.children, 0) ?? 0,\n children:\n qsmState?.rooms.flatMap((room) => room.childAges.map((age) => ({ guid: uuid(), age }))) ??\n [],\n accommodation:\n accommodations\n ?.find((o) => o.code === qsmState?.rooms[0]?.accommodationCode)\n ?.tideId.toString() ?? \"\",\n regime:\n regimes?.find((r) => r.code === qsmState?.rooms[0]?.regimeCode)?.tideId.toString() ?? \"\",\n message: \"\",\n flightIncluded: true,\n newsletter: false,\n acceptTerms: false,\n },\n validate: (values) => {\n const errors: Record> = {};\n\n if (isEmpty(values.gender)) {\n errors.gender = t(\"PLEASE_ENTER_GENDER\");\n }\n\n if (isEmpty(values.firstName)) {\n errors.firstName = t(\"PLEASE_ENTER_FIRST_NAME\");\n }\n\n if (isEmpty(values.lastName)) {\n errors.lastName = t(\"PLEASE_ENTER_LAST_NAME\");\n }\n\n try {\n Yup.string()\n .required(t(\"PLEASE_ENTER_EMAIL\"))\n .email(t(\"PLEASE_ENTER_VALID_EMAIL\"))\n .validateSync(values.email);\n } catch (err: any) {\n errors.email = head(err.errors) ?? \"\";\n }\n\n if (isEmpty(values.telNr)) {\n errors.telNr = t(\"PLEASE_ENTER_PHONE\");\n }\n\n if (isEmpty(values.departureDate)) {\n errors.departureDate = t(\"PLEASE_ENTER_DEPARTURE_DATE\");\n } else if (!isValid(new Date(values.departureDate))) {\n errors.departureDate = t(\"PLEASE_ENTER_VALID_DEPARTURE_DATE\");\n } else if (!isFuture(new Date(values.departureDate))) {\n errors.departureDate = t(\"PLEASE_ENTER_DEPARTURE_DATE_IN_FUTURE\");\n }\n\n if (isEmpty(values.retourDate)) {\n errors.retourDate = t(\"PLEASE_ENTER_RETURN_DATE\");\n } else if (!isValid(new Date(values.departureDate))) {\n errors.retourDate = t(\"PLEASE_ENTER_VALID_RETURN_DATE\");\n } else {\n const min = minDuration ?? 0;\n const dateISO = new Date(values.departureDate);\n const earliestReturnDate =\n minDurationType === \"hours\"\n ? addHours(dateISO, min)\n : minDurationType === \"days\"\n ? addDays(dateISO, min > 0 ? min - 1 : min)\n : minDurationType === \"nights\"\n ? addDays(dateISO, min)\n : dateISO;\n\n if (isBefore(new Date(values.retourDate), earliestReturnDate)) {\n errors.retourDate = t(\"EARLIEST_RETURN_DATE_FOR_DEPARTURE_DATE_IS_X\", {\n earliestReturnDate: format(earliestReturnDate, \"dd/MM/yyyy\"),\n });\n }\n }\n\n if (isNil(values.adultCount)) {\n errors.adultCount = t(\"PLEASE_ENTER_NUMBER_OF_ADULTS\");\n } else if (values.adultCount < 1) {\n errors.adultCount = t(\"NUMBER_OF_ADULTS_SHOULD_BE_AT_LEAST_1\");\n }\n\n if (isNil(values.childCount)) {\n errors.childCount = t(\"PLEASE_ENTER_NUMBER_OF_CHILDREN\");\n } else if (values.adultCount < 0) {\n errors.childCount = t(\"NUMBER_OF_CHILDREN_CAN_NOT_BE_NEGATIVE\");\n }\n\n for (let i = 0; i < values.children.length; i++) {\n if (isNil(get(values, `children.${i}.age`))) {\n set(\n errors,\n `children.${i}.age`,\n t(\"PLEASE_ENTER_AGE_OF_CHILD_X\", { childNumber: i + 1 })\n );\n }\n }\n\n if (isEmpty(values.accommodation)) {\n errors.accommodation = t(\"PLEASE_SELECT_ACCOMMODATION\");\n }\n\n if (regimes?.length && isEmpty(values.regime)) {\n errors.regime = t(\"PLEASE_SELECT_REGIME\");\n }\n\n if (!values.acceptTerms) {\n errors.acceptTerms = t(\"PLEASE_AGREE_WITH_TERMS\");\n }\n\n return errors;\n },\n onSubmit: async (values) => {\n try {\n if (isNil(offerTag)) {\n throw Error(\"offerTag was not supplied\");\n }\n\n if (isNil(newsletterTag)) {\n throw Error(\"newsletterTag was not supplied\");\n }\n\n if (isNil(emailMessage)) {\n throw Error(\"emailMessage was not supplied\");\n }\n\n if (isNil(emailSubject)) {\n throw Error(\"emailSubject was not supplied\");\n }\n\n const tags = compact([offerTag, values.newsletter && newsletterTag]);\n\n const selectedAccommodation = accommodations?.find(\n (a) => `${a.tideId}` === values.accommodation\n );\n const selectedRegime = regimes?.find((r) => `${r.tideId}` === values.regime);\n\n const replacements = {\n firstName: values.firstName ?? \"\",\n lastName: values.lastName ?? \"\",\n email: values.email ?? \"\",\n phone: values.telNr ?? \"\",\n productName: productName ?? \"\",\n productCode: productCode ?? \"\",\n message: values.message ?? \"\",\n adults: values.adultCount.toString() ?? \"\",\n children: values.childCount.toString() ?? \"\",\n childAges:\n values.children.length > 0\n ? `(${t(\"X_YEARS_OLD\", { age: values.children.map((c) => c.age).join(\", \") })})`\n : \"\",\n preferences: selectedRegime?.name ?? \"\",\n departureDate: values.departureDate ?? \"\",\n returnDate: values.retourDate ?? \"\",\n acco: selectedAccommodation?.name?.toString() ?? \"\",\n flightIncluded: values.flightIncluded ? t(\"FLIGHT_INCLUDED\") : t(\"FLIGHT_NOT_INCLUDED\"),\n };\n\n const subject = processPlaceholders(emailSubject, replacements);\n const message = processPlaceholders(emailMessage, replacements);\n\n await Promise.all([\n // contact request + confirmation mail\n requestCrmcontact({\n firstName: values.firstName,\n lastName: values.lastName,\n gender: !isEmpty(values.gender) ? parseInt(values.gender) : undefined,\n email: values.email,\n phone: values.telNr,\n remark: values.message,\n contactMessage: values.regime,\n tags: tags,\n tourGroupPreference: {\n adults: values.adultCount,\n children: values.childCount,\n rooms: 1,\n },\n confirmationEmailTemplate: confirmationEmailTemplate,\n }),\n // internal mail\n requestContact({\n firstName: values.firstName,\n lastName: values.lastName,\n email: values.email,\n phone: values.telNr,\n subject: subject,\n message: message,\n }),\n ]);\n\n setFormSubmitted(true);\n formRef.current?.scrollIntoView();\n } catch (error) {\n console.error(\"error\", error);\n }\n },\n });\n\n const handleChildCountChange: React.FormEventHandler = (e) => {\n const count = parseInt(e.currentTarget.value);\n if (!Number.isNaN(count)) {\n formik.setValues(\n produce(formik.values, (values) => {\n values.childCount = count;\n values.children = range(0, count).map(\n (index) =>\n formik.values.children[index] ?? {\n guid: uuid(),\n age: undefined,\n }\n );\n }),\n false\n );\n }\n };\n\n const flatErrors: Record = flat(formik.errors);\n const hasVisibleError = (key: string) => get(formik.errors, key) && get(formik.touched, key);\n\n useEffect(() => {\n formik.setValues(\n produce(formik.values, (values) => {\n values.adultCount = qsmState?.rooms.reduce((total, room) => total + room.adults, 0) ?? 1;\n values.childCount = qsmState?.rooms.reduce((total, room) => total + room.children, 0) ?? 0;\n values.children =\n qsmState?.rooms.flatMap((room) => room.childAges.map((age) => ({ guid: uuid(), age }))) ??\n [];\n }),\n false\n );\n }, [JSON.stringify(qsmState?.rooms.map(sortProps))]);\n\n useEffect(() => {\n var firstRoom = qsmState?.rooms ? qsmState?.rooms[0] : ({} as Room);\n\n if (firstRoom.accommodationCode) {\n const accommodationId = accommodations?.find((a) => a.code === firstRoom.accommodationCode)\n ?.tideId;\n\n if (typeof accommodationId !== \"undefined\") {\n formik.setValues(\n produce(formik.values, (values) => {\n values.accommodation = accommodationId.toString();\n }),\n true\n );\n }\n }\n\n if (firstRoom?.regimeCode) {\n const regimeId = regimes?.find((r) => r.code === firstRoom.regimeCode)?.tideId;\n\n if (typeof regimeId !== \"undefined\") {\n formik.setValues(\n produce(formik.values, (values) => {\n values.regime = regimeId.toString();\n }),\n true\n );\n }\n }\n }, [qsmState?.rooms]);\n\n useEffect(() => {\n formik.setValues(\n produce(formik.values, (values) => {\n values.departureDate = qsmState?.dateRange.fromDate\n ? formatDate(qsmState?.dateRange.fromDate, \"yyyy-MM-dd\")\n : \"\";\n values.retourDate = qsmState?.dateRange.toDate\n ? formatDate(qsmState?.dateRange.toDate, \"yyyy-MM-dd\")\n : \"\";\n }),\n true\n );\n }, [qsmState?.dateRange.fromDate?.valueOf(), qsmState?.dateRange.toDate?.valueOf()]);\n\n return (\n
\n
\n
\n {!formSubmitted ? (\n
\n
\n

{title}

\n
\n
\n \n
\n
\n \n
\n
\n \n
\n\n
\n \n
\n\n
\n \n
\n
\n
\n
\n\n
\n \n \n \n \n
\n
\n
\n
\n \n \n \n \n
\n {(formik.values.children ?? []).map((child, index) => (\n
\n ({\n key: `${age}`,\n value: age,\n label: `${age}`,\n })),\n ]}\n value={Number.isNaN(child.age) ? undefined : child.age}\n />\n
\n ))}\n
\n
\n
\n ({\n key: element.id,\n value: element.tideId ?? undefined,\n label: element.name ?? \"\",\n })),\n ]}\n />\n {regimes?.length ? (\n ({\n key: element.id,\n value: element.tideId ?? undefined,\n label: element.name ?? \"\",\n })),\n ]}\n />\n ) : null}\n
\n
\n \n
\n
\n
\n
\n \n {t(\"WITH_FLIGHT\")}\n \n
\n
\n \n {t(\"NEWS_LETTER_DESCRIPTION\")}\n \n
\n
\n \n {t(\"FORMS_PRIVACY_TEXT\")}{\" \"}\n \n {privacyText}\n \n \n
\n
\n {Object.keys(flatErrors).filter((key) => get(formik.touched, key, false)).length >\n 0 && (\n
\n
\n
\n

{t(\"INVALID_FIELDS\")}

\n
    \n {Object.keys(flatErrors)\n .filter((key) => get(formik.touched, key, false))\n .map((key) => (\n
  • \n {get(flatErrors, key)}\n
  • \n ))}\n
\n
\n
\n
\n )}\n\n
\n
\n
\n \n
\n
\n
\n \n
\n ) : (\n
\n
\n

{confirmationTitle}

\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n \n {t(\"REQUEST_NEW_OFFER\")}\n \n
\n
\n
\n \n
\n )}\n \n \n
\n );\n};\n\nexport default OfferForm;\n","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isFuture\n * @category Common Helpers\n * @summary Is the given date in the future?\n * @pure false\n *\n * @description\n * Is the given date in the future?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is in the future\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 6 October 2014, is 31 December 2014 in the future?\n * const result = isFuture(new Date(2014, 11, 31))\n * //=> true\n */\nexport default function isFuture(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getTime() > Date.now();\n}","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_HOUR = 3600000;\n\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the hours added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * const result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\nexport default function addHours(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_HOUR);\n}","var baseToString = require('./_baseToString'),\n castSlice = require('./_castSlice'),\n charsStartIndex = require('./_charsStartIndex'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * Removes leading whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trimStart(' abc ');\n * // => 'abc '\n *\n * _.trimStart('-_-abc-_-', '_-');\n * // => 'abc-_-'\n */\nfunction trimStart(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return string.replace(reTrimStart, '');\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n start = charsStartIndex(strSymbols, stringToArray(chars));\n\n return castSlice(strSymbols, start).join('');\n}\n\nmodule.exports = trimStart;\n","import React from \"react\";\n\ninterface ProductInfoBlockProps {\n title?: string;\n description?: string;\n}\n\nconst ProductInfoBlock: React.FC = ({ title, description }) => (\n
\n

{title}

\n \n
\n);\n\nexport default ProductInfoBlock;\n","import { isEmpty } from \"lodash\";\nimport React from \"react\";\nimport ProductInfoBlock from \"./product-info-block\";\n\ninterface ProductInfoProps {\n title?: string;\n blocks?: { title?: string; description?: string }[];\n}\n\nconst ProductInfo: React.FC = ({ title, blocks }) => (\n
\n {!isEmpty(title) &&

{title}

}\n
\n {(blocks ?? [])\n .filter((block) => !isEmpty(block.description))\n .map((block, index) => (\n \n ))}\n
\n
\n);\n\nexport default ProductInfo;\n","import React from \"react\";\nimport Pricing from \".\";\nimport { useProductStore } from \"../../app/search-results/product-store/context\";\nimport Loader from \"../loader\";\nimport { useI18next } from \"gatsby-plugin-react-i18next\";\n\ninterface ProductPriceProps {\n loaderText?: string;\n}\n\nconst ProductPrice: React.FC = ({ loaderText }) => {\n const [productState] = useProductStore();\n const { t } = useI18next();\n const priceText = productState?.price\n ? { prefix: \"\", suffix: \"\" }\n : { prefix: t(\"STARTING_FROM_SHORT\"), suffix: t(\"PER_PERSON_SHORT\") };\n const price = productState?.price ?? productState?.estimatedPrice;\n return price && (price.defaultPrice || price?.promoPrice) ? (\n \n ) : productState?.isUnavailable ? (\n <>\n ) : (\n \n );\n};\n\nexport default ProductPrice;\n","var arraySome = require('./_arraySome'),\n baseIteratee = require('./_baseIteratee'),\n baseSome = require('./_baseSome'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = some;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nmodule.exports = baseSome;\n","import React, { useEffect, useState } from \"react\";\nimport { useProductStore } from \"../../app/search-results/product-store/context\";\nimport Icon from \"../icon\";\nimport { setRegimeFlyInIsOpen } from \"../../app/search-results/product-store/reducer\";\nimport { setBookingPackage, setRooms } from \"../../app/search-results/qsm-store/reducer\";\nimport { useQSMStore } from \"../../app/search-results/qsm-store/context\";\nimport { Room } from \"../../app/search-results/qsm/room-picker\";\nimport AmountInput from \"../../app/search-results/qsm/amount-input\";\nimport { cloneDeep, first, groupBy, isEqual, last, range } from \"lodash\";\nimport { formatter, selectCorrectRoomInBookingPackage, setImageParameters } from \"../../utils\";\nimport {\n Image,\n TideItemForAccomodation,\n TideItemForHotel,\n TideItemForRoundtrip,\n} from \"../../types\";\nimport { BookingPackageRoomOption } from \"@qite/tide-client/build/types\";\nimport LightBox from \"react-image-lightbox\";\nimport { sortProps } from \"../../app/search-results/qsm/utils\";\nimport AgeSelect from \"../../app/search-results/qsm/age-select\";\nimport Loader from \"../loader\";\nimport { BookingPackageOption } from \"@qite/tide-client/build/types/offer/booking-v2/shared/booking-package-option\";\nimport { useI18next } from \"gatsby-plugin-react-i18next\";\n\ninterface FlyInRoomProps {\n product: TideItemForHotel | TideItemForRoundtrip;\n isRoundTrip: boolean;\n}\n\ninterface AccoGroup {\n key: string;\n value: BookingPackageRoomOption[];\n}\n\nconst RoomFlyIn: React.FC = ({ product, isRoundTrip }) => {\n const [productState, productDispatch] = useProductStore();\n const [qsmState, qsmDispatch] = useQSMStore();\n const [showRoomIndex, setShowRoomIndex] = useState(0);\n const [isBeingEdited, setIsBeingEdited] = useState(false);\n const [isFormActive, setIsFormActive] = useState(false);\n const [requestRooms, setRequestRooms] = useState([]);\n const [roomToEdit, setRoomToEdit] = useState({\n adults: 2,\n children: 0,\n childAges: [],\n isVisible: false,\n });\n\n const [imageIndex, setImageIndex] = useState(0);\n const [images, setImages] = useState();\n const [lightBoxIsOpen, setLightBoxIsOpen] = useState(false);\n const [activeOption, setActiveOption] = useState();\n const { t } = useI18next();\n\n const placeholderImage =\n \"https://media.tidesoftware.be/media/10/Products/Placeholders/placeholder_accommodation-card-v2-1.webp\";\n\n const toggleFormActive = () => {\n setIsFormActive(!isFormActive);\n };\n\n const editRoom = (index?: number) => {\n setShowRoomIndex(index != undefined ? index : undefined);\n\n if (index != undefined) {\n setRoomToEdit({ ...requestRooms[index] });\n }\n toggleFormActive();\n };\n\n const addRoom = () => {\n if (showRoomIndex == undefined) {\n var arr = requestRooms.concat({ ...roomToEdit });\n setRequestRooms(arr);\n confirmRoomDistribution(arr);\n setShowRoomIndex(arr.length - 1);\n } else {\n const newState = requestRooms.map((room, i) => {\n if (i === showRoomIndex) {\n return roomToEdit;\n } else {\n return room;\n }\n });\n setRequestRooms(newState);\n confirmRoomDistribution(newState);\n }\n setRoomToEdit({ adults: 2, children: 0, childAges: [], isVisible: false });\n toggleFormActive();\n };\n\n const removeRoom = (index: number) => {\n var rooms = [...requestRooms];\n rooms.splice(index, 1);\n setRequestRooms(rooms);\n confirmRoomDistribution(rooms);\n };\n\n const handleSelectRoom = (event: React.MouseEvent, index: number) => {\n event.preventDefault();\n setShowRoomIndex(index);\n };\n\n const handleClose = () => {\n if (productDispatch) productDispatch(setRegimeFlyInIsOpen(false));\n };\n\n const confirmRoomDistribution = (rooms: Room[]) => {\n if (qsmDispatch && rooms) {\n qsmDispatch(setRooms(rooms.map((object) => ({ ...object }))));\n\n if (qsmState?.bookingPackage) {\n const bookingPackage = selectCorrectRoomInBookingPackage(\n rooms,\n cloneDeep(qsmState?.bookingPackage)\n );\n qsmDispatch(setBookingPackage(bookingPackage));\n }\n }\n };\n\n const confirmOptions = () => {\n confirmRoomDistribution(requestRooms);\n handleClose();\n };\n\n const groupByAcco = (index: number) => {\n if (activeOption?.rooms[index]) {\n const grouped = groupBy(activeOption?.rooms[index].options, \"accommodationCode\");\n let keys = Object.keys(grouped);\n\n return keys.map((x) => ({ key: x, value: grouped[x] } as AccoGroup));\n }\n };\n\n const getAccommodation = (code: string) => {\n return ((product.childItems as TideItemForAccomodation[]) ?? []).find(\n (x) => x.content?.general?.productcode == code\n );\n };\n\n const getAccommodationName = (gr: AccoGroup) => {\n return getAccommodation(gr.key)?.content?.general?.title ?? first(gr.value)?.accommodationName;\n };\n\n const getAccommodationFacilities = (code: string) => {\n return getAccommodation(code)?.content?.description?.facilities?.split(\"\\n\");\n };\n\n const getDefaultImage = (code: string) => {\n return getAccommodation(code)?.content?.description?.picture;\n };\n\n const getNumberOfImages = (code: string) => {\n let numberOfExtraImages =\n getAccommodation(code)?.content?.description?.extraImages?.length ?? 0;\n if (getDefaultImage(code)) numberOfExtraImages += 1;\n\n return numberOfExtraImages;\n };\n\n const getExtraImages = (code: string) => {\n return getAccommodation(code)?.content?.description?.extraImages;\n };\n\n const isSelectedRoom = (index: number, code: string, regimeCode?: string) => {\n const selectedAcco = getSelectedAccoCode(index);\n\n if (selectedAcco == code) {\n const selectedRegime =\n requestRooms[index].regimeCode ??\n activeOption?.rooms[index]?.options.find((x) => x.isSelected)?.regimeCode;\n if (selectedRegime != regimeCode) {\n return false;\n }\n\n return true;\n }\n\n return false;\n };\n\n const getSelectedAccoCode = (roomIndex: number) => {\n return (\n requestRooms[roomIndex].accommodationCode ??\n activeOption?.rooms[roomIndex]?.options.find((x) => x.isSelected)?.accommodationCode\n );\n };\n\n const selectAccommodation = (roomIndex: number, gr: AccoGroup) => {\n let roomsCopy = [...requestRooms];\n roomsCopy[roomIndex].accommodationCode = gr.key;\n roomsCopy[roomIndex].regimeCode = first(gr.value)?.regimeCode ?? undefined;\n setRequestRooms(roomsCopy);\n };\n\n const handleOptionChange = (\n event: React.ChangeEvent,\n roomIndex: number,\n code: string\n ) => {\n event.preventDefault();\n let roomsCopy = [...requestRooms];\n roomsCopy[roomIndex].accommodationCode = code;\n roomsCopy[roomIndex].regimeCode = event.target.value != \"\" ? event.target.value : undefined;\n setRequestRooms(roomsCopy);\n };\n\n const handleViewImages = (event: React.MouseEvent, code: string) => {\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\" && !isRoundTrip) {\n event.preventDefault();\n let extraImages = getExtraImages(code) ? (getExtraImages(code) as Image[]) : [];\n if (getDefaultImage(code)) {\n extraImages = [...extraImages.concat(getDefaultImage(code)!)];\n }\n\n setImages(extraImages);\n setImageIndex(0);\n if (extraImages.length) {\n setLightBoxIsOpen(true);\n }\n }\n };\n\n const getRoomPriceDifference = (index: number, code: string, regimeCode?: string) => {\n if (isSelectedRoom(index, code, regimeCode)) {\n return 0;\n } else {\n const options = activeOption?.rooms[index]?.options;\n const selectedOption = options?.find(\n (x) =>\n x.accommodationCode == requestRooms[index].accommodationCode &&\n x.regimeCode == requestRooms[index].regimeCode\n );\n const selectedBookingOption = options?.find((x) => x.isSelected);\n\n let desiredOption = options?.find((x) => x.accommodationCode == code);\n if (regimeCode)\n desiredOption = options?.find(\n (x) => x.accommodationCode == code && x.regimeCode == regimeCode\n );\n\n if ((selectedBookingOption || selectedOption) && desiredOption) {\n const priceDifference =\n desiredOption?.price -\n (selectedOption?.price ? selectedOption?.price : selectedBookingOption?.price ?? 0);\n return priceDifference;\n }\n }\n\n return 0;\n };\n\n const getRoomsPriceDifference = () => {\n if (activeOption?.rooms) {\n let originalOptionsPrice = 0;\n let desiredOptionsPrice = 0;\n for (let index = 0; index < requestRooms.length; index++) {\n const room = activeOption.rooms[index];\n\n const originalOption = room?.options?.find((x) => x.isSelected);\n originalOptionsPrice += originalOption?.price ?? 0;\n\n const desiredOption = room?.options?.find(\n (x) =>\n x.accommodationCode == requestRooms[index].accommodationCode &&\n x.regimeCode == requestRooms[index].regimeCode\n );\n desiredOptionsPrice += desiredOption ? desiredOption.price : originalOption?.price ?? 0;\n }\n if (desiredOptionsPrice && originalOptionsPrice) {\n return desiredOptionsPrice - originalOptionsPrice;\n }\n }\n return 0;\n };\n\n const getFlightPriceDifference = () => {\n if (qsmState?.bookingPackage && qsmState.flight) {\n let originalFlightsPrice = 0;\n let desiredFlightsPrice = 0;\n\n originalFlightsPrice +=\n qsmState?.bookingPackage.outwardFlights.find((x) => x.isSelected)?.price ?? 0;\n originalFlightsPrice +=\n qsmState?.bookingPackage.returnFlights.find((x) => x.isSelected)?.price ?? 0;\n\n desiredFlightsPrice += qsmState.flight.outward.price ?? 0;\n desiredFlightsPrice += qsmState.flight.return.price ?? 0;\n\n if (desiredFlightsPrice && originalFlightsPrice) {\n return desiredFlightsPrice - originalFlightsPrice;\n }\n }\n return 0;\n };\n\n const getTotalPriceDifference = () => {\n const flightPriceDifference = getFlightPriceDifference();\n const roomsPriceDifference = getRoomsPriceDifference();\n\n return flightPriceDifference + roomsPriceDifference;\n };\n\n const getSelectedRegimeCode = (gr: AccoGroup, roomIndex: number) => {\n if (gr.key == requestRooms[roomIndex].accommodationCode) {\n return (\n gr.value.find((x) => x.regimeCode == requestRooms[roomIndex].regimeCode)?.regimeCode ??\n undefined\n );\n }\n return gr.value.find((x) => x.isSelected)?.regimeCode ?? undefined;\n };\n\n useEffect(() => {\n var qsmStateJSON = JSON.stringify(\n qsmState?.rooms?.map(sortProps).map((x) => {\n return { adults: x.adults, children: x.children, childAges: x.childAges } as Room;\n })\n );\n var requestRoomsJSON = JSON.stringify(\n requestRooms.map(sortProps).map((x) => {\n return { adults: x.adults, children: x.children, childAges: x.childAges } as Room;\n })\n );\n if (!isEqual(qsmStateJSON, requestRoomsJSON)) {\n setIsBeingEdited(true);\n } else {\n setIsBeingEdited(false);\n }\n }, [requestRooms, qsmState?.rooms]);\n\n useEffect(() => {\n if (productState?.regimeFlyInIsOpen && qsmState?.rooms) {\n const copy = qsmState.rooms.map((object) => ({ ...object }));\n setRequestRooms(copy ?? []);\n }\n }, [productState?.regimeFlyInIsOpen]);\n\n useEffect(() => {\n const bookingPackage = qsmState?.bookingPackage;\n\n if (bookingPackage) {\n const option = bookingPackage.options.find((x) => x.isSelected);\n setActiveOption(option);\n }\n }, [qsmState, qsmState?.bookingPackage]);\n\n return (\n
\n
\n
toggleFormActive()}>\n \n
\n

\n {t(\"ROOM\")} {showRoomIndex != undefined ? showRoomIndex + 1 : requestRooms.length + 1}\n

\n {\n setRoomToEdit({ ...roomToEdit, adults: value });\n }}\n />\n {\n setRoomToEdit({\n ...roomToEdit,\n children: value,\n childAges: range(0, value).map((childIndex) => roomToEdit.childAges[childIndex] ?? 0),\n });\n }}\n />\n {roomToEdit.children > 0 && (\n
\n \n
\n {range(0, roomToEdit.children).map((childIndex) => (\n {\n setRoomToEdit({\n ...roomToEdit,\n childAges: roomToEdit.childAges\n .map((age, i) => (childIndex === i ? value : age))\n .sort((a, b) => b - a),\n });\n }}\n />\n ))}\n
\n
\n )}\n
\n \n
\n
\n\n handleClose()}\n >
\n\n
\n
\n
handleClose()}>\n \n
\n
{t(\"EDIT_ROOM\")}
\n
\n
\n
\n
\n {t(\"ROOMS\")}\n
\n \n
\n
\n\n
\n
\n
\n
\n
\n
\n \n \n {requestRooms.map((requestRoom, roomIndex) => (\n \n \n \n \n \n \n \n ))}\n \n
\n handleSelectRoom(e, roomIndex)}\n >\n {roomIndex == showRoomIndex ? (\n \n \n \n \n \n ) : (\n \n )}\n \n \n

\n {t(\"ROOM\")} {roomIndex + 1}\n

\n
\n editRoom(roomIndex)}\n />\n editRoom(roomIndex)}\n />\n \n \n {requestRoom.children > 0 && (\n \n {requestRoom.childAges.map((value) => (\n <>\n {value}\n {t(\"YEAR_SHORT\")}{\" \"}\n {value == last(requestRoom.childAges) ? \"\" : \" - \"}\n \n ))}\n \n )}\n \n \n {requestRoom != first(requestRooms) && (\n removeRoom(roomIndex)}\n >\n \n \n )}\n
\n
\n {showRoomIndex != undefined && requestRooms[showRoomIndex] && (\n
\n

\n {t(\"ROOM_OPTIONS\")}\n {!isBeingEdited && !qsmState?.isLoading && (\n \n {t(\"ROOM\")} {showRoomIndex + 1}\n \n )}\n

\n\n {!isBeingEdited && !qsmState?.isLoading && (\n
\n {groupByAcco(showRoomIndex)?.map(\n (gr: AccoGroup, accoGroupindex: number) => (\n
\n
\n
\n 0\n ? t(\"VIEW_IMAGES\")\n : undefined\n }\n className=\"image__link\"\n onClick={(e) => handleViewImages(e, gr.key)}\n data-count={\n getNumberOfImages(gr.key) > 0\n ? getNumberOfImages(gr.key)\n : undefined\n }\n >\n \n \n
\n
\n
\n
\n
\n {isRoundTrip\n ? first(gr.value)?.accommodationName\n : getAccommodationName(gr)}\n
\n \n {Math.sign(getRoomPriceDifference(showRoomIndex, gr.key)) !=\n 0 &&\n `${\n Math.sign(\n getRoomPriceDifference(showRoomIndex, gr.key)\n ) == -1\n ? \"-\"\n : \"+\"\n } ${formatter.format(\n Math.abs(getRoomPriceDifference(showRoomIndex, gr.key))\n )}`}\n
\n
\n selectAccommodation(showRoomIndex, gr)}\n >\n {getSelectedAccoCode(showRoomIndex) == gr.key\n ? t(\"SELECTED\")\n : t(\"SELECT\")}\n \n
\n
\n
\n
    \n {getAccommodationFacilities(gr.key)?.map(\n (facility: string, facilityIndex: number) => (\n
  • \n {facility}\n
  • \n )\n )}\n
\n
\n \n handleOptionChange(e, showRoomIndex, gr.key)\n }\n value={getSelectedRegimeCode(gr, showRoomIndex)}\n >\n {gr.value.map((option, optionIndex) => (\n \n {option.regimeName ??\n option.regimeCode ??\n t(\"ROOM_ONLY\")}{\" \"}\n {getRoomPriceDifference(\n showRoomIndex,\n gr.key,\n option.regimeCode\n ) != 0 &&\n `${\n Math.sign(\n getRoomPriceDifference(\n showRoomIndex,\n gr.key,\n option.regimeCode\n )\n ) == -1\n ? \"-\"\n : \"+\"\n } ${formatter.format(\n Math.abs(\n getRoomPriceDifference(\n showRoomIndex,\n gr.key,\n option.regimeCode\n )\n )\n )}`}\n \n ))}\n \n
\n
\n
\n
\n )\n )}\n
\n )}\n\n {qsmState?.isLoading && }\n
\n )}\n
\n
\n
\n
\n
\n
\n
\n {!qsmState?.isLoading && (\n <>\n
\n {showRoomIndex != undefined && (\n <>\n {last(requestRooms) == requestRooms[showRoomIndex] ? (\n \n ) : (\n setShowRoomIndex(showRoomIndex + 1)}\n >\n {t(\"CONFIRM_ROOM_X_AND_NEXT\", { roomNumber: showRoomIndex + 1 })}\n \n \n \n \n )}\n\n setShowRoomIndex(showRoomIndex - 1)}\n >\n \n \n \n {t(\"PREVIOUS_ROOM\")}\n \n \n )}\n
\n\n
\n {showRoomIndex != undefined && (\n <>\n {last(requestRooms) == requestRooms[showRoomIndex] ? (\n \n ) : (\n setShowRoomIndex(showRoomIndex + 1)}\n >\n {t(\"NEXT_ROOM\")}{\" \"}\n \n \n \n \n )}\n\n setShowRoomIndex(showRoomIndex - 1)}\n >\n \n \n {\" \"}\n {t(\"GO_BACK\")}\n \n \n )}\n
\n\n
\n
\n
{t(\"ADDITIONAL_COST\")}
\n
{`${\n Math.sign(getRoomsPriceDifference()) == -1 ? \"-\" : \"+\"\n } ${formatter.format(Math.abs(getRoomsPriceDifference()))}`}
\n
\n
\n
{t(\"TOTAL_PRICE\")}
\n
\n {productState?.price?.defaultPrice && (\n <>\n {formatter.format(\n productState?.price?.defaultPrice + getTotalPriceDifference()\n )}\n \n )}\n {!productState?.price?.defaultPrice &&\n productState?.estimatedPrice?.promoPrice && (\n <>\n {t(\"STARTING_FROM_SHORT\")}{\" \"}\n {formatter.format(productState?.estimatedPrice?.promoPrice)}{\" \"}\n {t(\"PER_PERSON_SHORT\")}\n \n )}\n
\n
\n
\n \n )}\n
\n \n\n {lightBoxIsOpen && images?.length && (\n setLightBoxIsOpen(false)}\n onMovePrevRequest={() => setImageIndex((imageIndex + images.length - 1) % images.length)}\n onMoveNextRequest={() => setImageIndex((imageIndex + 1) % images.length)}\n />\n )}\n \n );\n};\n\nexport default RoomFlyIn;\n","import React from \"react\";\nimport { useProductStore } from \"../../app/search-results/product-store/context\";\nimport { handleAnchorClick } from \"../../utils\";\nimport Link from \"../link\";\nimport Pricing from \"../pricing\";\nimport { useI18next } from \"gatsby-plugin-react-i18next\";\n\ninterface StickyBarActionsProps {}\n\nconst StickyBarActions: React.FC = ({}) => {\n const [productState] = useProductStore();\n const { t } = useI18next();\n\n const priceText = productState?.price\n ? { prefix: \"\", suffix: \"\" }\n : { prefix: t(\"STARTING_FROM_SHORT\"), suffix: t(\"PER_PERSON_SHORT\") };\n const price = productState?.price ?? productState?.estimatedPrice;\n\n return (\n <>\n {price && (\n \n )}\n {productState?.price ? (\n \n {t(\"BOOK_NOW\")}\n \n ) : (\n \n {t(\"REQUEST_OFFER\")}\n \n )}\n \n );\n};\n\nexport default StickyBarActions;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","import { useI18next } from \"gatsby-plugin-react-i18next\";\nimport React from \"react\";\n\ninterface HighlightFrameProps {\n highlights: string[];\n}\n\nconst HighlightFrame: React.FC = ({ highlights }) => {\n const { t } = useI18next();\n return (\n
\n

{t(\"HIGHLIGHTS\")}

\n
\n
    \n {highlights.map((highlight, i) => (\n
  • \n {highlight}\n
  • \n ))}\n
\n
\n
\n );\n};\n\nexport default HighlightFrame;\n","import { millisecondsInHour } from \"../constants/index.js\";\nimport differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInHours\n * @category Hour Helpers\n * @summary Get the number of hours between the given dates.\n *\n * @description\n * Get the number of hours between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of hours\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many hours are between 2 July 2014 06:50:00 and 2 July 2014 19:00:00?\n * const result = differenceInHours(\n * new Date(2014, 6, 2, 19, 0),\n * new Date(2014, 6, 2, 6, 50)\n * )\n * //=> 12\n */\nexport default function differenceInHours(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / millisecondsInHour;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","import React from \"react\";\n\nexport interface FlyInWarningsProps {\n warnings: string[];\n}\n\nconst FlyInWarnings: React.FC = ({ warnings }) => {\n if (!warnings || warnings.length == 0) return <>;\n\n return (\n \n
\n \") }}\n >\n
\n
\n );\n};\n\nexport default FlyInWarnings;\n","import {\n BookingPackageFlight,\n BookingPackageFlightMetaDataLine,\n} from \"@qite/tide-client/build/types\";\nimport { BookingPackageOption } from \"@qite/tide-client/build/types/offer/booking-v2/shared/booking-package-option\";\nimport { differenceInHours, format, isSameDay, parse } from \"date-fns\";\nimport { graphql, useStaticQuery } from \"gatsby\";\nimport { cloneDeep, first, last, uniq, uniqBy } from \"lodash\";\nimport React, { useEffect, useState } from \"react\";\nimport { useProductStore } from \"../../app/search-results/product-store/context\";\nimport { setFlightsFlyInIsOpen } from \"../../app/search-results/product-store/reducer\";\nimport { useQSMStore } from \"../../app/search-results/qsm-store/context\";\nimport { setBookingPackage, setFlight, setRooms } from \"../../app/search-results/qsm-store/reducer\";\nimport { TideItemForAirline } from \"../../types\";\nimport { formatter } from \"../../utils\";\nimport Icon from \"../icon\";\nimport FlyInWarnings from \"./fly-in-warnings\";\nimport { useI18next } from \"gatsby-plugin-react-i18next\";\n\ninterface FlyInFlightProps {\n destination: string;\n}\n\ninterface Airport {\n code: string;\n name?: string;\n}\n\nexport interface flightPair {\n outward: BookingPackageFlight;\n return: BookingPackageFlight;\n}\n\nconst FlightsFlyIn: React.FC = ({ destination }) => {\n const { t } = useI18next();\n const [productState, productDispatch] = useProductStore();\n const [qsmState, qsmDispatch] = useQSMStore();\n\n const [travelClasses, setTravelClasses] = useState([]);\n const [selectedTravelClass, setSelectedTravelClass] = useState();\n\n const [departureAirports, setDepartureAirports] = useState([]);\n const [selectedDepartureAirport, setSelectedDepartureAirport] = useState();\n\n const [flightPairs, setFlightPairs] = useState([]);\n const [filteredFlightPairs, setFilteredFlightPairs] = useState([]);\n const [selectedFlightPair, setSelectedFlightPair] = useState();\n const [currentOption, setCurrentOption] = useState();\n\n const queryResult = useStaticQuery(graphql`\n query airlineDataQuery {\n allTideItemForAirline {\n nodes {\n content {\n general {\n name\n icon {\n url\n title\n altText\n }\n }\n descriptive {\n data {\n iata\n }\n }\n }\n }\n }\n }\n `);\n\n const handleClose = () => {\n if (productDispatch) productDispatch(setFlightsFlyInIsOpen(false));\n };\n\n const confirmOptions = () => {\n if (qsmDispatch && selectedFlightPair) {\n qsmDispatch(setFlight(selectedFlightPair));\n\n const bookingPackage = cloneDeep(qsmState?.bookingPackage);\n\n if (bookingPackage) {\n const selectedOption = bookingPackage.options.find((x) => x.isSelected);\n const optionShouldBeChanged = !selectedFlightPair.outward.validOptions.some(\n (x) => x === selectedOption?.id\n );\n\n if (selectedOption && optionShouldBeChanged) {\n const newOption = bookingPackage.options.find((x) =>\n selectedFlightPair.outward.validOptions.some((y) => y === x.id)\n );\n if (newOption && newOption.id !== selectedOption.id) {\n selectedOption.isSelected = false;\n newOption.isSelected = true;\n\n setCurrentOption(newOption.id);\n\n var rooms = cloneDeep(qsmState?.rooms);\n if (rooms && rooms.length) {\n rooms.forEach((r, i) => {\n if (r.accommodationCode) {\n const room = newOption.rooms[i];\n\n const oldRoomOption = room.options.find((x) => x.isSelected);\n if (oldRoomOption) {\n const newRoomOption = room.options.find(\n (x) =>\n x.accommodationCode === r.accommodationCode && x.regimeCode == r.regimeCode\n );\n\n if (!newRoomOption) {\n r.accommodationCode = oldRoomOption.accommodationCode;\n r.regimeCode = oldRoomOption.regimeCode;\n } else if (oldRoomOption.entryLineGuid !== newRoomOption.entryLineGuid) {\n oldRoomOption.isSelected = false;\n newRoomOption.isSelected = true;\n }\n }\n }\n });\n\n qsmDispatch(setRooms(rooms));\n }\n }\n }\n\n const oldOutwardFlight = bookingPackage.outwardFlights.find((x) => x.isSelected);\n const newOutwardFlight = bookingPackage.outwardFlights.find(\n (x) => x.entryLineGuid === selectedFlightPair.outward.entryLineGuid\n );\n\n if (\n oldOutwardFlight !== undefined &&\n newOutwardFlight !== undefined &&\n oldOutwardFlight?.entryLineGuid !== newOutwardFlight?.entryLineGuid\n ) {\n oldOutwardFlight.isSelected = false;\n newOutwardFlight.isSelected = true;\n }\n\n const oldReturnFlight = bookingPackage.returnFlights.find((x) => x.isSelected);\n const newReturnFlight = bookingPackage.returnFlights.find(\n (x) => x.entryLineGuid === selectedFlightPair.return.entryLineGuid\n );\n\n if (\n oldReturnFlight !== undefined &&\n newReturnFlight !== undefined &&\n oldReturnFlight?.entryLineGuid !== newReturnFlight?.entryLineGuid\n ) {\n oldReturnFlight.isSelected = false;\n newReturnFlight.isSelected = true;\n }\n qsmDispatch(setBookingPackage(bookingPackage));\n }\n }\n\n handleClose();\n };\n\n const getTotalPriceDiff = () => {\n const originalOutwardFlight = qsmState?.bookingPackage?.outwardFlights.find(\n (x) => x.isSelected\n );\n const originalReturnFlight = qsmState?.bookingPackage?.returnFlights.find((x) => x.isSelected);\n const selectedOutwardFlight = selectedFlightPair?.outward;\n const selectedReturnFlight = selectedFlightPair?.return;\n const flightPriceDiff =\n (selectedOutwardFlight?.price ?? 0) -\n (originalOutwardFlight?.price ?? 0) +\n (selectedReturnFlight?.price ?? 0) -\n (originalReturnFlight?.price ?? 0);\n\n const originalOption = qsmState?.bookingPackage?.options.find((x) => x.isSelected);\n const selectedOption = qsmState?.bookingPackage?.options.find((x) =>\n selectedOutwardFlight?.validOptions.includes(x.id)\n );\n const originalOptionPrice = originalOption ? calcHotelPrice(originalOption) : 0;\n const selectedOptionPrice = selectedOption ? calcHotelPrice(selectedOption) : 0;\n const optionPriceDiff = selectedOptionPrice - originalOptionPrice;\n\n return flightPriceDiff + optionPriceDiff;\n };\n\n const getPriceDifference = (airportCode?: string, flight?: flightPair) => {\n if (airportCode) {\n const selectedFlight =\n selectedFlightPair?.outward ??\n qsmState?.bookingPackage?.outwardFlights.find((x) => x.isSelected);\n const returnFlight =\n selectedFlightPair?.return ??\n qsmState?.bookingPackage?.returnFlights.find((x) => x.isSelected);\n\n let originalPrice = 0;\n if (selectedFlight && returnFlight) {\n originalPrice = selectedFlight.price + returnFlight.price;\n }\n\n let cheapestOutwardFlight = first(\n qsmState?.bookingPackage?.outwardFlights\n .filter(\n (x) =>\n x.flightMetaData.flightLines[0]?.departureAirport == airportCode &&\n x.flightMetaData.flightLines[0]?.travelClass == selectedTravelClass\n )\n .sort((a, b) => a.price - b.price)\n );\n\n let matchingReturnFlight = cheapestOutwardFlight?.externalGuid\n ? qsmState?.bookingPackage?.returnFlights.find(\n (x) => x.externalGuid == cheapestOutwardFlight?.externalGuid\n )\n : selectedTravelClass\n ? qsmState?.bookingPackage?.returnFlights.find(\n (x) =>\n first(x.flightMetaData.flightLines)?.departureAirport ==\n last(cheapestOutwardFlight?.flightMetaData.flightLines)?.arrivalAirport &&\n first(x.flightMetaData.flightLines)?.travelClass == selectedTravelClass &&\n last(x.flightMetaData.flightLines)?.arrivalAirport ==\n first(cheapestOutwardFlight?.flightMetaData.flightLines)?.departureAirport\n )\n : qsmState?.bookingPackage?.returnFlights.find(\n (x) =>\n first(x.flightMetaData.flightLines)?.departureAirport ==\n last(cheapestOutwardFlight?.flightMetaData.flightLines)?.arrivalAirport &&\n last(x.flightMetaData.flightLines)?.arrivalAirport ==\n first(cheapestOutwardFlight?.flightMetaData.flightLines)?.departureAirport\n );\n\n const selectedHotel = qsmState?.bookingPackage?.options.find((x) =>\n selectedFlight?.validOptions.includes(x.id)\n );\n const matchingHotel = qsmState?.bookingPackage?.options.find((x) =>\n cheapestOutwardFlight?.validOptions.includes(x.id)\n );\n const selectedHotelPrice = selectedHotel ? calcHotelPrice(selectedHotel) : 0;\n const matchingHotelPrice = matchingHotel ? calcHotelPrice(matchingHotel) : 0;\n const hotelPriceDifference =\n selectedFlight == cheapestOutwardFlight ? 0 : matchingHotelPrice - selectedHotelPrice;\n\n if (flight) {\n cheapestOutwardFlight = flight.outward;\n matchingReturnFlight = flight.return;\n }\n\n let cheapestPriceForAirport = 0;\n if (cheapestOutwardFlight && matchingReturnFlight) {\n cheapestPriceForAirport = cheapestOutwardFlight.price + matchingReturnFlight.price;\n }\n\n return cheapestPriceForAirport - originalPrice + hotelPriceDifference;\n }\n\n return 0;\n };\n\n const selectDepartureAirport = (airportCode: string, travelClass?: string) => {\n setSelectedDepartureAirport(departureAirports.find((x) => x.code == airportCode));\n setSelectedTravelClass(travelClass);\n\n if (qsmState?.bookingPackage) {\n let desiredFlight = qsmState?.bookingPackage.outwardFlights.find(\n (x) => first(x.flightMetaData.flightLines)?.departureAirport == airportCode\n );\n if (travelClass) {\n desiredFlight = qsmState?.bookingPackage.outwardFlights.find(\n (x) =>\n first(x.flightMetaData.flightLines)?.departureAirport == airportCode &&\n first(x.flightMetaData.flightLines)?.travelClass == travelClass\n );\n }\n if (desiredFlight) {\n let matchingReturnFlight = desiredFlight?.externalGuid\n ? qsmState?.bookingPackage?.returnFlights.find(\n (x) => x.externalGuid == desiredFlight?.externalGuid\n )\n : travelClass\n ? qsmState?.bookingPackage?.returnFlights.find(\n (x) =>\n first(x.flightMetaData.flightLines)?.departureAirport ==\n last(desiredFlight?.flightMetaData.flightLines)?.arrivalAirport &&\n first(x.flightMetaData.flightLines)?.travelClass == travelClass &&\n last(x.flightMetaData.flightLines)?.arrivalAirport ==\n first(desiredFlight?.flightMetaData.flightLines)?.departureAirport &&\n desiredFlight?.validOptions.sort().join(\",\") === x.validOptions.sort().join(\",\")\n )\n : qsmState?.bookingPackage?.returnFlights.find(\n (x) =>\n first(x.flightMetaData.flightLines)?.departureAirport ==\n last(desiredFlight?.flightMetaData.flightLines)?.arrivalAirport &&\n last(x.flightMetaData.flightLines)?.arrivalAirport ==\n first(desiredFlight?.flightMetaData.flightLines)?.departureAirport &&\n desiredFlight?.validOptions.sort().join(\",\") === x.validOptions.sort().join(\",\")\n );\n\n if (matchingReturnFlight) {\n setSelectedFlightPair({\n outward: desiredFlight,\n return: matchingReturnFlight,\n });\n }\n }\n }\n };\n\n const calcHotelPrice = (bookingPackageOption: BookingPackageOption) => {\n const selectedOption = qsmState?.bookingPackage?.options.find((x) => x.isSelected);\n return bookingPackageOption?.rooms\n ?.map(\n (room, index) =>\n room.options.find(\n (option) =>\n option.accommodationCode ==\n selectedOption?.rooms[index].options.find((x) => x.isSelected)?.accommodationCode &&\n option.regimeCode ==\n selectedOption?.rooms[index].options.find((x) => x.isSelected)?.regimeCode\n )?.price ?? 0\n )\n .reduce((a, b) => a + b);\n };\n\n const selectFlight = (flight: flightPair) => {\n setSelectedFlightPair(flightPairs.find((x) => x == flight));\n };\n\n const getFlightPriceDifference = () => {\n if (qsmState?.bookingPackage) {\n let originalFlightsPrice = 0;\n let desiredFlightsPrice = 0;\n\n originalFlightsPrice +=\n qsmState?.bookingPackage.outwardFlights.find((x) => x.isSelected)?.price ?? 0;\n originalFlightsPrice +=\n qsmState?.bookingPackage.returnFlights.find((x) => x.isSelected)?.price ?? 0;\n\n desiredFlightsPrice += selectedFlightPair?.outward.price ?? 0;\n desiredFlightsPrice += selectedFlightPair?.return.price ?? 0;\n\n if (desiredFlightsPrice && originalFlightsPrice) {\n return desiredFlightsPrice - originalFlightsPrice;\n }\n }\n return 0;\n };\n\n const getRoomPriceDifference = () => {\n const activeOption = qsmState?.bookingPackage?.options.find((x) => x.isSelected);\n if (activeOption?.rooms && qsmState?.rooms) {\n let originalOptionsPrice = 0;\n let desiredOptionsPrice = 0;\n for (let index = 0; index < qsmState?.rooms.length; index++) {\n const room = activeOption.rooms[index];\n\n const originalOption = room?.options?.find((x) => x.isSelected);\n originalOptionsPrice += originalOption?.price ?? 0;\n\n const desiredOption = room?.options?.find(\n (x) =>\n x.accommodationCode == qsmState?.rooms[index].accommodationCode &&\n x.regimeCode == qsmState?.rooms[index].regimeCode\n );\n desiredOptionsPrice += desiredOption ? desiredOption.price : originalOption?.price ?? 0;\n }\n if (desiredOptionsPrice && originalOptionsPrice) {\n return desiredOptionsPrice - originalOptionsPrice;\n }\n }\n return 0;\n };\n\n const getTotalPriceDifference = () => {\n const flightPriceDifference = getFlightPriceDifference();\n const roomPriceDifference = getRoomPriceDifference();\n\n return flightPriceDifference + roomPriceDifference;\n };\n\n const getAirlineIcon = (flight: BookingPackageFlight) => {\n let longestFlightLine = first(flight.flightMetaData.flightLines);\n let longestFlightLinehours = 0;\n\n for (const line of flight.flightMetaData.flightLines) {\n let startDate = new Date(line.departureDate);\n const departureTimes = line.departureTime.split(\":\");\n startDate.setHours(Number(first(departureTimes)));\n startDate.setMinutes(Number(last(departureTimes)));\n\n let endDate = new Date(line.arrivalDate);\n const arrivalTimes = line.arrivalTime.split(\":\");\n endDate.setHours(Number(first(arrivalTimes)));\n endDate.setMinutes(Number(last(arrivalTimes)));\n\n const difference = differenceInHours(endDate, startDate);\n if (difference > longestFlightLinehours) {\n longestFlightLinehours = difference;\n longestFlightLine = line;\n }\n }\n\n const iata = longestFlightLine?.operatingAirlineCode ?? longestFlightLine?.airlineCode;\n\n if (iata) {\n const airline = (queryResult.allTideItemForAirline.nodes as TideItemForAirline[]).find(\n (x) => x.content?.descriptive?.data?.iata == iata\n );\n const imageSrc = airline?.content?.general?.icon?.url;\n if (imageSrc) {\n return imageSrc;\n }\n }\n\n return undefined;\n };\n\n const getWarnings = (\n flight: flightPair,\n flightLine: BookingPackageFlightMetaDataLine,\n isOutward: boolean\n ) => {\n const warnings = [];\n const flightItem = isOutward ? flight.outward : flight.return;\n\n const isLastLine = flightLine == last(flightItem.flightMetaData.flightLines);\n const isLandingSameDay = isSameDay(\n new Date(first(flightItem.flightMetaData.flightLines)!.departureDate),\n new Date(last(flightItem.flightMetaData.flightLines)!.arrivalDate)\n );\n\n if (isLastLine && !isLandingSameDay) {\n warnings.push(t(\"IS_OVERNIGHT_FLIGHT\"));\n }\n\n if (!flightItem.validOptions.some((x) => x == currentOption)) {\n warnings.push(t(\"FLIGHT_CHANGES_HOTEL_DATES\"));\n }\n\n return warnings;\n };\n\n useEffect(() => {\n if (!qsmState?.bookingPackage) return;\n\n const classes = uniq(\n qsmState?.bookingPackage?.outwardFlights\n .map((x) => first(x.flightMetaData.flightLines)?.travelClass)\n .concat(\n qsmState?.bookingPackage?.returnFlights.map(\n (x) => first(x.flightMetaData.flightLines)?.travelClass\n )\n )\n ) as string[];\n setTravelClasses(classes);\n setSelectedTravelClass(first(classes));\n\n const airports = uniqBy(\n qsmState?.bookingPackage?.outwardFlights.map((x) => {\n return {\n code: x.flightMetaData.flightLines[0]?.departureAirport,\n name: x.flightMetaData.flightLines[0]?.departureAirportDescription,\n } as Airport;\n }),\n \"code\"\n );\n const selectedAirport = qsmState?.bookingPackage?.outwardFlights.find((x) => x.isSelected)\n ?.flightMetaData.flightLines[0]?.departureAirport;\n if (selectedAirport) {\n setSelectedDepartureAirport({\n code: selectedAirport,\n name: qsmState?.bookingPackage?.outwardFlights.find((x) => x.isSelected)?.flightMetaData\n .flightLines[0]?.departureAirportDescription,\n });\n let position = airports.find((x) => x.code == selectedAirport);\n if (position) airports.unshift(airports.splice(airports.indexOf(position), 1)[0]);\n }\n\n setDepartureAirports(airports);\n setSelectedDepartureAirport(first(airports));\n\n let flights = [] as flightPair[];\n if (qsmState?.bookingPackage?.outwardFlights) {\n for (const outwardFlight of qsmState.bookingPackage.outwardFlights) {\n let matchingReturnFlight = outwardFlight?.externalGuid\n ? qsmState?.bookingPackage?.returnFlights.find(\n (x) => x.externalGuid == outwardFlight?.externalGuid\n )\n : selectedTravelClass\n ? qsmState?.bookingPackage?.returnFlights.find(\n (x) =>\n first(x.flightMetaData.flightLines)?.departureAirport ==\n last(outwardFlight?.flightMetaData.flightLines)?.arrivalAirport &&\n first(x.flightMetaData.flightLines)?.travelClass == selectedTravelClass &&\n last(x.flightMetaData.flightLines)?.arrivalAirport ==\n first(outwardFlight?.flightMetaData.flightLines)?.departureAirport &&\n outwardFlight?.validOptions.sort().join(\",\") === x.validOptions.sort().join(\",\")\n )\n : qsmState?.bookingPackage?.returnFlights.find(\n (x) =>\n first(x.flightMetaData.flightLines)?.departureAirport ==\n last(outwardFlight?.flightMetaData.flightLines)?.arrivalAirport &&\n last(x.flightMetaData.flightLines)?.arrivalAirport ==\n first(outwardFlight?.flightMetaData.flightLines)?.departureAirport &&\n outwardFlight?.validOptions.sort().join(\",\") === x.validOptions.sort().join(\",\")\n );\n\n const flight = { outward: outwardFlight, return: matchingReturnFlight } as flightPair;\n flights.push(flight);\n\n if (flight.outward.isSelected) setSelectedFlightPair(flight);\n }\n }\n\n setCurrentOption(qsmState.bookingPackage.options.find((x) => x.isSelected)?.id);\n setFlightPairs(flights);\n }, [qsmState?.bookingPackage]);\n\n useEffect(() => {\n let flights = [...flightPairs];\n flights = flights.filter(\n (x) =>\n first(x.outward.flightMetaData.flightLines)?.departureAirport ==\n selectedDepartureAirport?.code &&\n first(x.outward.flightMetaData.flightLines)!.travelClass == selectedTravelClass\n );\n setFilteredFlightPairs(flights);\n }, [selectedDepartureAirport, selectedTravelClass]);\n\n useEffect(() => {\n if (productState?.flightsFlyInIsOpen && qsmState?.flight) {\n const copy = { ...qsmState.flight } as flightPair;\n setSelectedFlightPair(copy);\n }\n }, [productState?.flightsFlyInIsOpen]);\n\n return (\n
\n
handleClose()}>
\n
\n
\n
handleClose()}>\n \n
\n
\n {t(\"CHOOSE_ANOTHER_FLIGHT_FOR_DESTINATION\", { destination })}\n
\n
\n
\n
\n
{t(\"SHOW_FLIGHTS_IN_FLIGHTCLASS\")}
\n
\n
\n {travelClasses &&\n travelClasses.map((travelClass: string, index: number) => (\n \n selectDepartureAirport(selectedDepartureAirport?.code!, travelClass)\n }\n >\n e.preventDefault()}\n >\n {travelClass == selectedTravelClass && (\n \n \n \n \n \n )}\n \n
{travelClass}
\n
\n ))}\n
\n
\n
\n
\n
{t(\"SHOW_FLIGHTS_FROM\")}
\n
\n
\n {departureAirports &&\n departureAirports.map((airport, index) => (\n selectDepartureAirport(airport.code, selectedTravelClass)}\n >\n e.preventDefault()}\n >\n {airport.code == selectedDepartureAirport?.code && (\n \n \n \n \n \n )}\n \n
\n {airport.name} ({airport.code})\n
\n \n {!(\n flightPairs.filter(\n (x) =>\n first(x.outward.flightMetaData.flightLines)?.departureAirport ==\n airport.code &&\n first(x.outward.flightMetaData.flightLines)?.travelClass ==\n selectedTravelClass\n ).length > 0\n ) ? (\n {t(\"NO_FLIGHTS_FOR_CLASS\")}\n ) : (\n Math.sign(getPriceDifference(airport.code)) != 0 &&\n airport != selectedDepartureAirport &&\n `${\n Math.sign(getPriceDifference(airport.code)) == -1 ? \"-\" : \"+\"\n } ${formatter.format(Math.abs(getPriceDifference(airport.code)))}`\n )}\n
\n
\n ))}\n
\n
\n
\n
\n

\n {t(\"ALTERNATE_FLIGHTS\")}{\" \"}\n \n {selectedDepartureAirport?.name} ({selectedDepartureAirport?.code})\n \n

\n
\n
\n {filteredFlightPairs.map((flight, index) => (\n \n
\n \n {Math.sign(\n getPriceDifference(selectedDepartureAirport?.code ?? \"\", flight)\n ) != 0 &&\n `${\n Math.sign(\n getPriceDifference(selectedDepartureAirport?.code ?? \"\", flight)\n ) == -1\n ? \"-\"\n : \"+\"\n } ${formatter.format(\n Math.abs(\n getPriceDifference(selectedDepartureAirport?.code ?? \"\", flight)\n )\n )}`}\n
\n
\n selectFlight(flight)}\n >\n {selectedFlightPair?.outward.entryLineGuid ==\n flight.outward.entryLineGuid &&\n selectedFlightPair?.return.entryLineGuid == flight.return.entryLineGuid\n ? t(\"SELECTED\")\n : t(\"SELECT\")}\n \n
\n
\n
\n
\n
\n {getAirlineIcon(flight.outward) ? (\n \n ) : (\n \n {\n first(flight.outward.flightMetaData.flightLines)\n ?.operatingAirlineDescription\n }\n \n )}\n
\n
{t(\"OUTWARD_FLIGHT\")}
\n
\n
\n
{t(\"DATE\")}
\n
\n {format(\n parse(\n flight.outward.startDateTime,\n \"yyyy-MM-dd'T'HH:mm:ss'Z'\",\n new Date()\n ),\n \"dd/MM/yyyy\"\n )}\n
\n
\n
\n
{t(\"FLIGHT_NUMBER\")}
\n
\n {first(flight.outward.flightMetaData.flightLines)?.number}\n
\n
\n
\n
{t(\"TYPE\")}
\n
\n {flight.outward.flightMetaData.flightLines.length > 1\n ? flight.outward.flightMetaData.flightLines.length -\n 1 +\n \" \" +\n t(\"STOPOVERS\")\n : t(\"DIRECT\")}\n , {first(flight.outward.flightMetaData.flightLines)?.travelClass}\n
\n
\n
\n
\n {flight.outward.flightMetaData.flightLines.map((flightLine, index) => (\n
\n
\n \n {flightLine.departureAirport}\n
\n \n {flightLine.departureAirportDescription}\n \n
\n
\n \n {flightLine.departureTime}\n \n \n {format(new Date(flightLine.departureDate), \"dd/MM\")}\n \n
\n
\n
\n \n
\n
\n
\n \n {flightLine.arrivalAirport}\n
\n \n {flightLine.arrivalAirportDescription}\n \n
\n
\n \n {flightLine.arrivalTime}\n \n \n {format(new Date(flightLine.arrivalDate), \"dd/MM\")}\n \n \n
\n
\n ))}\n
\n
\n
\n
\n {getAirlineIcon(flight.return) ? (\n \n ) : (\n \n {\n first(flight.outward.flightMetaData.flightLines)\n ?.operatingAirlineDescription\n }\n \n )}\n
\n
{t(\"RETURN_FLIGHT\")}
\n
\n
\n
{t(\"DATE\")}
\n
\n {format(\n parse(\n flight.return.startDateTime,\n \"yyyy-MM-dd'T'HH:mm:ss'Z'\",\n new Date()\n ),\n \"dd/MM/yyyy\"\n )}\n
\n
\n
\n
{t(\"FLIGHT_NUMBER\")}
\n
\n {first(flight.return.flightMetaData.flightLines)?.number}\n
\n
\n
\n
{t(\"TYPE\")}
\n
\n {flight.return.flightMetaData.flightLines.length > 1\n ? flight.return.flightMetaData.flightLines.length -\n 1 +\n \" \" +\n t(\"STOPOVERS\")\n : t(\"DIRECT\")}\n , {first(flight.return.flightMetaData.flightLines)?.travelClass}\n
\n
\n
\n
\n {flight.return.flightMetaData.flightLines.map((flightLine, index) => (\n
\n
\n \n {flightLine.departureAirport}\n
\n \n {flightLine.departureAirportDescription}\n \n
\n
\n \n {flightLine.departureTime}\n \n \n {format(new Date(flightLine.departureDate), \"dd/MM\")}\n \n
\n
\n
\n \n
\n
\n
\n \n {flightLine.arrivalAirport}\n
\n \n {flightLine.arrivalAirportDescription}\n \n
\n
\n \n {flightLine.arrivalTime}\n \n \n {format(new Date(flightLine.arrivalDate), \"dd/MM\")}\n \n \n
\n
\n ))}\n
\n
\n
\n
\n ))}\n
\n \n \n \n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
{t(\"ADDITIONAL_COST\")}
\n
{`${\n Math.sign(getTotalPriceDiff()) == -1 ? \"-\" : \"+\"\n } ${formatter.format(Math.abs(getTotalPriceDiff()))}`}
\n
\n
\n
\n {productState?.price?.defaultPrice && <>{t(\"TOTAL_PRICE\")}}\n
\n
\n {productState?.price?.defaultPrice && (\n <>{formatter.format(productState?.price?.defaultPrice + getTotalPriceDiff())}\n )}\n {!productState?.price?.defaultPrice && productState?.estimatedPrice?.promoPrice && (\n <>\n {t(\"STARTING_FROM_SHORT\")}{\" \"}\n {formatter.format(productState?.estimatedPrice?.promoPrice)}{\" \"}\n {t(\"PER_PERSON_SHORT\")}\n \n )}\n
\n
\n
\n
\n \n \n );\n};\n\nexport default FlightsFlyIn;\n","var arrayFilter = require('./_arrayFilter'),\n baseFilter = require('./_baseFilter'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = filter;\n","import { trimStart } from \"lodash\";\nimport React from \"react\";\nimport Link from \"./link\";\nimport { useI18next } from \"gatsby-plugin-react-i18next\";\n\ninterface BreadcrumbProps {\n items: {\n id: string;\n title: string;\n url: string;\n }[];\n}\n\nconst Breadcrumb: React.FC = ({ items = [] }) => {\n const parentItems = items.length >= 2 ? items.slice(0, items.length - 1) : [];\n const currentItem = items.length >= 1 ? items[items.length - 1] : null;\n const { t } = useI18next();\n\n return (\n
\n
\n {t(\"BREADCRUMB_YOU_ARE_HERE\")}:\n {parentItems.map((breadcrumbItem) => (\n
\n \n {breadcrumbItem.title}\n \n
\n ))}\n {currentItem && (\n
{currentItem.title}
\n )}\n
\n
\n );\n};\n\nexport default Breadcrumb;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nmodule.exports = baseFilter;\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\n\nconst ModalPortal: React.FC = (props) => {\n const domNode = typeof document !== \"undefined\" ? document.getElementById(\"modal-root\") : null;\n return domNode ? ReactDOM.createPortal(props.children, domNode) : null;\n};\n\nexport default ModalPortal;\n","import React from \"react\";\nimport { Image as ImageType } from \"../../types\";\nimport { buildClassName, setImageParameters } from \"../../utils\";\nimport NukaCarousel from \"nuka-carousel\";\nimport Icon from \"../icon\";\nimport Image from \"../image\";\nimport Pricing, { Price } from \"../pricing\";\nimport { compact } from \"lodash\";\nimport ModalPortal from \"../modal-portal\";\nimport Rating from \"../rating\";\nimport { useI18next } from \"gatsby-plugin-react-i18next\";\n\ninterface RelatedProductModalProps {\n active?: boolean;\n headerImage?: ImageType;\n images?: ImageType[];\n destinationName?: string;\n productName?: string;\n rating?: number;\n description?: string;\n summary?: string;\n price?: Price;\n onCloseClick?: () => void;\n}\n\nconst RelatedProductModal: React.FC = ({\n active,\n headerImage,\n images,\n destinationName,\n productName,\n rating,\n description,\n summary,\n price,\n onCloseClick,\n}) => {\n const handleCloseClick: React.MouseEventHandler = () => {\n if (onCloseClick) {\n onCloseClick();\n }\n };\n\n const { t } = useI18next();\n\n const arrowStyle = {\n width: \"3.5rem\",\n height: \"3.5rem\",\n borderRadius: \"50%\",\n color: \"#000\",\n backgroundColor: \"rgba(255, 255, 255, 0.5)\",\n };\n\n return (\n \n \n
\n
\n
\n \n \n \n
\n
\n
\n {images && images.length > 0 ? (\n \",\n nextButtonStyle: {\n marginRight: \"1rem\",\n ...arrowStyle,\n },\n }}\n >\n {compact([headerImage, ...images]).map((image, index) => (\n \n ))}\n \n ) : (\n \n )}\n
\n
\n {destinationName && (\n
\n
\n \n {destinationName}\n
\n
\n )}\n

{productName}

\n
\n {price && }\n
\n {rating && }\n {description && (\n
\n )}\n {summary && (\n
\n )}\n
\n
\n
\n \n
\n );\n};\n\nexport default RelatedProductModal;\n","import { compact } from \"lodash\";\nimport React, { useState } from \"react\";\nimport { Image as ImageType } from \"../../types\";\nimport { Price } from \"../pricing\";\nimport ProductCard from \"../product-card\";\nimport RelatedProductModal from \"./related-product-modal\";\nimport { useI18next } from \"gatsby-plugin-react-i18next\";\n\ninterface RelatedProductCardProps {\n productName: string;\n rating?: number;\n destinationName?: string;\n headerImage?: ImageType;\n images?: ImageType[];\n description?: string;\n summary?: string;\n price?: Price;\n isExcursion?: boolean;\n}\n\nconst RelatedProductCard: React.FC = ({\n productName,\n rating,\n destinationName,\n headerImage,\n images,\n description,\n summary,\n price,\n isExcursion,\n}) => {\n const [hasModalVisible, setModalVisible] = useState(false);\n const { t } = useI18next();\n\n const handleOpenModalClick = () => {\n setModalVisible(true);\n\n if (typeof document !== \"undefined\") {\n document.body.classList.toggle(\"has-overlay\", true);\n const pageElement = document.querySelector(\".page\");\n if (pageElement) {\n pageElement.classList.toggle(\"page-blurred\", true);\n }\n }\n };\n\n const handleCloseModalClick = () => {\n setModalVisible(false);\n\n if (typeof document !== \"undefined\") {\n document.body.classList.toggle(\"has-overlay\", false);\n const pageElement = document.querySelector(\".page\");\n if (pageElement) {\n pageElement.classList.toggle(\"page-blurred\", false);\n }\n }\n };\n\n return (\n \n \n \n );\n};\n\nexport default RelatedProductCard;\n"],"sourceRoot":""}