PageSourceSearch

https://zerowaste.org/assets/admin_controllers/donation_modal_controller-a5279920.js

js zerowaste.org collected 2026-09-25 23:58:39 UTC 1,248 bytes, 43 lines download raw bytes

1import { Controller } from "@hotwired/stimulus"
2
3export default class extends Controller {
4  static targets = ["overlay", "frame"]
5
6  open(event) {
7    if (event.target.closest("a, button, form, input, select")) return
8
9    const url = event.currentTarget.dataset.url
10    if (!url) return
11
12    this.frameTarget.src = url
13    this.overlayTarget.classList.remove("hidden")
14    document.body.style.overflow = "hidden"
15    document.addEventListener("keydown", this._closeOnEscape)
16    this.frameTarget.addEventListener("turbo:submit-end", this._handleSubmit)
17  }
18
19  close() {
20    this.overlayTarget.classList.add("hidden")
21    document.body.style.overflow = ""
22    this.frameTarget.removeEventListener("turbo:submit-end", this._handleSubmit)
23    this.frameTarget.src = ""
24    this.frameTarget.replaceChildren()
25    document.removeEventListener("keydown", this._closeOnEscape)
26  }
27
28  _closeOnEscape = (event) => {
29    if (event.key === "Escape") this.close()
30  }
31
32  _handleSubmit = (event) => {
33    if (event.detail.success) {
34      this.close()
35      window.Turbo.visit(window.location.href, { action: "replace" })
36    }
37  }
38
39  disconnect() {
40    document.body.style.overflow = ""
41    document.removeEventListener("keydown", this._closeOnEscape)
42  }
43}

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.