{"version":3,"file":"Hotel.build.js","mappings":"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","sources":["webpack:///./js/modules/hotel-mapbox.js","webpack:///./js/entries/hotel.js","webpack:///./js/knockout-extensions/knockout.spinner.js","webpack:///./js/modules/hotel-page-nav.js","webpack:///./js/utils/constants.js","webpack:///./js/utils/formatters.js","webpack:///./js/utils/ha-mytriplogic-functions.js","webpack:///./js/utils/ha-search-single-result-functions.js","webpack:///../../node_modules/spin/spin.js","webpack:///external script [\"https://cdn.trustyou.com/v2/hotel/widget-ui/shared/iframeResizer/4.3.2/iframeResizer.min.js\",\"iFrameResize\"]","webpack:///../../node_modules/@babel/runtime-corejs3/core-js-stable/instance/filter.js","webpack:///../../node_modules/@babel/runtime-corejs3/core-js-stable/parse-float.js","webpack:///../../node_modules/@babel/runtime-corejs3/core-js/instance/replace-all.js","webpack:///../../node_modules/core-js-pure/actual/instance/replace-all.js","webpack:///../../node_modules/core-js-pure/es/array/virtual/filter.js","webpack:///../../node_modules/core-js-pure/es/instance/filter.js","webpack:///../../node_modules/core-js-pure/es/instance/replace-all.js","webpack:///../../node_modules/core-js-pure/es/parse-float.js","webpack:///../../node_modules/core-js-pure/es/string/virtual/replace-all.js","webpack:///../../node_modules/core-js-pure/features/instance/replace-all.js","webpack:///../../node_modules/core-js-pure/full/instance/replace-all.js","webpack:///../../node_modules/core-js-pure/internals/get-substitution.js","webpack:///../../node_modules/core-js-pure/internals/number-parse-float.js","webpack:///../../node_modules/core-js-pure/internals/regexp-flags.js","webpack:///../../node_modules/core-js-pure/internals/regexp-get-flags.js","webpack:///../../node_modules/core-js-pure/modules/es.array.filter.js","webpack:///../../node_modules/core-js-pure/modules/es.parse-float.js","webpack:///../../node_modules/core-js-pure/modules/es.string.replace-all.js","webpack:///../../node_modules/core-js-pure/modules/esnext.string.replace-all.js","webpack:///../../node_modules/core-js-pure/stable/instance/filter.js","webpack:///../../node_modules/core-js-pure/stable/instance/replace-all.js","webpack:///../../node_modules/core-js-pure/stable/parse-float.js"],"sourcesContent":["//import mapboxgl from 'mapbox-gl';\r\n//import mapboxSdk from '@mapbox/mapbox-sdk';\r\n//import mapboxDirections from '@mapbox/mapbox-sdk/services/directions';\r\n//\r\n//import { CreateMap, InitMapboxStyleSwitch } from 'SrcJS/maps/mapbox-custom';\r\nimport { LazyInitializer } from 'Utils/LazyInitializer';\r\n\r\nvar map;\r\nvar myLngLat;\r\nvar poiMarker;\r\nvar markerWidth = 35, markerHeight = 47;\r\n\r\nfunction hasMapContainer() {\r\n let result = (document.querySelector('#map_canvas_hotel_hotel') != null);\r\n console.log('>>> hasMapContainer: ' + result);\r\n return result;\r\n}\r\nvar hasMapDependencies = hasMapContainer();\r\nvar mapboxgl = undefined;\r\nvar mapboxSdk = undefined;\r\nvar mapboxDirections = undefined;\r\nvar CreateMap = undefined;\r\nvar InitMapboxStyleSwitch = undefined;\r\n\r\nasync function getComponents() {\r\n /* Dynamic Imports: https://webpack.js.org/guides/code-splitting/#dynamic-imports\r\n * The reason we need default is that since webpack 4, when importing a CommonJS module, \r\n * the import will no longer resolve to the value of module.exports, \r\n * it will instead create an artificial namespace object for the CommonJS module.\r\n * For more information on the reason behind this, read webpack 4: import() and CommonJs.\r\n * https://medium.com/webpack/webpack-4-import-and-commonjs-d619d626b655\r\n */\r\n const mapboxgl = await import('mapbox-gl');\r\n const { default: mapboxSdk } = await import('@mapbox/mapbox-sdk'); // Target: transpiled-ESM (__esModule)\r\n const { default: mapboxDirections } = await import('@mapbox/mapbox-sdk/services/directions'); // Target: transpiled-ESM (__esModule)\r\n const { CreateMap, InitMapboxStyleSwitch } = await import('SrcJS/maps/mapbox-custom');\r\n\r\n return {\r\n mapboxgl,\r\n mapboxSdk,\r\n mapboxDirections,\r\n CreateMap, InitMapboxStyleSwitch\r\n }\r\n}\r\n\r\n\r\nfunction createMarker(markerLngLat, iconUrl, popupContent) {\r\n var marker = null;\r\n\r\n if (!markerLngLat)\r\n return marker;\r\n\r\n if (iconUrl && iconUrl != \"\") {\r\n // create a DOM element for the marker\r\n var el = document.createElement('img');\r\n el.src = iconUrl;\r\n el.className = 'marker';\r\n marker = new mapboxgl.Marker({ element: el, anchor: 'bottom' });\r\n } else {\r\n marker = new mapboxgl.Marker({ color: '#3FB1CE' });\r\n }\r\n marker.setLngLat(markerLngLat);\r\n\r\n if (popupContent && popupContent != \"\") {\r\n // create the popup\r\n var popup = new mapboxgl.Popup({\r\n //offset: [0, 0],\r\n //anchor: 'top-left',\r\n //className: 'marker-popup',\r\n closeOnClick: false,\r\n }).setHTML(popupContent);\r\n // sets a popup on this marker\r\n marker.setPopup(popup);\r\n }\r\n\r\n // add marker to map\r\n marker.addTo(map);\r\n return marker;\r\n}\r\n\r\nfunction initialize() {\r\n var bounds = new mapboxgl.LngLatBounds();\r\n\r\n var options = {\r\n container: 'map_canvas_hotel_hotel', // HTML container id\r\n style: AppData.Mapbox.Style, //'mapbox://styles/mapbox/streets-v11', // style URL\r\n //center: [0.0, 39.0], // starting position as [lng, lat]\r\n //zoom: 5,\r\n scrollZoom: false,\r\n //pitchWithRotate: true,\r\n //touchZoomRotate: false\r\n };\r\n map = CreateMap(options);\r\n global.map = map;\r\n map.on(\"load\", function () {\r\n InitMapboxStyleSwitch(map);\r\n });\r\n\r\n //directionsDisplay = new google.maps.DirectionsRenderer({suppressMarkers: true});\r\n //directionsService = new google.maps.DirectionsService();\r\n //directionsDisplay.setMap(map);\r\n\r\n // Markers\r\n myLngLat = new mapboxgl.LngLat(AppData.HotelMapbox.txtLongitude, AppData.HotelMapbox.txtLatitude);\r\n\r\n bounds.extend(myLngLat);\r\n\r\n //map.setZoom(10);\r\n //map.setCenter(myLngLat);\r\n map.easeTo({\r\n center: myLngLat,\r\n zoom: 10\r\n });\r\n\r\n var beachMarker = createMarker(myLngLat, AppData.HotelMapbox.beachMarkerImg);\r\n}\r\nfunction map_trigger() {\r\n map.resize();\r\n var myLngLat = new mapboxgl.LngLat(AppData.HotelMapbox.txtLongitude, AppData.HotelMapbox.txtLatitude);\r\n //map.setZoom(10);\r\n //map.setCenter(myLngLat);\r\n map.jumpTo({\r\n center: myLngLat,\r\n zoom: 10\r\n });\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar defaultStart = [AppData.HotelMapbox.txtLongitude, AppData.HotelMapbox.txtLatitude];\r\n\r\nfunction initializeDirections() {\r\n // More deatils here https://github.com/mapbox/mapbox-sdk-js/blob/master/docs/services.md#directions\r\n // Example here https://docs.mapbox.com/help/tutorials/getting-started-directions-api/\r\n var mapboxClient = mapboxSdk({ accessToken: AppData.Mapbox.AccessToken });\r\n //var directionsClient = mapboxClient.directions;\r\n var directionsClient = mapboxDirections(mapboxClient);\r\n\r\n // initialize the map canvas to interact with later\r\n var canvas = map.getCanvasContainer();\r\n\r\n var start = defaultStart;\r\n // create a function to make a directions request\r\n function getRoute(end, travelMode) {\r\n // make directions request using cycling profile\r\n // an arbitrary start will always be the same\r\n // only the end or destination will change\r\n var start = defaultStart;\r\n\r\n var req = directionsClient.getDirections({\r\n profile: travelMode, // \"driving-traffic\" | \"driving\" | \"walking\" | \"cycling\" (optional, default \"driving\")\r\n waypoints: [{\r\n coordinates: start,\r\n //approach: 'unrestricted'\r\n }, {\r\n coordinates: end\r\n }\r\n ],\r\n geometries: \"geojson\",\r\n roundaboutExits: true,\r\n steps: true\r\n });\r\n req.send().then(response => {\r\n var flgUpdated = false;\r\n if (response && response.body) {\r\n flgUpdated = updateRouteDirections(response.body);\r\n }\r\n if (!flgUpdated) {\r\n //clean up 'route' source if smth went wrong\r\n updateRouteSource([]);\r\n }\r\n });\r\n };\r\n\r\n function updateRouteDirections(response) {\r\n let result = false;\r\n if (!map) {\r\n console.log('updateRouteDirections: Nofound map!');\r\n return result;\r\n }\r\n if (!response)\r\n return result;\r\n if (!response.code || response.code == '' || response.code.toLowerCase() != \"ok\") {\r\n console.log('updateRouteDirections: Invalid responce.code');\r\n return result;\r\n }\r\n\r\n if (!response.routes || response.routes.length < 1) {\r\n console.log('updateRouteDirections: Nofound routes');\r\n return result;\r\n }\r\n\r\n var data = response.routes[0];\r\n var route = data.geometry.coordinates;\r\n updateRouteSource(route);\r\n result = true;\r\n return result;\r\n };\r\n\r\n function updateRouteSource(route) {\r\n var geojson = {\r\n \"type\": \"Feature\",\r\n \"properties\": {},\r\n \"geometry\": {\r\n \"type\": \"LineString\",\r\n \"coordinates\": route\r\n }\r\n };\r\n\r\n if (map.getSource('route')) {\r\n // if the route already exists on the map, we'll reset it using setData\r\n map.getSource('route').setData(geojson);\r\n } else {\r\n // otherwise, we'll make a new request\r\n map.addLayer({\r\n \"id\": \"route\",\r\n \"type\": \"line\",\r\n \"source\": {\r\n \"type\": \"geojson\",\r\n \"data\": {\r\n \"type\": \"Feature\",\r\n \"properties\": {},\r\n \"geometry\": {\r\n \"type\": \"LineString\",\r\n \"coordinates\": geojson\r\n }\r\n }\r\n },\r\n \"layout\": {\r\n \"line-join\": \"round\",\r\n \"line-cap\": \"round\"\r\n },\r\n \"paint\": {\r\n \"line-color\": \"#3887be\",\r\n //\"line-width\": 5,\r\n 'line-width': {\r\n base: 2,\r\n stops: [[12, 3], [22, 12]]\r\n },\r\n \"line-opacity\": 0.75\r\n }\r\n });\r\n };\r\n };\r\n\r\n map.on('load', function () {\r\n updateRouteSource([]);\r\n\r\n });\r\n\r\n $(\".distance-item-geo\").click(function () {\r\n var lat = parseFloat($(this).attr(\"data-latitude\"));\r\n var lng = parseFloat($(this).attr(\"data-longitude\"));\r\n var poiCoords = [lng, lat];\r\n var poiLngLat = new mapboxgl.LngLat(lng, lat);\r\n var poiTitle = $(this).html();\r\n var myTravelMode = $(this).attr(\"data-travelmode\").toLowerCase();\r\n //console.log(\"myTravelMode: \" + myTravelMode);\r\n //getRoute(poiCoords, myTravelMode);\r\n\r\n if (poiMarker) {\r\n poiMarker.remove();\r\n poiMarker = null;\r\n }\r\n var poiContent = \"
\" + poiTitle + \"
\"\r\n //poiMarker = createMarker(poiLngLat, \"@Html.AssetImgUrl(\"googlekort_marker.png\", true)\", poiContent);\r\n poiMarker = createMarker(poiLngLat, \"\", poiContent);\r\n if (poiMarker) {\r\n var bounds = new mapboxgl.LngLatBounds();\r\n bounds.extend(myLngLat);\r\n bounds.extend(poiLngLat);\r\n var padding = 12;\r\n var paddingX = markerWidth / 2 + padding;\r\n map.fitBounds(bounds, {\r\n padding: { top: markerHeight + padding, bottom: padding, left: paddingX, right: paddingX }\r\n });\r\n\r\n poiMarker.togglePopup();\r\n setTimeout(function () {\r\n getRoute(poiCoords, myTravelMode);\r\n }, 250);\r\n }\r\n\r\n // scroll to map?\r\n var elementTop = $(\"#map_canvas_hotel_hotel\").offset().top;\r\n var viewportTop = $(window).scrollTop();\r\n\r\n //console.log(\"elementTop: \" + elementTop + \"viewportTop: \" + viewportTop);\r\n if (elementTop < viewportTop) {\r\n // get top menu height\r\n var scrollOffset = -56;\r\n if ($(\".sticky-wrapper.is-sticky\").length == 1) {\r\n scrollOffset = ($(\".sticky-wrapper.is-sticky\").height() * -1) + 1;\r\n }\r\n pageScrollTo(\"#map_canvas_hotel_hotel\", scrollOffset);\r\n }\r\n\r\n });\r\n}\r\n\r\nAppLoader.ready(async function () {\r\n if (hasMapDependencies) {\r\n let init_map = async function () {\r\n let components = await getComponents();\r\n mapboxgl = components.mapboxgl;\r\n mapboxSdk = components.mapboxSdk;\r\n mapboxDirections = components.mapboxDirections;\r\n CreateMap = components.CreateMap;\r\n InitMapboxStyleSwitch = components.InitMapboxStyleSwitch;\r\n\r\n initialize();\r\n initializeDirections();\r\n\r\n return true;\r\n }\r\n \r\n let mapElement = document.querySelector('#map_canvas_hotel_hotel');\r\n let lazyInitializer = new LazyInitializer(mapElement, init_map);\r\n //lazyInitializer.init().then((result) => {\r\n // console.log('>>> lazyInitializer >> Initialize Map and Directions done', result);\r\n //});\r\n lazyInitializer.init();\r\n }\r\n});\r\n\r\n//AppLoader.setReady();\r\n","import 'appstart';\r\n//import 'SCSSEntries/hotel.scss';\r\nimport 'Vendors/knockout/knockout-pack';\r\nimport { GetBreakpointWidth, GetBreakpointHeight } from 'Utils/globals-bp';\r\n//import { isTouch, isApplePie, is_iPhone, IsPortraitMode, IsLandscapeMode, DetectIE } from 'Utils/device-utils';\r\nimport { showSection, hideSection } from 'Utils/section';\r\nimport { scrollToHotelPrices } from 'Utils/ha-search-single-result-functions';\r\nimport { SetHotelRoomsTooltips } from 'Utils/ha-mytriplogic-functions';\r\n\r\nglobal.SetHotelRoomsTooltips = SetHotelRoomsTooltips;\r\n\r\n//global.isTouch = /Android|webOS|iPhone|iPad|iPod|BlackBerry|windows phone|WindowsPhone/i.test(navigator.userAgent.toLowerCase());\r\n//global.isApplePie = /iPhone|iPad|iPod/i.test(navigator.userAgent.toLowerCase());\r\n//global.is_iPhone = /iPhone/i.test(navigator.userAgent.toLowerCase());\r\n\r\nimport 'Utils/formatters';\r\n\r\n\r\nimport 'SrcJS/knockout-extensions/knockout.spinner';\r\n\r\nimport 'Utils/mere.js';\r\n//import 'Utils/slider.js'; //??? //2021-06-14 Disabled\r\n//import 'Modules/map-container';\r\nimport 'Modules/hotel-mapbox';\r\nimport 'Modules/hotel-page-nav';\r\n\r\n//import(/* webpackChunkName: \"searchbar-module\" */ 'searchbar');\r\nimport(/* webpackChunkName: \"search-single-result-module\" */ 'search-single-result');\r\nimport(/* webpackChunkName: \"sections-module\" */ 'Modules/sections/lowCostCalendar.js'); // temp test lowCostCalendar\r\nimport(/* webpackChunkName: \"sections-module\" */ 'Modules/sections/hotelReviews_TrustYou.js');\r\nimport(/* webpackChunkName: \"sections-module\" */ 'Modules/sections/hotelList.js');\r\n\r\n\r\n\r\nAppLoader.ready(function () {\r\n let moreLink = $('#beskrivelse #moreLink').html();\r\n let lessLink = $('#beskrivelse #lessLink').html();\r\n\r\n $('.hotel-description .readmoreHeight').readmore({\r\n selector: '.hotel-description .readmoreHeight',\r\n speed: 100,\r\n collapsedHeight: 48,\r\n heightMargin: 26,\r\n embedCSS: false,\r\n //moreLink: ''+ AppData.Translations[\"hotelpage.read-more\"] + '',\r\n //lessLink: '' + AppData.Translations[\"hotelpage.show-less\"] + ''\r\n moreLink: moreLink,\r\n lessLink: lessLink,\r\n }).removeClass('readmore-placeholder');\r\n});\r\n\r\nAppLoader.ready(function () {\r\n let refresh_map = function () {\r\n AppLoader.raf(function () {\r\n if (map && typeof map.resize == \"function\") {\r\n map.resize();\r\n }\r\n });\r\n };\r\n\r\n\r\n //$('.panel-heading[data-target=\"#info-and-facts-panel-body\"]').collapse();\r\n //$('#info-and-facts-panel-body').on('shown.bs.collapse', function () {\r\n // if (map && typeof map.resize == \"function\") {\r\n // map.resize();\r\n // }\r\n //});\r\n // 2019-12-30 :BootStrap: event does not rise when 'bs-scripts.min.js' script's tag is defined early \r\n //$('#info-and-facts-panel-body').on('show.bs.collapse', function () {\r\n // refresh_map();\r\n //});\r\n $('.panel-heading[data-target=\"#info-and-facts-panel-body\"]').on('click', function (e) {\r\n refresh_map();\r\n });\r\n\r\n $('.info-and-facts .attractions-text.readmoreHeight').readmore({\r\n selector: '.info-and-facts .attractions-text.readmoreHeight',\r\n speed: 100,\r\n collapsedHeight: 180,\r\n heightMargin: 24,\r\n embedCSS: false,\r\n moreLink: '' + AppData.Translations[\"hotelpage.show-more\"] + '',\r\n lessLink: '' + AppData.Translations[\"hotelpage.show-less\"] + '',\r\n afterToggle: function (trigger, element, expanded) {\r\n //if (expanded) {\r\n if (GetBreakpointWidth() >= 1024) {\r\n refresh_map();\r\n }\r\n //}\r\n }\r\n }).removeClass('readmore-placeholder');\r\n});\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n//**** show ******\r\n\r\nvar ShowLessRooms = function () {\r\n var minRoomTypes = AppData.HotelShow.MinRoomTypesOnPage / 2;\r\n $('.room-types').each(function (i, e) {\r\n $(e).find('.room-fix').each(function (j, r) {\r\n if (j > (minRoomTypes - 1))\r\n $(r).hide();\r\n else\r\n $(r).show();\r\n });\r\n });\r\n\r\n $('.room-types').find('.show-more-rooms').show();\r\n $('.room-types').find('.show-less-rooms').hide();\r\n\r\n if ($('.room-types').find('.room-fix').length <= minRoomTypes) {\r\n $('.room-types').find('.more-room-types').hide();\r\n $('.room-types').find('.show-less-rooms').hide();\r\n } else {\r\n $('.room-types').find('.more-room-types').show();\r\n }\r\n}\r\n\r\n\r\nvar ShowMoreRooms = function () {\r\n $('.room-types').each(function (i, e) {\r\n $(e).find('.room-fix').each(function (j, r) {\r\n $(r).show();\r\n });\r\n });\r\n $('.room-types').find('.show-more-rooms').hide();\r\n $('.room-types').find('.show-less-rooms').show();\r\n}\r\n\r\nvar serializedRoomTypes = AppData.HotelShow.SerializedRoomTypes;\r\n\r\nAppLoader.ready(function () {\r\n\r\n ShowLessRooms();\r\n //searchViewModel.UpdateFromDataRoomTypes(serializedRoomTypes);\r\n\r\n\r\n $(\".room-details\").click(function () {\r\n $(this).parent().find(\".room-imageanddescription\").toggle();\r\n });\r\n\r\n $(\".price-split, .hotel-packages\").hide();\r\n $(\".toggle-price-examples\").on(\"click\", function (e) {\r\n var el = $(this);\r\n //el.text() == el.data(\"text-swap\") ? el.text(el.data(\"text-original\")) : el.text(el.data(\"text-swap\"));\r\n if (el.text() == el.attr(\"data-text-swap\")) {\r\n el.text(el.attr(\"data-text-original\"));\r\n } else {\r\n if (!el.attr(\"data-text-original\"))\r\n el.attr(\"data-text-original\", el.text() ? el.text().trim() : '   ');\r\n el.text(el.attr(\"data-text-swap\"));\r\n }\r\n\r\n $(\".price-split, .hotel-packages\").slideToggle(500);\r\n e.preventDefault();\r\n });\r\n\r\n});\r\n\r\n\r\nAppLoader.ready(function () {\r\n\r\n let c = 0;\r\n $('.facilities .readmoreHeight').each(function () {\r\n let $this = $(this);\r\n let id = $this.attr('id');\r\n if (!id || id == '') {\r\n id = 'facilities__readmoreHeight-' + c;\r\n $this.attr('id', id);\r\n c++;\r\n }\r\n let startOpen= !!$this.data('start-expanded');\r\n $this.readmore({\r\n //selector: '.facilities .readmoreHeight',\r\n selector: '#' + id,\r\n speed: 100,\r\n //collapsedHeight: 264,\r\n heightMargin: 24,\r\n embedCSS: false,\r\n startOpen: startOpen,\r\n moreLink: '' + AppData.Translations[\"hotelpage.show-more\"] + '',\r\n lessLink: '' + AppData.Translations[\"hotelpage.show-less\"] + ''\r\n }).removeClass('readmore-placeholder');\r\n });\r\n\r\n var update_readmore_inside_panel = function (panel_heading) {\r\n let target = $(panel_heading).attr('data-target');\r\n if (target && target.length > 0) {\r\n let $target = $(target);\r\n if ($target && $target.length > 0) {\r\n setTimeout(function () {\r\n let $readmore = $target.find('[data-readmore], .readmoreHeight');\r\n $readmore.each(function () {\r\n let $current = $(this);\r\n //if ($current.css('max-height') == 'none') {\r\n // let maxHeight = $current.data('readmoreHeight--max-height') || '';\r\n // $current.css('max-height', maxHeight);\r\n //}\r\n $current.readmore('update');\r\n });\r\n }, 300);\r\n }\r\n }\r\n };\r\n $(window).resize(function () {\r\n $('.panel-heading').each(function () {\r\n update_readmore_inside_panel(this);\r\n });\r\n });\r\n $('.panel-heading').on('click', function (e) {\r\n update_readmore_inside_panel(this);\r\n });\r\n});\r\n\r\n\r\nAppLoader.ready(function () {\r\n $('#prices-sticker-button').on('click', function (e) {\r\n if (typeof searchViewModel != \"undefined\"\r\n && searchViewModel.ValidateSearchConditions_PageID(false)\r\n && searchViewModel.ValidateSearchConditions_DepartureAirportCode(false)\r\n && searchViewModel.ValidateSearchConditions_Rooms(false)\r\n && searchViewModel.HasDates()) {\r\n scrollToHotelPrices(0, 500);\r\n e.preventDefault();\r\n }\r\n });\r\n});\r\n\r\n\r\n\r\n\r\nfunction pageScrollTo(element, offset) {\r\n let $elm = $(element);\r\n if ($elm.length > 0) {\r\n if (GetBreakpointWidth() < 768) {\r\n let expand_panel = function ($panel) {\r\n if ($panel.length > 0) {\r\n // 2019-12-28 :Bootstrap: correct way but throws exception 'collapse is not a function'\r\n //let $panel_heading = $panel.find('.panel-heading[data-toggle=\"collapse\"]');\r\n //if($panel_heading.length > 0 && typeof $panel_heading.collapse === 'function'){\r\n // $panel_heading.collapse('show');\r\n //}\r\n // small workaround to make this works\r\n $panel_heading = $panel.find('.panel-heading[data-toggle=\"collapse\"]').not('.panel-heading[aria-expanded=\"true\"]');\r\n if ($panel_heading.length > 0) {\r\n $panel_heading.trigger('click');\r\n }\r\n }\r\n }\r\n expand_panel($elm.closest('.panel, .panel-sm-down'));\r\n expand_panel($elm.find('.panel, .panel-sm-down'));\r\n }\r\n\r\n var scrollto = $elm.first().offset().top + offset;\r\n $(\"html, body\").delay(100).animate({ scrollTop: scrollto }, 1000);\r\n }\r\n};\r\nglobal.pageScrollTo = pageScrollTo;\r\n\r\n\r\nAppLoader.ready(function () {\r\n let fixedWrapper = '.prices-sticker-wrapper.sticked-bottom-md-down';\r\n let pricesButtonHolder = '.prices-sticker-container';\r\n let checkoutButtonHolder = '.checkout-sticker-container';\r\n\r\n var isUsed = function () {\r\n return GetBreakpointWidth() < 768;\r\n };\r\n\r\n var has_search_result = function() {\r\n return !!(searchViewModel\r\n // // ko-visible wizard\r\n // && !searchViewModel.SearchInProgress() \r\n // && !searchViewModel.FlightSearchInProgress() \r\n // && searchViewModel.RetrievingDataReady() \r\n // && searchViewModel.HasDates() \r\n // && searchViewModel.SingleHotelResult() \r\n // && !searchViewModel.HasHotelRequestPrice()\r\n\r\n // ko-visible\r\n && !searchViewModel.SearchInProgress()\r\n && searchViewModel.RetrievingDataReady()\r\n\r\n // ko-if\r\n && searchViewModel.HasDepartureAirportCode()\r\n && searchViewModel.HasDates()\r\n && searchViewModel.SingleHotelResult()\r\n && !searchViewModel.HasHotelRequestPrice()\r\n\r\n // ko-visible\r\n && searchViewModel.IsSameWithLastSearchConditions(true)\r\n );\r\n };\r\n\r\n\r\n var handler_Resize = function () {\r\n let $fixedWrapper = $(fixedWrapper);\r\n if (!$fixedWrapper && $fixedWrapper.length <= 0) return;\r\n\r\n if (isUsed()) {\r\n $fixedWrapper.show();\r\n } else {\r\n $fixedWrapper.hide();\r\n }\r\n \r\n };\r\n\r\n var handler_Scroll = function () {\r\n let $fixedWrapper = $(fixedWrapper);\r\n if (!$fixedWrapper && $fixedWrapper.length <= 0) return;\r\n\r\n let $pricesButtonHolder = $(pricesButtonHolder);\r\n let $checkoutButtonHolder = $(checkoutButtonHolder);\r\n\r\n if (!isUsed()) {\r\n if ($pricesButtonHolder && $pricesButtonHolder.length) {\r\n $pricesButtonHolder.hide();\r\n }\r\n if ($checkoutButtonHolder && $checkoutButtonHolder.length) {\r\n $checkoutButtonHolder.hide();\r\n }\r\n return;\r\n }\r\n\r\n let currentTop = $(window).scrollTop() + (GetBreakpointHeight() / 2);\r\n let currentBottom = currentTop;\r\n let $anchor = $('#hotel-prices-mobile-anchor');\r\n if (!$anchor || $anchor.length <= 0) {\r\n $anchor = $fixedWrapper.parent();\r\n }\r\n if (!$anchor || $anchor.length <= 0) return;\r\n\r\n let pricesButtonHeight = 0;\r\n if ($pricesButtonHolder && $pricesButtonHolder.length) {\r\n pricesButtonHeight = $pricesButtonHolder.outerHeight(true);\r\n }\r\n\r\n let checkoutButtonHeight = 0;\r\n if ($checkoutButtonHolder && $checkoutButtonHolder.length) {\r\n checkoutButtonHeight = $checkoutButtonHolder.outerHeight(true);\r\n }\r\n\r\n let offsetTop = 12;\r\n let anchorTop = $anchor.offset().top;\r\n let anchorBottom = $fixedWrapper.parent().offset().top + $fixedWrapper.parent().outerHeight(true);\r\n\r\n let isTopPosition = (currentTop - pricesButtonHeight) < (anchorTop - offsetTop);\r\n let isBottomPostion = (currentBottom + checkoutButtonHeight) >= anchorBottom;\r\n\r\n if (isTopPosition || isBottomPostion || !has_search_result()) {\r\n $checkoutButtonHolder.hide();\r\n $pricesButtonHolder.show();\r\n } else {\r\n $pricesButtonHolder.hide();\r\n $checkoutButtonHolder.show();\r\n }\r\n \r\n };\r\n\r\n function updatePriceStickerContainer() {\r\n handler_Resize();\r\n handler_Scroll();\r\n };\r\n global.updatePriceStickerContainer = updatePriceStickerContainer;\r\n updatePriceStickerContainer();\r\n\r\n $(window).on('resize', handler_Resize);\r\n $(window).on('scroll', handler_Scroll);\r\n /* */\r\n});\r\n\r\nAppLoader.ready(function () {\r\n let searchbar = '.searchbar-container';\r\n let searchcriteria = '.search-criteria-container';\r\n function has_search_criteria() {\r\n return !!(searchViewModel && searchViewModel.HasDates() && searchViewModel.HasDepartureAirportCode());\r\n };\r\n\r\n if (has_search_criteria() && GetBreakpointWidth() < 768) {\r\n hideSection($(searchbar));\r\n showSection($(searchcriteria));\r\n }\r\n\r\n $(searchcriteria).on('click', function (e) {\r\n let $this = $(this);\r\n hideSection($this);\r\n showSection($this.parent().find(searchbar));\r\n\r\n if (typeof updatePriceStickerContainer == 'function') {\r\n updatePriceStickerContainer();\r\n }\r\n\r\n });\r\n\r\n \r\n function setVisibleSearchCriteria(val) {\r\n if (has_search_criteria() && GetBreakpointWidth() < 768 && val) {\r\n hideSection($(searchbar));\r\n showSection($(searchcriteria));\r\n } else {\r\n hideSection($(searchcriteria));\r\n showSection($(searchbar));\r\n }\r\n };\r\n global.setVisibleSearchCriteria = setVisibleSearchCriteria;\r\n\r\n $(window).on('resize', function () {\r\n if (GetBreakpointWidth() >= 768) {\r\n setVisibleSearchCriteria(false);\r\n }\r\n });\r\n\r\n});\r\n\r\n//AppLoader.setReady();","/* Custom Knockout binding: spinner \r\n * documentations: https://spin.js.org/\r\n * github: https://github.com/fgnass/spin.js\r\n * \r\n * A simple example of adding a spinner:\r\n *
\r\n*/\r\n\r\nimport * as Spinner from 'spin';\r\n\r\nko.bindingHandlers.spinner = {\r\n init: function (element, valueAccessor, allBindingsAccessor) {\r\n\r\n var options = valueAccessor() || { color: \"#36719c\", lines: 11, length: 19, width: 10, radius: 22, corners: 1, trail: 58 };\r\n\r\n var spinner = new Spinner(options).spin(element);\r\n\r\n ko.utils.domNodeDisposal.addDisposeCallback(element, function () {\r\n spinner.stop();\r\n spinner = null;\r\n });\r\n\r\n },\r\n update: function (element, valueAccessor, allBindingsAccessor) {\r\n\r\n }\r\n};","import { GetBreakpointWidth } from 'Utils/globals-bp';\r\nimport { UpdateSiteHeaderSticky } from 'Modules/headroom.js';\r\n\r\n// ===== _PageNav.HW.cshtml - Start =====\r\n// Bind click handler to menu items\r\n// so we can get a fancy scroll animation\r\nfunction clickHotelMenuItem(e) {\r\n //var topMenu = $(\".page-nav\");\r\n //var topMenuHeight = topMenu.outerHeight();\r\n var topMenuHeights = getTopMenuHeights();\r\n\r\n if ($(this).hasClass('fullscreen')) {\r\n fullscreen();\r\n } else {\r\n //var href = $(this).attr(\"href\"),\r\n // offsetTop = href === \"#\" ? 0 : $(href).offset().top - topMenuHeight + 1;\r\n let href = $(this).attr(\"href\");\r\n let $anchor = $(href);\r\n let offsetTop = (href === \"#\" || $anchor.length < 1) ? 0 : $anchor.offset().top;\r\n if (href.toLowerCase() === \"#description\") {\r\n //offsetTop = offsetTop - 16; // arrow height 16px\r\n offsetTop = offsetTop - topMenuHeights.default + 1;\r\n offsetTop = offsetTop - 6; // shadow height 6px\r\n } else {\r\n offsetTop = offsetTop - topMenuHeights.sticked + 1;\r\n }\r\n if (href.toLowerCase() === \"#prices\") {\r\n offsetTop = offsetTop + parseInt($(\"#prices\").css('padding-top'));\r\n }\r\n if (href.toLowerCase() === \"#rooms\") {\r\n //let $anchorRooms = $(href);\r\n if (isHiddenInsideDescriptionReadMore($anchor)) {\r\n let $moretext = $anchor.closest(\".meretekst\");\r\n let $more = $moretext.next(\".mere\");\r\n if ($more.length > 0) {\r\n // expand 'read more'\r\n $more.trigger(\"click\");\r\n // get current position and scroll\r\n if ($anchor.is(':visible')) {\r\n // wait for other animations\r\n setTimeout(function () {\r\n // refresh values\r\n //topMenuHeight = topMenu.outerHeight();\r\n //offsetTop = $anchorRooms.offset().top - topMenuHeight + 1;\r\n //offsetTop = offsetTop - 16; // arrow height 16px\r\n offsetTop = $anchor.offset().top;\r\n offsetTop = offsetTop - topMenuHeights.sticked + 1;\r\n offsetTop = offsetTop - 6; // shadow height 6px\r\n\r\n $('html, body').stop().animate({\r\n scrollTop: offsetTop\r\n }, 300);\r\n }, 500);\r\n }\r\n }\r\n return;\r\n }\r\n //offsetTop = offsetTop - 16; // arrow height 16px\r\n offsetTop = offsetTop - 6; // shadow height 6px\r\n }\r\n $('html, body').stop().animate({\r\n scrollTop: offsetTop\r\n }, 300);\r\n }\r\n e.preventDefault();\r\n}\r\n\r\nfunction fixHotelNavHeight() {\r\n //var contentHotelNav = $('.page-nav').find('.c');\r\n //$('.page-nav').parent('.sticky-wrapper').css('height', contentHotelNav.outerHeight());\r\n //var $pageNav = $('.page-nav');\r\n //var m = 0;\r\n //m = $pageNav.css('margin-bottom');\r\n //if (m) {\r\n // $pageNav.parent('.sticky-wrapper').css('margin-bottom', m);\r\n //}\r\n}\r\n\r\nfunction fixPageNavTopSpacing() {\r\n if (!$('.page-nav').is(':visible'))\r\n return;\r\n\r\n var maxWidth = GetBreakpointWidth();\r\n var topSpacing = 0;\r\n if (maxWidth < 480) {\r\n topSpacing = 86;\r\n } else if (maxWidth < 768) {\r\n topSpacing = 86;\r\n } else {\r\n topSpacing = 0;\r\n }\r\n /*\r\n $('.page-nav').sticky({ topSpacing: topSpacing, zIndex: 99900, widthFromWrapper: false, getWidthFrom: 'body', responsiveWidth: true, center: true, fixWrapperHeight: false, wrapperClassName: 'page-nav--sticky-wrapper' });\r\n */\r\n}\r\n\r\nfunction isHiddenInsideDescriptionReadMore($anchor) {\r\n if (!$anchor || $anchor.length < 1 || $anchor.is(':visible'))\r\n return false;\r\n\r\n if (!$anchor.is(':hidden'))\r\n return false;\r\n\r\n let $description = $anchor.closest(\"#description\");\r\n if ($description.length < 1)\r\n return false;\r\n\r\n let $moretext = $anchor.closest(\".meretekst\");\r\n if ($moretext.length < 1)\r\n return false;\r\n\r\n return true;\r\n}\r\n\r\nfunction getTopMenuHeights() {\r\n var topMenu = $(\".page-nav\");\r\n\r\n\r\n var hDefault = parseFloat(topMenu.attr(\"data-height-default\"));\r\n var hSticked = parseFloat(topMenu.attr(\"data-height-sticked\"));\r\n if (isNaN(hDefault) || hDefault <= 0 || isNaN(hSticked) || hSticked <= 0) {\r\n let h = topMenu.outerHeight();\r\n return {\r\n default: h,\r\n sticked: h\r\n };\r\n } else {\r\n return {\r\n default: hDefault,\r\n sticked: hSticked\r\n };\r\n }\r\n}\r\n\r\nAppLoader.loaded(function () {\r\n if ($('.page-nav').is(':visible')) {\r\n\r\n var updateSiteHeaderSticky = function ($pageNav, isStickied, event) {\r\n var $header = $('.site-header--fixed');\r\n if (!$header.length)\r\n return;\r\n\r\n var wrapperId = \"site-header-wrapper\";\r\n var $headerWrapper = $('
').attr('id', wrapperId);\r\n\r\n var unwrapSiteHeader = function () {\r\n if ($header.parent(\"#\" + wrapperId).length > 0)\r\n $header.unwrap();\r\n };\r\n\r\n var close_searchautocomplete = function (searchautocomplete) {\r\n let $searchautocomplete = $(searchautocomplete);\r\n if ($searchautocomplete && $searchautocomplete.length > 0 && $searchautocomplete.is(':ui-autocomplete')) {\r\n $searchautocomplete.autocomplete('close');\r\n }\r\n };\r\n\r\n var hideSiteHeader = function () {\r\n close_searchautocomplete('.searchautocomplete-mobile');\r\n close_searchautocomplete('.searchautocomplete');\r\n\r\n var maxWidth = GetBreakpointWidth();\r\n if (maxWidth >= 768) {\r\n var h = $header.outerHeight();\r\n $header.wrapAll(function () {\r\n if ($(this).parent(\"#\" + wrapperId).length == 0) {\r\n return $headerWrapper;\r\n }\r\n });\r\n $headerWrapper = $header.parent();\r\n $headerWrapper.css('height', h);\r\n\r\n if (maxWidth == 768) {\r\n $headerWrapper.css('position', 'fixed');\r\n }\r\n } else {\r\n unwrapSiteHeader();\r\n\r\n if ($header.css('display') == 'none' || !$header.is(':visible')) {\r\n $header.slideDown(200);\r\n //$header.css('display', '');\r\n }\r\n return;\r\n }\r\n\r\n //siteHeadRoom\r\n var hasHeadRoom = typeof (global.siteHeadRoom) != \"undefined\" && global.siteHeadRoom && global.siteHeadRoom.initialised;\r\n if (!hasHeadRoom) {\r\n $header/*.stop()*/.slideUp(200);\r\n }\r\n };\r\n\r\n if (isStickied) {\r\n var $navMobile = $('.site-header').find('.site-nav__mobile');\r\n if ($navMobile.length && $navMobile.is(':visible')) {\r\n $('.site-header').find('.site-nav__mobile').slideUp(200, function () {\r\n hideSiteHeader();\r\n });\r\n } else {\r\n hideSiteHeader();\r\n }\r\n //$header.css('display', 'none');\r\n\r\n } else {\r\n if ($header.css('display') == 'none' || !$header.is(':visible')) {\r\n $header/*.stop()*/.slideDown(200);\r\n unwrapSiteHeader();\r\n }\r\n //$header.css('display', '');\r\n }\r\n };\r\n\r\n /*\r\n $('.page-nav').sticky({ topSpacing: 0, zIndex: 99900, widthFromWrapper: false, getWidthFrom: 'body', responsiveWidth: true, center: true, fixWrapperHeight: false, wrapperClassName: 'page-nav--sticky-wrapper' })\r\n .on('sticky-start', function (event, objSticky) {\r\n //console.log(\"Started\");\r\n updateSiteHeaderSticky($(this), true, event);\r\n })\r\n .on('sticky-end', function (event, objSticky) {\r\n updateSiteHeaderSticky($(this), false, event);\r\n //console.log(\"Ended\");\r\n });\r\n */\r\n\r\n\r\n // Cache selectors\r\n var lastId,\r\n firstId = '',\r\n topMenu = $(\".page-nav\"),\r\n //topMenuHeight = topMenu.outerHeight(),\r\n topMenuHeights = getTopMenuHeights(),\r\n // All list items\r\n menuItems = topMenu.find(\"a\"),\r\n // Anchors corresponding to menu items\r\n scrollItems = [];\r\n\r\n // Get distinct scrollItems\r\n var scrollItemsObj = {};\r\n menuItems.each(function (i, elm) {\r\n var href = $(elm).attr(\"href\");\r\n if (href && href !== \"#\" && href.toLowerCase() !== \"#prices\") {\r\n var item = $(href);\r\n if (item.length && !scrollItemsObj[item.attr(\"id\")]) {\r\n scrollItemsObj[item.attr(\"id\")] = item;\r\n }\r\n }\r\n });\r\n for (var k in scrollItemsObj) {\r\n var item = scrollItemsObj[k];\r\n scrollItems.push(item);\r\n if (firstId == '')\r\n firstId = k;\r\n }\r\n\r\n\r\n // Bind click handler to menu items\r\n // so we can get a fancy scroll animation\r\n menuItems.click(clickHotelMenuItem);\r\n\r\n\r\n // Bind to scroll\r\n $(window).scroll(function (event) {\r\n // Get container scroll position\r\n //var fromTop = $(this).scrollTop() + topMenuHeight;\r\n var fromTop = $(this).scrollTop();\r\n\r\n // Get id of current scroll item\r\n var cur = [];\r\n $(scrollItems).each(function (i, item) {\r\n let id = item.attr(\"id\");\r\n\r\n var offsetTop = item.offset().top;\r\n if (id.toLowerCase() === \"description\") {\r\n offsetTop = offsetTop - topMenuHeights.default;\r\n } else {\r\n offsetTop = offsetTop - topMenuHeights.sticked;\r\n }\r\n offsetTop = offsetTop - 6; // shadow height 6px\r\n\r\n if (id.toLowerCase() === \"rooms\") {\r\n if (isHiddenInsideDescriptionReadMore(item)) {\r\n let $moretext = item.closest(\".meretekst\");\r\n let $more = $moretext.next(\".mere\");\r\n if ($more.length > 0) {\r\n // take position of 'read more'\r\n offsetTop = $more.offset().top;\r\n } else {\r\n // alternative --> end of 'section#description'\r\n let $description = item.closest(\"#description\");\r\n offsetTop = $description.offset().top + $description.outerHeight();\r\n }\r\n //offsetTop = offsetTop - 16; // arrow height 16px\r\n offsetTop = offsetTop - topMenuHeights.sticked + 1;\r\n offsetTop = offsetTop - 6; // shadow height 6px\r\n }\r\n }\r\n\r\n if (offsetTop < fromTop)\r\n cur.push(item);\r\n });\r\n\r\n // Get the id of the current element\r\n cur = cur[cur.length - 1];\r\n var id = cur && cur.length ? cur[0].id : firstId;\r\n\r\n if (lastId !== id) {\r\n lastId = id;\r\n // Set/remove active class\r\n menuItems.removeClass(\"active\");\r\n menuItems.filter('[href=\"#' + id + '\"]').addClass(\"active\");\r\n }\r\n\r\n if ($(this).scrollTop() <= 0) {\r\n updateSiteHeaderSticky($('.page-nav'), false, event);\r\n }\r\n });\r\n\r\n fixHotelNavHeight();\r\n $(window).resize(fixHotelNavHeight);\r\n\r\n fixPageNavTopSpacing();\r\n $(window).resize(function (event) {\r\n fixPageNavTopSpacing();\r\n UpdateSiteHeaderSticky();\r\n\r\n let isStickied = $('.page-nav').length > 0 && $('.page-nav').parent('.sticky-wrapper.is-sticky').length > 0;\r\n updateSiteHeaderSticky($('.page-nav'), isStickied, event);\r\n });\r\n }\r\n\r\n $('.hotel-actionbox-conteiner .menuItem').click(clickHotelMenuItem);\r\n});\r\n// ===== _PageNav.HW.cshtml - End =====","/*\r\n * GLOBAL CONSTANTS\r\n*/\r\n\r\nvar PAGE_NAV_SHADOW_HEIGHT = 24;\r\nvar MAX_HOTEL_RESULTS = 99999;\r\n\r\nvar PRICE_RANGE_MIN = 100;\r\nvar PRICE_RANGE_MAX = 10000;\r\n\r\nvar DateTimeMinValue = \"0001-01-01T00:00:00\";\r\n\r\nvar GlobalEvents = {\r\n SearchViewModel: {\r\n Initialized: 'initialized.searchViewModel'\r\n }\r\n};\r\n\r\nexport {\r\n PAGE_NAV_SHADOW_HEIGHT,\r\n MAX_HOTEL_RESULTS,\r\n PRICE_RANGE_MIN,\r\n PRICE_RANGE_MAX,\r\n DateTimeMinValue,\r\n GlobalEvents\r\n}\r\n","/***************************************************\r\n * Formatters from ha-mytriplogic.js\r\n **************************************************/\r\n\r\nfunction FormatPrice(price, flgPerPerson) {\r\n var abs = Math.abs(price);\r\n //if (price < 0)\r\n // abs = Math.floor(abs);\r\n //else if (price > 0)\r\n // abs = Math.ceil(abs);\r\n abs = Math.ceil(abs);\r\n\r\n var format = numeral(abs).format(\"0,0\");\r\n //var prefix = \"kr. \";\r\n //var prefix = AppData.Currency.Symbol;\r\n var prefix = \"\";\r\n format = AppData.Currency.Pattern.replace(\"n\", format).replace(\"$\", AppData.Currency.Symbol)\r\n\r\n var sufix = \"\";\r\n if (flgPerPerson) {\r\n sufix = \" \" + AppData.Translations[\"pr-person\"];\r\n }\r\n if(price == 0)\r\n return AppData.Translations[\"same-price\"];\r\n else if (price > 0)\r\n return \"+ \" + prefix + format + sufix;\r\n else\r\n return \"- \" + prefix + format + sufix;\r\n};\r\nglobal.FormatPrice = FormatPrice;\r\n\r\nfunction FormatTotalPrice(price, withoutCurrency) {\r\n //return \"kr. \" + numeral(price).format(\"0,0\");\r\n var format = numeral(Math.ceil(price)).format(\"0,0\");\r\n if (withoutCurrency)\r\n return format; //\",-\"\r\n\r\n format = AppData.Currency.Pattern.replace(\"n\", format).replace(\"$\", AppData.Currency.Symbol)\r\n return format;\r\n};\r\nglobal.FormatTotalPrice = FormatTotalPrice;\r\nfunction LocaleFormatPrice(price) {\r\n //return numeral(price).format(\"0,0.0[0000]\"); // 12,456.025\r\n return numeral(price).format(\"0.[00000]\"); // 12456.025\r\n //return numeral(price).value().toLocaleString(AppData.CurrentLocaleCountry2);\r\n};\r\nglobal.LocaleFormatPrice = LocaleFormatPrice;\r\n\r\n\r\nfunction FormatFlightTimeString(string) {\r\n var mom = moment(string, \"YYYY-MM-DDTHH:mm\");\r\n return mom.format(\"HH:mm\")\r\n};\r\nglobal.FormatFlightTimeString = FormatFlightTimeString;\r\n\r\nfunction FormatFlightDateString(string) {\r\n var mom = moment(string, \"YYYY-MM-DDTHH:mm\");\r\n return mom.format(\"L HH:mm\")\r\n};\r\nglobal.FormatFlightDateString = FormatFlightDateString;\r\n\r\nfunction FormatDateString(string) {\r\n var mom = moment(string, \"YYYY-MM-DD\");\r\n return mom.format(\"DD.MM.YYYY\")\r\n};\r\nglobal.FormatDateString = FormatDateString;\r\n\r\nfunction FormatFlightTime(mins) {\r\n var hours = Math.floor(mins / 60);\r\n var minutes = mins - (hours * 60);\r\n\r\n if ((minutes + \"\").length == 1)\r\n minutes = '0' + minutes;\r\n\r\n return hours + 'h ' + minutes + \"m\";\r\n};\r\nglobal.FormatFlightTime = FormatFlightTime;\r\n\r\nfunction FormatFlightTime2(mins) {\r\n var hours = Math.floor(mins / 60);\r\n var minutes = mins - (hours * 60);\r\n\r\n if ((hours + \"\").length == 1)\r\n hours = '0' + hours;\r\n\r\n if ((minutes + \"\").length == 1)\r\n minutes = '0' + minutes;\r\n\r\n return hours + ':' + minutes;\r\n};\r\nglobal.FormatFlightTime2 = FormatFlightTime2;\r\n\r\nfunction FormatTravelTime(seconds) {\r\n var mins = 0;\r\n if (mins) {\r\n mins = Math.ceil(seconds / 60 / 5) * 5;\r\n }\r\n var hours = Math.floor(mins / 60);\r\n var minutes = mins - (hours * 60);\r\n\r\n if ((hours + \"\").length == 1)\r\n hours = '0' + hours;\r\n\r\n if ((minutes + \"\").length == 1)\r\n minutes = '0' + minutes;\r\n\r\n return hours + ':' + minutes;\r\n};\r\nglobal.FormatTravelTime = FormatTravelTime;\r\n\r\nfunction FormatOnlyDate(data) {\r\n return moment(data).format(\"L\");\r\n};\r\nglobal.FormatOnlyDate = FormatOnlyDate;\r\n\r\nfunction FormatOnlyDateISO(data) {\r\n return moment(data).format(\"YYYY-MM-DD\");\r\n};\r\nglobal.FormatOnlyDateISO = FormatOnlyDateISO;\r\n\r\nfunction FormatOnlyDateString(string, withoutYear) {\r\n if (!string) return \"\";\r\n var mom = moment(string, \"YYYY-MM-DD\");\r\n if (withoutYear) {\r\n var noYearLocaleFormat = moment.localeData().longDateFormat('L')\r\n .replace(/[-,\\\\./]*\\s*Y+[-,\\\\./]*\\s*/, '');\r\n return mom.format(noYearLocaleFormat);\r\n } else {\r\n return mom.format(\"L\");\r\n }\r\n};\r\nglobal.FormatOnlyDateString = FormatOnlyDateString;\r\n\r\nfunction FormatDateRange(fromDate, toData) {\r\n return (moment(fromDate).format(\"DD. MMM.\") + \" - \"+ moment(toData).format(\"DD. MMM. YY\"));\r\n};\r\nglobal.FormatDateRange = FormatDateRange;\r\n\r\nfunction FormatOnlyTimeString(string) {\r\n if (!string) return \"\";\r\n var mom = moment(string, \"HH:mm\");\r\n return mom.format(\"LT\");\r\n};\r\nglobal.FormatOnlyTimeString = FormatOnlyTimeString;\r\n\r\nfunction FormatInsertYearInString(string, data)\r\n{\r\n return string.replaceAll(\"%YEAR%\", data.getFullYear());\r\n};\r\nglobal.FormatInsertYearInString = FormatInsertYearInString;\r\n\r\n\r\nfunction FormatDistance(distance) {\r\n if (!distance || distance < 0) return \"-- km\";\r\n\r\n return \"\" + distance + \" km\";\r\n};\r\nglobal.FormatDistance = FormatDistance;\r\n\r\n\r\n/***************************************************\r\n * Formatters from ha-packagelogic.js\r\n **************************************************/\r\n\r\nfunction GetFormattedYear(date) {\r\n if (!date || date == \"\")\r\n return \"\";\r\n var mom = moment(date);\r\n return mom.format(\"YYYY\");\r\n};\r\nglobal.GetFormattedYear = GetFormattedYear;\r\n\r\nfunction GetFormattedDayOfMonth(date) {\r\n if (!date || date == \"\")\r\n return \"\";\r\n var mom = moment(date);\r\n return mom.format(\"D\");\r\n};\r\nglobal.GetFormattedDayOfMonth = GetFormattedDayOfMonth;\r\n\r\nfunction GetFormattedDays(days) {\r\n if (!days)\r\n return \"\";\r\n var txt = AppData.Translations[\"day\"];\r\n if (Math.abs(days) > 1)\r\n txt = AppData.Translations[\"days\"];\r\n return String.format(\"{0} {1}\", days, txt);\r\n};\r\nglobal.GetFormattedDays = GetFormattedDays;\r\n\r\nfunction GetFormattedNights(nights) {\r\n if (!nights)\r\n return \"\";\r\n var txt = AppData.Translations[\"night\"];\r\n if (Math.abs(nights) > 1)\r\n txt = AppData.Translations[\"nights\"];\r\n return String.format(\"{0} {1}\", nights, txt);\r\n};\r\nglobal.GetFormattedNights = GetFormattedNights;","import 'qtip2/dist/basic/jquery.qtip';\r\nimport 'Vendors/jquery.cookie';\r\n\r\nimport { GetBreakpointWidth } from 'Utils/globals-bp';\r\n\r\nvar defaultMinRoomsShown = 2;\r\nvar defaultMinRoomBoardsShown = 2;\r\n\r\n\r\nexport function ShowMoreRoomTypesTitle(availableRoomTypes, minRoomsShown) {\r\n var text = AppData.Translations[\"show-more-rooms\"];\r\n var count = \"\";\r\n\r\n if (!minRoomsShown)\r\n minRoomsShown = defaultMinRoomsShown;\r\n\r\n if (availableRoomTypes && availableRoomTypes.length > minRoomsShown) {\r\n count = availableRoomTypes.length - minRoomsShown;\r\n }\r\n\r\n return String.format(text, count);\r\n};\r\n\r\nexport function ShowLessRoomTypes(index, clsHolder, minRoomsShown) {\r\n var roomsHolder = '.rooms';\r\n\r\n if (clsHolder != \"\")\r\n roomsHolder = clsHolder + \" \" + roomsHolder;\r\n\r\n if (!minRoomsShown)\r\n minRoomsShown = defaultMinRoomsShown;\r\n\r\n $(roomsHolder).each(function (i, e) {\r\n if (index == i || index < 0) {\r\n $(e).find('.room').each(function (j, r) {\r\n if (j >= minRoomsShown)\r\n $(r).hide();\r\n else\r\n $(r).show();\r\n });\r\n\r\n $(e).parents('.room-container').find('.show-more-rooms').show().css('display', 'inline-block');\r\n $(e).parents('.room-container').find('.show-less-rooms').hide();\r\n\r\n if ($(e).find('.room').length <= minRoomsShown) {\r\n $(e).parents('.room-container').find('.show-more-rooms').hide();\r\n }\r\n }\r\n });\r\n};\r\n\r\nexport function ShowMoreRoomTypes(index, clsHolder, minRoomsShown) {\r\n var roomsHolder = '.rooms';\r\n\r\n if (clsHolder != \"\")\r\n roomsHolder = clsHolder + \" \" + roomsHolder;\r\n\r\n $(roomsHolder).each(function (i, e) {\r\n if (index == i) {\r\n $(e).find('.room').each(function (j, r) {\r\n $(r).show();\r\n });\r\n\r\n $(e).parents('.room-container').find('.show-more-rooms').hide();\r\n $(e).parents('.room-container').find('.show-less-rooms').show().css('display', 'inline-block');\r\n\r\n if ($(e).find('.room').length <= minRoomsShown) {\r\n $(e).parents('.room-container').find('.show-less-rooms').hide();\r\n }\r\n }\r\n });\r\n};\r\n\r\nexport function ShowLessRoomTypeBoards(indexRoom, indexRoomType, clsHolder, minRoomBoardsShown) {\r\n var roomsHolder = '.rooms';\r\n\r\n if (clsHolder != \"\")\r\n roomsHolder = clsHolder + \" \" + roomsHolder;\r\n\r\n if (!minRoomBoardsShown)\r\n minRoomBoardsShown = defaultMinRoomBoardsShown;\r\n\r\n $(roomsHolder).each(function (i, e) {\r\n if (indexRoom == i || indexRoom < 0) {\r\n $(e).find('.room').each(function (j, r) {\r\n if (indexRoomType == j || indexRoomType < 0) {\r\n let $r = $(r);\r\n $r.find(\".room-board\").each(function (indx, b) {\r\n if (indx >= minRoomBoardsShown)\r\n $(b).hide();\r\n else\r\n $(b).show();\r\n });\r\n\r\n $r.find('.show-less-room-boards').hide();\r\n\r\n if ($r.find('.room-board').length <= minRoomBoardsShown) {\r\n $r.find('.show-more-room-boards').hide();\r\n $r.find('.btn-more-room-boards-container').hide();\r\n } else {\r\n $r.find('.show-more-room-boards').show().css('display', 'inline-block');\r\n $r.find('.btn-more-room-boards-container').show();\r\n }\r\n }\r\n });\r\n }\r\n });\r\n};\r\n\r\nexport function ShowMoreRoomTypeBoards(indexRoom, indexRoomType, clsHolder, minRoomBoardsShown) {\r\n var roomsHolder = '.rooms';\r\n\r\n if (clsHolder != \"\")\r\n roomsHolder = clsHolder + \" \" + roomsHolder;\r\n\r\n $(roomsHolder).each(function (i, e) {\r\n if (indexRoom == i) {\r\n\r\n $(e).find('.room').each(function (j, r) {\r\n if (indexRoomType == j || indexRoomType < 0) {\r\n let $r = $(r);\r\n $r.find(\".room-board\").each(function (indx, b) {\r\n $(b).show();\r\n });\r\n\r\n $r.find('.show-more-room-boards').hide();\r\n\r\n if ($r.find('.room-board').length <= minRoomBoardsShown) {\r\n $r.find('.show-less-room-boards').hide();\r\n $r.find('.btn-more-room-boards-container').hide();\r\n } else {\r\n $r.find('.show-less-room-boards').show().css('display', 'inline-block');\r\n $r.find('.btn-more-room-boards-container').show();\r\n }\r\n }\r\n\r\n });\r\n }\r\n });\r\n};\r\n\r\nexport function IsCookieEnabled() {\r\n var cookieEnabled = (navigator.cookieEnabled) ? true : false;\r\n\r\n if (typeof navigator.cookieEnabled == \"undefined\" && !cookieEnabled) {\r\n //document.cookie = \"testcookie\";\r\n //cookieEnabled = (document.cookie.indexOf(\"testcookie\") != -1) ? true : false;\r\n\r\n var name = \"testcookie\";\r\n var options = { expires: 365, path: '/' };\r\n $.cookie(name, 1, options);\r\n var value = $.cookie(name);\r\n cookieEnabled = value == 1;\r\n }\r\n return (cookieEnabled);\r\n};\r\n\r\n\r\nfunction ArrayElementId(arrayName, itemIndex, fieldName) {\r\n var prefix = arrayName + \"[\" + itemIndex + \"]\";\r\n if (!fieldName)\r\n return prefix;\r\n return prefix + \".\" + fieldName;\r\n};\r\nfunction Array2ElementId(arrayName, itemIndex, subArrayName, subItemIndex, fieldName) {\r\n var prefix = arrayName + \"[\" + itemIndex + \"].\" + subArrayName + \"[\" + subItemIndex + \"]\";\r\n if (!fieldName)\r\n return prefix;\r\n return prefix + \".\" + fieldName;\r\n};\r\n\r\nexport function RoomsPassengersElemId(roomIndex, passengerIndex, fieldName) {\r\n // \"rooms[\" + roomIndex + \"].passengers[\" + passengerIndex + \"].\" + fieldName\r\n return Array2ElementId(\"rooms\", roomIndex, \"passengers\", passengerIndex, fieldName);\r\n};\r\n\r\nexport function RoomsElemId(roomIndex, fieldName) {\r\n // \"Rooms[\" + roomIndex + \"].\" + fieldName\r\n return ArrayElementId(\"Rooms\", roomIndex, fieldName);\r\n};\r\n\r\nexport function RoomsChildrenElemId(roomIndex, childIndex, fieldName) {\r\n // \"Rooms[\" + roomIndex + \"].Children[\" + childIndex + \"].\" + fieldName\r\n return Array2ElementId(\"Rooms\", roomIndex, \"Children\", childIndex, fieldName);\r\n};\r\n\r\nexport function SelectedRoomsElemId(roomIndex, fieldName) {\r\n // \"SelectedRooms[\" + roomIndex + \"].\" + fieldName\r\n return ArrayElementId(\"SelectedRooms\", roomIndex, fieldName);\r\n};\r\n\r\nexport function SelectedRoomFeesElemId(roomIndex, feeIndex, fieldName) {\r\n // \"Rooms[\" + roomIndex + \"].SelectedFees[\" + feeIndex + \"].\" + fieldName\r\n return Array2ElementId(\"Rooms\", roomIndex, \"SelectedFees\", feeIndex, fieldName);\r\n};\r\n\r\nexport function HotelExtraBookingElemId(hotelExtraIndex, fieldName) {\r\n var prefix = \"HotelExtras[\" + hotelExtraIndex + \"]\";\r\n if (!fieldName)\r\n return prefix;\r\n return prefix + \".\" + fieldName;\r\n};\r\n\r\nexport function HotelExtraElemId(prefix, hotelExtraIndex) {\r\n return prefix + \"[\" + hotelExtraIndex + \"]\";\r\n};\r\n\r\nexport function CarRentalExtraElemId(itemIndex, fieldName) {\r\n return ArrayElementId('CarRentalExtras', itemIndex, fieldName);\r\n};\r\n\r\nexport function SelectedCarRentalExtraElemId(itemIndex, fieldName) {\r\n return ArrayElementId('SelectedCarRentalExtras', itemIndex, fieldName);\r\n};\r\n\r\nexport function CarRentalFeeElemId(itemIndex, fieldName) {\r\n return ArrayElementId('CarRentalFees', itemIndex, fieldName);\r\n};\r\n\r\n\r\nexport function GetHotelSummaryRoomTooltipOptions(element) {\r\n var options = {\r\n content: {\r\n text: $(element).next('div') // Use the \"div\" element next to this for the content\r\n },\r\n style: {\r\n classes: 'qtip-room-cpi-info qtip-to-front qtip-brand-style',\r\n def: false,\r\n },\r\n position: {\r\n target: $(element).find(\".room-board-info\"),\r\n\r\n my: 'bottom center',\r\n at: 'top right',\r\n tooltip: 'topMiddle',\r\n adjust: {\r\n y: 0\r\n }\r\n }\r\n };\r\n return options;\r\n};\r\n\r\nexport function SetHotelRoomsTooltips() {\r\n $('.show-room-name-info-hover').each(function () { // Notice the .each() loop, discussed below\r\n $(this).qtip({\r\n content: {\r\n text: $(this).next('div') // Use the \"div\" element next to this for the content\r\n },\r\n style: {\r\n classes: 'qtip-to-front qtip-brand-style',\r\n def: false\r\n },\r\n position: {\r\n target: $(this),\r\n //my: 'top right',\r\n //at: 'bottom right',\r\n //tooltip: 'bottomRight',\r\n my: 'top left',\r\n at: 'bottom left',\r\n tooltip: 'bottomLeft',\r\n //my: 'left center',\r\n //at: 'right center',\r\n //tooltip: 'topMiddle',\r\n adjust: {\r\n x: -10\r\n }\r\n }\r\n });\r\n });\r\n\r\n $('.room-board').find(\"div.show-room-cpi-info-hover\").each(function () { // Notice the .each() loop, discussed below\r\n let $hoverinfo = $(this).next('div'); // Use the \"div\" element next to this for the content\r\n if ($hoverinfo.length < 1) {\r\n // nofound container with info\r\n return; // 'continue' loop\r\n }\r\n if (!$hoverinfo.hasClass('room-cpi-hoverinfo')) {\r\n // un-expected container\r\n return; // 'continue' loop\r\n }\r\n\r\n $(this).qtip({\r\n content: {\r\n text: $hoverinfo\r\n },\r\n style: {\r\n classes: 'qtip-room-cpi-info qtip-to-front qtip-brand-style p-0',\r\n def: false,\r\n },\r\n position: {\r\n target: $(this),\r\n\r\n my: 'bottom center',\r\n at: 'top center',\r\n tooltip: 'topMiddle',\r\n adjust: {\r\n y: 0\r\n }\r\n }\r\n });\r\n });\r\n\r\n\r\n $('.btn-continue-booking').on(\"click\", function (e) {\r\n ScrollToTarget(\".mytrip-summary\");\r\n //ScrollToTarget(\".mytrip-summary .btn-checkout\");\r\n });\r\n};\r\n\r\nexport function SetHotelArrivalTooltips() {\r\n var flgInfo = false;\r\n if (myTripSearchViewModel != null) {\r\n flgInfo = myTripSearchViewModel.IsAnotherHotelArrivalDate();\r\n }\r\n\r\n if (flgInfo) {\r\n $(\".hotelsection .hotel-arrival\").addClass(\"show-hotel-arrival-info-hover\");\r\n } else {\r\n $(\".hotelsection .hotel-arrival\").removeClass(\"show-hotel-arrival-info-hover\");\r\n }\r\n\r\n\r\n $('.show-hotel-arrival-info-hover').each(function () { // Notice the .each() loop, discussed below\r\n $(this).qtip({\r\n content: {\r\n text: $(this).next('div') // Use the \"div\" element next to this for the content\r\n },\r\n style: {\r\n classes: 'qtip-to-front qtip-brand-style',\r\n def: false\r\n },\r\n position: {\r\n target: $(this),\r\n my: 'top left',\r\n at: 'bottom left',\r\n tooltip: 'bottomLeft',\r\n adjust: {\r\n x: -10\r\n }\r\n }\r\n });\r\n });\r\n};\r\n\r\nexport function SetRoomsPassengersTooltips() {\r\n $('.show-passenger-type-info-hover').each(function () { // Notice the .each() loop, discussed below\r\n $(this).qtip({\r\n content: {\r\n text: $(this).next('div') // Use the \"div\" element next to this for the content\r\n },\r\n style: {\r\n classes: 'qtip-to-front qtip-brand-style',\r\n def: false\r\n },\r\n position: {\r\n target: $(this),\r\n //my: 'top right',\r\n //at: 'bottom right',\r\n //tooltip: 'bottomRight',\r\n my: 'top left',\r\n at: 'bottom left',\r\n tooltip: 'bottomLeft',\r\n //my: 'left center',\r\n //at: 'right center',\r\n //tooltip: 'topMiddle',\r\n adjust: {\r\n x: -10\r\n }\r\n }\r\n });\r\n });\r\n};\r\n\r\n// 2022-06-03 unused function\r\n// export function matchHeightsAirports() {\r\n// $('.departure-airport').matchHeight({\r\n// byRow: true,\r\n// //byRow: false,\r\n// property: 'height',\r\n// //property: 'min-height',\r\n// //target: null,\r\n// //remove: false\r\n// });\r\n// };\r\n\r\n// 2022-06-03 unused function\r\n// export function matchHeightsAirlines() {\r\n// $('.airline').matchHeight({\r\n// //byRow: true,\r\n// byRow: false,\r\n// property: 'height',\r\n// //property: 'min-height',\r\n// //target: null,\r\n// //remove: false\r\n// });\r\n// };\r\n\r\n// 2019-12-26 :EA: unused '.room-board .matchHeights'. New design is based on Flex\r\n//export function matchHeightsRoomBoards(timeout) {\r\n// //if (timeout) {\r\n// // setTimeout(function () {\r\n// // matchHeightsRoomBoards();\r\n// // }, timeout);\r\n// // return;\r\n// //}\r\n// $('.room-board .matchHeights').matchHeight({\r\n// byRow: true,\r\n// //byRow: false,\r\n// property: 'height',\r\n// //property: 'min-height',\r\n// //target: null,\r\n// //remove: false\r\n// });\r\n//}\r\n\r\n// 2022-06-03 unused function\r\n// export function matchHeightsScheduleHead(timeout) {\r\n// //if (timeout) {\r\n// // setTimeout(function () {\r\n// // matchHeightsScheduleHead();\r\n// // }, timeout);\r\n// // return;\r\n// //}\r\n// $('.schedule-head-details .matchHeights').matchHeight({\r\n// //byRow: true,\r\n// byRow: false,\r\n// property: 'height',\r\n// //property: 'min-height',\r\n// //target: null,\r\n// //remove: false\r\n// });\r\n//\r\n// $('.schedule-head .matchHeights-head').matchHeight({\r\n// byRow: true,\r\n// //byRow: false,\r\n// property: 'height',\r\n// //property: 'min-height',\r\n// //target: null,\r\n// //remove: false\r\n// });\r\n// };\r\n\r\n// 2022-06-03 unused function\r\n// export function matchHeightsCarRental(timeout) {\r\n// if (timeout) {\r\n// setTimeout(function () {\r\n// matchHeightsCarRental();\r\n// }, timeout);\r\n// return;\r\n// }\r\n//\r\n// $('.carrental-item .matchHeights').matchHeight({\r\n// byRow: true,\r\n// //byRow: false,\r\n// property: 'height',\r\n// //property: 'min-height',\r\n// //target: null,\r\n// //remove: false\r\n// });\r\n// };\r\n\r\n// 2022-06-03 unused function\r\n// export function matchHeightsTransportModes(timeout) {\r\n// if (timeout) {\r\n// setTimeout(function () {\r\n// matchHeightsTransportModes();\r\n// }, timeout);\r\n// return;\r\n// }\r\n//\r\n// $('#transport-section .transport-modes .matchHeights').matchHeight({\r\n// //byRow: true,\r\n// byRow: false,\r\n// property: 'height',\r\n// //property: 'min-height',\r\n// //target: null,\r\n// //remove: false\r\n// });\r\n//\r\n// $('#transfer-section .transport-modes .matchHeights').matchHeight({\r\n// //byRow: true,\r\n// byRow: false,\r\n// property: 'height',\r\n// //property: 'min-height',\r\n// //target: null,\r\n// //remove: false\r\n// });\r\n// };\r\n\r\n// 21.04.2022, unused function - Igor Mazur\r\n// export function matchHeightsTransfer(timeout) {\r\n// if (timeout) {\r\n// setTimeout(function () {\r\n// matchHeightsTransfer();\r\n// }, timeout);\r\n// return;\r\n// }\r\n// \r\n// $('.transfer-item .matchHeights').matchHeight({\r\n// //byRow: true,\r\n// byRow: false,\r\n// property: 'height',\r\n// //property: 'min-height',\r\n// //target: null,\r\n// //remove: false\r\n// });\r\n// };\r\n\r\n// 2022-06-03 unused function\r\n// export function matchHeightsPaymentMethods() {\r\n// $('.payment-method-container .matchHeights').matchHeight({\r\n// byRow: true,\r\n// //byRow: false,\r\n// property: 'height',\r\n// //property: 'min-height',\r\n// //target: null,\r\n// //remove: false\r\n// });\r\n// };\r\n\r\n// 21.04.2022, unused function - Igor Mazur\r\n// export function updateTransferImage(timeout) {\r\n// if (timeout) {\r\n// setTimeout(function () {\r\n// updateTransferImage();\r\n// }, timeout);\r\n// return;\r\n// }\r\n//\r\n// var bp1 = 480; /* Mobile landscape */\r\n// var bp0_max = bp1 - 1; /* Mobile portrait */\r\n//\r\n// var maxHeight = 0;\r\n// var heights = $(\".transfer-select .transfer-item .price-container\").map(function (i, item) {\r\n// return $(item).outerHeight(true);\r\n// }).toArray();\r\n// if (heights && heights.length > 0) {\r\n// maxHeight = Math.max.apply(Math,heights);\r\n// }\r\n//\r\n// //var newWidth = $(window).width();\r\n// var newWidth = GetBreakpointWidth();\r\n//\r\n// $(\".transfer-select .transfer-item .price-container\").css('margin-bottom', '');\r\n// $(\".transfer-select .transfer-item .vehicle-img\").css('margin-bottom', '');\r\n// $(\".transfer-select .transfer-item .price-container\").css('height', '');\r\n//\r\n// $(\".transfer-select .transfer-item\").each(function () {\r\n// var $holder = $(this);\r\n// var $price = $holder.find(\".price-container\");\r\n// var $img = $holder.find(\".vehicle-img\");\r\n// if ($price.length > 0 && $img.length > 0) {\r\n// var margin = 0;\r\n// if (newWidth >= bp1) {\r\n// margin = $price.outerHeight(true);\r\n// margin = maxHeight;\r\n// }\r\n// $img.css('margin-bottom', margin + 'px');\r\n// }\r\n// });\r\n//\r\n// $(\".transfer-select .transfer-item\").each(function () {\r\n// var $holder = $(this);\r\n// var $price = $holder.find(\".price-container\");\r\n// var $img = $holder.find(\".vehicle-img\");\r\n// if ($price.length > 0 && $img.length > 0) {\r\n// var h = '';\r\n// if (newWidth < bp1) {\r\n// h = $img.outerHeight(true);\r\n// if (h > $price.outerHeight(true))\r\n// h = h + 'px';\r\n// else\r\n// h = $price.height() + 'px';\r\n// }\r\n// $price.css('height', h);\r\n// }\r\n// });\r\n// };\r\n\r\nexport function ScrollToTarget(target) {\r\n if (!target || target.length == 0) return;\r\n if (!target.match(\"^#\")) {\r\n if (!target.match(\"^\\.\")) {\r\n target = \".\" + target;\r\n }\r\n if (!target.match(\":first$\")) {\r\n target += \":first\";\r\n }\r\n }\r\n\r\n var holder = $(target);\r\n if (holder && holder.length > 0) {\r\n var offset = $(window).height() / 2;\r\n\r\n $('html, body').stop().animate({\r\n scrollTop: holder.offset().top - offset\r\n }, 300);\r\n }\r\n};\r\n","import { PAGE_NAV_SHADOW_HEIGHT } from 'Utils/constants';\r\nimport { GetBreakpointWidth } from 'Utils/globals-bp';\r\n\r\nexport function InitScript_searchSingleResult() {\r\n if (!searchViewModel.isSingleResults())\r\n return;\r\n\r\n //// If we are on a hotel page, and the query parameters are filled out - do the search\r\n //if (AppData.CurrentHotelId != null && getParameterByName(\"departure\") != \"\") {\r\n // // For some reason, firing right away does not work. Look into this later.\r\n // setTimeout(function () {\r\n // searchViewModel.RequestSearch(false);\r\n // }, 2000);\r\n //\r\n //}\r\n\r\n if (searchViewModel.IsHotel()) {\r\n // 2018-01-15 Use CurrentPageId to show HotelName in SearchBar.DestinationID\r\n //searchViewModel.PageID(AppData.CurrentParentId);\r\n\r\n setTimeout(function () {\r\n searchViewModel.RequestSearch(false);\r\n }, 2000);\r\n\r\n $(document).on('click', '.price_mail_click', function () {\r\n if (searchViewModel && searchViewModel.SingleHotelResult() && searchViewModel.PriceRequest()) {\r\n searchViewModel.PriceRequest().ShowAlert(searchViewModel.SingleHotelResult());\r\n }\r\n });\r\n\r\n //2017-03-21 detached scrolling on hotel page\r\n //if (searchViewModel.DepartureDate() && searchViewModel.ReturnDate()) {\r\n // scrollToHotelSearchBox(2000, 1000);\r\n //}\r\n /*\r\n var headers = document.getElementsByClassName(\"header\");\r\n if (headers != null && headers.length > 0) {\r\n ko.applyBindings(searchViewModel, headers[0]);\r\n }\r\n */\r\n /*\r\n var bubble = $(\".from-bubble.search-spec-package\");\r\n if (bubble && bubble.length > 0) {\r\n var holder = bubble.parent();\r\n if (holder && holder.length > 0) {\r\n if ($('.hotelpage').length == 0) {\r\n if (getParameterByName(\"departure\") != \"\" && getParameterByName(\"return\") != \"\") {\r\n holder.hide();\r\n } else {\r\n holder.show();\r\n }\r\n } else {\r\n holder.show();\r\n }\r\n }\r\n }\r\n */\r\n }\r\n\r\n // FIXME !!! legacy script :: 'on click .hotel-searchbutton' is not used for now\r\n //$('.hotel-searchbutton').click(function () {\r\n // // Make sure dates are filled\r\n // if (searchViewModel.DepartureDate() == null || searchViewModel.ReturnDate() == null) {\r\n // $('.hotel-search-box .validate').show();\r\n // } else {\r\n // $('.hotel-search-box .validate').hide();\r\n // updateQueryStringWithoutHistory();\r\n // searchViewModel.RequestSearch(true);\r\n // }\r\n //});\r\n\r\n $(document).on('click', '.hotelpage .go-next', function (e) {\r\n if (searchViewModel.IsHotel()) {\r\n var currentStep = searchViewModel.ProcessWizard().CurrentStep();\r\n var flgValid = searchViewModel.MyTripValidator().ValidateStep(currentStep);\r\n if (!flgValid) {\r\n e.preventDefault();\r\n return false;\r\n }\r\n\r\n }\r\n });\r\n\r\n //2017-03-21 detached scrolling on hotel page\r\n //$(document).on('click', '.room-box', function (e) {\r\n // var roomTypeId = $(this).data('room-type-id');\r\n // if (roomTypeId) {\r\n // searchViewModel.SelectedRoomTypeId(roomTypeId);\r\n // scrollToHotelSearchBox();\r\n // } else {\r\n // searchViewModel.SelectedRoomTypeId(-1);\r\n // }\r\n //});\r\n\r\n\r\n \r\n};\r\n\r\n// FIXME !!! legacy script :: 'positionRoomsSelector' is not used for now\r\n//export function positionRoomsSelector(event) {\r\n// var tPosX = event.pageX - 10;\r\n// var tPosY = event.pageY - 100;\r\n// $('div.tooltip').css({ 'position': 'absolute', 'top': tPosY, 'left': tPosX });\r\n//};\r\n\r\n// FIXME !!! legacy script :: 'scrollToHotelSearchBox' is not used for now\r\n//export function scrollToHotelSearchBox(delayDuration, animateDuration) {\r\n// if (!delayDuration)\r\n// delayDuration = 0;\r\n// if (!animateDuration)\r\n// animateDuration = 300;\r\n// //Scroll to parent div because 'hotel-search-box' is used with ScrollToFixed\r\n// //When scroll from 'lower part of page' that it is not in good location\r\n// var searchBox = $(\".hotel-search-box:first\");\r\n// $('html, body').stop().delay(delayDuration).animate({\r\n// scrollTop: $(\"section#description\").offset().top - 80\r\n// }, animateDuration);\r\n//\r\n// //var searchBox = $(\".hotel-search-box:first\");\r\n// //$('html, body').stop().animate({\r\n// // //* scroll to search bar at the top of window\r\n// // scrollTop: searchBox.offset().top - 80\r\n// // //* scroll to search bar at the bottom of window\r\n// // //scrollTop: searchBox.offset().top - 80 - searchBox.outerHeight()\r\n// //}, 300);\r\n//};\r\n\r\nexport function scrollToHotelSearchBar(delayDuration, animateDuration) {\r\n if (!delayDuration)\r\n delayDuration = 0;\r\n if (!animateDuration)\r\n animateDuration = 300;\r\n\r\n var topMenu = $(\".page-nav\");\r\n var topMenuHeight = 0;\r\n if (topMenu.length > 0) {\r\n var shadowHeight = PAGE_NAV_SHADOW_HEIGHT;\r\n topMenuHeight = topMenu.outerHeight(true) + shadowHeight;\r\n }\r\n\r\n var searchBox = $(\".searchbar-static:first\");\r\n if (searchBox) {\r\n $('html, body').stop().delay(delayDuration).animate({\r\n scrollTop: searchBox.offset().top - topMenuHeight\r\n }, animateDuration);\r\n }\r\n};\r\n\r\nexport function scrollToHotelPrices(delayDuration, animateDuration) {\r\n if (!delayDuration)\r\n delayDuration = 0;\r\n if (!animateDuration)\r\n animateDuration = 300;\r\n\r\n var topMenu = $(\".page-nav\");\r\n var topMenuHeight = 0;\r\n if (topMenu.length > 0 && topMenu.is(\":visible\") || topMenu.css(\"display\") != 'none') {\r\n topMenuHeight = topMenu.outerHeight(true) - 1;\r\n }\r\n let offset = 10;\r\n let $target_mobile = (GetBreakpointWidth() < 768) ? $(\"#hotel-prices-mobile-anchor\") : null;\r\n var $target = ($target_mobile && $target_mobile.length > 0) ? $target_mobile : $(\"#prices\");\r\n if ($target && $target.length > 0) {\r\n $('html, body').stop().delay(delayDuration).animate({\r\n scrollTop: $target.offset().top - topMenuHeight - offset\r\n }, animateDuration);\r\n }\r\n};\r\n","//fgnass.github.com/spin.js#v1.2.5\n/**\n * Copyright (c) 2011 Felix Gnass [fgnass at neteye dot de]\n * Licensed under the MIT license\n */\n\nvar prefixes = ['webkit', 'Moz', 'ms', 'O']; /* Vendor prefixes */\nvar animations = {}; /* Animation rules keyed by their name */\nvar useCssAnimations;\n\n/**\n * Utility function to create elements. If no tag name is given,\n * a DIV is created. Optionally properties can be passed.\n */\nfunction createEl(tag, prop) {\n var el = document.createElement(tag || 'div');\n var n;\n\n for(n in prop) {\n el[n] = prop[n];\n }\n return el;\n}\n\n/**\n * Appends children and returns the parent.\n */\nfunction ins(parent /* child1, child2, ...*/) {\n for (var i=1, n=arguments.length; i> 1) : o.left+mid) + 'px',\n top: (o.top == 'auto' ? tp.y-ep.y + (target.offsetHeight >> 1) : o.top+mid) + 'px'\n });\n }\n\n el.setAttribute('aria-role', 'progressbar');\n self.lines(el, self.opts);\n\n if (!useCssAnimations) {\n // No CSS animation support, use setTimeout() instead\n var i = 0;\n var fps = o.fps;\n var f = fps/o.speed;\n var ostep = (1-o.opacity)/(f*o.trail / 100);\n var astep = f/o.lines;\n\n !function anim() {\n i++;\n for (var s=o.lines; s; s--) {\n var alpha = Math.max(1-(i+s*astep)%f * ostep, o.opacity);\n self.opacity(el, o.lines-s, alpha, o);\n }\n self.timeout = self.el && setTimeout(anim, ~~(1000/fps));\n }();\n }\n return self;\n },\n stop: function() {\n var el = this.el;\n if (el) {\n clearTimeout(this.timeout);\n if (el.parentNode) el.parentNode.removeChild(el);\n this.el = undefined;\n }\n return this;\n },\n lines: function(el, o) {\n var i = 0;\n var seg;\n\n function fill(color, shadow) {\n return css(createEl(), {\n position: 'absolute',\n width: (o.length+o.width) + 'px',\n height: o.width + 'px',\n background: color,\n boxShadow: shadow,\n transformOrigin: 'left',\n transform: 'rotate(' + ~~(360/o.lines*i+o.rotate) + 'deg) translate(' + o.radius+'px' +',0)',\n borderRadius: (o.width>>1) + 'px'\n });\n }\n for (; i < o.lines; i++) {\n seg = css(createEl(), {\n position: 'absolute',\n top: 1+~(o.width/2) + 'px',\n transform: o.hwaccel ? 'translate3d(0,0,0)' : '',\n opacity: o.opacity,\n animation: useCssAnimations && addAnimation(o.opacity, o.trail, i, o.lines) + ' ' + 1/o.speed + 's linear infinite'\n });\n if (o.shadow) ins(seg, css(fill('#000', '0 0 4px ' + '#000'), {top: 2+'px'}));\n ins(el, ins(seg, fill(o.color, '0 0 1px rgba(0,0,0,.1)')));\n }\n return el;\n },\n opacity: function(el, i, val) {\n if (i < el.childNodes.length) el.childNodes[i].style.opacity = val;\n }\n});\n\n/////////////////////////////////////////////////////////////////////////\n// VML rendering for IE\n/////////////////////////////////////////////////////////////////////////\n\n/**\n * Check and init VML support\n */\n!function() {\n\n function vml(tag, attr) {\n return createEl('<' + tag + ' xmlns=\"urn:schemas-microsoft.com:vml\" class=\"spin-vml\">', attr);\n }\n\n var s = css(createEl('group'), {behavior: 'url(#default#VML)'});\n\n if (!vendor(s, 'transform') && s.adj) {\n\n // VML support detected. Insert CSS rule ...\n sheet.addRule('.spin-vml', 'behavior:url(#default#VML)');\n\n Spinner.prototype.lines = function(el, o) {\n var r = o.length+o.width;\n var s = 2*r;\n\n function grp() {\n return css(vml('group', {coordsize: s +' '+s, coordorigin: -r +' '+-r}), {width: s, height: s});\n }\n\n var margin = -(o.width+o.length)*2+'px';\n var g = css(grp(), {position: 'absolute', top: margin, left: margin});\n\n var i;\n\n function seg(i, dx, filter) {\n ins(g,\n ins(css(grp(), {rotation: 360 / o.lines * i + 'deg', left: ~~dx}),\n ins(css(vml('roundrect', {arcsize: 1}), {\n width: r,\n height: o.width,\n left: o.radius,\n top: -o.width>>1,\n filter: filter\n }),\n vml('fill', {color: o.color, opacity: o.opacity}),\n vml('stroke', {opacity: 0}) // transparent stroke to fix color bleeding upon opacity change\n )\n )\n );\n }\n\n if (o.shadow) {\n for (i = 1; i <= o.lines; i++) {\n seg(i, -2, 'progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)');\n }\n }\n for (i = 1; i <= o.lines; i++) seg(i);\n return ins(el, g);\n };\n Spinner.prototype.opacity = function(el, i, val, o) {\n var c = el.firstChild;\n o = o.shadow && o.lines || 0;\n if (c && i+o < c.childNodes.length) {\n c = c.childNodes[i+o]; c = c && c.firstChild; c = c && c.firstChild;\n if (c) c.opacity = val;\n }\n };\n }\n else {\n useCssAnimations = vendor(s, 'animation');\n }\n}();\n\nmodule.exports = Spinner;\n","var __webpack_error__ = new Error();\nmodule.exports = new Promise(function(resolve, reject) {\n\tif(typeof iFrameResize !== \"undefined\") return resolve();\n\t__webpack_require__.l(\"https://cdn.trustyou.com/v2/hotel/widget-ui/shared/iframeResizer/4.3.2/iframeResizer.min.js\", function(event) {\n\t\tif(typeof iFrameResize !== \"undefined\") return resolve();\n\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\tvar realSrc = event && event.target && event.target.src;\n\t\t__webpack_error__.message = 'Loading script failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t__webpack_error__.name = 'ScriptExternalLoadError';\n\t\t__webpack_error__.type = errorType;\n\t\t__webpack_error__.request = realSrc;\n\t\treject(__webpack_error__);\n\t}, \"iFrameResize\");\n}).then(function() { return iFrameResize; });","module.exports = require(\"core-js-pure/stable/instance/filter\");","module.exports = require(\"core-js-pure/stable/parse-float\");","module.exports = require(\"core-js-pure/features/instance/replace-all\");","'use strict';\nvar parent = require('../../stable/instance/replace-all');\n\nmodule.exports = parent;\n","'use strict';\nrequire('../../../modules/es.array.filter');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('Array', 'filter');\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/filter');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.filter;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.filter) ? method : own;\n};\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../string/virtual/replace-all');\n\nvar StringPrototype = String.prototype;\n\nmodule.exports = function (it) {\n var own = it.replaceAll;\n return typeof it == 'string' || it === StringPrototype\n || (isPrototypeOf(StringPrototype, it) && own === StringPrototype.replaceAll) ? method : own;\n};\n","'use strict';\nrequire('../modules/es.parse-float');\nvar path = require('../internals/path');\n\nmodule.exports = path.parseFloat;\n","'use strict';\nrequire('../../../modules/es.regexp.exec');\nrequire('../../../modules/es.string.replace');\nrequire('../../../modules/es.string.replace-all');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'replaceAll');\n","'use strict';\nmodule.exports = require('../../full/instance/replace-all');\n","'use strict';\n// TODO: remove from `core-js@4`\nrequire('../../modules/esnext.string.replace-all');\n\nvar parent = require('../../actual/instance/replace-all');\n\nmodule.exports = parent;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar charAt = uncurryThis(''.charAt);\nvar $parseFloat = globalThis.parseFloat;\nvar Symbol = globalThis.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseFloat(Object(ITERATOR)); }));\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(toString(string));\n var result = $parseFloat(trimmedString);\n return result === 0 && charAt(trimmedString, 0) === '-' ? -0 : result;\n} : $parseFloat;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $parseFloat = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat !== $parseFloat }, {\n parseFloat: $parseFloat\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar $TypeError = TypeError;\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n replaceAll: function replaceAll(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, position, replacement;\n var endOfLastMatch = 0;\n var result = '';\n if (!isNullOrUndefined(searchValue)) {\n IS_REG_EXP = isRegExp(searchValue);\n if (IS_REG_EXP) {\n flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));\n if (!~indexOf(flags, 'g')) throw new $TypeError('`.replaceAll` does not allow non-global regexes');\n }\n replacer = getMethod(searchValue, REPLACE);\n if (replacer) return call(replacer, searchValue, O, replaceValue);\n if (IS_PURE && IS_REG_EXP) return replace(toString(O), searchValue, replaceValue);\n }\n string = toString(O);\n searchString = toString(searchValue);\n functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n searchLength = searchString.length;\n advanceBy = max(1, searchLength);\n position = indexOf(string, searchString);\n while (position !== -1) {\n replacement = functionalReplace\n ? toString(replaceValue(searchString, position, string))\n : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n result += stringSlice(string, endOfLastMatch, position) + replacement;\n endOfLastMatch = position + searchLength;\n position = position + advanceBy > string.length ? -1 : indexOf(string, searchString, position + advanceBy);\n }\n if (endOfLastMatch < string.length) {\n result += stringSlice(string, endOfLastMatch);\n }\n return result;\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.string.replace-all');\n","'use strict';\nvar parent = require('../../es/instance/filter');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/instance/replace-all');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../es/parse-float');\n\nmodule.exports = parent;\n"],"names":["map","myLngLat","poiMarker","result","hasMapDependencies","document","querySelector","console","log","mapboxgl","undefined","mapboxSdk","mapboxDirections","CreateMap","InitMapboxStyleSwitch","getComponents","_getComponents","apply","arguments","_asyncToGenerator","_regeneratorRuntime","_callee3","_yield$import","_yield$import2","_yield$import3","_context3","prev","next","sent","abrupt","stop","createMarker","markerLngLat","iconUrl","popupContent","marker","el","createElement","src","className","Marker","element","anchor","color","setLngLat","popup","Popup","closeOnClick","setHTML","setPopup","addTo","initialize","bounds","LngLatBounds","options","container","style","AppData","Mapbox","Style","scrollZoom","global","on","LngLat","HotelMapbox","txtLongitude","txtLatitude","extend","easeTo","center","zoom","beachMarkerImg","defaultStart","initializeDirections","mapboxClient","accessToken","AccessToken","directionsClient","getCanvasContainer","getRoute","end","travelMode","start","getDirections","profile","waypoints","coordinates","geometries","roundaboutExits","steps","send","then","response","flgUpdated","body","code","toLowerCase","routes","length","data","updateRouteSource","geometry","updateRouteDirections","route","geojson","getSource","setData","addLayer","base","stops","$","click","lat","_parseFloat","this","attr","lng","poiCoords","poiLngLat","poiTitle","html","myTravelMode","remove","fitBounds","padding","top","markerHeight","bottom","left","markerWidth","right","togglePopup","_setTimeout","offset","window","scrollTop","scrollOffset","height","pageScrollTo","AppLoader","ready","_callee2","init_map","mapElement","_context2","_ref2","_callee","components","_context","LazyInitializer","init","SetHotelRoomsTooltips","moreLink","lessLink","readmore","selector","speed","collapsedHeight","heightMargin","embedCSS","removeClass","refresh_map","raf","resize","e","Translations","afterToggle","trigger","expanded","GetBreakpointWidth","HotelShow","SerializedRoomTypes","_context4","_context5","_context6","_context7","minRoomTypes","MinRoomTypesOnPage","each","i","_findInstanceProperty","call","j","r","hide","show","_context11","parent","toggle","_context12","text","_trimInstanceProperty","slideToggle","preventDefault","c","$this","id","startOpen","update_readmore_inside_panel","panel_heading","target","$target","searchViewModel","ValidateSearchConditions_PageID","ValidateSearchConditions_DepartureAirportCode","ValidateSearchConditions_Rooms","HasDates","scrollToHotelPrices","$elm","expand_panel","$panel","$panel_heading","not","closest","scrollto","first","delay","animate","fixedWrapper","isUsed","handler_Resize","$fixedWrapper","handler_Scroll","$pricesButtonHolder","$checkoutButtonHolder","currentTop","GetBreakpointHeight","currentBottom","$anchor","pricesButtonHeight","outerHeight","checkoutButtonHeight","anchorTop","anchorBottom","SearchInProgress","RetrievingDataReady","HasDepartureAirportCode","SingleHotelResult","HasHotelRequestPrice","IsSameWithLastSearchConditions","updatePriceStickerContainer","searchbar","searchcriteria","has_search_criteria","setVisibleSearchCriteria","val","hideSection","showSection","_context13","ko","bindingHandlers","spinner","valueAccessor","allBindingsAccessor","lines","width","radius","corners","trail","Spinner","spin","utils","domNodeDisposal","addDisposeCallback","update","clickHotelMenuItem","topMenuHeights","getTopMenuHeights","hasClass","fullscreen","href","offsetTop","sticked","_parseInt","css","isHiddenInsideDescriptionReadMore","$more","is","fixHotelNavHeight","fixPageNavTopSpacing","maxWidth","topMenu","hDefault","hSticked","isNaN","h","default","loaded","lastId","updateSiteHeaderSticky","$pageNav","isStickied","event","$header","wrapperId","$headerWrapper","unwrapSiteHeader","unwrap","close_searchautocomplete","searchautocomplete","$searchautocomplete","autocomplete","hideSiteHeader","slideDown","wrapAll","siteHeadRoom","initialised","slideUp","$navMobile","firstId","menuItems","scrollItems","scrollItemsObj","k","elm","item","push","scroll","fromTop","cur","$description","_filterInstanceProperty","addClass","UpdateSiteHeaderSticky","PAGE_NAV_SHADOW_HEIGHT","MAX_HOTEL_RESULTS","PRICE_RANGE_MIN","PRICE_RANGE_MAX","DateTimeMinValue","GlobalEvents","SearchViewModel","Initialized","FormatPrice","price","flgPerPerson","abs","Math","ceil","format","numeral","Currency","Pattern","replace","Symbol","sufix","FormatTotalPrice","withoutCurrency","LocaleFormatPrice","FormatFlightTimeString","string","moment","FormatFlightDateString","FormatDateString","FormatFlightTime","mins","hours","floor","minutes","FormatFlightTime2","FormatTravelTime","seconds","FormatOnlyDate","FormatOnlyDateISO","FormatOnlyDateString","withoutYear","mom","noYearLocaleFormat","localeData","longDateFormat","FormatDateRange","fromDate","toData","FormatOnlyTimeString","FormatInsertYearInString","_replaceAllInstanceProperty","getFullYear","FormatDistance","distance","GetFormattedYear","date","GetFormattedDayOfMonth","GetFormattedDays","days","txt","String","GetFormattedNights","nights","defaultMinRoomsShown","defaultMinRoomBoardsShown","ShowMoreRoomTypesTitle","availableRoomTypes","minRoomsShown","count","ShowLessRoomTypes","index","clsHolder","roomsHolder","parents","ShowMoreRoomTypes","_context8","_context9","_context10","ShowLessRoomTypeBoards","indexRoom","indexRoomType","minRoomBoardsShown","$r","indx","b","ShowMoreRoomTypeBoards","IsCookieEnabled","cookieEnabled","navigator","name","cookie","expires","path","ArrayElementId","arrayName","itemIndex","fieldName","prefix","Array2ElementId","subArrayName","subItemIndex","RoomsPassengersElemId","roomIndex","passengerIndex","RoomsElemId","RoomsChildrenElemId","childIndex","SelectedRoomsElemId","SelectedRoomFeesElemId","feeIndex","HotelExtraBookingElemId","hotelExtraIndex","HotelExtraElemId","CarRentalExtraElemId","SelectedCarRentalExtraElemId","CarRentalFeeElemId","GetHotelSummaryRoomTooltipOptions","content","classes","def","position","my","at","tooltip","adjust","y","_context14","qtip","x","$hoverinfo","ScrollToTarget","SetHotelArrivalTooltips","flgInfo","myTripSearchViewModel","IsAnotherHotelArrivalDate","SetRoomsPassengersTooltips","match","holder","InitScript_searchSingleResult","isSingleResults","IsHotel","RequestSearch","PriceRequest","ShowAlert","currentStep","ProcessWizard","CurrentStep","MyTripValidator","ValidateStep","scrollToHotelSearchBar","delayDuration","animateDuration","topMenuHeight","shadowHeight","searchBox","$target_mobile","useCssAnimations","prefixes","animations","createEl","tag","prop","n","ins","appendChild","sheet","getElementsByTagName","styleSheet","addAnimation","alpha","join","z","max","substring","indexOf","pre","insertRule","vendor","pp","s","charAt","toUpperCase","slice","merge","obj","pos","o","offsetLeft","offsetParent","defaults","rotate","opacity","fps","zIndex","opts","prototype","ep","tp","self","mid","insertBefore","firstChild","offsetWidth","offsetHeight","setAttribute","f","ostep","astep","anim","timeout","setTimeout","clearTimeout","parentNode","removeChild","seg","fill","shadow","background","boxShadow","transformOrigin","transform","borderRadius","hwaccel","animation","childNodes","vml","behavior","adj","addRule","grp","coordsize","coordorigin","margin","g","dx","filter","rotation","arcsize","module","exports","__webpack_error__","Error","Promise","resolve","reject","iFrameResize","__webpack_require__","l","errorType","type","realSrc","message","request","getBuiltInPrototypeMethod","isPrototypeOf","method","ArrayPrototype","Array","it","own","StringPrototype","replaceAll","parseFloat","uncurryThis","toObject","stringSlice","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","str","captures","namedCaptures","replacement","tailPos","m","symbols","ch","capture","globalThis","fails","toString","trim","whitespaces","$parseFloat","ITERATOR","iterator","FORCED","Infinity","Object","trimmedString","anObject","that","hasIndices","ignoreCase","multiline","dotAll","unicode","unicodeSets","sticky","hasOwn","regExpFlags","RegExpPrototype","RegExp","R","flags","$filter","proto","forced","arrayMethodHasSpeciesSupport","callbackfn","requireObjectCoercible","isCallable","isNullOrUndefined","isRegExp","getMethod","getRegExpFlags","getSubstitution","wellKnownSymbol","IS_PURE","REPLACE","$TypeError","TypeError","searchValue","replaceValue","IS_REG_EXP","replacer","searchString","functionalReplace","searchLength","advanceBy","O","endOfLastMatch"],"sourceRoot":""}