PageSourceSearch

https://echte-mensen-568x7ctvg.herokuapp.com/assets/controllers/po…f2a1164db20f4a4053860c94cbbbb6c36582ba5e.js

js echte-mensen-568x7ctvg.herokuapp.com collected 2026-10-03 14:48:14 UTC 4,116 bytes, 121 lines download raw bytes

1import { Controller } from "@hotwired/stimulus";
2
3export default class extends Controller {
4  static get targets() {
5    return [
6      "searchPopup",
7      "talentPreview",
8      "wishlist",
9      "talentContactForm",
10      "talentContactName",
11      "talentContactSlug",
12      "talentContactTag",
13      "formSuccess",
14    ];
15  }
16
17  toggleTalentContactPopup(event) {
18    this.talentContactNameTarget.innerText =
19      this.talentContactFormTarget.getAttribute("data-talent-hidden-name");
20    this.talentContactSlugTarget.innerText =
21      this.talentContactFormTarget.getAttribute("data-talent-slug");
22    this.talentContactTagTarget.innerText =
23      this.talentContactFormTarget.getAttribute("data-talent-tag");
24    if (this.talentContactFormTarget.classList.contains("hidden")) {
25      this.talentContactFormTarget.classList.remove("hidden");
26    } else if (event.type == "click") {
27      this.talentContactFormTarget.classList.add("hidden");
28      frame.innerHTML = '<div class="spinner"></div>';
29      frame.reload();
30    } else {
31      if (event.detail.success) {
32        this.talentContactFormTarget.classList.add("hidden");
33        this.formSuccessTarget.classList.remove("hidden");
34        setTimeout(() => {
35          this.formSuccessTarget.classList.add("hidden");
36        }, 5000);
37
38        frame.innerHTML = '<div class="spinner"></div>';
39        frame.reload();
40      } else {
41        event.detail.fetchResponse.response.json().then((response) => {
42          Object.keys(response).forEach((key) => {
43            var newError = document.createElement("div");
44            newError.innerHTML = `<span style="color: #ac1a2f">${response[key]}</span>`;
45            event.detail.formSubmission.formElement
46              .querySelector("#errors")
47              .appendChild(newError);
48          });
49        });
50      }
51    }
52  }
53
54  toggleWishlistPopup(event) {
55    const frame = document.getElementById("turbo-wishlist");
56    console.log(event);
57    if (this.wishlistTarget.classList.contains("hidden")) {
58      this.wishlistTarget.classList.remove("hidden");
59      frame.innerHTML = '<div class="spinner"></div>';
60      frame.reload();
61    } else if (event.type == "click") {
62      this.wishlistTarget.classList.add("hidden");
63      frame.innerHTML = '<div class="spinner"></div>';
64      frame.reload();
65    } else {
66      if (event.detail.success) {
67        this.wishlistTarget.classList.add("hidden");
68        this.formSuccessTarget.classList.remove("hidden");
69        setTimeout(() => {
70          this.formSuccessTarget.classList.add("hidden");
71        }, 5000);
72
73        frame.innerHTML = '<div class="spinner"></div>';
74        frame.reload();
75      } else {
76        event.detail.fetchResponse.response.json().then((response) => {
77          Object.keys(response).forEach((key) => {
78            var newError = document.createElement("div");
79            newError.innerHTML = `<span style="color: #ac1a2f">${response[key]}</span>`;
80            event.detail.formSubmission.formElement
81              .querySelector("#errors")
82              .appendChild(newError);
83          });
84        });
85      }
86    }
87  }
88
89  formSuccessTargetConnected() {
90    console.log("formSuccessTargetConnected");
91  }
92
93  closeFormSuccess() {
94    this.formSuccessTarget.classList.add("hidden");
95  }
96
97  toggleSearchPopup() {
98    if (this.searchPopupTarget.classList.contains("hidden")) {
99      this.searchPopupTarget.classList.remove("hidden");
100    } else {
101      this.searchPopupTarget.classList.add("hidden");
102    }
103  }
104
105  togglePreviewPopup(event) {
106    event.stopPropagation();
107    event.preventDefault();
108    
109    const frame = document.getElementById("preview-model");
110    frame.innerHTML = '<div class="spinner"></div>';
111    const slug = event.currentTarget.getAttribute("data-talent-slug");
112    const path = event.currentTarget.getAttribute("data-talent-preview-path");
113
114    if (this.talentPreviewTarget.classList.contains("hidden")) {
115      frame.setAttribute("src", `${path}${slug}`);
116      this.talentPreviewTarget.classList.remove("hidden");
117    } else {
118      this.talentPreviewTarget.classList.add("hidden");
119    }
120  }
121};

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.