{"version":3,"file":"MobilePhones.Search-5b7de4f3f3c4db25be7d.js","mappings":"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","sources":["webpack://@whistleout/webui/./Areas/MobilePhones/js/Search.js"],"sourcesContent":["import debounce from 'lodash/debounce';\nimport { createElement } from 'react';\nimport { render, unmountComponentAtNode } from 'react-dom';\n\nimport { waitFor } from '../../Shared/js/utils/timer';\nimport AddressSearch from '../../Shared/React/js/components/addressSearch/AddressSearch';\n\n(function () {\n 'use strict';\n\n async function main() {\n\n var searchPage = wo$('[data-search-page]');\n if (!searchPage.length) return;\n\n var searchController = {\n init: async function () {\n searchController.registerNotifications();\n searchController.initHistoryTracker();\n searchController.loadSearchModal();\n searchController.trackPage(false);\n WhistleOut.getAds('MobilePhones');\n\n if (wo$('[data-coverage-maps]').length) {\n await waitFor(() => !!WhistleOut.CoverageMap);\n if (WhistleOut.CoverageMap) {\n WhistleOut.CoverageMap.init(wo$('body'));\n }\n }\n\n WhistleOut.bindCitiesAutoComplete(wo$('body'));\n wo$('a[data-action=\"scroll-top\"]').click(function () {\n WhistleOut.scrollTo(0);\n return false;\n });\n },\n\n registerNotifications: function () {\n // WARNING: jQuery.Callbacks() doesn't seem to support async functions\n WhistleOut.notifications.add((notification, data) => {\n if (data && data.criteria && data.type !== 'Page') {\n data.criteria.page = 1;\n }\n\n switch (notification) {\n case 'FilterChanged':\n this.onFilterChanged(data);\n break;\n\n case 'TabChanged':\n this.onTabChanged(data);\n break;\n\n case 'SearchResultsRendered':\n this.onSearchResultsRendered(data).then();\n break;\n\n default:\n break;\n }\n });\n },\n\n onFilterChanged: (data) => {\n wo$('[data-enable-when-ready]').attr('disabled', 'disabled');\n\n var renderFilters = data.type === 'Lines' || data.criteria.lines.length > 1;\n var fullReload = data.type === 'Page';\n if (wo$('[data-search-page]').data('search-page') === 'redirect') {\n fullReload = true;\n // Reset result flags when redirecting from embedded to full results\n data.criteria.hideShare = false;\n data.criteria.hideCoverage = false;\n data.criteria.hideCoverageStrip = false;\n data.criteria.hideWidenResults = false;\n\n if (!data.criteria.address ||\n data.criteria.address.toLowerCase() === 'australia' ||\n data.criteria.address.toLowerCase() === 'united states') {\n WhistleOut.getCurrentLocation(\n function (e) {\n var address = e.label;\n if (address.length > 1) {\n data.criteria.address = address;\n }\n searchController.updateFilters(data.criteria, renderFilters, fullReload);\n },\n function () {\n searchController.updateFilters(data.criteria, renderFilters, fullReload);\n });\n } else {\n searchController.updateFilters(data.criteria, renderFilters, fullReload);\n }\n\n } else {\n searchController.updateFilters(data.criteria, renderFilters, fullReload);\n }\n \n },\n\n onTabChanged: (data) => {\n var queryString = '?' + WhistleOut.MobilePhones.generateQueryString(data.criteria);\n searchController.HistoryWrapper.pushQuery(queryString);\n searchController.loadSearchModal();\n },\n\n onSearchResultsRendered: async (data) => {\n searchController.loadSearchModal();\n searchController.trackPage(data.isAjax);\n WhistleOut.getAds('MobilePhones');\n\n if (wo$('[data-coverage-maps]').length) {\n await waitFor(() => !!WhistleOut.CoverageMap);\n if (WhistleOut.CoverageMap) {\n WhistleOut.CoverageMap.init(wo$('body'));\n }\n }\n\n wo$(window).resize();\n },\n\n loadSearchModal: function () {\n var criteria = WhistleOut.readLookupData(wo$('[data-search-criteria]'));\n var modalUrl = criteria.lines.length > 1 ? criteria.multiLineModalAjaxUrl : criteria.singleLineModalAjaxUrl;\n\n wo$.ajax({\n url: modalUrl + window.location.search,\n type: 'GET',\n success: function (result) {\n var $results = wo$('#filters-modal-partial');\n $results.html(result);\n WhistleOut.notifications.fire('FiltersModalReady');\n }\n });\n },\n\n trackPage: function (isAjax) {\n var criteria = WhistleOut.readLookupData(wo$('[data-search-criteria]'));\n var resultCount = wo$('#search-results-partial').find('[data-result-count]').data('result-count');\n\n var currentSupplierId = criteria.currentsupplierid && criteria.currentsupplierid > 0\n ? criteria.currentsupplierid\n : null;\n\n var values = [];\n values.push(currentSupplierId);\n values.push(criteria.minSpend);\n values.push(criteria.maxSpend);\n values.push(criteria.lines.length === 1 ? criteria.lines[0].data : null);\n values.push(criteria.lines.length === 1 ? criteria.lines[0].calls ? criteria.lines[0].calls : criteria.lines[0].minutes : null);\n values.push(criteria.lines.length === 1 ? criteria.lines[0].sms : null);\n values.push(criteria.lines.length === 1 ? criteria.lines[0].phone : null);\n values.push(criteria.dealsonly);\n values.push(criteria.sortExpression);\n values.push(criteria.sortAscending);\n values.push(criteria.maxupfront > -1 ? criteria.maxupfront : null);\n values.push(resultCount);\n values.push(criteria.lines.length);\n var valuesString = values.join('|');\n\n WhistleOut.trackPageView(null, valuesString, isAjax);\n\n if (isAjax) {\n var phone = '';\n var phoneBrand = '';\n if (criteria.lines.length === 1) {\n if (criteria.lines[0].phone) {\n phone = criteria.lines[0].phone;\n phoneBrand = criteria.lines[0].phoneManufacturer;\n } else if (criteria.lines[0].simOnly === true) {\n phone = 'BYO';\n }\n }\n\n var remarketing = {\n 'supplier': criteria.suppliers ? criteria.suppliers.join() : '',\n 'postcode': criteria.postcode,\n 'numberOfLines': criteria.lines.length,\n 'data': criteria.lines.length === 1 ? criteria.lines[0].data : '',\n 'phoneBrand': phoneBrand,\n 'phone': phone\n };\n WhistleOut.remarketing(remarketing);\n }\n\n Cookies.set('CurrentSupplierMobilePhones', currentSupplierId == null ? '' : currentSupplierId, { path: '/', expires: 60 });\n },\n\n updateFilters: debounce(function (criteria, reloadFilters, fullReload) {\n WhistleOut.startProgress('#search-results-partial', 0.1, 50);\n\n var queryString = '?' + WhistleOut.MobilePhones.generateQueryString(criteria);\n if (fullReload) {\n location.href = criteria.searchUrl + queryString;\n WhistleOut.endProgress();\n return;\n } else if (reloadFilters) {\n var filtersUrl = criteria.lines.length > 1 ? criteria.multiLineFiltersAjaxUrl : criteria.singleLineFiltersAjaxUrl;\n wo$.ajax({\n url: filtersUrl + queryString,\n type: 'GET',\n success: function (result) {\n var $filters = wo$('#search-filters-partial');\n $filters.html(result);\n wo$(window).resize();\n WhistleOut.notifications.fire('SearchFiltersRendered');\n }\n });\n }\n\n var resultsUrl = criteria.lines.length > 1 ? criteria.multiLineAjaxUrl : criteria.singleLineAjaxUrl;\n\n const $addressBar = wo$('[data-search-address] > div');\n if ($addressBar.length > 0) {\n unmountComponentAtNode($addressBar[0]);\n }\n\n wo$.ajax({\n url: resultsUrl + queryString,\n type: 'GET',\n success: function (result) {\n \n \n var $results = wo$('#search-results-partial');\n $results.html(result);\n\n WhistleOut.applyPopover($results);\n\n searchController.HistoryWrapper.pushQuery(queryString);\n\n WhistleOut.endProgress();\n\n WhistleOut.notifications.fire('SearchResultsRendered', { criteria: criteria, isAjax: true });\n\n const nodeToAttach = $results.find('[data-search-address]');\n if (nodeToAttach.length > 0) {\n render(createElement(AddressSearch, nodeToAttach.data('search-address')), nodeToAttach.find('div')[0]);\n }\n\n wo$(window).resize();\n },\n error: function () {\n WhistleOut.endProgress();\n }\n });\n }, 300),\n\n initHistoryTracker: function () {\n WhistleOut.initHistoryTracker(searchController);\n }\n };\n\n await searchController.init();\n };\n\n WhistleOut.initModule(import.meta.url, main);\n\n}());"],"names":["WhistleOut","initModule","import","async","wo$","length","searchController","init","registerNotifications","initHistoryTracker","loadSearchModal","trackPage","getAds","waitFor","CoverageMap","bindCitiesAutoComplete","click","scrollTo","notifications","add","notification","data","criteria","type","page","this","onFilterChanged","onTabChanged","onSearchResultsRendered","then","attr","renderFilters","lines","fullReload","hideShare","hideCoverage","hideCoverageStrip","hideWidenResults","address","toLowerCase","updateFilters","getCurrentLocation","e","label","queryString","MobilePhones","generateQueryString","HistoryWrapper","pushQuery","isAjax","window","resize","readLookupData","modalUrl","multiLineModalAjaxUrl","singleLineModalAjaxUrl","ajax","url","location","search","success","result","html","fire","resultCount","find","currentSupplierId","currentsupplierid","values","push","minSpend","maxSpend","calls","minutes","sms","phone","dealsonly","sortExpression","sortAscending","maxupfront","valuesString","join","trackPageView","phoneBrand","phoneManufacturer","simOnly","remarketing","suppliers","postcode","Cookies","set","path","expires","debounce","reloadFilters","startProgress","href","searchUrl","endProgress","filtersUrl","multiLineFiltersAjaxUrl","singleLineFiltersAjaxUrl","resultsUrl","multiLineAjaxUrl","singleLineAjaxUrl","$addressBar","unmountComponentAtNode","$results","applyPopover","nodeToAttach","render","createElement","AddressSearch","error"],"sourceRoot":""}