{"version":3,"sources":["../src/scripts/devis/app.js","../src/scripts/form/stepNumber.js"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","_i","_s","_e","_x","_r","_arr","_n","_d","call","next","Object","done","push","value","length","err","Array","isArray","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","o","minLen","_arrayLikeToArray","n","toString","slice","name","from","test","iter","len","arr2","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","enumerable","configurable","writable","defineProperty","_toPropertyKey","key","_createClass","protoProps","staticProps","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","Number","_classPrivateFieldInitSpec","privateMap","_checkPrivateRedeclaration","set","privateCollection","has","_classPrivateFieldGet","receiver","_classExtractFieldDescriptor","_classApplyDescriptorGet","action","get","_main","_idTypeDevisALaCarte","_blocksToggleRequired","_UrlLoguer","_UrlAddPassager","_isDebug","helpers","require","module","exports","WeakMap","devis","config","this","document","querySelector","telephone","id","fieldsName","visio","destination","passager","idForm","_this","utilities","stepNumber","initialize","event","eventCheckAndToggle","devisType","settingsApp","app","querySelectorAll","forEach","el","toggleNomNaissance","settings","indicatifFixe","hasFixe","msg","modules","moduleIndicatifTel","then","tel","indicatifTel","contactFormValidation","Formulaire","moduleValidation","closest","required","removeAttribute","fieldsPax1","index","getElementById","concat","parentElement","classList","remove","innerText","hidden","self","checked","_isShowAndRequired","_isHideAndNotRequired","element","addEventListener","e","typeFieldRequired","type","parent","textContent","validity","valid","add","show","hide","selectedIndex","dataset","btn","_showBoxChoices","toggle","_slide","connexionEspaceClient","role","isMobile","console","log","showPicker","hasNomNaissance","select","updateDataPax1","JSON","parse","_setTotalVoyageurs","addPax","isOpen","style","removeProperty","setProperty","getPropertyValue","array","valueAsNumber","nbVoyageurs","nextElementSibling","parseInt","replace","_this2","data","Action","Context","Email","Password","__RequestVerificationToken","tool","promiseTool","formData","URLSearchParams","optionsPromise","getPromiseJson","reponse","_Object$entries","entries","_Object$entries$_i","includes","elementExist","IsLogged","body","logged","token","MessageErreurMail","MessageErreurPassword","error","getPromiseTxt","response","innerHTML","_this3","nbAdultes","nbEnfant","nbAdo","nbBebe","civilite","nom","prenom","nomUsage","inputNaissance","Maska","create","reportValidity","_validateInput","setInputButtonState","setNumber","handleNumberInputBlur","_step","inputs","getElementsByClassName","_iterator","_createForOfIteratorHelper","s","children","hasAttribute","disabled","parseFloat","min","max","f","button","inputId","step","operation","isNaN","setInputValue","newInput","cloneNode","parentBox","getBoundingClientRect","appendChild","marginLeft","width","prepend","window","setTimeout","removeChild","dispatchEvent","CustomEvent","bubbles","detail","libelle"],"mappings":"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","file":"static/scripts/devis/devis.js.map","sourcesContent":["'use strict';\r\n\r\nconst helpers = require(\"../common/helpers\");\r\n\r\nmodule.exports = class devis {\r\n\t//* Propriétés privées\r\n\t#main = document.querySelector('.devis');\r\n\t#idTypeDevisALaCarte = 4;\r\n\t#blocksToggleRequired = {\r\n\t\t'telephone': {\r\n\t\t\tname: 'contactType',\r\n\t\t\tid: 'contactType-telephone',\r\n\t\t\tfieldsName: 'plageHoraire',\r\n\t\t\ttarget: 'plagesTel'\r\n\t\t},\r\n\t\t'visio': {\r\n\t\t\tname: 'contactType',\r\n\t\t\tid: 'contactType-visio',\r\n\t\t\tfieldsName: 'plageHoraire',\r\n\t\t\ttarget: 'plagesVisio'\r\n\t\t},\r\n\t\t'destination': {\r\n\t\t\tname: 'choixDest',\r\n\t\t\tid: 'choixDest-oui',\r\n\t\t\tfieldsName: 'DestinationSelected',\r\n\t\t\ttarget: null\r\n\t\t},\r\n\t\t'passager': {\r\n\t\t\tname: 'saisiePassager',\r\n\t\t\tid: 'saisiePassager-oui',\r\n\t\t\tfieldsName: 'saisiePassager',\r\n\t\t\ttarget: 'saisiePassager'\r\n\t\t}\r\n\t};\r\n\t#UrlLoguer = '/DevisWeb/seLoguer';\r\n\t#UrlAddPassager = '/DevisWeb/ChangeNbPassager';\r\n\t#isDebug = false; /// Remover le code lors de la publication\r\n\r\n\tconstructor(config) {\r\n\t\tthis.config = config;\r\n\t\tthis.idForm = 'ddeDevis';\r\n\t}\r\n\r\n\t/**\r\n\t * * Description : Méthode appelé dans \\www.terdav.com\\Views\\DevisWeb\\demandeDevis\\userControl\\_scripts.cshtml\r\n\t */\r\n\tinitialize() {\r\n\r\n\t\t// Appel du module stepNumber pour les blocs :\r\n\t\t// nombre de voyageurs, durée & nuités\r\n\t\tconst utilities = new stepNumber(this.config);\r\n\t\tutilities.initialize()\r\n\r\n\t\t// Gestion des événements\r\n\t\t// Click & submit\r\n\t\tthis.event(this);\r\n\r\n\t\t// Gestion choix des plages horaires\r\n\t\tthis.eventCheckAndToggle(this.#blocksToggleRequired.telephone);\r\n\t\tthis.eventCheckAndToggle(this.#blocksToggleRequired.visio);\r\n\r\n\t\t// Devis à la carte : choix de la destination\r\n\t\t(this.config.devisType === this.#idTypeDevisALaCarte) && this.eventCheckAndToggle(this.#blocksToggleRequired.destination);\r\n\r\n\t\t//ajout des passagers et Gestion civilité\r\n\t\t// uniquement GNG & TDV\r\n\t\tif(settingsApp.app != 'TCA') {\r\n\t\t\tdocument.querySelectorAll('[data-select=\"civilite-a\"]').forEach(el => {\r\n\t\t\tthis.toggleNomNaissance(el);\r\n\t \t\t})\r\n\t\t\tthis.eventCheckAndToggle(this.#blocksToggleRequired.passager);\r\n\t\t}\r\n\r\n\t\t// Coordonnées\r\n\t\tlet settings = {\r\n\t\t\tindicatifFixe: 'CodeIsoForMobile',\r\n\t\t\thasFixe: false,\r\n\t\t\tmsg: this.config.msg\r\n\t\t}\r\n\t\t// Appel de la promesse du module indicatif telephonique\r\n\t\tsettingsApp.modules.moduleIndicatifTel.then(() => {\r\n\t\t\tconst tel = require(`modules/indicatifTelephonique`);\r\n\t\t\tlet indicatifTel = new tel(settings);\r\n\t\t\tindicatifTel.event();\r\n\t\t});\r\n\r\n\t\t// Formulaire validation\r\n\t\tlet contactFormValidation = new Formulaire(settings);\r\n\t\tcontactFormValidation.initialize(this.idForm);\r\n\r\n\t\tthis.moduleValidation = contactFormValidation;\r\n\t}\r\n\r\n\t/**\r\n\t * * Description : on récupère les values Civilite, Nom, etc. du destinataire du devis et on les pousse pour Pax 1\r\n\t * lorsque l'utilisateur coche 'oui' dans le block 'Personne participant à ce voyage'\r\n\t */\r\n\tupdateDataPax1(value) {\r\n\t\tlet self = this,\r\n\t\t\t\tarr = [...document.querySelectorAll('#infosPassager select')]\r\n\t\tdocument.querySelectorAll('#infosPassager input').forEach(el => {\r\n\t\t\tif(!el.closest('.grid--nomNaissance')) {\r\n\t\t\t\tarr.push(el)\r\n\t\t\t}\r\n\t\t})\r\n\t\tif(value) {\r\n\t\t\tarr.forEach(el => el.required = 'required')\r\n\t\t} else {\r\n\t\t\tarr.forEach(el => el.removeAttribute('required'))\r\n\t\t}\r\n\t\t// mettre à jour les champs du passager 1\r\n\r\n\t\tlet fieldsPax1 = ['Civilite', 'Nom', 'Prenom'];\r\n\t\tfieldsPax1.forEach((el, index) => {\r\n\t\t\tdocument.getElementById(`ListVoyageur_0__${el}`).value = document.getElementById(el).value;\r\n\t\t\tdocument.getElementById(`ListVoyageur_0__${el}`).parentElement.classList.remove('is-error');\r\n\t\t\tdocument.querySelector(`#ListVoyageur_0__${el} + span`).innerText = '';\r\n\r\n\t\t\tif(index === 0 && document.getElementById(el).value == 2) {\r\n\t\t\t\tdocument.getElementById('ListVoyageur_0__NomUsage').value = document.getElementById('NomUsage').value;\r\n\r\n\r\n\t\t\t\tdocument.getElementById('ListVoyageur_0__NomUsage').parentElement.parentElement.hidden = false;\r\n\t\t\t\tdocument.querySelector(`[for=\"ListVoyageur_0__Nom\"]`).innerText = 'Nom de naissance';\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\t/**\r\n\t * * Description : gestion et affichage de champs \r\n\t * : devis à la carte | téléphone et visio\r\n\t */\r\n\teventCheckAndToggle(obj) {\r\n\t\tlet self = this,\r\n\t\t\tname = obj.name,\r\n\t\t\tid = obj.id,\r\n\t\t\tfieldsName = obj.fieldsName,\r\n\t\t\ttarget = obj.target || name;\r\n\r\n\t\tdocument.getElementById(id).checked ? this._isShowAndRequired(target, fieldsName) : this._isHideAndNotRequired(target, fieldsName);\r\n\r\n\t\tdocument.querySelectorAll(`[name=\"${name}\"]`).forEach(element => {\r\n\t\t\telement.addEventListener('click', (e) => {\r\n\r\n\t\t\t\t// On remove les msg d'erreur\r\n\t\t\t\tlet typeFieldRequired = [...document.querySelectorAll(`[name=\"${fieldsName}\"]`)][0].type,\r\n\t\t\t\t\tparent = [...document.querySelectorAll(`[name=\"${fieldsName}\"]`)][0].parentElement;\r\n\t\t\t\tif (typeFieldRequired === 'select-one') {\r\n\t\t\t\t\tparent.classList.remove('is-error');\r\n\t\t\t\t\tparent.querySelector('.field-validation-error').textContent = '';\r\n\t\t\t\t}\r\n\t\t\t\te.target.checked && e.target.id === id ? self._isShowAndRequired(target, fieldsName) : self._isHideAndNotRequired(target, fieldsName);\r\n\t\t\t})\r\n\t\t})\r\n\t\tdocument.querySelectorAll(`[name=\"${fieldsName}\"]`).forEach((e) => {\r\n\t\t\te.addEventListener('change', (input) => {\r\n\t\t\t\tif (input.target.validity.valid) {\r\n\t\t\t\t\tdocument.getElementById(`${fieldsName}ErrorMsg`).textContent = '';\r\n\t\t\t\t\tdocument.getElementById(`${fieldsName}ErrorMsg`).parentElement.classList.remove('is-error')\r\n\t\t\t\t\tif (input.target.id === 'DestinationSelected') {\r\n\t\t\t\t\t\tdocument.getElementById(`${fieldsName}ErrorMsg`).closest('.box').classList.remove('is-error')\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t})\r\n\t}\r\n\t/**\r\n\t * * Utilities : au check/uncheck d'un on affiche/masque un bloc avec des champs ou non\r\n\t */\r\n\t_isShowAndRequired(name, fieldsName) {\r\n\t\tdocument.querySelector(`[data-target=\"${name}\"]`).parentElement.classList.add('is-open');\r\n\t\thelpers.show(document.querySelector(`[data-target=\"${name}\"]`))\r\n\t\tdocument.querySelectorAll(`[data-target=\"${name}\"] [name=\"${fieldsName}\"]`).forEach(element => {\r\n\t\t\telement.required = true;\r\n\t\t});\r\n\t}\r\n\t_isHideAndNotRequired(name, fieldsName) {\r\n\t\thelpers.hide(document.querySelector(`[data-target=\"${name}\"]`))\r\n\t\tdocument.querySelectorAll(`[data-target=\"${name}\"] [name=\"${fieldsName}\"]`).forEach(element => {\r\n\r\n\t\t\telement.required = false;\r\n\t\t\t// On décoche les checkboxes enfants && On reset le select destination\r\n\t\t\tif (element.type === 'radio') {\r\n\t\t\t\telement.checked = false\r\n\t\t\t} else if (element.type === 'select-one') {\r\n\t\t\t\tdocument.getElementById(fieldsName).selectedIndex = 0; // C'est le \"placeholder\" qui s'affiche\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\t/**\r\n\t * * description ajout des listeners click et submit\r\n\t * @param {obj} self : on récupère les propriétés de la class\r\n\t */\r\n\tevent(self) {\r\n\t\t// Event click\r\n\t\tself.#main.addEventListener('click', e => {\r\n\t\t\tconst {\r\n\t\t\t\ttarget\r\n\t\t\t} = e;\r\n\t\t\tif (target.dataset.btn === 'toggleChoices') {\r\n\t\t\t\tself._showBoxChoices(target);\r\n\t\t\t} else if (target.value === 'Fermer' || target.type === 'submit') {\r\n\t\t\t\tdocument.querySelector('.box__choices').hidden = true;\r\n\t\t\t\tself.#main.classList.toggle('has-block-voyageurs')\r\n\t\t\t} else if (target.dataset.event === 'slide') {\r\n\t\t\t\tself._slide();\r\n\t\t\t} else if (target.name === self.#blocksToggleRequired.telephone.name) {\r\n\t\t\t\tif (target.id === self.#blocksToggleRequired.telephone.id) {\r\n\t\t\t\t\ttarget.parentElement.classList.add('is-open');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdocument.getElementById(self.#blocksToggleRequired.telephone.id).parentElement.classList.remove('is-open')\r\n\t\t\t\t}\r\n\t\t\t\tif (target.id === self.#blocksToggleRequired.visio.id) {\r\n\t\t\t\t\ttarget.parentElement.classList.add('is-open');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdocument.getElementById(self.#blocksToggleRequired.visio.id).parentElement.classList.remove('is-open')\r\n\t\t\t\t}\r\n\t\t\t} else if (target.id === 'getCoordEc') {\r\n\t\t\t\tself.connexionEspaceClient();\r\n\t\t\t} else if (target.role === 'main') {\r\n\t\t\t\tdocument.querySelector('.box__choices').hidden = true;\r\n\t\t\t\tself.#main.classList.remove('has-block-voyageurs');\r\n\t\t\t} else if (target.id == 'DateDepartSelected' && !helpers.isMobile()) {\r\n\t\t\t\ttarget.showPicker()\r\n\t\t\t} else {\r\n\t\t\t\tif (self.#isDebug) {\r\n\t\t\t\t\tconsole.log('Event click : ')\r\n\t\t\t\t\tconsole.log(target)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t\tself.#main.addEventListener('change', e => {\r\n\t\t\tconst {\r\n\t\t\t\ttarget\r\n\t\t\t} = e;\r\n\r\n\t\t\tif (self.hasNomNaissance && target.dataset.select === 'civilite-a') {\r\n\t\t\t\tself.toggleNomNaissance(target);\r\n\t\t\t} else if(target.name === 'saisiePassager') {\r\n\t\t\t\tself.updateDataPax1(JSON.parse(target.value));\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tdocument.querySelector('.box__choices').addEventListener('updateInputNumber', () => {\r\n\t\t\tself._setTotalVoyageurs();\r\n\t\t\tself.hasNomNaissance && self.addPax();\r\n\t\t})\r\n\t\tdocument.querySelectorAll('[type=\"number\"]').forEach((el) => el.addEventListener('keyup', () => {\r\n\t\t\tself._setTotalVoyageurs();\r\n\t\t}))\r\n\r\n\t\tdocument.getElementById('DateDepartSelected').addEventListener('change', () => {\r\n\t\t\tdocument.getElementById('DateDepartSelected').classList.remove('has-date-now')\r\n\t\t})\r\n\r\n\t}\r\n\t/**\r\n\t * * description : Sur mobile, le récap est en partie masqué\r\n\t */\r\n\t_slide() {\r\n\t\tthis.isOpen ? this.#main.style.removeProperty('--slideTranslate') : this.#main.style.setProperty('--slideTranslate', 'auto');\r\n\t\treturn false;\r\n\t}\r\n\t/*\r\n\t * * description : le nom de jeune fille est présent ou non\r\n\t */\r\n\tget hasNomNaissance() {\r\n\t\treturn settingsApp.app != 'TCA';\r\n\t}\r\n\t/**\r\n\t * * description : return un boolean pour savoir si le récapitulatif est ouvert (visible entièrement) ou non\r\n\t */\r\n\tget isOpen() {\r\n\t\treturn this.#main.style.getPropertyValue('--slideTranslate') === 'auto';\r\n\t}\r\n\r\n\tget nbVoyageurs() {\r\n\t\tlet array = document.querySelectorAll('.box__choices [type=\"number\"]');\r\n\t\tlet n = 0;\r\n\t\tarray.forEach(element => {\r\n\t\t\tn += element.valueAsNumber;\r\n\t\t});\r\n\t\treturn n;\r\n\t}\r\n\t/**\r\n\t *\r\n\t * @param {int} total initialisé à 0\r\n\t * @description à la fermeture du block voyageurs, on met à jour le libellé du bouton\r\n\t */\r\n\t_setTotalVoyageurs() {\r\n\t\tdocument.querySelector('[data-btn=\"toggleChoices\"]').innerText = `${this.nbVoyageurs} voyageur${this.nbVoyageurs > 1 ? 's' : ''}`\r\n\t}\r\n\r\n\t_showBoxChoices(e) {\r\n\t\te.nextElementSibling.hidden = !e.nextElementSibling.hidden;\r\n\t\tthis.#main.classList.toggle('has-block-voyageurs');\r\n\t}\r\n\r\n\t/** On affiche ou on masque le champ nom de naissance\r\n\t *\r\n\t */\r\n\ttoggleNomNaissance(el) {\r\n\t\tif (parseInt(el.value) === 2) {\r\n\t\t\tel.parentElement.parentElement.querySelector('.grid--nomNaissance').hidden = false;\r\n\t\t\tdocument.querySelector(`[for=\"${el.id.replace('Civilite','Nom')}\"]`).innerText = 'Nom de naissance';\r\n\t\t} else {\r\n\t\t\tel.parentElement.parentElement.querySelector('.grid--nomNaissance').hidden = true;\r\n\t\t\tdocument.querySelector(`[for=\"${el.id.replace('Civilite','Nom')}\"]`).innerText = 'Nom';\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @description : en se connectant à son espace client, on remplit les coordonnées de la demande de devis\r\n\t */\r\n\tconnexionEspaceClient() {\r\n\t\tlet self = this;\r\n\r\n\t\t// Lors de la tentative de connexion à l'Espace client,\r\n\t\t// on récupère les données dans un objet\r\n\t\tlet data = {\r\n\t\t\tAction: 1,\r\n\t\t\tContext: '',\r\n\t\t\tEmail: document.getElementById('EmailConnexion').value,\r\n\t\t\tPassword: document.getElementById('password').value,\r\n\t\t\t__RequestVerificationToken: document.querySelector('[name=\"__RequestVerificationToken\"]').value\r\n\t\t};\r\n\r\n\t\t// Préparation de la requête\r\n\t\tlet tool = require('common/toolsPromise');\r\n\t\tlet promiseTool = new tool();\r\n\t\tlet formData = new URLSearchParams(data);\r\n\t\tpromiseTool.optionsPromise = formData;\r\n\r\n\t\tpromiseTool.getPromiseJson(this.#UrlLoguer)\r\n\t\t\t.then((reponse) => {\r\n\t\t\t\t// La requête est OK et envoie une réponse\r\n\t\t\t\t// Les champs mappés\r\n\t\t\t\tlet data = ['Civilite', 'Nom', 'NomUsage', 'Prenom', 'CodePostal', 'Ville', 'Email', 'TelMobile', 'CodeIsoForMobile', 'Pays'];\r\n\t\t\t\tfor (const [key, value] of Object.entries(reponse)) {\r\n\t\t\t\t\tif (data.includes(key)) {\r\n\t\t\t\t\t\tif (helpers.elementExist(`[name=\"${key}\"]`)) {\r\n\t\t\t\t\t\t\tdocument.querySelector(`[name=\"${key}\"]`).value = value\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (reponse.IsLogged) {\r\n\t\t\t\t\tdocument.body.dataset.logged = true;\r\n\t\t\t\t\tdocument.getElementById('connexionEspaceclient').remove();\r\n\t\t\t\t\tdocument.querySelector('.connexion').parentElement.querySelectorAll('.field').forEach(element => {\r\n\t\t\t\t\t\telement.classList.remove('is-error');\r\n\t\t\t\t\t\tif (element.querySelector('.field-validation-error') !== null) {\r\n\t\t\t\t\t\t\telement.querySelector('.field-validation-error').innerText = ''\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tself.updateDataPax1();\r\n\t\t\t\t\tself.toggleNomNaissance(document.getElementById('Civilite'));\r\n\t\t\t\t\tthis.token(promiseTool);\r\n\t\t\t\t\tdocument.querySelector('.connexion').parentElement.classList.remove('is-error')\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (reponse.MessageErreurMail != null) {\r\n\t\t\t\t\t\tdocument.getElementById('EmailConnexion_validationMessage').innerText = reponse.MessageErreurMail;\r\n\t\t\t\t\t\tdocument.getElementById('EmailConnexion_validationMessage').parentElement.classList.add('is-error');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (reponse.MessageErreurPassword != null) {\r\n\t\t\t\t\t\tdocument.getElementById('password_validationMessage').innerText = reponse.MessageErreurPassword;\r\n\t\t\t\t\t\tdocument.getElementById('password_validationMessage').parentElement.classList.add('is-error');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch((e) => {\r\n\t\t\t\tconsole.error(e)\r\n\t\t\t})\r\n\t}\r\n\ttoken(tool) {\r\n\t\ttool.getPromiseTxt('/DevisWeb/GetAntiForgeryToken')\r\n\t\t\t.then((response) => {\r\n\t\t\t\tdocument.getElementById('token').innerHTML = response;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconsole.error(error)\r\n\t\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * @description : en selectionnant un nombre de voyageur, on ajoute un bloc passager avec le nom et date de naissance à saisir\r\n\t */\r\n\taddPax() {\r\n\r\n\t\t// Lors de la tentative de connexion à l'Espace client,\r\n\t\t// on récupère les données dans un objet\r\n\t\tlet data = {\r\n\t\t\tnbAdultes: document.getElementById('NbAdulte').value,\r\n\t\t\tnbEnfant: document.getElementById('NbEnfant').value,\r\n\t\t\tnbAdo: document.getElementById('NbAdo').value,\r\n\t\t\tnbBebe: document.getElementById('NbBebe').value\t,\r\n\t\t\tcivilite: document.getElementById('Civilite').value,\r\n\t\t\tnom: document.getElementById('Nom').value,\r\n\t\t\tprenom: document.getElementById('Prenom').value,\r\n\t\t\tnomUsage: document.getElementById('NomUsage').value\r\n\t\t};\r\n\r\n\t\t// Préparation de la requête\r\n\t\tlet tool = require('common/toolsPromise');\r\n\t\tlet promiseTool = new tool();\r\n\t\tlet formData = new URLSearchParams(data);\r\n\t\tpromiseTool.optionsPromise = formData;\r\n\r\n\t\tpromiseTool.getPromiseTxt(this.#UrlAddPassager)\r\n\t\t\t.then((reponse) => {\r\n\t\t\t\tdocument.getElementById('infosPassager').innerHTML = reponse;\r\n\t\t\t\tdocument.querySelectorAll('#infosPassager [data-form-select=\"civilite\"]').forEach(el => {\r\n\t\t\t\t\tif(el.dataset.select === 'civilite-a') {\r\n\t\t\t\t\t\tthis.toggleNomNaissance(el);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tlet inputNaissance = el.closest('.grid--coordonnees').querySelector('[placeholder=\"jj/mm/aaaa\"]');\r\n\t\t\t\t\t\tMaska.create(inputNaissance);\r\n\t\t\t\t\t\tinputNaissance.reportValidity();\r\n\t\t\t\t\t\tthis.moduleValidation._validateInput(inputNaissance, inputNaissance.parentElement.querySelector('.field-validation-error'));\r\n\t\t\t\t\t}\r\n\t\t\t \t});\r\n\r\n\t\t\t\tif(document.getElementById('saisiePassager-oui').checked) {\r\n\t\t\t\t\tlet arr = [...document.querySelectorAll('#infosPassager select')]\r\n\t\t\t\t\tdocument.querySelectorAll('#infosPassager input').forEach(el => {\r\n\t\t\t\t\t\tif(!el.closest('.grid--nomNaissance')) {\r\n\t\t\t\t\t\t\tarr.push(el)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t\tarr.forEach(el => el.required = 'required')\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch((e) => {\r\n\t\t\t\tconsole.error(e)\r\n\t\t\t})\r\n\t}\r\n}\r\n","/// Ce script gère la fonctionnalité -/+ d'un input number\r\n/// (ex. : nombre de voyageurs de la demande de devis)\r\n\r\n/// ----------------------------------------------------------------------------------\r\n/// CLASS stepNumber\r\n///\r\n/// Création : 23 novembre 2023\r\n/// Dernière révision : 8 janvier 2024\r\n/// URL : /devis/${typeDevis} | /informations/newsletter | XXX\r\n///\r\n/// Description :\r\n/// Pas à pas input[number]\r\n/// - minimum & maximum values\r\n/// - configurable step size\r\n/// - keyboard input\r\n///\r\n/// ----------------------------------------------------------------------------------\r\n\r\nclass stepNumber {\r\n\tconstructor(config) {\r\n\t\t// !todo config par défaut\r\n\t\t// !todo gestion NaN\r\n\t\tthis.config = config;\r\n\t}\r\n\r\n\tinitialize() {\r\n\t\tlet self = this;\r\n\r\n\t\tthis.setInputButtonState();\r\n\r\n\t\tdocument.querySelectorAll('[data-operation]').forEach(el => el.addEventListener('click', (e) => {\r\n\t\t\tself.setNumber(e)\r\n\t\t}))\r\n\t\tdocument.querySelectorAll('[data-operation]').forEach(el => {\r\n\t\t\tel.addEventListener('input', () => {\r\n\t\t\t\tself.setInputButtonState();\r\n\t\t\t})\r\n\t\t\tel.addEventListener('blur', (e) => {\r\n\t\t\t\tself.handleNumberInputBlur(e)\r\n\t\t\t})\r\n\t\t})\r\n\t}\r\n\r\n\r\n\tsetInputButtonState() {\r\n\t\tconst inputs = document.getElementsByClassName(\"number-input-text-box\");\r\n\r\n\t\tfor (let input of inputs) {\r\n\t\t\tif (input.id.length > 0) { // during value transition the old input won't have an id\r\n\t\t\t\tconst value = input.value;\r\n\t\t\t\tconst parent = input.parentElement.parentElement;\r\n\r\n\t\t\t\tif (parent.children[0] && input.hasAttribute(\"min\"))\r\n\t\t\t\t\tparent.children[0].disabled = value <= parseFloat(input.min);\r\n\r\n\t\t\t\tif (parent.children[2] && input.hasAttribute(\"max\"))\r\n\t\t\t\t\tparent.children[2].disabled = value >= parseFloat(input.max);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tsetNumber(event) {\r\n\t\tlet button = event.target;\r\n\t\tlet input = document.getElementById(button.dataset.inputId);\r\n\r\n\t\tif (input) {\r\n\t\t\tlet value = parseFloat(input.value);\r\n\t\t\tlet step = parseFloat(input.dataset.step);\r\n\r\n\t\t\tif (button.dataset.operation === \"decrement\") {\r\n\t\t\t\tvalue -= isNaN(step) ? 1 : step;\r\n\t\t\t} else if (button.dataset.operation === \"increment\") {\r\n\t\t\t\tvalue += isNaN(step) ? 1 : step;\r\n\t\t\t}\r\n\r\n\t\t\tif (input.hasAttribute(\"min\") && value < parseFloat(input.min)) {\r\n\t\t\t\tvalue = input.min;\r\n\t\t\t}\r\n\r\n\t\t\tif (input.hasAttribute(\"max\") && value > parseFloat(input.max)) {\r\n\t\t\t\tvalue = input.max;\r\n\t\t\t}\r\n\r\n\t\t\tif (input.value !== value) {\r\n\t\t\t\tthis.setInputValue(input, value);\r\n\t\t\t\tthis.setInputButtonState();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tsetInputValue(input, value) {\r\n\t\tlet newInput = input.cloneNode(true);\r\n\t\tconst parentBox = input.parentElement.getBoundingClientRect();\r\n\r\n\t\tinput.id = \"\";\r\n\r\n\t\tnewInput.value = value;\r\n\r\n\t\tif (value > input.value) {\r\n\t\t\t// right to left\r\n\t\t\tinput.parentElement.appendChild(newInput);\r\n\t\t\tinput.style.marginLeft = -parentBox.width + \"px\";\r\n\t\t} else if (value < input.value) {\r\n\t\t\t// left to right\r\n\t\t\tnewInput.style.marginLeft = -parentBox.width + \"px\";\r\n\t\t\tinput.parentElement.prepend(newInput);\r\n\t\t\twindow.setTimeout(function () {\r\n\t\t\t\tnewInput.style.marginLeft = 0\r\n\t\t\t}, 20);\r\n\t\t}\r\n\r\n\t\twindow.setTimeout(function () {\r\n\t\t\tinput.parentElement.removeChild(input);\r\n\r\n\t\t\tif(helpers.elementExist('.box__choices')) {\r\n\t\t\t\tdocument.querySelector('.box__choices').dispatchEvent(\r\n\t\t\t\t\tnew CustomEvent('updateInputNumber', {\r\n\t\t\t\t\t\tbubbles: true,\r\n\t\t\t\t\t\tdetail: {\r\n\t\t\t\t\t\t\tlibelle: () => {\r\n\t\t\t\t\t\t\t\treturn input.value\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t}, 250);\r\n\t}\r\n\r\n\thandleNumberInputBlur(event) {\r\n\t\tconst value = event.target.value;\r\n\r\n\t\tif (event.target.hasAttribute(\"min\") && value < parseFloat(event.target.min))\r\n\t\t\tevent.target.value = event.target.min;\r\n\r\n\t\tif (event.target.hasAttribute(\"max\") && value > parseFloat(event.target.max))\r\n\t\t\tevent.target.value = event.target.max;\r\n\t}\r\n}"]}