{"version":3,"file":"folks-selector-073814f7b7.js","sources":["folks-selector-073814f7b7.js"],"sourcesContent":["import { close as destinationPickerClose } from './destination-picker.js';\r\nimport { close as airportPickerClose } from './airport-picker.js';\r\nimport { submit as dynamicSearchSubmit } from \"./dynamic-search.js\"\r\nimport { breakpoints, lockout } from \"./utilities.js\";\r\nimport { getSearchBarOptions as searchBarGetSearchBarOptions, searchBlockPickerClose, searchBlockPickerOpen } from \"./search-bar.js\"\r\nimport { default as Mustache } from \"./mustache.js\"\r\n\r\nlet template;\r\n\r\nconst elements = {\r\n\tpageWrappers: $('.l-page, .l-page__inner, .m-grid, .l-nav__menu__item--simple'),\r\n\tpopups: null\r\n}\r\n\r\nconst state = {\r\n\twrapper: null,\r\n\thtml: null,\r\n\tisPopup: true,\r\n\r\n\tstore: function(popup) {\r\n\t\tstate.wrapper = popup.find('.js-folks-selector-popup-inputs-wrapper');\r\n\t\tstate.html = state.wrapper.html();\r\n\t},\r\n\r\n\trestore: function() {\r\n\t\tif (state.wrapper === null || state.html === null) return;\r\n\r\n\t\tstate.wrapper = null;\r\n\t\tstate.html = null;\r\n\t\tstate.isPopup = true;\r\n\t},\r\n\r\n}\r\n\r\nconst close = function(wrapper, doSearch) {\r\n\r\n\telements.pageWrappers.removeAttr('style');\r\n\t$('.js-folks-selector-trigger').removeClass('is-active');\r\n\r\n\tif (state.isPopup) {\r\n\t\tlockout.off();\r\n\t}\r\n\r\n\telements.popups.hide();\r\n\r\n\tvar searchBlockWrapper = wrapper.closest('.js-search-block-wrapper');\r\n\tif (searchBlockWrapper.length) {\r\n\t\tapplyFlattenedRoomsToOtherTabIfRequired(searchBlockWrapper);\r\n\t}\r\n\r\n\t// booking widget only\r\n\tif (doSearch) {\r\n\r\n\t\tvar submit = wrapper.find('.js-booking-widget-generic-submit');\r\n\t\tif (submit.length) {\r\n\t\t\tsubmit.trigger('click');\r\n\t\t}\r\n\t\t// dynamic search\r\n\r\n\t\tif (isInsideDynamicSearchArea(wrapper)) dynamicSearchSubmit(false);\r\n\r\n\t} else {\r\n\r\n\t\tstate.restore();\r\n\r\n\t}\r\n\t$('.l-nav').css('z-index', '13');\r\n}\r\n\r\nconst isInsideDynamicSearchArea = function(element) {\r\n\treturn element.parents('.js-dynamic-search').length;\r\n}\r\n\r\nconst showMessaging = function(wrapper) {\r\n\r\n\tvar inputsRow = wrapper.find('.js-folks-selector-popup-row'),\r\n\t\tmessage = 'sharing ' + inputsRow.length + ' rooms',\r\n\t\tmessageElement = wrapper.find('.js-folks-selector-trigger-message');\r\n\r\n\tif (inputsRow.length > 1) {\r\n\r\n\t\tif (messageElement.length) {\r\n\t\t\tmessageElement.html(message);\r\n\t\t} else {\r\n\t\t\twrapper.find('.js-folks-selector-trigger:not(.js-folks-selector-trigger-standalone)')\r\n\t\t\t\t.after('

' + message + '

');\r\n\t\t}\r\n\r\n\t} else {\r\n\r\n\t\tif (messageElement.length) {\r\n\t\t\tmessageElement.remove();\r\n\t\t}\r\n\r\n\t}\r\n}\r\n\r\nconst calculatePeople = function(wrapper) {\r\n\r\n\tvar adults = 0,\r\n\t\tchildren = 0,\r\n\t\tinfants = 0,\r\n\t\tinputsRow = wrapper.find('.js-folks-selector-popup-row');\r\n\r\n\tinputsRow.each(function() {\r\n\r\n\t\tvar inputs = $(this);\r\n\t\tadults += parseInt(inputs.find('.js-folks-selector-popup-row-adults').val());\r\n\t\tchildren += parseInt(inputs.find('.js-folks-selector-popup-row-children').val());\r\n\t\tinfants += parseInt(inputs.find('.js-folks-selector-popup-row-infants').val());\r\n\r\n\t});\r\n\r\n\treturn { adults: adults, children: children, infants: infants };\r\n}\r\n\r\nconst calculatePeopleAndShowMessage = function(wrapper) {\r\n\r\n\tvar peopleCount = calculatePeople(wrapper);\r\n\r\n\tvar adultNumber = wrapper.find('.js-folks-selector-trigger-adults'),\r\n\t\tchildrenNumber = wrapper.find('.js-folks-selector-trigger-children'),\r\n\t\tinfantsNumber = wrapper.find('.js-folks-selector-trigger-infants');\r\n\r\n\tadultNumber.text(peopleCount.adults);\r\n\tchildrenNumber.text(peopleCount.children);\r\n\tinfantsNumber.text(peopleCount.infants);\r\n\r\n\tshowMessaging(wrapper);\r\n\r\n}\r\n\r\nconst setOccupancyLimits = function(wrapper, minOccupancy, maxOccupancy, absoluteMaxChildOccupancy) {\r\n\twrapper.find('.js-adults').each(function() {\r\n\t\tvar row = $(this);\r\n\t\trow.attr('min', minOccupancy);\r\n\t\trow.attr('max', maxOccupancy);\r\n\t\trow.attr('data-combined-max', maxOccupancy);\r\n\t});\r\n\r\n\tvar maxChildOccupancy = maxOccupancy > absoluteMaxChildOccupancy ? absoluteMaxChildOccupancy : maxOccupancy;\r\n\twrapper.find('.js-children').each(function() {\r\n\t\tvar row = $(this);\r\n\t\trow.attr('max', maxChildOccupancy);\r\n\t\trow.attr('data-combined-max', maxOccupancy);\r\n\t});\r\n}\r\n\r\nconst setMaxRooms = function(wrapper, maxRooms) {\r\n\twrapper.find('.js-folks-selector-wrapper-limit').val(maxRooms);\r\n\tshowOrHideAddRoombutton(wrapper);\r\n}\r\n\r\nconst parseForm = function(wrapper) {\r\n\r\n\tvar inputsRow = wrapper.find('.js-folks-selector-popup-row');\r\n\tvar formData = [];\r\n\r\n\tinputsRow.each(function() {\r\n\r\n\t\tvar inputs = $(this);\r\n\t\tvar adults = parseInt(inputs.find('.js-folks-selector-popup-row-adults').val());\r\n\t\tvar children = parseInt(inputs.find('.js-folks-selector-popup-row-children').val());\r\n\t\tvar infants = parseInt(inputs.find('.js-folks-selector-popup-row-infants').val());\r\n\r\n\t\tvar adultMaxOccupancy = parseInt(inputs.find('.js-folks-selector-popup-row-adults').attr('max')),\r\n\t\t\tchildMaxOccupancy = parseInt(inputs.find('.js-folks-selector-popup-row-children').attr('max')),\r\n\t\t\tinfantMaxOccupancy = parseInt(inputs.find('.js-folks-selector-popup-row-infants').attr('max'));\r\n\r\n\t\tvar adultMinOccupancy = parseInt(inputs.find('.js-folks-selector-popup-row-adults').attr('min'));\r\n\r\n\t\tformData.push({\r\n\t\t\tAdultCount: adults,\r\n\t\t\tChildCount: children,\r\n\t\t\tInfantCount: infants,\r\n\t\t\tAdultMaxOccupancy: adultMaxOccupancy,\r\n\t\t\tAdultMinOccupancy: adultMinOccupancy,\r\n\t\t\tChildMaxOccupancy: childMaxOccupancy,\r\n\t\t\tInfantMaxOccupancy: infantMaxOccupancy,\r\n\t\t\tRoomNumber: formData.length + 1,\r\n\t\t\tFormNumber: formData.length,\r\n\t\t\tId: guid.create()\r\n\t\t});\r\n\r\n\t});\r\n\r\n\treturn formData;\r\n\r\n}\r\n\r\nconst guid = {\r\n\ts4: function() {\r\n\t\treturn Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);\r\n\t},\r\n\r\n\tcreate: function() {\r\n\r\n\t\treturn guid.s4() +\r\n\t\t\tguid.s4() +\r\n\t\t\t'-' +\r\n\t\t\tguid.s4() +\r\n\t\t\t'-' +\r\n\t\t\tguid.s4() +\r\n\t\t\t'-' +\r\n\t\t\tguid.s4() +\r\n\t\t\t'-' +\r\n\t\t\tguid.s4() +\r\n\t\t\tguid.s4() +\r\n\t\t\tguid.s4();\r\n\t}\r\n}\r\n\r\nconst addRoom = function(wrapper, inputsWrapper, popup) {\r\n\r\n\tvar roomConfigQueryStringName = wrapper.find('.js-folks-selector-room-config-query-string-name').val();\r\n\r\n\tvar inputsRow = wrapper.find('.js-folks-selector-popup-row');\r\n\r\n\tvar formData = parseForm(wrapper);\r\n\tformData.push({\r\n\t\tRoomNumber: inputsRow.length + 1,\r\n\t\tFormNumber: inputsRow.length,\r\n\t\tId: guid.create(),\r\n\t\tAdultCount: 2,\r\n\t\tChildCount: 0,\r\n\t\tInfantCount: 0,\r\n\t\tAdultMinOccupancy: formData[0].AdultMinOccupancy,\r\n\t\tAdultMaxOccupancy: formData[0].AdultMaxOccupancy,\r\n\t\tChildMaxOccupancy: formData[0].ChildMaxOccupancy,\r\n\t\tInfantMaxOccupancy: formData[0].InfantMaxOccupancy\r\n\t});\r\n\r\n\tvar renderedRow = Mustache.render(template, { Rooms: formData, RoomConfigQueryStringName: roomConfigQueryStringName, IncludeWrappingHtml: false, MultipleRoomMode: true });\r\n\tinputsWrapper.html(renderedRow);\r\n\r\n\tshowOrHideAddRoombutton(wrapper);\r\n\tshowOrHideContactUsMessage(wrapper);\r\n\r\n\tpopup.find('.m-folks-selector__popup__row__room-number').last().focus();\r\n\r\n\tcalculatePeopleAndShowMessage(wrapper);\r\n\r\n}\r\n\r\nconst showOrHideContactUsMessage = function(wrapper) {\r\n\r\n\tvar inputsRow = wrapper.find('.js-folks-selector-popup-row');\r\n\tvar contactUsMessage = wrapper.find('.js-folks-selector-popup-contact');\r\n\r\n\tif (inputsRow.length === 9) {\r\n\t\tcontactUsMessage.show();\r\n\t} else {\r\n\t\tcontactUsMessage.hide();\r\n\t}\r\n}\r\n\r\nconst showOrHideAddRoombutton = function(wrapper) {\r\n\r\n\tvar inputsRows = wrapper.find('.js-folks-selector-popup-row');\r\n\r\n\tif (shouldHideAddRoomButton(wrapper, inputsRows.length)) {\r\n\t\thideAddRoomButton(wrapper);\r\n\t} else {\r\n\t\tshowAddRoomButton(wrapper);\r\n\t}\r\n\r\n}\r\n\r\nconst shouldHideAddRoomButton = function(wrapper, currentLength) {\r\n\tvar limit = parseInt(wrapper.find('.js-folks-selector-wrapper-limit').val());\r\n\r\n\tif (currentLength >= limit) {\r\n\t\treturn true;\r\n\t}\r\n\r\n\treturn false;\r\n}\r\n\r\nconst hideAddRoomButton = function(wrapper) {\r\n\twrapper.find('.js-search-add-room').hide();\r\n}\r\n\r\nconst showAddRoomButton = function(wrapper) {\r\n\twrapper.find('.js-search-add-room').show();\r\n}\r\n\r\nconst removeRoom = function(wrapper, inputsWrapper) {\r\n\r\n\tvar roomConfigQueryStringName = wrapper.find('.js-folks-selector-room-config-query-string-name').val();\r\n\r\n\tvar formData = parseForm(wrapper);\r\n\tvar renderedRow = Mustache.render(template, { Rooms: formData, RoomConfigQueryStringName: roomConfigQueryStringName, IncludeWrappingHtml: false, MultipleRoomMode: true });\r\n\tinputsWrapper.html(renderedRow);\r\n\r\n\tshowOrHideAddRoombutton(wrapper);\r\n\tshowOrHideContactUsMessage(wrapper);\r\n\tcalculatePeopleAndShowMessage(wrapper);\r\n}\r\n\r\nconst applyFlattenedRoomsToOtherTabIfRequired = function(searchBlockWrapper) {\r\n\r\n\tvar activeTabWrapper = searchBlockWrapper.find('.js-tabs-tab:visible');\r\n\tvar inactiveTabWrapper = searchBlockWrapper.find('.js-tabs-tab:hidden');\r\n\r\n\tvar inactiveTabInputsWrapper = inactiveTabWrapper.find('.js-folks-selector-popup-inputs-wrapper');\r\n\r\n\tvar activeTabPeopleCount = calculatePeople(activeTabWrapper);\r\n\tvar inactiveTabPeopleCount = calculatePeople(inactiveTabWrapper);\r\n\r\n\tif (inactiveTabRequiresUpdating(activeTabPeopleCount, inactiveTabPeopleCount))\r\n\t\tflattenRooms(inactiveTabWrapper, inactiveTabInputsWrapper, activeTabPeopleCount);\r\n\r\n}\r\n\r\nconst inactiveTabRequiresUpdating = function(firstPeopleCount, secondPeopleCount) {\r\n\treturn firstPeopleCount.adults !== secondPeopleCount.adults ||\r\n\t\tfirstPeopleCount.children !== secondPeopleCount.children ||\r\n\t\tfirstPeopleCount.infants !== secondPeopleCount.infants;\r\n}\r\n\r\n\r\nconst flattenRooms = function(wrapper, inputsWrapper, peopleCounts) {\r\n\r\n\tvar formData = parseForm(wrapper);\r\n\tvar firstRow = formData[0];\r\n\tfirstRow.AdultCount = peopleCounts.adults;\r\n\tfirstRow.ChildCount = peopleCounts.children;\r\n\tfirstRow.InfantCount = peopleCounts.infants;\r\n\r\n\tvar roomConfigQueryStringName = wrapper.find('.js-folks-selector-room-config-query-string-name').val();\r\n\tvar renderedRow = Mustache.render(template, { Rooms: [firstRow], RoomConfigQueryStringName: roomConfigQueryStringName, IncludeWrappingHtml: false, MultipleRoomMode: true });\r\n\tinputsWrapper.html(renderedRow);\r\n\r\n\tcalculatePeopleAndShowMessage(wrapper);\r\n\tshowOrHideAddRoombutton(wrapper);\r\n}\r\n\r\nconst init = function() {\r\n\r\n\ttemplate = $('#folkSelectorTemplate');\r\n\r\n\tif (!template.length) return;\r\n\r\n\ttemplate = template.html();\r\n\t// make the overlay clickable to close the form\r\n\r\n\twindow.site.body.click(function(e) {\r\n\r\n\t\tif ($('.js-folks-selector-popup').is(':visible')) {\r\n\r\n\t\t\tif (!($(e.target).parents('.m-folks-selector__popup').length > 0)) {\r\n\r\n\t\t\t\tvar wrapper = $('.js-folks-selector-popup-inputs-wrapper:visible').closest('.js-folks-selector-wrapper');\r\n\t\t\t\tcalculatePeopleAndShowMessage(wrapper);\r\n\r\n\t\t\t\tvar shouldSearch = !$(e.target).hasClass('js-datepicker-wrapper') && !$(e.target).hasClass('js-destination-picker-facade') && !$(e.target).hasClass('js-datepicker-input') && !$(e.target).hasClass('js-datepicker-trigger') && !$(e.target).hasClass('js-airport-picker-trigger') && !$(e.target).hasClass('js-airport-picker-facade') && !$('.js-navsearch-sub .js-folks-selector-wrapper').is(':visible');\r\n\t\t\t\tclose(wrapper, shouldSearch);\r\n\t\t\t}\r\n\t\t\te.stopPropagation();\r\n\t\t}\r\n\t});\r\n\r\n\telements.popups = $('.js-folks-selector-popup');\r\n\r\n\tconst initSelectors = () => {\r\n\r\n\t\t$('.js-folks-selector-wrapper:not(.js-folks-selector-wrapper-done)').each(function() {\r\n\t\t\tvar wrapper = $(this),\r\n\t\t\t\tpopup = wrapper.find('.js-folks-selector-popup'),\r\n\t\t\t\tclosePopup = wrapper.find('.js-folks-selector-popup-close'),\r\n\t\t\t\tconfirmChoice = wrapper.find('.js-folks-selector-popup-submit'),\r\n\t\t\t\tinputsWrapper = wrapper.find('.js-folks-selector-popup-inputs-wrapper'),\r\n\t\t\t\taddRoomRow = wrapper.find('.js-folks-selector-popup-add-room'),\r\n\t\t\t\tcontactUsMessage = wrapper.find('.js-folks-selector-popup-contact'),\r\n\t\t\t\tdestination = wrapper.find('.js-folks-selector-destination'),\r\n\t\t\t\tdestinationDisabledState = destination.is(':disabled'),\r\n\t\t\t\tdeparting = wrapper.find('.js-folks-selector-departing'),\r\n\t\t\t\tdepartingDisabledState = departing.is(':disabled'),\r\n\t\t\t\tduration = wrapper.find(\".js-folks-selector-duration\"),\r\n\t\t\t\tdurationDisabledState = duration.is(':disabled');\r\n\r\n\t\t\tvar inputsRow = wrapper.find('.js-folks-selector-popup-row');\r\n\t\t\tif (shouldHideAddRoomButton(wrapper, inputsRow.length)) {\r\n\t\t\t\thideAddRoomButton(wrapper);\r\n\t\t\t}\r\n\r\n\t\t\tif (inputsRow.length === 9) {\r\n\t\t\t\tcontactUsMessage.show();\r\n\t\t\t} else {\r\n\t\t\t\tcontactUsMessage.hide();\r\n\t\t\t}\r\n\t\t\tif (destination.length && departing.length) {\r\n\t\t\t\tupdateFormDisabledState(false, false, false);\r\n\t\t\t\tupdateFolksSelector();\r\n\t\t\t\tupdateFormDisabledState(destinationDisabledState, departingDisabledState, durationDisabledState);\r\n\t\t\t}\r\n\r\n\t\t\t// destination\r\n\r\n\t\t\tfunction updateFormDisabledState(destinationDisabled, departingDisabled, durationDisabled) {\r\n\t\t\t\tdestination.prop('disabled', destinationDisabled);\r\n\t\t\t\tdeparting.prop('disabled', departingDisabled);\r\n\t\t\t\tduration.prop('disabled', durationDisabled);\r\n\t\t\t}\r\n\r\n\t\t\t// enableDatepicker bool - if wrapper resides in a disabled tab don't enable the datepicker\r\n\r\n\t\t\tvar enableDatepicker = wrapper.closest('.js-tabs-tab').is('.js-tabs-tab-disabled');\r\n\r\n\t\t\tfunction updateFolksSelector() {\r\n\t\t\t\tconsole.log('updateFolksSelector')\r\n\t\t\t\tsearchBarGetSearchBarOptions(\r\n\t\t\t\t\twrapper.find('input,select'),\r\n\t\t\t\t\tdeparting,\r\n\t\t\t\t\tduration,\r\n\t\t\t\t\tenableDatepicker,\r\n\t\t\t\t\twrapper);\r\n\t\t\t}\r\n\r\n\t\t\t// popup open\r\n\r\n\t\t\twrapper.on('click keypress', '.js-folks-selector-trigger', function(e) {\r\n\r\n\t\t\t\twindow.site.body.trigger('closeDatePicker');\r\n\r\n\t\t\t\tif (e.type === 'click' || ((e.type === 'keypress') && e.which === 13)) {\r\n\r\n\t\t\t\t\t// if it is already open close\r\n\t\t\t\t\tif (wrapper.find('.js-folks-selector-popup').is(':visible')) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// hide destinations and airport picker\r\n\t\t\t\t\tdestinationPickerClose(false);\r\n\t\t\t\t\tairportPickerClose(false);\r\n\r\n\t\t\t\t\t// lock the page + show the popup\r\n\t\t\t\t\tvar isPopup = state.isPopup;\r\n\t\t\t\t\tif ($(e.currentTarget).hasClass('js-folks-selector-trigger--no-popup-desktop') && window.site.win.width() >= breakpoints.tablet) {\r\n\t\t\t\t\t\tisPopup = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (isPopup) {\r\n\t\t\t\t\t\tlockout.on();\r\n\t\t\t\t\t\tsearchBlockPickerOpen($(e.currentTarget));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// close any currently open\r\n\t\t\t\t\tif ($('.js-folks-selector-popup:visible').length) {\r\n\t\t\t\t\t\tstate.isPopup = isPopup;\r\n\t\t\t\t\t\tclose(wrapper, false);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\twrapper.find('.js-folks-selector-popup').show();\r\n\t\t\t\t\t// store the current state\r\n\t\t\t\t\tstate.store(popup);\r\n\t\t\t\t\tstate.isPopup = isPopup;\r\n\t\t\t\t\tshowOrHideAddRoombutton(wrapper);\r\n\t\t\t\t\tshowOrHideContactUsMessage(wrapper);\r\n\t\t\t\t\tpopup.find('.m-folks-selector__popup__row__room-number').first().focus();\r\n\r\n\r\n\t\t\t\t\twrapper.find('.js-folks-selector-trigger').addClass('is-active');\r\n\t\t\t\t\twrapper.find('.js-quantity-button:visible').first().focus();\r\n\r\n\t\t\t\t\treturn false;\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\r\n\t\t\t// popup close click\r\n\r\n\t\t\tclosePopup.on('click', function(e) {\r\n\r\n\t\t\t\tcalculatePeopleAndShowMessage(wrapper);\r\n\t\t\t\tclose(wrapper, true);\r\n\t\t\t\tsearchBlockPickerClose();\r\n\t\t\t\treturn false;\r\n\r\n\t\t\t});\r\n\r\n\t\t\t// confirm choice\r\n\t\t\tconfirmChoice.on('click', function() {\r\n\r\n\t\t\t\tcalculatePeopleAndShowMessage(wrapper);\r\n\t\t\t\tclose(wrapper, true);\r\n\t\t\t\treturn false;\r\n\r\n\t\t\t});\r\n\r\n\t\t\t// add a new room row\r\n\t\t\taddRoomRow.on('click', function() {\r\n\t\t\t\taddRoom(wrapper, inputsWrapper, popup);\r\n\t\t\t\treturn false;\r\n\r\n\t\t\t});\r\n\r\n\t\t\t// remove a room\r\n\r\n\t\t\tinputsWrapper.on('click', '.js-folks-selector-popup-remove', function() {\r\n\r\n\t\t\t\t$(this).closest('.js-folks-selector-popup-row').remove();\r\n\t\t\t\tremoveRoom(wrapper, inputsWrapper);\r\n\t\t\t\treturn false;\r\n\r\n\t\t\t});\r\n\r\n\t\t\t// show messaging on load\r\n\t\t\tshowMessaging(wrapper);\r\n\r\n\t\t\t// done\r\n\t\t\twrapper.addClass('js-folks-selector-wrapper-done');\r\n\r\n\t\t});\r\n\t}\r\n\r\n\tsetTimeout(initSelectors, 400); //Fixes a race condition, cant use an event based solution with the way the pickers are written currently.\r\n\r\n}\r\n\r\nexport default init;\r\nexport { setOccupancyLimits, setMaxRooms, showMessaging, init, calculatePeopleAndShowMessage, close };\r\n"],"names":["destinationPickerClose","airportPickerClose","dynamicSearchSubmit","breakpoints","lockout","searchBarGetSearchBarOptions","searchBlockPickerClose","searchBlockPickerOpen","Mustache","let","template","elements","pageWrappers","$","popups","state","wrapper","html","isPopup","store","popup","find","restore","close","doSearch","removeAttr","removeClass","off","hide","searchBlockWrapper","closest","length","applyFlattenedRoomsToOtherTabIfRequired","submit","trigger","isInsideDynamicSearchArea","css","element","parents","showMessaging","inputsRow","message","messageElement","after","remove","calculatePeople","adults","children","infants","each","inputs","this","parseInt","val","calculatePeopleAndShowMessage","peopleCount","adultNumber","childrenNumber","infantsNumber","text","setOccupancyLimits","minOccupancy","maxOccupancy","absoluteMaxChildOccupancy","row","attr","maxChildOccupancy","setMaxRooms","maxRooms","showOrHideAddRoombutton","parseForm","formData","adultMaxOccupancy","childMaxOccupancy","infantMaxOccupancy","adultMinOccupancy","push","AdultCount","ChildCount","InfantCount","AdultMaxOccupancy","AdultMinOccupancy","ChildMaxOccupancy","InfantMaxOccupancy","RoomNumber","FormNumber","Id","guid","create","s4","Math","floor","random","toString","substring","addRoom","inputsWrapper","roomConfigQueryStringName","renderedRow","render","Rooms","RoomConfigQueryStringName","IncludeWrappingHtml","MultipleRoomMode","showOrHideContactUsMessage","last","focus","contactUsMessage","show","inputsRows","shouldHideAddRoomButton","hideAddRoomButton","showAddRoomButton","currentLength","removeRoom","activeTabWrapper","inactiveTabWrapper","inactiveTabInputsWrapper","activeTabPeopleCount","inactiveTabPeopleCount","inactiveTabRequiresUpdating","flattenRooms","firstPeopleCount","secondPeopleCount","peopleCounts","firstRow","init","window","site","body","click","e","shouldSearch","is","target","hasClass","stopPropagation","setTimeout","closePopup","confirmChoice","addRoomRow","destination","destinationDisabledState","departing","departingDisabledState","duration","durationDisabledState","updateFormDisabledState","destinationDisabled","departingDisabled","durationDisabled","prop","console","log","enableDatepicker","on","type","which","currentTarget","win","width","tablet","first","addClass"],"mappings":"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"}