{"version":3,"file":"car-theft.min.js","names":["carTheftWidget","calc","form","claimResult","restartButton","bannerStep","bannerText","makeDropdown","modelDropdown","variantDropdown","modelDropdownField","variantDropdownField","claimResultText","claimResultValue","continueButton","totalBannerSteps","resultText","document","getElementById","bannerStep1Text","getAttribute","bannerStep2Text","selectMakeText","selectModelText","selectVariantText","resultTestBasedOn","veryHighText","veryHighValue","parseInt","highText","highValue","mediumText","mediumValue","smallText","smallValue","verySmallText","verySmallValue","sortByString","a","b","init","async","data","fetch","jsonData","json","calculateBannerProgress","progress","querySelector","stepWidth","innerHTML","style","width","restartCalc","classList","add","toggle","populateMakeDropdown","forEach","item","option","createElement","value","make","text","appendChild","addEventListener","selectedMake","selectedMakeData","find","model","sort","name","modelItem","remove","selectedModel","selectedModelData","variant","length","variantItem","populateVariantDropdown","this","populateModelDropdown","e","preventDefault","selectedVariant","resultWording","claimNumber","claims","selectedVariantData","replace","textContent","showClaimNumber"],"sources":["car-theft/car-theft.js"],"mappings":"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","ignoreList":[],"sourcesContent":["const carTheftWidget = (function () {\r\n\tlet calc,\r\n\t\tform,\r\n\t\tclaimResult,\r\n\t\trestartButton,\r\n\t\tbannerStep,\r\n\t\tbannerText,\r\n\t\tmakeDropdown,\r\n\t\tmodelDropdown,\r\n\t\tvariantDropdown,\r\n\t\tmodelDropdownField,\r\n\t\tvariantDropdownField,\r\n\t\tclaimResultText,\r\n\t\tclaimResultValue,\r\n\t\tcontinueButton,\r\n\t\ttotalBannerSteps;\r\n\r\n\tconst resultText = document.getElementById('cft-cms'),\r\n\t\tbannerStep1Text = resultText.getAttribute('data-banner-step-1-text'),\r\n\t\tbannerStep2Text = resultText.getAttribute('data-banner-step-2-text'),\r\n\t\tselectMakeText = resultText.getAttribute('data-dropdown-select-make'),\r\n\t\tselectModelText = resultText.getAttribute('data-dropdown-select-model'),\r\n\t\tselectVariantText = resultText.getAttribute('data-dropdown-select-variant'),\r\n\t\tresultTestBasedOn = resultText.getAttribute('data-based-on'),\r\n\t\tveryHighText = resultText.getAttribute('data-value-vh-wording'),\r\n\t\tveryHighValue = parseInt(resultText.getAttribute('data-value-vh-value'), 10),\r\n\t\thighText = resultText.getAttribute('data-value-h-wording'),\r\n\t\thighValue = parseInt(resultText.getAttribute('data-value-h-value'), 10),\r\n\t\tmediumText = resultText.getAttribute('data-value-m-wording'),\r\n\t\tmediumValue = parseInt(resultText.getAttribute('data-value-m-value'), 10),\r\n\t\tsmallText = resultText.getAttribute('data-value-s-wording'),\r\n\t\tsmallValue = parseInt(resultText.getAttribute('data-value-s-value'), 10),\r\n\t\tverySmallText = resultText.getAttribute('data-value-vs-wording'),\r\n\t\tverySmallValue = parseInt(resultText.getAttribute('data-value-vs-value'), 10);\r\n\r\n\tasync function init() {\r\n\t\tconst data = await fetch(document.getElementById('cft-json').getAttribute('data-json-path'));\r\n\t\tconst jsonData = await data.json();\r\n\t\tjsonData.sort((a, b) => sortByString(a.make, b.make));\r\n\r\n\t\tcalc = document.getElementById('cnfsd-cft-widget');\r\n\t\tform = document.getElementById('cnfsd_cft-form');\r\n\t\tclaimResult = document.getElementById('cnfsd_cft-result');\r\n\t\tbannerStep = calc.querySelector('.banner-current-progress');\r\n\t\tbannerText = calc.querySelector('.banner-current-text');\r\n\t\tmakeDropdown = document.getElementById('cnfsd_cft-make');\r\n\t\tmodelDropdown = document.getElementById('cnfsd_cft-model');\r\n\t\tvariantDropdown = document.getElementById('cnfsd_cft-variant');\r\n\t\tmodelDropdownField = document.getElementById('cnfsd_cft-model-field');\r\n\t\tvariantDropdownField = document.getElementById('cnfsd_cft-variant-field');\r\n\t\tclaimResultText = document.getElementById('cnfsd_cft-resultText');\r\n\t\tclaimResultValue = document.getElementById('cnfsd_cft-resultValue');\r\n\t\tcontinueButton = document.getElementById('cnfsd_cft-continue');\r\n\t\trestartButton = calc.querySelector('a.arrow-link--back');\r\n\t\ttotalBannerSteps = 2;\r\n\r\n\t\tfunction calculateBannerProgress() {\r\n\t\t\tconst progress = document.querySelector('.banner__progress-bar__bar'),\r\n\t\t\t\t//CALC WIDTH OF EACH STEP IN THE PROCESS\r\n\t\t\t\tstepWidth = `${(100 / totalBannerSteps) * parseInt(bannerStep.innerHTML)}%`;\r\n\t\t\tprogress.style.width = stepWidth;\r\n\t\t}\r\n\r\n\t\tcalculateBannerProgress();\r\n\r\n\t\tfunction restartCalc() {\r\n\t\t\tmakeDropdown.innerHTML = ``;\r\n\t\t\tmodelDropdown.innerHTML = ``;\r\n\t\t\tvariantDropdown.innerHTML = ``;\r\n\t\t\tmodelDropdownField.classList.add('display-none');\r\n\t\t\tvariantDropdownField.classList.add('display-none');\r\n\t\t\tcontinueButton.classList.add('display-none');\r\n\t\t\tswapUi();\r\n\t\t\tbannerStep.innerHTML = 1;\r\n\t\t\tbannerText.innerHTML = bannerStep1Text;\r\n\t\t\tcalculateBannerProgress();\r\n\t\t\tpopulateMakeDropdown();\r\n\t\t}\r\n\r\n\t\tfunction populateMakeDropdown() {\r\n\t\t\tjsonData.forEach(item => {\r\n\t\t\t\tconst option = document.createElement('option');\r\n\t\t\t\toption.value = item.make;\r\n\t\t\t\toption.text = item.make;\r\n\t\t\t\tmakeDropdown.appendChild(option);\r\n\t\t\t});\r\n\r\n\t\t\t// Add event listener to populate the models when a make is selected\r\n\t\t\tmakeDropdown.addEventListener('change', function () {\r\n\t\t\t\tpopulateModelDropdown(this.value);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction populateModelDropdown(selectedMake) {\r\n\t\t\t// Clear the current options\r\n\t\t\tmodelDropdown.innerHTML = ``;\r\n\t\t\tvariantDropdown.innerHTML = ``;\r\n\t\t\tvariantDropdownField.classList.add('display-none');\r\n\r\n\t\t\t// Clear the current options\r\n\t\t\t// modelDropdown.innerHTML = '';\r\n\r\n\t\t\t// Find the selected make's models and populate the dropdown\r\n\t\t\tconst selectedMakeData = jsonData.find(item => item.make === selectedMake);\r\n\t\t\tif (selectedMakeData) {\r\n\t\t\t\tselectedMakeData.model.sort((a, b) => sortByString(a.name, b.name));\r\n\r\n\t\t\t\tselectedMakeData.model.forEach(modelItem => {\r\n\t\t\t\t\tconst option = document.createElement('option');\r\n\t\t\t\t\toption.value = modelItem.name;\r\n\t\t\t\t\toption.text = modelItem.name;\r\n\t\t\t\t\tmodelDropdown.appendChild(option);\r\n\t\t\t\t});\r\n\t\t\t\tmodelDropdownField.classList.remove('display-none');\r\n\t\t\t\tmodelDropdown.addEventListener('change', function () {\r\n\t\t\t\t\tpopulateVariantDropdown(selectedMake, this.value);\r\n\t\t\t\t\tcontinueButton.classList.remove('display-none');\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tmodelDropdownField.classList.add('display-none');\r\n\t\t\t\tvariantDropdownField.classList.add('display-none');\r\n\t\t\t\tcontinueButton.classList.add('display-none');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction populateVariantDropdown(selectedMake, selectedModel) {\r\n\t\t\t// Clear the current options\r\n\t\t\tvariantDropdown.innerHTML = ``;\r\n\r\n\t\t\t// Find the selected make and model's variants and populate the dropdown\r\n\t\t\tconst selectedMakeData = jsonData.find(item => item.make === selectedMake);\r\n\t\t\tconst selectedModelData = selectedMakeData.model.find(item => item.name === selectedModel);\r\n\r\n\t\t\tif (selectedModelData && selectedModelData.variant && selectedModelData.variant.length > 0) {\r\n\t\t\t\tselectedModelData.variant.sort((a, b) => sortByString(a.name, b.name));\r\n\r\n\t\t\t\tselectedModelData.variant.forEach(variantItem => {\r\n\t\t\t\t\tconst option = document.createElement('option');\r\n\t\t\t\t\toption.value = variantItem.name;\r\n\t\t\t\t\toption.text = variantItem.name;\r\n\t\t\t\t\tvariantDropdown.appendChild(option);\r\n\t\t\t\t});\r\n\t\t\t\t// Remove the 'hidden' class to display the variant dropdown\r\n\t\t\t\tvariantDropdownField.classList.remove('display-none');\r\n\t\t\t} else {\r\n\t\t\t\t// If no model is selected, hide the variant dropdown\r\n\t\t\t\tvariantDropdownField.classList.add('display-none');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Show the claim number when continue button is clicked\r\n\t\tfunction showClaimNumber() {\r\n\t\t\tconst selectedMake = makeDropdown.value;\r\n\t\t\tconst selectedModel = modelDropdown.value;\r\n\t\t\tconst selectedVariant = variantDropdown.value;\r\n\t\t\tlet resultWording = '';\r\n\r\n\t\t\t// Find the selected make and model\r\n\t\t\tconst selectedMakeData = jsonData.find(item => item.make === selectedMake);\r\n\t\t\tconst selectedModelData = selectedMakeData.model.find(item => item.name === selectedModel);\r\n\r\n\t\t\tlet claimNumber = selectedModelData.claims;\r\n\r\n\t\t\t// If a variant is selected, find the claim number for the variant\r\n\t\t\tif (selectedVariant) {\r\n\t\t\t\tconst selectedVariantData = selectedModelData.variant.find(variant => variant.name === selectedVariant);\r\n\t\t\t\tclaimNumber = selectedVariantData ? selectedVariantData.claims : claimNumber;\r\n\t\t\t}\r\n\r\n\t\t\tif (claimNumber <= verySmallValue) {\r\n\t\t\t\tresultWording = verySmallText;\r\n\t\t\t} else if (claimNumber <= smallValue) {\r\n\t\t\t\tresultWording = smallText;\r\n\t\t\t} else if (claimNumber <= mediumValue) {\r\n\t\t\t\tresultWording = mediumText;\r\n\t\t\t} else if (claimNumber <= highValue) {\r\n\t\t\t\tresultWording = highText;\r\n\t\t\t} else if (claimNumber >= veryHighValue) {\r\n\t\t\t\tresultWording = veryHighText;\r\n\t\t\t}\r\n\r\n\t\t\t// Display the claim text and number\r\n\t\t\tclaimResultText.innerHTML = resultTestBasedOn.replace('{x}', claimNumber);\r\n\t\t\tclaimResultValue.textContent = `${resultWording}`;\r\n\t\t\tclaimResult.classList.remove('display-none');\r\n\t\t\tform.classList.add('display-none');\r\n\t\t\tbannerStep.innerHTML = 2;\r\n\t\t\tbannerText.innerHTML = bannerStep2Text;\r\n\t\t\tcalculateBannerProgress();\r\n\t\t}\r\n\r\n\t\tfunction swapUi() {\r\n\t\t\tclaimResult.classList.toggle('display-none');\r\n\t\t\tform.classList.toggle('display-none');\r\n\t\t}\r\n\r\n\t\tpopulateMakeDropdown();\r\n\r\n\t\tcontinueButton.addEventListener('click', function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tshowClaimNumber();\r\n\t\t});\r\n\r\n\t\trestartButton.addEventListener('click', e => {\r\n\t\t\te.preventDefault();\r\n\t\t\trestartCalc();\r\n\t\t});\r\n\t}\r\n\r\n\tfunction sortByString(a, b) {\r\n\t\tif (a < b) {\r\n\t\t\treturn -1;\r\n\t\t}\r\n\t\tif (a > b) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\treturn 0;\r\n\t}\r\n\r\n\treturn {\r\n\t\tinit: init,\r\n\t};\r\n})();\r\n\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n\tcarTheftWidget.init();\r\n});\r\n"]}