diff --git a/Dockerfile b/Dockerfile index ea82372..617d88c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,42 +1,26 @@ -FROM golang:1.23 AS builder -# Install curl dan Tailwind dependencies -RUN apt-get update && apt-get install -y curl ca-certificates +FROM golang:1.23-alpine AS builder WORKDIR /app -# Copy go.mod dan go.sum untuk dependency management COPY go.mod go.sum ./ -RUN go mod download +RUN go mod tidy -# Copy seluruh project COPY . . RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main ./cmd/api - -# Install Tailwind CSS untuk generate output.css -RUN go install github.com/a-h/templ/cmd/templ@latest && \ - templ generate && \ - curl -sL https://github.com/tailwindlabs/tailwindcss/releases/latest/download/tailwindcss-linux-x64 -o tailwindcss && \ - chmod +x tailwindcss && \ - ./tailwindcss -i cmd/web/assets/css/input.css -o cmd/web/assets/css/output.css +# RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app . FROM alpine:latest # Set timezone ke Asia/Jakarta ENV TZ=Asia/Jakarta -# Install dependensi runtime yang diperlukan RUN apk --no-cache add ca-certificates tzdata WORKDIR /root/ -# Copy binary yang sudah ter-build dari stage sebelumnya COPY --from=builder /app/main . COPY --from=builder /app/.env . - -# Expose port aplikasi -EXPOSE 8803 - -# Jalankan aplikasi -CMD ["./main"] +EXPOSE 8080 +CMD ["./main"] \ No newline at end of file diff --git a/cmd/api/main.go b/cmd/api/main.go index e88d59e..ad1a7fc 100644 --- a/cmd/api/main.go +++ b/cmd/api/main.go @@ -7,9 +7,8 @@ import ( "net/http" "os/signal" "syscall" - "time" - "template_blueprint/internal/server" + "time" ) func gracefulShutdown(apiServer *http.Server, done chan bool) { diff --git a/cmd/web/assets/css/input.css b/cmd/web/assets/css/input.css deleted file mode 100644 index b5c61c9..0000000 --- a/cmd/web/assets/css/input.css +++ /dev/null @@ -1,3 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; diff --git a/cmd/web/assets/css/output.css b/cmd/web/assets/css/output.css deleted file mode 100644 index f679793..0000000 --- a/cmd/web/assets/css/output.css +++ /dev/null @@ -1,30 +0,0 @@ -/*! tailwindcss v4.0.13 | MIT License | https://tailwindcss.com */ -.container { - width: 100%; -} -.mx-auto { - margin-inline: auto; -} -.block { - display: block; -} -.h-screen { - height: 100vh; -} -.resize { - resize: both; -} -.border { - border-style: var(--tw-border-style); - border-width: 1px; -} -.transition { - transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter; - transition-timing-function: var(--tw-ease, ease); - transition-duration: var(--tw-duration, 0s); -} -@property --tw-border-style { - syntax: "*"; - inherits: false; - initial-value: solid; -} diff --git a/cmd/web/assets/js/htmx.min.js b/cmd/web/assets/js/htmx.min.js deleted file mode 100644 index c909e02..0000000 --- a/cmd/web/assets/js/htmx.min.js +++ /dev/null @@ -1,3476 +0,0 @@ -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 = cn(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, - }, - parseInterval: null, - _: null, - version: "2.0.3", - }; - Q.onLoad = j; - Q.process = kt; - Q.on = ye; - Q.off = be; - Q.trigger = de; - Q.ajax = Rn; - Q.find = r; - 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 = Fn; - Q.removeExtension = Bn; - Q.logAll = V; - Q.logNone = _; - Q.parseInterval = h; - Q._ = e; - const n = { - addTriggerHandler: St, - bodyContains: le, - canAccessLocalStorage: B, - findThisElement: Se, - filterValues: dn, - swap: $e, - hasAttribute: s, - getAttributeValue: te, - getClosestAttributeValue: re, - getClosestMatch: i, - getExpressionVars: En, - getHeaders: fn, - getInputValues: cn, - getInternalData: ie, - getSwapSpecification: gn, - getTriggerSpecs: st, - getTarget: Ee, - makeFragment: P, - mergeObjects: ce, - makeSettleInfo: xn, - oobSwap: He, - querySelectorExt: ae, - settleImmediately: Kt, - shouldCancel: dt, - triggerEvent: de, - triggerErrorEvent: fe, - withExtensions: Ft, - }; - const o = ["get", "post", "put", "delete", "patch"]; - const R = o - .map(function (e) { - return "[hx-" + e + "], [data-hx-" + e + "]"; - }) - .join(", "); - function h(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 te(e, t) { - return ee(e, t) || ee(e, "data-" + t); - } - function c(e) { - const t = e.parentElement; - if (!t && e.parentNode instanceof ShadowRoot) return e.parentNode; - return t; - } - function ne() { - return document; - } - function m(e, t) { - return e.getRootNode ? e.getRootNode({ composed: t }) : ne(); - } - function i(e, t) { - while (e && !t(e)) { - e = c(e); - } - return e || null; - } - function H(e, t, n) { - const r = te(t, n); - const o = te(t, "hx-disinherit"); - var i = te(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 re(t, n) { - let r = null; - i(t, function (e) { - return !!(r = H(t, ue(e), n)); - }); - if (r !== "unset") { - return r; - } - } - function d(e, t) { - const n = - e instanceof Element && - (e.matches || - e.matchesSelector || - e.msMatchesSelector || - e.mozMatchesSelector || - e.webkitMatchesSelector || - e.oMatchesSelector); - return !!n && n.call(e, t); - } - function T(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 q(e) { - const t = new DOMParser(); - return t.parseFromString(e, "text/html"); - } - function L(e, t) { - while (t.childNodes.length > 0) { - e.append(t.childNodes[0]); - } - } - function N(e) { - const t = ne().createElement("script"); - se(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 A(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 (A(e)) { - const t = N(e); - const n = e.parentNode; - try { - n.insertBefore(t, e); - } catch (e) { - C(e); - } finally { - e.remove(); - } - } - }); - } - function P(e) { - const t = e.replace(/
]*)?>[\s\S]*?<\/head>/i, ""); - const n = T(t); - let r; - if (n === "html") { - r = new DocumentFragment(); - const i = q(e); - L(r, i.body); - r.title = i.title; - } else if (n === "body") { - r = new DocumentFragment(); - const i = q(t); - L(r, i.body); - r.title = i.title; - } else { - const i = q( - '' + - t + - "", - ); - 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 oe(e) { - if (e) { - e(); - } - } - function t(e, t) { - return Object.prototype.toString.call(e) === "[object " + t + "]"; - } - function k(e) { - return typeof e === "function"; - } - function D(e) { - return t(e, "Object"); - } - function ie(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 se(t, n) { - if (t) { - for (let e = 0; e < t.length; e++) { - n(t[e]); - } - } - } - function X(e) { - const t = e.getBoundingClientRect(); - const n = t.top; - const r = t.bottom; - return n < window.innerHeight && r >= 0; - } - function le(e) { - const t = e.getRootNode && e.getRootNode(); - if (t && t instanceof window.ShadowRoot) { - return ne().body.contains(t.host); - } else { - return ne().body.contains(e); - } - } - function F(e) { - return e.trim().split(/\s+/); - } - function ce(e, t) { - for (const n in t) { - if (t.hasOwnProperty(n)) { - e[n] = t[n]; - } - } - return e; - } - function S(e) { - try { - return JSON.parse(e); - } catch (e) { - C(e); - return null; - } - } - function B() { - const e = "htmx:localStorageTest"; - try { - localStorage.setItem(e, e); - localStorage.removeItem(e); - return true; - } catch (e) { - return false; - } - } - function U(t) { - try { - const e = new URL(t); - if (e) { - t = e.pathname + e.search; - } - if (!/^\/$/.test(t)) { - t = t.replace(/\/+$/, ""); - } - return t; - } catch (e) { - return t; - } - } - function e(e) { - return vn(ne().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 r(e, t) { - if (typeof e !== "string") { - return e.querySelector(t); - } else { - return r(ne(), e); - } - } - function x(e, t) { - if (typeof e !== "string") { - return e.querySelectorAll(t); - } else { - return x(ne(), e); - } - } - function E() { - return window; - } - function z(e, t) { - e = y(e); - if (t) { - E().setTimeout(function () { - z(e); - e = null; - }, t); - } else { - c(e).removeChild(e); - } - } - function ue(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 f(e) { - return e instanceof Element || - e instanceof Document || - e instanceof DocumentFragment - ? e - : null; - } - function K(e, t, n) { - e = ue(y(e)); - if (!e) { - return; - } - if (n) { - E().setTimeout(function () { - K(e, t); - e = null; - }, n); - } else { - e.classList && e.classList.add(t); - } - } - function G(e, t, n) { - let r = ue(y(e)); - if (!r) { - return; - } - if (n) { - E().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 = y(e); - e.classList.toggle(t); - } - function Z(e, t) { - e = y(e); - se(e.parentElement.children, function (e) { - G(e, t); - }); - K(ue(e), t); - } - function g(e, t) { - e = ue(y(e)); - if (e && e.closest) { - return e.closest(t); - } else { - do { - if (e == null || d(e, t)) { - return e; - } - } while ((e = e && ue(c(e)))); - 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 ge(e) { - const t = e.trim(); - if (l(t, "<") && Y(t, "/>")) { - 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; -})(); diff --git a/cmd/web/base.templ b/cmd/web/base.templ deleted file mode 100644 index 7484dba..0000000 --- a/cmd/web/base.templ +++ /dev/null @@ -1,18 +0,0 @@ -package web - -templ Base() { - - - - -Hello, { name }
-