(function (e, t) { if (typeof define === "function" && define.amd) { define([], t) } else if (typeof module === "object" && module.exports) { module.exports = t() } else { e.htmx = e.htmx || t() } })(typeof self !== "undefined" ? self : this, function () { return function () { "use strict"; var Y = { onLoad: t, process: Pt, on: Z, off: K, trigger: fe, ajax: wr, find: E, findAll: f, closest: v, values: function (e, t) { var r = nr(e, t || "post"); return r.values }, remove: U, addClass: B, removeClass: n, toggleClass: V, takeClass: j, defineExtension: qr, removeExtension: Hr, logAll: X, logNone: F, 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: "", attributesToSettle: ["class", "style", "width", "height"], withCredentials: false, timeout: 0, wsReconnectDelay: "full-jitter", wsBinaryType: "blob", disableSelector: "[hx-disable], [data-hx-disable]", useTemplateFragments: false, scrollBehavior: "smooth", defaultFocusScroll: false, getCacheBusterParam: false, globalViewTransitions: false, methodsThatUseUrlParams: ["get"], selfRequestsOnly: false }, parseInterval: d, _: e, createEventSource: function (e) { return new EventSource(e, { withCredentials: true }) }, createWebSocket: function (e) { var t = new WebSocket(e, []); t.binaryType = Y.config.wsBinaryType; return t }, version: "1.9.6" }; var r = { addTriggerHandler: St, bodyContains: oe, canAccessLocalStorage: M, findThisElement: de, filterValues: lr, hasAttribute: o, getAttributeValue: ee, getClosestAttributeValue: re, getClosestMatch: c, getExpressionVars: xr, getHeaders: sr, getInputValues: nr, getInternalData: ie, getSwapSpecification: fr, getTriggerSpecs: Ze, getTarget: ge, makeFragment: l, mergeObjects: se, makeSettleInfo: T, oobSwap: ye, querySelectorExt: le, selectAndSwap: Fe, settleImmediately: Wt, shouldCancel: tt, triggerEvent: fe, triggerErrorEvent: ue, withExtensions: C }; var b = ["get", "post", "put", "delete", "patch"]; var w = b.map(function (e) { return "[hx-" + e + "], [data-hx-" + e + "]" }).join(", "); function d(e) { if (e == undefined) { return undefined } if (e.slice(-2) == "ms") { return parseFloat(e.slice(0, -2)) || undefined } if (e.slice(-1) == "s") { return parseFloat(e.slice(0, -1)) * 1e3 || undefined } if (e.slice(-1) == "m") { return parseFloat(e.slice(0, -1)) * 1e3 * 60 || undefined } return parseFloat(e) || undefined } function Q(e, t) { return e.getAttribute && e.getAttribute(t) } function o(e, t) { return e.hasAttribute && (e.hasAttribute(t) || e.hasAttribute("data-" + t)) } function ee(e, t) { return Q(e, t) || Q(e, "data-" + t) } function u(e) { return e.parentElement } function te() { return document } function c(e, t) { while (e && !t(e)) { e = u(e) } return e ? e : null } function O(e, t, r) { var n = ee(t, r); var i = ee(t, "hx-disinherit"); if (e !== t && i && (i === "*" || i.split(" ").indexOf(r) >= 0)) { return "unset" } else { return n } } function re(t, r) { var n = null; c(t, function (e) { return n = O(t, e, r) }); if (n !== "unset") { return n } } function h(e, t) { var r = e.matches || e.matchesSelector || e.msMatchesSelector || e.mozMatchesSelector || e.webkitMatchesSelector || e.oMatchesSelector; return r && r.call(e, t) } function q(e) { var t = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i; var r = t.exec(e); if (r) { return r[1].toLowerCase() } else { return "" } } function i(e, t) { var r = new DOMParser; var n = r.parseFromString(e, "text/html"); var i = n.body; while (t > 0) { t--; i = i.firstChild } if (i == null) { i = te().createDocumentFragment() } return i } function H(e) { return e.match(/
" + e + "", 0); return r.querySelector("template").content } else { var n = q(e); switch (n) { case "thead": case "tbody": case "tfoot": case "colgroup": case "caption": return i("
" + e + "
", 1); case "col": return i("
" + e + "
", 2); case "tr": return i("
" + e + "
", 2); case "td": case "th": return i("
" + e + "
", 3); case "script": case "style": return i("
" + e + "
", 1); default: return i(e, 0) } } } function ne(e) { if (e) { e() } } function L(e, t) { return Object.prototype.toString.call(e) === "[object " + t + "]" } function A(e) { return L(e, "Function") } function N(e) { return L(e, "Object") } function ie(e) { var t = "htmx-internal-data"; var r = e[t]; if (!r) { r = e[t] = {} } return r } function I(e) { var t = []; if (e) { for (var r = 0; r < e.length; r++) { t.push(e[r]) } } return t } function ae(e, t) { if (e) { for (var r = 0; r < e.length; r++) { t(e[r]) } } } function P(e) { var t = e.getBoundingClientRect(); var r = t.top; var n = t.bottom; return r < window.innerHeight && n >= 0 } function oe(e) { if (e.getRootNode && e.getRootNode() instanceof window.ShadowRoot) { return te().body.contains(e.getRootNode().host) } else { return te().body.contains(e) } } function k(e) { return e.trim().split(/\s+/) } function se(e, t) { for (var r in t) { if (t.hasOwnProperty(r)) { e[r] = t[r] } } return e } function S(e) { try { return JSON.parse(e) } catch (e) { y(e); return null } } function M() { var e = "htmx:localStorageTest"; try { localStorage.setItem(e, e); localStorage.removeItem(e); return true } catch (e) { return false } } function D(t) { try { var e = new URL(t); if (e) { t = e.pathname + e.search } if (!t.match("^/$")) { t = t.replace(/\/+$/, "") } return t } catch (e) { return t } } function e(e) { return gr(te().body, function () { return eval(e) }) } function t(t) { var e = Y.on("htmx:load", function (e) { t(e.detail.elt) }); return e } function X() { Y.logger = function (e, t, r) { if (console) { console.log(t, e, r) } } } function F() { Y.logger = null } function E(e, t) { if (t) { return e.querySelector(t) } else { return E(te(), e) } } function f(e, t) { if (t) { return e.querySelectorAll(t) } else { return f(te(), e) } } function U(e, t) { e = s(e); if (t) { setTimeout(function () { U(e); e = null }, t) } else { e.parentElement.removeChild(e) } } function B(e, t, r) { e = s(e); if (r) { setTimeout(function () { B(e, t); e = null }, r) } else { e.classList && e.classList.add(t) } } function n(e, t, r) { e = s(e); if (r) { setTimeout(function () { n(e, t); e = null }, r) } else { if (e.classList) { e.classList.remove(t); if (e.classList.length === 0) { e.removeAttribute("class") } } } } function V(e, t) { e = s(e); e.classList.toggle(t) } function j(e, t) { e = s(e); ae(e.parentElement.children, function (e) { n(e, t) }); B(e, t) } function v(e, t) { e = s(e); if (e.closest) { return e.closest(t) } else { do { if (e == null || h(e, t)) { return e } } while (e = e && u(e)); return null } } function g(e, t) { return e.substring(0, t.length) === t } function _(e, t) { return e.substring(e.length - t.length) === t } function z(e) { var t = e.trim(); if (g(t, "<") && _(t, "/>")) { return t.substring(1, t.length - 2) } else { return t } } function W(e, t) { if (t.indexOf("closest ") === 0) { return [v(e, z(t.substr(8)))] } else if (t.indexOf("find ") === 0) { return [E(e, z(t.substr(5)))] } else if (t.indexOf("next ") === 0) { return [$(e, z(t.substr(5)))] } else if (t.indexOf("previous ") === 0) { return [G(e, z(t.substr(9)))] } else if (t === "document") { return [document] } else if (t === "window") { return [window] } else if (t === "body") { return [document.body] } else { return te().querySelectorAll(z(t)) } } var $ = function (e, t) { var r = te().querySelectorAll(t); for (var n = 0; n < r.length; n++) { var i = r[n]; if (i.compareDocumentPosition(e) === Node.DOCUMENT_POSITION_PRECEDING) { return i } } }; var G = function (e, t) { var r = te().querySelectorAll(t); for (var n = r.length - 1; n >= 0; n--) { var i = r[n]; if (i.compareDocumentPosition(e) === Node.DOCUMENT_POSITION_FOLLOWING) { return i } } }; function le(e, t) { if (t) { return W(e, t)[0] } else { return W(te().body, e)[0] } } function s(e) { if (L(e, "String")) { return E(e) } else { return e } } function J(e, t, r) { if (A(t)) { return { target: te().body, event: e, listener: t } } else { return { target: s(e), event: t, listener: r } } } function Z(t, r, n) { Nr(function () { var e = J(t, r, n); e.target.addEventListener(e.event, e.listener) }); var e = A(r); return e ? r : n } function K(t, r, n) { Nr(function () { var e = J(t, r, n); e.target.removeEventListener(e.event, e.listener) }); return A(r) ? r : n } var he = te().createElement("output"); function ve(e, t) { var r = re(e, t); if (r) { if (r === "this") { return [de(e, t)] } else { var n = W(e, r); if (n.length === 0) { y('The selector "' + r + '" on ' + t + " returned no matches!"); return [he] } else { return n } } } } function de(e, t) { return c(e, function (e) { return ee(e, t) != null }) } function ge(e) { var t = re(e, "hx-target"); if (t) { if (t === "this") { return de(e, "hx-target") } else { return le(e, t) } } else { var r = ie(e); if (r.boosted) { return te().body } else { return e } } } function me(e) { var t = Y.config.attributesToSettle; for (var r = 0; r < t.length; r++) { if (e === t[r]) { return true } } return false } function pe(t, r) { ae(t.attributes, function (e) { if (!r.hasAttribute(e.name) && me(e.name)) { t.removeAttribute(e.name) } }); ae(r.attributes, function (e) { if (me(e.name)) { t.setAttribute(e.name, e.value) } }) } function xe(e, t) { var r = Lr(t); for (var n = 0; n < r.length; n++) { var i = r[n]; try { if (i.isInlineSwap(e)) { return true } } catch (e) { y(e) } } return e === "outerHTML" } function ye(e, i, a) { var t = "#" + Q(i, "id"); var o = "outerHTML"; if (e === "true") { } else if (e.indexOf(":") > 0) { o = e.substr(0, e.indexOf(":")); t = e.substr(e.indexOf(":") + 1, e.length) } else { o = e } var r = te().querySelectorAll(t); if (r) { ae(r, function (e) { var t; var r = i.cloneNode(true); t = te().createDocumentFragment(); t.appendChild(r); if (!xe(o, e)) { t = r } var n = { shouldSwap: true, target: e, fragment: t }; if (!fe(e, "htmx:oobBeforeSwap", n)) return; e = n.target; if (n["shouldSwap"]) { De(o, e, e, t, a) } ae(a.elts, function (e) { fe(e, "htmx:oobAfterSwap", n) }) }); i.parentNode.removeChild(i) } else { i.parentNode.removeChild(i); ue(te().body, "htmx:oobErrorNoTarget", { content: i }) } return e } function be(e, t, r) { var n = re(e, "hx-select-oob"); if (n) { var i = n.split(","); for (let e = 0; e < i.length; e++) { var a = i[e].split(":", 2); var o = a[0].trim(); if (o.indexOf("#") === 0) { o = o.substring(1) } var s = a[1] || "true"; var l = t.querySelector("#" + o); if (l) { ye(s, l, r) } } } ae(f(t, "[hx-swap-oob], [data-hx-swap-oob]"), function (e) { var t = ee(e, "hx-swap-oob"); if (t != null) { ye(t, e, r) } }) } function we(e) { ae(f(e, "[hx-preserve], [data-hx-preserve]"), function (e) { var t = ee(e, "id"); var r = te().getElementById(t); if (r != null) { e.parentNode.replaceChild(r, e) } }) } function Se(o, e, s) { ae(e.querySelectorAll("[id]"), function (e) { var t = Q(e, "id"); if (t && t.length > 0) { var r = t.replace("'", "\\'"); var n = e.tagName.replace(":", "\\:"); var i = o.querySelector(n + "[id='" + r + "']"); if (i && i !== o) { var a = e.cloneNode(); pe(e, i); s.tasks.push(function () { pe(e, a) }) } } }) } function Ee(e) { return function () { n(e, Y.config.addedClass); Pt(e); Ct(e); Ce(e); fe(e, "htmx:load") } } function Ce(e) { var t = "[autofocus]"; var r = h(e, t) ? e : e.querySelector(t); if (r != null) { r.focus() } } function a(e, t, r, n) { Se(e, r, n); while (r.childNodes.length > 0) { var i = r.firstChild; B(i, Y.config.addedClass); e.insertBefore(i, t); if (i.nodeType !== Node.TEXT_NODE && i.nodeType !== Node.COMMENT_NODE) { n.tasks.push(Ee(i)) } } } function Te(e, t) { var r = 0; while (r < e.length) { t = (t << 5) - t + e.charCodeAt(r++) | 0 } return t } function Re(e) { var t = 0; if (e.attributes) { for (var r = 0; r < e.attributes.length; r++) { var n = e.attributes[r]; if (n.value) { t = Te(n.name, t); t = Te(n.value, t) } } } return t } function Oe(t) { var r = ie(t); if (r.onHandlers) { for (let e = 0; e < r.onHandlers.length; e++) { const n = r.onHandlers[e]; t.removeEventListener(n.event, n.listener) } delete r.onHandlers } } function qe(e) { var t = ie(e); if (t.timeout) { clearTimeout(t.timeout) } if (t.webSocket) { t.webSocket.close() } if (t.sseEventSource) { t.sseEventSource.close() } if (t.listenerInfos) { ae(t.listenerInfos, function (e) { if (e.on) { e.on.removeEventListener(e.trigger, e.listener) } }) } if (t.initHash) { t.initHash = null } Oe(e) } function m(e) { fe(e, "htmx:beforeCleanupElement"); qe(e); if (e.children) { ae(e.children, function (e) { m(e) }) } } function He(t, e, r) { if (t.tagName === "BODY") { return ke(t, e, r) } else { var n; var i = t.previousSibling; a(u(t), t, e, r); if (i == null) { n = u(t).firstChild } else { n = i.nextSibling } ie(t).replacedWith = n; r.elts = r.elts.filter(function (e) { return e != t }); while (n && n !== t) { if (n.nodeType === Node.ELEMENT_NODE) { r.elts.push(n) } n = n.nextElementSibling } m(t); u(t).removeChild(t) } } function Le(e, t, r) { return a(e, e.firstChild, t, r) } function Ae(e, t, r) { return a(u(e), e, t, r) } function Ne(e, t, r) { return a(e, null, t, r) } function Ie(e, t, r) { return a(u(e), e.nextSibling, t, r) } function Pe(e, t, r) { m(e); return u(e).removeChild(e) } function ke(e, t, r) { var n = e.firstChild; a(e, n, t, r); if (n) { while (n.nextSibling) { m(n.nextSibling); e.removeChild(n.nextSibling) } m(n); e.removeChild(n) } } function Me(e, t, r) { var n = r || re(e, "hx-select"); if (n) { var i = te().createDocumentFragment(); ae(t.querySelectorAll(n), function (e) { i.appendChild(e) }); t = i } return t } function De(e, t, r, n, i) { switch (e) { case "none": return; case "outerHTML": He(r, n, i); return; case "afterbegin": Le(r, n, i); return; case "beforebegin": Ae(r, n, i); return; case "beforeend": Ne(r, n, i); return; case "afterend": Ie(r, n, i); return; case "delete": Pe(r, n, i); return; default: var a = Lr(t); for (var o = 0; o < a.length; o++) { var s = a[o]; try { var l = s.handleSwap(e, r, n, i); if (l) { if (typeof l.length !== "undefined") { for (var u = 0; u < l.length; u++) { var f = l[u]; if (f.nodeType !== Node.TEXT_NODE && f.nodeType !== Node.COMMENT_NODE) { i.tasks.push(Ee(f)) } } } return } } catch (e) { y(e) } } if (e === "innerHTML") { ke(r, n, i) } else { De(Y.config.defaultSwapStyle, t, r, n, i) } } } function Xe(e) { if (e.indexOf(" -1) { var t = e.replace(/