{"version":3,"file":"barcodeGenerator.chunk.43586b1bcdd999a19706.js","mappings":"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","sources":["webpack:///./html/wp-content/themes/ls/src/js/main/components/barcodeGenerator/barcodeGenerator.js"],"sourcesContent":["import { CookieMonster } from 'root/utils/cookies/cookieMonster';\nimport JsBarcode from 'jsbarcode';\nimport { LoggingHandler } from 'root/utils/errorReporting/LoggingHandler';\n\nfunction barcodeGenerator(el) {\n const cm = new CookieMonster();\n const generateBarcodeButton = el.querySelector('[data-barcode-generator-button]');\n const downloadButton = el.querySelector('[data-barcode-generator-download-button]');\n const barcodeInputField = el.querySelector('[data-barcode-generator-input]');\n const barcodeFormatSelectField = el.querySelector('[data-barcode-generator-select]');\n const svgEl = el.querySelector('[data-barcode-generator-svg]');\n const svgElContainer = svgEl.parentElement;\n const guideEls = el.querySelectorAll('[data-barcode-generator-guide]');\n const barcodeGeneratorForm = el.querySelector('[data-barcode-generator-form]');\n const barcodeGeneratorResetButton = el.querySelector(\n '[data-barcode-generator-reset]'\n );\n const barcodeGeneratorErrorMessage = el.querySelector(\n '[data-barcode-generator-error]'\n );\n const leadformContainer = el.querySelector('[data-barcode-generator-leadform]');\n const leadform = el.querySelector('[data-form=form-section]');\n const cookieName = '_ls-barcode-generator-email';\n const validInputFieldClass = 'js-field-valid';\n const localStorageSvgValue = 'ls.barcode.value';\n const localStorageSvgFormat = 'ls.barcode.format';\n const localStorageLeadformEmail = 'ls.barcode.email';\n\n function generateBarcode() {\n try {\n if (!cm.getCookie(cookieName)) {\n if (\n barcodeInputField.parentElement.classList.contains(\n validInputFieldClass\n )\n ) {\n hide(barcodeGeneratorErrorMessage);\n JsBarcode('[data-barcode-generator-svg]').init();\n revealAnimation(svgElContainer);\n hide(barcodeGeneratorForm);\n displayGuideStep('1', 'conceal');\n displayGuideStep('2');\n displayLeadform();\n }\n } else {\n populateFieldsWithLocalStorageData();\n downloadBarcode();\n }\n } catch (e) {\n revealAnimation(barcodeGeneratorErrorMessage);\n }\n }\n\n function displayLeadform() {\n if (!localStorage.getItem(localStorageLeadformEmail)) {\n setTimeout(() => {\n revealAnimation(leadformContainer);\n }, 500);\n } else {\n postSuccessProcess(false, localStorage.getItem(localStorageLeadformEmail));\n displayGuideStep('3', 'conceal');\n }\n }\n\n function resetLocalStorage() {\n localStorage.removeItem(localStorageSvgValue);\n localStorage.removeItem(localStorageSvgFormat);\n }\n\n function resetBarcodeSvg() {\n svgEl.setAttribute('jsbarcode-value', '');\n svgEl.setAttribute('jsbarcode-format', 'auto');\n }\n\n function resetBarcodeForm() {\n barcodeInputField.value = '';\n barcodeInputField.parentElement.classList.remove(validInputFieldClass);\n barcodeInputField.nextElementSibling.classList.remove('js-raised');\n }\n\n function resetLeadform() {\n hide(leadformContainer);\n if (leadform) {\n leadform.style.display = 'block';\n }\n }\n\n function reset(e) {\n if (e.target.tagName === 'A') {\n cm.unsetCookie(cookieName);\n resetLocalStorage();\n resetBarcodeForm();\n resetBarcodeSvg();\n resetLeadform();\n barcodeFormatSelectField.value = barcodeFormatSelectField.options[0].value;\n hide(svgElContainer);\n hide(downloadButton);\n hide(barcodeGeneratorResetButton);\n displayGuideStep('2', 'conceal');\n displayGuideStep('3', 'conceal');\n init();\n }\n }\n\n function downloadBarcode() {\n try {\n const barcodeValue = barcodeInputField && barcodeInputField.value;\n const extension = '.svg';\n const barcodeImage = barcodeValue + extension;\n const barcodeSvgXml = svgEl && new XMLSerializer().serializeToString(svgEl);\n const blob = new Blob([barcodeSvgXml]);\n const url = window.URL || window.webkitURL;\n const blobURL = url.createObjectURL(blob);\n const tempDownloadButton = document.createElement('a');\n tempDownloadButton.download = barcodeImage;\n tempDownloadButton.href = blobURL;\n document.body.appendChild(tempDownloadButton);\n tempDownloadButton.click();\n } catch (e) {\n LoggingHandler().logError(e, {\n searchTerm: 'barcode-download-error',\n fileName: 'barcodeGenerator.js',\n });\n }\n }\n\n function postSuccessProcess(\n downloadBarcodeBool = true,\n leadformEmailFieldValue = ''\n ) {\n window.registerCookieComplianceCallback({\n callback: () => {\n cm.setCookie(cookieName, true);\n localStorage.setItem(\n localStorageLeadformEmail,\n window.btoa(leadformEmailFieldValue)\n );\n },\n category: 'functional',\n isCallOptanonWrapper: true,\n });\n\n displayGuideStep('2', 'conceal');\n displayGuideStep('3');\n revealAnimation(downloadButton);\n revealAnimation(barcodeGeneratorResetButton);\n localStorage.setItem(localStorageSvgValue, barcodeInputField.value);\n localStorage.setItem(localStorageSvgFormat, barcodeFormatSelectField.value);\n if (downloadBarcodeBool) downloadBarcode();\n }\n\n function hide(el) {\n el && el.classList.add('js-barcode-hidden');\n }\n\n function show(el) {\n el && el.classList.remove('js-barcode-hidden');\n }\n\n function revealAnimation(el) {\n if (el) {\n show(el);\n el.classList.remove('js-barcode-conceal');\n el.classList.add('js-barcode-reveal');\n }\n }\n\n function displayGuideStep(stepNum, animationType = 'reveal') {\n if (guideEls && guideEls.length > 0) {\n Array.from(guideEls).forEach(el => {\n if (el.dataset.barcodeGeneratorGuide === stepNum) {\n if (animationType === 'reveal') revealAnimation(el);\n if (animationType === 'conceal') hide(el);\n }\n });\n }\n }\n\n function populateFieldsWithLocalStorageData() {\n barcodeInputField.value = localStorage.getItem(localStorageSvgValue);\n barcodeFormatSelectField.value = localStorage.getItem(localStorageSvgFormat);\n }\n\n function populateBarcodeSvgWithLocalStorageData() {\n svgEl &&\n svgEl.setAttribute(\n 'jsbarcode-value',\n localStorage.getItem(localStorageSvgValue)\n );\n svgEl &&\n svgEl.setAttribute(\n 'jsbarcode-format',\n localStorage.getItem(localStorageSvgFormat)\n );\n }\n\n function uncookiedInitialDisplay() {\n displayGuideStep('1');\n revealAnimation(barcodeGeneratorForm);\n show(barcodeGeneratorForm);\n }\n\n function cookiedInitialDisplay() {\n populateBarcodeSvgWithLocalStorageData();\n JsBarcode('[data-barcode-generator-svg]').init();\n hide(barcodeGeneratorForm);\n revealAnimation(svgElContainer);\n revealAnimation(downloadButton);\n revealAnimation(barcodeGeneratorResetButton);\n }\n\n function eventHandlers() {\n generateBarcodeButton &&\n generateBarcodeButton.addEventListener('click', generateBarcode);\n barcodeFormatSelectField &&\n barcodeFormatSelectField.addEventListener('change', e => {\n svgEl && svgEl.setAttribute('jsbarcode-format', e.target.value);\n });\n barcodeInputField &&\n barcodeInputField.addEventListener('blur', e => {\n if (e.target.parentElement.classList.contains(validInputFieldClass)) {\n svgEl && svgEl.setAttribute('jsbarcode-value', e.target.value);\n }\n });\n barcodeGeneratorResetButton &&\n barcodeGeneratorResetButton.addEventListener('click', reset);\n downloadButton &&\n downloadButton.addEventListener('click', e => {\n e.preventDefault();\n populateFieldsWithLocalStorageData();\n downloadBarcode();\n });\n }\n\n function init() {\n revealAnimation(el);\n !cm.getCookie(cookieName) ? uncookiedInitialDisplay() : cookiedInitialDisplay();\n eventHandlers();\n }\n\n return {\n init,\n postSuccessProcess,\n };\n}\n\nexport default function barcodeGeneratorInit(els) {\n els.forEach(el => {\n if (el) {\n barcodeGenerator(el).init();\n }\n });\n}\n\nexport { barcodeGenerator };\n"],"names":["barcodeGenerator","el","cm","CookieMonster","generateBarcodeButton","querySelector","downloadButton","barcodeInputField","barcodeFormatSelectField","svgEl","svgElContainer","parentElement","guideEls","querySelectorAll","barcodeGeneratorForm","barcodeGeneratorResetButton","barcodeGeneratorErrorMessage","leadformContainer","leadform","cookieName","validInputFieldClass","localStorageSvgValue","localStorageSvgFormat","localStorageLeadformEmail","generateBarcode","getCookie","populateFieldsWithLocalStorageData","downloadBarcode","classList","contains","hide","JsBarcode","init","revealAnimation","displayGuideStep","localStorage","getItem","postSuccessProcess","setTimeout","e","reset","target","tagName","unsetCookie","removeItem","value","remove","nextElementSibling","setAttribute","style","display","options","barcodeImage","barcodeSvgXml","XMLSerializer","serializeToString","blob","Blob","blobURL","window","URL","webkitURL","createObjectURL","tempDownloadButton","document","createElement","download","href","body","appendChild","click","LoggingHandler","logError","searchTerm","fileName","downloadBarcodeBool","arguments","length","undefined","leadformEmailFieldValue","registerCookieComplianceCallback","callback","setCookie","setItem","btoa","category","isCallOptanonWrapper","add","show","stepNum","animationType","Array","from","forEach","dataset","barcodeGeneratorGuide","addEventListener","preventDefault","barcodeGeneratorInit","els"],"sourceRoot":""}