PageSourceSearch

https://www.frandroid.com/wp-content/themes/humanoid-redesign/dist…/NewsletterForm-vDCqGDwt7Odc-h0dNCMc9.js

js frandroid.com collected 2026-09-24 08:28:21 UTC 3,334 bytes, 97 lines download raw bytes

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.