{"version":3,"sources":["webpack:///./app/components/render/Carousels/Hero.js","webpack:///./app/util/fetch.js","webpack:///./app/util/continue-handler.js","webpack:///./app/util/dictionary.js","webpack:///./app/components/react/BookingJourney/MiniBasket/utils/flights.js","webpack:///./app/components/react/Carousels/Hero/ViewMoreImages/ViewMoreImages.js","webpack:///./app/util/rectangle.js","webpack:///./app/components/react/Carousels/Hero/mini-basket-overlay.js","webpack:///./app/util/point.js","webpack:///./app/components/react/Carousels/Hero/index.js"],"names":["__webpack_require__","_class","context","_classCallCheck","this","init","initReact","ReactDOM","render","_react2","default","createElement","_Hero2","FetchJSON","url","method","arguments","length","undefined","data","Promise","resolve","reject","postData","JSON","stringify","xhr","XMLHttpRequest","destroy","onload","onerror","open","withCredentials","setRequestHeader","send","parse","response","error","ContinueManager","_onDone","_process","_loading","done","process","loading","getDictionary","route","callback","fetch","then","responseJson","Message","getText","dictionary","item","name","split","splice","forEach","value","findValue","SubFolders","Entries","join","Phrase","folderName","folders","selectedItem","Name","toLowerCase","routeMapper","flight","luggage","isOutbound","inBoundIndex","Flights","Vias","flightIndex","AirlineCode","AirlineLogoUrl","AirlineName","AirportNameFrom","DepartureAirportName","AirportCodeFrom","DepartureAirportCode","AirportNameTo","ArrivalAirportName","AirportCodeTo","ArrivalAirportCode","DepartureDateTime","DepartureTime","ArrivalDateTime","ArrivalTime","TotalNumberOfAvailableBags","basketData","totalNumberOfAvailableBags","Passengers","reduce","sum","passenger","PassengerTypeValue","getTotalNumberOfAvailableBags","LuggageAllowance","CabinClass","FlightNumber","AirportNameVia","AirportName","AirportNameViaHour","HourWait","AirportNameViaMinute","MinuteWait","AirportCodeVias","handleSearchFlights","outboundFlight","OutBoundFlight","inboundFlight","InBoundFlight","handleQuoteFlights","FlightRouteSummary","OutBoundRoute","InBoundRoute","_ref","onClick","customClass","className","src","alt","Rectangle","left","top","width","height","_scale","_left","_top","_width","_height","x","y","w","h","rect","right","bottom","toUnion","union","Math","min","max","scale","rect1","rect2","rectI","_react","Sentry","_dictionary","MiniBasketOverlay","props","_this","_possibleConstructorReturn","__proto__","Object","getPrototypeOf","call","continueBookingProcess","event","stopPropagation","handleClick","updateMiniBasket","bind","Component","errorInfo","withScope","scope","keys","key","setExtra","captureException","buttonText","miniBasketButtons","document","querySelectorAll","i","querySelector","innerText","click","_this2","_props","carHires","extras","flights","isDesktop","search","miniBasketModel","selectedHotel","transfer","transferText","transferContent","totalPax","parseInt","TotalAdults","TotalChilds","TotalInfants","price","TotalPrice","body","dataset","atolText","toFixed","xmlns","viewBox","fill","d","stroke","stroke-width","stroke-linecap","stroke-linejoin","moment","StartDate","format","Nights","_ViewMoreImages2","Point","distance","p1","p2","sqrt","pow","_reactResponsiveCarousel","_breakpoints","_flights","SLIDESHOW_BREAKPOINT","tabletBreakpoint","HeroCarousel","getImageDimensions","_this$props$context","clientHeight","clientWidth","showAsSlideshow","_window","window","devicePixelRatio","innerWidth","state","images","hasLoaded","showLink","lightboxIsOpen","currentLightboxImage","onChange","openLightbox","closeLightbox","gotoNext","gotoPrevious","checkToAllowClick","getEventData","onPointerDown","Blazy","revalidate","_delayPageTransitions2","slickWrapperElement","addEventListener","miniBasketData","miniBasket","showMiniBasketOverlay","SessionDataManager","getStorage","basket","currentHotel","returnedSearch","sessionStorage","getItem","AccommodationAvailability","activeIndex","Transfer","searchExtras","BestRoomOptions","Extras","concat","RoomInclusions","element","extra","Comment","push","setState","_this3","carouselVersion","imageCaption","foundImages","allImages","filter","foundImage","_getImageDimensions","lightboxImages","reactSlickImages","imageSrc","getAttribute","queryDelimiter","indexOf","style","display","imageContent","title","carouselTitle","subtitle","carouselSubtitle","summary","carouselSummary","btnText","carouselBtn","carouselUrl","altText","carouselImageAlt","footerText","carouselFooter","linkText","carouselLinkText","linkUrl","carouselLinkUrl","focalPointX","carouselFocalPointX","focalPointY","carouselFocalPointY","hasContent","carouselHasContent","backgroundImage","placholderImage","isHalfHeight","isBigger","isMidSize","lightboxImageObject","slickImageObject","setTimeout","miniBasketElement","miniBasketBox","getBoundingClientRect","isClickWithinMiniBasketOverlay","contains","clientX","clientY","point","screenX","screenY","time","Date","getTime","downData","allowed","eventData","target","classList","_slideshowSettings","_this4","_state","array","reactSlickArray","divStyle","scrollTop","visiableClass","imageClass","imageBg","focalPointString","_state$images$i","data-src","aria-label","backgroundPosition","feefoUrl","dangerouslySetInnerHTML","__html","href","slideshowSettings","_defineProperty","dots","infinite","initialSlide","speed","slidesToScroll","slidesToShow","arrows","breakpoint","settings","centerPadding","centerMode","Carousel","axis","showThumbs","showArrows","showIndicators","showStatus","emulateTouch","infiniteLoop","swipeScrollTolerance","_reactSlick2","_miniBasketOverlay2","_reactImages2","clickOutsideToClose","currentImage","isOpen","onClickNext","onClickPrev","onClose"],"mappings":"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","file":"HeroCarouselRender-f8f256e651ae08681398.js","sourcesContent":["import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\nimport HeroCarousel from '../../react/Carousels/Hero';\r\n\r\nexport default class {\r\n\r\n\tconstructor(context) {\r\n\t\tthis.context = context;\r\n\t\tthis.init();\r\n\t}\r\n\r\n\r\n\tinit() {\r\n\t\tthis.initReact();\r\n\t}\r\n\r\n\tinitReact() {\r\n\t\tReactDOM.render(\r\n\t\t\t, this.context\r\n\t\t);\r\n\t}\r\n}\r\n","export default class FetchJSON {\r\n\t\r\n\tstatic fetch(url, method = 'POST', data = {}) {\r\n\t\treturn new Promise(function(resolve, reject) {\r\n\t\t\tlet postData = JSON.stringify(data);\r\n\t\t\tlet xhr = new XMLHttpRequest();\r\n xhr.open(method, url, true);\r\n xhr.withCredentials = true;\r\n\t\t\txhr.setRequestHeader(\"Content-type\", \"application/json;charset=UTF-8\");\r\n\t\t\txhr.send(postData);\r\n\r\n\t\t\txhr.onload = function() {\r\n\t\t\t\tresolve(JSON.parse(xhr.response));\r\n\t\t\t\tdestroy();\r\n\t\t\t}\r\n\r\n\t\t\txhr.onerror = function(error) {\r\n\t\t\t\treject(error);\r\n\t\t\t\tdestroy();\r\n\t\t\t}\r\n\r\n\t\t\tfunction destroy() {\r\n\t\t\t\txhr.onload = null;\r\n\t\t\t\txhr.onerror = null;\r\n\t\t\t\txhr = null;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}","export default class ContinueManager {\r\n\r\n // This comes from the mini basket. \r\n _onDone = null;\r\n\r\n // This comes from the component that handles data before the actual click event happens.\r\n _process = null;\r\n\r\n // Used to prevent multiple calls to process function\r\n _loading = null;\r\n\r\n //set done event from basket\r\n static register(done) {\r\n this._onDone = done;\r\n }\r\n\r\n // set process from booking journey\r\n static setProcess(process) {\r\n this._process = process;\r\n }\r\n\r\n static setLoading(loading) {\r\n this._loading = loading;\r\n }\r\n\r\n // This get's called from mini basket.\r\n // If there is a process to be run then run it.\r\n static handleClick() {\r\n if (this._loading) return;\r\n if (this._process) {\r\n this._process();\r\n } else {\r\n this._onDone();\r\n }\r\n }\r\n\r\n // If a process has run then it should call this when finished.\r\n static endProcess() {\r\n this._onDone();\r\n }\r\n}\r\n","import FetchJSON from './fetch';\r\n\r\nexport function getDictionary(route, callback) {\r\n let url = `/api/dictionary/item?path=${route}`;\r\n\r\n FetchJSON.fetch(url, 'GET').then((responseJson) => {\r\n if (responseJson.Message) callback({ error: true, response: responseJson });\r\n callback(responseJson);\r\n });\r\n}\r\n\r\nexport function getText(route, dictionary) {\r\n let item = null;\r\n\r\n // Split the route into array to loop through.\r\n route = route.split('/');\r\n\r\n // Get the last route item as that is the actual dictionary name.\r\n const name = route[route.length - 1];\r\n // Remove that from the route array as route would just be sub folders.\r\n route.splice(-1, 1);\r\n\r\n if (dictionary) {\r\n // Go through sub folders and set dictionary to the relavent folder.\r\n if (route.length > 0) {\r\n route.forEach((value) => {\r\n dictionary = findValue(value, dictionary.SubFolders);\r\n });\r\n }\r\n // Get the actual value of the dictionary item.\r\n if (dictionary) item = findValue(name, dictionary.Entries);\r\n }\r\n\r\n // Return the phrase. If not found then return a readable route path as placeholder.\r\n return item === null ? `${route.join(' ')} ${name}` : item.Phrase;\r\n}\r\n\r\n// Loops through array and returns the item that matches the given name.\r\nfunction findValue(folderName, folders) {\r\n let selectedItem = null;\r\n folders.forEach(item => {\r\n if (item.Name.toLowerCase() === folderName.toLowerCase()) selectedItem = item;\r\n });\r\n return selectedItem;\r\n}\r\n","export function handleSearchFlights(data) {\r\n const outboundFlight = data.OutBoundFlight;\r\n const inboundFlight = data.InBoundFlight;\r\n\r\n // Align pre-quote structure with post-quote structure\r\n if (!outboundFlight.Vias) outboundFlight.Vias = outboundFlight.AirportCodeVias;\r\n if (!inboundFlight.Vias) inboundFlight.Vias = inboundFlight.AirportCodeVias;\r\n \r\n return {\r\n outboundFlight,\r\n inboundFlight\r\n }\r\n}\r\n\r\nexport function handleQuoteFlights(data) {\r\n const outboundFlight = routeMapper(data.FlightRouteSummary.OutBoundRoute, data.Flights[0].LuggageAllowance, data, true);\r\n const inboundFlight = routeMapper(data.FlightRouteSummary.InBoundRoute, data.Flights[1].LuggageAllowance, data, false);\r\n\r\n return {\r\n outboundFlight,\r\n inboundFlight\r\n }\r\n}\r\n\r\nfunction routeMapper(flight, luggage, data, isOutbound) {\r\n const route = {};\r\n let inBoundIndex = data.Flights.length - 1;\r\n\r\n if (flight.Vias.length > 0) {\r\n // This is the first inbound flight number.\r\n // We can't take the last index when there are vias otherwise the flight number on web will not match travelink.\r\n // E.G: Inbound contains two flights with 1 stopover. We want the flight number of the one going to the stopover.\r\n // Not the final destination.\r\n inBoundIndex = inBoundIndex - flight.Vias.length;\r\n }\r\n\r\n const flightIndex = isOutbound ? 0 : inBoundIndex;\r\n route.AirlineCode = flight.AirlineCode;\r\n route.AirlineLogoUrl = flight.AirlineLogoUrl;\r\n route.AirlineName = flight.AirlineName;\r\n route.AirportNameFrom = flight.DepartureAirportName;\r\n route.AirportCodeFrom = flight.DepartureAirportCode;\r\n route.AirportNameTo = flight.ArrivalAirportName;\r\n route.AirportCodeTo = flight.ArrivalAirportCode;\r\n route.DepartureDateTime = flight.DepartureTime;\r\n route.ArrivalDateTime = flight.ArrivalTime;\r\n route.TotalNumberOfAvailableBags = getTotalNumberOfAvailableBags(data);\r\n route.LuggageAllowance = luggage;\r\n route.CabinClass = data.Flights[flightIndex].Flights.CabinClass;\r\n route.FlightNumber = data.Flights[flightIndex].Flights.FlightNumber;\r\n\r\n if (flight.Vias.length) {\r\n route.AirportNameVia = flight.Vias[0].AirportName;\r\n route.AirportNameViaHour = flight.Vias[0].HourWait;\r\n route.AirportNameViaMinute = flight.Vias[0].MinuteWait;\r\n route.Vias = flight.Vias;\r\n route.AirportCodeVias = flight.Vias;\r\n } else {\r\n route.AirportNameVia = null;\r\n route.Vias = [];\r\n route.AirportCodeVias = [];\r\n }\r\n return route;\r\n}\r\n\r\nfunction getTotalNumberOfAvailableBags(basketData) {\r\n let totalNumberOfAvailableBags = 0;\r\n\r\n if (basketData.Passengers && basketData.Passengers.Passengers) {\r\n totalNumberOfAvailableBags = basketData.Passengers.Passengers.reduce((sum, passenger) => {\r\n if (passenger.PassengerTypeValue === \"Adult\" || passenger.PassengerTypeValue === \"Child\") {\r\n return sum += 1\r\n } else {\r\n return sum;\r\n }\r\n },0);\r\n }\r\n\r\n return totalNumberOfAvailableBags;\r\n}","import React from \"react\";\r\n\r\nconst ViewMoreImages = ({ onClick, customClass }) => {\r\n return (\r\n
\r\n View more images\r\n \"View\r\n
\r\n );\r\n};\r\n\r\nexport default ViewMoreImages;\r\n","export default class Rectangle {\r\n\r\n\t_scale = 1;\r\n\t_left = 0;\r\n\t_top = 0;\r\n\t_width = 0;\r\n\t_height = 0;\r\n\r\n\r\n\tconstructor(left, top, width, height) {\r\n\t\tthis._left = left || 0;\r\n\t\tthis._top = top || 0;\r\n\t\tthis._width = width || 0;\r\n\t\tthis._height = height || 0;\r\n\t}\r\n\r\n\tget left() {\r\n\t\treturn this._left;\r\n\t}\r\n\r\n\tget top() {\r\n\t\treturn this._top;\r\n\t}\r\n\r\n\tget x() {\r\n\t\treturn this._left;\r\n\t}\r\n\r\n\tget y() {\r\n\t\treturn this._top;\r\n\t}\r\n\r\n\tget width() {\r\n\t\treturn this._width;\r\n\t}\r\n\r\n\tget height() {\r\n\t\treturn this._height;\r\n\t}\r\n\r\n\tget bottom() {\r\n\t\treturn this._top + this._height;\r\n\t}\r\n\r\n\tget right() {\r\n\t\treturn this._left + this._width;\r\n\t}\r\n\r\n\tset x(value) {\r\n\t\tthis._left = value;\r\n\t}\r\n\r\n\tset y(value) {\r\n\t\tthis._top = value;\r\n\t}\r\n\r\n\tset left(value) {\r\n\t\tthis._left = value;\r\n\t}\r\n\r\n\tset top(value) {\r\n\t\tthis._top = value;\r\n\t}\r\n\r\n\tset width(value) {\r\n\t\tthis._width = value;\r\n\t}\r\n\r\n\tset height(value) {\r\n\t\tthis._height = value;\r\n\t}\r\n\r\n\tset right(value) {\r\n\t\tthis._width = value - this._left;\r\n\t}\r\n\r\n\tset bottom(value) {\r\n\t\tthis._height = value - this._top;\r\n\t}\r\n\r\n\r\n\tcontains(x, y) {\r\n\t\tif(x >= this._left && x < this._left + this._width && y >= this._top && y < this._top + this._height){\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\r\n\tcontainsRect(x, y, w, h) {\r\n\t\tif(x >= this._left && (x + w) <= this._left + this._width && y >= this._top && (y + h) <= this._top + this._height){\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\r\n\tintersects(rect) {\r\n return !(rect.left > this.right || \r\n rect.right < this.left || \r\n rect.top > this.bottom ||\r\n rect.bottom < this.top);\r\n\t}\r\n\r\n\r\n\tunion(toUnion) {\r\n\t\tconst union = new Rectangle();\r\n\t\tunion.left = Math.min(this._left, toUnion.left);\r\n\t\tunion.top = Math.min(this._top, toUnion.top);\r\n\t\tunion.width = Math.max(this._left + this._width, toUnion.left + toUnion.width) - union.left;\r\n\t\tunion.height = Math.max(this._top + this._height, toUnion.top + toUnion.height) - union.top;\r\n\t\treturn union;\r\n\t}\r\n\r\n\r\n\ttoString() {\r\n\t\treturn \"Rectangle left:\"+this._left+\" top:\"+this._top+\" width:\"+this._width+\" height:\"+this._height;\t\r\n\t}\r\n\r\n\tapplyScale(scale) {\r\n\t\tthis._left *= scale;\r\n\t\tthis._top *= scale;\r\n\t\tthis._width *= scale;\r\n\t\tthis._height *= scale;\r\n\t}\r\n\r\n\tstatic intersect(rect1, rect2) {\r\n\t\tconst rectI = new Rectangle();\r\n\t\trectI.left = Math.max(rect1.left, rect2.left);\r\n\t\trectI.top = Math.max(rect1.top, rect2.top);\r\n\t\trectI.right = Math.min(rect1.right, rect2.right);\r\n\t\trectI.bottom = Math.min(rect1.bottom, rect2.bottom);\r\n\t\treturn rectI;\r\n\t}\r\n}\r\n","import React, { Component } from 'react';\r\nimport * as Sentry from '@sentry/browser';\r\nimport { getText } from '../../../../util/dictionary';\r\nimport ContinueManager from '../../../../util/continue-handler';\r\nimport ViewMoreImages from './ViewMoreImages/ViewMoreImages';\r\n\r\nexport default class MiniBasketOverlay extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.updateMiniBasket = this.updateMiniBasket.bind(this);\r\n }\r\n\r\n componentDidCatch(error, errorInfo) {\r\n Sentry.withScope(scope => {\r\n Object.keys(errorInfo).forEach(key => {\r\n scope.setExtra(key, errorInfo[key]);\r\n });\r\n Sentry.captureException(error);\r\n });\r\n }\r\n\r\n updateMiniBasket(event, buttonText) {\r\n event.stopPropagation();\r\n const miniBasketButtons = [...document.querySelectorAll('.MiniBasket_box')];\r\n\r\n for (let i = 0; i < miniBasketButtons.length; i++) {\r\n const textItem = miniBasketButtons[i].querySelector('.MiniBasket_buttonTitle');\r\n if (textItem.innerText.toLowerCase() === buttonText.toLowerCase()) {\r\n miniBasketButtons[i].click();\r\n break;\r\n }\r\n }\r\n }\r\n\r\n continueBookingProcess = (event) => {\r\n event.stopPropagation(); \r\n ContinueManager.handleClick(event);\r\n }\r\n\r\n dictionary = (route) => {\r\n return getText(route, this.props.dictionary);\r\n }\r\n\r\n render() {\r\n const { \r\n carHires,\r\n extras,\r\n flights,\r\n isDesktop,\r\n miniBasketModel,\r\n search,\r\n selectedHotel,\r\n transfer\r\n } = this.props;\r\n\r\n const transferText = carHires ? this.dictionary('Car Hire/Title') : this.dictionary('Transfers/Transfers');\r\n const transferContent = transfer && transfer.toLowerCase() === 'no transfer' && !carHires ? \"No Transfer\" : \"Included\";\r\n const totalPax = search ? parseInt(search.TotalAdults) + parseInt(search.TotalChilds) + parseInt(search.TotalInfants) : 0;\r\n const price = selectedHotel ? selectedHotel.TotalPrice : 0;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
{document.body.dataset.atolText}
\r\n
\r\n {this.dictionary('Booking Details/Currency')}{(price / totalPax).toFixed(0)} /per person\r\n
\r\n
\r\n
this.updateMiniBasket(event, \"Accommodation\")}>\r\n \r\n {moment(selectedHotel.StartDate).format('DD/MM/YY')} - {selectedHotel.Nights} nights\r\n
\r\n\r\n {flights && \r\n
this.updateMiniBasket(event, \"Flights\")}>\r\n \r\n {this.dictionary('Flights/Title')} - {flights.outboundFlight.AirportNameFrom}\r\n
\r\n }\r\n {flights && \r\n
this.updateMiniBasket(event, \"Transfers\")}>\r\n \r\n {transferText} {transferContent}\r\n
\r\n }\r\n {extras && extras.length > 0 &&\r\n
this.updateMiniBasket(event, \"Extras\")}>\r\n \r\n {extras[0].Name} Included\r\n
\r\n }\r\n
\r\n
\r\n
\r\n
\r\n {this.dictionary('Booking Details/Total')}\r\n {this.dictionary('Booking Details/Currency')}{(price).toFixed(0)}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n } \r\n}\r\n","export default class Point {\r\n constructor(x = 0, y = 0) {\r\n this.x = x;\r\n this.y = y;\r\n }\r\n \r\n static distance = function(p1, p2) {\r\n return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));\r\n };\r\n \r\n toString() {\r\n return 'Point x:' + this.x + ' y:' + this.y;\r\n }\r\n }\r\n ","import React, { Component } from \"react\";\r\nimport { Carousel } from \"react-responsive-carousel\";\r\nimport Blazy from '../../../../managers/blazy';\r\nimport delayPageTransitions from '../../../../util/delayPageTransitions';\r\nimport { tabletBreakpoint } from '../../../../constants/breakpoints';\r\nimport Slider from 'react-slick';\r\nimport Lightbox from \"react-images\";\r\nimport Point from '../../../../util/point';\r\nimport SessionDataManager from '../../../../util/storage-manager';\r\nimport { getDictionary } from '../../../../util/dictionary';\r\nimport { handleSearchFlights } from \"../../BookingJourney/MiniBasket/utils/flights\";\r\nimport MiniBasketOverlay from \"./mini-basket-overlay\";\r\nimport Rectangle from '../../../../util/rectangle';\r\nimport ViewMoreImages from \"./ViewMoreImages/ViewMoreImages\";\r\n\r\nconst MAX_DOWN_PRESS_TIME = 1000;\r\nconst MAX_MOVE_DISTANCE = 50;\r\nconst SLIDESHOW_BREAKPOINT = tabletBreakpoint;\r\n\r\nexport default class HeroCarousel extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n images: [],\r\n hasLoaded: false,\r\n showLink: false,\r\n lightboxIsOpen: false,\r\n currentLightboxImage: 0\r\n };\r\n\r\n this.onChange = this.onChange.bind(this);\r\n this.openLightbox = this.openLightbox.bind(this);\r\n this.closeLightbox = this.closeLightbox.bind(this);\r\n this.gotoNext = this.gotoNext.bind(this);\r\n this.gotoPrevious = this.gotoPrevious.bind(this);\r\n this.checkToAllowClick = this.checkToAllowClick.bind(this);\r\n this.getEventData = this.getEventData.bind(this);\r\n this.onPointerDown = this.onPointerDown.bind(this);\r\n }\r\n\r\n componentDidUpdate() {\r\n Blazy.revalidate();\r\n delayPageTransitions();\r\n if (this.state.showAsSlideshow && this.state.images.length >= 3) {\r\n const slickWrapperElement = document.querySelector('.sov-hero-slider-wrapper');\r\n if (slickWrapperElement) {\r\n slickWrapperElement.addEventListener('pointerdown', this.onPointerDown, true);\r\n }\r\n }\r\n }\r\n\r\n componentWillMount() {\r\n let { dataset } = this.props.context;\r\n\r\n const miniBasketData = dataset.miniBasket;\r\n const showMiniBasketOverlay = miniBasketData !== \"null\" && miniBasketData !== undefined;\r\n\r\n if (showMiniBasketOverlay) {\r\n const data = SessionDataManager.getStorage();\r\n const basket = data.basket;\r\n const currentHotel = data.currentHotel;\r\n const returnedSearch = JSON.parse(sessionStorage.getItem('returnedSearch'));\r\n const carHires = JSON.parse(sessionStorage.getItem('carHires'));\r\n const selectedHotel = currentHotel.AccommodationAvailability[currentHotel.activeIndex];\r\n const transfer = selectedHotel.Transfer === \"\" ? \"No Transfer\" : selectedHotel.Transfer;\r\n const searchExtras = selectedHotel.BestRoomOptions[0].Extras.concat(selectedHotel.BestRoomOptions[0].RoomInclusions);\r\n let extras = [];\r\n if (searchExtras) {\r\n searchExtras.forEach(element => {\r\n let extra = {\r\n Name: element,\r\n Comment: null\r\n }\r\n extras.push(extra);\r\n });\r\n }\r\n let flights = null;\r\n if (selectedHotel.OutBoundFlight && selectedHotel.InBoundFlight) flights = handleSearchFlights(selectedHotel);\r\n getDictionary('Mini Basket', (dictionary) => {\r\n this.setState({\r\n basket,\r\n carHires,\r\n dictionary,\r\n extras,\r\n flights,\r\n miniBasketData,\r\n returnedSearch,\r\n selectedHotel,\r\n showMiniBasketOverlay,\r\n transfer\r\n });\r\n\r\n });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n let { dataset } = this.props.context;\r\n const { carouselVersion, imageCaption, showAsSlideshow } = dataset;\r\n let showLink = imageCaption !== \"True\";\r\n let images = [];\r\n let allImages = [...document.querySelectorAll(\"[data-carousel-image]\")];\r\n let foundImages = allImages;\r\n if (carouselVersion) {\r\n foundImages = foundImages.filter(foundImage => foundImage.dataset.carouselVersion === carouselVersion);\r\n }\r\n // ensure image dimensions are the same as the single image implementation in Carousel.cshtml and CarouselWithBanner.cshtml\r\n const { height, width } = this.getImageDimensions();\r\n\r\n let lightboxImages = [];\r\n let reactSlickImages = [];\r\n for (let i = 0; i < foundImages.length; ++i) {\r\n\r\n const imageSrc = foundImages[i].getAttribute(\"data-carousel-image\") || '';\r\n const queryDelimiter = imageSrc.indexOf('?') > -1 ? '&' : '?';\r\n foundImages[i].style.display = 'none';\r\n images.push({\r\n imageContent: {\r\n title: foundImages[i].dataset.carouselTitle,\r\n subtitle: foundImages[i].dataset.carouselSubtitle,\r\n summary: foundImages[i].dataset.carouselSummary,\r\n btnText: foundImages[i].dataset.carouselBtn,\r\n url: foundImages[i].dataset.carouselUrl,\r\n altText: foundImages[i].dataset.carouselImageAlt,\r\n footerText: foundImages[i].dataset.carouselFooter,\r\n linkText: foundImages[i].dataset.carouselLinkText,\r\n linkUrl: foundImages[i].dataset.carouselLinkUrl,\r\n focalPointX: foundImages[i].dataset.carouselFocalPointX,\r\n focalPointY: foundImages[i].dataset.carouselFocalPointY,\r\n },\r\n hasContent: foundImages[i].dataset.carouselHasContent,\r\n backgroundImage: imageSrc + queryDelimiter + \"h=\" + height + \"&w=\" + width,\r\n placholderImage: imageSrc + queryDelimiter + \"mw=50\",\r\n isHalfHeight: foundImages[i].getAttribute(\"data-half\") === \"True\",\r\n isBigger: foundImages[i].getAttribute(\"data-bigger\") === \"True\",\r\n isMidSize: foundImages[i].getAttribute(\"data-mid\") === \"True\",\r\n height,\r\n width,\r\n });\r\n\r\n const lightboxImageObject = {\r\n src: `${imageSrc}${queryDelimiter}h=${height * 2}&w=${width * 2}`,\r\n alt: foundImages[i].dataset.carouselImageAlt,\r\n };\r\n const slickImageObject = {\r\n ...lightboxImageObject,\r\n src: `${imageSrc}${queryDelimiter}h=${height}&w=${width}`,\r\n }\r\n reactSlickImages.push(slickImageObject);\r\n lightboxImages.push(lightboxImageObject);\r\n }\r\n\r\n this.setState({\r\n showAsSlideshow: showAsSlideshow === 'True',\r\n images,\r\n showLink,\r\n lightboxImages,\r\n reactSlickImages,\r\n });\r\n\r\n setTimeout(() => {\r\n this.setState({ hasLoaded: true });\r\n }, 500);\r\n }\r\n\r\n getImageDimensions = () => {\r\n // get carousel dimensions\r\n let { dataset, clientHeight: height, clientWidth: width } = this.props.context;\r\n const { showAsSlideshow } = dataset;\r\n const { devicePixelRatio, innerWidth } = window;\r\n\r\n // If we can see the next and previous images (image width is halved)\r\n if (innerWidth > SLIDESHOW_BREAKPOINT && showAsSlideshow === 'True') {\r\n width /= 2;\r\n }\r\n\r\n // If we're on a high pixel ratio device (e.g. mobile)\r\n if (devicePixelRatio >= 1) {\r\n width = width * devicePixelRatio;\r\n height = height * devicePixelRatio;\r\n }\r\n\r\n return {\r\n width,\r\n height,\r\n }\r\n }\r\n\r\n openLightbox(event) {\r\n const miniBasketElement = document.querySelector('.MiniBasketOverlay');\r\n if (miniBasketElement) {\r\n const miniBasketBox = miniBasketElement.getBoundingClientRect();\r\n let bounds = new Rectangle(miniBasketBox.left, miniBasketBox.top, miniBasketBox.width, miniBasketBox.height);\r\n const isClickWithinMiniBasketOverlay = bounds.contains(event.clientX, event.clientY);\r\n\r\n if ((this.state.showMiniBasketOverlay && !isClickWithinMiniBasketOverlay && this.checkToAllowClick(event)) || (!this.state.showMiniBasketOverlay && this.checkToAllowClick(event))) {\r\n this.setState({ lightboxIsOpen: true });\r\n }\r\n }\r\n }\r\n\r\n getEventData(event) {\r\n return {\r\n point: new Point(event.screenX, event.screenY),\r\n time: new Date().getTime(),\r\n };\r\n }\r\n\r\n onPointerDown(event) {\r\n this.downData = this.getEventData(event);\r\n }\r\n\r\n checkToAllowClick(event) {\r\n let allowed = true;\r\n if (this.downData) {\r\n const eventData = this.getEventData(event);\r\n if (eventData.time > this.downData.time + MAX_DOWN_PRESS_TIME) {\r\n allowed = false;\r\n }\r\n\r\n if (Point.distance(eventData.point, this.downData.point) > MAX_MOVE_DISTANCE) {\r\n allowed = false;\r\n }\r\n\r\n if (event.target.classList.contains(\"slick-arrow\")) {\r\n allowed = false;\r\n }\r\n }\r\n\r\n this.downData = undefined;\r\n return allowed;\r\n }\r\n\r\n closeLightbox() {\r\n this.setState({ lightboxIsOpen: false });\r\n }\r\n\r\n gotoPrevious() {\r\n this.setState({\r\n currentLightboxImage: this.state.currentLightboxImage - 1\r\n });\r\n }\r\n\r\n gotoNext() {\r\n this.setState({\r\n currentLightboxImage: this.state.currentLightboxImage + 1\r\n });\r\n }\r\n\r\n\r\n onChange() {\r\n setTimeout(() => {\r\n Blazy.revalidate();\r\n delayPageTransitions();\r\n }, 500);\r\n }\r\n\r\n\r\n render() {\r\n const { context: { dataset }} = this.props;\r\n const {\r\n lightboxImages,\r\n lightboxIsOpen,\r\n currentLightboxImage,\r\n dictionary,\r\n showAsSlideshow,\r\n miniBasketData,\r\n selectedHotel,\r\n flights,\r\n extras,\r\n transfer,\r\n carHires,\r\n returnedSearch,\r\n showMiniBasketOverlay,\r\n } = this.state;\r\n\r\n let array = [];\r\n let reactSlickArray = [];\r\n let divStyle = {\r\n top: window.scrollTop + 'px'\r\n };\r\n\r\n let visiableClass = this.state.hasLoaded ? \"loaded\" : \"\";\r\n\r\n for (let i = 0; i < this.state.images.length; i++) {\r\n // class for setting height: 500 or 250\r\n let imageClass = \"hero_default-image\";\r\n let imageBg = this.state.images[i].backgroundImage;\r\n let placholderImage = this.state.images[i].placholderImage;\r\n let altText = \"Carousel image\";\r\n if (this.state.images[i].imageContent.altText != \"\") {\r\n altText = this.state.images[i].imageContent.altText;\r\n }\r\n\r\n if (this.state.images[i].isHalfHeight) {\r\n imageClass = \"b-lazy no-logo hero_250-image\";\r\n } else if (this.state.images[i].isBigger) {\r\n imageClass = \"b-lazy no-logo hero_500-image\";\r\n } else if (this.state.images[i].isMidSize) {\r\n imageClass = \"b-lazy no-logo hero_510-image\";\r\n }\r\n\r\n if (this.state.images[i].hasContent) {\r\n imageClass = \"b-lazy no-logo hero_banner-image\";\r\n }\r\n\r\n const focalPointX = this.state.images[i].imageContent.focalPointX;\r\n const focalPointY = this.state.images[i].imageContent.focalPointY;\r\n const focalPointString = `${focalPointX}% ${focalPointY}%`;\r\n const { src } = this.state.reactSlickImages[i]\r\n const { height, width } = this.state.images[i]\r\n if (showMiniBasketOverlay) {\r\n reactSlickArray.push(\r\n
\r\n \r\n
\r\n );\r\n } else {\r\n reactSlickArray.push(\r\n
\r\n \r\n
\r\n );\r\n }\r\n array.push(\r\n
\r\n
\r\n
\r\n {dataset && dataset.feefoUrl &&\r\n
\r\n \"Feefo\r\n
\r\n }\r\n {this.state.images[i].hasContent && (\r\n
\r\n
\r\n
\r\n {\r\n this.state.images[i]\r\n .imageContent.summary\r\n }\r\n
\r\n {this.state.images[i].imageContent.url && this.state.images[i].imageContent.btnText && (\r\n \r\n {this.state.images[i].imageContent.btnText}\r\n \r\n \r\n )}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n const slideshowSettings = {\r\n dots: true,\r\n infinite: true,\r\n initialSlide: 0,\r\n speed: 500,\r\n slidesToScroll: 1,\r\n slidesToShow: 2,\r\n arrows: true,\r\n dots: true,\r\n centerMode: true,\r\n className: `sov-hero-slider ${showMiniBasketOverlay ? \"heroCarousel_hotelContainer\" : \"\"}`,\r\n accessibility: true,\r\n draggable: true,\r\n useCSS: true,\r\n responsive: [\r\n {\r\n breakpoint: SLIDESHOW_BREAKPOINT,\r\n settings: {\r\n centerPadding: '0%',\r\n slidesToShow: 1,\r\n centerMode: false,\r\n arrows: false\r\n }\r\n }\r\n ],\r\n afterChange: this.onChange,\r\n beforeChange: this.onChange\r\n };\r\n return (\r\n
\r\n
\r\n
\r\n {(array.length > 0 && !showAsSlideshow ||\r\n array.length <= 3 && showAsSlideshow) && (\r\n 1 ? true : false}\r\n showStatus={false}\r\n emulateTouch={false}\r\n infiniteLoop={true}\r\n swipeScrollTolerance={100}\r\n onChange={this.onChange}\r\n className={`${showMiniBasketOverlay ? \"heroCarousel_hotelContainer\" : \"\"}`}\r\n >\r\n {array}\r\n \r\n )}\r\n {array.length > 3 && showAsSlideshow && (\r\n
\r\n
this.openLightbox(event)}>\r\n \r\n {reactSlickArray}\r\n \r\n {\r\n /* Desktop minibasket under carousel */\r\n showMiniBasketOverlay &&\r\n \r\n }\r\n \r\n
\r\n
\r\n )}\r\n {/* Mobile minibasket under carousel */}\r\n {showMiniBasketOverlay &&\r\n \r\n }\r\n this.setState({ lightboxIsOpen: !this.state.lightboxIsOpen })}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n"],"sourceRoot":""}