")) { return t.substring(1, t.length - 2) } else { return t } } function p(e, t, n) { e = y(e); if (t.indexOf("closest ") === 0) { return [g(ue(e), ge(t.substr(8)))] } else if (t.indexOf("find ") === 0) { return [r(f(e), ge(t.substr(5)))] } else if (t === "next") { return [ue(e).nextElementSibling] } else if (t.indexOf("next ") === 0) { return [pe(e, ge(t.substr(5)), !!n)] } else if (t === "previous") { return [ue(e).previousElementSibling] } else if (t.indexOf("previous ") === 0) { return [me(e, ge(t.substr(9)), !!n)] } else if (t === "document") { return [document] } else if (t === "window") { return [window] } else if (t === "body") { return [document.body] } else if (t === "root") { return [m(e, !!n)] } else if (t === "host") { return [e.getRootNode().host] } else if (t.indexOf("global ") === 0) { return p(e, t.slice(7), true) } else { return M(f(m(e, !!n)).querySelectorAll(ge(t))) } } var pe = function (t, e, n) { const r = f(m(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 = f(m(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 ae(e, t) { if (typeof e !== "string") { return p(e, t)[0] } else { return p(ne().body, e)[0] } } function y(e, t) { if (typeof e === "string") { return r(f(t) || document, e) } else { return e } } function xe(e, t, n, r) { if (k(t)) { return { target: ne().body, event: J(e), listener: t, options: n } } else { return { target: y(e), event: J(t), listener: n, options: r } } } function ye(t, n, r, o) { Vn(function () { const e = xe(t, n, r, o); e.target.addEventListener(e.event, e.listener, e.options) }); const e = k(n); return e ? n : r } function be(t, n, r) { Vn(function () { const e = xe(t, n, r); e.target.removeEventListener(e.event, e.listener) }); return k(n) ? n : r } const ve = ne().createElement("output"); function we(e, t) { const n = re(e, t); if (n) { if (n === "this") { return [Se(e, t)] } else { const r = p(e, n); if (r.length === 0) { C('The selector "' + n + '" on ' + t + " returned no matches!"); return [ve] } else { return r } } } } function Se(e, t) { return ue(i(e, function (e) { return te(ue(e), t) != null })) } function Ee(e) { const t = re(e, "hx-target"); if (t) { if (t === "this") { return Se(e, "hx-target") } else { return ae(e, t) } } else { const n = ie(e); if (n.boosted) { return ne().body } else { return e } } } function Ce(t) { const n = Q.config.attributesToSettle; for (let e = 0; e < n.length; e++) { if (t === n[e]) { return true } } return false } function Oe(t, n) { se(t.attributes, function (e) { if (!n.hasAttribute(e.name) && Ce(e.name)) { t.removeAttribute(e.name) } }); se(n.attributes, function (e) { if (Ce(e.name)) { t.setAttribute(e.name, e.value) } }) } function Re(t, e) { const n = Un(e); for (let e = 0; e < n.length; e++) { const r = n[e]; try { if (r.isInlineSwap(t)) { return true } } catch (e) { C(e) } } return t === "outerHTML" } function He(e, o, i, t) { t = t || ne(); let n = "#" + ee(o, "id"); let s = "outerHTML"; if (e === "true") { } else if (e.indexOf(":") > 0) { s = e.substr(0, e.indexOf(":")); n = e.substr(e.indexOf(":") + 1, e.length) } else { s = e } o.removeAttribute("hx-swap-oob"); o.removeAttribute("data-hx-swap-oob"); const r = p(t, n, false); if (r) { se(r, function (e) { let t; const n = o.cloneNode(true); t = ne().createDocumentFragment(); t.appendChild(n); if (!Re(s, e)) { t = f(n) } const r = { shouldSwap: true, target: e, fragment: t }; if (!de(e, "htmx:oobBeforeSwap", r)) return; e = r.target; if (r.shouldSwap) { qe(t); _e(s, e, e, t, i); Te() } se(i.elts, function (e) { de(e, "htmx:oobAfterSwap", r) }) }); o.parentNode.removeChild(o) } else { o.parentNode.removeChild(o); fe(ne().body, "htmx:oobErrorNoTarget", { content: o }) } return e } function Te() { const e = r("#--htmx-preserve-pantry--"); if (e) { for (const t of [...e.children]) { const n = r("#" + t.id); n.parentNode.moveBefore(t, n); n.remove() } e.remove() } } function qe(e) { se(x(e, "[hx-preserve], [data-hx-preserve]"), function (e) { const t = te(e, "id"); const n = ne().getElementById(t); if (n != null) { if (e.moveBefore) { let e = r("#--htmx-preserve-pantry--"); if (e == null) { ne().body.insertAdjacentHTML("afterend", "
"); e = r("#--htmx-preserve-pantry--") } e.moveBefore(n, null) } else { e.parentNode.replaceChild(n, e) } } }) } function Le(l, e, c) { se(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 = f(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 Ne(e) { return function () { G(e, Q.config.addedClass); kt(ue(e)); Ae(f(e)); de(e, "htmx:load") } } function Ae(e) { const t = "[autofocus]"; const n = $(d(e, t) ? e : e.querySelector(t)); if (n != null) { n.focus() } } function u(e, t, n, r) { Le(e, n, r); while (n.childNodes.length > 0) { const o = n.firstChild; K(ue(o), Q.config.addedClass); e.insertBefore(o, t); if (o.nodeType !== Node.TEXT_NODE && o.nodeType !== Node.COMMENT_NODE) { r.tasks.push(Ne(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; if (t.attributes) { 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 ke(t) { const n = ie(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 De(e) { const t = ie(e); if (t.timeout) { clearTimeout(t.timeout) } if (t.listenerInfos) { se(t.listenerInfos, function (e) { if (e.on) { be(e.on, e.trigger, e.listener) } }) } ke(e); se(Object.keys(t), function (e) { delete t[e] }) } function a(e) { de(e, "htmx:beforeCleanupElement"); De(e); if (e.children) { se(e.children, function (e) { a(e) }) } } function Me(t, e, n) { if (t instanceof Element && t.tagName === "BODY") { return Ve(t, e, n) } let r; const o = t.previousSibling; const i = c(t); if (!i) { return } u(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 } a(t); if (t instanceof Element) { t.remove() } else { t.parentNode.removeChild(t) } } function Xe(e, t, n) { return u(e, e.firstChild, t, n) } function Fe(e, t, n) { return u(c(e), e, t, n) } function Be(e, t, n) { return u(e, null, t, n) } function Ue(e, t, n) { return u(c(e), e.nextSibling, t, n) } function je(e) { a(e); const t = c(e); if (t) { return t.removeChild(e) } } function Ve(e, t, n) { const r = e.firstChild; u(e, r, t, n); if (r) { while (r.nextSibling) { a(r.nextSibling); e.removeChild(r.nextSibling) } a(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": Xe(n, r, o); return; case "beforebegin": Fe(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 = Un(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(Ne(c)) } } } return } } catch (e) { C(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]"); se(t, function (e) { if (Q.config.allowNestedOobSwaps || e.parentElement === null) { const t = te(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(e, t, r, o) { if (!o) { o = {} } e = y(e); const i = o.contextElement ? m(o.contextElement, false) : ne(); const n = document.activeElement; let s = {}; try { s = { elt: n, start: n ? n.selectionStart : null, end: n ? n.selectionEnd : null } } catch (e) { } const l = xn(e); if (r.swapStyle === "textContent") { e.textContent = t } else { let n = P(t); l.title = n.title; if (o.selectOOB) { const u = o.selectOOB.split(","); for (let t = 0; t < u.length; t++) { const a = u[t].split(":", 2); let e = a[0].trim(); if (e.indexOf("#") === 0) { e = e.substring(1) } const f = a[1] || "true"; const d = n.querySelector("#" + e); if (d) { He(f, d, l, i) } } } ze(n, l, i); se(x(n, "template"), function (e) { if (ze(e.content, l, i)) { e.remove() } }); if (o.select) { const h = ne().createDocumentFragment(); se(n.querySelectorAll(o.select), function (e) { h.appendChild(e) }); n = h } qe(n); _e(r.swapStyle, o.contextElement, e, n, l); Te() } if (s.elt && !le(s.elt) && ee(s.elt, "id")) { const g = document.getElementById(ee(s.elt, "id")); const p = { preventScroll: r.focusScroll !== undefined ? !r.focusScroll : !Q.config.defaultFocusScroll }; if (g) { if (s.start && g.setSelectionRange) { try { g.setSelectionRange(s.start, s.end) } catch (e) { } } g.focus(p) } } e.classList.remove(Q.config.swappingClass); se(l.elts, function (e) { if (e.classList) { e.classList.add(Q.config.settlingClass) } de(e, "htmx:afterSwap", o.eventInfo) }); if (o.afterSwapCallback) { o.afterSwapCallback() } if (!r.ignoreTitle) { kn(l.title) } const c = function () { se(l.tasks, function (e) { e.call() }); se(l.elts, function (e) { if (e.classList) { e.classList.remove(Q.config.settlingClass) } de(e, "htmx:afterSettle", o.eventInfo) }); if (o.anchor) { const e = ue(y("#" + o.anchor)); if (e) { e.scrollIntoView({ block: "start", behavior: "auto" }) } } yn(l.elts, r); if (o.afterSettleCallback) { o.afterSettleCallback() } }; if (r.settleDelay > 0) { E().setTimeout(c, r.settleDelay) } else { c() } } function Je(e, t, n) { const r = e.getResponseHeader(t); if (r.indexOf("{") === 0) { const o = S(r); for (const i in o) { if (o.hasOwnProperty(i)) { let e = o[i]; if (D(e)) { n = e.target !== undefined ? e.target : n } else { e = { value: e } } de(n, i, e) } } } else { const s = r.split(","); for (let e = 0; e < s.length; e++) { de(n, s[e].trim(), []) } } } const Ke = /\s/; const b = /[\s,]/; const Ge = /[_$a-zA-Z]/; const We = /[_$a-zA-Z0-9]/; const Ze = ['"', "'", "/"]; const v = /[^\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.substr(r, n - r + 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.substr(r, n - r + 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 = vn(r, function () { return Function(t)() }, function () { return true }); l.source = t; return l } catch (e) { fe(ne().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 w(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 = w(e, Qe).trim(); e.shift() } else { t = w(e, b) } return t } const ot = "input, textarea, select"; function it(e, t, n) { const r = []; const o = et(t); do { w(o, v); const l = o.length; const c = w(o, /[,\[\s]/); if (c !== "") { if (c === "every") { const u = { trigger: "every" }; w(o, v); u.pollInterval = h(w(o, /[,\[\s]/)); w(o, v); var i = nt(e, o, "event"); if (i) { u.eventFilter = i } r.push(u) } else { const a = { trigger: c }; var i = nt(e, o, "event"); if (i) { a.eventFilter = i } w(o, v); while (o.length > 0 && o[0] !== ",") { const f = o.shift(); if (f === "changed") { a.changed = true } else if (f === "once") { a.once = true } else if (f === "consume") { a.consume = true } else if (f === "delay" && o[0] === ":") { o.shift(); a.delay = h(w(o, b)) } else if (f === "from" && o[0] === ":") { o.shift(); if (Ye.test(o[0])) { var s = rt(o) } else { var s = w(o, b); if (s === "closest" || s === "find" || s === "next" || s === "previous") { o.shift(); const d = rt(o); if (d.length > 0) { s += " " + d } } } a.from = s } else if (f === "target" && o[0] === ":") { o.shift(); a.target = rt(o) } else if (f === "throttle" && o[0] === ":") { o.shift(); a.throttle = h(w(o, b)) } else if (f === "queue" && o[0] === ":") { o.shift(); a.queue = w(o, b) } else if (f === "root" && o[0] === ":") { o.shift(); a[f] = rt(o) } else if (f === "threshold" && o[0] === ":") { o.shift(); a[f] = w(o, b) } else { fe(e, "htmx:syntax:error", { token: o.shift() }) } w(o, v) } r.push(a) } } if (o.length === l) { fe(e, "htmx:syntax:error", { token: o.shift() }) } w(o, v) } while (o[0] === "," && o.shift()); if (n) { n[t] = r } return r } function st(e) { const t = te(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 (d(e, "form")) { return [{ trigger: "submit" }] } else if (d(e, 'input[type="button"], input[type="submit"]')) { return [{ trigger: "click" }] } else if (d(e, ot)) { return [{ trigger: "change" }] } else { return [{ trigger: "click" }] } } function lt(e) { ie(e).cancelled = true } function ct(e, t, n) { const r = ie(e); r.timeout = E().setTimeout(function () { if (le(e) && r.cancelled !== true) { if (!gt(n, e, Mt("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 at(e) { return g(e, Q.config.disableSelector) } function ft(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 (r === "get" && o.includes("?")) { o = o.replace(/\?[^#]+/, "") } } e.forEach(function (e) { pt(t, function (e, t) { const n = ue(e); if (at(n)) { a(n); return } he(r, o, n, t) }, n, e, true) }) } } function dt(e, t) { const n = ue(t); if (!n) { return false } if (e.type === "submit" || e.type === "click") { if (n.tagName === "FORM") { return true } if (d(n, 'input[type="submit"], button') && g(n, "form") !== null) { return true } if (n instanceof HTMLAnchorElement && n.href && (n.getAttribute("href") === "#" || n.getAttribute("href").indexOf("#") !== 0)) { return true } } return false } function ht(e, t) { return ie(e).boosted && e instanceof HTMLAnchorElement && t.type === "click" && (t.ctrlKey || t.metaKey) } function gt(e, t, n) { const r = e.eventFilter; if (r) { try { return r.call(t, n) !== true } catch (e) { const o = r.source; fe(ne().body, "htmx:eventFilter:error", { error: e, source: o }); return true } } return false } function pt(l, c, e, u, a) { const f = ie(l); let t; if (u.from) { t = p(l, u.from) } else { t = [l] } if (u.changed) { if (!("lastValue" in f)) { f.lastValue = new WeakMap } t.forEach(function (e) { if (!f.lastValue.has(u)) { f.lastValue.set(u, new WeakMap) } f.lastValue.get(u).set(e, e.value) }) } se(t, function (i) { const s = function (e) { if (!le(l)) { i.removeEventListener(u.trigger, s); return } if (ht(l, e)) { return } if (a || dt(e, l)) { e.preventDefault() } if (gt(u, l, e)) { return } const t = ie(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 (!d(ue(e.target), u.target)) { return } } if (u.once) { if (f.triggeredOnce) { return } else { f.triggeredOnce = true } } if (u.changed) { const n = event.target; const r = n.value; const o = f.lastValue.get(u); if (o.has(n) && o.get(n) === r) { return } o.set(n, r) } if (f.delayed) { clearTimeout(f.delayed) } if (f.throttle) { return } if (u.throttle > 0) { if (!f.throttle) { de(l, "htmx:trigger"); c(l, e); f.throttle = E().setTimeout(function () { f.throttle = null }, u.throttle) } } else if (u.delay > 0) { f.delayed = E().setTimeout(function () { de(l, "htmx:trigger"); c(l, e) }, u.delay) } else { de(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 xt = null; function yt() { if (!xt) { xt = function () { mt = true }; window.addEventListener("scroll", xt); window.addEventListener("resize", xt); setInterval(function () { if (mt) { mt = false; se(ne().querySelectorAll("[hx-trigger*='revealed'],[data-hx-trigger*='revealed']"), function (e) { bt(e) }) } }, 200) } } function bt(e) { if (!s(e, "data-hx-revealed") && X(e)) { e.setAttribute("data-hx-revealed", "true"); const t = ie(e); if (t.initHash) { de(e, "revealed") } else { e.addEventListener("htmx:afterProcessNode", function () { de(e, "revealed") }, { once: true }) } } } function vt(e, t, n, r) { const o = function () { if (!n.loaded) { n.loaded = true; t(e) } }; if (r > 0) { E().setTimeout(o, r) } else { o() } } function wt(t, n, e) { let i = false; se(o, function (r) { if (s(t, "hx-" + r)) { const o = te(t, "hx-" + r); i = true; n.path = o; n.verb = r; e.forEach(function (e) { St(t, e, n, function (e, t) { const n = ue(e); if (g(n, Q.config.disableSelector)) { a(n); return } he(r, o, n, t) }) }) } }); return i } function St(r, e, t, n) { if (e.trigger === "revealed") { yt(); pt(r, n, t, e); bt(ue(r)) } else if (e.trigger === "intersect") { const o = {}; if (e.root) { o.root = ae(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) { de(r, "intersect"); break } } }, o); i.observe(ue(r)); pt(ue(r), n, t, e) } else if (e.trigger === "load") { if (!gt(e, r, Mt("load", { elt: r }))) { vt(ue(r), n, t, e.delay) } } else if (e.pollInterval > 0) { t.polling = true; ct(ue(r), n, e) } else { pt(r, n, t, e) } } function Et(e) { const t = ue(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(ue(e)) } const n = Ct.evaluate(e); let r = null; while (r = n.iterateNext()) t.push(ue(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 Mn) { const s = Mn[i]; if (s.getSelectors) { var t = s.getSelectors(); if (t) { r.push(t) } } } const o = e.querySelectorAll(R + 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 = g(ue(e.target), "button, input[type='submit']"); const n = Lt(e); if (n) { n.lastButtonClicked = t } } function qt(e) { const t = Lt(e); if (t) { t.lastButtonClicked = null } } function Lt(e) { const t = g(ue(e.target), "button, input[type='submit']"); if (!t) { return } const n = y("#" + ee(t, "form"), t.getRootNode()) || g(t, "form"); if (!n) { return } return ie(n) } function Nt(e) { e.addEventListener("click", Tt); e.addEventListener("focusin", Tt); e.addEventListener("focusout", qt) } function At(t, e, n) { const r = ie(t); if (!Array.isArray(r.onHandlers)) { r.onHandlers = [] } let o; const i = function (e) { vn(t, function () { if (at(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 It(t) { ke(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) } At(t, e, r) } } } } function Pt(t) { if (g(t, Q.config.disableSelector)) { a(t); return } const n = ie(t); if (n.initHash !== Pe(t)) { De(t); n.initHash = Pe(t); de(t, "htmx:beforeProcessNode"); const e = st(t); const r = wt(t, n, e); if (!r) { if (re(t, "hx-boost") === "true") { ft(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")) { Nt(t) } de(t, "htmx:afterProcessNode") } } function kt(e) { e = y(e); if (g(e, Q.config.disableSelector)) { a(e); return } Pt(e); se(Ht(e), function (e) { Pt(e) }); se(Rt(e), It) } function Dt(e) { return e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase() } function Mt(e, t) { let n; if (window.CustomEvent && typeof window.CustomEvent === "function") { n = new CustomEvent(e, { bubbles: true, cancelable: true, composed: true, detail: t }) } else { n = ne().createEvent("CustomEvent"); n.initCustomEvent(e, true, true, t) } return n } function fe(e, t, n) { de(e, t, ce({ error: t }, n)) } function Xt(e) { return e === "htmx:afterProcessNode" } function Ft(e, t) { se(Un(e), function (e) { try { t(e) } catch (e) { C(e) } }) } function C(e) { if (console.error) { console.error(e) } else if (console.log) { console.log("ERROR: ", e) } } function de(e, t, n) { e = y(e); if (n == null) { n = {} } n.elt = e; const r = Mt(t, n); if (Q.logger && !Xt(t)) { Q.logger(e, t, n) } if (n.error) { C(n.error); de(e, "htmx:error", { errorInfo: n }) } let o = e.dispatchEvent(r); const i = Dt(t); if (o && i !== t) { const s = Mt(i, r.detail); o = o && e.dispatchEvent(s) } Ft(ue(e), function (e) { o = o && (e.onEvent(t, r) !== false && !r.defaultPrevented) }); return o } let Bt = location.pathname + location.search; function Ut() { const e = ne().querySelector("[hx-history-elt],[data-hx-history-elt]"); return e || ne().body } function jt(t, e) { if (!B()) { return } const n = _t(e); const r = ne().title; const o = window.scrollY; if (Q.config.historyCacheSize <= 0) { localStorage.removeItem("htmx-history-cache"); return } t = U(t); const i = S(localStorage.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 }; de(ne().body, "htmx:historyItemCreated", { item: s, cache: i }); i.push(s); while (i.length > Q.config.historyCacheSize) { i.shift() } while (i.length > 0) { try { localStorage.setItem("htmx-history-cache", JSON.stringify(i)); break } catch (e) { fe(ne().body, "htmx:historyCacheError", { cause: e, cache: i }); i.shift() } } } function Vt(t) { if (!B()) { return null } t = U(t); const n = S(localStorage.getItem("htmx-history-cache")) || []; for (let e = 0; e < n.length; e++) { if (n[e].url === t) { return n[e] } } return null } function _t(e) { const t = Q.config.requestClass; const n = e.cloneNode(true); se(x(n, "." + t), function (e) { G(e, t) }); se(x(n, "[data-disabled-by-htmx]"), function (e) { e.removeAttribute("disabled") }); return n.innerHTML } function zt() { const e = Ut(); const t = Bt || location.pathname + location.search; let n; try { n = ne().querySelector('[hx-history="false" i],[data-hx-history="false" i]') } catch (e) { n = ne().querySelector('[hx-history="false"],[data-hx-history="false"]') } if (!n) { de(ne().body, "htmx:beforeHistorySave", { path: t, historyElt: e }); jt(t, e) } if (Q.config.historyEnabled) history.replaceState({ htmx: true }, ne().title, window.location.href) } function $t(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) } Bt = e } function Jt(e) { if (Q.config.historyEnabled) history.replaceState({ htmx: true }, "", e); Bt = e } function Kt(e) { se(e, function (e) { e.call(undefined) }) } function Gt(o) { const e = new XMLHttpRequest; const i = { path: o, xhr: e }; de(ne().body, "htmx:historyCacheMiss", i); e.open("GET", o, true); e.setRequestHeader("HX-Request", "true"); e.setRequestHeader("HX-History-Restore-Request", "true"); e.setRequestHeader("HX-Current-URL", ne().location.href); e.onload = function () { if (this.status >= 200 && this.status < 400) { de(ne().body, "htmx:historyCacheMissLoad", i); const e = P(this.response); const t = e.querySelector("[hx-history-elt],[data-hx-history-elt]") || e; const n = Ut(); const r = xn(n); kn(e.title); qe(e); Ve(n, t, r); Te(); Kt(r.tasks); Bt = o; de(ne().body, "htmx:historyRestore", { path: o, cacheMiss: true, serverResponse: this.response }) } else { fe(ne().body, "htmx:historyCacheMissLoadError", i) } }; e.send() } function Wt(e) { zt(); e = e || location.pathname + location.search; const t = Vt(e); if (t) { const n = P(t.content); const r = Ut(); const o = xn(r); kn(t.title); qe(n); Ve(r, n, o); Te(); Kt(o.tasks); E().setTimeout(function () { window.scrollTo(0, t.scroll) }, 0); Bt = e; de(ne().body, "htmx:historyRestore", { path: e, item: t }) } else { if (Q.config.refreshOnHistoryMiss) { window.location.reload(true) } else { Gt(e) } } } function Zt(e) { let t = we(e, "hx-indicator"); if (t == null) { t = [e] } se(t, function (e) { const t = ie(e); t.requestCount = (t.requestCount || 0) + 1; e.classList.add.call(e.classList, Q.config.requestClass) }); return t } function Yt(e) { let t = we(e, "hx-disabled-elt"); if (t == null) { t = [] } se(t, function (e) { const t = ie(e); t.requestCount = (t.requestCount || 0) + 1; e.setAttribute("disabled", ""); e.setAttribute("data-disabled-by-htmx", "") }); return t } function Qt(e, t) { se(e.concat(t), function (e) { const t = ie(e); t.requestCount = (t.requestCount || 1) - 1 }); se(e, function (e) { const t = ie(e); if (t.requestCount === 0) { e.classList.remove.call(e.classList, Q.config.requestClass) } }); se(t, function (e) { const t = ie(e); if (t.requestCount === 0) { e.removeAttribute("disabled"); e.removeAttribute("data-disabled-by-htmx") } }) } function en(t, n) { for (let e = 0; e < t.length; e++) { const r = t[e]; if (r.isSameNode(n)) { return true } } return false } function tn(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 nn(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 rn(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); se(e, e => r.append(t, e)) } } function on(t, n, r, o, i) { if (o == null || en(t, o)) { return } else { t.push(o) } if (tn(o)) { const s = ee(o, "name"); let e = o.value; if (o instanceof HTMLSelectElement && o.multiple) { e = M(o.querySelectorAll("option:checked")).map(function (e) { return e.value }) } if (o instanceof HTMLInputElement && o.files) { e = M(o.files) } nn(s, e, n); if (i) { sn(o, r) } } if (o instanceof HTMLFormElement) { se(o.elements, function (e) { if (t.indexOf(e) >= 0) { rn(e.name, e.value, n) } else { t.push(e) } if (i) { sn(e, r) } }); new FormData(o).forEach(function (e, t) { if (e instanceof File && e.name === "") { return } nn(t, e, n) }) } } function sn(e, t) { const n = e; if (n.willValidate) { de(n, "htmx:validation:validate"); if (!n.checkValidity()) { t.push({ elt: n, message: n.validationMessage, validity: n.validity }); de(n, "htmx:validation:failed", { message: n.validationMessage, validity: n.validity }) } } } function ln(n, e) { for (const t of e.keys()) { n.delete(t) } e.forEach(function (e, t) { n.append(t, e) }); return n } function cn(e, t) { const n = []; const r = new FormData; const o = new FormData; const i = []; const s = ie(e); if (s.lastButtonClicked && !le(s.lastButtonClicked)) { s.lastButtonClicked = null } let l = e instanceof HTMLFormElement && e.noValidate !== true || te(e, "hx-validate") === "true"; if (s.lastButtonClicked) { l = l && s.lastButtonClicked.formNoValidate !== true } if (t !== "get") { on(n, o, i, g(e, "form"), l) } on(n, r, i, e, l); if (s.lastButtonClicked || e.tagName === "BUTTON" || e.tagName === "INPUT" && ee(e, "type") === "submit") { const u = s.lastButtonClicked || e; const a = ee(u, "name"); nn(a, u.value, o) } const c = we(e, "hx-include"); se(c, function (e) { on(n, r, i, ue(e), l); if (!d(e, "form")) { se(f(e).querySelectorAll(ot), function (e) { on(n, r, i, e, l) }) } }); ln(r, o); return { errors: i, formData: r, values: Nn(r) } } function un(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 an(e) { e = qn(e); let n = ""; e.forEach(function (e, t) { n = un(n, t, e) }); return n } function fn(e, t, n) { const r = { "HX-Request": "true", "HX-Trigger": ee(e, "id"), "HX-Trigger-Name": ee(e, "name"), "HX-Target": te(t, "id"), "HX-Current-URL": ne().location.href }; bn(e, "hx-headers", false, r); if (n !== undefined) { r["HX-Prompt"] = n } if (ie(e).boosted) { r["HX-Boosted"] = "true" } return r } function dn(n, e) { const t = re(e, "hx-params"); if (t) { if (t === "none") { return new FormData } else if (t === "*") { return n } else if (t.indexOf("not ") === 0) { se(t.substr(4).split(","), function (e) { e = e.trim(); n.delete(e) }); return n } else { const r = new FormData; se(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 hn(e) { return !!ee(e, "href") && ee(e, "href").indexOf("#") >= 0 } function gn(e, t) { const n = t || re(e, "hx-swap"); const r = { swapStyle: ie(e).boosted ? "innerHTML" : Q.config.defaultSwapStyle, swapDelay: Q.config.defaultSwapDelay, settleDelay: Q.config.defaultSettleDelay }; if (Q.config.scrollIntoViewOnBoost && ie(e).boosted && !hn(e)) { r.show = "top" } if (n) { const s = F(n); if (s.length > 0) { for (let e = 0; e < s.length; e++) { const l = s[e]; if (l.indexOf("swap:") === 0) { r.swapDelay = h(l.substr(5)) } else if (l.indexOf("settle:") === 0) { r.settleDelay = h(l.substr(7)) } else if (l.indexOf("transition:") === 0) { r.transition = l.substr(11) === "true" } else if (l.indexOf("ignoreTitle:") === 0) { r.ignoreTitle = l.substr(12) === "true" } else if (l.indexOf("scroll:") === 0) { const c = l.substr(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 a = l.substr(5); var o = a.split(":"); const f = o.pop(); var i = o.length > 0 ? o.join(":") : null; r.show = f; r.showTarget = i } else if (l.indexOf("focus-scroll:") === 0) { const d = l.substr("focus-scroll:".length); r.focusScroll = d == "true" } else if (e == 0) { r.swapStyle = l } else { C("Unknown modifier in hx-swap: " + l) } } } } return r } function pn(e) { return re(e, "hx-encoding") === "multipart/form-data" || d(e, "form") && ee(e, "enctype") === "multipart/form-data" } function mn(t, n, r) { let o = null; Ft(n, function (e) { if (o == null) { o = e.encodeParameters(t, r, n) } }); if (o != null) { return o } else { if (pn(n)) { return ln(new FormData, qn(r)) } else { return an(r) } } } function xn(e) { return { tasks: [], elts: [e] } } function yn(e, t) { const n = e[0]; const r = e[e.length - 1]; if (t.scroll) { var o = null; if (t.scrollTarget) { o = ue(ae(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 (t.show) { var o = null; if (t.showTarget) { let e = t.showTarget; if (t.showTarget === "window") { e = "body" } o = ue(ae(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 bn(r, e, o, i) { if (i == null) { i = {} } if (r == null) { return i } const s = te(r, e); if (s) { let e = s.trim(); let t = o; if (e === "unset") { return null } if (e.indexOf("javascript:") === 0) { e = e.substr(11); t = true } else if (e.indexOf("js:") === 0) { e = e.substr(3); t = true } if (e.indexOf("{") !== 0) { e = "{" + e + "}" } let n; if (t) { n = vn(r, function () { return Function("return (" + e + ")")() }, {}) } else { n = S(e) } for (const l in n) { if (n.hasOwnProperty(l)) { if (i[l] == null) { i[l] = n[l] } } } } return bn(ue(c(r)), e, o, i) } function vn(e, t, n) { if (Q.config.allowEval) { return t() } else { fe(e, "htmx:evalDisallowedError"); return n } } function wn(e, t) { return bn(e, "hx-vars", true, t) } function Sn(e, t) { return bn(e, "hx-vals", false, t) } function En(e) { return ce(wn(e), Sn(e)) } function Cn(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 On(t) { if (t.responseURL && typeof URL !== "undefined") { try { const e = new URL(t.responseURL); return e.pathname + e.search } catch (e) { fe(ne().body, "htmx:badResponseUrl", { url: t.responseURL }) } } } function O(e, t) { return t.test(e.getAllResponseHeaders()) } function Rn(t, n, r) { t = t.toLowerCase(); if (r) { if (r instanceof Element || typeof r === "string") { return he(t, n, null, null, { targetOverride: y(r) || ve, returnPromise: true }) } else { let e = y(r.target); if (r.target && !e || !e && !y(r.source)) { e = ve } return he(t, n, y(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 Hn(e) { const t = []; while (e) { t.push(e); e = e.parentElement } return t } function Tn(e, t, n) { let r; let o; if (typeof URL === "function") { o = new URL(t, document.location.href); const i = document.location.origin; r = i === o.origin } else { o = t; r = l(t, document.location.origin) } if (Q.config.selfRequestsOnly) { if (!r) { return false } } return de(e, "htmx:validateUrl", ce({ url: o, sameHost: r }, n)) } function qn(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 Ln(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 Nn(r) { return new Proxy(r, { get: function (e, t) { if (typeof t === "symbol") { return Reflect.get(e, t) } if (t === "toJSON") { return () => Object.fromEntries(r) } if (t in e) { if (typeof e[t] === "function") { return function () { return r[t].apply(r, arguments) } } else { return e[t] } } const n = r.getAll(t); if (n.length === 0) { return undefined } else if (n.length === 1) { return n[0] } else { return Ln(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, D) { 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 = ne().body } const M = i.handler || Dn; const X = i.select || null; if (!le(r)) { oe(s); return e } const c = i.targetOverride || ue(Ee(r)); if (c == null || c == ve) { fe(r, "htmx:targetError", { target: te(r, "hx-target") }); oe(l); return e } let u = ie(r); const a = u.lastButtonClicked; if (a) { const L = ee(a, "formaction"); if (L != null) { n = L } const N = ee(a, "formmethod"); if (N != null) { if (N.toLowerCase() !== "dialog") { t = N } } } const f = re(r, "hx-confirm"); if (D === 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: f }; if (de(r, "htmx:confirm", G) === false) { oe(s); return e } } let d = r; let h = re(r, "hx-sync"); let g = null; let F = false; if (h) { const A = h.split(":"); const I = A[0].trim(); if (I === "this") { d = Se(r, "hx-sync") } else { d = ue(ae(r, I)) } h = (A[1] || "drop").trim(); u = ie(d); if (h === "drop" && u.xhr && u.abortable !== true) { oe(s); return e } else if (h === "abort") { if (u.xhr) { oe(s); return e } else { F = true } } else if (h === "replace") { de(d, "htmx:abort") } else if (h.indexOf("queue") === 0) { const W = h.split(" "); g = (W[1] || "last").trim() } } if (u.xhr) { if (u.abortable) { de(d, "htmx:abort") } else { if (g == null) { if (o) { const P = ie(o); if (P && P.triggerSpec && P.triggerSpec.queue) { g = P.triggerSpec.queue } } if (g == null) { g = "last" } } if (u.queuedRequests == null) { u.queuedRequests = [] } if (g === "first" && u.queuedRequests.length === 0) { u.queuedRequests.push(function () { he(t, n, r, o, i) }) } else if (g === "all") { u.queuedRequests.push(function () { he(t, n, r, o, i) }) } else if (g === "last") { u.queuedRequests = []; u.queuedRequests.push(function () { he(t, n, r, o, i) }) } oe(s); return e } } const p = new XMLHttpRequest; u.xhr = p; u.abortable = F; 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 = re(r, "hx-prompt"); if (B) { var x = prompt(B); if (x === null || !de(r, "htmx:prompt", { prompt: x, target: c })) { oe(s); m(); return e } } if (f && !D) { if (!confirm(f)) { oe(s); m(); return e } } let y = fn(r, c, x); if (t !== "get" && !pn(r)) { y["Content-Type"] = "application/x-www-form-urlencoded" } if (i.headers) { y = ce(y, i.headers) } const U = cn(r, t); let b = U.errors; const j = U.formData; if (i.values) { ln(j, qn(i.values)) } const V = qn(En(r)); const v = ln(j, V); let w = dn(v, r); if (Q.config.getCacheBusterParam && t === "get") { w.set("org.htmx.cache-buster", ee(c, "id") || "true") } if (n == null || n === "") { n = ne().location.href } const S = bn(r, "hx-request"); const _ = ie(r).boosted; let E = Q.config.methodsThatUseUrlParams.indexOf(t) >= 0; const C = { boosted: _, useUrlParams: E, formData: w, parameters: Nn(w), unfilteredFormData: v, unfilteredParameters: Nn(v), headers: y, 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 (!de(r, "htmx:configRequest", C)) { oe(s); m(); return e } n = C.path; t = C.verb; y = C.headers; w = qn(C.parameters); b = C.errors; E = C.useUrlParams; if (b && b.length > 0) { de(r, "htmx:validation:halted", C); oe(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 += an(w); if (O) { R += "#" + O } } } if (!Tn(r, R, C)) { fe(r, "htmx:invalidPath", C); oe(l); return e } p.open(t.toUpperCase(), R, true); p.overrideMimeType("text/html"); p.withCredentials = C.withCredentials; p.timeout = C.timeout; if (S.noHeaders) { } else { for (const k in y) { if (y.hasOwnProperty(k)) { const Y = y[k]; Cn(p, k, Y) } } } const H = { xhr: p, target: c, requestConfig: C, etc: i, boosted: _, select: X, pathInfo: { requestPath: n, finalRequestPath: R, responsePath: null, anchor: O } }; p.onload = function () { try { const t = Hn(r); H.pathInfo.responsePath = On(p); M(r, H); if (H.keepIndicators !== true) { Qt(T, q) } de(r, "htmx:afterRequest", H); de(r, "htmx:afterOnLoad", H); if (!le(r)) { let e = null; while (t.length > 0 && e == null) { const n = t.shift(); if (le(n)) { e = n } } if (e) { de(e, "htmx:afterRequest", H); de(e, "htmx:afterOnLoad", H) } } oe(s); m() } catch (e) { fe(r, "htmx:onLoadError", ce({ error: e }, H)); throw e } }; p.onerror = function () { Qt(T, q); fe(r, "htmx:afterRequest", H); fe(r, "htmx:sendError", H); oe(l); m() }; p.onabort = function () { Qt(T, q); fe(r, "htmx:afterRequest", H); fe(r, "htmx:sendAbort", H); oe(l); m() }; p.ontimeout = function () { Qt(T, q); fe(r, "htmx:afterRequest", H); fe(r, "htmx:timeout", H); oe(l); m() }; if (!de(r, "htmx:beforeRequest", H)) { oe(s); m(); return e } var T = Zt(r); var q = Yt(r); se(["loadstart", "loadend", "progress", "abort"], function (t) { se([p, p.upload], function (e) { e.addEventListener(t, function (e) { de(r, "htmx:xhr:" + t, { lengthComputable: e.lengthComputable, loaded: e.loaded, total: e.total }) }) }) }); de(r, "htmx:beforeSend", H); const J = E ? null : mn(p, r, w); p.send(J); return e } function An(e, t) { const n = t.xhr; let r = null; let o = null; if (O(n, /HX-Push:/i)) { r = n.getResponseHeader("HX-Push"); o = "push" } else if (O(n, /HX-Push-Url:/i)) { r = n.getResponseHeader("HX-Push-Url"); o = "push" } else if (O(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 = re(e, "hx-push-url"); const c = re(e, "hx-replace-url"); const u = ie(e).boosted; let a = null; let f = null; if (l) { a = "push"; f = l } else if (c) { a = "replace"; f = c } else if (u) { a = "push"; f = s || i } if (f) { if (f === "false") { return {} } if (f === "true") { f = s || i } if (t.pathInfo.anchor && f.indexOf("#") === -1) { f = f + "#" + t.pathInfo.anchor } return { type: a, path: f } } else { return {} } } function In(e, t) { var n = new RegExp(e.code); return n.test(t.toString(10)) } function Pn(e) { for (var t = 0; t < Q.config.responseHandling.length; t++) { var n = Q.config.responseHandling[t]; if (In(n, e.status)) { return n } } return { swap: false } } function kn(e) { if (e) { const t = r("title"); if (t) { t.innerHTML = e } else { window.document.title = e } } } function Dn(o, i) { const s = i.xhr; let l = i.target; const e = i.etc; const c = i.select; if (!de(o, "htmx:beforeOnLoad", i)) return; if (O(s, /HX-Trigger:/i)) { Je(s, "HX-Trigger", o) } if (O(s, /HX-Location:/i)) { zt(); let e = s.getResponseHeader("HX-Location"); var t; if (e.indexOf("{") === 0) { t = S(e); e = t.path; delete t.path } Rn("get", e, t).then(function () { $t(e) }); return } const n = O(s, /HX-Refresh:/i) && s.getResponseHeader("HX-Refresh") === "true"; if (O(s, /HX-Redirect:/i)) { i.keepIndicators = true; location.href = s.getResponseHeader("HX-Redirect"); n && location.reload(); return } if (n) { i.keepIndicators = true; location.reload(); return } if (O(s, /HX-Retarget:/i)) { if (s.getResponseHeader("HX-Retarget") === "this") { i.target = o } else { i.target = ue(ae(o, s.getResponseHeader("HX-Retarget"))) } } const u = An(o, i); const r = Pn(s); const a = r.swap; let f = !!r.error; let d = Q.config.ignoreTitle || r.ignoreTitle; let h = r.select; if (r.target) { i.target = ue(ae(o, r.target)) } var g = e.swapOverride; if (g == null && r.swapOverride) { g = r.swapOverride } if (O(s, /HX-Retarget:/i)) { if (s.getResponseHeader("HX-Retarget") === "this") { i.target = o } else { i.target = ue(ae(o, s.getResponseHeader("HX-Retarget"))) } } if (O(s, /HX-Reswap:/i)) { g = s.getResponseHeader("HX-Reswap") } var p = s.response; var m = ce({ shouldSwap: a, serverResponse: p, isError: f, ignoreTitle: d, selectOverride: h, swapOverride: g }, i); if (r.event && !de(l, r.event, m)) return; if (!de(l, "htmx:beforeSwap", m)) return; l = m.target; p = m.serverResponse; f = m.isError; d = m.ignoreTitle; h = m.selectOverride; g = m.swapOverride; i.target = l; i.failed = f; i.successful = !f; if (m.shouldSwap) { if (s.status === 286) { lt(o) } Ft(o, function (e) { p = e.transformResponse(p, s, o) }); if (u.type) { zt() } var x = gn(o, g); if (!x.hasOwnProperty("ignoreTitle")) { x.ignoreTitle = d } l.classList.add(Q.config.swappingClass); let n = null; let r = null; if (c) { h = c } if (O(s, /HX-Reselect:/i)) { h = s.getResponseHeader("HX-Reselect") } const y = re(o, "hx-select-oob"); const b = re(o, "hx-select"); let e = function () { try { if (u.type) { de(ne().body, "htmx:beforeHistoryUpdate", ce({ history: u }, i)); if (u.type === "push") { $t(u.path); de(ne().body, "htmx:pushedIntoHistory", { path: u.path }) } else { Jt(u.path); de(ne().body, "htmx:replacedInHistory", { path: u.path }) } } $e(l, p, x, { select: h || b, selectOOB: y, eventInfo: i, anchor: i.pathInfo.anchor, contextElement: o, afterSwapCallback: function () { if (O(s, /HX-Trigger-After-Swap:/i)) { let e = o; if (!le(o)) { e = ne().body } Je(s, "HX-Trigger-After-Swap", e) } }, afterSettleCallback: function () { if (O(s, /HX-Trigger-After-Settle:/i)) { let e = o; if (!le(o)) { e = ne().body } Je(s, "HX-Trigger-After-Settle", e) } oe(n) } }) } catch (e) { fe(o, "htmx:swapError", i); oe(r); throw e } }; let t = Q.config.globalViewTransitions; if (x.hasOwnProperty("transition")) { t = x.transition } if (t && de(o, "htmx:beforeTransition", i) && typeof Promise !== "undefined" && document.startViewTransition) { const v = new Promise(function (e, t) { n = e; r = t }); const w = e; e = function () { document.startViewTransition(function () { w(); return v }) } } if (x.swapDelay > 0) { E().setTimeout(e, x.swapDelay) } else { e() } } if (f) { fe(o, "htmx:responseError", ce({ error: "Response Status Error Code " + s.status + " from " + i.pathInfo.requestPath }, i)) } } const Mn = {}; function Xn() { 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 Fn(e, t) { if (t.init) { t.init(n) } Mn[e] = ce(Xn(), t) } function Bn(e) { delete Mn[e] } function Un(e, n, r) { if (n == undefined) { n = [] } if (e == undefined) { return n } if (r == undefined) { r = [] } const t = te(e, "hx-ext"); if (t) { se(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 = Mn[e]; if (t && n.indexOf(t) < 0) { n.push(t) } } }) } return Un(ue(c(e)), n, r) } var jn = false; ne().addEventListener("DOMContentLoaded", function () { jn = true }); function Vn(e) { if (jn || ne().readyState === "complete") { e() } else { ne().addEventListener("DOMContentLoaded", e) } } function _n() { if (Q.config.includeIndicatorStyles !== false) { const e = Q.config.inlineStyleNonce ? ` nonce="${Q.config.inlineStyleNonce}"` : ""; ne().head.insertAdjacentHTML("beforeend", "") } } function zn() { const e = ne().querySelector('meta[name="htmx-config"]'); if (e) { return S(e.content) } else { return null } } function $n() { const e = zn(); if (e) { Q.config = ce(Q.config, e) } } Vn(function () { $n(); _n(); let e = ne().body; kt(e); const t = ne().querySelectorAll("[hx-trigger='restored'],[data-hx-trigger='restored']"); e.addEventListener("htmx:abort", function (e) { const t = e.target; const n = ie(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) { Wt(); se(t, function (e) { de(e, "htmx:restored", { document: ne(), triggerEvent: de }) }) } else { if (n) { n(e) } } }; E().setTimeout(function () { de(e, "htmx:load", {}); e = null }, 0) }); return Q }();1;(function () { function splitOnWhitespace(trigger) { return trigger.split(/\s+/); } function parseClassOperation(trimmedValue) { var split = splitOnWhitespace(trimmedValue); if (split.length > 1) { var operation = split[0]; var classDef = split[1].trim(); var cssClass; var delay; if (classDef.indexOf(":") > 0) { var splitCssClass = classDef.split(':'); cssClass = splitCssClass[0]; delay = htmx.parseInterval(splitCssClass[1]); } else { cssClass = classDef; delay = 100; } return { operation: operation, cssClass: cssClass, delay: delay } } else { return null; } } function performOperation(elt, classOperation, classList, currentRunTime) { setTimeout(function () { elt.classList[classOperation.operation].call(elt.classList, classOperation.cssClass); }, currentRunTime) } function toggleOperation(elt, classOperation, classList, currentRunTime) { setTimeout(function () { setInterval(function () { elt.classList[classOperation.operation].call(elt.classList, classOperation.cssClass); }, classOperation.delay); }, currentRunTime) } function processClassList(elt, classList) { var runs = classList.split("&"); for (var i = 0; i < runs.length; i++) { var run = runs[i]; var currentRunTime = 0; var classOperations = run.split(","); for (var j = 0; j < classOperations.length; j++) { var value = classOperations[j]; var trimmedValue = value.trim(); var classOperation = parseClassOperation(trimmedValue); if (classOperation) { if (classOperation.operation === "toggle") { toggleOperation(elt, classOperation, classList, currentRunTime); currentRunTime = currentRunTime + classOperation.delay; } else { currentRunTime = currentRunTime + classOperation.delay; performOperation(elt, classOperation, classList, currentRunTime); } } } } } function maybeProcessClasses(elt) { if (elt.getAttribute) { var classList = elt.getAttribute("classes") || elt.getAttribute("data-classes"); if (classList) { processClassList(elt, classList); } } } htmx.defineExtension('class-tools', { onEvent: function (name, evt) { if (name === "htmx:afterProcessNode") { var elt = evt.detail.elt; maybeProcessClasses(elt); if (elt.querySelectorAll) { var children = elt.querySelectorAll("[classes], [data-classes]"); for (var i = 0; i < children.length; i++) { maybeProcessClasses(children[i]); } } } } }); })();;htmx.defineExtension("preload", { onEvent: function (e, t) { if ("htmx:afterProcessNode" === e) { var r = function (e, t) { if (null != e) return e.getAttribute(t) || e.getAttribute("data-" + t) || r(e.parentElement, t) }, a = function (e) { var t = function (t) { e.preloadAlways || (e.preloadState = "DONE"), "true" == r(e, "preload-images") && (document.createElement("div").innerHTML = t) }; return function () { if ("READY" === e.preloadState) { var r = e.getAttribute("hx-get") || e.getAttribute("data-hx-get"); if (r) htmx.ajax("GET", r, { source: e, handler: function (e, r) { t(r.xhr.responseText) } }); else if (e.getAttribute("href")) { var a = new XMLHttpRequest; return a.open("GET", e.getAttribute("href")), a.onload = function () { t(a.responseText) }, void a.send() } } } }, n = function (e) { if (e.getAttribute("href") + e.getAttribute("hx-get") + e.getAttribute("data-hx-get") == "") return; if (void 0 !== e.preloadState) return; var t = r(e, "preload") || "mousedown"; const n = -1 !== t.indexOf("always"); switch (n && (t = t.replace("always", "").trim()), e.addEventListener(t, (function (r) { "PAUSE" === e.preloadState && (e.preloadState = "READY", "mouseover" === t ? window.setTimeout(a(e), 100) : a(e)()) })), t) { case "mouseover": e.addEventListener("touchstart", a(e)), e.addEventListener("mouseout", (function (t) { t.target === e && "READY" === e.preloadState && (e.preloadState = "PAUSE") })); break; case "mousedown": e.addEventListener("touchstart", a(e)) }e.preloadState = "PAUSE", e.preloadAlways = n, htmx.trigger(e, "preload:init") }; t.target.querySelectorAll("[preload]").forEach((function (e) { n(e), e.querySelectorAll("a,[hx-get],[data-hx-get]").forEach(n) })) } } });Supermicro Motherboard X11spl-f Single 2nd Gen Intel® Xeon® Scalable Processor Mbd-x11spl-f - ServerDirect - Beyond servers
2nd Gen Intel® Xeon® Scalable Processors and Intel® Xeon® Scalable Processors, Single Socket LGA-3647 (Socket P) supported, CPU TDP supports Up to 165W TDP
Intel® C621 Chipset
Up to 2TB 3DS ECC RDIMM, DDR4-2933MHz; Up to 2TB 3DS ECC LRDIMM, DDR4-2933MHz, in 8 DIMM slots; Up to 1TB Intel Optane DC Persistent Memory in memory mode (Cascade Lake Only)
Expansion slots: 2 PCIe 3.0 x8 (in x16), 4 PCIe 3.0 x8, 1 PCIe 3.0 x4 (in x8)
M.2 NGFF connector M.2 Interface: PCIe 3.0 x4 and SATA Form Factor: 2280, 22110 Key: M-Key
2 GbE LAN ports
8 SATA3 (6Gbps) ports
I/O: 1 VGA, 2 COM, TPM header
2 SuperDOM with built-in power
5 USB 3.0 (2 rear, 1 Type-A, 2 via header), 8 USB 2.0 (2 rear, 6 via headers)
...
...
Optimized Servers
SSG-5049P-E1CR45H SSG-5049P-E1CR45L
Product SKUs
MBD-X11SPL-F
Physical Stats
Form Factor
ATX
Dimension
12" x 9.6" (30.48cm x 24.38cm)
Processor
CPU
2nd Gen Intel® Xeon® Scalable Processors and Intel® Xeon® Scalable Processors
Single Socket Socket P (LGA-3647) supported, CPU TDP supports Up to 165W TDP
Core
Up to 28 cores
Note
BIOS version 3.0a or above is required to support 2nd Generation Intel Xeon Scalable Processors-SP
System Memory
Memory Capacity
8 DIMM slots
Up to 2TB 3DS ECC LRDIMM, DDR4-2933MT/s; Up to 2TB 3DS ECC RDIMM, DDR4-2933MT/s
Up to 1TB Intel Optane DC Persistent Memory in memory mode (Cascade Lake Only)
Power-on mode for AC power recovery, ACPI Power Management
PC Health Monitoring
Voltage
VBAT, Supports system management utility, Monitors CPU voltages, HT, Chassis intrusion header, 3.3V standby, +5V standby, +5V, +3.3V, +12V, +1.8V, 7-fan status
LED
UID/Remote UID
Suspend static indicator LED
CPU / System Overheat LED
Temperature
CPU thermal trip support
PECI
FAN
7x 4-pin fan headers (up to 7 fans)
System level control
PWM fan speed control
Fan speed control
Overheat LED indication
Other Features
WOL, UID, RoHS, M.2 NGFF connector, CPU thermal trip support for processor protection, Control of power-on for recovery from AC power loss, ACPI power management
• Afbeeldingen van producten op de website kunnen verschillen van het werkelijke product.
• De gepubliceerde prijzen in de winkel kunnen worden gewijzigd en kunnen variëren op basis van marktomstandigheden en beschikbaarheid van de voorraad.