{"version":3,"sources":["components/checkbox/checkbox.component.js","components/inventory-search-results/components/inventory-search-result/inventory-search-result.component.js","components/inventory-search-results/inventory-search-results.component.js","components/menu/menu-button.comonent.js","components/menu/menu.component.js","components/radio/radio.component.js","components/top-bar/top-bar.component.js","components/vehicle-filter/vehicle-filter.component.js","components/vehicle-sort-menu/vehicle-sort-menu.component.js","services/data-transform.service.js","services/inventory.service.js","services/overlay.service.js","services/query-params.service.js","services/utils.service.js","templates.js","app.module.js","constants/vehicle-labels.constant.js","directives/bootstrap-popover.directive.js","filters/phone-number.filter.js","services/clipboard-copy.service.js","services/compare-vechicles.service.js","services/saved-vechicles.service.js","services/session-storage.service.js","services/storage.service.js"],"names":["_classCallCheck","instance","Constructor","TypeError","_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","_objectWithoutProperties","keys","target","i","indexOf","prototype","hasOwnProperty","call","$templateCache","put","window","document","$","undefined","angular","module","jQuery","_createClass","defineProperties","props","length","descriptor","protoProps","staticProps","Checkbox","$element","$timeout","this","assign","isChecked","toggleClass","Boolean","model","onChange","component","bindings","disable","id","name","controller","templateUrl","InventorySearchResult","CompareVehicles","SavedVehicles","$window","tooltipSet","tooltipString","vehicleCardDisclaimer","vehicle","program","vehicleType","e","pathname","location","classList","contains","callFloodlight","groupName","_satellite","track","dataPara","href","toLowerCase","show","vin","has","size","elementId","delete","preformSaveAnimation","set","mileage","modelGroupName","modelYear","year","price","toElementId","bottomBar","offset","x","y","bottomBarController","data","isClosed","content","height","SaveAnimation","element","querySelector","showDealer","InventorySearchResults","limit","_ref","vehicles","onVehiclesChange","find","each","_this","setTimeout","tooltip","trigger","_ref2","currentValue","previousValue","isFirstChange","loading","orderBy","transclude","emptyState","toolbar","MenuButton","on","toggleMenu","bind","menu","toggleOptions","require","Menu","$body","body","open","hideOptions","showOptions","removeClass","addClass","one","get","hasClass","Radio","TopBar","$scope","Utils","topBarContent","$watch","prop","css","onBackClick","history","back","contentLeft","contentCenter","contentRight","VehicleFilter","$compile","isPristine","options","showAll","jQueryElement","filterToggle","filterContainer","collapse","tapInventoryFilter","isObject","selected","vname","join","getElementsByTagName","setAttribute","partitionArray","itemsIntPartition","Math","ceil","modelGroups","some","selectedCars","handleVehicleTag","setVar","currentCars","option","vehicleNames","callSatelliteTracking","_this2","forEach","removeTag","onLoad","arguments","appliedFiltersContainer","filtersContainerMobile","formattedVehicleName","getAttribute","replace","existingVehicleTag","vehicleFilterTag","remove","append","aggregate","VehicleSortMenu","sortOptions","label","property","reverse","isInvalid","setOrderBy","every","constant","acpv","modelsDictionary","directive","postLink","scope","hidePopover","popover","inState","click","console","error","elementContent","html","timeoutId","delay","hide","clearTimeout","link","_slicedToArray","sliceIterator","arr","_arr","_n","_d","_e","_s","_i","Symbol","iterator","next","done","push","err","Array","isArray","phoneNumberFilter","phoneNumber","NOT_A_DIGIT_REGEX","Number","isInteger","parseInt","match","PHONE_REGEX","exec","_match","filter","factory","ClipboardCopy","DataTransform","modelAttriubteCodeMap","3-row Seating","Automatic Emergency Braking","Blind-Spot Monitoring","City Fuel Efficiency","COMB_MPG","DRIVE","Engine Name","Forward Collision Warning System","Highway Fuel Efficiency","Power-Operated Tailgate","Premium Audio System","Rear Cross-Traffic Alert","Rear Entertainment System","TRANS","Ventilated Front Seats","transmissionMap","CVT","5AT","6AT","6MT","7DC","8DC","9AT","9DC","dealerData","address","DealerAddress","city","DealerCity","distance","DealerDistance","email","DealerEmail","DealerID","latitude","DealerLat","longitude","DealerLong","DealerName","phone","DealerPhoneNo","state","DealerState","website","DealerURL","zip","DealerZip","modelData","hasModelDataSpecials","Specials","ModelGroupName","toUpperCase","hasOffer","marketingName","ModelMarketingName","transmissionName","ModelTransmissionMarketingName","trim","ModelTrim","ModelYear","Packages","packageName","PackageName","packageFeatures","PackageFeatures","Special","map","special","monthly","PaymentTerms","FinanceTerms","SampleFinancePayment","SampleMonthlyPayment","description","SampleModelDescription","term","SampleTerm","availability","EndDate","offerId","SpecialID","offerCode","SalesProgramCode","vehicleData","certificationDate","CertDate","color","ModelBaseColor","exteriorColor","ModelExteriorColorName","VHRUrl","carFaxUrl","autoCheckUrl","iceUrl","ICEUrl","interiorColor","ModelInteriorColorName","parseFloat","Mileage","photos","Photos","ModelStockPhotos","src","StockPhotos","reduce","Photo","photo","DSRP","singleOwner","SingleOwner","VIN","CPOTier","VehicleType","BuyOnline","service","getParameterByName","url","regex","RegExp","results","decodeURIComponent","dataURL","Inventory","$http","$q","resolveOrRejectResponse","transformResponse","params","responseType","defaultAPR","apr","fromJson","response","then","settings","Output","Results","Settings","APR","TermsAPR","Setting","status","reject","isEmpty","_response","_response$Output$Resu","Dealers","ModelAttributes","Models","dealers","models","Dealer","transformDealerData","Model","hasFinanceSpecial","ModelVINsOnSite","transformModelData","offer","transformOfferData","modelAttributeIds","ModelAttribute","modelAttributesData","modelAttributeId","_DataTransform","modelAttributeData","allWheelDrive","transformVehicleData","dealer","dealerId","modelId","monInt","estimatedMonthlyAmount","pow","toFixed","vehicleSearchData","Overlay","$rootScope","$new","template","overlay","mediaQuery","mediaQueryListener","fullscreen","matchMedia","matches","addListener","onClose","$destroy","removeListener","close","QueryParams","param","parse","search","queryString","charAt","substr","split","chunk","_chunk$split","_chunk$split2","decodeURI","SessionStorage","Storage","_typeof","constructor","MOBILE_REGEX","isMobile","test","navigator","userAgent","string","slice","entries","object","strict","index","iterable","_ref3","_ref4","array","callback","item","number","multiple","itemsInPartition","result"],"mappings":"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","file":"acpv.min.js","sourcesContent":["(function(window, document, $, undefined) {\nclass Checkbox {\r\n\r\n constructor($element, $timeout) {\r\n Object.assign(this, {$element, $timeout});\r\n }\r\n\r\n $doCheck() {\r\n if (typeof this.isChecked === 'boolean') {\r\n return this.$element.toggleClass('checked', this.isChecked);\r\n }\r\n\r\n this.$element.toggleClass('checked', Boolean(this.model));\r\n }\r\n\r\n onModelChange() {\r\n this.$timeout(this.onChange);\r\n }\r\n}\r\n\r\nangular.module('acpv').component('checkbox', {\r\n bindings: {\r\n disable: ' -1) {\r\n dataPara = '&usedev=1';\r\n } else if (this.$window.location.href.toLowerCase().indexOf('usedev=2') > -1) {\r\n dataPara = '&usedev=2';\r\n }\r\n\r\n // show spinner while the API call completes in the backend\r\n $('.spinner').show();\r\n\r\n this.$window.location.href = `/vehicle-details?vin=${this.vehicle.vin}` + dataPara;\r\n }\r\n\r\n isCompareDisabled() {\r\n if (this.CompareVehicles.has(this.vehicle.vin)) {\r\n return false;\r\n }\r\n\r\n return this.CompareVehicles.size >= 3;\r\n }\r\n\r\n onCompareVehicleChange(elementId) {\r\n if (this.CompareVehicles.has(this.vehicle.vin)) {\r\n return this.CompareVehicles.delete(this.vehicle.vin);\r\n }\r\n\r\n const {pathname} = this.$window.location;\r\n\r\n if (pathname.indexOf('/vehicle-search') === 0) {\r\n _satellite.track('invsearch_result_compare');\r\n } else if (pathname.indexOf('/dealer-inventory') === 0) {\r\n _satellite.track('dealerinv_result_compare');\r\n }\r\n\r\n this.preformSaveAnimation(elementId, 'compareVehicleCount');\r\n this.CompareVehicles.set(this.vehicle.vin, 1);\r\n }\r\n\r\n onSaveVehicleChange(elementId) {\r\n if (this.SavedVehicles.has(this.vehicle.vin)) {\r\n return this.SavedVehicles.delete(this.vehicle.vin);\r\n }\r\n\r\n const {pathname} = this.$window.location;\r\n\r\n if (pathname.indexOf('/vehicle-search') === 0) {\r\n _satellite.track('invsearch_result_save');\r\n } else if (pathname.indexOf('/dealer-inventory') === 0) {\r\n _satellite.track('dealerinv_result_save');\r\n }\r\n\r\n this.preformSaveAnimation(elementId, 'savedVehicleCount');\r\n this.SavedVehicles.set(this.vehicle.vin, {\r\n mileage: this.vehicle.mileage,\r\n modelGroupName: this.vehicle.model.groupName,\r\n modelYear: this.vehicle.model.year,\r\n price: this.vehicle.price\r\n });\r\n }\r\n\r\n preformSaveAnimation(elementId, toElementId) {\r\n const bottomBar = $('bottom-bar');\r\n\r\n if (bottomBar.length === 0) {\r\n return;\r\n }\r\n\r\n const offset = {x: 0, y: 0};\r\n const bottomBarController = bottomBar.data('controller');\r\n \r\n if (bottomBarController.isClosed()) {\r\n offset.y = -bottomBarController.content.height();\r\n }\r\n\r\n this.$timeout(() => {\r\n new window.SaveAnimation({\r\n element: document.querySelector(`[data-id=\"${elementId}\"]`),\r\n offset,\r\n toElementId\r\n });\r\n });\r\n }\r\n\r\n // showFair() {\r\n // let fairCookie = Cookies.get(\"fair\");\r\n // let booleanValue = false;\r\n \r\n // if (fairCookie != undefined) {\r\n // booleanValue = fairCookie == \"fair_with_payment\" ? true : false;\r\n // }\r\n\r\n // return booleanValue;\r\n // }\r\n}\r\n\r\n // randomly render fair element on first browser session\r\n // const randomBoolean = Math.random() <= 0.5;\r\n\r\n // set fair cookie\r\n // if (Cookies.get(\"fair\") == undefined) {\r\n // randomBoolean ? Cookies.set(\"fair\", \"fair_with_payment\", { expires: 2019 }) : Cookies.set(\"fair\", \"single_fair\", { expires: 2019 });\r\n // } \r\n\r\nangular.module('acpv').component('inventorySearchResult', {\r\n bindings: {\r\n showDealer: '<',\r\n vehicle: '<'\r\n },\r\n controller: InventorySearchResult,\r\n templateUrl: 'inventory-search-result.template.html'\r\n});\n}(window, document, jQuery));\n","(function(window, document, $, undefined) {\nclass InventorySearchResults {\r\n\r\n limit = 10;\r\n\r\n $onInit() {\r\n if (this.showDealer === undefined) {\r\n this.showDealer = true;\r\n }\r\n }\r\n\r\n $onChanges({vehicles}) {\r\n if (vehicles) {\r\n this.onVehiclesChange(vehicles);\r\n }\r\n }\r\n\r\n\r\n $doCheck() {\r\n const infoEls = $('inventory-search-result').find('.info-icon');\r\n infoEls.each(function() {\r\n setTimeout(() => {\r\n $(this).tooltip({trigger: 'click'});\r\n }, 500)\r\n \r\n });\r\n }\r\n\r\n loadMore() {\r\n this.limit += 10;\r\n }\r\n\r\n onVehiclesChange({currentValue, previousValue, isFirstChange}) {\r\n if (currentValue === previousValue && !isFirstChange()) {\r\n return;\r\n }\r\n\r\n this.limit = 10;\r\n }\r\n}\r\n\r\nangular.module('acpv').component('inventorySearchResults', {\r\n bindings: {\r\n loading: ' {\r\n this.$body.one('click', () => this.hideOptions());\r\n });\r\n }\r\n}\r\n\r\nangular.module('acpv').component('menu', {\r\n controller: Menu\r\n});\n}(window, document, jQuery));\n","(function(window, document, $, undefined) {\nclass Radio {\r\n\r\n constructor($element, $timeout) {\r\n Object.assign(this, {$element, $timeout});\r\n }\r\n\r\n $doCheck() {\r\n this.$element.toggleClass('selected', this.model === this.value);\r\n }\r\n\r\n onModelChange() {\r\n this.$timeout(this.onChange);\r\n }\r\n}\r\n\r\nangular.module('acpv').component('radio', {\r\n bindings: {\r\n id: '@?',\r\n model: '=?',\r\n onChange: '&',\r\n name: '@?',\r\n value: '<'\r\n },\r\n controller: Radio,\r\n templateUrl: 'radio.template.html'\r\n});\n}(window, document, jQuery));\n","(function(window, document, $, undefined) {\nclass TopBar {\r\n\r\n constructor($element, $scope, Utils, $window) {\r\n Object.assign(this, {$element, $scope, Utils, $window});\r\n\r\n const topBarContent = $element.find('top-bar-content');\r\n\r\n $scope.$watch(() => topBarContent.prop('offsetHeight'), (height) => {\r\n $element.css({height});\r\n });\r\n }\r\n\r\n back() {\r\n // returning false will prevent default\r\n if (this.onBackClick() !== false) {\r\n this.$window.history.back();\r\n }\r\n }\r\n}\r\n\r\nangular.module('acpv').component('topBar', {\r\n bindings: {\r\n onBackClick: '&onBack'\r\n },\r\n controller: TopBar,\r\n templateUrl: 'top-bar.template.html',\r\n transclude: {\r\n 'contentLeft': '?topBarContentLeft',\r\n 'contentCenter': '?topBarContentCenter',\r\n 'contentRight': '?topBarContentRight'\r\n }\r\n});\n}(window, document, jQuery));\n","(function(window, document, $, undefined) {\nclass VehicleFilter {\r\n\r\n isPristine = true;\r\n options = [];\r\n showAll = false;\r\n\r\n constructor($element, $timeout, Utils, $window, $compile, $scope) {\r\n Object.assign(this, {$timeout, Utils, $window, $compile, $scope});\r\n\r\n const jQueryElement = $($element);\r\n const filterToggle = jQueryElement.find('.filter-toggle');\r\n const filterContainer = jQueryElement.find('.filter-container');\r\n\r\n filterToggle.on('click', () => {\r\n filterContainer.collapse('toggle');\r\n });\r\n\r\n filterContainer.on('show.bs.collapse', () => {\r\n $element.removeClass('collapsed');\r\n filterToggle.removeClass('collapsed');\r\n //tap\r\n if(typeof window.tapInventoryFilter === \"function\") {\r\n window.tapInventoryFilter('vehicle','expand');\r\n } \r\n //tap \r\n });\r\n\r\n filterContainer.on('hide.bs.collapse', () => {\r\n $element.addClass('collapsed');\r\n filterToggle.addClass('collapsed');\r\n //tap\r\n if(typeof window.tapInventoryFilter === \"function\") {\r\n window.tapInventoryFilter('vehicle','collapse');\r\n } \r\n //tap \r\n });\r\n }\r\n\r\n $onInit() {\r\n if (!this.Utils.isObject(this.selected)) {\r\n this.selected = {};\r\n }\r\n\r\n //apply init value for tap\r\n const selected = Object.keys(this.selected);\r\n if (selected.length > 0) {\r\n let vname = selected.join('|')\r\n document.getElementsByTagName(\"vehicle-filter\")[0].setAttribute(\"data-tap-filter-initial-value\", vname); \r\n }\r\n //end\r\n \r\n const {partitionArray} = this.Utils;\r\n const itemsIntPartition = Math.ceil(this.modelGroups.length / 2);\r\n\r\n this.options = partitionArray(this.modelGroups, itemsIntPartition);\r\n this.showAll = this.options[1].some((model) => model in this.selected);\r\n \r\n for (let selectedCars in this.selected) {\r\n this.handleVehicleTag(false, true, selectedCars);\r\n }\r\n }\r\n\r\n get subtitle() {\r\n const selected = Object.keys(this.selected);\r\n\r\n if (selected.length === 0) {\r\n return 'Any';\r\n }\r\n\r\n if (selected.length === 1) {\r\n return selected[0];\r\n }\r\n\r\n return `${selected.length} Vehicles`;\r\n }\r\n\r\n callSatelliteTracking(vehicle) {\r\n if (this.isPristine) {\r\n const {pathname} = this.$window.location;\r\n\r\n if (pathname.indexOf('/vehicle-search') === 0) {\r\n _satellite.setVar(\"filtervalue\", vehicle);\r\n _satellite.track('invsearch_filter_vehicles');\r\n\r\n } else if (pathname.indexOf('/dealer-inventory') === 0) {\r\n _satellite.setVar(\"filtervalue\", vehicle);\r\n _satellite.track('dealerinv_filter_vehicles');\r\n }\r\n }\r\n\r\n this.isPristine = false;\r\n }\r\n\r\n clear() {\r\n // remove any existing tags\r\n for (let currentCars in this.selected) {\r\n this.handleVehicleTag(false, false, currentCars);\r\n }\r\n\r\n this.selected = {};\r\n this.$timeout(this.onChange);\r\n }\r\n\r\n getLabel(option) {\r\n return this.vehicleNames && this.vehicleNames[option] || option;\r\n }\r\n\r\n onModelChange(option) {\r\n if (!this.selected[option]) {\r\n delete this.selected[option];\r\n }\r\n\r\n //for tap\r\n const selected = Object.keys(this.selected);\r\n if(typeof window.tapInventoryFilter === \"function\") {\r\n window.tapInventoryFilter('vehicle',option, selected.join('|'));\r\n }\r\n //console.log(option, selected.join('|')) \r\n //end tap \r\n \r\n this.callSatelliteTracking(option);\r\n this.handleVehicleTag(false, false, option);\r\n this.onChange();\r\n }\r\n\r\n toggleAll() {\r\n if (this.showAll) {\r\n this.options[1].forEach((value) => {\r\n if (value in this.selected) {\r\n delete this.selected[value];\r\n }\r\n });\r\n\r\n this.onChange();\r\n }\r\n\r\n this.showAll = !this.showAll;\r\n }\r\n\r\n handleVehicleTag(removeTag, onLoad = false, vehicle) {\r\n const appliedFiltersContainer = $('.applied-filter-tags');\r\n \r\n let filtersContainerMobile = $('.applied-filter-tags.mobile-tags');\r\n let formattedVehicleName = removeTag ? vehicle.getAttribute(\"data-vehicle\") : vehicle.replace(/\\s+/g, '');\r\n let existingVehicleTag = appliedFiltersContainer.find('.filter-tag.'+formattedVehicleName+'-tag');\r\n\r\n let vehicleFilterTag = `${vehicle}\r\n \r\n `;\r\n\r\n if (removeTag) {\r\n delete this.selected[formattedVehicleName];\r\n this.onChange();\r\n existingVehicleTag.remove();\r\n return;\r\n }\r\n\r\n if (!existingVehicleTag.length && this.selected[vehicle] !== undefined) {\r\n appliedFiltersContainer.append(this.$compile(vehicleFilterTag)(this.$scope));\r\n } else { \r\n if (filtersContainerMobile.length && onLoad && this.selected[vehicle] !== undefined) {\r\n filtersContainerMobile.append(this.$compile(vehicleFilterTag)(this.$scope));\r\n } \r\n else {\r\n existingVehicleTag.remove();\r\n }\r\n }\r\n }\r\n}\r\n\r\nangular.module('acpv').component('vehicleFilter', {\r\n bindings: {\r\n aggregate: '<',\r\n modelGroups: '<',\r\n vehicleNames: '<',\r\n onChange: '&',\r\n selected: '='\r\n },\r\n controller: VehicleFilter,\r\n templateUrl: 'vehicle-filter.template.html'\r\n});\n}(window, document, jQuery));\n","(function(window, document, $, undefined) {\nclass VehicleSortMenu {\r\n\r\n sortOptions = [{\r\n id: 0,\r\n label: 'DEALER: Nearest',\r\n property: 'distance'\r\n }, {\r\n id: 1,\r\n label: 'VEHICLES: Newest',\r\n property: 'certificationDate'\r\n }, {\r\n id: 2,\r\n label: 'MILEAGE: Lowest',\r\n property: 'mileage'\r\n }, {\r\n id: 3,\r\n label: 'PRICE: Lowest',\r\n property: 'price'\r\n }, {\r\n id: 4,\r\n label: 'PRICE: Highest',\r\n property: 'price',\r\n reverse: true\r\n }];\r\n\r\n constructor($timeout, Utils) {\r\n Object.assign(this, {\r\n $timeout,\r\n Utils\r\n });\r\n }\r\n\r\n $onInit() {\r\n if (this.isInvalid()) {\r\n this.setOrderBy(this.sortOptions[0]);\r\n }\r\n }\r\n\r\n isInvalid() {\r\n if (!this.Utils.isObject(this.orderBy, true)) {\r\n return true;\r\n }\r\n\r\n return this.sortOptions.every(({\r\n id\r\n }) => id !== this.orderBy.id);\r\n }\r\n\r\n isOptionSelected(option) {\r\n return option.id === this.orderBy.id;\r\n }\r\n\r\n setOrderBy(option) {\r\n if (option.id === this.orderBy.id) {\r\n return;\r\n }\r\n\r\n this.orderBy = option;\r\n\r\n this.$timeout(() => {\r\n this.onChange();\r\n });\r\n }\r\n\r\n}\r\n\r\nangular.module('acpv').component('vehicleSortMenu', {\r\n bindings: {\r\n onChange: '&',\r\n orderBy: '='\r\n },\r\n controller: VehicleSortMenu,\r\n templateUrl: 'vehicle-sort-menu.template.html'\r\n});\n}(window, document, jQuery));\n","(function(window, document, $, undefined) {\nclass DataTransform {\r\n\r\n // remap model attribute codes to more program friendly property\r\n // names\r\n modelAttriubteCodeMap = {\r\n '3-row Seating': 'threeRowSeating',\r\n 'Automatic Emergency Braking': 'emergencyBraking',\r\n 'Blind-Spot Monitoring': 'blindSpotMonitoring',\r\n 'City Fuel Efficiency': 'cityFuelEfficiency',\r\n 'COMB_MPG': 'combinedMpg',\r\n 'DRIVE': 'driveTrain',\r\n 'Engine Name': 'engineName',\r\n 'Forward Collision Warning System': 'forwardCollisionWarning',\r\n 'Highway Fuel Efficiency': 'highwayFuelEfficiency',\r\n 'Power-Operated Tailgate': 'powerTailgate',\r\n 'Premium Audio System': 'premiumAudioSystem',\r\n 'Rear Cross-Traffic Alert': 'rearTrafficAlert',\r\n 'Rear Entertainment System': 'rearEntertainmentSystem',\r\n 'TRANS': 'transmissionType',\r\n 'Ventilated Front Seats': 'ventilatedFrontSeats'\r\n };\r\n\r\n // mapping of transmission values to transmission type, this should\r\n // be a temporary workaround\r\n transmissionMap = {\r\n 'CVT': 'automatic',\r\n '5AT': 'automatic',\r\n '6AT': 'automatic',\r\n '6MT': 'manual',\r\n '7DC': 'automatic',\r\n '8DC': 'automatic',\r\n '9AT': 'automatic',\r\n '9DC': 'automatic'\r\n };\r\n\r\n transformDealerData(dealerData) {\r\n return {\r\n address: dealerData.DealerAddress,\r\n city: dealerData.DealerCity,\r\n distance: dealerData.DealerDistance,\r\n email: dealerData.DealerEmail,\r\n id: dealerData.DealerID,\r\n latitude: dealerData.DealerLat,\r\n longitude: dealerData.DealerLong,\r\n name: dealerData.DealerName,\r\n phone: dealerData.DealerPhoneNo,\r\n state: dealerData.DealerState,\r\n website: dealerData.DealerURL,\r\n zip: dealerData.DealerZip\r\n };\r\n }\r\n\r\n transformModelData(modelData) {\r\n var hasModelDataSpecials;\r\n if (modelData.Specials) {\r\n hasModelDataSpecials = modelData.Specials['@Count'] > 0;\r\n } else {\r\n hasModelDataSpecials = false;\r\n }\r\n const model = {\r\n groupName: modelData.ModelGroupName.toUpperCase(),\r\n hasOffer: hasModelDataSpecials,\r\n id: modelData['@ModelId'],\r\n marketingName: modelData.ModelMarketingName,\r\n transmissionName: modelData.ModelTransmissionMarketingName,\r\n trim: modelData.ModelTrim,\r\n year: modelData.ModelYear\r\n };\r\n\r\n if (modelData.Packages) {\r\n model.packageName = modelData.Packages.PackageName;\r\n model.packageFeatures = modelData.Packages.PackageFeatures;\r\n }\r\n\r\n return model;\r\n }\r\n\r\n transformOfferData(Specials) {\r\n const i = Specials.Special.map((special) => special[\"SalesProgramTypeCD\"]).indexOf('R');\r\n const offer = {\r\n monthly: Specials.Special[i].PaymentTerms.FinanceTerms.SampleFinancePayment.SampleMonthlyPayment,\r\n description: Specials.Special[i].PaymentTerms.FinanceTerms.SampleFinancePayment.SampleModelDescription,\r\n term: Specials.Special[i].PaymentTerms.FinanceTerms.SampleFinancePayment.SampleTerm,\r\n availability: Specials.Special[i].EndDate,\r\n offerId: Specials.Special[i].SpecialID,\r\n offerCode: Specials.Special[i].SalesProgramCode\r\n };\r\n\r\n return offer;\r\n }\r\n\r\n transformVehicleData(vehicleData) {\r\n return {\r\n certificationDate: vehicleData.CertDate,\r\n color: (() => {\r\n if (vehicleData.ModelBaseColor) {\r\n return vehicleData.ModelBaseColor.toLowerCase();\r\n }\r\n\r\n return '';\r\n })(),\r\n exteriorColor: vehicleData.ModelExteriorColorName,\r\n history: (() => {\r\n const history = {};\r\n\r\n if (vehicleData.VHRUrl) {\r\n if (vehicleData.VHRUrl['@Source'] === 'CarFax') {\r\n history.carFaxUrl = vehicleData.VHRUrl['#text'];\r\n } else if (vehicleData.VHRUrl['@Source'] === 'AutoCheck') {\r\n history.autoCheckUrl = vehicleData.VHRUrl['#text'];\r\n }\r\n }\r\n\r\n return history;\r\n })(),\r\n iceUrl: vehicleData.ICEUrl,\r\n interiorColor: vehicleData.ModelInteriorColorName,\r\n mileage: Number.parseFloat(vehicleData.Mileage),\r\n photos: (() => {\r\n if ((vehicleData.Photos == null) && (vehicleData.ModelStockPhotos == null)){\r\n //when both Photo and Stockphoto are Null\r\n // use a NO PHOTO image\r\n // console.log('Stock image is NULL', vehicleData.VIN);\r\n return [{src: 'https://www.acuracertified.com/acuracertified/-/media/F66501FA28274458B47D88D252E2A600.ashx'}];\r\n }\r\n if (!vehicleData.Photos) {\r\n \r\n const {Photos: StockPhotos} = vehicleData.ModelStockPhotos;\r\n\r\n if (!StockPhotos) {\r\n return [];\r\n }\r\n\r\n return StockPhotos.reduce((aggregate, photos) => {\r\n if (photos.Photo) {\r\n photos.Photo.forEach((photo) => aggregate.push({\r\n src: `https://www.acura.com/assets${photo['#text']}`\r\n }));\r\n }\r\n\r\n return aggregate;\r\n }, []);\r\n }\r\n\r\n return vehicleData.Photos.Photos.Photo.map((photo) => ({\r\n src: photo['#text']\r\n }));\r\n })(),\r\n price: Number.parseFloat(vehicleData.DSRP),\r\n singleOwner: Boolean(vehicleData.SingleOwner),\r\n vin: vehicleData.VIN,\r\n // subscription: (() => {\r\n // if (vehicleData.Subscription) {\r\n // return vehicleData.Subscription[\"@Amount\"] !== \"\" ? \"on\" : \"off\";\r\n // }\r\n\r\n // return '';\r\n // })(),\r\n // subscriptionAmount: (() => {\r\n // if (vehicleData.Subscription) {\r\n // return vehicleData.Subscription[\"@Amount\"];\r\n // }\r\n\r\n // return '';\r\n // })(),\r\n // subscriptionLink: (() => {\r\n // if (vehicleData.Subscription) {\r\n // return vehicleData.Subscription[\"#text\"];\r\n // }\r\n\r\n // return '';\r\n // })(),\r\n program: vehicleData.CPOTier ? vehicleData.CPOTier : '',\r\n vehicleType: vehicleData.VehicleType ? vehicleData.VehicleType : '',\r\n BuyOnline: vehicleData.BuyOnline ? vehicleData.BuyOnline[\"@OnlineRetailingPreferredVIN\"] : ''\r\n };\r\n }\r\n \r\n}\r\n\r\nangular.module('acpv').service('DataTransform', DataTransform);\n}(window, document, jQuery));\n","(function(window, document, $, undefined) {\nconst FAILURE = 'failure';\r\nvar dataURL = '';\r\n\r\nfunction getParameterByName(name, url = window.location.href) {\r\n name = name.replace(/[\\[\\]]/g, '\\\\$&');\r\n var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)','i'),\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\r\nclass Inventory {\r\n\r\n constructor(DataTransform, $http, $q, Utils) {\r\n Object.assign(this, {DataTransform, $http, $q, Utils}, {\r\n resolveOrRejectResponse: this.resolveOrRejectResponse.bind(this),\r\n transformResponse: this.transformResponse.bind(this)\r\n });\r\n }\r\n\r\n getMonthlyPayment(params) {\r\n var usedev = getParameterByName('usedev');\r\n\r\n switch (usedev) {\r\n case '1': \r\n dataURL = 'https://acuracertifieddev.rpa-dev.com';\r\n break;\r\n case '2':\r\n dataURL = 'https://acuracertifieddev2.rpa-dev.com';\r\n break;\r\n default:\r\n dataURL = '';\r\n }\r\n return this.$http.get(`${dataURL}/api/calculators/ComputeFinancePayment`, { params, responseType: \"json\" });\r\n }\r\n\r\n findByDealer(params) {\r\n const defaultAPR = params.apr;\r\n delete params.apr;\r\n var usedev = getParameterByName('usedev');\r\n\r\n switch (usedev) {\r\n case '1': \r\n dataURL = 'https://acuracertifieddev.rpa-dev.com';\r\n break;\r\n case '2':\r\n dataURL = 'https://acuracertifieddev2.rpa-dev.com';\r\n break;\r\n default:\r\n dataURL = '';\r\n }\r\n\r\n const httpRequest = this.$http.get(dataURL + '/api/dealers/getdealerinventory', {\r\n params,\r\n transformResponse: [angular.fromJson, function (response) {\r\n response.defaultAPR = defaultAPR;\r\n return response;\r\n }, this.transformResponse]\r\n });\r\n\r\n return httpRequest.then(this.resolveOrRejectResponse);\r\n }\r\n\r\n findByVin(params) {\r\n var usedev = getParameterByName('usedev');\r\n\r\n switch (usedev) {\r\n case '1': \r\n dataURL = 'https://acuracertifieddev.rpa-dev.com';\r\n break;\r\n case '2':\r\n dataURL = 'https://acuracertifieddev2.rpa-dev.com';\r\n break;\r\n default:\r\n dataURL = '';\r\n }\r\n \r\n const httpRequest = this.$http.get(dataURL + '/api/savedvehicles/getsavedvehicles', {\r\n params,\r\n transformResponse: [angular.fromJson, this.transformResponse]\r\n });\r\n\r\n return httpRequest.then(this.resolveOrRejectResponse);\r\n }\r\n\r\n getAPR(){\r\n //return promise from initial call\r\n var usedev = getParameterByName('usedev');\r\n switch (usedev) {\r\n case '1': \r\n dataURL = 'https://acuracertifieddev.rpa-dev.com/api/calculators/GetApplicationConstants';\r\n break;\r\n case '2':\r\n dataURL = 'https://acuracertifieddev2.rpa-dev.com/api/calculators/GetApplicationConstants';\r\n break;\r\n default:\r\n dataURL = '/api/calculators/GetApplicationConstants';\r\n }\r\n return this.$http.get(dataURL)\r\n .then(function processAPR(response){\r\n var settings = response.data.Output.Results.Settings;\r\n let APR, TermsAPR;\r\n for(var i = 0; i < settings.Setting.length; i++) {\r\n if (settings.Setting[i][\"@id\"] === 'UsedVehicleDefaultAPR') {\r\n APR = settings.Setting[i][\"#cdata-section\"];\r\n }\r\n if (settings.Setting[i][\"@id\"] === 'UsedVehicleTermsAPR') {\r\n TermsAPR = settings.Setting[i][\"Item\"];\r\n }\r\n }\r\n return {APR, TermsAPR}\r\n }\r\n );\r\n }\r\n\r\n geoLocate(params) {\r\n const defaultAPR = params.apr;\r\n delete params.apr;\r\n var usedev = getParameterByName('usedev');\r\n\r\n switch (usedev) {\r\n case '1': \r\n dataURL = 'https://acuracertifieddev.rpa-dev.com';\r\n break;\r\n case '2':\r\n dataURL = 'https://acuracertifieddev2.rpa-dev.com';\r\n break;\r\n default:\r\n dataURL = '';\r\n }\r\n const httpRequest = this.$http.get(dataURL + '/api/inventory/certified', {\r\n params,\r\n transformResponse: [angular.fromJson, function (response) {\r\n response.defaultAPR = defaultAPR;\r\n return response;\r\n }, this.transformResponse]\r\n });\r\n \r\n return httpRequest.then(this.resolveOrRejectResponse);\r\n }\r\n\r\n resolveOrRejectResponse(response) {\r\n if (response.data.status === FAILURE) {\r\n return this.$q.reject(response);\r\n }\r\n \r\n return response;\r\n }\r\n\r\n transformResponse(response) {\r\n if (!this.Utils.isObject(response) || this.Utils.isEmpty(response)) {\r\n response = {status: FAILURE};\r\n }\r\n\r\n if (response.status === FAILURE) {\r\n return response;\r\n }\r\n\r\n const {Output: {Results: {Dealers, ModelAttributes, Models, Specials}}} = response;\r\n\r\n const dealers = [];\r\n const models = [];\r\n const vehicles = [];\r\n\r\n if (Dealers) {\r\n Dealers.Dealer.forEach((dealerData) => {\r\n dealers.push(this.DataTransform.transformDealerData(dealerData));\r\n });\r\n }\r\n\r\n if (Models) {\r\n Models.Model.forEach(({ModelVINsOnSite, ...modelData}) => {\r\n const model = this.DataTransform.transformModelData(modelData);\r\n var hasFinanceSpecial; \r\n if (Specials && Specials.Special) {\r\n hasFinanceSpecial = Specials.Special.map((special) => special['SalesProgramTypeCD']).indexOf('R') !== -1; \r\n } else {\r\n hasFinanceSpecial = false;\r\n }\r\n const offer = model.hasOffer && hasFinanceSpecial && Specials ? this.DataTransform.transformOfferData(Specials) : {\r\n monthly: 'default',\r\n description: 'default',\r\n term: 'default',\r\n availability: 'default',\r\n offerId: 'default',\r\n offerCode: 'default'\r\n };\r\n\r\n // one vehicle is returning null for ModelAttributes, I think this could\r\n // be an error in the response, wrapping in an if statment for now\r\n if (modelData.ModelAttributes) {\r\n const {ModelAttribute: modelAttributeIds} = modelData.ModelAttributes;\r\n const {ModelAttribute: modelAttributesData} = ModelAttributes;\r\n\r\n modelAttributeIds.forEach((modelAttributeId) => {\r\n const {modelAttriubteCodeMap, transmissionMap} = this.DataTransform;\r\n\r\n const modelAttributeData = modelAttributesData.find((modelAttributeData) => {\r\n return modelAttributeData['@id'] === modelAttributeId;\r\n });\r\n\r\n const key = modelAttriubteCodeMap[modelAttributeData['@Code']];\r\n\r\n if (key) {\r\n let value = modelAttributeData['@Value'];\r\n \r\n if (key === 'transmissionType') {\r\n // development only\r\n if (!(value in transmissionMap)) {\r\n console.error('new transmission value', value);\r\n }\r\n\r\n value = transmissionMap[value];\r\n }\r\n\r\n if (key === 'driveTrain' && value === 'All-Wheel Drive') {\r\n model.allWheelDrive = true;\r\n }\r\n \r\n Object.assign(model, {[key]: value});\r\n }\r\n });\r\n }\r\n \r\n ModelVINsOnSite.VIN.forEach((vehicleData) => {\r\n const vehicle = this.DataTransform.transformVehicleData(vehicleData);\r\n\r\n vehicle.dealer = dealers.find(({id}) => id === modelData['@DealerId']);\r\n vehicle.dealerId = vehicle.dealer.id;\r\n vehicle.distance = Number.parseFloat(vehicle.dealer.distance);\r\n\r\n vehicle.model = model;\r\n vehicle.modelId = model.id;\r\n vehicle.offer = offer;\r\n if(response.defaultAPR) {\r\n const monInt = response.defaultAPR / 1200;\r\n const totalDown = 0;\r\n const term = 60;\r\n vehicle.estimatedMonthlyAmount = ((monInt + (monInt / (Math.pow((1 + monInt), parseInt(term)) -1))) * (vehicle.price - (totalDown || 0))).toFixed(2);\r\n }\r\n\r\n vehicles.push(vehicle);\r\n });\r\n\r\n models.push(model);\r\n });\r\n }\r\n\r\n // make vehicle search data available on the page ( window.vehicleSearchData in console )\r\n window.vehicleSearchData = response.Output.Results;\r\n\r\n return {dealers, models, vehicles};\r\n }\r\n}\r\n\r\nangular.module('acpv').service('Inventory', Inventory);\n}(window, document, jQuery));\n","(function(window, document, $, undefined) {\nconst MOBILE_BREAKPOINT = '767px';\r\n\r\nclass Overlay {\r\n\r\n constructor($compile, $rootScope) {\r\n Object.assign(this, {$compile, $rootScope});\r\n }\r\n\r\n compile(options) {\r\n const scope = Object.assign(this.$rootScope.$new(), options.scope);\r\n const element = this.$compile(options.template)(scope);\r\n const overlay = new window.Overlay(element, options);\r\n\r\n let mediaQuery;\r\n let mediaQueryListener;\r\n\r\n if (options.fullscreen === true) {\r\n overlay.element.addClass('fullscreen');\r\n }\r\n\r\n if (options.fullscreen === 'mobile') {\r\n mediaQuery = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT})`);\r\n mediaQueryListener = function ({matches}) {\r\n overlay.element.toggleClass('fullscreen', matches);\r\n };\r\n\r\n mediaQuery.addListener(mediaQueryListener);\r\n overlay.element.toggleClass('fullscreen', mediaQuery.matches);\r\n }\r\n\r\n overlay.onClose = function () {\r\n overlay.remove();\r\n scope.$destroy();\r\n\r\n if (mediaQuery) {\r\n mediaQuery.removeListener(mediaQueryListener);\r\n }\r\n\r\n if (typeof options.onClose === 'function') {\r\n options.onClose();\r\n }\r\n };\r\n\r\n return {\r\n close: overlay.close.bind(overlay),\r\n element,\r\n open: overlay.open.bind(overlay),\r\n scope\r\n };\r\n }\r\n}\r\n\r\nangular.module('acpv').service('Overlay', Overlay);\n}(window, document, jQuery));\n","(function(window, document, $, undefined) {\nclass QueryParams {\r\n\r\n get(param) {\r\n return this.parse(location.search)[param];\r\n }\r\n\r\n // expects a query string of key=value pairs separated by an '&'\r\n parse(queryString) {\r\n if (queryString.charAt(0) === '?') {\r\n queryString = queryString.substr(1);\r\n }\r\n\r\n return queryString.split('&').reduce((aggregate, chunk) => {\r\n const [key, value] = chunk.split('=');\r\n \r\n return Object.assign(aggregate, {\r\n [decodeURI(key)]: decodeURI(value)\r\n });\r\n }, {});\r\n }\r\n}\r\n\r\nangular.module('acpv').service('QueryParams', QueryParams);\n}(window, document, jQuery));\n","(function(window, document, $, undefined) {\nconst MOBILE_REGEX = /Android|iPhone|iPad|iPod/i;\r\n\r\nclass Utils {\r\n\r\n isMobile = MOBILE_REGEX.test(navigator.userAgent);\r\n\r\n capitalize(string) {\r\n return string.charAt(0).toUpperCase() + string.slice(1);\r\n }\r\n \r\n invertMap(map) {\r\n return Object.entries(map).reduce((aggregate, [key, value]) => {\r\n return Object.assign(aggregate, {[value]: key});\r\n }, {});\r\n }\r\n\r\n isEmpty(object) {\r\n for (let property in object) {\r\n if (object.hasOwnProperty(property)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n isObject(value, strict = true) {\r\n if (typeof value !== 'object' || value === null) {\r\n return false;\r\n }\r\n\r\n return strict ? !Array.isArray(value) : true;\r\n }\r\n\r\n item(set, index) {\r\n if (index < 0) {\r\n index += set.length;\r\n }\r\n\r\n return set[index];\r\n }\r\n\r\n iterableToObject(iterable) {\r\n return iterable.reduce((aggregate, [key, value]) => {\r\n return Object.assign(aggregate, {[key]: value});\r\n }, {});\r\n }\r\n\r\n mapToObject(array, callback) {\r\n if (typeof callback !== 'function') {\r\n callback = (item) => ({[item]: undefined});\r\n }\r\n\r\n return array.reduce((aggregate, item) => {\r\n return Object.assign(aggregate, callback(item));\r\n }, {});\r\n }\r\n\r\n nearestMultiple(number, multiple) {\r\n return Math.ceil(number / multiple) * multiple;\r\n }\r\n\r\n partitionArray(array, itemsInPartition) {\r\n const result = [];\r\n \r\n for (let index = 0; index < array.length; index += itemsInPartition) {\r\n result.push(array.slice(index, index + itemsInPartition));\r\n }\r\n \r\n return result;\r\n }\r\n\r\n size(object) {\r\n let size = 0;\r\n\r\n for (let property in object) {\r\n if (object.hasOwnProperty(property)) {\r\n size++;\r\n }\r\n }\r\n\r\n return size;\r\n }\r\n}\r\n\r\nangular.module('acpv').service('Utils', Utils);\n}(window, document, jQuery));\n",null,"(function(window, document, $, undefined) {\nangular.module('acpv', ['acpv.templates']);\n}(window, document, jQuery));\n","(function(window, document, $, undefined) {\n// the models dictionary comes from the razor view\r\nangular.module('acpv').constant('VehicleLabels', acpv.modelsDictionary);\n}(window, document, jQuery));\n","(function(window, document, $, undefined) {\nangular.module('acpv').directive('bootstrapPopover', () => {\r\n\r\n function postLink(scope, element) {\r\n if (!element.popover) {\r\n return console.error('please include bootstrap.js to use this feature');\r\n }\r\n\r\n const options = {};\r\n\r\n if (scope.elementContent) {\r\n options.html = true;\r\n options.content = scope.elementContent;\r\n }\r\n\r\n element.popover(options);\r\n\r\n let timeoutId;\r\n\r\n element.on('shown.bs.popover', () => {\r\n if (scope.delay) {\r\n timeoutId = setTimeout(hidePopover, scope.delay.hide);\r\n }\r\n });\r\n\r\n element.on('hide.bs.popover', () => {\r\n clearTimeout(timeoutId);\r\n });\r\n\r\n function hidePopover() {\r\n element.popover('hide');\r\n element.data('bs.popover').inState.click = false;\r\n }\r\n }\r\n\r\n return {\r\n link: postLink,\r\n scope: {\r\n delay: ' window.acpv.ClipboardCopy);\n}(window, document, jQuery));\n","(function(window, document, $, undefined) {\nangular.module('acpv').factory('CompareVehicles', () => {\r\n return window.acpv.CompareVehicles\r\n});\n}(window, document, jQuery));\n","(function(window, document, $, undefined) {\nangular.module('acpv').factory('SavedVehicles', () => {\r\n return window.acpv.SavedVehicles;\r\n});\n}(window, document, jQuery));\n","(function(window, document, $, undefined) {\nangular.module('acpv').factory('SessionStorage', () => {\r\n return window.acpv.SessionStorage;\r\n});\n}(window, document, jQuery));\n","(function(window, document, $, undefined) {\nangular.module('acpv').factory('Storage', () => {\r\n return window.acpv.Storage;\r\n});\n}(window, document, jQuery));\n"]}