{"version":3,"sources":["../src/scripts/informations/newsletter.js","../src/scripts/form/stepNumber.js"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","protoProps","staticProps","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","call","Number","_classPrivateFieldInitSpec","privateMap","value","_checkPrivateRedeclaration","set","privateCollection","has","_classPrivateFieldGet","receiver","_classExtractFieldDescriptor","_classApplyDescriptorGet","action","get","_urlAbonnement","WeakMap","_urlDesabonnement","_urlEvenement","newsletter","config","_this$config$pathFlag","_this$config$formatFl","_this$config$urlAbonn","_this$config$urlDesab","_this$config$hasPubli","_this$config$hasPriva","_this$config$bodyClas","_this$config$eventLis","this","pathFlags","formatFlag","urlAbonnement","urlDesabonnement","hasPublicEvent","hasPrivateEvent","bodyClass","settingsApp","page","arrayOfEvents","eventList","_setArrayOfEvenements","showEvent","app","setIcon","_codePostal","_gestionAbonnement","modules","moduleTab","then","Tab","require","header","document","querySelector","body","e","console","error","id","url","self","form","getElementById","abonnementFormValidation","Formulaire","initialize","addEventListener","preventDefault","formData","URLSearchParams","FormData","captchaModule","module","captcha","_isFormValid","_callback","data","formulaire","tool","promiseTool","optionsPromise","getPromiseJson","reponse","MessageError","nextElementSibling","innerText","classList","add","Message","requestObj","type","email","libelle","helpers","_dispatchEventSubmitForm","validity","patternMismatch","parentElement","remove","_this","src","concat","toLowerCase","_this2","params","location","search","idEvent","includes","moduleLightBox","dispatchEvent","CustomEvent","bubbles","detail","block","complete","dataset","eventComplete","isNaN","querySelectorAll","forEach","el","closest","eventId","optionsLightbox","className","onShow","onClose","URL","searchParams","history","pushState","parseInt","getPromiseTxt","templateInstance","create","show","modal","JSON","parse","hidden","switchDetailInscription","utilities","stepNumber","idForm","inscriptionEvent","validationForm","classInfo","MessageValue","lastElementChild","contains","insertAdjacentHTML","scrollTo","scrollHeight","setInputButtonState","setNumber","handleNumberInputBlur","_step","inputs","getElementsByClassName","_iterator","_createForOfIteratorHelper","s","n","done","parent","children","hasAttribute","disabled","parseFloat","min","max","err","f","event","button","inputId","step","operation","setInputValue","newInput","cloneNode","parentBox","getBoundingClientRect","appendChild","style","marginLeft","width","prepend","window","setTimeout","removeChild","elementExist"],"mappings":"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","file":"static/scripts/newsletter.js.map","sourcesContent":["'use strict';\r\n\r\n/// ----------------------------------------------------------------------------------\r\n/// CLASS NEWSLETTER\r\n///\r\n/// Création : 5 mars 2024\r\n/// Dernière révision : 22 mars 2024\r\n/// URL : /informations/newsletter\r\n///\r\n/// Fonctionnalités :\r\n/// - Affichage d'un icon flag en fonction du pays sélectionné\r\n/// - Lightbox événement & choix détail|formulaire\r\n/// - Gestion d'un module tab : AffichageListeEvenements(Agence)\r\n///\r\n/// ----------------------------------------------------------------------------------\r\n\r\nclass newsletter {\r\n\t// Propriétés privées\r\n\t#urlAbonnement = '/informations/SetAbonnementNewsletter';\r\n\t#urlDesabonnement = '/informations/SetDesabonnementNewsletter';\r\n\t#urlEvenement = '/informations/EvenementInformation';\r\n\r\n\tconstructor(config) {\r\n\r\n\t\tthis.config = config;\r\n\t\tthis.pathFlags = this.config.pathFlags ?? '/Content/img/pictos/flags/';\r\n\t\tthis.formatFlag = this.config.formatFlag ?? 'png';\r\n\t\tthis.urlAbonnement = this.config.urlAbonnement ?? this.#urlAbonnement;\r\n\t\tthis.urlDesabonnement = this.config.urlDesabonnement ?? this.#urlDesabonnement;\r\n\t\tthis.hasPublicEvent = this.config.hasPublicEvent ?? false;\r\n\t\tthis.hasPrivateEvent = this.config.hasPrivateEvent ?? false;\r\n\t\tthis.bodyClass = this.config.bodyClass ?? (settingsApp.page === 'listeconseilleragence' ? 'terdav__esprit' : 'newsletter');\r\n\t\tthis.arrayOfEvents = this.config.eventList ?? [];\r\n\r\n\t\tthis._setArrayOfEvenements()\r\n\r\n\t\t// On est sur la page newsletter\r\n\t\tif(settingsApp.page === 'listeconseilleragence') {\r\n\t\t\tthis.showEvent();\r\n\t\t}\r\n\t\telse if(settingsApp.page === 'newsletter') {\r\n\t\t\t// On gère l'icon flag\r\n\t\t\tsettingsApp.app !== 'TCA' && this.setIcon();\r\n\r\n\t\t\t// On set l'array des id evenement\r\n\t\t\t// document.querySelectorAll('.card--event').forEach((el) => {\r\n\t\t\t// \tthis.arrayOfEvents.push(el.dataset.eventId);\r\n\t\t\t// })\r\n\r\n\t\t\t// Abonnement\r\n\t\t\t// Si l'on remplit le champ code postal, il doit être au bon format\r\n\t\t\tsettingsApp.app !== 'TCA' && this._codePostal();\r\n\t\t\tthis._gestionAbonnement('abonnementNewsletter', this.urlAbonnement);\r\n\r\n\t\t\t// On click sur un bouton événement\r\n\t\t\t// Au chargement de la page l'URL contient un paramètre [Number] `evenement` > 0\r\n\t\t\tif (this.hasPublicEvent || this.hasPrivateEvent) {\r\n\t\t\t\tthis.showEvent();\r\n\r\n\t\t\t\tif(this.hasPublicEvent) {\r\n\t\t\t\t\t// Gestion des onglets agence\r\n\t\t\t\t\tsettingsApp.modules.moduleTab.then(() => {\r\n\t\t\t\t\t\tlet Tab = require('modules/tab')\r\n\t\t\t\t\t\tnew Tab({\r\n\t\t\t\t\t\t\theader: document.querySelector('.module--tabs'),\r\n\t\t\t\t\t\t\tbody: document.querySelector('.liste__agences')\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}).catch((e) => {\r\n\t\t\t\t\t\tconsole.error(e)\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n }\r\n\t\t}\r\n\r\n\t\t// On est sur la page désabonnement\r\n\t\telse {\r\n\t\t\tthis._gestionAbonnement('desabonnementNewsletter', this.urlDesabonnement);\r\n\t\t}\r\n\t}\r\n\r\n///--------------------\r\n///\r\n/// MÉTHODES NEWSLETTER\r\n///\r\n///--------------------\r\n\t///\r\n\t/// Requête information newsletter\r\n\t_gestionAbonnement(id, url) {\r\n\t\tlet self = this;\r\n\t\tlet form = document.getElementById(id),\r\n\t\tabonnementFormValidation = new Formulaire(this.config);\r\n\t\tabonnementFormValidation.initialize(id);\r\n\r\n\t\tform.addEventListener('submit', (e) => {\r\n\t\t\te.preventDefault();\r\n\t\t\tlet formData = new URLSearchParams(new FormData(e.target));\r\n\t\t\tcaptchaModule.then((module) => {\r\n\t\t\t\tlet captcha = new module();\r\n\t\t\t\tif (abonnementFormValidation._isFormValid(form)) {\r\n\t\t\t\t\tcaptcha.initialize(self._callback, {'data' : formData, 'url': url, 'formulaire' : form, 'id': id});\r\n\t\t\t\t}\r\n\t\t });\r\n\t\t})\r\n\t}\r\n\t///\r\n\t/// Appel catpcha\r\n\t_callback(obj) {\r\n\t\tlet tool = require('common/toolsPromise'),\r\n\t\t\tpromiseTool = new tool();\r\n\t\t\tpromiseTool.optionsPromise = obj.data; // on passe les values dans le body de la requête\r\n\r\n\t\tpromiseTool.getPromiseJson(obj.url).then((reponse) => {\r\n\t\t\tif(reponse.MessageError !== null) {\r\n\t\t\t\tobj.formulaire.nextElementSibling.innerText = reponse.MessageError\r\n\t\t\t} else {\r\n\t\t\t\tobj.formulaire.nextElementSibling.classList.add('is-valid')\r\n\t\t\t\tobj.formulaire.nextElementSibling.innerText = reponse.Message;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet requestObj = {\r\n\t\t\ttype: 'submit',\r\n\t\t\temail: obj.data.get('email'),\r\n\t\t\tlibelle: 'Inscription newsletter'\r\n\t\t}\r\n\t\thelpers._dispatchEventSubmitForm(requestObj, '.main');\r\n\t}\r\n\t///\r\n\t/// Validité du champ code postal\r\n\t_codePostal() {\r\n\t\tdocument.querySelector('[name=\"codePostal\"]').addEventListener('keyup', (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(target.validity.patternMismatch) {\r\n\t\t\t\ttarget.parentElement.classList.add('is-error');\r\n\t\t\t\ttarget.nextElementSibling.innerText = `Seuls les chiffres sont autorisés.`;\r\n\t\t\t} else {\r\n\t\t\t\ttarget.parentElement.classList.remove('is-error');\r\n\t\t\t\ttarget.nextElementSibling.innerText = ``;\r\n\t\t\t}\r\n\r\n\t\t})\r\n\t}\r\n\t///\r\n\t/// On set le drapeau en fonction du pays sélectionné\r\n\tsetIcon(){\r\n\r\n\t\tdocument.querySelector('[data-icon-target=\"flag\"] img').src = `${this.pathFlags + document.querySelector('[data-icon=\"flag\"]').value.toLowerCase()}.${this.formatFlag}`;\r\n\r\n\t\tdocument.querySelector('[data-icon=\"flag\"]').addEventListener('change', (e) => {\r\n\t\t\tconst {\r\n\t\t\t\ttarget\r\n\t\t\t} = e;\r\n\t\t\tdocument.querySelector('[data-icon-target=\"flag\"] img').src = `${this.pathFlags + target.value.toLowerCase()}.${this.formatFlag}`;\r\n\t\t})\r\n\t}\r\n\r\n///--------------------\r\n///\r\n/// MÉTHODES ÉVÉNEMENT\r\n///\r\n///--------------------\r\n\tshowEvent() {\r\n\t\tlet self = this;\r\n\r\n\t\tlet params = new URLSearchParams(document.location.search);\r\n\t\tlet idEvent = params.get('evenement');\r\n\r\n\t\t// Si le paramètre evenement de l'URL vaut un number > 0 et que l'événement existe\r\n\t\t// on initie un événement qui va déclencher la popin event\r\n\t\tif(Number(idEvent) && (this.arrayOfEvents.length > 0 && this.arrayOfEvents.includes(idEvent))) {\r\n\t\t\tself.config.moduleLightBox.then(() => {\r\n\t\t\t\tdocument.querySelector(`.${this.bodyClass}`).dispatchEvent(\r\n\t\t\t\t\tnew CustomEvent('lightboxLaunch', {\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 idEvent\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tblock: () => {\r\n\t\t\t\t\t\t\t\treturn 'detail'\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tcomplete: () => {\r\n\t\t\t\t\t\t\t\treturn document.querySelector(`[data-event-id=\"${idEvent}\"]`).dataset.eventComplete\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}).catch((error) => {\r\n\t\t\t\tconsole.error(error);\r\n\t\t\t});\r\n\t\t} else if(params.has('evenement')) {\r\n\t\t\tif (isNaN(idEvent)) {\r\n\t\t\t\tconsole.error('Parameter evenement is not a number!');\r\n\t\t\t} else if(Number(idEvent) === 0) {\r\n\t\t\t\tconsole.error('Parameter evenement vaut 0');\r\n\t\t\t} else if(this.arrayOfEvents.length > 0 && !this.arrayOfEvents.includes(idEvent)) {\r\n\t\t\t\tconsole.error(`L'évenement ${idEvent} n'existe pas`);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//\r\n\t\t// Tous les boutons `Lire la suite` & `S'incrire` de chaque événement\r\n\t\tdocument.querySelectorAll('[data-newsletter]').forEach((el) => {\r\n\t\t\tel.addEventListener('click', function(e) {\r\n\t\t\t\tconst {\r\n\t\t\t\t\ttarget\r\n\t\t\t\t} = e;\r\n\r\n\t\t\t\t// Au click, on importe le module lightbox et\r\n\t\t\t\t// on créé un événement lightboxLaunch auquel on passe l'id de l'événement\r\n\t\t\t\tself.config.moduleLightBox.then(() => {\r\n\t\t\t\t\ttarget.dispatchEvent(\r\n\t\t\t\t\t\tnew CustomEvent('lightboxLaunch', {\r\n\t\t\t\t\t\t\tbubbles: true,\r\n\t\t\t\t\t\t\tdetail: {\r\n\t\t\t\t\t\t\t\tlibelle: () => {\r\n\t\t\t\t\t\t\t\t\treturn target.closest('.card--event').dataset.eventId\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tblock: () => {\r\n\t\t\t\t\t\t\t\t\treturn target.dataset.newsletter\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tcomplete: () => {\r\n\t\t\t\t\t\t\t\t\treturn target.closest('.card--event').dataset.eventComplete\r\n\t\t\t\t\t\t\t\t}\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}).catch((error) => {\r\n\t\t\t\t\tconsole.error(error);\r\n\t\t\t\t});\r\n\t\t\t})\r\n\t\t})\r\n\r\n\t\t//\r\n\t\t// Ajout listener lightboxLaunch\r\n\t\tdocument.querySelector(`.${this.bodyClass}`).addEventListener('lightboxLaunch', (e) => {\r\n\t\t\tlet instance = require('modules/lib/basicLightbox.min'),\r\n\t\t\t\t\toptionsLightbox = {\r\n\t\t\t\t\t\tclassName: `lightbox--event`,\r\n\t\t\t\t\t\tonShow: () => {\r\n\t\t\t\t\t\t\tdocument.body.classList.add('lightbox--open');\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tonClose: () => {\r\n\t\t\t\t\t\t\tdocument.body.classList.remove('lightbox--open');\r\n\t\t\t\t\t\t\tconst url = new URL(location);\r\n\t\t\t\t\t\t\turl.searchParams.delete('evenement');\r\n\t\t\t\t\t\t\thistory.pushState({}, \"\", url);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\r\n\t\t\ttool = require('common/toolsPromise'),\r\n\t\t\tpromiseTool = new tool();\r\n\r\n\t\t\t// On prépare la requête\r\n\t\t\tlet data = `idEvenement=${parseInt(e.detail.libelle())}`;\r\n\t\t\tpromiseTool.optionsPromise = data;\r\n\t\t\tconst url = this.#urlEvenement;\r\n\r\n\t\t\tpromiseTool.getPromiseTxt(url)\r\n\t\t\t\t.then((data) => {\r\n\t\t\t\t\tconst templateInstance = instance.create(data, optionsLightbox);\r\n\t\t\t\t\ttemplateInstance.show();\r\n\t\t\t\t})\r\n\t\t\t\t.then(() => {\r\n\t\t\t\t\tlet modal = document.querySelector('.event');\r\n\t\t\t\t\tif(e.detail.block() === 'detail') {\r\n\t\t\t\t\t\tif(!JSON.parse(modal.dataset.eventComplete)) {\r\n\t\t\t\t\t\t\tdocument.querySelector('[for=\"switchEvent\"]').innerText = \"S'inscrire à l'événement\";\r\n\t\t\t\t\t\t\tdocument.getElementById('formEvenement').hidden = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdocument.querySelector('.event__description').hidden = true;\r\n\t\t\t\t\t\tdocument.querySelector('[for=\"switchEvent\"]').innerText = \"Consulter le détail\";\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Swicth détail ↭ inscription\r\n\t\t\t\t\tself.switchDetailInscription();\r\n\r\n\t\t\t\t\tif(!JSON.parse(modal.dataset.eventComplete)) {\r\n\t\t\t\t\t\t// Appel du module stepNumber pour le nombre de participants\r\n\t\t\t\t\t\tconst utilities = new stepNumber(this.config);\r\n\t\t\t\t\t\tutilities.initialize();\r\n\r\n\t\t\t\t\t\t// Gestion du formulaire\r\n\t\t\t\t\t\tconst idForm = 'formEvenement',\r\n\t\t\t\t\t\t\t\t\tformulaire = new Formulaire(),\r\n\t\t\t\t\t\t\t\t\tform = document.getElementById(idForm);\r\n\t\t\t\t\t\tformulaire.initialize(idForm);\r\n\r\n\t\t\t\t\t\tform.addEventListener('submit', (e) => {\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\tcaptchaModule.then((module) => {\r\n\t\t\t\t\t\t\t\tlet captcha = new module();\r\n\t\t\t\t\t\t\t\tif (!formulaire._isFormValid(form)) {\r\n\t\t\t\t\t\t\t\t\tformulaire.validationForm(form);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tlet formData = new URLSearchParams(new FormData(e.target));\r\n\t\t\t\t\t\t\t\t\tcaptcha.initialize(self.inscriptionEvent, {'data' : formData, 'target': e.target, 'formulaire' : form, 'id': 'evenement'});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t });\r\n\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//self.notifMe(`Coucou !\\nInscrivez-vous à notre événement ${e.detail.libelle()} et recevez plein de mails !\\nToto`);\r\n\r\n\t\t\t\t\t// document.getElementById('Nom').addEventListener('invalid', (e) => {\r\n\t\t\t\t\t// \te.target.setCustomValidity('')\r\n\t\t\t\t\t// \te.target.nextElementSibling.innerText = 'Toto'\r\n\t\t\t\t\t// })\r\n\t\t\t\t});\r\n\t\t});\r\n\t}\r\n\tinscriptionEvent(obj) {\r\n\r\n\t\tpromiseTool.optionsPromise = obj.data;\r\n\t\tpromiseTool.getPromiseJson(obj.target.action)\r\n\t\t.then((reponse) => {\r\n\t\t\tif(reponse.Message !== null) {\r\n\t\t\t\tlet classInfo = parseInt(reponse.MessageValue) == 1 ? 'is-warning' :'is-valid';\r\n\r\n\t\t\t\tif(obj.formulaire.lastElementChild.classList.contains('notification')) {\r\n\t\t\t\t\tobj.formulaire.lastElementChild.innerText = reponse.Message;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tobj.formulaire.insertAdjacentHTML('beforeend', `
${reponse.Message}
`);\r\n\t\t\t\t}\r\n\t\t\t\tobj.formulaire.lastElementChild.classList.add(classInfo);\r\n\t\t\t\tdocument.querySelector('.event').scrollTo(0,document.querySelector('.event').scrollHeight);\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\tswitchDetailInscription() {\r\n\t\tdocument.getElementById('switchEvent').addEventListener('change', (e) => {\r\n\t\t\t// Si le block affiché au départ est détail\r\n\t\t\tif(document.getElementById('formEvenement').hidden) {\r\n\t\t\t\tdocument.getElementById('formEvenement').hidden = false;\r\n\t\t\t\tdocument.querySelector('.event__description').hidden = true;\r\n\t\t\t\tdocument.querySelector('[for=\"switchEvent\"]').innerText = \"Consulter le détail\";\r\n\t\t\t} else {\r\n\t\t\t\tdocument.getElementById('formEvenement').hidden = true;\r\n\t\t\t\tdocument.querySelector('.event__description').hidden = false;\r\n\t\t\t\tdocument.querySelector('[for=\"switchEvent\"]').innerText = \"S'inscrire à l'événement\";\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\t_setArrayOfEvenements() {\r\n\t\tdocument.querySelectorAll('.card--event').forEach((el) => {\r\n\t\t\t//this.arrayOfEvents.push(el.dataset.eventId);\r\n\r\n\t\t\tel.addEventListener('click', (e) => {\r\n\t\t\t\tif(e.target.dataset.newsletter) {\r\n\t\t\t\t\tif(document.location.search === '') {\r\n\t\t\t\t\t\thistory.pushState({ page: 1 }, \"title 1\", `${document.location.search}?evenement=${el.dataset.eventId}`);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\thistory.pushState({ page: 1 }, \"title 1\", `${document.location.search}&evenement=${el.dataset.eventId}`);\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\r\n\t/*\r\n\tnotifMe(msg) {\r\n\r\n\t\tconst img = \"/content/img/informations/newsletter/test/frans-hulet-j0WTZ6HWfCU-unsplash.jpg\";\r\n\r\n\t\tif (window.Notification && Notification.permission === \"granted\") {\r\n\t\t\tconst notification = new Notification(\"Ne ratez pas cette superbe conférence\", {\r\n\t\t\t\tbody: msg,\r\n\t\t\t\ticon: img\r\n\t\t\t});\r\n\t\t}\r\n\t\telse if (window.Notification && Notification.permission !== \"denied\") {\r\n\t\t\tNotification.requestPermission(function (status) {\r\n\t\t\t\tif (status=== \"granted\") {\r\n\t\t\t\t\tconst notification = new Notification(\"Ne ratez pas cette superbe conférence\", {\r\n\t\t\t\t\t\tbody: msg,\r\n\t\t\t\t\t\ticon: img\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\t// else {\r\n\t\t\t\t// \talert(msg);\r\n\t\t\t\t// }\r\n\t\t\t})\r\n\t\t}\r\n\t\t// else {\r\n\t\t// \talert(msg);\r\n\t\t// }\r\n\t}*/\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}"]}