{"version":3,"file":"newsletter-built.js","mappings":"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","sources":["webpack://modz/./src/Modules/Resources/Error.js","webpack://modz/./src/Modules/ajaxLoader.js","webpack://modz/webpack/bootstrap","webpack://modz/webpack/runtime/define property getters","webpack://modz/webpack/runtime/hasOwnProperty shorthand","webpack://modz/./src/Modules/cleanTextOnFocus.js","webpack://modz/./src/Modules/validationForm.js","webpack://modz/./src/Layout/newsletter.js"],"sourcesContent":["export const _404 = 'La page demandée est introuvable.'\r\nexport const _500 = 'Une erreur interne est survenue.'\r\nexport const ADRESSE_DOIT_ETRE_RENSEIGNEE =\r\n 'L\\u0027adresse doit être renseignée'\r\nexport const ADRESSE_EMAIL_INVALIDE = 'L\\u0027adresse e-mail est invalide'\r\nexport const ADRESSE_EMAIL_OBLIGATOIRE =\r\n 'L\\u0027adresse e-mail est obligatoire et ne peut être vide.'\r\nexport const ADRESSE_EMAIL_UTILISEE = 'L\\u0027adresse email est déjà utilisée.'\r\nexport const AJAXLOADERINTERNALERROR =\r\n 'Une erreur interne est survenue lors du chargement de la page. Veuillez actualiser la page.'\r\nexport const AUCUN_COMPTE_CLIENT_CORRESPONDANT =\r\n 'Aucun compte client ne correspond à cet e-mail.'\r\nexport const CODEPOSTAL_DIFFERENT_VILLE =\r\n 'Le code postal indiqué ne correspond pas à la bonne ville.'\r\nexport const COMPLETEZ_VOTRE_PROFIL_POUR_VOIR_VOTRE_SELECTION_PERSO =\r\n 'Complétez votre profil\\rpour voir votre sélection\\rpersonnalisée'\r\nexport const COMPTE_CLIENT_EXISTE_DEJA =\r\n 'Il existe déjà un compte client avec cet e-mail. Merci de vous connecter avec vos identifiants.'\r\nexport const CONFIRMATION_MOT_PASSE_OBLIGATOIRE =\r\n 'La confirmation de mot de passe est obligatoire et ne peut être vide.'\r\nexport const CONNECTION_ECHOUE =\r\n 'Votre email ou votre mot de passe est incorrect.'\r\nexport const CONTACTINFORMATION_PARAMETERS_WRONG =\r\n 'Certaines informations sont invalides.'\r\nexport const DATABASEERRORUPDATE =\r\n 'Une erreur est survenu durant la mise à jour de la base de données.'\r\nexport const DATE_INVALIDE =\r\n 'Date de naissance invalide. Merci de respecter le format JJ/MM/AAAA. Elle doit être supérieur au 01/01/1900.'\r\nexport const DATENAISSANCEOBLIGATOIRE =\r\n 'La date de naissance est obligatoire et ne peut être vide'\r\nexport const DEJA_INSCRIT_JEU_CONCOURS =\r\n 'Votre inscription pour ce jeu concours a déjà été prise en compte.'\r\nexport const DOIT_SELECTIONNER_TAILLE = 'SÉLECTIONNEZ VOTRE TAILLE'\r\nexport const ERREUR_CARTE_CADEAU =\r\n 'Le numéro de carte n’existe pas. Veuillez recommencer.'\r\nexport const ERREUR_CARTE_DEJA_ENREGISTREE =\r\n 'Cette carte a déjà été enregistrée.'\r\nexport const ERREUR_CODE_PROMO =\r\n 'Désolé, le code promotionnel saisi n\\u0027est pas valide ou a expiré. Veuillez saisir un code promotionnel valide.'\r\nexport const ERREUR_CODE_PROMO_INVALIDE =\r\n 'Veuillez saisir un code promo valide.'\r\nexport const ERREUR_INTERNE_RECUPERATION_MARQUES =\r\n 'Une erreur interne est survenue lors de la récupération de la liste des marques.'\r\nexport const ERREUR_INTERNE_RECUPERATION_VILLE =\r\n 'Une erreur est survenue lors de la récupération de la liste des villes'\r\nexport const FAILTOCREATEALERTE =\r\n 'Une erreur est survenue lors de la création de votre alerte.'\r\nexport const FAILTOCREATENEWSLETTER = 'Erreur interne.'\r\nexport const INSCRIPTION_PARAMETERS_WRONG =\r\n 'Impossible de créer votre compte. Merci de vérifier vos informations personnelles'\r\nexport const INVALIDCURRENTPASSWORD =\r\n 'Le mot de passe actuel saisi est incorrect !'\r\nexport const INVALIDEMAIL = 'E-mail incorrect.'\r\nexport const INVALIDINTEGER =\r\n 'Ce champ ne peut contenir qu\\u0027un nombre entier valide.'\r\nexport const LA_VILLE_DOIT_ETRE_RENSEIGNEE = 'La ville doit être renseignée.'\r\nexport const LE_CODE_POSTAL_DOIT_ETRE_RENSEIGNE =\r\n 'Le code postal doit être renseigné.'\r\nexport const LE_NUMERO_DE_TELEPHONE_OBLIGATOIRE =\r\n 'Le numéro de téléphone est obligatoire.'\r\nexport const MAXNUMBEROFPROFILESREACHED =\r\n 'Vous avez atteint le nombre maximum de profils enregistrés.'\r\nexport const MERCI_PRECISER_CIVILITE = 'Merci de préciser votre civilité'\r\nexport const MOT_PASSE_CONFIRMATION =\r\n 'Le mot de passe et sa confirmation ne correspondent pas'\r\nexport const MOT_PASSE_NON_CONFORME_CONFIRMATION =\r\n 'Le mot de passe et sa confirmation ne correspondent pas'\r\nexport const MOT_PASSE_NON_IDENTIQUE_CONFIRMATION =\r\n 'Le mot de passe ne peut être identique à votre adresse e-mail'\r\nexport const MOT_PASSE_NON_IDENTIQUE_MAIL =\r\n 'Le mot de passe ne peut être identique à votre adresse e-mail'\r\nexport const MOT_PASSE_OBLIGATOIRE =\r\n 'Le mot de passe est obligatoire et ne peut être vide.'\r\nexport const NEWPASSWORDDOESNOTMATCH =\r\n 'Les nouveaux mots de passe saisis ne correspondent pas !'\r\nexport const NEWSLETTERALREADYSUBSCRIBED = 'E-mail déjà enregistré.'\r\nexport const NOM_OBLIGATOIRE = 'Le nom est obligatoire et ne peut être vide.'\r\nexport const PASSWORDCHARACTER =\r\n 'Le mot de passe doit contenir {2} caractères au minimum.'\r\nexport const PASSWORDCONFIRMATION =\r\n 'Veuillez saisir un mot de passe identique au précédent.'\r\nexport const PAYS_OBLIGATOIRE = 'Le pays est obligatoire et ne peut être vide.'\r\nexport const PRENOM_OBLIGATOIRE =\r\n 'Le prénom est obligatoire et ne peut être vide.'\r\nexport const PRODUITINDISPONIBLE =\r\n 'Dommage, ce produit vient d\\u0027etre vendu il y a quelques minutes !'\r\nexport const PRODUITINDISPONIBLETAILLE =\r\n 'Cette taille n\\u0027est pas disponible actuellement.'\r\nexport const REGLE_CODE_POSTAL =\r\n 'Le code postal doit contenir au minimum 4 caractères et au maximum 5'\r\nexport const REGLE_MOT_PASSE =\r\n 'Le mot de passe doit contenir au minimum 6 caractères.'\r\nexport const REGLE_TELEPHONE = 'Numéro de téléphone incorrect.'\r\nexport const TELEPHONE_OBLIGATOIRE =\r\n 'Veuillez saisir votre numéro de téléphone fixe ou mobile.'\r\nexport const UNKNOWERROR =\r\n 'Une erreur interne est survenue lors du chargement de la page.'\r\nexport const VEUILLEZ_INDIQUER_MAIL_VALIDE =\r\n 'Veuillez indiquer un e-mail valide.'\r\nexport const VOUS_SELECTIONNER_TAILLE = 'Vous devez sélectionner une taille !'\r\nexport const WRONGNAMEOFPROFILE =\r\n 'Merci d\\u0027insérer un nom de profil valide.'\r\n","'use strict'\r\n\r\n/**\r\n * Module AJAX\r\n */\r\n\r\nimport { AJAXLOADERINTERNALERROR } from 'Modules/Resources/Error'\r\n\r\nconst J_LOCATION_PRINT = '.j_ajaxloader_print'\r\nconst J_AJAX_LOADER_GIF = '.j_loader_gif'\r\nconst C_ERROR_CLASS = 'error'\r\nconst C_HIDDEN = 'hidden'\r\n\r\n/*\r\n * Load une action d'un controlleur et insert le content dans la page web\r\n * Les paramètres à envoyer doivent-être de la forme { id: id }, etc.\r\n */\r\nfunction loadAndPrintContent(paramsToSend) {\r\n // On affiche le gif de chargement\r\n let $location = $(J_LOCATION_PRINT)\r\n const action = $location.data('action') // On récupère le controller visé\r\n const $gif = $(J_AJAX_LOADER_GIF)\r\n\r\n $location.removeClass(C_ERROR_CLASS)\r\n\r\n if ($gif !== undefined) {\r\n $gif.removeClass(C_HIDDEN)\r\n }\r\n\r\n const posting = $.ajax({\r\n // On appel l'action du controlleur en lui passant les paramètres désirés\r\n type: 'POST',\r\n url: action,\r\n data: paramsToSend\r\n })\r\n\r\n posting.done(function (content) {\r\n // En cas de réussite, on ajoute le résultat au html\r\n // On cache le gif de chargement\r\n const $gif = $(J_AJAX_LOADER_GIF)\r\n if ($gif !== undefined) {\r\n $gif.addClass(C_HIDDEN)\r\n }\r\n $(J_LOCATION_PRINT).empty().append(content)\r\n })\r\n\r\n posting.fail(function () {\r\n // En cas d'échec on affiche une erreur\r\n // On cache le gif de chargement\r\n const $gif = $(J_AJAX_LOADER_GIF)\r\n if ($gif !== undefined) {\r\n $gif.addClass(C_HIDDEN)\r\n }\r\n\r\n $location = $(J_LOCATION_PRINT)\r\n\r\n $location.addClass(C_ERROR_CLASS)\r\n $location.empty().append(AJAXLOADERINTERNALERROR)\r\n })\r\n}\r\n\r\n/*\r\n * Load une action d'un controller et execute une callback avec son content\r\n * Les paramètres à envoyer doivent-être de la forme { id: id }, etc.\r\n */\r\nfunction loadAndExecuteCallBack(\r\n requestType,\r\n paramsToSend,\r\n sucessCallback,\r\n failCallback,\r\n action\r\n) {\r\n // On affiche le gif de chargement\r\n const $gif = $(J_AJAX_LOADER_GIF)\r\n\r\n if ($gif !== undefined) {\r\n $gif.removeClass(C_HIDDEN)\r\n }\r\n\r\n const posting = $.ajax({\r\n // On appel l'action du controlleur en lui passant les paramètres désirés\r\n type: requestType,\r\n url: action,\r\n data: paramsToSend\r\n })\r\n\r\n posting.done(function (content) {\r\n // En cas de réussite, on ajoute le résultat au html\r\n // On cache le gif de chargement\r\n const $gif = $(J_AJAX_LOADER_GIF)\r\n if ($gif !== undefined) {\r\n $gif.addClass(C_HIDDEN)\r\n }\r\n if (content.TagScripts !== undefined && content.TagScripts != '') {\r\n try {\r\n eval(content.TagScripts)\r\n } catch (error) {\r\n console.error(error)\r\n }\r\n }\r\n sucessCallback(content)\r\n })\r\n\r\n posting.fail(function (content) {\r\n // on cache le gif de chargement\r\n const $gif = $(J_AJAX_LOADER_GIF)\r\n if ($gif !== undefined) {\r\n $gif.addClass(C_HIDDEN)\r\n }\r\n\r\n failCallback(content)\r\n })\r\n}\r\n\r\nexport default {\r\n loadAndPrintContent: loadAndPrintContent,\r\n loadAndExecuteCallBack: loadAndExecuteCallBack\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","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","'use strict'\r\n\r\n/**\r\n * Module qui gère l'effacement du texte dans les input quand on clique dessus (ex. Saisissez votre newsletter)\r\n */\r\n\r\nconst J_CLEANTEXTONFOCUS = '.j_cleanTextOnFocus'\r\nconst J_DATA_DEFAULTVALUE = 'defaultvalue'\r\n\r\n/*\r\n * Set des events pour détecter si c'est le message par défaut dans le champs, et si il faut le supprimer\r\n */\r\nfunction setEvent() {\r\n const $items = $(J_CLEANTEXTONFOCUS)\r\n\r\n $items.each(function (index, inputElement) {\r\n $(inputElement).on('blur', function (event) {\r\n setDefaultValueIfEmpty(event.currentTarget)\r\n })\r\n $(inputElement).on('focus', function (event) {\r\n eraseIfDefaultValue(event.currentTarget)\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * Vide le champ si il contient la valeur par défaut\r\n * @param {string} target Element HTML\r\n */\r\nfunction eraseIfDefaultValue(target) {\r\n const focusedInput = target\r\n const defaultValue = $(focusedInput).data(J_DATA_DEFAULTVALUE)\r\n\r\n if (focusedInput.value === defaultValue) {\r\n focusedInput.value = ''\r\n }\r\n}\r\n\r\n/**\r\n * Si le champ est vide, on met la valeur par défaut\r\n * @param {string} target Element HTML\r\n */\r\nfunction setDefaultValueIfEmpty(target) {\r\n const focusedInput = target\r\n const defaultValue = $(focusedInput).data(J_DATA_DEFAULTVALUE)\r\n\r\n if (focusedInput.value === '') {\r\n focusedInput.value = defaultValue\r\n }\r\n}\r\n\r\n/*\r\n * Set des events pour détecter si c'est le message qui doit être effacé au clique dans le champ. Le message est la valeur du champ au moment de l'appel du setEvent\r\n */\r\nfunction setEventOnCustomText(val) {\r\n const $items = $(J_CLEANTEXTONFOCUS)\r\n $items.off() // On désactive les autres events sur ces items si elles y sont\r\n\r\n $items.each(function (index, inputElement) {\r\n $(inputElement).on('blur', function (event) {\r\n setCustomValueIfEmpty(val, event.currentTarget)\r\n })\r\n $(inputElement).on('focus', function (event) {\r\n eraseIfCustomValue(val, event.currentTarget)\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * Vide le champ si il contient la valeur par défaut passée en paramètre\r\n * @param {string} defaultValue Valeur pas défaut\r\n * @param {string} target Element HTML\r\n */\r\nfunction eraseIfCustomValue(defaultValue, target) {\r\n const focusedInput = target\r\n\r\n if (focusedInput.value === defaultValue) {\r\n focusedInput.value = ''\r\n }\r\n}\r\n\r\n/**\r\n * Si le champ est vide, on met la valeur par défaut passée en paramètre\r\n * @param {string} defaultValue Valeur pas défaut\r\n * @param {string} target Element HTML\r\n */\r\nfunction setCustomValueIfEmpty(defaultValue, target) {\r\n const focusedInput = target\r\n\r\n if (focusedInput.value === '') {\r\n focusedInput.value = defaultValue\r\n }\r\n}\r\n\r\nexport default {\r\n setEvent: setEvent,\r\n setEventOnCustomText: setEventOnCustomText\r\n}\r\n","'use strict'\r\n\r\n/**\r\n * Module qui gère la validation des différents éléments d'un formulaire\r\n */\r\n\r\nimport ajaxLoader from 'Modules/ajaxLoader'\r\nimport { INVALIDEMAIL, INVALIDINTEGER } from 'Modules/Resources/Error'\r\n\r\nconst J_INPUT_CLASS = '.j_input'\r\nconst J_EMAIL_INPUT_TYPE = 'j_email'\r\nconst J_INTEGER_INPUT_TYPE = 'j_integer'\r\nconst J_PARAM_NAME = 'parameter'\r\n\r\n/*\r\n * Cette fonction vérifiera chaque élément j_input du j_form de la page\r\n * Elle procédera aux différents vérifications selon le type d'input.\r\n * La callback failCheckFormatCallback sera exécuter si un input n'est pas correct\r\n * Puis elle va appeler ajaxLoader.loadAndExecuteCallBack qui va\r\n * effectuer un appel AJAX sur 'action' et executer successCallbackAjax ou failCallbackAjax selon si l'appel réussi ou échoue\r\n */\r\nfunction process(\r\n successCallbackAjax,\r\n failCallbackAjax,\r\n failCheckFormatCallback,\r\n action,\r\n jForm\r\n) {\r\n const $formInputs = $(jForm).find('input' + J_INPUT_CLASS)\r\n const paramsToSend = {}\r\n let isFalseValue = false\r\n\r\n $formInputs.each(function (index, inputElement) {\r\n if ($(inputElement).hasClass(J_EMAIL_INPUT_TYPE)) {\r\n // Si il s'agit d'un champ email\r\n if (!isValideEmail(inputElement.value)) {\r\n failCheckFormatCallback(INVALIDEMAIL)\r\n isFalseValue = true\r\n return false\r\n } else {\r\n paramsToSend[$(inputElement).data(J_PARAM_NAME)] =\r\n $(inputElement).val() // Paramètre à envoyer à la fonction du controller\r\n }\r\n }\r\n\r\n if ($(inputElement).hasClass(J_INTEGER_INPUT_TYPE)) {\r\n // Si il s'agit d'un champ int\r\n if (!isValideInteger(inputElement.value)) {\r\n failCheckFormatCallback(INVALIDINTEGER)\r\n isFalseValue = true\r\n return false\r\n } else {\r\n paramsToSend[$(inputElement).data(J_PARAM_NAME)] =\r\n $(inputElement).val() // Paramètre à envoyer à la fonction du controller\r\n }\r\n }\r\n // Rajouter une fonction et un if pour vérifier un nouvel élément\r\n })\r\n\r\n // si les valeurs des inputs sont valides, on submit le form. Si un callback est présent, il sera exécuté lorsque le POST aura réussi\r\n if (isFalseValue === false) {\r\n ajaxLoader.loadAndExecuteCallBack(\r\n 'POST',\r\n paramsToSend,\r\n successCallbackAjax,\r\n failCallbackAjax,\r\n action\r\n )\r\n }\r\n}\r\n\r\nfunction isValideEmail(email) {\r\n const regexPattern =\r\n /^([a-zA-Z0-9_\\-.]+)@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})(]?)+$/\r\n return regexPattern.test(email)\r\n}\r\n\r\nfunction isValideInteger(integer) {\r\n const regexPattern = /^([0-9-])+$/\r\n return regexPattern.test(parseInt(integer))\r\n}\r\n\r\nfunction hasSpecialChar(str) {\r\n const regexPattern =\r\n /([^a-zA-Z0-9áàâäãåçéèêëíìîïñóòôöõúùûüýÿæœÁÀÂÄÃÅÇÉÈÊËÍÌÎÏÑÓÒÔÖÕÚÙÛÜÝŸÆŒ\\s])+/\r\n return regexPattern.test(str)\r\n}\r\n\r\nexport default {\r\n process: process,\r\n isValideEmail: isValideEmail,\r\n hasSpecialChar: hasSpecialChar\r\n}\r\n","'use strict'\r\n\r\n/**\r\n * Composant Newsletter\r\n */\r\n\r\nimport cleanTextOnFocus from 'Modules/cleanTextOnFocus'\r\nimport validationForm from 'Modules/validationForm'\r\n\r\nconst J_FORM_NEWSLETTER = '.j_form_newsletter'\r\nconst J_EMAIL_INPUT = 'input[name=\"j_email\"]'\r\nconst J_ACTION_DATA = 'action'\r\nconst C_GREEN = 'green'\r\nconst C_RED = 'red'\r\nconst C_BLACK = 'black'\r\n\r\n/**\r\n * Gère le submit de la newsletter\r\n */\r\n$(J_FORM_NEWSLETTER).on('submit', function (event) {\r\n event.preventDefault()\r\n\r\n const form = $(this)\r\n\r\n validationForm.process(\r\n function (content) {\r\n // Callback de réussite\r\n $(J_EMAIL_INPUT).val(content.Message)\r\n cleanTextOnFocus.setEventOnCustomText(content.Message)\r\n manageStyleForNewsletterError(content.CssClass)\r\n },\r\n function (content) {\r\n // Callback si échec. C'est la même que la réussite : l'erreur est mis dans le champ email\r\n $(J_EMAIL_INPUT).val(content.Message)\r\n cleanTextOnFocus.setEventOnCustomText(content.Message)\r\n manageStyleForNewsletterError(content.CssClass)\r\n },\r\n function (msg) {\r\n // Callback exécuter si l'email n'a pas le bon format\r\n const content = {\r\n // Dans le cas du mail incorrect, on est pas passé dans l'ajax, il faut donc ajouter les éléments permettant de gérer les erreurs manuellement\r\n Error: true,\r\n CssClass: C_RED,\r\n Message: msg\r\n }\r\n $(J_EMAIL_INPUT).val(content.Message)\r\n cleanTextOnFocus.setEventOnCustomText(content.Message)\r\n manageStyleForNewsletterError(content.CssClass)\r\n },\r\n $(form).data(J_ACTION_DATA), // Le controller à appeler\r\n form\r\n )\r\n})\r\n\r\n/*\r\n * Gère les styles CSS à appliquer au champ newsletter selon le message\r\n */\r\nfunction manageStyleForNewsletterError(cssClass) {\r\n $(J_EMAIL_INPUT).addClass(cssClass)\r\n}\r\n\r\n/*\r\n * Efface les couleurs des champs emails au focus\r\n */\r\n$(J_EMAIL_INPUT).on('focus', function () {\r\n $(this).removeClass([C_GREEN, C_BLACK, C_RED])\r\n})\r\n"],"names":["AJAXLOADERINTERNALERROR","INVALIDEMAIL","INVALIDINTEGER","J_LOCATION_PRINT","J_AJAX_LOADER_GIF","C_ERROR_CLASS","C_HIDDEN","loadAndPrintContent","paramsToSend","$location","$","action","data","$gif","removeClass","undefined","posting","ajax","type","url","done","content","addClass","empty","append","fail","loadAndExecuteCallBack","requestType","sucessCallback","failCallback","TagScripts","eval","error","console","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","J_CLEANTEXTONFOCUS","val","$items","off","each","index","inputElement","on","event","defaultValue","focusedInput","currentTarget","value","J_PARAM_NAME","isValideEmail","email","test","successCallbackAjax","failCallbackAjax","failCheckFormatCallback","jForm","$formInputs","find","isFalseValue","hasClass","integer","parseInt","ajaxLoader","J_EMAIL_INPUT","manageStyleForNewsletterError","cssClass","preventDefault","form","this","validationForm","Message","cleanTextOnFocus","CssClass","msg","Error"],"sourceRoot":""}