PageSourceSearch

https://serialkillercalendar.com/SiteFooter.v2.js

js serialkillercalendar.com collected 2026-09-24 21:17:19 UTC 9,704 bytes, 277 lines download raw bytes

1function SiteFooter() {
2  const [sOpen, setSOpen] = React.useState(false);
3  const [sQ, setSQ] = React.useState("");
4  const sInpRef = React.useRef(null);
5  const openSearch = () => {
6    setSOpen(true);
7    setTimeout(() => sInpRef.current && sInpRef.current.focus(), 120);
8  };
9  const submitSearch = e => {
10    e && e.preventDefault();
11    const q = sQ.trim();
12    const ext = /\.html?$/i.test(window.location.pathname) ? "./Search.html" : "./Search.php";
13    window.location.href = ext + (q ? "?q=" + encodeURIComponent(q) : "");
14  };
15  const goHash = (e, h) => {
16    if (h.charAt(0) !== "#") return;
17    const el = document.querySelector(h);
18    if (!el) return;
19    e.preventDefault();
20    window.scrollTo({
21      top: el.getBoundingClientRect().top + window.pageYOffset - 12,
22      behavior: "smooth"
23    });
24    history.replaceState(null, "", h);
25  };
26  const links = [["All Merch", "./All-Serial-Killer-Merch.php"], ["Serial Killer Magazine", "./All-Issues-of-Serial-Killer-Magazine.php"], ["Serial Killer Trading Cards", "./SERIAL-KILLER-TRADING-CARDS.php"], ["Serial Killer Books", "./All-Serial-Killer-Books.php"], ["Serial Killer Archives", "./Serial-Killer-Archives.php"], ["Contact", "./Contact.php", "Contact Our Team"]];
27  const legal = [["Return Policy", "./ReturnPolicy.php"], ["Privacy Policy", "./PrivacyPolicy.php"], ["Shipping & Terms", "./ShippingAndTerms.php"]];
28  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("style", null, "@media(min-width:1024px){.vfCartBtn[data-footcart]{margin-right:0!important;margin-left:0!important;padding-left:0!important}}.vfCartBtn[data-footcart]{margin-left:0!important;margin-right:0!important;padding-left:0!important}.vfMcInput::placeholder{color:rgba(251,248,241,.45)}.vfFootLegal:hover{color:rgba(251,248,241,.9)!important}.vfFootNav{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;gap:18px}.vfFootDiv{display:none}.vfFootIcons{display:flex;align-items:center;justify-content:center;position:relative;gap:22px;width:100%}@media(min-width:1024px){.vfFootNav{flex-direction:row;flex-wrap:wrap;gap:12px 0}.vfFootDiv{display:block}.vfFootIcons{width:auto}}"), /*#__PURE__*/React.createElement("footer", {
29    className: "bg-[var(--ink-900)] py-[50px]",
30    style: {
31      marginTop: "-2px"
32    }
33  }, /*#__PURE__*/React.createElement("div", {
34    className: "vfShell"
35  }, /*#__PURE__*/React.createElement("div", {
36    className: "flex flex-col gap-8 items-center text-center"
37  }, /*#__PURE__*/React.createElement("span", {
38    className: "inline-flex shrink-0"
39  }, /*#__PURE__*/React.createElement(Wordmark, {
40    size: 28,
41    onDark: true,
42    stacked: true,
43    name: "Serial Killer",
44    sub: "Magazine",
45    href: "./index.php"
46  })), /*#__PURE__*/React.createElement("form", {
47    action: "https://serialkillercalendar.us11.list-manage.com/subscribe/post?u=76b477782f5b34493a5233a69&id=adc617a9b2&f_id=00f1d5e3f0",
48    method: "post",
49    target: "_blank",
50    rel: "noopener",
51    className: "w-full flex flex-col sm:flex-row items-center justify-center gap-3",
52    style: {
53      maxWidth: "640px"
54    }
55  }, /*#__PURE__*/React.createElement("label", {
56    htmlFor: "vfMcEmail",
57    className: "shrink-0",
58    style: {
59      fontFamily: "var(--font-display)",
60      fontSize: "18px",
61      letterSpacing: ".16em",
62      textTransform: "uppercase",
63      color: "var(--bone-100)"
64    }
65  }, "Sign up for our newsletter"), /*#__PURE__*/React.createElement("input", {
66    id: "vfMcEmail",
67    type: "email",
68    name: "EMAIL",
69    required: true,
70    placeholder: "Email address",
71    className: "vfMcInput grow w-full sm:w-auto",
72    style: {
73      border: "1px solid rgba(240,48,28,.85)",
74      background: "rgba(251,248,241,.06)",
75      color: "var(--bone-100)",
76      fontFamily: "var(--font-text)",
77      fontSize: "15px",
78      padding: "11px 14px",
79      outline: "none",
80      minWidth: "200px"
81    }
82  }), /*#__PURE__*/React.createElement("div", {
83    "aria-hidden": "true",
84    style: {
85      position: "absolute",
86      left: "-5000px"
87    }
88  }, /*#__PURE__*/React.createElement("input", {
89    type: "text",
90    name: "b_76b477782f5b34493a5233a69_adc617a9b2",
91    tabIndex: -1,
92    defaultValue: ""
93  })), /*#__PURE__*/React.createElement("button", {
94    type: "submit",
95    name: "subscribe",
96    className: "shrink-0",
97    style: {
98      background: "#a80000",
99      border: "1px solid #a80000",
100      color: "var(--bone-100)",
101      fontFamily: "var(--font-text)",
102      fontSize: "14px",
103      fontWeight: 600,
104      letterSpacing: ".08em",
105      textTransform: "uppercase",
106      padding: "12px 26px",
107      cursor: "pointer"
108    }
109  }, "Subscribe")), /*#__PURE__*/React.createElement("nav", {
110    className: "vfFootNav"
111  }, links.map(([l, h, mobile], i) => /*#__PURE__*/React.createElement(React.Fragment, {
112    key: l
113  }, i ? /*#__PURE__*/React.createElement("span", {
114    "aria-hidden": "true",
115    className: "vfFootDiv self-center h-[16px] w-px mx-6 bg-[rgba(251,247,240,.28)]"
116  }) : null, /*#__PURE__*/React.createElement("a", {
117    href: h,
118    onClick: e => goHash(e, h),
119    className: "vfNavLink"
120  }, mobile ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", {
121    className: "lg:hidden"
122  }, mobile), /*#__PURE__*/React.createElement("span", {
123    className: "hidden lg:inline"
124  }, l)) : l))), /*#__PURE__*/React.createElement("span", {
125    "aria-hidden": "true",
126    className: "vfFootDiv self-center h-[16px] w-px mx-6 bg-[rgba(251,247,240,.28)]"
127  }), /*#__PURE__*/React.createElement("div", {
128    className: "vfFootIcons"
129  }, /*#__PURE__*/React.createElement("form", {
130    onSubmit: submitSearch,
131    className: "flex items-center",
132    style: sOpen ? {
133      flexDirection: "row-reverse",
134      position: "absolute",
135      right: "38px",
136      bottom: "50%",
137      transform: "translateY(50%)",
138      zIndex: 50,
139      border: "2px solid #F0301C",
140      background: "var(--ink-900)",
141      width: "clamp(200px,26vw,340px)",
142      overflow: "hidden",
143      padding: "3px 14px 3px 10px"
144    } : {
145      flexDirection: "row-reverse",
146      flex: "0 0 auto",
147      border: "1px solid transparent",
148      background: "transparent",
149      width: "26px",
150      overflow: "hidden"
151    }
152  }, /*#__PURE__*/React.createElement("button", {
153    type: sOpen ? "submit" : "button",
154    onClick: e => {
155      if (!sOpen) {
156        e.preventDefault();
157        openSearch();
158      }
159    },
160    className: "vfCartBtn",
161    "data-footcart": "1",
162    "aria-label": "Search",
163    title: "Search",
164    style: {
165      flex: "0 0 auto",
166      color: sOpen ? "#F0301C" : undefined
167    }
168  }, /*#__PURE__*/React.createElement("svg", {
169    width: "26",
170    height: "26",
171    viewBox: "0 0 24 24",
172    fill: "none",
173    stroke: "currentColor",
174    strokeWidth: "1.8",
175    strokeLinecap: "round",
176    strokeLinejoin: "round",
177    "aria-hidden": "true"
178  }, /*#__PURE__*/React.createElement("circle", {
179    cx: "10.5",
180    cy: "10.5",
181    r: "7.5"
182  }), /*#__PURE__*/React.createElement("line", {
183    x1: "16",
184    y1: "16",
185    x2: "21",
186    y2: "21"
187  }))), /*#__PURE__*/React.createElement("input", {
188    ref: sInpRef,
189    value: sQ,
190    onChange: e => setSQ(e.target.value),
191    onBlur: () => {
192      if (!sQ.trim()) setSOpen(false);
193    },
194    onKeyDown: e => {
195      if (e.key === "Escape") {
196        setSQ("");
197        setSOpen(false);
198      }
199    },
200    placeholder: "Search the site\u2026",
201    tabIndex: sOpen ? 0 : -1,
202    className: "vfMcInput",
203    style: sOpen ? {
204      flex: "1 1 auto",
205      minWidth: 0,
206      background: "transparent",
207      border: 0,
208      outline: "none",
209      color: "var(--bone-100)",
210      fontFamily: "var(--font-text)",
211      fontSize: "17px",
212      padding: "12px 6px 12px 2px",
213      opacity: 1,
214      transition: "opacity .25s"
215    } : {
216      flex: "0 0 0px",
217      width: 0,
218      minWidth: 0,
219      padding: 0,
220      background: "transparent",
221      border: 0,
222      outline: "none",
223      opacity: 0
224    }
225  })), /*#__PURE__*/React.createElement("a", {
226    href: "https://www.paypal.com/cgi-bin/webscr?cmd=_cart&display=1&business=WUSATYUKKDUYJ",
227    target: "_blank",
228    rel: "noopener",
229    className: "vfCartBtn",
230    "aria-label": "View cart",
231    title: "View cart",
232    style: {
233      marginLeft: "0",
234      marginRight: "0",
235      paddingLeft: "0"
236    },
237    "data-footcart": "1"
238  }, /*#__PURE__*/React.createElement("svg", {
239    width: "26",
240    height: "26",
241    viewBox: "0 0 24 24",
242    fill: "none",
243    stroke: "currentColor",
244    strokeWidth: "1.8",
245    strokeLinecap: "round",
246    strokeLinejoin: "round",
247    "aria-hidden": "true"
248  }, /*#__PURE__*/React.createElement("circle", {
249    cx: "9",
250    cy: "21",
251    r: "1"
252  }), /*#__PURE__*/React.createElement("circle", {
253    cx: "20",
254    cy: "21",
255    r: "1"
256  }), /*#__PURE__*/React.createElement("path", {
257    d: "M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"
258  }))))), /*#__PURE__*/React.createElement("nav", {
259    className: "flex flex-wrap items-center justify-center gap-x-5 gap-y-2",
260    "aria-label": "Policies"
261  }, legal.map(([l, h], i) => /*#__PURE__*/React.createElement(React.Fragment, {
262    key: l
263  }, i ? /*#__PURE__*/React.createElement("span", {
264    "aria-hidden": "true",
265    className: "self-center h-[11px] w-px bg-[rgba(251,247,240,.22)]"
266  }) : null, /*#__PURE__*/React.createElement("a", {
267    href: h,
268    style: {
269      fontFamily: "var(--font-text)",
270      fontSize: "13px",
271      color: "rgba(251,248,241,.5)",
272      textDecoration: "none"
273    },
274    className: "vfFootLegal"
275  }, l))))))));
276}
277window.SiteFooter = SiteFooter;

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.