var htmx = (function () { "use strict"; const Q = { onLoad: null, process: null, on: null, off: null, trigger: null, ajax: null, find: null, findAll: null, closest: null, values: function (e, t) { const n = dn(e, t || "post"); return n.values; }, remove: null, addClass: null, removeClass: null, toggleClass: null, takeClass: null, swap: null, defineExtension: null, removeExtension: null, logAll: null, logNone: null, logger: null, config: { historyEnabled: true, historyCacheSize: 10, refreshOnHistoryMiss: false, defaultSwapStyle: "innerHTML", defaultSwapDelay: 0, defaultSettleDelay: 20, includeIndicatorStyles: true, indicatorClass: "htmx-indicator", requestClass: "htmx-request", addedClass: "htmx-added", settlingClass: "htmx-settling", swappingClass: "htmx-swapping", allowEval: true, allowScriptTags: true, inlineScriptNonce: "", inlineStyleNonce: "", attributesToSettle: ["class", "style", "width", "height"], withCredentials: false, timeout: 0, wsReconnectDelay: "full-jitter", wsBinaryType: "blob", disableSelector: "[hx-disable], [data-hx-disable]", scrollBehavior: "instant", defaultFocusScroll: false, getCacheBusterParam: false, globalViewTransitions: false, methodsThatUseUrlParams: ["get", "delete"], selfRequestsOnly: true, ignoreTitle: false, scrollIntoViewOnBoost: true, triggerSpecsCache: null, disableInheritance: false, responseHandling: [ { code: "204", swap: false }, { code: "[23]..", swap: true }, { code: "[45]..", swap: false, error: true }, ], allowNestedOobSwaps: true, historyRestoreAsHxRequest: true, }, parseInterval: null, location: location, _: null, version: "2.0.6", }; Q.onLoad = j; Q.process = Ft; Q.on = xe; Q.off = be; Q.trigger = ae; Q.ajax = Ln; Q.find = f; Q.findAll = x; Q.closest = g; Q.remove = z; Q.addClass = K; Q.removeClass = G; Q.toggleClass = W; Q.takeClass = Z; Q.swap = $e; Q.defineExtension = zn; Q.removeExtension = $n; Q.logAll = V; Q.logNone = _; Q.parseInterval = d; Q._ = e; const n = { addTriggerHandler: St, bodyContains: se, canAccessLocalStorage: B, findThisElement: Se, filterValues: yn, swap: $e, hasAttribute: s, getAttributeValue: a, getClosestAttributeValue: ne, getClosestMatch: q, getExpressionVars: Tn, getHeaders: mn, getInputValues: dn, getInternalData: oe, getSwapSpecification: bn, getTriggerSpecs: st, getTarget: Ee, makeFragment: P, mergeObjects: le, makeSettleInfo: Sn, oobSwap: He, querySelectorExt: ue, settleImmediately: Yt, shouldCancel: ht, triggerEvent: ae, triggerErrorEvent: fe, withExtensions: jt, }; const de = ["get", "post", "put", "delete", "patch"]; const T = de .map(function (e) { return "[hx-" + e + "], [data-hx-" + e + "]"; }) .join(", "); function d(e) { if (e == undefined) { return undefined; } let t = NaN; if (e.slice(-2) == "ms") { t = parseFloat(e.slice(0, -2)); } else if (e.slice(-1) == "s") { t = parseFloat(e.slice(0, -1)) * 1e3; } else if (e.slice(-1) == "m") { t = parseFloat(e.slice(0, -1)) * 1e3 * 60; } else { t = parseFloat(e); } return isNaN(t) ? undefined : t; } function ee(e, t) { return e instanceof Element && e.getAttribute(t); } function s(e, t) { return ( !!e.hasAttribute && (e.hasAttribute(t) || e.hasAttribute("data-" + t)) ); } function a(e, t) { return ee(e, t) || ee(e, "data-" + t); } function u(e) { const t = e.parentElement; if (!t && e.parentNode instanceof ShadowRoot) return e.parentNode; return t; } function te() { return document; } function y(e, t) { return e.getRootNode ? e.getRootNode({ composed: t }) : te(); } function q(e, t) { while (e && !t(e)) { e = u(e); } return e || null; } function o(e, t, n) { const r = a(t, n); const o = a(t, "hx-disinherit"); var i = a(t, "hx-inherit"); if (e !== t) { if (Q.config.disableInheritance) { if (i && (i === "*" || i.split(" ").indexOf(n) >= 0)) { return r; } else { return null; } } if (o && (o === "*" || o.split(" ").indexOf(n) >= 0)) { return "unset"; } } return r; } function ne(t, n) { let r = null; q(t, function (e) { return !!(r = o(t, ce(e), n)); }); if (r !== "unset") { return r; } } function h(e, t) { return e instanceof Element && e.matches(t); } function A(e) { const t = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i; const n = t.exec(e); if (n) { return n[1].toLowerCase(); } else { return ""; } } function L(e) { const t = new DOMParser(); return t.parseFromString(e, "text/html"); } function N(e, t) { while (t.childNodes.length > 0) { e.append(t.childNodes[0]); } } function r(e) { const t = te().createElement("script"); ie(e.attributes, function (e) { t.setAttribute(e.name, e.value); }); t.textContent = e.textContent; t.async = false; if (Q.config.inlineScriptNonce) { t.nonce = Q.config.inlineScriptNonce; } return t; } function i(e) { return ( e.matches("script") && (e.type === "text/javascript" || e.type === "module" || e.type === "") ); } function I(e) { Array.from(e.querySelectorAll("script")).forEach((e) => { if (i(e)) { const t = r(e); const n = e.parentNode; try { n.insertBefore(t, e); } catch (e) { R(e); } finally { e.remove(); } } }); } function P(e) { const t = e.replace(/]*)?>[\s\S]*?<\/head>/i, ""); const n = A(t); let r; if (n === "html") { r = new DocumentFragment(); const i = L(e); N(r, i.body); r.title = i.title; } else if (n === "body") { r = new DocumentFragment(); const i = L(t); N(r, i.body); r.title = i.title; } else { const i = L( '", ); r = i.querySelector("template").content; r.title = i.title; var o = r.querySelector("title"); if (o && o.parentNode === r) { o.remove(); r.title = o.innerText; } } if (r) { if (Q.config.allowScriptTags) { I(r); } else { r.querySelectorAll("script").forEach((e) => e.remove()); } } return r; } function re(e) { if (e) { e(); } } function t(e, t) { return Object.prototype.toString.call(e) === "[object " + t + "]"; } function D(e) { return typeof e === "function"; } function k(e) { return t(e, "Object"); } function oe(e) { const t = "htmx-internal-data"; let n = e[t]; if (!n) { n = e[t] = {}; } return n; } function M(t) { const n = []; if (t) { for (let e = 0; e < t.length; e++) { n.push(t[e]); } } return n; } function ie(t, n) { if (t) { for (let e = 0; e < t.length; e++) { n(t[e]); } } } function F(e) { const t = e.getBoundingClientRect(); const n = t.top; const r = t.bottom; return n < window.innerHeight && r >= 0; } function se(e) { return e.getRootNode({ composed: true }) === document; } function X(e) { return e.trim().split(/\s+/); } function le(e, t) { for (const n in t) { if (t.hasOwnProperty(n)) { e[n] = t[n]; } } return e; } function v(e) { try { return JSON.parse(e); } catch (e) { R(e); return null; } } function B() { const e = "htmx:sessionStorageTest"; try { sessionStorage.setItem(e, e); sessionStorage.removeItem(e); return true; } catch (e) { return false; } } function U(e) { const t = new URL(e, "http://x"); if (t) { e = t.pathname + t.search; } if (e != "/") { e = e.replace(/\/+$/, ""); } return e; } function e(e) { return On(te().body, function () { return eval(e); }); } function j(t) { const e = Q.on("htmx:load", function (e) { t(e.detail.elt); }); return e; } function V() { Q.logger = function (e, t, n) { if (console) { console.log(t, e, n); } }; } function _() { Q.logger = null; } function f(e, t) { if (typeof e !== "string") { return e.querySelector(t); } else { return f(te(), e); } } function x(e, t) { if (typeof e !== "string") { return e.querySelectorAll(t); } else { return x(te(), e); } } function b() { return window; } function z(e, t) { e = w(e); if (t) { b().setTimeout(function () { z(e); e = null; }, t); } else { u(e).removeChild(e); } } function ce(e) { return e instanceof Element ? e : null; } function $(e) { return e instanceof HTMLElement ? e : null; } function J(e) { return typeof e === "string" ? e : null; } function p(e) { return e instanceof Element || e instanceof Document || e instanceof DocumentFragment ? e : null; } function K(e, t, n) { e = ce(w(e)); if (!e) { return; } if (n) { b().setTimeout(function () { K(e, t); e = null; }, n); } else { e.classList && e.classList.add(t); } } function G(e, t, n) { let r = ce(w(e)); if (!r) { return; } if (n) { b().setTimeout(function () { G(r, t); r = null; }, n); } else { if (r.classList) { r.classList.remove(t); if (r.classList.length === 0) { r.removeAttribute("class"); } } } } function W(e, t) { e = w(e); e.classList.toggle(t); } function Z(e, t) { e = w(e); ie(e.parentElement.children, function (e) { G(e, t); }); K(ce(e), t); } function g(e, t) { e = ce(w(e)); if (e) { return e.closest(t); } return null; } function l(e, t) { return e.substring(0, t.length) === t; } function Y(e, t) { return e.substring(e.length - t.length) === t; } function pe(e) { const t = e.trim(); if (l(t, "<") && Y(t, "/>")) { return t.substring(1, t.length - 2); } else { return t; } } function m(t, r, n) { if (r.indexOf("global ") === 0) { return m(t, r.slice(7), true); } t = w(t); const o = []; { let t = 0; let n = 0; for (let e = 0; e < r.length; e++) { const l = r[e]; if (l === "," && t === 0) { o.push(r.substring(n, e)); n = e + 1; continue; } if (l === "<") { t++; } else if (l === "/" && e < r.length - 1 && r[e + 1] === ">") { t--; } } if (n < r.length) { o.push(r.substring(n)); } } const i = []; const s = []; while (o.length > 0) { const r = pe(o.shift()); let e; if (r.indexOf("closest ") === 0) { e = g(ce(t), pe(r.slice(8))); } else if (r.indexOf("find ") === 0) { e = f(p(t), pe(r.slice(5))); } else if (r === "next" || r === "nextElementSibling") { e = ce(t).nextElementSibling; } else if (r.indexOf("next ") === 0) { e = ge(t, pe(r.slice(5)), !!n); } else if (r === "previous" || r === "previousElementSibling") { e = ce(t).previousElementSibling; } else if (r.indexOf("previous ") === 0) { e = me(t, pe(r.slice(9)), !!n); } else if (r === "document") { e = document; } else if (r === "window") { e = window; } else if (r === "body") { e = document.body; } else if (r === "root") { e = y(t, !!n); } else if (r === "host") { e = t.getRootNode().host; } else { s.push(r); } if (e) { i.push(e); } } if (s.length > 0) { const e = s.join(","); const c = p(y(t, !!n)); i.push(...M(c.querySelectorAll(e))); } return i; } var ge = function (t, e, n) { const r = p(y(t, n)).querySelectorAll(e); for (let e = 0; e < r.length; e++) { const o = r[e]; if (o.compareDocumentPosition(t) === Node.DOCUMENT_POSITION_PRECEDING) { return o; } } }; var me = function (t, e, n) { const r = p(y(t, n)).querySelectorAll(e); for (let e = r.length - 1; e >= 0; e--) { const o = r[e]; if (o.compareDocumentPosition(t) === Node.DOCUMENT_POSITION_FOLLOWING) { return o; } } }; function ue(e, t) { if (typeof e !== "string") { return m(e, t)[0]; } else { return m(te().body, e)[0]; } } function w(e, t) { if (typeof e === "string") { return f(p(t) || document, e); } else { return e; } } function ye(e, t, n, r) { if (D(t)) { return { target: te().body, event: J(e), listener: t, options: n }; } else { return { target: w(e), event: J(t), listener: n, options: r }; } } function xe(t, n, r, o) { Gn(function () { const e = ye(t, n, r, o); e.target.addEventListener(e.event, e.listener, e.options); }); const e = D(n); return e ? n : r; } function be(t, n, r) { Gn(function () { const e = ye(t, n, r); e.target.removeEventListener(e.event, e.listener); }); return D(n) ? n : r; } const ve = te().createElement("output"); function we(t, n) { const e = ne(t, n); if (e) { if (e === "this") { return [Se(t, n)]; } else { const r = m(t, e); const o = /(^|,)(\s*)inherit(\s*)($|,)/.test(e); if (o) { const i = ce( q(t, function (e) { return e !== t && s(ce(e), n); }), ); if (i) { r.push(...we(i, n)); } } if (r.length === 0) { R('The selector "' + e + '" on ' + n + " returned no matches!"); return [ve]; } else { return r; } } } } function Se(e, t) { return ce( q(e, function (e) { return a(ce(e), t) != null; }), ); } function Ee(e) { const t = ne(e, "hx-target"); if (t) { if (t === "this") { return Se(e, "hx-target"); } else { return ue(e, t); } } else { const n = oe(e); if (n.boosted) { return te().body; } else { return e; } } } function Ce(e) { return Q.config.attributesToSettle.includes(e); } function Oe(t, n) { ie(t.attributes, function (e) { if (!n.hasAttribute(e.name) && Ce(e.name)) { t.removeAttribute(e.name); } }); ie(n.attributes, function (e) { if (Ce(e.name)) { t.setAttribute(e.name, e.value); } }); } function Re(t, e) { const n = Jn(e); for (let e = 0; e < n.length; e++) { const r = n[e]; try { if (r.isInlineSwap(t)) { return true; } } catch (e) { R(e); } } return t === "outerHTML"; } function He(e, o, i, t) { t = t || te(); let n = "#" + CSS.escape(ee(o, "id")); let s = "outerHTML"; if (e === "true") { } else if (e.indexOf(":") > 0) { s = e.substring(0, e.indexOf(":")); n = e.substring(e.indexOf(":") + 1); } else { s = e; } o.removeAttribute("hx-swap-oob"); o.removeAttribute("data-hx-swap-oob"); const r = m(t, n, false); if (r.length) { ie(r, function (e) { let t; const n = o.cloneNode(true); t = te().createDocumentFragment(); t.appendChild(n); if (!Re(s, e)) { t = p(n); } const r = { shouldSwap: true, target: e, fragment: t }; if (!ae(e, "htmx:oobBeforeSwap", r)) return; e = r.target; if (r.shouldSwap) { qe(t); _e(s, e, e, t, i); Te(); } ie(i.elts, function (e) { ae(e, "htmx:oobAfterSwap", r); }); }); o.parentNode.removeChild(o); } else { o.parentNode.removeChild(o); fe(te().body, "htmx:oobErrorNoTarget", { content: o }); } return e; } function Te() { const e = f("#--htmx-preserve-pantry--"); if (e) { for (const t of [...e.children]) { const n = f("#" + t.id); n.parentNode.moveBefore(t, n); n.remove(); } e.remove(); } } function qe(e) { ie(x(e, "[hx-preserve], [data-hx-preserve]"), function (e) { const t = a(e, "id"); const n = te().getElementById(t); if (n != null) { if (e.moveBefore) { let e = f("#--htmx-preserve-pantry--"); if (e == null) { te().body.insertAdjacentHTML( "afterend", "
", ); e = f("#--htmx-preserve-pantry--"); } e.moveBefore(n, null); } else { e.parentNode.replaceChild(n, e); } } }); } function Ae(l, e, c) { ie(e.querySelectorAll("[id]"), function (t) { const n = ee(t, "id"); if (n && n.length > 0) { const r = n.replace("'", "\\'"); const o = t.tagName.replace(":", "\\:"); const e = p(l); const i = e && e.querySelector(o + "[id='" + r + "']"); if (i && i !== e) { const s = t.cloneNode(); Oe(t, i); c.tasks.push(function () { Oe(t, s); }); } } }); } function Le(e) { return function () { G(e, Q.config.addedClass); Ft(ce(e)); Ne(p(e)); ae(e, "htmx:load"); }; } function Ne(e) { const t = "[autofocus]"; const n = $(h(e, t) ? e : e.querySelector(t)); if (n != null) { n.focus(); } } function c(e, t, n, r) { Ae(e, n, r); while (n.childNodes.length > 0) { const o = n.firstChild; K(ce(o), Q.config.addedClass); e.insertBefore(o, t); if (o.nodeType !== Node.TEXT_NODE && o.nodeType !== Node.COMMENT_NODE) { r.tasks.push(Le(o)); } } } function Ie(e, t) { let n = 0; while (n < e.length) { t = ((t << 5) - t + e.charCodeAt(n++)) | 0; } return t; } function Pe(t) { let n = 0; for (let e = 0; e < t.attributes.length; e++) { const r = t.attributes[e]; if (r.value) { n = Ie(r.name, n); n = Ie(r.value, n); } } return n; } function De(t) { const n = oe(t); if (n.onHandlers) { for (let e = 0; e < n.onHandlers.length; e++) { const r = n.onHandlers[e]; be(t, r.event, r.listener); } delete n.onHandlers; } } function ke(e) { const t = oe(e); if (t.timeout) { clearTimeout(t.timeout); } if (t.listenerInfos) { ie(t.listenerInfos, function (e) { if (e.on) { be(e.on, e.trigger, e.listener); } }); } De(e); ie(Object.keys(t), function (e) { if (e !== "firstInitCompleted") delete t[e]; }); } function S(e) { ae(e, "htmx:beforeCleanupElement"); ke(e); ie(e.children, function (e) { S(e); }); } function Me(t, e, n) { if (t.tagName === "BODY") { return Ve(t, e, n); } let r; const o = t.previousSibling; const i = u(t); if (!i) { return; } c(i, t, e, n); if (o == null) { r = i.firstChild; } else { r = o.nextSibling; } n.elts = n.elts.filter(function (e) { return e !== t; }); while (r && r !== t) { if (r instanceof Element) { n.elts.push(r); } r = r.nextSibling; } S(t); t.remove(); } function Fe(e, t, n) { return c(e, e.firstChild, t, n); } function Xe(e, t, n) { return c(u(e), e, t, n); } function Be(e, t, n) { return c(e, null, t, n); } function Ue(e, t, n) { return c(u(e), e.nextSibling, t, n); } function je(e) { S(e); const t = u(e); if (t) { return t.removeChild(e); } } function Ve(e, t, n) { const r = e.firstChild; c(e, r, t, n); if (r) { while (r.nextSibling) { S(r.nextSibling); e.removeChild(r.nextSibling); } S(r); e.removeChild(r); } } function _e(t, e, n, r, o) { switch (t) { case "none": return; case "outerHTML": Me(n, r, o); return; case "afterbegin": Fe(n, r, o); return; case "beforebegin": Xe(n, r, o); return; case "beforeend": Be(n, r, o); return; case "afterend": Ue(n, r, o); return; case "delete": je(n); return; default: var i = Jn(e); for (let e = 0; e < i.length; e++) { const s = i[e]; try { const l = s.handleSwap(t, n, r, o); if (l) { if (Array.isArray(l)) { for (let e = 0; e < l.length; e++) { const c = l[e]; if ( c.nodeType !== Node.TEXT_NODE && c.nodeType !== Node.COMMENT_NODE ) { o.tasks.push(Le(c)); } } } return; } } catch (e) { R(e); } } if (t === "innerHTML") { Ve(n, r, o); } else { _e(Q.config.defaultSwapStyle, e, n, r, o); } } } function ze(e, n, r) { var t = x(e, "[hx-swap-oob], [data-hx-swap-oob]"); ie(t, function (e) { if (Q.config.allowNestedOobSwaps || e.parentElement === null) { const t = a(e, "hx-swap-oob"); if (t != null) { He(t, e, n, r); } } else { e.removeAttribute("hx-swap-oob"); e.removeAttribute("data-hx-swap-oob"); } }); return t.length > 0; } function $e(h, d, p, g) { if (!g) { g = {}; } let m = null; let n = null; let e = function () { re(g.beforeSwapCallback); h = w(h); const r = g.contextElement ? y(g.contextElement, false) : te(); const e = document.activeElement; let t = {}; t = { elt: e, start: e ? e.selectionStart : null, end: e ? e.selectionEnd : null, }; const o = Sn(h); if (p.swapStyle === "textContent") { h.textContent = d; } else { let n = P(d); o.title = g.title || n.title; if (g.historyRequest) { n = n.querySelector("[hx-history-elt],[data-hx-history-elt]") || n; } if (g.selectOOB) { const i = g.selectOOB.split(","); for (let t = 0; t < i.length; t++) { const s = i[t].split(":", 2); let e = s[0].trim(); if (e.indexOf("#") === 0) { e = e.substring(1); } const l = s[1] || "true"; const c = n.querySelector("#" + e); if (c) { He(l, c, o, r); } } } ze(n, o, r); ie(x(n, "template"), function (e) { if (e.content && ze(e.content, o, r)) { e.remove(); } }); if (g.select) { const u = te().createDocumentFragment(); ie(n.querySelectorAll(g.select), function (e) { u.appendChild(e); }); n = u; } qe(n); _e(p.swapStyle, g.contextElement, h, n, o); Te(); } if (t.elt && !se(t.elt) && ee(t.elt, "id")) { const f = document.getElementById(ee(t.elt, "id")); const a = { preventScroll: p.focusScroll !== undefined ? !p.focusScroll : !Q.config.defaultFocusScroll, }; if (f) { if (t.start && f.setSelectionRange) { try { f.setSelectionRange(t.start, t.end); } catch (e) {} } f.focus(a); } } h.classList.remove(Q.config.swappingClass); ie(o.elts, function (e) { if (e.classList) { e.classList.add(Q.config.settlingClass); } ae(e, "htmx:afterSwap", g.eventInfo); }); re(g.afterSwapCallback); if (!p.ignoreTitle) { Bn(o.title); } const n = function () { ie(o.tasks, function (e) { e.call(); }); ie(o.elts, function (e) { if (e.classList) { e.classList.remove(Q.config.settlingClass); } ae(e, "htmx:afterSettle", g.eventInfo); }); if (g.anchor) { const e = ce(w("#" + g.anchor)); if (e) { e.scrollIntoView({ block: "start", behavior: "auto" }); } } En(o.elts, p); re(g.afterSettleCallback); re(m); }; if (p.settleDelay > 0) { b().setTimeout(n, p.settleDelay); } else { n(); } }; let t = Q.config.globalViewTransitions; if (p.hasOwnProperty("transition")) { t = p.transition; } const r = g.contextElement || te(); if ( t && ae(r, "htmx:beforeTransition", g.eventInfo) && typeof Promise !== "undefined" && document.startViewTransition ) { const o = new Promise(function (e, t) { m = e; n = t; }); const i = e; e = function () { document.startViewTransition(function () { i(); return o; }); }; } try { if (p?.swapDelay && p.swapDelay > 0) { b().setTimeout(e, p.swapDelay); } else { e(); } } catch (e) { fe(r, "htmx:swapError", g.eventInfo); re(n); throw e; } } function Je(e, t, n) { const r = e.getResponseHeader(t); if (r.indexOf("{") === 0) { const o = v(r); for (const i in o) { if (o.hasOwnProperty(i)) { let e = o[i]; if (k(e)) { n = e.target !== undefined ? e.target : n; } else { e = { value: e }; } ae(n, i, e); } } } else { const s = r.split(","); for (let e = 0; e < s.length; e++) { ae(n, s[e].trim(), []); } } } const Ke = /\s/; const E = /[\s,]/; const Ge = /[_$a-zA-Z]/; const We = /[_$a-zA-Z0-9]/; const Ze = ['"', "'", "/"]; const C = /[^\s]/; const Ye = /[{(]/; const Qe = /[})]/; function et(e) { const t = []; let n = 0; while (n < e.length) { if (Ge.exec(e.charAt(n))) { var r = n; while (We.exec(e.charAt(n + 1))) { n++; } t.push(e.substring(r, n + 1)); } else if (Ze.indexOf(e.charAt(n)) !== -1) { const o = e.charAt(n); var r = n; n++; while (n < e.length && e.charAt(n) !== o) { if (e.charAt(n) === "\\") { n++; } n++; } t.push(e.substring(r, n + 1)); } else { const i = e.charAt(n); t.push(i); } n++; } return t; } function tt(e, t, n) { return ( Ge.exec(e.charAt(0)) && e !== "true" && e !== "false" && e !== "this" && e !== n && t !== "." ); } function nt(r, o, i) { if (o[0] === "[") { o.shift(); let e = 1; let t = " return (function(" + i + "){ return ("; let n = null; while (o.length > 0) { const s = o[0]; if (s === "]") { e--; if (e === 0) { if (n === null) { t = t + "true"; } o.shift(); t += ")})"; try { const l = On( r, function () { return Function(t)(); }, function () { return true; }, ); l.source = t; return l; } catch (e) { fe(te().body, "htmx:syntax:error", { error: e, source: t }); return null; } } } else if (s === "[") { e++; } if (tt(s, n, i)) { t += "((" + i + "." + s + ") ? (" + i + "." + s + ") : (window." + s + "))"; } else { t = t + s; } n = o.shift(); } } } function O(e, t) { let n = ""; while (e.length > 0 && !t.test(e[0])) { n += e.shift(); } return n; } function rt(e) { let t; if (e.length > 0 && Ye.test(e[0])) { e.shift(); t = O(e, Qe).trim(); e.shift(); } else { t = O(e, E); } return t; } const ot = "input, textarea, select"; function it(e, t, n) { const r = []; const o = et(t); do { O(o, C); const l = o.length; const c = O(o, /[,\[\s]/); if (c !== "") { if (c === "every") { const u = { trigger: "every" }; O(o, C); u.pollInterval = d(O(o, /[,\[\s]/)); O(o, C); var i = nt(e, o, "event"); if (i) { u.eventFilter = i; } r.push(u); } else { const f = { trigger: c }; var i = nt(e, o, "event"); if (i) { f.eventFilter = i; } O(o, C); while (o.length > 0 && o[0] !== ",") { const a = o.shift(); if (a === "changed") { f.changed = true; } else if (a === "once") { f.once = true; } else if (a === "consume") { f.consume = true; } else if (a === "delay" && o[0] === ":") { o.shift(); f.delay = d(O(o, E)); } else if (a === "from" && o[0] === ":") { o.shift(); if (Ye.test(o[0])) { var s = rt(o); } else { var s = O(o, E); if ( s === "closest" || s === "find" || s === "next" || s === "previous" ) { o.shift(); const h = rt(o); if (h.length > 0) { s += " " + h; } } } f.from = s; } else if (a === "target" && o[0] === ":") { o.shift(); f.target = rt(o); } else if (a === "throttle" && o[0] === ":") { o.shift(); f.throttle = d(O(o, E)); } else if (a === "queue" && o[0] === ":") { o.shift(); f.queue = O(o, E); } else if (a === "root" && o[0] === ":") { o.shift(); f[a] = rt(o); } else if (a === "threshold" && o[0] === ":") { o.shift(); f[a] = O(o, E); } else { fe(e, "htmx:syntax:error", { token: o.shift() }); } O(o, C); } r.push(f); } } if (o.length === l) { fe(e, "htmx:syntax:error", { token: o.shift() }); } O(o, C); } while (o[0] === "," && o.shift()); if (n) { n[t] = r; } return r; } function st(e) { const t = a(e, "hx-trigger"); let n = []; if (t) { const r = Q.config.triggerSpecsCache; n = (r && r[t]) || it(e, t, r); } if (n.length > 0) { return n; } else if (h(e, "form")) { return [{ trigger: "submit" }]; } else if (h(e, 'input[type="button"], input[type="submit"]')) { return [{ trigger: "click" }]; } else if (h(e, ot)) { return [{ trigger: "change" }]; } else { return [{ trigger: "click" }]; } } function lt(e) { oe(e).cancelled = true; } function ct(e, t, n) { const r = oe(e); r.timeout = b().setTimeout(function () { if (se(e) && r.cancelled !== true) { if (!pt(n, e, Bt("hx:poll:trigger", { triggerSpec: n, target: e }))) { t(e); } ct(e, t, n); } }, n.pollInterval); } function ut(e) { return ( location.hostname === e.hostname && ee(e, "href") && ee(e, "href").indexOf("#") !== 0 ); } function ft(e) { return g(e, Q.config.disableSelector); } function at(t, n, e) { if ( (t instanceof HTMLAnchorElement && ut(t) && (t.target === "" || t.target === "_self")) || (t.tagName === "FORM" && String(ee(t, "method")).toLowerCase() !== "dialog") ) { n.boosted = true; let r, o; if (t.tagName === "A") { r = "get"; o = ee(t, "href"); } else { const i = ee(t, "method"); r = i ? i.toLowerCase() : "get"; o = ee(t, "action"); if (o == null || o === "") { o = location.href; } if (r === "get" && o.includes("?")) { o = o.replace(/\?[^#]+/, ""); } } e.forEach(function (e) { gt( t, function (e, t) { const n = ce(e); if (ft(n)) { S(n); return; } he(r, o, n, t); }, n, e, true, ); }); } } function ht(e, t) { if (e.type === "submit" || e.type === "click") { t = ce(e.target) || t; if (t.tagName === "FORM") { return true; } if (t.form && t.type === "submit") { return true; } t = t.closest("a"); if ( t && t.href && (t.getAttribute("href") === "#" || t.getAttribute("href").indexOf("#") !== 0) ) { return true; } } return false; } function dt(e, t) { return ( oe(e).boosted && e instanceof HTMLAnchorElement && t.type === "click" && (t.ctrlKey || t.metaKey) ); } function pt(e, t, n) { const r = e.eventFilter; if (r) { try { return r.call(t, n) !== true; } catch (e) { const o = r.source; fe(te().body, "htmx:eventFilter:error", { error: e, source: o }); return true; } } return false; } function gt(l, c, e, u, f) { const a = oe(l); let t; if (u.from) { t = m(l, u.from); } else { t = [l]; } if (u.changed) { if (!("lastValue" in a)) { a.lastValue = new WeakMap(); } t.forEach(function (e) { if (!a.lastValue.has(u)) { a.lastValue.set(u, new WeakMap()); } a.lastValue.get(u).set(e, e.value); }); } ie(t, function (i) { const s = function (e) { if (!se(l)) { i.removeEventListener(u.trigger, s); return; } if (dt(l, e)) { return; } if (f || ht(e, l)) { e.preventDefault(); } if (pt(u, l, e)) { return; } const t = oe(e); t.triggerSpec = u; if (t.handledFor == null) { t.handledFor = []; } if (t.handledFor.indexOf(l) < 0) { t.handledFor.push(l); if (u.consume) { e.stopPropagation(); } if (u.target && e.target) { if (!h(ce(e.target), u.target)) { return; } } if (u.once) { if (a.triggeredOnce) { return; } else { a.triggeredOnce = true; } } if (u.changed) { const n = e.target; const r = n.value; const o = a.lastValue.get(u); if (o.has(n) && o.get(n) === r) { return; } o.set(n, r); } if (a.delayed) { clearTimeout(a.delayed); } if (a.throttle) { return; } if (u.throttle > 0) { if (!a.throttle) { ae(l, "htmx:trigger"); c(l, e); a.throttle = b().setTimeout(function () { a.throttle = null; }, u.throttle); } } else if (u.delay > 0) { a.delayed = b().setTimeout(function () { ae(l, "htmx:trigger"); c(l, e); }, u.delay); } else { ae(l, "htmx:trigger"); c(l, e); } } }; if (e.listenerInfos == null) { e.listenerInfos = []; } e.listenerInfos.push({ trigger: u.trigger, listener: s, on: i }); i.addEventListener(u.trigger, s); }); } let mt = false; let yt = null; function xt() { if (!yt) { yt = function () { mt = true; }; window.addEventListener("scroll", yt); window.addEventListener("resize", yt); setInterval(function () { if (mt) { mt = false; ie( te().querySelectorAll( "[hx-trigger*='revealed'],[data-hx-trigger*='revealed']", ), function (e) { bt(e); }, ); } }, 200); } } function bt(e) { if (!s(e, "data-hx-revealed") && F(e)) { e.setAttribute("data-hx-revealed", "true"); const t = oe(e); if (t.initHash) { ae(e, "revealed"); } else { e.addEventListener( "htmx:afterProcessNode", function () { ae(e, "revealed"); }, { once: true }, ); } } } function vt(e, t, n, r) { const o = function () { if (!n.loaded) { n.loaded = true; ae(e, "htmx:trigger"); t(e); } }; if (r > 0) { b().setTimeout(o, r); } else { o(); } } function wt(t, n, e) { let i = false; ie(de, function (r) { if (s(t, "hx-" + r)) { const o = a(t, "hx-" + r); i = true; n.path = o; n.verb = r; e.forEach(function (e) { St(t, e, n, function (e, t) { const n = ce(e); if (ft(n)) { S(n); return; } he(r, o, n, t); }); }); } }); return i; } function St(r, e, t, n) { if (e.trigger === "revealed") { xt(); gt(r, n, t, e); bt(ce(r)); } else if (e.trigger === "intersect") { const o = {}; if (e.root) { o.root = ue(r, e.root); } if (e.threshold) { o.threshold = parseFloat(e.threshold); } const i = new IntersectionObserver(function (t) { for (let e = 0; e < t.length; e++) { const n = t[e]; if (n.isIntersecting) { ae(r, "intersect"); break; } } }, o); i.observe(ce(r)); gt(ce(r), n, t, e); } else if (!t.firstInitCompleted && e.trigger === "load") { if (!pt(e, r, Bt("load", { elt: r }))) { vt(ce(r), n, t, e.delay); } } else if (e.pollInterval > 0) { t.polling = true; ct(ce(r), n, e); } else { gt(r, n, t, e); } } function Et(e) { const t = ce(e); if (!t) { return false; } const n = t.attributes; for (let e = 0; e < n.length; e++) { const r = n[e].name; if ( l(r, "hx-on:") || l(r, "data-hx-on:") || l(r, "hx-on-") || l(r, "data-hx-on-") ) { return true; } } return false; } const Ct = new XPathEvaluator().createExpression( './/*[@*[ starts-with(name(), "hx-on:") or starts-with(name(), "data-hx-on:") or' + ' starts-with(name(), "hx-on-") or starts-with(name(), "data-hx-on-") ]]', ); function Ot(e, t) { if (Et(e)) { t.push(ce(e)); } const n = Ct.evaluate(e); let r = null; while ((r = n.iterateNext())) t.push(ce(r)); } function Rt(e) { const t = []; if (e instanceof DocumentFragment) { for (const n of e.childNodes) { Ot(n, t); } } else { Ot(e, t); } return t; } function Ht(e) { if (e.querySelectorAll) { const n = ", [hx-boost] a, [data-hx-boost] a, a[hx-boost], a[data-hx-boost]"; const r = []; for (const i in Vn) { const s = Vn[i]; if (s.getSelectors) { var t = s.getSelectors(); if (t) { r.push(t); } } } const o = e.querySelectorAll( T + n + ", form, [type='submit']," + " [hx-ext], [data-hx-ext], [hx-trigger], [data-hx-trigger]" + r .flat() .map((e) => ", " + e) .join(""), ); return o; } else { return []; } } function Tt(e) { const t = At(e.target); const n = Nt(e); if (n) { n.lastButtonClicked = t; } } function qt(e) { const t = Nt(e); if (t) { t.lastButtonClicked = null; } } function At(e) { return g(ce(e), "button, input[type='submit']"); } function Lt(e) { return e.form || g(e, "form"); } function Nt(e) { const t = At(e.target); if (!t) { return; } const n = Lt(t); return oe(n); } function It(e) { e.addEventListener("click", Tt); e.addEventListener("focusin", Tt); e.addEventListener("focusout", qt); } function Pt(t, e, n) { const r = oe(t); if (!Array.isArray(r.onHandlers)) { r.onHandlers = []; } let o; const i = function (e) { On(t, function () { if (ft(t)) { return; } if (!o) { o = new Function("event", n); } o.call(t, e); }); }; t.addEventListener(e, i); r.onHandlers.push({ event: e, listener: i }); } function Dt(t) { De(t); for (let e = 0; e < t.attributes.length; e++) { const n = t.attributes[e].name; const r = t.attributes[e].value; if (l(n, "hx-on") || l(n, "data-hx-on")) { const o = n.indexOf("-on") + 3; const i = n.slice(o, o + 1); if (i === "-" || i === ":") { let e = n.slice(o + 1); if (l(e, ":")) { e = "htmx" + e; } else if (l(e, "-")) { e = "htmx:" + e.slice(1); } else if (l(e, "htmx-")) { e = "htmx:" + e.slice(5); } Pt(t, e, r); } } } } function kt(t) { ae(t, "htmx:beforeProcessNode"); const n = oe(t); const e = st(t); const r = wt(t, n, e); if (!r) { if (ne(t, "hx-boost") === "true") { at(t, n, e); } else if (s(t, "hx-trigger")) { e.forEach(function (e) { St(t, e, n, function () {}); }); } } if (t.tagName === "FORM" || (ee(t, "type") === "submit" && s(t, "form"))) { It(t); } n.firstInitCompleted = true; ae(t, "htmx:afterProcessNode"); } function Mt(e) { if (!(e instanceof Element)) { return false; } const t = oe(e); const n = Pe(e); if (t.initHash !== n) { ke(e); t.initHash = n; return true; } return false; } function Ft(e) { e = w(e); if (ft(e)) { S(e); return; } const t = []; if (Mt(e)) { t.push(e); } ie(Ht(e), function (e) { if (ft(e)) { S(e); return; } if (Mt(e)) { t.push(e); } }); ie(Rt(e), Dt); ie(t, kt); } function Xt(e) { return e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(); } function Bt(e, t) { return new CustomEvent(e, { bubbles: true, cancelable: true, composed: true, detail: t, }); } function fe(e, t, n) { ae(e, t, le({ error: t }, n)); } function Ut(e) { return e === "htmx:afterProcessNode"; } function jt(e, t, n) { ie(Jn(e, [], n), function (e) { try { t(e); } catch (e) { R(e); } }); } function R(e) { console.error(e); } function ae(e, t, n) { e = w(e); if (n == null) { n = {}; } n.elt = e; const r = Bt(t, n); if (Q.logger && !Ut(t)) { Q.logger(e, t, n); } if (n.error) { R(n.error); ae(e, "htmx:error", { errorInfo: n }); } let o = e.dispatchEvent(r); const i = Xt(t); if (o && i !== t) { const s = Bt(i, r.detail); o = o && e.dispatchEvent(s); } jt(ce(e), function (e) { o = o && e.onEvent(t, r) !== false && !r.defaultPrevented; }); return o; } let Vt = location.pathname + location.search; function _t(e) { Vt = e; if (B()) { sessionStorage.setItem("htmx-current-path-for-history", e); } } function zt() { const e = te().querySelector("[hx-history-elt],[data-hx-history-elt]"); return e || te().body; } function $t(t, e) { if (!B()) { return; } const n = Kt(e); const r = te().title; const o = window.scrollY; if (Q.config.historyCacheSize <= 0) { sessionStorage.removeItem("htmx-history-cache"); return; } t = U(t); const i = v(sessionStorage.getItem("htmx-history-cache")) || []; for (let e = 0; e < i.length; e++) { if (i[e].url === t) { i.splice(e, 1); break; } } const s = { url: t, content: n, title: r, scroll: o }; ae(te().body, "htmx:historyItemCreated", { item: s, cache: i }); i.push(s); while (i.length > Q.config.historyCacheSize) { i.shift(); } while (i.length > 0) { try { sessionStorage.setItem("htmx-history-cache", JSON.stringify(i)); break; } catch (e) { fe(te().body, "htmx:historyCacheError", { cause: e, cache: i }); i.shift(); } } } function Jt(t) { if (!B()) { return null; } t = U(t); const n = v(sessionStorage.getItem("htmx-history-cache")) || []; for (let e = 0; e < n.length; e++) { if (n[e].url === t) { return n[e]; } } return null; } function Kt(e) { const t = Q.config.requestClass; const n = e.cloneNode(true); ie(x(n, "." + t), function (e) { G(e, t); }); ie(x(n, "[data-disabled-by-htmx]"), function (e) { e.removeAttribute("disabled"); }); return n.innerHTML; } function Gt() { const e = zt(); let t = Vt; if (B()) { t = sessionStorage.getItem("htmx-current-path-for-history"); } t = t || location.pathname + location.search; const n = te().querySelector( '[hx-history="false" i],[data-hx-history="false" i]', ); if (!n) { ae(te().body, "htmx:beforeHistorySave", { path: t, historyElt: e }); $t(t, e); } if (Q.config.historyEnabled) history.replaceState({ htmx: true }, te().title, location.href); } function Wt(e) { if (Q.config.getCacheBusterParam) { e = e.replace(/org\.htmx\.cache-buster=[^&]*&?/, ""); if (Y(e, "&") || Y(e, "?")) { e = e.slice(0, -1); } } if (Q.config.historyEnabled) { history.pushState({ htmx: true }, "", e); } _t(e); } function Zt(e) { if (Q.config.historyEnabled) history.replaceState({ htmx: true }, "", e); _t(e); } function Yt(e) { ie(e, function (e) { e.call(undefined); }); } function Qt(e) { const t = new XMLHttpRequest(); const n = { swapStyle: "innerHTML", swapDelay: 0, settleDelay: 0 }; const r = { path: e, xhr: t, historyElt: zt(), swapSpec: n }; t.open("GET", e, true); if (Q.config.historyRestoreAsHxRequest) { t.setRequestHeader("HX-Request", "true"); } t.setRequestHeader("HX-History-Restore-Request", "true"); t.setRequestHeader("HX-Current-URL", location.href); t.onload = function () { if (this.status >= 200 && this.status < 400) { r.response = this.response; ae(te().body, "htmx:historyCacheMissLoad", r); $e(r.historyElt, r.response, n, { contextElement: r.historyElt, historyRequest: true, }); _t(r.path); ae(te().body, "htmx:historyRestore", { path: e, cacheMiss: true, serverResponse: r.response, }); } else { fe(te().body, "htmx:historyCacheMissLoadError", r); } }; if (ae(te().body, "htmx:historyCacheMiss", r)) { t.send(); } } function en(e) { Gt(); e = e || location.pathname + location.search; const t = Jt(e); if (t) { const n = { swapStyle: "innerHTML", swapDelay: 0, settleDelay: 0, scroll: t.scroll, }; const r = { path: e, item: t, historyElt: zt(), swapSpec: n }; if (ae(te().body, "htmx:historyCacheHit", r)) { $e(r.historyElt, t.content, n, { contextElement: r.historyElt, title: t.title, }); _t(r.path); ae(te().body, "htmx:historyRestore", r); } } else { if (Q.config.refreshOnHistoryMiss) { Q.location.reload(true); } else { Qt(e); } } } function tn(e) { let t = we(e, "hx-indicator"); if (t == null) { t = [e]; } ie(t, function (e) { const t = oe(e); t.requestCount = (t.requestCount || 0) + 1; e.classList.add.call(e.classList, Q.config.requestClass); }); return t; } function nn(e) { let t = we(e, "hx-disabled-elt"); if (t == null) { t = []; } ie(t, function (e) { const t = oe(e); t.requestCount = (t.requestCount || 0) + 1; e.setAttribute("disabled", ""); e.setAttribute("data-disabled-by-htmx", ""); }); return t; } function rn(e, t) { ie(e.concat(t), function (e) { const t = oe(e); t.requestCount = (t.requestCount || 1) - 1; }); ie(e, function (e) { const t = oe(e); if (t.requestCount === 0) { e.classList.remove.call(e.classList, Q.config.requestClass); } }); ie(t, function (e) { const t = oe(e); if (t.requestCount === 0) { e.removeAttribute("disabled"); e.removeAttribute("data-disabled-by-htmx"); } }); } function on(t, n) { for (let e = 0; e < t.length; e++) { const r = t[e]; if (r.isSameNode(n)) { return true; } } return false; } function sn(e) { const t = e; if ( t.name === "" || t.name == null || t.disabled || g(t, "fieldset[disabled]") ) { return false; } if ( t.type === "button" || t.type === "submit" || t.tagName === "image" || t.tagName === "reset" || t.tagName === "file" ) { return false; } if (t.type === "checkbox" || t.type === "radio") { return t.checked; } return true; } function ln(t, e, n) { if (t != null && e != null) { if (Array.isArray(e)) { e.forEach(function (e) { n.append(t, e); }); } else { n.append(t, e); } } } function cn(t, n, r) { if (t != null && n != null) { let e = r.getAll(t); if (Array.isArray(n)) { e = e.filter((e) => n.indexOf(e) < 0); } else { e = e.filter((e) => e !== n); } r.delete(t); ie(e, (e) => r.append(t, e)); } } function un(e) { if (e instanceof HTMLSelectElement && e.multiple) { return M(e.querySelectorAll("option:checked")).map(function (e) { return e.value; }); } if (e instanceof HTMLInputElement && e.files) { return M(e.files); } return e.value; } function fn(t, n, r, e, o) { if (e == null || on(t, e)) { return; } else { t.push(e); } if (sn(e)) { const i = ee(e, "name"); ln(i, un(e), n); if (o) { an(e, r); } } if (e instanceof HTMLFormElement) { ie(e.elements, function (e) { if (t.indexOf(e) >= 0) { cn(e.name, un(e), n); } else { t.push(e); } if (o) { an(e, r); } }); new FormData(e).forEach(function (e, t) { if (e instanceof File && e.name === "") { return; } ln(t, e, n); }); } } function an(e, t) { const n = e; if (n.willValidate) { ae(n, "htmx:validation:validate"); if (!n.checkValidity()) { t.push({ elt: n, message: n.validationMessage, validity: n.validity }); ae(n, "htmx:validation:failed", { message: n.validationMessage, validity: n.validity, }); } } } function hn(n, e) { for (const t of e.keys()) { n.delete(t); } e.forEach(function (e, t) { n.append(t, e); }); return n; } function dn(e, t) { const n = []; const r = new FormData(); const o = new FormData(); const i = []; const s = oe(e); if (s.lastButtonClicked && !se(s.lastButtonClicked)) { s.lastButtonClicked = null; } let l = (e instanceof HTMLFormElement && e.noValidate !== true) || a(e, "hx-validate") === "true"; if (s.lastButtonClicked) { l = l && s.lastButtonClicked.formNoValidate !== true; } if (t !== "get") { fn(n, o, i, Lt(e), l); } fn(n, r, i, e, l); if ( s.lastButtonClicked || e.tagName === "BUTTON" || (e.tagName === "INPUT" && ee(e, "type") === "submit") ) { const u = s.lastButtonClicked || e; const f = ee(u, "name"); ln(f, u.value, o); } const c = we(e, "hx-include"); ie(c, function (e) { fn(n, r, i, ce(e), l); if (!h(e, "form")) { ie(p(e).querySelectorAll(ot), function (e) { fn(n, r, i, e, l); }); } }); hn(r, o); return { errors: i, formData: r, values: kn(r) }; } function pn(e, t, n) { if (e !== "") { e += "&"; } if (String(n) === "[object Object]") { n = JSON.stringify(n); } const r = encodeURIComponent(n); e += encodeURIComponent(t) + "=" + r; return e; } function gn(e) { e = Pn(e); let n = ""; e.forEach(function (e, t) { n = pn(n, t, e); }); return n; } function mn(e, t, n) { const r = { "HX-Request": "true", "HX-Trigger": ee(e, "id"), "HX-Trigger-Name": ee(e, "name"), "HX-Target": a(t, "id"), "HX-Current-URL": location.href, }; Cn(e, "hx-headers", false, r); if (n !== undefined) { r["HX-Prompt"] = n; } if (oe(e).boosted) { r["HX-Boosted"] = "true"; } return r; } function yn(n, e) { const t = ne(e, "hx-params"); if (t) { if (t === "none") { return new FormData(); } else if (t === "*") { return n; } else if (t.indexOf("not ") === 0) { ie(t.slice(4).split(","), function (e) { e = e.trim(); n.delete(e); }); return n; } else { const r = new FormData(); ie(t.split(","), function (t) { t = t.trim(); if (n.has(t)) { n.getAll(t).forEach(function (e) { r.append(t, e); }); } }); return r; } } else { return n; } } function xn(e) { return !!ee(e, "href") && ee(e, "href").indexOf("#") >= 0; } function bn(e, t) { const n = t || ne(e, "hx-swap"); const r = { swapStyle: oe(e).boosted ? "innerHTML" : Q.config.defaultSwapStyle, swapDelay: Q.config.defaultSwapDelay, settleDelay: Q.config.defaultSettleDelay, }; if (Q.config.scrollIntoViewOnBoost && oe(e).boosted && !xn(e)) { r.show = "top"; } if (n) { const s = X(n); if (s.length > 0) { for (let e = 0; e < s.length; e++) { const l = s[e]; if (l.indexOf("swap:") === 0) { r.swapDelay = d(l.slice(5)); } else if (l.indexOf("settle:") === 0) { r.settleDelay = d(l.slice(7)); } else if (l.indexOf("transition:") === 0) { r.transition = l.slice(11) === "true"; } else if (l.indexOf("ignoreTitle:") === 0) { r.ignoreTitle = l.slice(12) === "true"; } else if (l.indexOf("scroll:") === 0) { const c = l.slice(7); var o = c.split(":"); const u = o.pop(); var i = o.length > 0 ? o.join(":") : null; r.scroll = u; r.scrollTarget = i; } else if (l.indexOf("show:") === 0) { const f = l.slice(5); var o = f.split(":"); const a = o.pop(); var i = o.length > 0 ? o.join(":") : null; r.show = a; r.showTarget = i; } else if (l.indexOf("focus-scroll:") === 0) { const h = l.slice("focus-scroll:".length); r.focusScroll = h == "true"; } else if (e == 0) { r.swapStyle = l; } else { R("Unknown modifier in hx-swap: " + l); } } } } return r; } function vn(e) { return ( ne(e, "hx-encoding") === "multipart/form-data" || (h(e, "form") && ee(e, "enctype") === "multipart/form-data") ); } function wn(t, n, r) { let o = null; jt(n, function (e) { if (o == null) { o = e.encodeParameters(t, r, n); } }); if (o != null) { return o; } else { if (vn(n)) { return hn(new FormData(), Pn(r)); } else { return gn(r); } } } function Sn(e) { return { tasks: [], elts: [e] }; } function En(e, t) { const n = e[0]; const r = e[e.length - 1]; if (t.scroll) { var o = null; if (t.scrollTarget) { o = ce(ue(n, t.scrollTarget)); } if (t.scroll === "top" && (n || o)) { o = o || n; o.scrollTop = 0; } if (t.scroll === "bottom" && (r || o)) { o = o || r; o.scrollTop = o.scrollHeight; } if (typeof t.scroll === "number") { b().setTimeout(function () { window.scrollTo(0, t.scroll); }, 0); } } if (t.show) { var o = null; if (t.showTarget) { let e = t.showTarget; if (t.showTarget === "window") { e = "body"; } o = ce(ue(n, e)); } if (t.show === "top" && (n || o)) { o = o || n; o.scrollIntoView({ block: "start", behavior: Q.config.scrollBehavior }); } if (t.show === "bottom" && (r || o)) { o = o || r; o.scrollIntoView({ block: "end", behavior: Q.config.scrollBehavior }); } } } function Cn(r, e, o, i, s) { if (i == null) { i = {}; } if (r == null) { return i; } const l = a(r, e); if (l) { let e = l.trim(); let t = o; if (e === "unset") { return null; } if (e.indexOf("javascript:") === 0) { e = e.slice(11); t = true; } else if (e.indexOf("js:") === 0) { e = e.slice(3); t = true; } if (e.indexOf("{") !== 0) { e = "{" + e + "}"; } let n; if (t) { n = On( r, function () { if (s) { return Function("event", "return (" + e + ")").call(r, s); } else { return Function("return (" + e + ")").call(r); } }, {}, ); } else { n = v(e); } for (const c in n) { if (n.hasOwnProperty(c)) { if (i[c] == null) { i[c] = n[c]; } } } } return Cn(ce(u(r)), e, o, i, s); } function On(e, t, n) { if (Q.config.allowEval) { return t(); } else { fe(e, "htmx:evalDisallowedError"); return n; } } function Rn(e, t, n) { return Cn(e, "hx-vars", true, n, t); } function Hn(e, t, n) { return Cn(e, "hx-vals", false, n, t); } function Tn(e, t) { return le(Rn(e, t), Hn(e, t)); } function qn(t, n, r) { if (r !== null) { try { t.setRequestHeader(n, r); } catch (e) { t.setRequestHeader(n, encodeURIComponent(r)); t.setRequestHeader(n + "-URI-AutoEncoded", "true"); } } } function An(t) { if (t.responseURL) { try { const e = new URL(t.responseURL); return e.pathname + e.search; } catch (e) { fe(te().body, "htmx:badResponseUrl", { url: t.responseURL }); } } } function H(e, t) { return t.test(e.getAllResponseHeaders()); } function Ln(t, n, r) { t = t.toLowerCase(); if (r) { if (r instanceof Element || typeof r === "string") { return he(t, n, null, null, { targetOverride: w(r) || ve, returnPromise: true, }); } else { let e = w(r.target); if ((r.target && !e) || (r.source && !e && !w(r.source))) { e = ve; } return he(t, n, w(r.source), r.event, { handler: r.handler, headers: r.headers, values: r.values, targetOverride: e, swapOverride: r.swap, select: r.select, returnPromise: true, }); } } else { return he(t, n, null, null, { returnPromise: true }); } } function Nn(e) { const t = []; while (e) { t.push(e); e = e.parentElement; } return t; } function In(e, t, n) { const r = new URL( t, location.protocol !== "about:" ? location.href : window.origin, ); const o = location.protocol !== "about:" ? location.origin : window.origin; const i = o === r.origin; if (Q.config.selfRequestsOnly) { if (!i) { return false; } } return ae(e, "htmx:validateUrl", le({ url: r, sameHost: i }, n)); } function Pn(e) { if (e instanceof FormData) return e; const t = new FormData(); for (const n in e) { if (e.hasOwnProperty(n)) { if (e[n] && typeof e[n].forEach === "function") { e[n].forEach(function (e) { t.append(n, e); }); } else if (typeof e[n] === "object" && !(e[n] instanceof Blob)) { t.append(n, JSON.stringify(e[n])); } else { t.append(n, e[n]); } } } return t; } function Dn(r, o, e) { return new Proxy(e, { get: function (t, e) { if (typeof e === "number") return t[e]; if (e === "length") return t.length; if (e === "push") { return function (e) { t.push(e); r.append(o, e); }; } if (typeof t[e] === "function") { return function () { t[e].apply(t, arguments); r.delete(o); t.forEach(function (e) { r.append(o, e); }); }; } if (t[e] && t[e].length === 1) { return t[e][0]; } else { return t[e]; } }, set: function (e, t, n) { e[t] = n; r.delete(o); e.forEach(function (e) { r.append(o, e); }); return true; }, }); } function kn(o) { return new Proxy(o, { get: function (e, t) { if (typeof t === "symbol") { const r = Reflect.get(e, t); if (typeof r === "function") { return function () { return r.apply(o, arguments); }; } else { return r; } } if (t === "toJSON") { return () => Object.fromEntries(o); } if (t in e) { if (typeof e[t] === "function") { return function () { return o[t].apply(o, arguments); }; } } const n = o.getAll(t); if (n.length === 0) { return undefined; } else if (n.length === 1) { return n[0]; } else { return Dn(e, t, n); } }, set: function (t, n, e) { if (typeof n !== "string") { return false; } t.delete(n); if (e && typeof e.forEach === "function") { e.forEach(function (e) { t.append(n, e); }); } else if (typeof e === "object" && !(e instanceof Blob)) { t.append(n, JSON.stringify(e)); } else { t.append(n, e); } return true; }, deleteProperty: function (e, t) { if (typeof t === "string") { e.delete(t); } return true; }, ownKeys: function (e) { return Reflect.ownKeys(Object.fromEntries(e)); }, getOwnPropertyDescriptor: function (e, t) { return Reflect.getOwnPropertyDescriptor(Object.fromEntries(e), t); }, }); } function he(t, n, r, o, i, k) { let s = null; let l = null; i = i != null ? i : {}; if (i.returnPromise && typeof Promise !== "undefined") { var e = new Promise(function (e, t) { s = e; l = t; }); } if (r == null) { r = te().body; } const M = i.handler || jn; const F = i.select || null; if (!se(r)) { re(s); return e; } const c = i.targetOverride || ce(Ee(r)); if (c == null || c == ve) { fe(r, "htmx:targetError", { target: ne(r, "hx-target") }); re(l); return e; } let u = oe(r); const f = u.lastButtonClicked; if (f) { const A = ee(f, "formaction"); if (A != null) { n = A; } const L = ee(f, "formmethod"); if (L != null) { if (de.includes(L.toLowerCase())) { t = L; } else { re(s); return e; } } } const a = ne(r, "hx-confirm"); if (k === undefined) { const K = function (e) { return he(t, n, r, o, i, !!e); }; const G = { target: c, elt: r, path: n, verb: t, triggeringEvent: o, etc: i, issueRequest: K, question: a, }; if (ae(r, "htmx:confirm", G) === false) { re(s); return e; } } let h = r; let d = ne(r, "hx-sync"); let p = null; let X = false; if (d) { const N = d.split(":"); const I = N[0].trim(); if (I === "this") { h = Se(r, "hx-sync"); } else { h = ce(ue(r, I)); } d = (N[1] || "drop").trim(); u = oe(h); if (d === "drop" && u.xhr && u.abortable !== true) { re(s); return e; } else if (d === "abort") { if (u.xhr) { re(s); return e; } else { X = true; } } else if (d === "replace") { ae(h, "htmx:abort"); } else if (d.indexOf("queue") === 0) { const W = d.split(" "); p = (W[1] || "last").trim(); } } if (u.xhr) { if (u.abortable) { ae(h, "htmx:abort"); } else { if (p == null) { if (o) { const P = oe(o); if (P && P.triggerSpec && P.triggerSpec.queue) { p = P.triggerSpec.queue; } } if (p == null) { p = "last"; } } if (u.queuedRequests == null) { u.queuedRequests = []; } if (p === "first" && u.queuedRequests.length === 0) { u.queuedRequests.push(function () { he(t, n, r, o, i); }); } else if (p === "all") { u.queuedRequests.push(function () { he(t, n, r, o, i); }); } else if (p === "last") { u.queuedRequests = []; u.queuedRequests.push(function () { he(t, n, r, o, i); }); } re(s); return e; } } const g = new XMLHttpRequest(); u.xhr = g; u.abortable = X; const m = function () { u.xhr = null; u.abortable = false; if (u.queuedRequests != null && u.queuedRequests.length > 0) { const e = u.queuedRequests.shift(); e(); } }; const B = ne(r, "hx-prompt"); if (B) { var y = prompt(B); if (y === null || !ae(r, "htmx:prompt", { prompt: y, target: c })) { re(s); m(); return e; } } if (a && !k) { if (!confirm(a)) { re(s); m(); return e; } } let x = mn(r, c, y); if (t !== "get" && !vn(r)) { x["Content-Type"] = "application/x-www-form-urlencoded"; } if (i.headers) { x = le(x, i.headers); } const U = dn(r, t); let b = U.errors; const j = U.formData; if (i.values) { hn(j, Pn(i.values)); } const V = Pn(Tn(r, o)); const v = hn(j, V); let w = yn(v, r); if (Q.config.getCacheBusterParam && t === "get") { w.set("org.htmx.cache-buster", ee(c, "id") || "true"); } if (n == null || n === "") { n = location.href; } const S = Cn(r, "hx-request"); const _ = oe(r).boosted; let E = Q.config.methodsThatUseUrlParams.indexOf(t) >= 0; const C = { boosted: _, useUrlParams: E, formData: w, parameters: kn(w), unfilteredFormData: v, unfilteredParameters: kn(v), headers: x, elt: r, target: c, verb: t, errors: b, withCredentials: i.credentials || S.credentials || Q.config.withCredentials, timeout: i.timeout || S.timeout || Q.config.timeout, path: n, triggeringEvent: o, }; if (!ae(r, "htmx:configRequest", C)) { re(s); m(); return e; } n = C.path; t = C.verb; x = C.headers; w = Pn(C.parameters); b = C.errors; E = C.useUrlParams; if (b && b.length > 0) { ae(r, "htmx:validation:halted", C); re(s); m(); return e; } const z = n.split("#"); const $ = z[0]; const O = z[1]; let R = n; if (E) { R = $; const Z = !w.keys().next().done; if (Z) { if (R.indexOf("?") < 0) { R += "?"; } else { R += "&"; } R += gn(w); if (O) { R += "#" + O; } } } if (!In(r, R, C)) { fe(r, "htmx:invalidPath", C); re(l); m(); return e; } g.open(t.toUpperCase(), R, true); g.overrideMimeType("text/html"); g.withCredentials = C.withCredentials; g.timeout = C.timeout; if (S.noHeaders) { } else { for (const D in x) { if (x.hasOwnProperty(D)) { const Y = x[D]; qn(g, D, Y); } } } const H = { xhr: g, target: c, requestConfig: C, etc: i, boosted: _, select: F, pathInfo: { requestPath: n, finalRequestPath: R, responsePath: null, anchor: O, }, }; g.onload = function () { try { const t = Nn(r); H.pathInfo.responsePath = An(g); M(r, H); if (H.keepIndicators !== true) { rn(T, q); } ae(r, "htmx:afterRequest", H); ae(r, "htmx:afterOnLoad", H); if (!se(r)) { let e = null; while (t.length > 0 && e == null) { const n = t.shift(); if (se(n)) { e = n; } } if (e) { ae(e, "htmx:afterRequest", H); ae(e, "htmx:afterOnLoad", H); } } re(s); } catch (e) { fe(r, "htmx:onLoadError", le({ error: e }, H)); throw e; } finally { m(); } }; g.onerror = function () { rn(T, q); fe(r, "htmx:afterRequest", H); fe(r, "htmx:sendError", H); re(l); m(); }; g.onabort = function () { rn(T, q); fe(r, "htmx:afterRequest", H); fe(r, "htmx:sendAbort", H); re(l); m(); }; g.ontimeout = function () { rn(T, q); fe(r, "htmx:afterRequest", H); fe(r, "htmx:timeout", H); re(l); m(); }; if (!ae(r, "htmx:beforeRequest", H)) { re(s); m(); return e; } var T = tn(r); var q = nn(r); ie(["loadstart", "loadend", "progress", "abort"], function (t) { ie([g, g.upload], function (e) { e.addEventListener(t, function (e) { ae(r, "htmx:xhr:" + t, { lengthComputable: e.lengthComputable, loaded: e.loaded, total: e.total, }); }); }); }); ae(r, "htmx:beforeSend", H); const J = E ? null : wn(g, r, w); g.send(J); return e; } function Mn(e, t) { const n = t.xhr; let r = null; let o = null; if (H(n, /HX-Push:/i)) { r = n.getResponseHeader("HX-Push"); o = "push"; } else if (H(n, /HX-Push-Url:/i)) { r = n.getResponseHeader("HX-Push-Url"); o = "push"; } else if (H(n, /HX-Replace-Url:/i)) { r = n.getResponseHeader("HX-Replace-Url"); o = "replace"; } if (r) { if (r === "false") { return {}; } else { return { type: o, path: r }; } } const i = t.pathInfo.finalRequestPath; const s = t.pathInfo.responsePath; const l = ne(e, "hx-push-url"); const c = ne(e, "hx-replace-url"); const u = oe(e).boosted; let f = null; let a = null; if (l) { f = "push"; a = l; } else if (c) { f = "replace"; a = c; } else if (u) { f = "push"; a = s || i; } if (a) { if (a === "false") { return {}; } if (a === "true") { a = s || i; } if (t.pathInfo.anchor && a.indexOf("#") === -1) { a = a + "#" + t.pathInfo.anchor; } return { type: f, path: a }; } else { return {}; } } function Fn(e, t) { var n = new RegExp(e.code); return n.test(t.toString(10)); } function Xn(e) { for (var t = 0; t < Q.config.responseHandling.length; t++) { var n = Q.config.responseHandling[t]; if (Fn(n, e.status)) { return n; } } return { swap: false }; } function Bn(e) { if (e) { const t = f("title"); if (t) { t.textContent = e; } else { window.document.title = e; } } } function Un(e, t) { if (t === "this") { return e; } const n = ce(ue(e, t)); if (n == null) { fe(e, "htmx:targetError", { target: t }); throw new Error(`Invalid re-target ${t}`); } return n; } function jn(t, e) { const n = e.xhr; let r = e.target; const o = e.etc; const i = e.select; if (!ae(t, "htmx:beforeOnLoad", e)) return; if (H(n, /HX-Trigger:/i)) { Je(n, "HX-Trigger", t); } if (H(n, /HX-Location:/i)) { Gt(); let e = n.getResponseHeader("HX-Location"); var s; if (e.indexOf("{") === 0) { s = v(e); e = s.path; delete s.path; } Ln("get", e, s).then(function () { Wt(e); }); return; } const l = H(n, /HX-Refresh:/i) && n.getResponseHeader("HX-Refresh") === "true"; if (H(n, /HX-Redirect:/i)) { e.keepIndicators = true; Q.location.href = n.getResponseHeader("HX-Redirect"); l && Q.location.reload(); return; } if (l) { e.keepIndicators = true; Q.location.reload(); return; } const c = Mn(t, e); const u = Xn(n); const f = u.swap; let a = !!u.error; let h = Q.config.ignoreTitle || u.ignoreTitle; let d = u.select; if (u.target) { e.target = Un(t, u.target); } var p = o.swapOverride; if (p == null && u.swapOverride) { p = u.swapOverride; } if (H(n, /HX-Retarget:/i)) { e.target = Un(t, n.getResponseHeader("HX-Retarget")); } if (H(n, /HX-Reswap:/i)) { p = n.getResponseHeader("HX-Reswap"); } var g = n.response; var m = le( { shouldSwap: f, serverResponse: g, isError: a, ignoreTitle: h, selectOverride: d, swapOverride: p, }, e, ); if (u.event && !ae(r, u.event, m)) return; if (!ae(r, "htmx:beforeSwap", m)) return; r = m.target; g = m.serverResponse; a = m.isError; h = m.ignoreTitle; d = m.selectOverride; p = m.swapOverride; e.target = r; e.failed = a; e.successful = !a; if (m.shouldSwap) { if (n.status === 286) { lt(t); } jt(t, function (e) { g = e.transformResponse(g, n, t); }); if (c.type) { Gt(); } var y = bn(t, p); if (!y.hasOwnProperty("ignoreTitle")) { y.ignoreTitle = h; } r.classList.add(Q.config.swappingClass); if (i) { d = i; } if (H(n, /HX-Reselect:/i)) { d = n.getResponseHeader("HX-Reselect"); } const x = ne(t, "hx-select-oob"); const b = ne(t, "hx-select"); $e(r, g, y, { select: d === "unset" ? null : d || b, selectOOB: x, eventInfo: e, anchor: e.pathInfo.anchor, contextElement: t, afterSwapCallback: function () { if (H(n, /HX-Trigger-After-Swap:/i)) { let e = t; if (!se(t)) { e = te().body; } Je(n, "HX-Trigger-After-Swap", e); } }, afterSettleCallback: function () { if (H(n, /HX-Trigger-After-Settle:/i)) { let e = t; if (!se(t)) { e = te().body; } Je(n, "HX-Trigger-After-Settle", e); } }, beforeSwapCallback: function () { if (c.type) { ae(te().body, "htmx:beforeHistoryUpdate", le({ history: c }, e)); if (c.type === "push") { Wt(c.path); ae(te().body, "htmx:pushedIntoHistory", { path: c.path }); } else { Zt(c.path); ae(te().body, "htmx:replacedInHistory", { path: c.path }); } } }, }); } if (a) { fe( t, "htmx:responseError", le( { error: "Response Status Error Code " + n.status + " from " + e.pathInfo.requestPath, }, e, ), ); } } const Vn = {}; function _n() { return { init: function (e) { return null; }, getSelectors: function () { return null; }, onEvent: function (e, t) { return true; }, transformResponse: function (e, t, n) { return e; }, isInlineSwap: function (e) { return false; }, handleSwap: function (e, t, n, r) { return false; }, encodeParameters: function (e, t, n) { return null; }, }; } function zn(e, t) { if (t.init) { t.init(n); } Vn[e] = le(_n(), t); } function $n(e) { delete Vn[e]; } function Jn(e, n, r) { if (n == undefined) { n = []; } if (e == undefined) { return n; } if (r == undefined) { r = []; } const t = a(e, "hx-ext"); if (t) { ie(t.split(","), function (e) { e = e.replace(/ /g, ""); if (e.slice(0, 7) == "ignore:") { r.push(e.slice(7)); return; } if (r.indexOf(e) < 0) { const t = Vn[e]; if (t && n.indexOf(t) < 0) { n.push(t); } } }); } return Jn(ce(u(e)), n, r); } var Kn = false; te().addEventListener("DOMContentLoaded", function () { Kn = true; }); function Gn(e) { if (Kn || te().readyState === "complete") { e(); } else { te().addEventListener("DOMContentLoaded", e); } } function Wn() { if (Q.config.includeIndicatorStyles !== false) { const e = Q.config.inlineStyleNonce ? ` nonce="${Q.config.inlineStyleNonce}"` : ""; te().head.insertAdjacentHTML( "beforeend", " ." + Q.config.indicatorClass + "{opacity:0} ." + Q.config.requestClass + " ." + Q.config.indicatorClass + "{opacity:1; transition: opacity 200ms ease-in;} ." + Q.config.requestClass + "." + Q.config.indicatorClass + "{opacity:1; transition: opacity 200ms ease-in;} ", ); } } function Zn() { const e = te().querySelector('meta[name="htmx-config"]'); if (e) { return v(e.content); } else { return null; } } function Yn() { const e = Zn(); if (e) { Q.config = le(Q.config, e); } } Gn(function () { Yn(); Wn(); let e = te().body; Ft(e); const t = te().querySelectorAll( "[hx-trigger='restored'],[data-hx-trigger='restored']", ); e.addEventListener("htmx:abort", function (e) { const t = e.target; const n = oe(t); if (n && n.xhr) { n.xhr.abort(); } }); const n = window.onpopstate ? window.onpopstate.bind(window) : null; window.onpopstate = function (e) { if (e.state && e.state.htmx) { en(); ie(t, function (e) { ae(e, "htmx:restored", { document: te(), triggerEvent: ae }); }); } else { if (n) { n(e); } } }; b().setTimeout(function () { ae(e, "htmx:load", {}); e = null; }, 0); }); return Q; })();