{"version":3,"file":"scripts/custom-forms.min.js","mappings":"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","sources":["webpack://sitecore-forms/./src/defer.ts","webpack://sitecore-forms/webpack/bootstrap","webpack://sitecore-forms/webpack/runtime/global","webpack://sitecore-forms/webpack/runtime/publicPath","webpack://sitecore-forms/./src/compatibility-guide/index.ts","webpack://sitecore-forms/./src/compatibility-guide/compatibility-guide.ts","webpack://sitecore-forms/./src/compatibility-guide/utils/clear-select-options.ts","webpack://sitecore-forms/./src/country-selector/index.ts","webpack://sitecore-forms/./src/country-selector/country-selector.ts","webpack://sitecore-forms/./src/module.scss"],"sourcesContent":["(() => {\r\n // Define the DOMParser instance only once\r\n const parser = new DOMParser();\r\n\r\n // Function to defer links (stylesheets)\r\n const deferLinks = (parsedHtml: any) => {\r\n const linkElement = document.querySelector('link[rel=\"stylesheet\"]');\r\n if (linkElement) {\r\n let html =\r\n parsedHtml.documentElement.innerHTML ||\r\n parsedHtml.documentElement.textContent;\r\n\r\n if (html.includes('<') || html.includes('>')) {\r\n html = html.replace(/</gi, '<').replace(/>/g, '>');\r\n }\r\n\r\n linkElement.insertAdjacentHTML('beforebegin', html);\r\n }\r\n };\r\n\r\n // Function to defer scripts\r\n const deferScripts = (parsedHtml: any) => {\r\n const head = document.head;\r\n const scriptElements: any[] = Array.from(parsedHtml.querySelectorAll('script'));\r\n\r\n scriptElements.forEach((script) => {\r\n const dtoScript = document.createElement('script');\r\n dtoScript.type = 'text/javascript';\r\n dtoScript.defer = true;\r\n dtoScript.async = true;\r\n dtoScript.src = script.src;\r\n head.appendChild(dtoScript);\r\n });\r\n };\r\n\r\n const deferredElements = document.querySelectorAll('noscript[defer]');\r\n\r\n deferredElements.forEach((deferredElement) => {\r\n const innerHtml = (deferredElement.innerHTML || '')\r\n .trim()\r\n .replace('\\n', '');\r\n\r\n if (innerHtml === '') {\r\n return;\r\n }\r\n\r\n const html = innerHtml;\r\n const parsedHtml = parser.parseFromString(html, 'text/html');\r\n const deferType = (\r\n deferredElement.getAttribute('defer') || ''\r\n ).toLowerCase();\r\n\r\n switch (deferType) {\r\n case 'scripts':\r\n deferScripts(parsedHtml);\r\n break;\r\n\r\n case 'links':\r\n default:\r\n deferLinks(parsedHtml);\r\n break;\r\n }\r\n\r\n deferredElement.remove();\r\n });\r\n})();\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl + \"../\";","import { bootstrap } from './compatibility-guide';\r\n\r\n(() => {\r\n const manufacturersFields: NodeListOf = document.querySelectorAll('.cg-manufacturers');\r\n if (manufacturersFields.length === 0) {\r\n return;\r\n }\r\n\r\n // Bootstrap compatibility guide dropdowns.\r\n bootstrap(manufacturersFields);\r\n})();\r\n","import { CompatibilityGuideBootstrap } from './models/compatibility-guide-bootstrap';\r\nimport { clearSelectOptions } from './utils/clear-select-options';\r\n\r\ndeclare var productApiConfig: any;\r\n\r\nexport const bootstrap: CompatibilityGuideBootstrap = (manufacturersFields: NodeListOf) => {\r\n Array.prototype.forEach.call(manufacturersFields, (manufacturersField: HTMLElement) => {\r\n const manufacturerSelect: HTMLSelectElement | null = manufacturersField.querySelector('select');\r\n if (!manufacturerSelect) {\r\n return;\r\n }\r\n\r\n const formElement = manufacturersField.parentNode?.parentNode;\r\n\r\n const manufacturerTypes = manufacturerSelect.dataset.cgTypes;\r\n const manufacturersUrl = productApiConfig.compatibilityGuideUrl + 'api/manufacturer?types=' + manufacturerTypes;\r\n const manufacturersXhr = new XMLHttpRequest();\r\n manufacturersXhr.open('GET', manufacturersUrl, true);\r\n manufacturersXhr.send();\r\n manufacturersXhr.onreadystatechange = () => {\r\n if (manufacturersXhr.readyState !== 4 || manufacturersXhr.status !== 200) {\r\n return;\r\n }\r\n\r\n const manufacturers = JSON.parse(manufacturersXhr.responseText);\r\n manufacturers.forEach((manufacturer: { id: string; name: string; }) => {\r\n const option: HTMLOptionElement = document.createElement('option');\r\n option.dataset.manufacturerId = manufacturer.id;\r\n option.appendChild(document.createTextNode(manufacturer.name));\r\n option.value = manufacturer.name;\r\n manufacturerSelect.appendChild(option);\r\n });\r\n };\r\n\r\n const modelsElement: HTMLElement | null | undefined = formElement?.querySelector('.cg-models');\r\n if (!modelsElement) {\r\n return;\r\n }\r\n\r\n const modelsSelect: HTMLSelectElement | null = modelsElement.querySelector('select');\r\n if (!modelsSelect) {\r\n return;\r\n }\r\n \r\n manufacturerSelect.addEventListener('change', () => {\r\n const selectedManufacturerOption = manufacturerSelect.options[manufacturerSelect.selectedIndex];\r\n clearSelectOptions(modelsSelect, 1);\r\n\r\n if (selectedManufacturerOption.value !== '') {\r\n manufacturerSelect.disabled = true;\r\n modelsSelect.disabled = true;\r\n const modelsXhr = new XMLHttpRequest();\r\n modelsXhr.open('GET', productApiConfig.compatibilityGuideUrl + 'api/manufacturer/' + selectedManufacturerOption.dataset.manufacturerId + '?types=' + manufacturerTypes);\r\n modelsXhr.send();\r\n modelsXhr.onreadystatechange = () => {\r\n if (modelsXhr.readyState !== 4 || modelsXhr.status !== 200) {\r\n return;\r\n }\r\n\r\n const models = JSON.parse(modelsXhr.responseText);\r\n Array.prototype.forEach.call(models, (model: { name: string; }) => {\r\n const option: HTMLOptionElement = document.createElement('option');\r\n option.appendChild(document.createTextNode(model.name));\r\n option.value = model.name;\r\n modelsSelect.appendChild(option);\r\n });\r\n\r\n manufacturerSelect.disabled = false;\r\n modelsSelect.disabled = false;\r\n modelsElement.style.display = 'block';\r\n };\r\n } else {\r\n modelsSelect.disabled = false;\r\n modelsElement.style.display = 'none';\r\n }\r\n });\r\n });\r\n};\r\n","/**\r\n * Clears select options from the specified index onwards.\r\n * @param select {HTMLSelectElement} HTML select element to clear options for\r\n * @param start {number} Index to start deleting options from (default is 0)\r\n */\r\nexport const clearSelectOptions = (select: HTMLSelectElement, start = 0) => {\r\n select.options.length = start;\r\n};","import { bootstrap } from './country-selector';\r\n\r\n(() => {\r\n const countrySelectorElements: JQuery = $('[states-json-id]');\r\n if (countrySelectorElements.length === 0) {\r\n return;\r\n }\r\n\r\n // Bootstrap country selector dropdowns.\r\n bootstrap(countrySelectorElements);\r\n})();\r\n","import { CountrySelectorBootstrap } from './models/country-selector-bootstrap';\r\n\r\nexport const bootstrap: CountrySelectorBootstrap = (countrySelectorElements: JQuery) => {\r\n countrySelectorElements.each((_index: number, element: Element) => {\r\n const countrySelectorElement = element as HTMLSelectElement;\r\n const countryStatesJsonId = countrySelectorElement.getAttribute('states-json-id');\r\n if (!countryStatesJsonId) {\r\n return;\r\n }\r\n\r\n const countryStatesElement = document.getElementById(countryStatesJsonId);\r\n if (countryStatesElement === null) {\r\n return;\r\n }\r\n\r\n const countryStates: any[] = JSON.parse(countryStatesElement.innerHTML);\r\n const countryStatesListId = countrySelectorElement.getAttribute('states-list-id');\r\n let lastSelectedCountry: string;\r\n let lastSelectedCountryIndex: number;\r\n\r\n countryStatesElement.parentNode?.removeChild(countryStatesElement);\r\n const $countrySelectorElement: JQuery = $(`#${countrySelectorElement.getAttribute('id')}`);\r\n $countrySelectorElement.on('change', () => {\r\n const selectedCountry = countrySelectorElement.value;\r\n const countryWithStates = !!selectedCountry && countryStates.filter((countryWithStates: any) => countryWithStates.Value === selectedCountry)[0];\r\n\r\n if (lastSelectedCountry !== undefined) {\r\n countrySelectorElement.options[lastSelectedCountryIndex].value = lastSelectedCountry;\r\n }\r\n\r\n lastSelectedCountry = selectedCountry;\r\n lastSelectedCountryIndex = countrySelectorElement.selectedIndex;\r\n const countryStatesElements: JQuery = $(`#${countryStatesListId}`);\r\n const countryStatesValidationElements: JQuery = $(`[data-valmsg-for=\"${countryStatesListId}\"]`);\r\n\r\n countryStatesElements.off().remove();\r\n countryStatesValidationElements.off().remove();\r\n \r\n if (!countryWithStates) {\r\n return;\r\n }\r\n\r\n const states = countryWithStates.States;\r\n let statesSelectorHtml = `\r\n ';\r\n $countrySelectorElement.after(statesSelectorHtml);\r\n\r\n const $countryStatesElement = $(`#${countryStatesListId}`);\r\n $countryStatesElement.on('change', function() {\r\n const countryStatesElementValue: string = $countryStatesElement.val() as string;\r\n if (countryStatesElementValue === '') {\r\n countrySelectorElement.options[countrySelectorElement.selectedIndex].value = selectedCountry;\r\n } else {\r\n countrySelectorElement.options[countrySelectorElement.selectedIndex].value = countryStatesElementValue;\r\n }\r\n });\r\n\r\n const statesSelectorValidationHtml = ``\r\n $countryStatesElement.after(statesSelectorValidationHtml);\r\n });\r\n\r\n // Trigger change event because country list could be pre-selected from Sitecore.\r\n $countrySelectorElement.trigger('change');\r\n });\r\n};\r\n","export default __webpack_public_path__ + \"css/custom-forms.min.css\";"],"names":["parser","DOMParser","document","querySelectorAll","forEach","deferredElement","innerHtml","innerHTML","trim","replace","html","parsedHtml","parseFromString","getAttribute","toLowerCase","head","Array","from","script","dtoScript","createElement","type","defer","async","src","appendChild","deferScripts","linkElement","querySelector","documentElement","textContent","includes","insertAdjacentHTML","deferLinks","remove","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","g","globalThis","this","Function","e","window","scriptUrl","importScripts","location","currentScript","tagName","toUpperCase","scripts","getElementsByTagName","length","i","test","Error","p","manufacturersFields","prototype","call","manufacturersField","manufacturerSelect","formElement","parentNode","manufacturerTypes","dataset","cgTypes","manufacturersUrl","productApiConfig","compatibilityGuideUrl","manufacturersXhr","XMLHttpRequest","open","send","onreadystatechange","readyState","status","JSON","parse","responseText","manufacturer","option","manufacturerId","id","createTextNode","name","value","modelsElement","modelsSelect","addEventListener","selectedManufacturerOption","options","selectedIndex","select","start","clearSelectOptions","disabled","modelsXhr","models","model","style","display","bootstrap","countrySelectorElements","$","each","_index","element","countrySelectorElement","countryStatesJsonId","countryStatesElement","getElementById","countryStates","countryStatesListId","lastSelectedCountry","lastSelectedCountryIndex","removeChild","$countrySelectorElement","on","selectedCountry","countryWithStates","filter","Value","countryStatesElements","countryStatesValidationElements","off","states","States","statesSelectorHtml","state","IsoCode","Name","after","$countryStatesElement","countryStatesElementValue","val","statesSelectorValidationHtml","trigger"],"sourceRoot":""}