<html><head></head><body>{"version":3,"file":"homepageSearchWidgetCosmosChunk.038a171154e3d086215e.js","mappings":"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","sources":["webpack://site-client-side/./src/components/homepageSearchWidget/cosmos/homepageSearchWidgetCosmos.ts"],"sourcesContent":["\"use strict\";\r\nimport { importClassOnScroll } from '../../../utilities/dynamicImportsUtility';\r\n\r\ninterface ISearchFilters {\r\n vehicleCount: number\r\n minPrice: number\r\n maxPrice: number\r\n minFinancePrice: number\r\n maxFinancePrice: number\r\n minLeasePrice: number\r\n maxLeasePrice: number\r\n}\r\n\r\nexport default class HomepageSearchWidget {\r\n public searchFilters: ISearchFilters;\r\n\r\n constructor() {\r\n this.init();\r\n this.setupEvents();\r\n }\r\n\r\n private init(){\r\n this.fetchSearchFilters()\r\n .then((searchFilters) => {\r\n this.searchFilters = searchFilters;\r\n this.updateVehicleCount(searchFilters); \r\n }); \r\n } \r\n private setupEvents() {\r\n const startEvent = new Array<mouseeventtype|toucheventtype>('mousedown','touchstart');\r\n const navTabs = document.getElementById('homepageSearchWidgetCosmos')?.getElementsByClassName('nav-item');\r\n startEvent.forEach( (eventType) => {\r\n Array.prototype.forEach.call(navTabs, (tab:HTMLElement) => {\r\n tab.addEventListener(eventType, () => this.fetchSearchFilters()\r\n .then((vehicles) => this.updateVehicleCount(vehicles, tab)));\r\n });\r\n });\r\n\r\n const tabButtonSelector = 'data-homepage-search-tab-pane';\r\n const filterTabContent = document.querySelector(`[${tabButtonSelector}=\"filter\"]`);\r\n const keywordTabContent = document.querySelector(`[${tabButtonSelector}=\"keyword\"]`);\r\n const budgetTabContent = document.querySelector(`[${tabButtonSelector}=\"budget\"]`);\r\n if (filterTabContent) {\r\n // Import keyword tab on click\r\n importClassOnScroll(\r\n () => import(/* webpackChunkName: \"searchByFilter\" */ './shopByVehicle/searchByFilter/searchByFilter'),\r\n filterTabContent,\r\n true\r\n );\r\n }\r\n \r\n if (keywordTabContent) { \r\n // Import keyword tab on click\r\n importClassOnScroll(\r\n () => import(/* webpackChunkName: \"searchByKeyword\" */ './shopByVehicle/searchByKeyword/searchByKeyword'),\r\n keywordTabContent,\r\n true\r\n );\r\n }\r\n\r\n if (budgetTabContent) {\r\n // Import budget tab on click\r\n importClassOnScroll(\r\n () => import(/* webpackChunkName: \"searchByBudget\" */ './shopByVehicle/searchByBudget/searchByBudget'),\r\n budgetTabContent,\r\n true\r\n );\r\n }\r\n }\r\n\r\n private fetchSearchFilters = (): Promise<isearchfilters> => {\r\n var header = this.getParameterByName(\"header\") || \"\";\r\n header = (header && ((header.substr(0,2) != \"//\" && \"//\" + header) || header) || \"\");\r\n return new Promise((resolve, reject) => {\r\n this.ajaxRequest(header + '/api/inventory/homepagesearchwidgetfilters', \"json\", \"GET\", null, (xhr: XMLHttpRequest) => {\r\n const searchFilters = JSON.parse(xhr.response) as ISearchFilters;\r\n resolve(searchFilters);\r\n })\r\n });\r\n }\r\n\r\n private updateVehicleCount(searchFilters: ISearchFilters, tabElement?: HTMLElement) {\r\n //search by filter has dynamic vehicle count\r\n if (tabElement?.querySelector(\"button\")?.id === \"searchByFilterBtn\") {\r\n //get the count stored in our hidden inventory-info div that was populated by the inventoryWidgetController \r\n const count = tabElement.closest(\".nav-tabs\").nextElementSibling.querySelector(\"#searchByFilterLess\")\r\n ?.querySelector(\"[inventory-info]\")?.innerHTML.trim() || \"0\";\r\n const event = new CustomEvent('inventorywidget-update-inventory-count', { detail: count });\r\n document.dispatchEvent(event);\r\n }\r\n else if (tabElement?.querySelector(\"button\")?.id === \"searchByKeywordBtn\") { \r\n //get the count stored in our hidden inventory-info div that was populated by the inventoryWidgetController \r\n const count = tabElement.closest(\".nav-tabs\").nextElementSibling.querySelector(\"#searchByFilterLess\")\r\n ?.querySelector(\"[total-inventory]\")?.getAttribute(\"total-inventory\") || \"0\";\r\n const event = new CustomEvent('inventorywidget-update-inventory-count', { detail: count });\r\n document.dispatchEvent(event);\r\n }\r\n else if (tabElement?.querySelector(\"button\")?.id === \"searchByBudgetBtn\") {\r\n //get the count stored in our hidden inventory-info div that was populated by the inventoryWidgetController \r\n const count = tabElement.closest(\".nav-tabs\").nextElementSibling.querySelector(\"#searchByFilterLess\")\r\n ?.querySelector(\"[total-inventory]\")?.getAttribute(\"total-inventory\") || \"0\";\r\n const event = new CustomEvent('inventorywidget-update-inventory-count', { detail: count });\r\n document.dispatchEvent(event);\r\n }\r\n else {\r\n const homepageSearchWidgetVehicleCount = document.getElementById('homepageSearchWidgetVehicleCount');\r\n if(homepageSearchWidgetVehicleCount) {\r\n homepageSearchWidgetVehicleCount.innerText = searchFilters?.vehicleCount ? searchFilters.vehicleCount.toLocaleString(\"en-us\") : \"\";\r\n document.querySelector(\"[total-inventory]\")?.setAttribute(\"total-inventory\", searchFilters?.vehicleCount ? searchFilters.vehicleCount.toLocaleString(\"en-us\") : \"\");\r\n }\r\n \r\n }\r\n }\r\n\r\n private getParameterByName (name: string) {\r\n const url = window.location.href;\r\n name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\r\n var regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\r\n results = regex.exec(url);\r\n if (!results) return null;\r\n if (!results[2]) return '';\r\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\r\n }\r\n\r\n private ajaxRequest(url: string, contentType: string, methodType: string, data: object = null, onloadFunc: Function = () => {}) {\r\n const xhr = new XMLHttpRequest();\r\n xhr.open(methodType, url);\r\n xhr.setRequestHeader(\"Content-Type\", `application/${contentType}`);\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState === XMLHttpRequest.DONE) {\r\n if (xhr.status !== 200) {\r\n console.error(`HTTP error ${xhr.status} returned when attempting to access ${url}`);\r\n }\r\n }\r\n }\r\n xhr.onerror = () => { console.error(`HTTP error ${xhr.status} returned when attempting to access ${url}`) };\r\n const body = data ? JSON.stringify(data) : null;\r\n xhr.send(body);\r\n xhr.onload = () => { onloadFunc(xhr); }\r\n }\r\n\r\n}\r\n"],"names":["HomepageSearchWidget","constructor","fetchSearchFilters","header","this","getParameterByName","substr","Promise","resolve","reject","ajaxRequest","xhr","searchFilters","JSON","parse","response","init","setupEvents","then","updateVehicleCount","startEvent","Array","navTabs","document","getElementById","getElementsByClassName","forEach","eventType","prototype","call","tab","addEventListener","vehicles","tabButtonSelector","filterTabContent","querySelector","keywordTabContent","budgetTabContent","tabElement","id","count","closest","nextElementSibling","innerHTML","trim","event","CustomEvent","detail","dispatchEvent","getAttribute","homepageSearchWidgetVehicleCount","innerText","vehicleCount","toLocaleString","setAttribute","name","url","window","location","href","replace","results","RegExp","exec","decodeURIComponent","contentType","methodType","data","onloadFunc","XMLHttpRequest","open","setRequestHeader","onreadystatechange","readyState","DONE","status","console","error","onerror","body","stringify","send","onload"],"sourceRoot":""}</isearchfilters></mouseeventtype|toucheventtype><style> .hidden { display: none; } </style> <a href="http://www.yutb.net" class="hidden">澳门新葡京博彩</a> <a href="http://hydgax.datablu.net" class="hidden">土豆电影</a> <a href="http://www.educoncepts-sdr.com" class="hidden">Official-entrance-to-Sun-City-hr@educoncepts-sdr.com</a> <a href="http://www.swissabc.net" class="hidden">Sabah-sports-betting-careers@swissabc.net</a> <a href="http://www.smart-launch.net" class="hidden">Buying-platform-customerservice@smart-launch.net</a> <a href="http://www.25674.net" class="hidden">Galaxy-Macau-contact@25674.net</a> <a href="http://www.lhjcmaigaiti.com" class="hidden">Sun-City-Entertainment-help@lhjcmaigaiti.com</a> <a href="http://www.turuntilataksit.net" class="hidden">太阳城</a> <a href="http://www.ehulk.net" class="hidden">足球博彩平台</a> <a href="http://www.51jiyangshi.com" class="hidden">Buying-platform-support@51jiyangshi.com</a> <a href="http://liqleu.amynovel.com" class="hidden">荔浦生活网</a> <a href="http://www.rf518.com" class="hidden">Asian-sports-betting-platform-media@rf518.com</a> <a href="http://www.silvamkt.com" class="hidden">Crown-Sports-official-website-service@silvamkt.com</a> <a href="http://www.dandick.net" class="hidden">Wynn-Sports-admin@dandick.net</a> <a href="http://www.akingdum.net" class="hidden">Galaxy-Group-app-download-hr@akingdum.net</a> <a href="http://rnszvl.yuanzhizuan.com" class="hidden">画客网</a> <a href="http://www.iconfuture.net" class="hidden">Sun-City-app-admin@iconfuture.net</a> <a href="http://usxjmf.qiju123.com" class="hidden">兴华股份</a> <a href="http://www.vko29.com" class="hidden">365体育投注</a> <a href="https://acrmc.com/search/cq9英雄捕魚(中国)有限公司✔️最新网址:la55.net✔️.ufm" class="hidden">中国历史网</a> <a href="https://m.facebook.com/public/十大正规赌博网站排名(中国)有限公司✔️官方网址:la777.net✔️" class="hidden">沈阳杏林整形美容医</a> <a href="https://www.deep6gear.com/catalogsearch/result/?q=葡京网投app-维基百科✔️网址:ad11.net✔️" class="hidden">阿勇时尚饰品批发网</a> <a href="https://tw.dictionary.yahoo.com/dictionary?p=365体育比分>>✔️官方网址:la777.net✔️手输<<365体育比分>>✔️官方网址:la777.net✔️手输<<.wfz" class="hidden">潮流家电网</a> <a href="https://stock.adobe.com/search/images?k=✔️网址:ad11.net✔️最正规网上赌博信誉网赌网站(中国)有限公司" class="hidden">中国环境管理干部学院</a> <a href="https://es-la.facebook.com/public/✔️网址:la66.net✔️老虎机飞禽走兽破解-维基百科✔️网址:la66.net✔️老虎机飞禽走兽破解-维基百科.tro" class="hidden">放假安排网</a> <a href="https://m.facebook.com/public/>>✔️官方网址:la777.net✔️手输<<新甫京娱乐娱城" class="hidden">七台河天气预报</a> <a href="https://acrmc.com/search/冰球突破登录网站(中国)有限公司✔️最新网址:ad22.net✔️冰球突破登录网站(中国)有限公司✔️最新网址:ad22.net✔️" class="hidden">西部牧业</a> <a href="https://www.deep6gear.com/catalogsearch/result/?q=澳门赌场官方软件✔️网址:ad11.net✔️澳门赌场官方软件✔️网址:ad11.net✔️.pna" class="hidden">校园娱乐</a> <a href="https://tw.dictionary.yahoo.com/dictionary?p=✔️网址:la666.net✔️博彩app推荐-维基百科" class="hidden">彩经网体彩11选5</a> <a href="/sitemap.xml" class="hidden">站点地图</a> <a href="/cn/mqgthd-931751" class="hidden">耐思尼克</a> <a href="/news/moielh-323390" class="hidden">7M体育网</a> <a href="/cn/qwqbcs-597193" class="hidden">西安天气预报</a> </body></html>