{"version":3,"sources":["webpack:///./node_modules/js-cookie/src/js.cookie.js","webpack:///./assets/javascripts/modules/components/NewsletterComponent.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","NewsletterComponent","_classCallCheck","_this","_possibleConstructorReturn","__proto__","Object","getPrototypeOf","form","$","SELECTORS","container","trackingComponent","TrackingComponent","Component","modalForm","cta","privacy","inputEmail","checkboxGroup","show","$email","emailHasError","hasClass","closest","checkedCheckboxes","find","each","index","element","is","$privacy","id","attr","basicNewsletterSubmit","querySelector","el","ctx","$element","on","preventDefault","$this","url","$submit","html","$emit","$customEvents","LOADER_EVENTS","showLocal","button","ajax","type","data","serialize","success","log","trackAction","dataset","currentWrapper","first","fadeOut","fadeIn","error","console","addClass","CLASSES","newsletterBouncer","validate","updateSubmitButton","checkboxes","isChild","target","leaveOpen","val","removeClass","_this2","bindEvents"],"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'\nimport TrackingComponent from './TrackingComponent';\n\nexport default class NewsletterComponent extends Component {\n\n get SELECTORS() {\n return {\n container: '.js-modal-form-contents',\n form: '.js-newsletter-form',\n modalForm: '.js-newsletter-form',\n cta: '.nl-submission',\n privacy: '.js-wrapper-privacy',\n inputEmail: '.js-email-input',\n checkboxGroup: '.checkboxes-group'\n };\n }\n\n get CLASSES() {\n return {\n show: 'show'\n };\n }\n\n constructor() {\n super();\n this.form = $(this.SELECTORS.form);\n this.container = $(this.SELECTORS.container);\n this.trackingComponent = new TrackingComponent();\n }\n\n updateSubmitButton ($email) {\n let emailHasError = $email.hasClass( \"error\" );\n let form = $email.closest('form');\n let checkboxes = form.find('input[name=\"marina\"], input[name=\"persona\"]');\n let checkedCheckboxes = 0;\n checkboxes.each((index, element)=>{\n let $el = $(element);\n if($el.is(':checked')) checkedCheckboxes++;\n });\n // console.log(checkedCheckboxes);\n\n let $privacy = form.find(this.SELECTORS.privacy);\n let id = $privacy.attr('id');\n let basicNewsletterSubmit = document.querySelector('button[data-target=\"' + id + '\"]');\n let checked = $privacy.is(':checked');\n\n if (checked && !emailHasError && checkedCheckboxes > 0) {\n $(basicNewsletterSubmit).attr(\"disabled\", false);\n } else {\n $(basicNewsletterSubmit).attr(\"disabled\", true);\n }\n };\n\n bindEvents(el) {\n\n let ctx = this,\n $element = $(el);\n\n $element.find(ctx.SELECTORS.form).on('submit.newsletter', function (e) {\n e.preventDefault();\n let $this = $(this);\n let url = $this.attr('action');\n let $submit = $this.find(ctx.SELECTORS.cta);\n\n $this.find(ctx.SELECTORS.cta).html('');\n ctx.$emit(ctx.$customEvents.LOADER_EVENTS.showLocal, {\n button: $submit,\n });\n\n $.ajax({\n type: \"POST\",\n url: url,\n data: $this.serialize(),\n success: (html) => {\n ctx.log('Newsletter ajax success...');\n let error = $(html).find('span.error').length > 0;\n \n ctx.trackingComponent.trackAction('newsletterSubscribe', $submit[0].dataset , $submit[0]);\n\n let currentWrapper = $this.closest(ctx.SELECTORS.form).first();\n currentWrapper.fadeOut(300, ()=>{\n currentWrapper.html($(html).find(ctx.SELECTORS.container).html());\n currentWrapper.fadeIn(300);\n });\n\n // $this.closest(ctx.SELECTORS.container).html($(html).find(ctx.SELECTORS.container).html());\n\n Cookies.set('nlRegistered', true, {\n expires: 365\n });\n },\n error: function (html) {\n console.log('nl submit error ');\n console.log($this.serialize())\n }\n });\n });\n\n $element.find(ctx.SELECTORS.inputEmail).on('focus.newsletter', function (e) {\n let checkboxes = $element.find(ctx.SELECTORS.checkboxGroup);\n checkboxes.addClass(ctx.CLASSES.show);\n });\n\n // force validation on change\n $element.find(ctx.SELECTORS.inputEmail).on('focusout.newsletter', function (e) {\n document.newsletterBouncer.validate(this);\n const $email = $(this);\n ctx.updateSubmitButton($email);\n });\n\n $element.find(`${ctx.SELECTORS.checkboxGroup} input`).on('change.nlCheckboxes', function (e) {\n const form = $(this).closest('form');\n const $email = form.find(ctx.SELECTORS.inputEmail);\n ctx.updateSubmitButton($email);\n });\n\n // show/collapse nl module\n $('body').on('click.newsletter', function (e) {\n let checkboxes = $element.find(ctx.SELECTORS.checkboxGroup);\n let isChild = $(e.target).closest($element).length;\n let leaveOpen = $element.find(ctx.SELECTORS.inputEmail).val() != '';\n if($(e.target).is($element.find(ctx.SELECTORS.inputEmail))){\n checkboxes.addClass(ctx.CLASSES.show);\n }else if (!leaveOpen && isChild == 0 && checkboxes.hasClass(ctx.CLASSES.show)) {\n checkboxes.removeClass(ctx.CLASSES.show);\n }else if (leaveOpen && checkboxes.hasClass(ctx.CLASSES.show)){\n checkboxes.addClass(ctx.CLASSES.show);\n }\n });\n }\n\n render() {\n if (this.container.length) {\n this.container.each((index, element) => {\n this.bindEvents(element);\n })\n }\n }\n}\n"],"sourceRoot":""}