{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./cartridges/app_custom_bollesafety/cartridge/client/default/js/rxForm.js","webpack:///../ecom-core/cartridges/app_custom_core/cartridge/client/default/js/rxForm.js","webpack:///../ecom-core/cartridges/app_custom_core/cartridge/client/default/js/rxForm/rxVoucherForm.js","webpack:///../ecom-core/cartridges/app_custom_core/cartridge/client/default/js/rxForm/rxForm.js","webpack:///../ecom-core/dependencies/storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/util.js","webpack:///../ecom-core/dependencies/storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/formValidation.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","processInclude","$","document","ready","attr","formValidation","$cache","form","cardNumberInput","init","window","dataLayer","on","async","addClass","html","response","Promise","resolve","reject","spinner","start","button","push","event","ajax","method","url","data","serialize","success","removeAttr","stop","errorMsg","error","err","nextStepUrl","location","href","e","length","removeClass","showErrorMessage","which","preventDefault","sections","trigger","getSelection","toString","inArray","keyCode","$this","this","hasHitDelete","lastCharIsSpace","val","substr","input","replace","chunk","len","nbGroups","join","toUpperCase","rxContainer","section1","section2","section3","section4","pdWidgetWrapper","pdWidget","vtoWidget","pdResultInput","frameProductId","nav","helpSection","helpBtn","openSection","stepNumber","show","currentStep","find","hasClass","handleNavigation","$stepBanner","$otherBanners","animate","height","setTimeout","css","functionNamesMap","verifySection1","is","verifySection2","$currentSection","Error","verifySection3","hasFoundInvalid","$inputsLens","$checkedInputLens","$parentsLens","closest","parent","$inputsPrescription","$checkedInputPrescription","$parentPrescription","initSection1","$nextBtn","$launchPDBtn","$setSubStepBtn","$nextSubStepBtn","$pdManualCheckbox","$backBtn","off","triggerHelpAfterDuration","params","apiKey","JSON","parse","$resultWrapper","click","closeMsrt","hide","scrollTop","Msrt","createWidget","onGetResultPd","result","pdValue","pd","left","right","onTooManyErrors","console","log","onClose","launchMsrt","pdMode","subStep","savePDValue","$jsCustomerPDContainer","mesureUnit","last","labelRight","labelLeft","formattedHtml","values","split","parseFloat","finalValue","isNaN","initSection2","$fitmix","$vtoModal","stopVto","fitmixInstance","slick","rows","dots","infinite","slidesToShow","slidesToScroll","mobileFirst","responsive","breakpoint","settings","htmlContent","$productGrid","$modalBody","initVTOonItem","vtoId","productId","setFrame","$carouselSlide","remove","appendTo","$productTile","startVto","modal","$parent","currentlySelectedProductID","stopPropagation","$productInfo","$currentFrame","text","offset","top","complete","initSection3","isSectionComplete","lens","prescriptionType","$checkedInput","initSection4","$form","$shippingTypeRadio","$enduserAddress","$homeShippingForm","$shippingHomeInputs","getShippingTypeVal","handleShippingType","preventFocus","prop","focus","FormData","enctype","processData","contentType","dataType","timeout","cache","redirectUrl","msg","$input","outerHeight","callSectionFunction","action","step","clearErrorMessage","updateStep","preloadVTO","onStopVto","dataPrivacyDisclaimerTexts","FitMix","currentSection","nextSection","isJumpStep","scrollTo","behavior","history","pushState","title","pathname","requestedStep","match","param","urlStep","URLSearchParams","search","currentUrl","URL","searchParams","set","replaceState","updateUrlParameter","toggleClass","$content","contentHtml","include","keys","forEach","formElement","payload","clearFormErrors","fields","feedbackElement","children","Array","isArray","siblings","parents","prepend"],"mappings":"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","file":"default/js/rxForm.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 274);\n","'use strict';\n\nrequire('core/rxForm');\n","'use strict';\n\nvar processInclude = require('base:util');\n\n$(document).ready(function () {\n if ($('#rx-container').attr('data-current-step') === '0') {\n processInclude(require('rxForm/rxVoucherForm'));\n } else {\n processInclude(require('rxForm/rxForm'));\n }\n});\n","'use strict';\n\nvar formValidation = require('base:components/formValidation');\nlet $cache = {\n form: $('#rxForm'),\n cardNumberInput: $('#dwfrm_rxForm_cardNumber')\n};\n\n/**\n * Clear error message\n */\nfunction clearErrorMessage() {\n $('.rx-error-message .alert-danger').addClass('d-none');\n $('.rx-error-message:visible .alert-danger .error-message-text').html('');\n}\n/**\n * Show error message\n * @param {any} e - error\n */\nfunction showErrorMessage(e) {\n $('.rx-error-message:visible .alert-danger').removeClass('d-none');\n $('.rx-error-message:visible .alert-danger .error-message-text').html(e);\n}\n\n/**\n * verify form entries of section 0\n * @returns {Promise} promise\n */\nfunction verifySection0() {\n return new Promise((resolve, reject) => {\n $.spinner().start();\n var button = $('.btn-submit-rx-voucher-form');\n\n window.dataLayer.push({\n event: 'Etape0'\n });\n\n button.attr('disabled', true);\n $.ajax({\n method: 'POST',\n url: $cache.form.attr('data-voucher-submit'),\n data: $cache.form.serialize(),\n success: function (data) {\n if (!data.success) {\n formValidation($cache.form, data);\n reject(data.errorMsg);\n button.removeAttr('disabled');\n $.spinner().stop();\n } else {\n resolve(data);\n button.removeAttr('disabled');\n $.spinner().stop();\n }\n },\n error: function (err) {\n reject(err);\n button.removeAttr('disabled');\n $.spinner().stop();\n }\n });\n });\n}\n\nmodule.exports = {\n init: function () {\n window.dataLayer = window.dataLayer || [];\n $('.js-next-btn').on('click', async function () {\n try {\n clearErrorMessage();\n let response = await verifySection0();\n\n if (response.nextStepUrl) {\n window.location.href = response.nextStepUrl;\n }\n } catch (e) {\n if (e && e.length > 0) {\n showErrorMessage(e);\n }\n }\n });\n $($cache.form).on('keypress', function (e) {\n if (e.which === 13) {\n e.preventDefault();\n $('.js-next-btn:visible', $cache.sections).trigger('click');\n }\n });\n\n $cache.cardNumberInput.on('keyup', function (event) {\n // When user select text in the document, also abort.\n var selection = window.getSelection().toString();\n if (selection !== '') {\n return;\n }\n // When the arrow keys are pressed, abort.\n if ($.inArray(event.keyCode, [38, 40, 37, 39]) !== -1) {\n return;\n }\n var $this = $(this);\n var hasHitDelete = event.keyCode === 8 || event.keyCode === 46;\n var lastCharIsSpace = $this.val().substr(-1) === ' ' && !hasHitDelete;\n var input = $this.val().replace(/[^a-z0-9]/gi, '');\n var charsPerGroup = 3;\n var nbGroups = 4;\n var chunk = [];\n\n for (var i = 0, len = input.length; i < len && i < nbGroups * charsPerGroup; i += charsPerGroup) {\n chunk.push(input.substr(i, charsPerGroup));\n }\n $this.val(function () {\n return chunk.join(' ').toUpperCase() + (lastCharIsSpace ? ' ' : '');\n });\n });\n }\n};\n","'use strict';\n\nlet $cache = {\n rxContainer: $('#rx-container'),\n sections: $('.rx-form-section'),\n section1: $('.rx-form-section[data-step=\"1\"]'),\n section2: $('.rx-form-section[data-step=\"2\"]'),\n section3: $('.rx-form-section[data-step=\"3\"]'),\n section4: $('.rx-form-section[data-step=\"4\"]'),\n form: $('#rxForm'),\n pdWidgetWrapper: $(\".msrt-wrapper\"),\n pdWidget: $('#msrt-container'),\n vtoWidget: $('#VTOWidget'),\n pdResultInput: $('#dwfrm_rxForm_pupillaryDistance'),\n frameProductId: $('input[name=\"dwfrm_rxForm_productID\"]'),\n nav: $('.rx-stepper'),\n helpSection: $('.js-help-section'),\n helpBtn: $('.js-help-btn')\n};\n\nconst NB_STAGES = 5;\n\n/**\n * open a new section and close the previous one\n * @param {string|integer} stepNumber - current step to open\n */\nfunction openSection(stepNumber) {\n $('.rx-form-section:not([data-step=\"' + stepNumber + '\"])').removeClass('active');\n $cache['section' + stepNumber].show().addClass('active');\n $cache.rxContainer.attr('data-current-step', stepNumber);\n handleNavigation(stepNumber);\n\n let $stepBanner = $(`.js-hero-banner[data-step=\"${stepNumber}\"]`);\n let $otherBanners = $(`.js-hero-banner:not([data-step=\"${stepNumber}\"])`);\n $otherBanners.animate({\n height: \"0px\"\n }, 300);\n setTimeout(function () {\n $otherBanners.addClass('d-none');\n }, 300);\n if ($stepBanner.length) {\n $stepBanner.css({\n height: \"auto\"\n });\n setTimeout(function () {\n $stepBanner.show();\n $stepBanner.removeClass('d-none');\n }, 300);\n }\n}\n\n/**\n * Launch Pupillary Distance Widget\n * @param {*} $currentSection - context node element\n */\nfunction launchMsrt($currentSection) {\n let triggerHelpAfterDuration = true;\n $cache.pdWidgetWrapper.show();\n const params = {\n apiKey: $cache.pdWidget.attr('data-api-key'),\n ...(JSON.parse($cache.pdWidget.attr('data-theme-config') || {})),\n };\n const $nextBtn = $('.js-next-btn', $currentSection);\n const $launchPDBtn = $('.js-launch-pd');\n const $resultWrapper = $('.js-pd-result-wrapper');\n\n $nextBtn.addClass('disabled');\n $('body').addClass('modal-open');\n $('.js-error-pd-missing', $currentSection).addClass('d-none');\n\n\n setTimeout(function () {\n if (triggerHelpAfterDuration) {\n $cache.helpBtn.click();\n }\n }, 1000 * 60 * 2) // 2 minutes\n\n window.closeMsrt = function () {\n triggerHelpAfterDuration = false;\n $cache.pdWidgetWrapper.hide();\n $cache.pdWidget.html('');\n $('body').removeClass('modal-open');\n if ($cache.pdResultInput.val()) {\n $resultWrapper.removeClass('d-none');\n $nextBtn.removeClass('disabled');\n $launchPDBtn.addClass('d-none');\n } else {\n $resultWrapper.addClass('d-none');\n $nextBtn.addClass('disabled');\n $launchPDBtn.removeClass('d-none');\n }\n $('html, body').animate({\n scrollTop: 0\n }, 500);\n };\n\n Msrt.createWidget(\"msrt-container\", {\n ...params,\n onGetResultPd: (result) => {\n let pdValue = result.pd;\n if (result.left && result.right) {\n pdValue += '|' + result.left + '|' + result.right;\n }\n $('body').trigger('rxForm:PDResultReceived', [pdValue]);\n },\n onTooManyErrors: () => { console.log('Errors PD widget'); closeMsrt(); },\n onClose: () => {\n window.closeMsrt();\n }\n });\n};\n\n/**\n * Init events of section 1\n * @returns {Promise} promise\n */\nfunction initSection1() {\n return new Promise((resolve, reject) => {\n const SECTION_STEP = 1;\n let $currentSection = $cache.section1;\n const $nextBtn = $('.js-next-btn', $currentSection);\n const $launchPDBtn = $('.js-launch-pd');\n const $setSubStepBtn = $('.js-pd-set-sub-step', $currentSection);\n const $nextSubStepBtn = $('.js-pd-next-sub-step', $currentSection);\n const $pdManualCheckbox = $('.js-pd-input-double-checkbox', $currentSection);\n const $backBtn = $('.js-back-btn', $currentSection);\n\n openSection(SECTION_STEP);\n if ($cache.pdResultInput.val()) {\n $nextBtn.removeClass('disabled');\n }\n $launchPDBtn.off('click').on('click', function () {\n launchMsrt($currentSection);\n window.dataLayer.push({\n event: 'MesurePupille'\n });\n });\n $('.msrt-overlay', $currentSection).off('click').on('click', function () {\n window.closeMsrt();\n });\n $nextBtn.on('click', function () {\n if ($(this).hasClass('disabled') === true) {\n $('.js-error-pd-missing', $currentSection).removeClass('d-none');\n }\n });\n $setSubStepBtn.on('click', function () {\n const pdMode = $(this).attr('data-pd-mode');\n $setSubStepBtn.removeClass('active');\n $(this).addClass('active');\n $nextSubStepBtn.attr('data-pd-mode', pdMode);\n $nextSubStepBtn.removeClass('disabled');\n });\n $nextSubStepBtn.on('click', function () {\n const subStep = $(this).attr('data-sub-step');\n const pdMode = $(this).attr('data-pd-mode');\n $('.js-pd-pane-sub-section', $currentSection).addClass('d-none');\n $(`.js-pd-pane-sub-section[data-sub-step=\"${subStep}\"][data-pd-mode=\"${pdMode}\"]`, $currentSection).removeClass('d-none');\n if (subStep === \"2\" && pdMode === 'measure') {\n $('.js-next-pd-widget-form').removeClass('d-none');\n } else {\n $('.js-next-pd-widget-form').addClass('d-none');\n }\n $('.js-launch-pd').removeClass('d-none');\n });\n $pdManualCheckbox.on('change', function () {\n $('.js-pd-manual-value-container', $currentSection).addClass('d-none').find('.js-pd-manual-input').val('');\n window.savePDValue(null);\n if ($(this).is(':checked')) {\n $('.js-pd-manual-value-container[data-type=\"double\"]', $currentSection).removeClass('d-none');\n } else {\n $('.js-pd-manual-value-container[data-type=\"single\"]', $currentSection).removeClass('d-none');\n }\n });\n $backBtn.off('click').on('click', function () {\n $('.js-pd-pane-sub-section', $currentSection).addClass('d-none');\n $('.js-pd-pane-sub-section[data-sub-step=\"1\"]', $currentSection).removeClass('d-none');\n $('.js-next-pd-widget-form').addClass('d-none');\n });\n\n function savePDValue(pdValue) {\n const $launchPDBtn = $('.js-launch-pd');\n\n var $jsCustomerPDContainer = $('.js-customer-pd');\n \n const mesureUnit = $jsCustomerPDContainer.last().attr('data-mesure-unit');\n const labelRight = $jsCustomerPDContainer.last().attr('data-label-right');\n const labelLeft = $jsCustomerPDContainer.last().attr('data-label-left');\n\n let formattedHtml = '';\n\n // Split the pdValue into its components\n if (pdValue) {\n const values = pdValue.toString().split('|');\n\n // Check the number of values and construct the formatted string accordingly\n if (values.length === 3) {\n formattedHtml = `${labelRight}: ${values[2]} ${mesureUnit}, ${labelLeft}: ${values[1]} ${mesureUnit}`;\n } else if (values.length === 2) {\n formattedHtml = `${labelRight}: ${values[1]} ${mesureUnit}, ${labelLeft}: ${values[0]} ${mesureUnit}`;\n } else if (values.length === 1) {\n formattedHtml = `${values[0]} ${mesureUnit}`;\n }\n }\n $jsCustomerPDContainer.html(formattedHtml);\n\n $cache.pdResultInput.val(pdValue);\n\n if (pdValue) {\n $nextBtn.removeClass('disabled');\n $launchPDBtn.addClass('d-none');\n $('html, body').animate({\n scrollTop: 0\n }, 500);\n } else {\n $nextBtn.addClass('disabled');\n $launchPDBtn.removeClass('d-none');\n }\n }\n window.savePDValue = savePDValue;\n\n $('.js-pd-manual-input', $currentSection).on('change, keyup', function () {\n let name = $(this).attr('name');\n let value = parseFloat($(this).val());\n let finalValue = value;\n\n if (isNaN(value)) {\n finalValue = '';\n } else {\n if (name === 'pd-value') {\n finalValue = value;\n } else {\n let right = $('.js-pd-manual-input[name=\"pd-value-right\"]', $currentSection).val();\n let left = $('.js-pd-manual-input[name=\"pd-value-left\"]', $currentSection).val();\n finalValue = left && right ? left + '|' + right : '';\n }\n }\n window.savePDValue(finalValue ? [finalValue] : null);\n });\n\n function PDResultReceived(e, pdValue) {\n window.savePDValue(pdValue);\n window.closeMsrt();\n };\n $('body').on('rxForm:PDResultReceived', PDResultReceived);\n return resolve();\n });\n}\n\n\n/**\n * Init events of section 2\n * @returns {Promise} promise\n */\nfunction initSection2() {\n return new Promise((resolve, reject) => {\n const SECTION_STEP = 2;\n let $currentSection = $cache.section2;\n openSection(SECTION_STEP);\n const $fitmix = $cache.vtoWidget;\n const $vtoModal = $('#rx-VTO-modal', $currentSection);\n const productCarouselSelector = '.carousel';\n const $nextBtn = $('.js-next-btn', $currentSection);\n window.dataLayer.push({\n 'event': 'Etape1'\n });\n\n if ($cache.frameProductId.val()) {\n $nextBtn.removeClass('disabled');\n }\n /**\n * open VTO module\n */\n function openVto() {\n window.fitmixInstance.startVto('live');\n $fitmix.show();\n $vtoModal.modal();\n }\n /**\n * stop VTO module\n */\n function stopVto() {\n window.fitmixInstance.stopVto();\n }\n $vtoModal.on('hide.bs.modal', function (e) {\n stopVto();\n $(productCarouselSelector, $vtoModal).slick('unslick');\n })\n $vtoModal.on('shown.bs.modal', function () {\n $(productCarouselSelector, $vtoModal).slick({\n rows: 0,\n dots: false,\n infinite: true,\n slidesToShow: 2,\n slidesToScroll: 1,\n mobileFirst: true,\n responsive: [\n {\n breakpoint: 1024,\n settings: {\n slidesToShow: 4,\n slidesToScroll: 2\n }\n }, {\n breakpoint: 768,\n settings: {\n dots: false,\n slidesToShow: 3,\n slidesToScroll: 1\n }\n }\n ]\n });\n })\n $('.js-stop-vto').off('click').on('click', function () {\n stopVto();\n });\n\n $.ajax({\n method: 'GET',\n url: $currentSection.attr('data-products-url'),\n success: function (htmlContent) {\n let $productGrid = $('.js-product-grid', $currentSection);\n let $modalBody = $('#rx-VTO-modal .modal-body');\n $productGrid.html(htmlContent);\n if ($('.js-product-carousel', $modalBody).length > 0) {\n $('.js-product-carousel', $modalBody).remove();\n }\n $('.js-product-carousel', $productGrid).appendTo($modalBody);\n\n function initVTOonItem($this) {\n let vtoId = $this.attr('data-vto-id');\n let productId = $this.attr('data-product-id');\n // only change vto frame\n window.fitmixInstance.setFrame(vtoId);\n\n $('.js-select-frame', $vtoModal).attr('data-product-id', productId);\n\n let slideSelector = '.rx-product-carousel-item';\n let $carouselSlide = $this.closest(slideSelector);\n\n $(slideSelector).removeClass('selected');\n $carouselSlide.addClass('selected')\n\n $('.js-select-fittingbox-variation', $vtoModal).removeClass('active');\n $('.js-select-fittingbox-variation[data-product-id=\"' + productId + '\"]', $carouselSlide).addClass('active');\n }\n\n $('.js-launch-vto').off('click').on('click', function () {\n let $this = $(this);\n let $productTile = $this.closest('.rx-product-tile');\n let productId = $productTile.find('.js-select-frame').attr('data-product-id') || $productTile.attr('data-product-id');\n\n openVto();\n $(`.js-select-fittingbox-variation[data-product-id=\"${productId}\"]`, $vtoModal).click();\n initVTOonItem($(`.js-select-fittingbox[data-product-id=\"${productId}\"]`, $vtoModal));\n window.dataLayer.push({\n event: 'EssaiMonture'\n });\n });\n $('.js-select-fittingbox').off('click').on('click', function () {\n initVTOonItem($(this));\n });\n $('.js-select-fittingbox-variation').off('click').on('click', function () {\n let $this = $(this);\n let $parent = $this.closest('.js-select-fittingbox');\n $parent.attr('data-vto-id', $this.attr('data-vto-id'));\n $parent.attr('data-product-id', $this.attr('data-product-id'));\n });\n\n let currentlySelectedProductID = $('input[name=\"dwfrm_rxForm_productID\"]').val();\n if (currentlySelectedProductID) {\n $('.js-product-info[data-product-id=\"' + currentlySelectedProductID + '\"').closest('.rx-product-tile').addClass('selected');\n $('.js-select-variation[data-product-id=\"' + currentlySelectedProductID + '\"]').addClass('active');\n }\n\n $('.js-select-variation').off('click').on('click', function () {\n let $this = $(this);\n let productId = $this.attr('data-product-id');\n let vtoId = $this.attr('data-vto-id');\n let $parent = $this.closest('.rx-product-tile');\n $parent.find('.js-select-frame').attr('data-product-id', productId);\n $parent.find('.js-launch-vto').attr('data-vto-id', vtoId);\n });\n $('.js-select-frame').off('click').on('click', function (event) {\n event.stopPropagation();\n let productId = $(this).attr('data-product-id');\n\n $('.js-missing-variation-error').addClass('d-none');\n\n if (!productId) {\n let $parent = $(this).closest('.rx-product-tile');\n $('.js-missing-variation-error', $parent).removeClass('d-none');\n return;\n }\n\n $('.js-select-variation').removeClass('active');\n $('.js-select-variation[data-product-id=\"' + productId + '\"]').addClass('active');\n\n let $productInfo = $('.js-product-info[data-product-id=\"' + productId + '\"]', $currentSection);\n let $currentFrame = $productInfo.closest('.rx-product-tile');\n\n $cache.frameProductId.val($productInfo.attr('data-product-id') || '');\n $('input[name=\"dwfrm_rxForm_productSKU\"]').val($productInfo.attr('data-sku') || '');\n $('input[name=\"dwfrm_rxForm_productColor\"]').val($productInfo.attr('data-color') || '');\n $('input[name=\"dwfrm_rxForm_productSize\"]').val($productInfo.attr('data-size') || '');\n $nextBtn.removeClass('disabled');\n $('.customer-frame').html($currentFrame.find('.product-name').html());\n\n if ($('.js-select-variation.active', $currentFrame).length) {\n $('.customer-frame-variation').html($('.js-select-variation.active', $currentFrame).text());\n } else {\n $('.customer-frame-variation').html('');\n }\n\n $('.js-frame-result-img').html($currentFrame.find('.image-container').html());\n $('.rx-product-tile').removeClass('selected');\n $('.js-error-frame-selection-missing', $currentSection).addClass('d-none');\n $currentFrame.addClass('selected');\n if ($(this).attr('data-dismiss') === 'modal') {\n $vtoModal.modal('hide');\n }\n $('.js-frame-result-wrapper').removeClass('d-none');\n $('html, body').animate({\n scrollTop: $('.js-frame-result-wrapper').offset().top - $('.main-content').css('padding-top').replace('px', '') - 100\n });\n });\n $('.rx-product-tile .rx-product-tile-info').on('click', function(event) {\n $(this).parent().find('.js-select-frame').click();\n });\n },\n complete: function () {\n return resolve();\n }\n });\n });\n}\n\n/**\n * Init events of section 3\n * @returns {Promise} promise\n */\nfunction initSection3() {\n return new Promise((resolve, reject) => {\n window.dataLayer.push({\n 'RefMonture': $('input[name=\"dwfrm_rxForm_productSKU\"]').val(),\n 'Taille': $('input[name=\"dwfrm_rxForm_productSize\"]').val() || 'N/A',\n 'event': 'Etape2'\n });\n const SECTION_STEP = 3;\n let $currentSection = $cache.section3;\n openSection(SECTION_STEP);\n\n var isSectionComplete = {};\n isSectionComplete.lens = false;\n isSectionComplete.prescriptionType = false;\n\n if(!$('input[name=\"dwfrm_rxForm_lens\"]').is(':visible') || $('input[name=\"dwfrm_rxForm_lens\"]').is(':checked')) {\n isSectionComplete.lens = true;\n }\n\n if(!$('input[name=\"dwfrm_rxForm_prescriptionType\"]').is(':visible') || $('input[name=\"dwfrm_rxForm_prescriptionType\"]').is(':checked')) {\n isSectionComplete.prescriptionType = true;\n }\n\n $('input[name=\"dwfrm_rxForm_lens\"]', $currentSection).on('change', function () {\n let $checkedInput = $('input[name=\"dwfrm_rxForm_lens\"]:checked');\n $('.js-lens-result-wrapper').removeClass('d-none');\n isSectionComplete.lens = true;\n if (isSectionComplete.lens && isSectionComplete.prescriptionType) {\n $('.js-next-btn', $currentSection).removeClass('disabled');\n }\n $('.js-lens-result').html($checkedInput.parent().find('label .title').html());\n $('.custom-radio', $currentSection).removeClass('is-invalid')\n });\n\n if (isSectionComplete.lens && isSectionComplete.prescriptionType) {\n $('.js-next-btn', $currentSection).removeClass('disabled');\n }\n\n $('input[name=\"dwfrm_rxForm_prescriptionType\"]', $currentSection).on('change', function () {\n let $checkedInput = $('input[name=\"dwfrm_rxForm_prescriptionType\"]:checked');\n\n $('.js-prescription-type-result-wrapper').removeClass('d-none');\n isSectionComplete.prescriptionType = true;\n if (isSectionComplete.lens && isSectionComplete.prescriptionType) {\n $('.js-next-btn', $currentSection).removeClass('disabled');\n }\n $('.js-prescription-type-result').html($checkedInput.parent().find('label .title').html());\n $('.custom-radio', $currentSection).removeClass('is-invalid')\n });\n\n \n return resolve();\n });\n}\n\n/**\n * Init events of section 4\n * @returns {Promise} promise\n */\nfunction initSection4() {\n return new Promise((resolve, reject) => {\n const SECTION_STEP = 4;\n window.dataLayer.push({\n 'Verre': $('input[name=\"dwfrm_rxForm_lens\"]:checked').length > 0 ? $('input[name=\"dwfrm_rxForm_lens\"]:checked').val() : '',\n 'event': 'Etape3'\n });\n openSection(SECTION_STEP);\n let $currentSection = $cache.section4;\n let $form = $cache.form;\n let $shippingTypeRadio = $('input[name=\"dwfrm_rxForm_shippingtype\"]', $currentSection);\n let $enduserAddress = $('.js-enduser-address', $currentSection);\n let $homeShippingForm = $('.js-shipping-home-form', $currentSection);\n let $shippingHomeInputs = $('input, select', $homeShippingForm);\n var getShippingTypeVal = function () {\n return $('input[name=\"dwfrm_rxForm_shippingtype\"]:checked', $currentSection).val();\n }\n var handleShippingType = function (preventFocus) {\n if (getShippingTypeVal() === 'home') {\n $homeShippingForm.removeClass('disabled');\n $enduserAddress.addClass('disabled');\n $shippingHomeInputs.prop('disabled', false);\n if (!preventFocus) {\n $($shippingHomeInputs[0]).focus();\n }\n } else {\n $homeShippingForm.addClass('disabled');\n $enduserAddress.removeClass('disabled');\n $shippingHomeInputs.removeClass('is-invalid').prop('disabled', true);\n }\n };\n\n $form.off('submit').on('submit', function (e) {\n e.preventDefault();\n $.spinner().start();\n var form = $(this);\n var data = new FormData(form[0]);\n var button = $('.btn-submit-rx-form');\n button.attr('disabled', true);\n $.ajax({\n method: $form.attr('method'),\n url: $form.attr('action'),\n data: data,\n enctype: 'multipart/form-data',\n processData: false,\n contentType: false,\n dataType: 'json',\n timeout: 60000,\n cache: false,\n success: function (data) {\n if (data.success) {\n window.dataLayer.push({\n 'Livraison': ($('input[name=\"dwfrm_rxForm_shippingtype\"]:checked').length > 0 && $('input[name=\"dwfrm_rxForm_shippingtype\"]:checked').val() === 'home') ? 'A domicile' : 'En entreprise',\n 'event': 'Etape4'\n });\n if (data.redirectUrl) {\n window.location.href = data.redirectUrl;\n } else {\n $.spinner().stop();\n }\n } else {\n button.removeAttr('disabled');\n\n if ($('.is-invalid', $form).length) {\n $('html, body').animate({\n scrollTop: $($('.is-invalid', $form)[0]).offset().top\n }, 500);\n }\n $.spinner().stop();\n if (data.error && data.msg) {\n showErrorMessage(data.msg);\n }\n }\n },\n error: function (e) {\n button.removeAttr('disabled');\n $.spinner().stop();\n if (e && e.length) {\n showErrorMessage(e);\n }\n }\n });\n });\n\n $('.btn-submit-rx-form').on('click', function () {\n let hasFoundInvalid = false;\n $('input, select, textarea', $form).on('invalid', function (e) {\n if (!hasFoundInvalid) {\n let $input = $(this);\n $('html, body').animate({\n scrollTop: $input.offset().top - $('header').outerHeight() - 30\n }, 500);\n hasFoundInvalid = true;\n }\n });\n });\n\n handleShippingType(true);\n $shippingTypeRadio.on('change', function () {\n handleShippingType();\n });\n $homeShippingForm.on('click', function () {\n if (getShippingTypeVal() !== 'home') {\n $('#rx-shipping-home-delivery', $currentSection).prop('checked', true).trigger('change');\n }\n });\n\n return resolve();\n });\n}\n\n/**\n * verify form entries of section 1\n * @returns {Promise} promise\n */\nfunction verifySection1() {\n return new Promise((resolve, reject) => {\n if ($cache.pdResultInput.val()) {\n if ($('.pd-manual-form').is(':visible')) {\n $('.rx-stepper-1').addClass('force-enabled');\n $('.js-back-btn-section1').removeClass('d-none');\n } else {\n $('.js-back-btn-section1').addClass('d-none');\n $('.rx-stepper-1').removeClass('force-enabled');\n }\n return resolve();\n }\n return reject();\n });\n}\n\n/**\n * verify form entries of section 2\n * @returns {Promise} promise\n */\nfunction verifySection2() {\n return new Promise((resolve, reject) => {\n let selectedFrameID = $('input[name=\"dwfrm_rxForm_productID\"]').val();\n if (!selectedFrameID) {\n let $currentSection = $cache.section2;\n $('.js-error-frame-selection-missing', $currentSection).removeClass('d-none')\n return reject(new Error('No frame selected'));\n }\n return resolve();\n });\n}\n\n/**\n * verify form entries of section 3\n * @returns {Promise} promise\n */\nfunction verifySection3() {\n return new Promise((resolve, reject) => {\n var hasFoundInvalid = false;\n \n let $inputsLens = $('input[name=\"dwfrm_rxForm_lens\"]');\n if ($inputsLens.is(':visible')) {\n let $checkedInputLens = $('input[name=\"dwfrm_rxForm_lens\"]:checked');\n let $parentsLens = $inputsLens.closest('.custom-radio');\n\n if ($checkedInputLens.length && $checkedInputLens.val()) {\n $parentsLens.removeClass('is-invalid');\n $('.customer-lens').html($checkedInputLens.parent().find('label .title').html());\n } else {\n $parentsLens.addClass('is-invalid');\n hasFoundInvalid = true;\n }\n } else {\n $('.customer-lens').parent().parent().addClass('d-none');\n }\n\n let $inputsPrescription = $('input[name=\"dwfrm_rxForm_prescriptionType\"]');\n if ($inputsPrescription.is(':visible')) {\n let $checkedInputPrescription = $('input[name=\"dwfrm_rxForm_prescriptionType\"]:checked');\n let $parentPrescription = $inputsPrescription.closest('.custom-radio');\n\n if ($checkedInputPrescription.length && $checkedInputPrescription.val()) {\n $parentPrescription.removeClass('is-invalid');\n $('.customer-prescription-type').html($checkedInputPrescription.parent().find('label .title').html());\n } else {\n $parentPrescription.addClass('is-invalid');\n hasFoundInvalid = true;\n }\n } else {\n $('.customer-prescription-type').parent().parent().addClass('d-none');\n }\n\n if (!hasFoundInvalid) {\n return resolve();\n }\n \n return reject();\n });\n}\n\nlet functionNamesMap = {\n verifySection1: verifySection1,\n verifySection2: verifySection2,\n verifySection3: verifySection3,\n initSection1: initSection1,\n initSection2: initSection2,\n initSection3: initSection3,\n initSection4: initSection4\n};\n\n/**\n * Call step function for a given section and a given action\n * @param {string} action - verify|init\n * @param {string} step - given section number\n * @returns {Promise} response\n */\nfunction callSectionFunction(action, step) {\n return functionNamesMap[action + 'Section' + step]();\n}\n\n/**\n * Clear error message\n */\nfunction clearErrorMessage() {\n $('.rx-error-message .alert-danger').addClass('d-none');\n $('.rx-error-message:visible .alert-danger .error-message-text').html('');\n}\n/**\n * Show error message\n * @param {any} e - error\n */\nfunction showErrorMessage(e) {\n $('.rx-error-message:visible .alert-danger').removeClass('d-none');\n $('.rx-error-message:visible .alert-danger .error-message-text').html(e);\n}\n\n/**\n * Update a step when the current step has changed\n * @param {number} currentStep - current step\n */\nasync function updateStep(currentStep) {\n $cache.form.attr('data-current-step', currentStep);\n await callSectionFunction('init', currentStep);\n setTimeout(function () {\n $('.rx-form-section:not(.active)').hide();\n }, 400);\n}\n\n/**\n * Handle tabs activation\n * @param {number} currentStep - current step\n */\nfunction handleNavigation(currentStep) {\n $cache.nav.find('.step').removeClass('active disabled completed');\n $cache.nav.find('.step .rx-nav-link').removeAttr('disabled');\n\n // Always disable step 0\n $cache.nav.find('.rx-stepper-0').addClass('disabled');\n $cache.nav.find('.rx-stepper-0 .rx-nav-link').attr('disabled', 'disabled');\n\n // Step 1 keeps the disabled class for visual appearance but can be active or completed\n if (currentStep > 1) {\n // If current step is beyond 1, step 1 can be marked as completed visually\n $cache.nav.find('.rx-stepper-1').addClass('completed');\n }\n\n $cache.nav.find('.rx-stepper-' + currentStep).addClass('active');\n if (currentStep === 1) {\n // Ensure step 1 is visually disabled even if it's the current step\n $cache.nav.find('.rx-stepper-1 .rx-nav-link').attr('disabled', 'disabled');\n }\n\n for (let i = 0; i < currentStep; i += 1) {\n if (i !== 0) { // Skip step 0 as it's always disabled\n $cache.nav.find('.rx-stepper-' + i).addClass('completed');\n }\n }\n\n for (let i = currentStep + 1; i <= NB_STAGES; i += 1) {\n if (i !== 1) { // Apply disabled status to steps beyond the current one, excluding step 1's special handling\n $cache.nav.find('.rx-stepper-' + i).addClass('disabled');\n $cache.nav.find('.rx-stepper-' + i + ' .rx-nav-link').attr('disabled', 'disabled');\n }\n }\n\n // Ensure step 1 visually appears disabled regardless of its state\n if (!$cache.nav.find('.rx-stepper-1').hasClass('force-enabled')) {\n $cache.nav.find('.rx-stepper-1').addClass('disabled');\n }\n}\n\n\n\n\n/**\n * pre-init VTO for perf issue\n */\nfunction preloadVTO() {\n var params = {\n apiKey: $cache.vtoWidget.attr('data-api-key'),\n onStopVto: () => true,\n dataPrivacyDisclaimerTexts: JSON.parse($cache.vtoWidget.attr('data-privacy-config') || {})\n };\n window.fitmixInstance = FitMix.createWidget('VTOWidget', params, function () {});\n}\n\nmodule.exports = {\n init: async function init() {\n window.dataLayer = window.dataLayer || [];\n\n var currentStep = $cache.form.attr('data-current-step');\n $('.rx-form-section:not(.active)').hide();\n await callSectionFunction('init', currentStep);\n preloadVTO();\n\n /** START: navigation listeners and history */\n $('.js-next-btn', $cache.sections).on('click', async function handleClick() {\n let currentSection = $(this).closest('.rx-form-section').attr('data-step');\n let nextSection = $(this).attr('data-next-step');\n let isJumpStep = $(this).attr('data-is-jump-step') === 'true';\n\n try {\n if (!isJumpStep) {\n await callSectionFunction('verify', currentSection);\n }\n window.scrollTo({\n top: 0,\n left: 0,\n behavior: 'instant'\n });\n clearErrorMessage();\n currentStep = nextSection;\n // Add Current Step in param\n history.pushState(\n nextSection,\n document.title,\n location.pathname\n + '?step='\n + nextSection\n );\n await updateStep(nextSection);\n } catch (e) {\n console.log('ERROR ON VERIFY SECTION', e);\n clearErrorMessage();\n if (e && e.length > 0) {\n showErrorMessage(e);\n }\n }\n });\n\n $($cache.form).on('keypress', async function (e) {\n if (e.which === 13) {\n e.preventDefault();\n $('.js-next-btn:visible', $cache.sections).trigger('click');\n }\n });\n \n $('.rx-stepper .step').on('click', async function(e) {\n e.preventDefault();\n if(!$(this).hasClass('disabled') && $(this).hasClass('completed')) {\n var requestedStep = $(this).find('.rx-nav-link').attr('data-step');\n await updateStep(requestedStep);\n history.pushState(\n requestedStep,\n document.title,\n location.pathname\n + '?step='\n + requestedStep\n );\n\n if ($('.rx-stepper-1.active').length > 0) {\n $('.js-pd-pane-sub-section', $('.rx-form-section[data-step=\"1\"]')).addClass('d-none');\n $('.js-pd-pane-sub-section[data-sub-step=\"1\"]', $('.rx-form-section[data-step=\"1\"]')).removeClass('d-none');\n $('.rx-stepper-1').removeClass('force-enabled').addClass('disabled');\n }\n }\n });\n\n // Handle Previous and next button\n $(window).on('popstate', async function () {\n var url = window.location.href;\n var match = url.match(/[\\?&]step=([^]*)/);\n if (match) {\n currentStep = match[1];\n } else {\n currentStep = 0;\n }\n await updateStep(currentStep);\n preloadVTO();\n });\n\n /** END: navigation listeners and history */\n function getQueryParam(param) {\n return new URLSearchParams(window.location.search).get(param);\n }\n function updateUrlParameter(param, value) {\n var currentUrl = new URL(window.location.href);\n currentUrl.searchParams.set(param, value);\n window.history.replaceState({}, '', currentUrl);\n }\n\n var currentStep = $cache.form.attr('data-current-step');\n var urlStep = getQueryParam('step');\n if (currentStep !== urlStep) {\n updateUrlParameter('step', currentStep);\n }\n\n /** START: Help section events */\n $cache.helpBtn.on('click', function () {\n $cache.helpSection.toggleClass('active');\n\n let $content = $('.content', $cache.helpSection);\n if ($cache.helpSection.hasClass('active') && !$content.html()) {\n $.ajax({\n method: 'get',\n url: $(this).attr('data-url'),\n success: function (contentHtml) {\n $content.html(contentHtml);\n }\n });\n }\n if ($cache.helpSection.hasClass('active')) {\n window.dataLayer.push({\n 'etape': 'Etape' + currentStep,\n 'event': 'DemandeAide'\n });\n }\n });\n /** END: Help section events */\n\n }\n};\n\n","'use strict';\n\nmodule.exports = function (include) {\n if (typeof include === 'function') {\n include();\n } else if (typeof include === 'object') {\n Object.keys(include).forEach(function (key) {\n if (typeof include[key] === 'function') {\n include[key]();\n }\n });\n }\n};\n","'use strict';\n\n/**\n * Remove all validation. Should be called every time before revalidating form\n * @param {element} form - Form to be cleared\n * @returns {void}\n */\nfunction clearFormErrors(form) {\n $(form).find('.form-control.is-invalid').removeClass('is-invalid');\n}\n\nmodule.exports = function (formElement, payload) {\n // clear form validation first\n clearFormErrors(formElement);\n $('.alert', formElement).remove();\n\n if (typeof payload === 'object' && payload.fields) {\n Object.keys(payload.fields).forEach(function (key) {\n if (payload.fields[key]) {\n var feedbackElement = $(formElement).find('[name=\"' + key + '\"]')\n .parent()\n .children('.invalid-feedback');\n\n if (feedbackElement.length > 0) {\n if (Array.isArray(payload[key])) {\n feedbackElement.html(payload.fields[key].join('
'));\n } else {\n feedbackElement.html(payload.fields[key]);\n }\n feedbackElement.siblings('.form-control').addClass('is-invalid');\n }\n }\n });\n }\n if (payload && payload.error) {\n var form = $(formElement).prop('tagName') === 'FORM'\n ? $(formElement)\n : $(formElement).parents('form');\n\n form.prepend('