{"version":3,"sources":["webpack:///./node_modules/js-cookie/src/js.cookie.js","webpack:///./assets/javascripts/modules/components/FidelityPopupComponent.js","webpack:///./assets/javascripts/modules/components/NewsletterComponent.js","webpack:///./assets/javascripts/modules/businessLogic/NewsletterLogic.js"],"names":["__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","factory","undefined","call","exports","__webpack_require__","module","OldCookies","window","Cookies","api","noConflict","extend","i","result","arguments","length","attributes","key","init","converter","value","document","path","defaults","expires","Date","setMilliseconds","getMilliseconds","toUTCString","JSON","stringify","test","e","write","encodeURIComponent","String","replace","decodeURIComponent","escape","stringifiedAttributes","attributeName","cookie","cookies","split","rdecode","parts","slice","join","this","json","charAt","name","read","parse","set","get","getJSON","apply","remove","withConverter","FidelityPopupComponent","elem","_classCallCheck","_possibleConstructorReturn","__proto__","Object","getPrototypeOf","Component","start","closeIcon","ctaBtn","fidelityPopup","closeBtn","querySelector","SELECTORS","starTimerID","endTimerID","log","getCookie","dom","readDOM","bindEvents","showTimer","_this2","addEventListener","event","showPopup","_this3","setTimeout","setCookie","TIMER","isVisible","classList","add","$emit","$customEvents","FIDELITY_POPUP","hide","COOKIE_NAME","NewsletterComponent","_this","newsletterPopup","link","body","dataset","nlLink","$","ajax","url","dataType","self","$on","response","html","DOMParser","parseFromString","appendChild","isShown","contains","store","initModal","then","console","insertNewsletterModal","COOKIE","accepted","_ref","initProperties","NewsletterLogic","render","checkNewsletterModal","nlKey","form","subscribeToNewsletter","ctx","data","preventDefault","$this","currentTarget","attr","$submit","find","emailval","val","parents","LOADER_EVENTS","showLocal","button","$doAjax","type","serialize","done","error","alreadySubcribed","doRegister","isLogged","isFidelityRegister","$newContent","closest","replaceWith","TrackingComponent","actions","newsletterSubscribe","newsletterForm","addClass","email","afterNewsletter","resp","MODAL_EVENTS","show","unsafeContent","canScroll","importComponent","VALIDATION","bindValidation","fail","xhr","always","hideCookieKey","hideLocal"],"mappings":"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","file":"components-NewsletterComponent.chunks.js","sourcesContent":["/*!\n * JavaScript Cookie v2.2.0\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader = false;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api (key, value, attributes) {\n\t\t\tvar result;\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Write\n\n\t\t\tif (arguments.length > 1) {\n\t\t\t\tattributes = extend({\n\t\t\t\t\tpath: '/'\n\t\t\t\t}, api.defaults, attributes);\n\n\t\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\t\tvar expires = new Date();\n\t\t\t\t\texpires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);\n\t\t\t\t\tattributes.expires = expires;\n\t\t\t\t}\n\n\t\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\t\ttry {\n\t\t\t\t\tresult = JSON.stringify(value);\n\t\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\t\tvalue = result;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\n\t\t\t\tif (!converter.write) {\n\t\t\t\t\tvalue = encodeURIComponent(String(value))\n\t\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\t\t\t\t} else {\n\t\t\t\t\tvalue = converter.write(value, key);\n\t\t\t\t}\n\n\t\t\t\tkey = encodeURIComponent(String(key));\n\t\t\t\tkey = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);\n\t\t\t\tkey = key.replace(/[\\(\\)]/g, escape);\n\n\t\t\t\tvar stringifiedAttributes = '';\n\n\t\t\t\tfor (var attributeName in attributes) {\n\t\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName];\n\t\t\t\t}\n\t\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t\t}\n\n\t\t\t// Read\n\n\t\t\tif (!key) {\n\t\t\t\tresult = {};\n\t\t\t}\n\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all. Also prevents odd result when\n\t\t\t// calling \"get()\"\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar rdecode = /(%[0-9A-Z]{2})+/g;\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!this.json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = parts[0].replace(rdecode, decodeURIComponent);\n\t\t\t\t\tcookie = converter.read ?\n\t\t\t\t\t\tconverter.read(cookie, name) : converter(cookie, name) ||\n\t\t\t\t\t\tcookie.replace(rdecode, decodeURIComponent);\n\n\t\t\t\t\tif (this.json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tresult = cookie;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!key) {\n\t\t\t\t\t\tresult[name] = cookie;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\n\t\tapi.set = api;\n\t\tapi.get = function (key) {\n\t\t\treturn api.call(api, key);\n\t\t};\n\t\tapi.getJSON = function () {\n\t\t\treturn api.apply({\n\t\t\t\tjson: true\n\t\t\t}, [].slice.call(arguments));\n\t\t};\n\t\tapi.defaults = {};\n\n\t\tapi.remove = function (key, attributes) {\n\t\t\tapi(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","import Component from '../abstracts/Component';\nimport Cookies from 'js-cookie';\n\nexport default class FidelityPopupComponent extends Component {\n\n get COMPONENTNAME() {\n return 'FidelityPopupComponent';\n }\n\n get COOKIE_NAME() {\n return 'fidelity_popup_hide';\n }\n\n // MILLISECONDS //\n get TIMER() {\n return {\n start: 8000\n }\n }\n\n get SELECTORS() {\n return {\n closeIcon: '.icon-close-fidelity-popup',\n ctaBtn: '.cta-fidelity-popup',\n fidelityPopup: '[data-componentpb=\"FidelityPopupComponent\"]',\n };\n }\n\n constructor(elem) {\n super(elem);\n }\n\n readDOM() {\n return {\n closeBtn: document.querySelector(this.SELECTORS.closeIcon),\n ctaBtn: document.querySelector(this.SELECTORS.ctaBtn),\n starTimerID: '',\n endTimerID: ''\n }\n }\n\n render() {\n this.log(\"Rendering...\");\n //cookie does not exists yet\n if(!this.getCookie()) {\n this.dom = this.readDOM();\n this.bindEvents();\n this.showTimer();\n }\n }\n\n // EVENT LISTENERS //\n bindEvents() {\n // CTA click action\n const ctaBtn = this.dom.ctaBtn;\n if (ctaBtn)\n {\n ctaBtn.addEventListener('click', (event) =>\n {\n this.showPopup(false);\n });\n }\n // Close action\n const closeIcon = this.dom.closeBtn;\n if (closeIcon)\n {\n closeIcon.addEventListener('click', (event) =>\n {\n this.showPopup(false);\n });\n }\n\n }\n\n // FUNCTIONS //\n showTimer() {\n this.dom.starTimerID =\n setTimeout( () => {\n this.showPopup(true);\n this.setCookie();\n }, this.TIMER.start);\n }\n\n\n // UTILS //\n showPopup(isVisible) {\n if (isVisible && document.querySelector('.c-fidelity-popup') != null) {\n document.querySelector('.c-fidelity-popup').classList.remove('d-none');\n }\n else if(document.querySelector('.c-fidelity-popup') != null) {\n document.querySelector('.c-fidelity-popup').classList.add('d-none');\n this.$emit(this.$customEvents.FIDELITY_POPUP.hide);\n }\n }\n\n setCookie() {\n Cookies.set(this.COOKIE_NAME, 'true');\n }\n\n getCookie() {\n return Cookies.get(this.COOKIE_NAME);\n }\n\n isShown(){\n const fidelityPopup = document.querySelector(this.SELECTORS.fidelityPopup);\n return fidelityPopup ? true : false\n }\n}\n","import Component from '../abstracts/Component';\nimport NewsletterLogic from '../businessLogic/NewsletterLogic';\nimport Cookies from 'js-cookie';\nimport FidelityPopupComponent from './FidelityPopupComponent';\n\nexport default class NewsletterComponent extends Component {\n get SELECTORS() {\n return {\n newsletterPopup: '[data-modal-class=\"modal-newsletter\"]',\n };\n }\n\n constructor() {\n super();\n this.newsletterPopup;\n }\n\n initProperties() {\n this.link = document.body.dataset.nlLink ? document.body.dataset.nlLink : '/modals/newsletter';\n }\n\n initModal() {\n return $.ajax({\n url: `${this.link}?xhr=true`,\n dataType: 'html'\n });\n }\n\n bindEvents() {\n let self = this;\n\n this.$on(this.$customEvents.FIDELITY_POPUP.hide, () => {\n if(self.newsletterPopup && !self.getCookie()) {\n self.newsletterPopup.classList.add('show');\n }\n });\n }\n\n insertNewsletterModal(response) {\n let self = this;\n let html = new DOMParser().parseFromString(response, 'text/html');\n const fidelityPopup = new FidelityPopupComponent();\n // popup insertion\n document.body.appendChild(html.querySelector('section'));\n // show popup\n this.newsletterPopup = document.querySelector(this.SELECTORS.newsletterPopup);\n if(this.newsletterPopup && (!fidelityPopup.isShown() || fidelityPopup.getCookie())) {\n this.newsletterPopup.classList.add('show');\n }\n // hide popup\n this.newsletterPopup.querySelector('.vex-close').addEventListener('click', (e) => {\n self.newsletterPopup.classList.remove('show');\n self.setCookie();\n });\n }\n\n checkNewsletterModal() {\n let self = this;\n let insertModal = !this.getCookie() &&\n !document.body.classList.contains('editmode') &&\n document.body.dataset.store !== 'maxmarawww';\n\n if(insertModal) {\n if(Cookies.get('cookies-disclaimer-v1')) {\n this.initModal().then(html => {\n console.log('[Newsletter] modal:open');\n self.insertNewsletterModal(html);\n });\n } else {\n this.$on(this.$customEvents.COOKIE.accepted, ({event}) => {\n self.initModal().then(html => {\n console.log('[Newsletter] modal:open');\n self.insertNewsletterModal(html);\n });\n });\n }\n }\n }\n\n render() {\n this.log('Rendering...');\n if(!this.getCookie()) {\n this.initProperties();\n this.NewsletterLogic = new NewsletterLogic(this);\n this.NewsletterLogic.render();\n this.bindEvents();\n this.checkNewsletterModal();\n }\n }\n\n get COOKIE_NAME() {\n const modalkey = document.body.dataset.nlKey || 'default_modal';\n return 'nl_' + modalkey + '_hide';\n }\n\n setCookie() {\n Cookies.set(this.COOKIE_NAME, 'true', {\n expires: 365,\n path: '/'\n });\n }\n\n getCookie() {\n return Cookies.get(this.COOKIE_NAME);\n }\n}","import Component from '../abstracts/Component';\nimport Cookies from 'js-cookie';\nimport TrackingComponent from '../components/TrackingComponent';\n\nexport default class NewsletterLogic extends Component {\n get SELECTORS() {\n return {\n form: '.js-newsletter-form',\n };\n }\n\n constructor() {\n super();\n }\n\n bindEvents() {\n this.$on('submit.newsletter', this.subscribeToNewsletter, 'body', this.SELECTORS.form, this);\n }\n\n subscribeToNewsletter(e) {\n const ctx = e.event.data;\n e.event.preventDefault();\n let $this = $(e.event.currentTarget);\n let url = $this.attr('action');\n let $submit = $this.find('.js-nl-submission');\n let emailval = $this.find('input[name=email]').val();\n\n if ($this.parents('.modal').length) {\n $this.attr('action', $this.attr('action') + '?xhr=true');\n }\n\n ctx.$emit(ctx.$customEvents.LOADER_EVENTS.showLocal, {\n button: $submit,\n });\n\n ctx\n .$doAjax({\n type: 'POST',\n url: url,\n data: $this.serialize()\n })\n .done(html => {\n ctx.log('Newsletter modal success...');\n let error = $(html).find('span.error').length > 0;\n let alreadySubcribed = $(html).find('div.form-error').length > 0;\n let doRegister = $this.data('registerUrl') != null && $this.data('registerUrl').length > 0;\n let isLogged = $this.data('loggedin');\n let isFidelityRegister = $this.data('fidelityRegister');\n let $newContent = $(html).find('.js-modal-form-contents')\n $this.closest('.js-modal-form-contents').replaceWith($(html).find('.js-modal-form-contents'));\n if(!error && !alreadySubcribed) {\n let trackingComponent = new TrackingComponent();\n trackingComponent.actions.newsletterSubscribe($submit[0].dataset);\n }\n if(isFidelityRegister && !error) {\n let newsletterForm = $(document).find('#newsletterForm');\n let titleBox = $(newsletterForm).find(\"article\");\n titleBox.addClass(\"d-none\");\n }\n\n if (!isLogged && !error && $newContent.data('register') && doRegister) {\n //TODO\n ctx\n .$doAjax({\n url: `${$this.data('registerUrl')}`,\n data: {\n email: emailval,\n afterNewsletter: true\n },\n })\n .done(resp => {\n ctx.$emit(ctx.$customEvents.MODAL_EVENTS.show, {\n unsafeContent: resp,\n canScroll: true\n });\n ctx.importComponent(\"RegistrationComponent\");\n ctx.$emit(ctx.$customEvents.VALIDATION.bindValidation);\n //ctx.log(resp);\n })\n .fail(xhr => {\n ctx.log(xhr);\n })\n .always(() => {\n ctx.log('done');\n });\n\n Cookies.set(ctx.hideCookieKey, 'true', {\n expires: 365,\n path: '/'\n });\n }\n })\n .fail(xhr => {\n console.log(`nl submit error: ${$this.serialize()}`);\n console.log(xhr);\n })\n .always(() => {\n ctx.$emit(ctx.$customEvents.LOADER_EVENTS.hideLocal, {\n button: $submit,\n });\n });\n }\n\n render() {\n this.bindEvents();\n }\n}\n"],"sourceRoot":""}