1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._posthogChunkIds=e._posthogChunkIds||{},e._posthogChunkIds[n]="01a0cd79-2a1d-7403-acd1-e00fefaa4586")}catch(e){}}();import { n as newsletterEvent } from "./humanoidfr-cash-dom-vD7AqXygL_cVzk_8zi3yt.js"; 2import "./wordpress-dom-ready-va-j_DcZ-xxc3hbE_tB8c.js"; 3class NewsletterForm { 4 constructor() { 5 this.$formContainer = $(".js-newsletter-form"); 6 this.$form = this.$formContainer.find("form"); 7 this.newsletterFormDailyID = "#newsletter_form__daily"; 8 this.newsletterFormWeeklyID = "#newsletter_form__weekly"; 9 this.newsletterFormBonPlanID = "#newsletter_form__deals"; 10 const self = this; 11 document.querySelectorAll('.is-masked, input[type="email"]').forEach((element) => { 12 element.addEventListener("click", this.removeMask.bind(this)); 13 }); 14 this.$form.on("submit", (event) => { 15 event.preventDefault(); 16 const $target = $(event.target); 17 const data = self.getData($target.closest("form")); 18 self.sendData(data, $target.closest(".js-newsletter-form")); 19 }); 20 } 21 /** 22 * Get form data 23 * @param $form 24 * @returns Object 25 */ 26 getData($form) { 27 const data = {}; 28 data.action = "newsletterSubscribe"; 29 data.email = $form.find('input[type="email"]').val(); 30 if ($form.find(this.newsletterFormDailyID).prop("checked")) { 31 data.newsletter_daily = true; 32 } 33 if ($form.find(this.newsletterFormWeeklyID).prop("checked")) { 34 data.newsletter_weekly = true; 35 } 36 if ($form.find(this.newsletterFormBonPlanID).prop("checked")) { 37 data.newsletter_deals = true; 38 } 39 return data; 40 } 41 /** 42 * Send data and display confirmation message 43 * @param data 44 * @param $formContainer 45 * @returns {boolean} 46 */ 47 sendData(data, $formContainer) { 48 if (!data.email) { 49 return false; 50 } 51 const url = $formContainer.find("form").attr("action"); 52 $formContainer.addClass("loading"); 53 $.ajax({ 54 url, 55 data: $.param(data), 56 method: "GET", 57 dataType: "json", 58 success: () => { 59 newsletterEvent(); 60 $formContainer.removeClass("loading"); 61 $formContainer.addClass("success"); 62 }, 63 error: (response) => { 64 newsletterEvent(); 65 $formContainer.removeClass("loading"); 66 $formContainer.addClass("error"); 67 console.log("form container"); 68 console.log($formContainer); 69 if (response.responseJSON.message) { 70 $formContainer.find("#js-form-message").html('<p class="has-text-error">' + response.responseJSON.message + "</p>"); 71 } 72 } 73 }); 74 return true; 75 } 76 /** 77 * Display the full text by hiding the gradient mask 78 * On focus on the input field OR On click on the text. 79 * @returns {boolean} true when the css class is removed. 80 * @param event 81 */ 82 removeMask(event) { 83 event.stopPropagation(); 84 const parent = event.target.closest(".js-newsletter-form"); 85 if (parent) { 86 const text = parent.querySelector(".is-masked"); 87 if (text) { 88 text.classList.remove("is-masked"); 89 } 90 } 91 } 92} 93export { 94 NewsletterForm as default 95}; 96 97//# chunkId=01a0cd79-2a1d-7403-acd1-e00fefaa4586
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.