{"version":3,"file":"js/search.1237495b.js","mappings":"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","sources":["webpack://python-webpack-boilerplate/./frontend/src/components/search_results.ts","webpack://python-webpack-boilerplate/./frontend/src/components/search_results_pagination.ts","webpack://python-webpack-boilerplate/./frontend/src/application/search.js","webpack://python-webpack-boilerplate/./frontend/src/components/choose_hotel_button.ts"],"sourcesContent":["import $ from \"jquery\";\n\nexport let searchResults = {\n    initialize() {\n        $(document).on('click', 'li[id^=hotel-]', function () {\n            window.location.href = $(this).find('a').attr('href') + location.search;\n            return false;\n        });\n\n    }\n};\n","import jQuery from \"jquery\";\nimport { searchCore, SearchParams } from \"./search_core\";\n\nexport let searchResultsPagination = {\n    initialize(searchParams: SearchParams) {\n        let $ = jQuery;\n        // Handle left button\n        $(document).on('click', '.left-button', function () {\n            if (!($(this).parent().hasClass('disabled'))) {\n                searchCore.startResult -= searchCore.shownResultsSize;\n                searchCore.doSearchInner(false, searchParams);\n            }\n            return false;\n        });\n\n        // Handle right button\n        $(document).on('click', '.right-button', function () {\n            if (!($(this).parent().hasClass('disabled'))) {\n                searchCore.startResult += searchCore.shownResultsSize;\n                searchCore.doSearchInner(false, searchParams);\n            }\n            return false;\n        });\n\n        // Handle page buttons\n        $(document).on('click', 'a[class^=page-button-]', function () {\n            if (!($(this).parent().hasClass('active'))) {\n                let classVal = $(this).attr('class');\n                if (classVal) {\n                    let pageNum = parseInt(classVal.split('-')[2]);\n                    searchCore.startResult = (pageNum - 1) * searchCore.shownResultsSize;\n                    searchCore.doSearchInner(false, searchParams);\n                }\n            }\n            return false;\n        });\n    }\n};\n","import SearchFilters from \"../components/search_filters\";\nimport {searchCore} from \"../components/search_core\";\nimport {searchResults} from \"../components/search_results\";\nimport {searchResultsPagination} from \"../components/search_results_pagination\";\nimport {searchBar} from \"../components/search_bar\";\nimport {chooseHotelButton} from \"../components/choose_hotel_button\";\n\nwindow.searchBar = searchBar;\nwindow.searchCore = searchCore;\nwindow.searchFilters = new SearchFilters();\n\nwindow.searchResults = searchResults;\nwindow.searchResultsPagination = searchResultsPagination;\n\nwindow.search = {\n    initialize: function (maxNumHotels, storeHotelURL, hotelSelectedURL, requestCreateURL, addToHotelRequestId) {\n        chooseHotelButton.initialize(false, maxNumHotels, storeHotelURL, hotelSelectedURL, requestCreateURL, undefined, addToHotelRequestId);\n    }\n};\n","import $ from \"jquery\";\n\nexport let chooseHotelButton = {\n    initialize: function (redirectToRequest: boolean, maxNumHotels: number, storeHotelURL: string, hotelSelectedURL: string, requestCreateURL: string, searchQueryParams: string, addToHotelRequestId: number) {\n        $(document).on('click', 'button[id^=\"choose-hotel-\"]', function() {\n            let hotelId, isDirect;\n\n            let thisElem = $(this);\n            if (!thisElem) {\n                return false;\n            }\n            let id = thisElem.attr('id');\n            if (!id) {\n                return false;\n            }\n            // Get hotel ID\n            let hotelIdParts = id.split('-');\n            if (hotelIdParts.length === 4) {\n                hotelId = id.split('-')[3];\n                isDirect = true;\n            } else {\n                hotelId = id.split('-')[2];\n                isDirect = false;\n            }\n            if (redirectToRequest) {\n                isDirect = true;\n            }\n\n            // Get campaign ID if available\n            let campaignId = thisElem.attr('data-campaign-id');\n            let chooseButton = thisElem;\n\n            // Get number of people, if available\n            // let numPeople = $('input[id=input-num-people]').val() || 0;\n\n            // Get hotel name\n            // let hotelName = $('#list-grid-title-' + hotelId).text() || $('#hotel-title').text();\n\n            // Check if we have added too many hotels\n            let numHotelsElem = $('#num-hotels');\n            let numHotelsModalElem = $('#num-hotels-modal');\n            let numHotels =  parseInt(numHotelsElem.text());\n\n            if (numHotels >= maxNumHotels) {\n                alert('Du kan ikke legge til flere hotell til denne forespørselen.');\n            } else {\n                $.post(storeHotelURL, {hotel_id: hotelId}, function(data: {status: string, num_stored_hotels: number}) {\n                    // Hide the choose button\n                    if (!isDirect) {\n                        chooseButton.addClass('hidden');\n                    }\n                    if (!isDirect) {\n                        let selectedHotelsPanel = $('#selected-hotels-panel');\n                        let selectedHotelsMobilePanel = $('#selected-hotels-mobile-panel');\n                        selectedHotelsPanel.removeClass('hidden');\n                        selectedHotelsMobilePanel.removeClass('hidden');\n                        $('.btn-selected-hotels').removeClass('disabled');\n                    }\n\n                    // Update number of hotels\n                    numHotelsElem.html(data.num_stored_hotels.toString());\n                    numHotelsModalElem.html(data.num_stored_hotels.toString());\n\n                    // Update selected hotels panel\n                    $.getJSON(hotelSelectedURL, function (data: {html: string, html_mobile: string}) {\n                        $('#selected-hotels-panel-inner').html(data.html);\n                        $('#selected-hotels-mobile-panel-inner').html(data.html_mobile);\n                    });\n\n                    if (isDirect) {\n                        let url = requestCreateURL;\n                        if (searchQueryParams) {\n                            url += `?${searchQueryParams}`;\n                        }\n                        if (campaignId !== null && campaignId !== undefined) {\n                            if (url.indexOf('?') === -1) {\n                                url += '?';\n                            } else {\n                                url += '&';\n                            }\n                            url += `campaign_id=${campaignId}`;\n                        }\n                        if (addToHotelRequestId) {\n                            if (url.indexOf('?') === -1) {\n                                url += '?';\n                            } else {\n                                url += '&';\n                            }\n                            url += `add_to_request_id=${addToHotelRequestId}`;\n                        }\n                        window.location.href = url;\n                    }\n                });\n            }\n            return false;\n        });\n    }\n};\n"],"names":["searchResults","initialize","document","on","window","location","href","this","find","attr","search","searchResultsPagination","searchParams","$","parent","hasClass","startResult","shownResultsSize","doSearchInner","classVal","pageNum","parseInt","split","searchBar","searchCore","searchFilters","SearchFilters","maxNumHotels","storeHotelURL","hotelSelectedURL","requestCreateURL","addToHotelRequestId","chooseHotelButton","undefined","redirectToRequest","searchQueryParams","hotelId","isDirect","thisElem","id","length","campaignId","chooseButton","numHotelsElem","numHotelsModalElem","text","alert","hotel_id","data","addClass","selectedHotelsPanel","selectedHotelsMobilePanel","removeClass","html","num_stored_hotels","toString","html_mobile","url","indexOf"],"sourceRoot":""}