├── .gitignore ├── requirements.txt ├── readme.md ├── main.py └── static └── htmx.min.js /.gitignore: -------------------------------------------------------------------------------- 1 | /env 2 | .DS_Store 3 | .vscode 4 | __pycache__ -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | annotated-types==0.5.0 2 | anyio==3.7.1 3 | click==8.1.7 4 | fastapi==0.102.0 5 | h11==0.14.0 6 | httptools==0.6.0 7 | idna==3.4 8 | pydantic==2.3.0 9 | pydantic_core==2.6.3 10 | python-dotenv==1.0.0 11 | PyYAML==6.0.1 12 | sniffio==1.3.0 13 | starlette==0.27.0 14 | typing_extensions==4.7.1 15 | uvicorn==0.23.2 16 | uvloop==0.17.0 17 | watchfiles==0.20.0 18 | websockets==11.0.3 19 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | Clone repo 2 | 3 | ``` 4 | git clone https://github.com/carvalhochris/fastapi-htmx-hello.git 5 | cd fastapi-htmx-hello 6 | ``` 7 | 8 | Create virtual env 9 | 10 | ``` 11 | python3 -m venv env 12 | ``` 13 | 14 | Activate virtual env 15 | 16 | ``` 17 | source env/bin/activate 18 | ``` 19 | 20 | Install dependencies 21 | 22 | ``` 23 | pip install -r requirements.txt 24 | ``` 25 | 26 | Run 27 | 28 | ``` 29 | uvicorn main:app --reload --port 8001 30 | ``` 31 | 32 | Test 33 | 34 | http://localhost:8001/hello -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | from typing import Union 2 | from fastapi import FastAPI 3 | from fastapi.responses import HTMLResponse 4 | from fastapi.staticfiles import StaticFiles 5 | 6 | app = FastAPI() 7 | 8 | app.mount("/static", StaticFiles(directory="static"), name="static") 9 | 10 | @app.get("/") 11 | def read_root(): 12 | return {"Hello": "World"} 13 | 14 | @app.get("/hello", response_class=HTMLResponse) 15 | async def hello(): 16 | return """ 17 | 18 | 19 | Hello... 20 | 21 | 22 |
23 |

Hello...

24 |
25 | 32 | 33 | 34 | 35 | """ 36 | 37 | @app.get("/world", response_class=HTMLResponse) 38 | async def world(): 39 | return """ 40 | ...world 41 |

...world

42 | """ -------------------------------------------------------------------------------- /static/htmx.min.js: -------------------------------------------------------------------------------- 1 | (function (e, t) { 2 | if (typeof define === "function" && define.amd) { 3 | define([], t); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = t(); 6 | } else { 7 | e.htmx = e.htmx || t(); 8 | } 9 | })(typeof self !== "undefined" ? self : this, function () { 10 | return (function () { 11 | "use strict"; 12 | var G = { 13 | onLoad: t, 14 | process: Nt, 15 | on: le, 16 | off: ue, 17 | trigger: oe, 18 | ajax: xr, 19 | find: b, 20 | findAll: f, 21 | closest: d, 22 | values: function (e, t) { 23 | var r = er(e, t || "post"); 24 | return r.values; 25 | }, 26 | remove: U, 27 | addClass: B, 28 | removeClass: n, 29 | toggleClass: V, 30 | takeClass: j, 31 | defineExtension: Rr, 32 | removeExtension: Or, 33 | logAll: X, 34 | logNone: F, 35 | logger: null, 36 | config: { 37 | historyEnabled: true, 38 | historyCacheSize: 10, 39 | refreshOnHistoryMiss: false, 40 | defaultSwapStyle: "innerHTML", 41 | defaultSwapDelay: 0, 42 | defaultSettleDelay: 20, 43 | includeIndicatorStyles: true, 44 | indicatorClass: "htmx-indicator", 45 | requestClass: "htmx-request", 46 | addedClass: "htmx-added", 47 | settlingClass: "htmx-settling", 48 | swappingClass: "htmx-swapping", 49 | allowEval: true, 50 | allowScriptTags: true, 51 | inlineScriptNonce: "", 52 | attributesToSettle: ["class", "style", "width", "height"], 53 | withCredentials: false, 54 | timeout: 0, 55 | wsReconnectDelay: "full-jitter", 56 | wsBinaryType: "blob", 57 | disableSelector: "[hx-disable], [data-hx-disable]", 58 | useTemplateFragments: false, 59 | scrollBehavior: "smooth", 60 | defaultFocusScroll: false, 61 | getCacheBusterParam: false, 62 | globalViewTransitions: false, 63 | methodsThatUseUrlParams: ["get"], 64 | selfRequestsOnly: false, 65 | }, 66 | parseInterval: v, 67 | _: e, 68 | createEventSource: function (e) { 69 | return new EventSource(e, { withCredentials: true }); 70 | }, 71 | createWebSocket: function (e) { 72 | var t = new WebSocket(e, []); 73 | t.binaryType = G.config.wsBinaryType; 74 | return t; 75 | }, 76 | version: "1.9.5", 77 | }; 78 | var C = { 79 | addTriggerHandler: bt, 80 | bodyContains: re, 81 | canAccessLocalStorage: M, 82 | findThisElement: he, 83 | filterValues: ar, 84 | hasAttribute: o, 85 | getAttributeValue: Z, 86 | getClosestAttributeValue: Y, 87 | getClosestMatch: c, 88 | getExpressionVars: gr, 89 | getHeaders: ir, 90 | getInputValues: er, 91 | getInternalData: ee, 92 | getSwapSpecification: sr, 93 | getTriggerSpecs: Ge, 94 | getTarget: de, 95 | makeFragment: l, 96 | mergeObjects: ne, 97 | makeSettleInfo: S, 98 | oobSwap: me, 99 | querySelectorExt: ie, 100 | selectAndSwap: De, 101 | settleImmediately: Wt, 102 | shouldCancel: Qe, 103 | triggerEvent: oe, 104 | triggerErrorEvent: ae, 105 | withExtensions: w, 106 | }; 107 | var R = ["get", "post", "put", "delete", "patch"]; 108 | var O = R.map(function (e) { 109 | return "[hx-" + e + "], [data-hx-" + e + "]"; 110 | }).join(", "); 111 | function v(e) { 112 | if (e == undefined) { 113 | return undefined; 114 | } 115 | if (e.slice(-2) == "ms") { 116 | return parseFloat(e.slice(0, -2)) || undefined; 117 | } 118 | if (e.slice(-1) == "s") { 119 | return parseFloat(e.slice(0, -1)) * 1e3 || undefined; 120 | } 121 | if (e.slice(-1) == "m") { 122 | return parseFloat(e.slice(0, -1)) * 1e3 * 60 || undefined; 123 | } 124 | return parseFloat(e) || undefined; 125 | } 126 | function J(e, t) { 127 | return e.getAttribute && e.getAttribute(t); 128 | } 129 | function o(e, t) { 130 | return ( 131 | e.hasAttribute && (e.hasAttribute(t) || e.hasAttribute("data-" + t)) 132 | ); 133 | } 134 | function Z(e, t) { 135 | return J(e, t) || J(e, "data-" + t); 136 | } 137 | function u(e) { 138 | return e.parentElement; 139 | } 140 | function K() { 141 | return document; 142 | } 143 | function c(e, t) { 144 | while (e && !t(e)) { 145 | e = u(e); 146 | } 147 | return e ? e : null; 148 | } 149 | function T(e, t, r) { 150 | var n = Z(t, r); 151 | var i = Z(t, "hx-disinherit"); 152 | if (e !== t && i && (i === "*" || i.split(" ").indexOf(r) >= 0)) { 153 | return "unset"; 154 | } else { 155 | return n; 156 | } 157 | } 158 | function Y(t, r) { 159 | var n = null; 160 | c(t, function (e) { 161 | return (n = T(t, e, r)); 162 | }); 163 | if (n !== "unset") { 164 | return n; 165 | } 166 | } 167 | function h(e, t) { 168 | var r = 169 | e.matches || 170 | e.matchesSelector || 171 | e.msMatchesSelector || 172 | e.mozMatchesSelector || 173 | e.webkitMatchesSelector || 174 | e.oMatchesSelector; 175 | return r && r.call(e, t); 176 | } 177 | function q(e) { 178 | var t = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i; 179 | var r = t.exec(e); 180 | if (r) { 181 | return r[1].toLowerCase(); 182 | } else { 183 | return ""; 184 | } 185 | } 186 | function i(e, t) { 187 | var r = new DOMParser(); 188 | var n = r.parseFromString(e, "text/html"); 189 | var i = n.body; 190 | while (t > 0) { 191 | t--; 192 | i = i.firstChild; 193 | } 194 | if (i == null) { 195 | i = K().createDocumentFragment(); 196 | } 197 | return i; 198 | } 199 | function H(e) { 200 | return e.match(/", 0); 206 | return r.querySelector("template").content; 207 | } else { 208 | var n = q(e); 209 | switch (n) { 210 | case "thead": 211 | case "tbody": 212 | case "tfoot": 213 | case "colgroup": 214 | case "caption": 215 | return i("" + e + "
", 1); 216 | case "col": 217 | return i("" + e + "
", 2); 218 | case "tr": 219 | return i("" + e + "
", 2); 220 | case "td": 221 | case "th": 222 | return i("" + e + "
", 3); 223 | case "script": 224 | return i("
" + e + "
", 1); 225 | default: 226 | return i(e, 0); 227 | } 228 | } 229 | } 230 | function Q(e) { 231 | if (e) { 232 | e(); 233 | } 234 | } 235 | function L(e, t) { 236 | return Object.prototype.toString.call(e) === "[object " + t + "]"; 237 | } 238 | function A(e) { 239 | return L(e, "Function"); 240 | } 241 | function N(e) { 242 | return L(e, "Object"); 243 | } 244 | function ee(e) { 245 | var t = "htmx-internal-data"; 246 | var r = e[t]; 247 | if (!r) { 248 | r = e[t] = {}; 249 | } 250 | return r; 251 | } 252 | function I(e) { 253 | var t = []; 254 | if (e) { 255 | for (var r = 0; r < e.length; r++) { 256 | t.push(e[r]); 257 | } 258 | } 259 | return t; 260 | } 261 | function te(e, t) { 262 | if (e) { 263 | for (var r = 0; r < e.length; r++) { 264 | t(e[r]); 265 | } 266 | } 267 | } 268 | function P(e) { 269 | var t = e.getBoundingClientRect(); 270 | var r = t.top; 271 | var n = t.bottom; 272 | return r < window.innerHeight && n >= 0; 273 | } 274 | function re(e) { 275 | if (e.getRootNode && e.getRootNode() instanceof window.ShadowRoot) { 276 | return K().body.contains(e.getRootNode().host); 277 | } else { 278 | return K().body.contains(e); 279 | } 280 | } 281 | function k(e) { 282 | return e.trim().split(/\s+/); 283 | } 284 | function ne(e, t) { 285 | for (var r in t) { 286 | if (t.hasOwnProperty(r)) { 287 | e[r] = t[r]; 288 | } 289 | } 290 | return e; 291 | } 292 | function y(e) { 293 | try { 294 | return JSON.parse(e); 295 | } catch (e) { 296 | x(e); 297 | return null; 298 | } 299 | } 300 | function M() { 301 | var e = "htmx:localStorageTest"; 302 | try { 303 | localStorage.setItem(e, e); 304 | localStorage.removeItem(e); 305 | return true; 306 | } catch (e) { 307 | return false; 308 | } 309 | } 310 | function D(t) { 311 | try { 312 | var e = new URL(t); 313 | if (e) { 314 | t = e.pathname + e.search; 315 | } 316 | if (!t.match("^/$")) { 317 | t = t.replace(/\/+$/, ""); 318 | } 319 | return t; 320 | } catch (e) { 321 | return t; 322 | } 323 | } 324 | function e(e) { 325 | return hr(K().body, function () { 326 | return eval(e); 327 | }); 328 | } 329 | function t(t) { 330 | var e = G.on("htmx:load", function (e) { 331 | t(e.detail.elt); 332 | }); 333 | return e; 334 | } 335 | function X() { 336 | G.logger = function (e, t, r) { 337 | if (console) { 338 | console.log(t, e, r); 339 | } 340 | }; 341 | } 342 | function F() { 343 | G.logger = null; 344 | } 345 | function b(e, t) { 346 | if (t) { 347 | return e.querySelector(t); 348 | } else { 349 | return b(K(), e); 350 | } 351 | } 352 | function f(e, t) { 353 | if (t) { 354 | return e.querySelectorAll(t); 355 | } else { 356 | return f(K(), e); 357 | } 358 | } 359 | function U(e, t) { 360 | e = s(e); 361 | if (t) { 362 | setTimeout(function () { 363 | U(e); 364 | e = null; 365 | }, t); 366 | } else { 367 | e.parentElement.removeChild(e); 368 | } 369 | } 370 | function B(e, t, r) { 371 | e = s(e); 372 | if (r) { 373 | setTimeout(function () { 374 | B(e, t); 375 | e = null; 376 | }, r); 377 | } else { 378 | e.classList && e.classList.add(t); 379 | } 380 | } 381 | function n(e, t, r) { 382 | e = s(e); 383 | if (r) { 384 | setTimeout(function () { 385 | n(e, t); 386 | e = null; 387 | }, r); 388 | } else { 389 | if (e.classList) { 390 | e.classList.remove(t); 391 | if (e.classList.length === 0) { 392 | e.removeAttribute("class"); 393 | } 394 | } 395 | } 396 | } 397 | function V(e, t) { 398 | e = s(e); 399 | e.classList.toggle(t); 400 | } 401 | function j(e, t) { 402 | e = s(e); 403 | te(e.parentElement.children, function (e) { 404 | n(e, t); 405 | }); 406 | B(e, t); 407 | } 408 | function d(e, t) { 409 | e = s(e); 410 | if (e.closest) { 411 | return e.closest(t); 412 | } else { 413 | do { 414 | if (e == null || h(e, t)) { 415 | return e; 416 | } 417 | } while ((e = e && u(e))); 418 | return null; 419 | } 420 | } 421 | function r(e) { 422 | var t = e.trim(); 423 | if (t.startsWith("<") && t.endsWith("/>")) { 424 | return t.substring(1, t.length - 2); 425 | } else { 426 | return t; 427 | } 428 | } 429 | function W(e, t) { 430 | if (t.indexOf("closest ") === 0) { 431 | return [d(e, r(t.substr(8)))]; 432 | } else if (t.indexOf("find ") === 0) { 433 | return [b(e, r(t.substr(5)))]; 434 | } else if (t.indexOf("next ") === 0) { 435 | return [_(e, r(t.substr(5)))]; 436 | } else if (t.indexOf("previous ") === 0) { 437 | return [z(e, r(t.substr(9)))]; 438 | } else if (t === "document") { 439 | return [document]; 440 | } else if (t === "window") { 441 | return [window]; 442 | } else if (t === "body") { 443 | return [document.body]; 444 | } else { 445 | return K().querySelectorAll(r(t)); 446 | } 447 | } 448 | var _ = function (e, t) { 449 | var r = K().querySelectorAll(t); 450 | for (var n = 0; n < r.length; n++) { 451 | var i = r[n]; 452 | if (i.compareDocumentPosition(e) === Node.DOCUMENT_POSITION_PRECEDING) { 453 | return i; 454 | } 455 | } 456 | }; 457 | var z = function (e, t) { 458 | var r = K().querySelectorAll(t); 459 | for (var n = r.length - 1; n >= 0; n--) { 460 | var i = r[n]; 461 | if (i.compareDocumentPosition(e) === Node.DOCUMENT_POSITION_FOLLOWING) { 462 | return i; 463 | } 464 | } 465 | }; 466 | function ie(e, t) { 467 | if (t) { 468 | return W(e, t)[0]; 469 | } else { 470 | return W(K().body, e)[0]; 471 | } 472 | } 473 | function s(e) { 474 | if (L(e, "String")) { 475 | return b(e); 476 | } else { 477 | return e; 478 | } 479 | } 480 | function $(e, t, r) { 481 | if (A(t)) { 482 | return { target: K().body, event: e, listener: t }; 483 | } else { 484 | return { target: s(e), event: t, listener: r }; 485 | } 486 | } 487 | function le(t, r, n) { 488 | Hr(function () { 489 | var e = $(t, r, n); 490 | e.target.addEventListener(e.event, e.listener); 491 | }); 492 | var e = A(r); 493 | return e ? r : n; 494 | } 495 | function ue(t, r, n) { 496 | Hr(function () { 497 | var e = $(t, r, n); 498 | e.target.removeEventListener(e.event, e.listener); 499 | }); 500 | return A(r) ? r : n; 501 | } 502 | var fe = K().createElement("output"); 503 | function ce(e, t) { 504 | var r = Y(e, t); 505 | if (r) { 506 | if (r === "this") { 507 | return [he(e, t)]; 508 | } else { 509 | var n = W(e, r); 510 | if (n.length === 0) { 511 | x('The selector "' + r + '" on ' + t + " returned no matches!"); 512 | return [fe]; 513 | } else { 514 | return n; 515 | } 516 | } 517 | } 518 | } 519 | function he(e, t) { 520 | return c(e, function (e) { 521 | return Z(e, t) != null; 522 | }); 523 | } 524 | function de(e) { 525 | var t = Y(e, "hx-target"); 526 | if (t) { 527 | if (t === "this") { 528 | return he(e, "hx-target"); 529 | } else { 530 | return ie(e, t); 531 | } 532 | } else { 533 | var r = ee(e); 534 | if (r.boosted) { 535 | return K().body; 536 | } else { 537 | return e; 538 | } 539 | } 540 | } 541 | function ve(e) { 542 | var t = G.config.attributesToSettle; 543 | for (var r = 0; r < t.length; r++) { 544 | if (e === t[r]) { 545 | return true; 546 | } 547 | } 548 | return false; 549 | } 550 | function ge(t, r) { 551 | te(t.attributes, function (e) { 552 | if (!r.hasAttribute(e.name) && ve(e.name)) { 553 | t.removeAttribute(e.name); 554 | } 555 | }); 556 | te(r.attributes, function (e) { 557 | if (ve(e.name)) { 558 | t.setAttribute(e.name, e.value); 559 | } 560 | }); 561 | } 562 | function pe(e, t) { 563 | var r = Tr(t); 564 | for (var n = 0; n < r.length; n++) { 565 | var i = r[n]; 566 | try { 567 | if (i.isInlineSwap(e)) { 568 | return true; 569 | } 570 | } catch (e) { 571 | x(e); 572 | } 573 | } 574 | return e === "outerHTML"; 575 | } 576 | function me(e, i, a) { 577 | var t = "#" + J(i, "id"); 578 | var o = "outerHTML"; 579 | if (e === "true") { 580 | } else if (e.indexOf(":") > 0) { 581 | o = e.substr(0, e.indexOf(":")); 582 | t = e.substr(e.indexOf(":") + 1, e.length); 583 | } else { 584 | o = e; 585 | } 586 | var r = K().querySelectorAll(t); 587 | if (r) { 588 | te(r, function (e) { 589 | var t; 590 | var r = i.cloneNode(true); 591 | t = K().createDocumentFragment(); 592 | t.appendChild(r); 593 | if (!pe(o, e)) { 594 | t = r; 595 | } 596 | var n = { shouldSwap: true, target: e, fragment: t }; 597 | if (!oe(e, "htmx:oobBeforeSwap", n)) return; 598 | e = n.target; 599 | if (n["shouldSwap"]) { 600 | ke(o, e, e, t, a); 601 | } 602 | te(a.elts, function (e) { 603 | oe(e, "htmx:oobAfterSwap", n); 604 | }); 605 | }); 606 | i.parentNode.removeChild(i); 607 | } else { 608 | i.parentNode.removeChild(i); 609 | ae(K().body, "htmx:oobErrorNoTarget", { content: i }); 610 | } 611 | return e; 612 | } 613 | function xe(e, t, r) { 614 | var n = Y(e, "hx-select-oob"); 615 | if (n) { 616 | var i = n.split(","); 617 | for (let e = 0; e < i.length; e++) { 618 | var a = i[e].split(":", 2); 619 | var o = a[0].trim(); 620 | if (o.indexOf("#") === 0) { 621 | o = o.substring(1); 622 | } 623 | var s = a[1] || "true"; 624 | var l = t.querySelector("#" + o); 625 | if (l) { 626 | me(s, l, r); 627 | } 628 | } 629 | } 630 | te(f(t, "[hx-swap-oob], [data-hx-swap-oob]"), function (e) { 631 | var t = Z(e, "hx-swap-oob"); 632 | if (t != null) { 633 | me(t, e, r); 634 | } 635 | }); 636 | } 637 | function ye(e) { 638 | te(f(e, "[hx-preserve], [data-hx-preserve]"), function (e) { 639 | var t = Z(e, "id"); 640 | var r = K().getElementById(t); 641 | if (r != null) { 642 | e.parentNode.replaceChild(r, e); 643 | } 644 | }); 645 | } 646 | function be(o, e, s) { 647 | te(e.querySelectorAll("[id]"), function (e) { 648 | var t = J(e, "id"); 649 | if (t && t.length > 0) { 650 | var r = t.replace("'", "\\'"); 651 | var n = e.tagName.replace(":", "\\:"); 652 | var i = o.querySelector(n + "[id='" + r + "']"); 653 | if (i && i !== o) { 654 | var a = e.cloneNode(); 655 | ge(e, i); 656 | s.tasks.push(function () { 657 | ge(e, a); 658 | }); 659 | } 660 | } 661 | }); 662 | } 663 | function we(e) { 664 | return function () { 665 | n(e, G.config.addedClass); 666 | Nt(e); 667 | St(e); 668 | Se(e); 669 | oe(e, "htmx:load"); 670 | }; 671 | } 672 | function Se(e) { 673 | var t = "[autofocus]"; 674 | var r = h(e, t) ? e : e.querySelector(t); 675 | if (r != null) { 676 | r.focus(); 677 | } 678 | } 679 | function a(e, t, r, n) { 680 | be(e, r, n); 681 | while (r.childNodes.length > 0) { 682 | var i = r.firstChild; 683 | B(i, G.config.addedClass); 684 | e.insertBefore(i, t); 685 | if (i.nodeType !== Node.TEXT_NODE && i.nodeType !== Node.COMMENT_NODE) { 686 | n.tasks.push(we(i)); 687 | } 688 | } 689 | } 690 | function Ee(e, t) { 691 | var r = 0; 692 | while (r < e.length) { 693 | t = ((t << 5) - t + e.charCodeAt(r++)) | 0; 694 | } 695 | return t; 696 | } 697 | function Ce(e) { 698 | var t = 0; 699 | if (e.attributes) { 700 | for (var r = 0; r < e.attributes.length; r++) { 701 | var n = e.attributes[r]; 702 | if (n.value) { 703 | t = Ee(n.name, t); 704 | t = Ee(n.value, t); 705 | } 706 | } 707 | } 708 | return t; 709 | } 710 | function Re(t) { 711 | var r = ee(t); 712 | if (r.onHandlers) { 713 | for (let e = 0; e < r.onHandlers.length; e++) { 714 | const n = r.onHandlers[e]; 715 | t.removeEventListener(n.event, n.listener); 716 | } 717 | delete r.onHandlers; 718 | } 719 | } 720 | function Oe(e) { 721 | var t = ee(e); 722 | if (t.timeout) { 723 | clearTimeout(t.timeout); 724 | } 725 | if (t.webSocket) { 726 | t.webSocket.close(); 727 | } 728 | if (t.sseEventSource) { 729 | t.sseEventSource.close(); 730 | } 731 | if (t.listenerInfos) { 732 | te(t.listenerInfos, function (e) { 733 | if (e.on) { 734 | e.on.removeEventListener(e.trigger, e.listener); 735 | } 736 | }); 737 | } 738 | if (t.initHash) { 739 | t.initHash = null; 740 | } 741 | Re(e); 742 | } 743 | function g(e) { 744 | oe(e, "htmx:beforeCleanupElement"); 745 | Oe(e); 746 | if (e.children) { 747 | te(e.children, function (e) { 748 | g(e); 749 | }); 750 | } 751 | } 752 | function Te(t, e, r) { 753 | if (t.tagName === "BODY") { 754 | return Ie(t, e, r); 755 | } else { 756 | var n; 757 | var i = t.previousSibling; 758 | a(u(t), t, e, r); 759 | if (i == null) { 760 | n = u(t).firstChild; 761 | } else { 762 | n = i.nextSibling; 763 | } 764 | ee(t).replacedWith = n; 765 | r.elts = r.elts.filter(function (e) { 766 | return e != t; 767 | }); 768 | while (n && n !== t) { 769 | if (n.nodeType === Node.ELEMENT_NODE) { 770 | r.elts.push(n); 771 | } 772 | n = n.nextElementSibling; 773 | } 774 | g(t); 775 | u(t).removeChild(t); 776 | } 777 | } 778 | function qe(e, t, r) { 779 | return a(e, e.firstChild, t, r); 780 | } 781 | function He(e, t, r) { 782 | return a(u(e), e, t, r); 783 | } 784 | function Le(e, t, r) { 785 | return a(e, null, t, r); 786 | } 787 | function Ae(e, t, r) { 788 | return a(u(e), e.nextSibling, t, r); 789 | } 790 | function Ne(e, t, r) { 791 | g(e); 792 | return u(e).removeChild(e); 793 | } 794 | function Ie(e, t, r) { 795 | var n = e.firstChild; 796 | a(e, n, t, r); 797 | if (n) { 798 | while (n.nextSibling) { 799 | g(n.nextSibling); 800 | e.removeChild(n.nextSibling); 801 | } 802 | g(n); 803 | e.removeChild(n); 804 | } 805 | } 806 | function Pe(e, t, r) { 807 | var n = r || Y(e, "hx-select"); 808 | if (n) { 809 | var i = K().createDocumentFragment(); 810 | te(t.querySelectorAll(n), function (e) { 811 | i.appendChild(e); 812 | }); 813 | t = i; 814 | } 815 | return t; 816 | } 817 | function ke(e, t, r, n, i) { 818 | switch (e) { 819 | case "none": 820 | return; 821 | case "outerHTML": 822 | Te(r, n, i); 823 | return; 824 | case "afterbegin": 825 | qe(r, n, i); 826 | return; 827 | case "beforebegin": 828 | He(r, n, i); 829 | return; 830 | case "beforeend": 831 | Le(r, n, i); 832 | return; 833 | case "afterend": 834 | Ae(r, n, i); 835 | return; 836 | case "delete": 837 | Ne(r, n, i); 838 | return; 839 | default: 840 | var a = Tr(t); 841 | for (var o = 0; o < a.length; o++) { 842 | var s = a[o]; 843 | try { 844 | var l = s.handleSwap(e, r, n, i); 845 | if (l) { 846 | if (typeof l.length !== "undefined") { 847 | for (var u = 0; u < l.length; u++) { 848 | var f = l[u]; 849 | if ( 850 | f.nodeType !== Node.TEXT_NODE && 851 | f.nodeType !== Node.COMMENT_NODE 852 | ) { 853 | i.tasks.push(we(f)); 854 | } 855 | } 856 | } 857 | return; 858 | } 859 | } catch (e) { 860 | x(e); 861 | } 862 | } 863 | if (e === "innerHTML") { 864 | Ie(r, n, i); 865 | } else { 866 | ke(G.config.defaultSwapStyle, t, r, n, i); 867 | } 868 | } 869 | } 870 | function Me(e) { 871 | if (e.indexOf(" -1) { 872 | var t = e.replace(/]*>|>)([\s\S]*?)<\/svg>/gim, ""); 873 | var r = t.match(/]*>|>)([\s\S]*?)<\/title>/im); 874 | if (r) { 875 | return r[2]; 876 | } 877 | } 878 | } 879 | function De(e, t, r, n, i, a) { 880 | i.title = Me(n); 881 | var o = l(n); 882 | if (o) { 883 | xe(r, o, i); 884 | o = Pe(r, o, a); 885 | ye(o); 886 | return ke(e, r, t, o, i); 887 | } 888 | } 889 | function Xe(e, t, r) { 890 | var n = e.getResponseHeader(t); 891 | if (n.indexOf("{") === 0) { 892 | var i = y(n); 893 | for (var a in i) { 894 | if (i.hasOwnProperty(a)) { 895 | var o = i[a]; 896 | if (!N(o)) { 897 | o = { value: o }; 898 | } 899 | oe(r, a, o); 900 | } 901 | } 902 | } else { 903 | var s = n.split(","); 904 | for (var l = 0; l < s.length; l++) { 905 | oe(r, s[l].trim(), []); 906 | } 907 | } 908 | } 909 | var Fe = /\s/; 910 | var p = /[\s,]/; 911 | var Ue = /[_$a-zA-Z]/; 912 | var Be = /[_$a-zA-Z0-9]/; 913 | var Ve = ['"', "'", "/"]; 914 | var je = /[^\s]/; 915 | function We(e) { 916 | var t = []; 917 | var r = 0; 918 | while (r < e.length) { 919 | if (Ue.exec(e.charAt(r))) { 920 | var n = r; 921 | while (Be.exec(e.charAt(r + 1))) { 922 | r++; 923 | } 924 | t.push(e.substr(n, r - n + 1)); 925 | } else if (Ve.indexOf(e.charAt(r)) !== -1) { 926 | var i = e.charAt(r); 927 | var n = r; 928 | r++; 929 | while (r < e.length && e.charAt(r) !== i) { 930 | if (e.charAt(r) === "\\") { 931 | r++; 932 | } 933 | r++; 934 | } 935 | t.push(e.substr(n, r - n + 1)); 936 | } else { 937 | var a = e.charAt(r); 938 | t.push(a); 939 | } 940 | r++; 941 | } 942 | return t; 943 | } 944 | function _e(e, t, r) { 945 | return ( 946 | Ue.exec(e.charAt(0)) && 947 | e !== "true" && 948 | e !== "false" && 949 | e !== "this" && 950 | e !== r && 951 | t !== "." 952 | ); 953 | } 954 | function ze(e, t, r) { 955 | if (t[0] === "[") { 956 | t.shift(); 957 | var n = 1; 958 | var i = " return (function(" + r + "){ return ("; 959 | var a = null; 960 | while (t.length > 0) { 961 | var o = t[0]; 962 | if (o === "]") { 963 | n--; 964 | if (n === 0) { 965 | if (a === null) { 966 | i = i + "true"; 967 | } 968 | t.shift(); 969 | i += ")})"; 970 | try { 971 | var s = hr( 972 | e, 973 | function () { 974 | return Function(i)(); 975 | }, 976 | function () { 977 | return true; 978 | } 979 | ); 980 | s.source = i; 981 | return s; 982 | } catch (e) { 983 | ae(K().body, "htmx:syntax:error", { error: e, source: i }); 984 | return null; 985 | } 986 | } 987 | } else if (o === "[") { 988 | n++; 989 | } 990 | if (_e(o, a, r)) { 991 | i += 992 | "((" + 993 | r + 994 | "." + 995 | o + 996 | ") ? (" + 997 | r + 998 | "." + 999 | o + 1000 | ") : (window." + 1001 | o + 1002 | "))"; 1003 | } else { 1004 | i = i + o; 1005 | } 1006 | a = t.shift(); 1007 | } 1008 | } 1009 | } 1010 | function m(e, t) { 1011 | var r = ""; 1012 | while (e.length > 0 && !e[0].match(t)) { 1013 | r += e.shift(); 1014 | } 1015 | return r; 1016 | } 1017 | var $e = "input, textarea, select"; 1018 | function Ge(e) { 1019 | var t = Z(e, "hx-trigger"); 1020 | var r = []; 1021 | if (t) { 1022 | var n = We(t); 1023 | do { 1024 | m(n, je); 1025 | var i = n.length; 1026 | var a = m(n, /[,\[\s]/); 1027 | if (a !== "") { 1028 | if (a === "every") { 1029 | var o = { trigger: "every" }; 1030 | m(n, je); 1031 | o.pollInterval = v(m(n, /[,\[\s]/)); 1032 | m(n, je); 1033 | var s = ze(e, n, "event"); 1034 | if (s) { 1035 | o.eventFilter = s; 1036 | } 1037 | r.push(o); 1038 | } else if (a.indexOf("sse:") === 0) { 1039 | r.push({ trigger: "sse", sseEvent: a.substr(4) }); 1040 | } else { 1041 | var l = { trigger: a }; 1042 | var s = ze(e, n, "event"); 1043 | if (s) { 1044 | l.eventFilter = s; 1045 | } 1046 | while (n.length > 0 && n[0] !== ",") { 1047 | m(n, je); 1048 | var u = n.shift(); 1049 | if (u === "changed") { 1050 | l.changed = true; 1051 | } else if (u === "once") { 1052 | l.once = true; 1053 | } else if (u === "consume") { 1054 | l.consume = true; 1055 | } else if (u === "delay" && n[0] === ":") { 1056 | n.shift(); 1057 | l.delay = v(m(n, p)); 1058 | } else if (u === "from" && n[0] === ":") { 1059 | n.shift(); 1060 | var f = m(n, p); 1061 | if ( 1062 | f === "closest" || 1063 | f === "find" || 1064 | f === "next" || 1065 | f === "previous" 1066 | ) { 1067 | n.shift(); 1068 | f += " " + m(n, p); 1069 | } 1070 | l.from = f; 1071 | } else if (u === "target" && n[0] === ":") { 1072 | n.shift(); 1073 | l.target = m(n, p); 1074 | } else if (u === "throttle" && n[0] === ":") { 1075 | n.shift(); 1076 | l.throttle = v(m(n, p)); 1077 | } else if (u === "queue" && n[0] === ":") { 1078 | n.shift(); 1079 | l.queue = m(n, p); 1080 | } else if ( 1081 | (u === "root" || u === "threshold") && 1082 | n[0] === ":" 1083 | ) { 1084 | n.shift(); 1085 | l[u] = m(n, p); 1086 | } else { 1087 | ae(e, "htmx:syntax:error", { token: n.shift() }); 1088 | } 1089 | } 1090 | r.push(l); 1091 | } 1092 | } 1093 | if (n.length === i) { 1094 | ae(e, "htmx:syntax:error", { token: n.shift() }); 1095 | } 1096 | m(n, je); 1097 | } while (n[0] === "," && n.shift()); 1098 | } 1099 | if (r.length > 0) { 1100 | return r; 1101 | } else if (h(e, "form")) { 1102 | return [{ trigger: "submit" }]; 1103 | } else if (h(e, 'input[type="button"], input[type="submit"]')) { 1104 | return [{ trigger: "click" }]; 1105 | } else if (h(e, $e)) { 1106 | return [{ trigger: "change" }]; 1107 | } else { 1108 | return [{ trigger: "click" }]; 1109 | } 1110 | } 1111 | function Je(e) { 1112 | ee(e).cancelled = true; 1113 | } 1114 | function Ze(e, t, r) { 1115 | var n = ee(e); 1116 | n.timeout = setTimeout(function () { 1117 | if (re(e) && n.cancelled !== true) { 1118 | if (!tt(r, e, Pt("hx:poll:trigger", { triggerSpec: r, target: e }))) { 1119 | t(e); 1120 | } 1121 | Ze(e, t, r); 1122 | } 1123 | }, r.pollInterval); 1124 | } 1125 | function Ke(e) { 1126 | return ( 1127 | location.hostname === e.hostname && 1128 | J(e, "href") && 1129 | J(e, "href").indexOf("#") !== 0 1130 | ); 1131 | } 1132 | function Ye(t, r, e) { 1133 | if ( 1134 | (t.tagName === "A" && 1135 | Ke(t) && 1136 | (t.target === "" || t.target === "_self")) || 1137 | t.tagName === "FORM" 1138 | ) { 1139 | r.boosted = true; 1140 | var n, i; 1141 | if (t.tagName === "A") { 1142 | n = "get"; 1143 | i = t.href; 1144 | } else { 1145 | var a = J(t, "method"); 1146 | n = a ? a.toLowerCase() : "get"; 1147 | if (n === "get") { 1148 | } 1149 | i = J(t, "action"); 1150 | } 1151 | e.forEach(function (e) { 1152 | rt( 1153 | t, 1154 | function (e, t) { 1155 | if (d(e, G.config.disableSelector)) { 1156 | g(e); 1157 | return; 1158 | } 1159 | se(n, i, e, t); 1160 | }, 1161 | r, 1162 | e, 1163 | true 1164 | ); 1165 | }); 1166 | } 1167 | } 1168 | function Qe(e, t) { 1169 | if (e.type === "submit" || e.type === "click") { 1170 | if (t.tagName === "FORM") { 1171 | return true; 1172 | } 1173 | if (h(t, 'input[type="submit"], button') && d(t, "form") !== null) { 1174 | return true; 1175 | } 1176 | if ( 1177 | t.tagName === "A" && 1178 | t.href && 1179 | (t.getAttribute("href") === "#" || 1180 | t.getAttribute("href").indexOf("#") !== 0) 1181 | ) { 1182 | return true; 1183 | } 1184 | } 1185 | return false; 1186 | } 1187 | function et(e, t) { 1188 | return ( 1189 | ee(e).boosted && 1190 | e.tagName === "A" && 1191 | t.type === "click" && 1192 | (t.ctrlKey || t.metaKey) 1193 | ); 1194 | } 1195 | function tt(e, t, r) { 1196 | var n = e.eventFilter; 1197 | if (n) { 1198 | try { 1199 | return n.call(t, r) !== true; 1200 | } catch (e) { 1201 | ae(K().body, "htmx:eventFilter:error", { 1202 | error: e, 1203 | source: n.source, 1204 | }); 1205 | return true; 1206 | } 1207 | } 1208 | return false; 1209 | } 1210 | function rt(a, o, e, s, l) { 1211 | var u = ee(a); 1212 | var t; 1213 | if (s.from) { 1214 | t = W(a, s.from); 1215 | } else { 1216 | t = [a]; 1217 | } 1218 | if (s.changed) { 1219 | t.forEach(function (e) { 1220 | var t = ee(e); 1221 | t.lastValue = e.value; 1222 | }); 1223 | } 1224 | te(t, function (n) { 1225 | var i = function (e) { 1226 | if (!re(a)) { 1227 | n.removeEventListener(s.trigger, i); 1228 | return; 1229 | } 1230 | if (et(a, e)) { 1231 | return; 1232 | } 1233 | if (l || Qe(e, a)) { 1234 | e.preventDefault(); 1235 | } 1236 | if (tt(s, a, e)) { 1237 | return; 1238 | } 1239 | var t = ee(e); 1240 | t.triggerSpec = s; 1241 | if (t.handledFor == null) { 1242 | t.handledFor = []; 1243 | } 1244 | if (t.handledFor.indexOf(a) < 0) { 1245 | t.handledFor.push(a); 1246 | if (s.consume) { 1247 | e.stopPropagation(); 1248 | } 1249 | if (s.target && e.target) { 1250 | if (!h(e.target, s.target)) { 1251 | return; 1252 | } 1253 | } 1254 | if (s.once) { 1255 | if (u.triggeredOnce) { 1256 | return; 1257 | } else { 1258 | u.triggeredOnce = true; 1259 | } 1260 | } 1261 | if (s.changed) { 1262 | var r = ee(n); 1263 | if (r.lastValue === n.value) { 1264 | return; 1265 | } 1266 | r.lastValue = n.value; 1267 | } 1268 | if (u.delayed) { 1269 | clearTimeout(u.delayed); 1270 | } 1271 | if (u.throttle) { 1272 | return; 1273 | } 1274 | if (s.throttle) { 1275 | if (!u.throttle) { 1276 | o(a, e); 1277 | u.throttle = setTimeout(function () { 1278 | u.throttle = null; 1279 | }, s.throttle); 1280 | } 1281 | } else if (s.delay) { 1282 | u.delayed = setTimeout(function () { 1283 | o(a, e); 1284 | }, s.delay); 1285 | } else { 1286 | oe(a, "htmx:trigger"); 1287 | o(a, e); 1288 | } 1289 | } 1290 | }; 1291 | if (e.listenerInfos == null) { 1292 | e.listenerInfos = []; 1293 | } 1294 | e.listenerInfos.push({ trigger: s.trigger, listener: i, on: n }); 1295 | n.addEventListener(s.trigger, i); 1296 | }); 1297 | } 1298 | var nt = false; 1299 | var it = null; 1300 | function at() { 1301 | if (!it) { 1302 | it = function () { 1303 | nt = true; 1304 | }; 1305 | window.addEventListener("scroll", it); 1306 | setInterval(function () { 1307 | if (nt) { 1308 | nt = false; 1309 | te( 1310 | K().querySelectorAll( 1311 | "[hx-trigger='revealed'],[data-hx-trigger='revealed']" 1312 | ), 1313 | function (e) { 1314 | ot(e); 1315 | } 1316 | ); 1317 | } 1318 | }, 200); 1319 | } 1320 | } 1321 | function ot(t) { 1322 | if (!o(t, "data-hx-revealed") && P(t)) { 1323 | t.setAttribute("data-hx-revealed", "true"); 1324 | var e = ee(t); 1325 | if (e.initHash) { 1326 | oe(t, "revealed"); 1327 | } else { 1328 | t.addEventListener( 1329 | "htmx:afterProcessNode", 1330 | function (e) { 1331 | oe(t, "revealed"); 1332 | }, 1333 | { once: true } 1334 | ); 1335 | } 1336 | } 1337 | } 1338 | function st(e, t, r) { 1339 | var n = k(r); 1340 | for (var i = 0; i < n.length; i++) { 1341 | var a = n[i].split(/:(.+)/); 1342 | if (a[0] === "connect") { 1343 | lt(e, a[1], 0); 1344 | } 1345 | if (a[0] === "send") { 1346 | ft(e); 1347 | } 1348 | } 1349 | } 1350 | function lt(s, r, n) { 1351 | if (!re(s)) { 1352 | return; 1353 | } 1354 | if (r.indexOf("/") == 0) { 1355 | var e = location.hostname + (location.port ? ":" + location.port : ""); 1356 | if (location.protocol == "https:") { 1357 | r = "wss://" + e + r; 1358 | } else if (location.protocol == "http:") { 1359 | r = "ws://" + e + r; 1360 | } 1361 | } 1362 | var t = G.createWebSocket(r); 1363 | t.onerror = function (e) { 1364 | ae(s, "htmx:wsError", { error: e, socket: t }); 1365 | ut(s); 1366 | }; 1367 | t.onclose = function (e) { 1368 | if ([1006, 1012, 1013].indexOf(e.code) >= 0) { 1369 | var t = ct(n); 1370 | setTimeout(function () { 1371 | lt(s, r, n + 1); 1372 | }, t); 1373 | } 1374 | }; 1375 | t.onopen = function (e) { 1376 | n = 0; 1377 | }; 1378 | ee(s).webSocket = t; 1379 | t.addEventListener("message", function (e) { 1380 | if (ut(s)) { 1381 | return; 1382 | } 1383 | var t = e.data; 1384 | w(s, function (e) { 1385 | t = e.transformResponse(t, null, s); 1386 | }); 1387 | var r = S(s); 1388 | var n = l(t); 1389 | var i = I(n.children); 1390 | for (var a = 0; a < i.length; a++) { 1391 | var o = i[a]; 1392 | me(Z(o, "hx-swap-oob") || "true", o, r); 1393 | } 1394 | Wt(r.tasks); 1395 | }); 1396 | } 1397 | function ut(e) { 1398 | if (!re(e)) { 1399 | ee(e).webSocket.close(); 1400 | return true; 1401 | } 1402 | } 1403 | function ft(u) { 1404 | var f = c(u, function (e) { 1405 | return ee(e).webSocket != null; 1406 | }); 1407 | if (f) { 1408 | u.addEventListener(Ge(u)[0].trigger, function (e) { 1409 | var t = ee(f).webSocket; 1410 | var r = ir(u, f); 1411 | var n = er(u, "post"); 1412 | var i = n.errors; 1413 | var a = n.values; 1414 | var o = gr(u); 1415 | var s = ne(a, o); 1416 | var l = ar(s, u); 1417 | l["HEADERS"] = r; 1418 | if (i && i.length > 0) { 1419 | oe(u, "htmx:validation:halted", i); 1420 | return; 1421 | } 1422 | t.send(JSON.stringify(l)); 1423 | if (Qe(e, u)) { 1424 | e.preventDefault(); 1425 | } 1426 | }); 1427 | } else { 1428 | ae(u, "htmx:noWebSocketSourceError"); 1429 | } 1430 | } 1431 | function ct(e) { 1432 | var t = G.config.wsReconnectDelay; 1433 | if (typeof t === "function") { 1434 | return t(e); 1435 | } 1436 | if (t === "full-jitter") { 1437 | var r = Math.min(e, 6); 1438 | var n = 1e3 * Math.pow(2, r); 1439 | return n * Math.random(); 1440 | } 1441 | x( 1442 | 'htmx.config.wsReconnectDelay must either be a function or the string "full-jitter"' 1443 | ); 1444 | } 1445 | function ht(e, t, r) { 1446 | var n = k(r); 1447 | for (var i = 0; i < n.length; i++) { 1448 | var a = n[i].split(/:(.+)/); 1449 | if (a[0] === "connect") { 1450 | dt(e, a[1]); 1451 | } 1452 | if (a[0] === "swap") { 1453 | vt(e, a[1]); 1454 | } 1455 | } 1456 | } 1457 | function dt(t, e) { 1458 | var r = G.createEventSource(e); 1459 | r.onerror = function (e) { 1460 | ae(t, "htmx:sseError", { error: e, source: r }); 1461 | pt(t); 1462 | }; 1463 | ee(t).sseEventSource = r; 1464 | } 1465 | function vt(a, o) { 1466 | var s = c(a, mt); 1467 | if (s) { 1468 | var l = ee(s).sseEventSource; 1469 | var u = function (e) { 1470 | if (pt(s)) { 1471 | return; 1472 | } 1473 | if (!re(a)) { 1474 | l.removeEventListener(o, u); 1475 | return; 1476 | } 1477 | var t = e.data; 1478 | w(a, function (e) { 1479 | t = e.transformResponse(t, null, a); 1480 | }); 1481 | var r = sr(a); 1482 | var n = de(a); 1483 | var i = S(a); 1484 | De(r.swapStyle, n, a, t, i); 1485 | Wt(i.tasks); 1486 | oe(a, "htmx:sseMessage", e); 1487 | }; 1488 | ee(a).sseListener = u; 1489 | l.addEventListener(o, u); 1490 | } else { 1491 | ae(a, "htmx:noSSESourceError"); 1492 | } 1493 | } 1494 | function gt(e, t, r) { 1495 | var n = c(e, mt); 1496 | if (n) { 1497 | var i = ee(n).sseEventSource; 1498 | var a = function () { 1499 | if (!pt(n)) { 1500 | if (re(e)) { 1501 | t(e); 1502 | } else { 1503 | i.removeEventListener(r, a); 1504 | } 1505 | } 1506 | }; 1507 | ee(e).sseListener = a; 1508 | i.addEventListener(r, a); 1509 | } else { 1510 | ae(e, "htmx:noSSESourceError"); 1511 | } 1512 | } 1513 | function pt(e) { 1514 | if (!re(e)) { 1515 | ee(e).sseEventSource.close(); 1516 | return true; 1517 | } 1518 | } 1519 | function mt(e) { 1520 | return ee(e).sseEventSource != null; 1521 | } 1522 | function xt(e, t, r, n) { 1523 | var i = function () { 1524 | if (!r.loaded) { 1525 | r.loaded = true; 1526 | t(e); 1527 | } 1528 | }; 1529 | if (n) { 1530 | setTimeout(i, n); 1531 | } else { 1532 | i(); 1533 | } 1534 | } 1535 | function yt(t, i, e) { 1536 | var a = false; 1537 | te(R, function (r) { 1538 | if (o(t, "hx-" + r)) { 1539 | var n = Z(t, "hx-" + r); 1540 | a = true; 1541 | i.path = n; 1542 | i.verb = r; 1543 | e.forEach(function (e) { 1544 | bt(t, e, i, function (e, t) { 1545 | if (d(e, G.config.disableSelector)) { 1546 | g(e); 1547 | return; 1548 | } 1549 | se(r, n, e, t); 1550 | }); 1551 | }); 1552 | } 1553 | }); 1554 | return a; 1555 | } 1556 | function bt(n, e, t, r) { 1557 | if (e.sseEvent) { 1558 | gt(n, r, e.sseEvent); 1559 | } else if (e.trigger === "revealed") { 1560 | at(); 1561 | rt(n, r, t, e); 1562 | ot(n); 1563 | } else if (e.trigger === "intersect") { 1564 | var i = {}; 1565 | if (e.root) { 1566 | i.root = ie(n, e.root); 1567 | } 1568 | if (e.threshold) { 1569 | i.threshold = parseFloat(e.threshold); 1570 | } 1571 | var a = new IntersectionObserver(function (e) { 1572 | for (var t = 0; t < e.length; t++) { 1573 | var r = e[t]; 1574 | if (r.isIntersecting) { 1575 | oe(n, "intersect"); 1576 | break; 1577 | } 1578 | } 1579 | }, i); 1580 | a.observe(n); 1581 | rt(n, r, t, e); 1582 | } else if (e.trigger === "load") { 1583 | if (!tt(e, n, Pt("load", { elt: n }))) { 1584 | xt(n, r, t, e.delay); 1585 | } 1586 | } else if (e.pollInterval) { 1587 | t.polling = true; 1588 | Ze(n, r, e); 1589 | } else { 1590 | rt(n, r, t, e); 1591 | } 1592 | } 1593 | function wt(e) { 1594 | if ( 1595 | G.config.allowScriptTags && 1596 | (e.type === "text/javascript" || e.type === "module" || e.type === "") 1597 | ) { 1598 | var t = K().createElement("script"); 1599 | te(e.attributes, function (e) { 1600 | t.setAttribute(e.name, e.value); 1601 | }); 1602 | t.textContent = e.textContent; 1603 | t.async = false; 1604 | if (G.config.inlineScriptNonce) { 1605 | t.nonce = G.config.inlineScriptNonce; 1606 | } 1607 | var r = e.parentElement; 1608 | try { 1609 | r.insertBefore(t, e); 1610 | } catch (e) { 1611 | x(e); 1612 | } finally { 1613 | if (e.parentElement) { 1614 | e.parentElement.removeChild(e); 1615 | } 1616 | } 1617 | } 1618 | } 1619 | function St(e) { 1620 | if (h(e, "script")) { 1621 | wt(e); 1622 | } 1623 | te(f(e, "script"), function (e) { 1624 | wt(e); 1625 | }); 1626 | } 1627 | function Et() { 1628 | return document.querySelector("[hx-boost], [data-hx-boost]"); 1629 | } 1630 | function Ct(e) { 1631 | if (!document.evaluate) return []; 1632 | let t = null; 1633 | const r = []; 1634 | const n = document.evaluate( 1635 | '//*[@*[ starts-with(name(), "hx-on:") or starts-with(name(), "data-hx-on:") ]]', 1636 | e 1637 | ); 1638 | while ((t = n.iterateNext())) r.push(t); 1639 | return r; 1640 | } 1641 | function Rt(e) { 1642 | if (e.querySelectorAll) { 1643 | var t = Et() ? ", a" : ""; 1644 | var r = e.querySelectorAll( 1645 | O + 1646 | t + 1647 | ", form, [type='submit'], [hx-sse], [data-hx-sse], [hx-ws]," + 1648 | " [data-hx-ws], [hx-ext], [data-hx-ext], [hx-trigger], [data-hx-trigger], [hx-on], [data-hx-on]" 1649 | ); 1650 | return r; 1651 | } else { 1652 | return []; 1653 | } 1654 | } 1655 | function Ot(e) { 1656 | var n = s("#" + J(e, "form")) || d(e, "form"); 1657 | if (!n) { 1658 | return; 1659 | } 1660 | var t = function (e) { 1661 | var t = d(e.target, "button, input[type='submit']"); 1662 | if (t !== null) { 1663 | var r = ee(n); 1664 | r.lastButtonClicked = t; 1665 | } 1666 | }; 1667 | e.addEventListener("click", t); 1668 | e.addEventListener("focusin", t); 1669 | e.addEventListener("focusout", function (e) { 1670 | var t = ee(n); 1671 | t.lastButtonClicked = null; 1672 | }); 1673 | } 1674 | function Tt(e) { 1675 | var t = We(e); 1676 | var r = 0; 1677 | for (let e = 0; e < t.length; e++) { 1678 | const n = t[e]; 1679 | if (n === "{") { 1680 | r++; 1681 | } else if (n === "}") { 1682 | r--; 1683 | } 1684 | } 1685 | return r; 1686 | } 1687 | function qt(t, e, r) { 1688 | var n = ee(t); 1689 | n.onHandlers = []; 1690 | var i; 1691 | var a = function (e) { 1692 | return hr(t, function () { 1693 | if (!i) { 1694 | i = new Function("event", r); 1695 | } 1696 | i.call(t, e); 1697 | }); 1698 | }; 1699 | t.addEventListener(e, a); 1700 | n.onHandlers.push({ event: e, listener: a }); 1701 | } 1702 | function Ht(e) { 1703 | var t = Z(e, "hx-on"); 1704 | if (t) { 1705 | var r = {}; 1706 | var n = t.split("\n"); 1707 | var i = null; 1708 | var a = 0; 1709 | while (n.length > 0) { 1710 | var o = n.shift(); 1711 | var s = o.match(/^\s*([a-zA-Z:\-]+:)(.*)/); 1712 | if (a === 0 && s) { 1713 | o.split(":"); 1714 | i = s[1].slice(0, -1); 1715 | r[i] = s[2]; 1716 | } else { 1717 | r[i] += o; 1718 | } 1719 | a += Tt(o); 1720 | } 1721 | for (var l in r) { 1722 | qt(e, l, r[l]); 1723 | } 1724 | } 1725 | } 1726 | function Lt(t) { 1727 | Re(t); 1728 | for (var e = 0; e < t.attributes.length; e++) { 1729 | var r = t.attributes[e].name; 1730 | var n = t.attributes[e].value; 1731 | if (r.startsWith("hx-on:") || r.startsWith("data-hx-on:")) { 1732 | let e = r.slice(r.indexOf(":") + 1); 1733 | if (e.startsWith(":")) e = "htmx" + e; 1734 | qt(t, e, n); 1735 | } 1736 | } 1737 | } 1738 | function At(t) { 1739 | if (d(t, G.config.disableSelector)) { 1740 | g(t); 1741 | return; 1742 | } 1743 | var r = ee(t); 1744 | if (r.initHash !== Ce(t)) { 1745 | Oe(t); 1746 | r.initHash = Ce(t); 1747 | Ht(t); 1748 | oe(t, "htmx:beforeProcessNode"); 1749 | if (t.value) { 1750 | r.lastValue = t.value; 1751 | } 1752 | var e = Ge(t); 1753 | var n = yt(t, r, e); 1754 | if (!n) { 1755 | if (Y(t, "hx-boost") === "true") { 1756 | Ye(t, r, e); 1757 | } else if (o(t, "hx-trigger")) { 1758 | e.forEach(function (e) { 1759 | bt(t, e, r, function () {}); 1760 | }); 1761 | } 1762 | } 1763 | if ( 1764 | t.tagName === "FORM" || 1765 | (J(t, "type") === "submit" && o(t, "form")) 1766 | ) { 1767 | Ot(t); 1768 | } 1769 | var i = Z(t, "hx-sse"); 1770 | if (i) { 1771 | ht(t, r, i); 1772 | } 1773 | var a = Z(t, "hx-ws"); 1774 | if (a) { 1775 | st(t, r, a); 1776 | } 1777 | oe(t, "htmx:afterProcessNode"); 1778 | } 1779 | } 1780 | function Nt(e) { 1781 | e = s(e); 1782 | if (d(e, G.config.disableSelector)) { 1783 | g(e); 1784 | return; 1785 | } 1786 | At(e); 1787 | te(Rt(e), function (e) { 1788 | At(e); 1789 | }); 1790 | te(Ct(e), Lt); 1791 | } 1792 | function It(e) { 1793 | return e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(); 1794 | } 1795 | function Pt(e, t) { 1796 | var r; 1797 | if (window.CustomEvent && typeof window.CustomEvent === "function") { 1798 | r = new CustomEvent(e, { bubbles: true, cancelable: true, detail: t }); 1799 | } else { 1800 | r = K().createEvent("CustomEvent"); 1801 | r.initCustomEvent(e, true, true, t); 1802 | } 1803 | return r; 1804 | } 1805 | function ae(e, t, r) { 1806 | oe(e, t, ne({ error: t }, r)); 1807 | } 1808 | function kt(e) { 1809 | return e === "htmx:afterProcessNode"; 1810 | } 1811 | function w(e, t) { 1812 | te(Tr(e), function (e) { 1813 | try { 1814 | t(e); 1815 | } catch (e) { 1816 | x(e); 1817 | } 1818 | }); 1819 | } 1820 | function x(e) { 1821 | if (console.error) { 1822 | console.error(e); 1823 | } else if (console.log) { 1824 | console.log("ERROR: ", e); 1825 | } 1826 | } 1827 | function oe(e, t, r) { 1828 | e = s(e); 1829 | if (r == null) { 1830 | r = {}; 1831 | } 1832 | r["elt"] = e; 1833 | var n = Pt(t, r); 1834 | if (G.logger && !kt(t)) { 1835 | G.logger(e, t, r); 1836 | } 1837 | if (r.error) { 1838 | x(r.error); 1839 | oe(e, "htmx:error", { errorInfo: r }); 1840 | } 1841 | var i = e.dispatchEvent(n); 1842 | var a = It(t); 1843 | if (i && a !== t) { 1844 | var o = Pt(a, n.detail); 1845 | i = i && e.dispatchEvent(o); 1846 | } 1847 | w(e, function (e) { 1848 | i = i && e.onEvent(t, n) !== false; 1849 | }); 1850 | return i; 1851 | } 1852 | var Mt = location.pathname + location.search; 1853 | function Dt() { 1854 | var e = K().querySelector("[hx-history-elt],[data-hx-history-elt]"); 1855 | return e || K().body; 1856 | } 1857 | function Xt(e, t, r, n) { 1858 | if (!M()) { 1859 | return; 1860 | } 1861 | e = D(e); 1862 | var i = y(localStorage.getItem("htmx-history-cache")) || []; 1863 | for (var a = 0; a < i.length; a++) { 1864 | if (i[a].url === e) { 1865 | i.splice(a, 1); 1866 | break; 1867 | } 1868 | } 1869 | var o = { url: e, content: t, title: r, scroll: n }; 1870 | oe(K().body, "htmx:historyItemCreated", { item: o, cache: i }); 1871 | i.push(o); 1872 | while (i.length > G.config.historyCacheSize) { 1873 | i.shift(); 1874 | } 1875 | while (i.length > 0) { 1876 | try { 1877 | localStorage.setItem("htmx-history-cache", JSON.stringify(i)); 1878 | break; 1879 | } catch (e) { 1880 | ae(K().body, "htmx:historyCacheError", { cause: e, cache: i }); 1881 | i.shift(); 1882 | } 1883 | } 1884 | } 1885 | function Ft(e) { 1886 | if (!M()) { 1887 | return null; 1888 | } 1889 | e = D(e); 1890 | var t = y(localStorage.getItem("htmx-history-cache")) || []; 1891 | for (var r = 0; r < t.length; r++) { 1892 | if (t[r].url === e) { 1893 | return t[r]; 1894 | } 1895 | } 1896 | return null; 1897 | } 1898 | function Ut(e) { 1899 | var t = G.config.requestClass; 1900 | var r = e.cloneNode(true); 1901 | te(f(r, "." + t), function (e) { 1902 | n(e, t); 1903 | }); 1904 | return r.innerHTML; 1905 | } 1906 | function Bt() { 1907 | var e = Dt(); 1908 | var t = Mt || location.pathname + location.search; 1909 | var r = K().querySelector( 1910 | '[hx-history="false" i],[data-hx-history="false" i]' 1911 | ); 1912 | if (!r) { 1913 | oe(K().body, "htmx:beforeHistorySave", { path: t, historyElt: e }); 1914 | Xt(t, Ut(e), K().title, window.scrollY); 1915 | } 1916 | if (G.config.historyEnabled) 1917 | history.replaceState({ htmx: true }, K().title, window.location.href); 1918 | } 1919 | function Vt(e) { 1920 | if (G.config.getCacheBusterParam) { 1921 | e = e.replace(/org\.htmx\.cache-buster=[^&]*&?/, ""); 1922 | if (e.endsWith("&") || e.endsWith("?")) { 1923 | e = e.slice(0, -1); 1924 | } 1925 | } 1926 | if (G.config.historyEnabled) { 1927 | history.pushState({ htmx: true }, "", e); 1928 | } 1929 | Mt = e; 1930 | } 1931 | function jt(e) { 1932 | if (G.config.historyEnabled) history.replaceState({ htmx: true }, "", e); 1933 | Mt = e; 1934 | } 1935 | function Wt(e) { 1936 | te(e, function (e) { 1937 | e.call(); 1938 | }); 1939 | } 1940 | function _t(a) { 1941 | var e = new XMLHttpRequest(); 1942 | var o = { path: a, xhr: e }; 1943 | oe(K().body, "htmx:historyCacheMiss", o); 1944 | e.open("GET", a, true); 1945 | e.setRequestHeader("HX-History-Restore-Request", "true"); 1946 | e.onload = function () { 1947 | if (this.status >= 200 && this.status < 400) { 1948 | oe(K().body, "htmx:historyCacheMissLoad", o); 1949 | var e = l(this.response); 1950 | e = e.querySelector("[hx-history-elt],[data-hx-history-elt]") || e; 1951 | var t = Dt(); 1952 | var r = S(t); 1953 | var n = Me(this.response); 1954 | if (n) { 1955 | var i = b("title"); 1956 | if (i) { 1957 | i.innerHTML = n; 1958 | } else { 1959 | window.document.title = n; 1960 | } 1961 | } 1962 | Ie(t, e, r); 1963 | Wt(r.tasks); 1964 | Mt = a; 1965 | oe(K().body, "htmx:historyRestore", { 1966 | path: a, 1967 | cacheMiss: true, 1968 | serverResponse: this.response, 1969 | }); 1970 | } else { 1971 | ae(K().body, "htmx:historyCacheMissLoadError", o); 1972 | } 1973 | }; 1974 | e.send(); 1975 | } 1976 | function zt(e) { 1977 | Bt(); 1978 | e = e || location.pathname + location.search; 1979 | var t = Ft(e); 1980 | if (t) { 1981 | var r = l(t.content); 1982 | var n = Dt(); 1983 | var i = S(n); 1984 | Ie(n, r, i); 1985 | Wt(i.tasks); 1986 | document.title = t.title; 1987 | setTimeout(function () { 1988 | window.scrollTo(0, t.scroll); 1989 | }, 0); 1990 | Mt = e; 1991 | oe(K().body, "htmx:historyRestore", { path: e, item: t }); 1992 | } else { 1993 | if (G.config.refreshOnHistoryMiss) { 1994 | window.location.reload(true); 1995 | } else { 1996 | _t(e); 1997 | } 1998 | } 1999 | } 2000 | function $t(e) { 2001 | var t = ce(e, "hx-indicator"); 2002 | if (t == null) { 2003 | t = [e]; 2004 | } 2005 | te(t, function (e) { 2006 | var t = ee(e); 2007 | t.requestCount = (t.requestCount || 0) + 1; 2008 | e.classList["add"].call(e.classList, G.config.requestClass); 2009 | }); 2010 | return t; 2011 | } 2012 | function Gt(e) { 2013 | te(e, function (e) { 2014 | var t = ee(e); 2015 | t.requestCount = (t.requestCount || 0) - 1; 2016 | if (t.requestCount === 0) { 2017 | e.classList["remove"].call(e.classList, G.config.requestClass); 2018 | } 2019 | }); 2020 | } 2021 | function Jt(e, t) { 2022 | for (var r = 0; r < e.length; r++) { 2023 | var n = e[r]; 2024 | if (n.isSameNode(t)) { 2025 | return true; 2026 | } 2027 | } 2028 | return false; 2029 | } 2030 | function Zt(e) { 2031 | if (e.name === "" || e.name == null || e.disabled) { 2032 | return false; 2033 | } 2034 | if ( 2035 | e.type === "button" || 2036 | e.type === "submit" || 2037 | e.tagName === "image" || 2038 | e.tagName === "reset" || 2039 | e.tagName === "file" 2040 | ) { 2041 | return false; 2042 | } 2043 | if (e.type === "checkbox" || e.type === "radio") { 2044 | return e.checked; 2045 | } 2046 | return true; 2047 | } 2048 | function Kt(e, t, r) { 2049 | if (e != null && t != null) { 2050 | var n = r[e]; 2051 | if (n === undefined) { 2052 | r[e] = t; 2053 | } else if (Array.isArray(n)) { 2054 | if (Array.isArray(t)) { 2055 | r[e] = n.concat(t); 2056 | } else { 2057 | n.push(t); 2058 | } 2059 | } else { 2060 | if (Array.isArray(t)) { 2061 | r[e] = [n].concat(t); 2062 | } else { 2063 | r[e] = [n, t]; 2064 | } 2065 | } 2066 | } 2067 | } 2068 | function Yt(t, r, n, e, i) { 2069 | if (e == null || Jt(t, e)) { 2070 | return; 2071 | } else { 2072 | t.push(e); 2073 | } 2074 | if (Zt(e)) { 2075 | var a = J(e, "name"); 2076 | var o = e.value; 2077 | if (e.multiple) { 2078 | o = I(e.querySelectorAll("option:checked")).map(function (e) { 2079 | return e.value; 2080 | }); 2081 | } 2082 | if (e.files) { 2083 | o = I(e.files); 2084 | } 2085 | Kt(a, o, r); 2086 | if (i) { 2087 | Qt(e, n); 2088 | } 2089 | } 2090 | if (h(e, "form")) { 2091 | var s = e.elements; 2092 | te(s, function (e) { 2093 | Yt(t, r, n, e, i); 2094 | }); 2095 | } 2096 | } 2097 | function Qt(e, t) { 2098 | if (e.willValidate) { 2099 | oe(e, "htmx:validation:validate"); 2100 | if (!e.checkValidity()) { 2101 | t.push({ 2102 | elt: e, 2103 | message: e.validationMessage, 2104 | validity: e.validity, 2105 | }); 2106 | oe(e, "htmx:validation:failed", { 2107 | message: e.validationMessage, 2108 | validity: e.validity, 2109 | }); 2110 | } 2111 | } 2112 | } 2113 | function er(e, t) { 2114 | var r = []; 2115 | var n = {}; 2116 | var i = {}; 2117 | var a = []; 2118 | var o = ee(e); 2119 | var s = 2120 | (h(e, "form") && e.noValidate !== true) || 2121 | Z(e, "hx-validate") === "true"; 2122 | if (o.lastButtonClicked) { 2123 | s = s && o.lastButtonClicked.formNoValidate !== true; 2124 | } 2125 | if (t !== "get") { 2126 | Yt(r, i, a, d(e, "form"), s); 2127 | } 2128 | Yt(r, n, a, e, s); 2129 | if ( 2130 | o.lastButtonClicked || 2131 | e.tagName === "BUTTON" || 2132 | (e.tagName === "INPUT" && J(e, "type") === "submit") 2133 | ) { 2134 | var l = o.lastButtonClicked || e; 2135 | var u = J(l, "name"); 2136 | Kt(u, l.value, i); 2137 | } 2138 | var f = ce(e, "hx-include"); 2139 | te(f, function (e) { 2140 | Yt(r, n, a, e, s); 2141 | if (!h(e, "form")) { 2142 | te(e.querySelectorAll($e), function (e) { 2143 | Yt(r, n, a, e, s); 2144 | }); 2145 | } 2146 | }); 2147 | n = ne(n, i); 2148 | return { errors: a, values: n }; 2149 | } 2150 | function tr(e, t, r) { 2151 | if (e !== "") { 2152 | e += "&"; 2153 | } 2154 | if (String(r) === "[object Object]") { 2155 | r = JSON.stringify(r); 2156 | } 2157 | var n = encodeURIComponent(r); 2158 | e += encodeURIComponent(t) + "=" + n; 2159 | return e; 2160 | } 2161 | function rr(e) { 2162 | var t = ""; 2163 | for (var r in e) { 2164 | if (e.hasOwnProperty(r)) { 2165 | var n = e[r]; 2166 | if (Array.isArray(n)) { 2167 | te(n, function (e) { 2168 | t = tr(t, r, e); 2169 | }); 2170 | } else { 2171 | t = tr(t, r, n); 2172 | } 2173 | } 2174 | } 2175 | return t; 2176 | } 2177 | function nr(e) { 2178 | var t = new FormData(); 2179 | for (var r in e) { 2180 | if (e.hasOwnProperty(r)) { 2181 | var n = e[r]; 2182 | if (Array.isArray(n)) { 2183 | te(n, function (e) { 2184 | t.append(r, e); 2185 | }); 2186 | } else { 2187 | t.append(r, n); 2188 | } 2189 | } 2190 | } 2191 | return t; 2192 | } 2193 | function ir(e, t, r) { 2194 | var n = { 2195 | "HX-Request": "true", 2196 | "HX-Trigger": J(e, "id"), 2197 | "HX-Trigger-Name": J(e, "name"), 2198 | "HX-Target": Z(t, "id"), 2199 | "HX-Current-URL": K().location.href, 2200 | }; 2201 | cr(e, "hx-headers", false, n); 2202 | if (r !== undefined) { 2203 | n["HX-Prompt"] = r; 2204 | } 2205 | if (ee(e).boosted) { 2206 | n["HX-Boosted"] = "true"; 2207 | } 2208 | return n; 2209 | } 2210 | function ar(t, e) { 2211 | var r = Y(e, "hx-params"); 2212 | if (r) { 2213 | if (r === "none") { 2214 | return {}; 2215 | } else if (r === "*") { 2216 | return t; 2217 | } else if (r.indexOf("not ") === 0) { 2218 | te(r.substr(4).split(","), function (e) { 2219 | e = e.trim(); 2220 | delete t[e]; 2221 | }); 2222 | return t; 2223 | } else { 2224 | var n = {}; 2225 | te(r.split(","), function (e) { 2226 | e = e.trim(); 2227 | n[e] = t[e]; 2228 | }); 2229 | return n; 2230 | } 2231 | } else { 2232 | return t; 2233 | } 2234 | } 2235 | function or(e) { 2236 | return J(e, "href") && J(e, "href").indexOf("#") >= 0; 2237 | } 2238 | function sr(e, t) { 2239 | var r = t ? t : Y(e, "hx-swap"); 2240 | var n = { 2241 | swapStyle: ee(e).boosted ? "innerHTML" : G.config.defaultSwapStyle, 2242 | swapDelay: G.config.defaultSwapDelay, 2243 | settleDelay: G.config.defaultSettleDelay, 2244 | }; 2245 | if (ee(e).boosted && !or(e)) { 2246 | n["show"] = "top"; 2247 | } 2248 | if (r) { 2249 | var i = k(r); 2250 | if (i.length > 0) { 2251 | n["swapStyle"] = i[0]; 2252 | for (var a = 1; a < i.length; a++) { 2253 | var o = i[a]; 2254 | if (o.indexOf("swap:") === 0) { 2255 | n["swapDelay"] = v(o.substr(5)); 2256 | } 2257 | if (o.indexOf("settle:") === 0) { 2258 | n["settleDelay"] = v(o.substr(7)); 2259 | } 2260 | if (o.indexOf("transition:") === 0) { 2261 | n["transition"] = o.substr(11) === "true"; 2262 | } 2263 | if (o.indexOf("scroll:") === 0) { 2264 | var s = o.substr(7); 2265 | var l = s.split(":"); 2266 | var u = l.pop(); 2267 | var f = l.length > 0 ? l.join(":") : null; 2268 | n["scroll"] = u; 2269 | n["scrollTarget"] = f; 2270 | } 2271 | if (o.indexOf("show:") === 0) { 2272 | var c = o.substr(5); 2273 | var l = c.split(":"); 2274 | var h = l.pop(); 2275 | var f = l.length > 0 ? l.join(":") : null; 2276 | n["show"] = h; 2277 | n["showTarget"] = f; 2278 | } 2279 | if (o.indexOf("focus-scroll:") === 0) { 2280 | var d = o.substr("focus-scroll:".length); 2281 | n["focusScroll"] = d == "true"; 2282 | } 2283 | } 2284 | } 2285 | } 2286 | return n; 2287 | } 2288 | function lr(e) { 2289 | return ( 2290 | Y(e, "hx-encoding") === "multipart/form-data" || 2291 | (h(e, "form") && J(e, "enctype") === "multipart/form-data") 2292 | ); 2293 | } 2294 | function ur(t, r, n) { 2295 | var i = null; 2296 | w(r, function (e) { 2297 | if (i == null) { 2298 | i = e.encodeParameters(t, n, r); 2299 | } 2300 | }); 2301 | if (i != null) { 2302 | return i; 2303 | } else { 2304 | if (lr(r)) { 2305 | return nr(n); 2306 | } else { 2307 | return rr(n); 2308 | } 2309 | } 2310 | } 2311 | function S(e) { 2312 | return { tasks: [], elts: [e] }; 2313 | } 2314 | function fr(e, t) { 2315 | var r = e[0]; 2316 | var n = e[e.length - 1]; 2317 | if (t.scroll) { 2318 | var i = null; 2319 | if (t.scrollTarget) { 2320 | i = ie(r, t.scrollTarget); 2321 | } 2322 | if (t.scroll === "top" && (r || i)) { 2323 | i = i || r; 2324 | i.scrollTop = 0; 2325 | } 2326 | if (t.scroll === "bottom" && (n || i)) { 2327 | i = i || n; 2328 | i.scrollTop = i.scrollHeight; 2329 | } 2330 | } 2331 | if (t.show) { 2332 | var i = null; 2333 | if (t.showTarget) { 2334 | var a = t.showTarget; 2335 | if (t.showTarget === "window") { 2336 | a = "body"; 2337 | } 2338 | i = ie(r, a); 2339 | } 2340 | if (t.show === "top" && (r || i)) { 2341 | i = i || r; 2342 | i.scrollIntoView({ 2343 | block: "start", 2344 | behavior: G.config.scrollBehavior, 2345 | }); 2346 | } 2347 | if (t.show === "bottom" && (n || i)) { 2348 | i = i || n; 2349 | i.scrollIntoView({ block: "end", behavior: G.config.scrollBehavior }); 2350 | } 2351 | } 2352 | } 2353 | function cr(e, t, r, n) { 2354 | if (n == null) { 2355 | n = {}; 2356 | } 2357 | if (e == null) { 2358 | return n; 2359 | } 2360 | var i = Z(e, t); 2361 | if (i) { 2362 | var a = i.trim(); 2363 | var o = r; 2364 | if (a === "unset") { 2365 | return null; 2366 | } 2367 | if (a.indexOf("javascript:") === 0) { 2368 | a = a.substr(11); 2369 | o = true; 2370 | } else if (a.indexOf("js:") === 0) { 2371 | a = a.substr(3); 2372 | o = true; 2373 | } 2374 | if (a.indexOf("{") !== 0) { 2375 | a = "{" + a + "}"; 2376 | } 2377 | var s; 2378 | if (o) { 2379 | s = hr( 2380 | e, 2381 | function () { 2382 | return Function("return (" + a + ")")(); 2383 | }, 2384 | {} 2385 | ); 2386 | } else { 2387 | s = y(a); 2388 | } 2389 | for (var l in s) { 2390 | if (s.hasOwnProperty(l)) { 2391 | if (n[l] == null) { 2392 | n[l] = s[l]; 2393 | } 2394 | } 2395 | } 2396 | } 2397 | return cr(u(e), t, r, n); 2398 | } 2399 | function hr(e, t, r) { 2400 | if (G.config.allowEval) { 2401 | return t(); 2402 | } else { 2403 | ae(e, "htmx:evalDisallowedError"); 2404 | return r; 2405 | } 2406 | } 2407 | function dr(e, t) { 2408 | return cr(e, "hx-vars", true, t); 2409 | } 2410 | function vr(e, t) { 2411 | return cr(e, "hx-vals", false, t); 2412 | } 2413 | function gr(e) { 2414 | return ne(dr(e), vr(e)); 2415 | } 2416 | function pr(t, r, n) { 2417 | if (n !== null) { 2418 | try { 2419 | t.setRequestHeader(r, n); 2420 | } catch (e) { 2421 | t.setRequestHeader(r, encodeURIComponent(n)); 2422 | t.setRequestHeader(r + "-URI-AutoEncoded", "true"); 2423 | } 2424 | } 2425 | } 2426 | function mr(t) { 2427 | if (t.responseURL && typeof URL !== "undefined") { 2428 | try { 2429 | var e = new URL(t.responseURL); 2430 | return e.pathname + e.search; 2431 | } catch (e) { 2432 | ae(K().body, "htmx:badResponseUrl", { url: t.responseURL }); 2433 | } 2434 | } 2435 | } 2436 | function E(e, t) { 2437 | return e.getAllResponseHeaders().match(t); 2438 | } 2439 | function xr(e, t, r) { 2440 | e = e.toLowerCase(); 2441 | if (r) { 2442 | if (r instanceof Element || L(r, "String")) { 2443 | return se(e, t, null, null, { 2444 | targetOverride: s(r), 2445 | returnPromise: true, 2446 | }); 2447 | } else { 2448 | return se(e, t, s(r.source), r.event, { 2449 | handler: r.handler, 2450 | headers: r.headers, 2451 | values: r.values, 2452 | targetOverride: s(r.target), 2453 | swapOverride: r.swap, 2454 | returnPromise: true, 2455 | }); 2456 | } 2457 | } else { 2458 | return se(e, t, null, null, { returnPromise: true }); 2459 | } 2460 | } 2461 | function yr(e) { 2462 | var t = []; 2463 | while (e) { 2464 | t.push(e); 2465 | e = e.parentElement; 2466 | } 2467 | return t; 2468 | } 2469 | function br(e, t, r) { 2470 | var n = new URL(t, document.location.href); 2471 | var i = document.location.origin; 2472 | var a = i === n.origin; 2473 | if (G.config.selfRequestsOnly) { 2474 | if (!a) { 2475 | return false; 2476 | } 2477 | } 2478 | return oe(e, "htmx:validateUrl", ne({ url: n, sameHost: a }, r)); 2479 | } 2480 | function se(e, t, n, r, i, M) { 2481 | var a = null; 2482 | var o = null; 2483 | i = i != null ? i : {}; 2484 | if (i.returnPromise && typeof Promise !== "undefined") { 2485 | var s = new Promise(function (e, t) { 2486 | a = e; 2487 | o = t; 2488 | }); 2489 | } 2490 | if (n == null) { 2491 | n = K().body; 2492 | } 2493 | var D = i.handler || Sr; 2494 | if (!re(n)) { 2495 | return; 2496 | } 2497 | var l = i.targetOverride || de(n); 2498 | if (l == null || l == fe) { 2499 | ae(n, "htmx:targetError", { target: Z(n, "hx-target") }); 2500 | return; 2501 | } 2502 | if (!M) { 2503 | var X = function () { 2504 | return se(e, t, n, r, i, true); 2505 | }; 2506 | var F = { 2507 | target: l, 2508 | elt: n, 2509 | path: t, 2510 | verb: e, 2511 | triggeringEvent: r, 2512 | etc: i, 2513 | issueRequest: X, 2514 | }; 2515 | if (oe(n, "htmx:confirm", F) === false) { 2516 | return; 2517 | } 2518 | } 2519 | var u = n; 2520 | var f = ee(n); 2521 | var c = Y(n, "hx-sync"); 2522 | var h = null; 2523 | var d = false; 2524 | if (c) { 2525 | var v = c.split(":"); 2526 | var g = v[0].trim(); 2527 | if (g === "this") { 2528 | u = he(n, "hx-sync"); 2529 | } else { 2530 | u = ie(n, g); 2531 | } 2532 | c = (v[1] || "drop").trim(); 2533 | f = ee(u); 2534 | if (c === "drop" && f.xhr && f.abortable !== true) { 2535 | return; 2536 | } else if (c === "abort") { 2537 | if (f.xhr) { 2538 | return; 2539 | } else { 2540 | d = true; 2541 | } 2542 | } else if (c === "replace") { 2543 | oe(u, "htmx:abort"); 2544 | } else if (c.indexOf("queue") === 0) { 2545 | var U = c.split(" "); 2546 | h = (U[1] || "last").trim(); 2547 | } 2548 | } 2549 | if (f.xhr) { 2550 | if (f.abortable) { 2551 | oe(u, "htmx:abort"); 2552 | } else { 2553 | if (h == null) { 2554 | if (r) { 2555 | var p = ee(r); 2556 | if (p && p.triggerSpec && p.triggerSpec.queue) { 2557 | h = p.triggerSpec.queue; 2558 | } 2559 | } 2560 | if (h == null) { 2561 | h = "last"; 2562 | } 2563 | } 2564 | if (f.queuedRequests == null) { 2565 | f.queuedRequests = []; 2566 | } 2567 | if (h === "first" && f.queuedRequests.length === 0) { 2568 | f.queuedRequests.push(function () { 2569 | se(e, t, n, r, i); 2570 | }); 2571 | } else if (h === "all") { 2572 | f.queuedRequests.push(function () { 2573 | se(e, t, n, r, i); 2574 | }); 2575 | } else if (h === "last") { 2576 | f.queuedRequests = []; 2577 | f.queuedRequests.push(function () { 2578 | se(e, t, n, r, i); 2579 | }); 2580 | } 2581 | return; 2582 | } 2583 | } 2584 | var m = new XMLHttpRequest(); 2585 | f.xhr = m; 2586 | f.abortable = d; 2587 | var x = function () { 2588 | f.xhr = null; 2589 | f.abortable = false; 2590 | if (f.queuedRequests != null && f.queuedRequests.length > 0) { 2591 | var e = f.queuedRequests.shift(); 2592 | e(); 2593 | } 2594 | }; 2595 | var y = Y(n, "hx-prompt"); 2596 | if (y) { 2597 | var b = prompt(y); 2598 | if (b === null || !oe(n, "htmx:prompt", { prompt: b, target: l })) { 2599 | Q(a); 2600 | x(); 2601 | return s; 2602 | } 2603 | } 2604 | var w = Y(n, "hx-confirm"); 2605 | if (w) { 2606 | if (!confirm(w)) { 2607 | Q(a); 2608 | x(); 2609 | return s; 2610 | } 2611 | } 2612 | var S = ir(n, l, b); 2613 | if (i.headers) { 2614 | S = ne(S, i.headers); 2615 | } 2616 | var E = er(n, e); 2617 | var C = E.errors; 2618 | var R = E.values; 2619 | if (i.values) { 2620 | R = ne(R, i.values); 2621 | } 2622 | var B = gr(n); 2623 | var O = ne(R, B); 2624 | var T = ar(O, n); 2625 | if (e !== "get" && !lr(n)) { 2626 | S["Content-Type"] = "application/x-www-form-urlencoded"; 2627 | } 2628 | if (G.config.getCacheBusterParam && e === "get") { 2629 | T["org.htmx.cache-buster"] = J(l, "id") || "true"; 2630 | } 2631 | if (t == null || t === "") { 2632 | t = K().location.href; 2633 | } 2634 | var q = cr(n, "hx-request"); 2635 | var V = ee(n).boosted; 2636 | var H = G.config.methodsThatUseUrlParams.indexOf(e) >= 0; 2637 | var L = { 2638 | boosted: V, 2639 | useUrlParams: H, 2640 | parameters: T, 2641 | unfilteredParameters: O, 2642 | headers: S, 2643 | target: l, 2644 | verb: e, 2645 | errors: C, 2646 | withCredentials: 2647 | i.credentials || q.credentials || G.config.withCredentials, 2648 | timeout: i.timeout || q.timeout || G.config.timeout, 2649 | path: t, 2650 | triggeringEvent: r, 2651 | }; 2652 | if (!oe(n, "htmx:configRequest", L)) { 2653 | Q(a); 2654 | x(); 2655 | return s; 2656 | } 2657 | t = L.path; 2658 | e = L.verb; 2659 | S = L.headers; 2660 | T = L.parameters; 2661 | C = L.errors; 2662 | H = L.useUrlParams; 2663 | if (C && C.length > 0) { 2664 | oe(n, "htmx:validation:halted", L); 2665 | Q(a); 2666 | x(); 2667 | return s; 2668 | } 2669 | var j = t.split("#"); 2670 | var W = j[0]; 2671 | var A = j[1]; 2672 | var N = t; 2673 | if (H) { 2674 | N = W; 2675 | var _ = Object.keys(T).length !== 0; 2676 | if (_) { 2677 | if (N.indexOf("?") < 0) { 2678 | N += "?"; 2679 | } else { 2680 | N += "&"; 2681 | } 2682 | N += rr(T); 2683 | if (A) { 2684 | N += "#" + A; 2685 | } 2686 | } 2687 | } 2688 | if (!br(n, N, L)) { 2689 | ae(n, "htmx:invalidPath", L); 2690 | return; 2691 | } 2692 | m.open(e.toUpperCase(), N, true); 2693 | m.overrideMimeType("text/html"); 2694 | m.withCredentials = L.withCredentials; 2695 | m.timeout = L.timeout; 2696 | if (q.noHeaders) { 2697 | } else { 2698 | for (var I in S) { 2699 | if (S.hasOwnProperty(I)) { 2700 | var z = S[I]; 2701 | pr(m, I, z); 2702 | } 2703 | } 2704 | } 2705 | var P = { 2706 | xhr: m, 2707 | target: l, 2708 | requestConfig: L, 2709 | etc: i, 2710 | boosted: V, 2711 | pathInfo: { requestPath: t, finalRequestPath: N, anchor: A }, 2712 | }; 2713 | m.onload = function () { 2714 | try { 2715 | var e = yr(n); 2716 | P.pathInfo.responsePath = mr(m); 2717 | D(n, P); 2718 | Gt(k); 2719 | oe(n, "htmx:afterRequest", P); 2720 | oe(n, "htmx:afterOnLoad", P); 2721 | if (!re(n)) { 2722 | var t = null; 2723 | while (e.length > 0 && t == null) { 2724 | var r = e.shift(); 2725 | if (re(r)) { 2726 | t = r; 2727 | } 2728 | } 2729 | if (t) { 2730 | oe(t, "htmx:afterRequest", P); 2731 | oe(t, "htmx:afterOnLoad", P); 2732 | } 2733 | } 2734 | Q(a); 2735 | x(); 2736 | } catch (e) { 2737 | ae(n, "htmx:onLoadError", ne({ error: e }, P)); 2738 | throw e; 2739 | } 2740 | }; 2741 | m.onerror = function () { 2742 | Gt(k); 2743 | ae(n, "htmx:afterRequest", P); 2744 | ae(n, "htmx:sendError", P); 2745 | Q(o); 2746 | x(); 2747 | }; 2748 | m.onabort = function () { 2749 | Gt(k); 2750 | ae(n, "htmx:afterRequest", P); 2751 | ae(n, "htmx:sendAbort", P); 2752 | Q(o); 2753 | x(); 2754 | }; 2755 | m.ontimeout = function () { 2756 | Gt(k); 2757 | ae(n, "htmx:afterRequest", P); 2758 | ae(n, "htmx:timeout", P); 2759 | Q(o); 2760 | x(); 2761 | }; 2762 | if (!oe(n, "htmx:beforeRequest", P)) { 2763 | Q(a); 2764 | x(); 2765 | return s; 2766 | } 2767 | var k = $t(n); 2768 | te(["loadstart", "loadend", "progress", "abort"], function (t) { 2769 | te([m, m.upload], function (e) { 2770 | e.addEventListener(t, function (e) { 2771 | oe(n, "htmx:xhr:" + t, { 2772 | lengthComputable: e.lengthComputable, 2773 | loaded: e.loaded, 2774 | total: e.total, 2775 | }); 2776 | }); 2777 | }); 2778 | }); 2779 | oe(n, "htmx:beforeSend", P); 2780 | var $ = H ? null : ur(m, n, T); 2781 | m.send($); 2782 | return s; 2783 | } 2784 | function wr(e, t) { 2785 | var r = t.xhr; 2786 | var n = null; 2787 | var i = null; 2788 | if (E(r, /HX-Push:/i)) { 2789 | n = r.getResponseHeader("HX-Push"); 2790 | i = "push"; 2791 | } else if (E(r, /HX-Push-Url:/i)) { 2792 | n = r.getResponseHeader("HX-Push-Url"); 2793 | i = "push"; 2794 | } else if (E(r, /HX-Replace-Url:/i)) { 2795 | n = r.getResponseHeader("HX-Replace-Url"); 2796 | i = "replace"; 2797 | } 2798 | if (n) { 2799 | if (n === "false") { 2800 | return {}; 2801 | } else { 2802 | return { type: i, path: n }; 2803 | } 2804 | } 2805 | var a = t.pathInfo.finalRequestPath; 2806 | var o = t.pathInfo.responsePath; 2807 | var s = Y(e, "hx-push-url"); 2808 | var l = Y(e, "hx-replace-url"); 2809 | var u = ee(e).boosted; 2810 | var f = null; 2811 | var c = null; 2812 | if (s) { 2813 | f = "push"; 2814 | c = s; 2815 | } else if (l) { 2816 | f = "replace"; 2817 | c = l; 2818 | } else if (u) { 2819 | f = "push"; 2820 | c = o || a; 2821 | } 2822 | if (c) { 2823 | if (c === "false") { 2824 | return {}; 2825 | } 2826 | if (c === "true") { 2827 | c = o || a; 2828 | } 2829 | if (t.pathInfo.anchor && c.indexOf("#") === -1) { 2830 | c = c + "#" + t.pathInfo.anchor; 2831 | } 2832 | return { type: f, path: c }; 2833 | } else { 2834 | return {}; 2835 | } 2836 | } 2837 | function Sr(l, u) { 2838 | var f = u.xhr; 2839 | var c = u.target; 2840 | var e = u.etc; 2841 | if (!oe(l, "htmx:beforeOnLoad", u)) return; 2842 | if (E(f, /HX-Trigger:/i)) { 2843 | Xe(f, "HX-Trigger", l); 2844 | } 2845 | if (E(f, /HX-Location:/i)) { 2846 | Bt(); 2847 | var t = f.getResponseHeader("HX-Location"); 2848 | var h; 2849 | if (t.indexOf("{") === 0) { 2850 | h = y(t); 2851 | t = h["path"]; 2852 | delete h["path"]; 2853 | } 2854 | xr("GET", t, h).then(function () { 2855 | Vt(t); 2856 | }); 2857 | return; 2858 | } 2859 | if (E(f, /HX-Redirect:/i)) { 2860 | location.href = f.getResponseHeader("HX-Redirect"); 2861 | return; 2862 | } 2863 | if (E(f, /HX-Refresh:/i)) { 2864 | if ("true" === f.getResponseHeader("HX-Refresh")) { 2865 | location.reload(); 2866 | return; 2867 | } 2868 | } 2869 | if (E(f, /HX-Retarget:/i)) { 2870 | u.target = K().querySelector(f.getResponseHeader("HX-Retarget")); 2871 | } 2872 | var d = wr(l, u); 2873 | var r = f.status >= 200 && f.status < 400 && f.status !== 204; 2874 | var v = f.response; 2875 | var n = f.status >= 400; 2876 | var i = ne({ shouldSwap: r, serverResponse: v, isError: n }, u); 2877 | if (!oe(c, "htmx:beforeSwap", i)) return; 2878 | c = i.target; 2879 | v = i.serverResponse; 2880 | n = i.isError; 2881 | u.target = c; 2882 | u.failed = n; 2883 | u.successful = !n; 2884 | if (i.shouldSwap) { 2885 | if (f.status === 286) { 2886 | Je(l); 2887 | } 2888 | w(l, function (e) { 2889 | v = e.transformResponse(v, f, l); 2890 | }); 2891 | if (d.type) { 2892 | Bt(); 2893 | } 2894 | var a = e.swapOverride; 2895 | if (E(f, /HX-Reswap:/i)) { 2896 | a = f.getResponseHeader("HX-Reswap"); 2897 | } 2898 | var h = sr(l, a); 2899 | c.classList.add(G.config.swappingClass); 2900 | var g = null; 2901 | var p = null; 2902 | var o = function () { 2903 | try { 2904 | var e = document.activeElement; 2905 | var t = {}; 2906 | try { 2907 | t = { 2908 | elt: e, 2909 | start: e ? e.selectionStart : null, 2910 | end: e ? e.selectionEnd : null, 2911 | }; 2912 | } catch (e) {} 2913 | var r; 2914 | if (E(f, /HX-Reselect:/i)) { 2915 | r = f.getResponseHeader("HX-Reselect"); 2916 | } 2917 | var n = S(c); 2918 | De(h.swapStyle, c, l, v, n, r); 2919 | if (t.elt && !re(t.elt) && J(t.elt, "id")) { 2920 | var i = document.getElementById(J(t.elt, "id")); 2921 | var a = { 2922 | preventScroll: 2923 | h.focusScroll !== undefined 2924 | ? !h.focusScroll 2925 | : !G.config.defaultFocusScroll, 2926 | }; 2927 | if (i) { 2928 | if (t.start && i.setSelectionRange) { 2929 | try { 2930 | i.setSelectionRange(t.start, t.end); 2931 | } catch (e) {} 2932 | } 2933 | i.focus(a); 2934 | } 2935 | } 2936 | c.classList.remove(G.config.swappingClass); 2937 | te(n.elts, function (e) { 2938 | if (e.classList) { 2939 | e.classList.add(G.config.settlingClass); 2940 | } 2941 | oe(e, "htmx:afterSwap", u); 2942 | }); 2943 | if (E(f, /HX-Trigger-After-Swap:/i)) { 2944 | var o = l; 2945 | if (!re(l)) { 2946 | o = K().body; 2947 | } 2948 | Xe(f, "HX-Trigger-After-Swap", o); 2949 | } 2950 | var s = function () { 2951 | te(n.tasks, function (e) { 2952 | e.call(); 2953 | }); 2954 | te(n.elts, function (e) { 2955 | if (e.classList) { 2956 | e.classList.remove(G.config.settlingClass); 2957 | } 2958 | oe(e, "htmx:afterSettle", u); 2959 | }); 2960 | if (d.type) { 2961 | if (d.type === "push") { 2962 | Vt(d.path); 2963 | oe(K().body, "htmx:pushedIntoHistory", { path: d.path }); 2964 | } else { 2965 | jt(d.path); 2966 | oe(K().body, "htmx:replacedInHistory", { path: d.path }); 2967 | } 2968 | } 2969 | if (u.pathInfo.anchor) { 2970 | var e = b("#" + u.pathInfo.anchor); 2971 | if (e) { 2972 | e.scrollIntoView({ block: "start", behavior: "auto" }); 2973 | } 2974 | } 2975 | if (n.title) { 2976 | var t = b("title"); 2977 | if (t) { 2978 | t.innerHTML = n.title; 2979 | } else { 2980 | window.document.title = n.title; 2981 | } 2982 | } 2983 | fr(n.elts, h); 2984 | if (E(f, /HX-Trigger-After-Settle:/i)) { 2985 | var r = l; 2986 | if (!re(l)) { 2987 | r = K().body; 2988 | } 2989 | Xe(f, "HX-Trigger-After-Settle", r); 2990 | } 2991 | Q(g); 2992 | }; 2993 | if (h.settleDelay > 0) { 2994 | setTimeout(s, h.settleDelay); 2995 | } else { 2996 | s(); 2997 | } 2998 | } catch (e) { 2999 | ae(l, "htmx:swapError", u); 3000 | Q(p); 3001 | throw e; 3002 | } 3003 | }; 3004 | var s = G.config.globalViewTransitions; 3005 | if (h.hasOwnProperty("transition")) { 3006 | s = h.transition; 3007 | } 3008 | if ( 3009 | s && 3010 | oe(l, "htmx:beforeTransition", u) && 3011 | typeof Promise !== "undefined" && 3012 | document.startViewTransition 3013 | ) { 3014 | var m = new Promise(function (e, t) { 3015 | g = e; 3016 | p = t; 3017 | }); 3018 | var x = o; 3019 | o = function () { 3020 | document.startViewTransition(function () { 3021 | x(); 3022 | return m; 3023 | }); 3024 | }; 3025 | } 3026 | if (h.swapDelay > 0) { 3027 | setTimeout(o, h.swapDelay); 3028 | } else { 3029 | o(); 3030 | } 3031 | } 3032 | if (n) { 3033 | ae( 3034 | l, 3035 | "htmx:responseError", 3036 | ne( 3037 | { 3038 | error: 3039 | "Response Status Error Code " + 3040 | f.status + 3041 | " from " + 3042 | u.pathInfo.requestPath, 3043 | }, 3044 | u 3045 | ) 3046 | ); 3047 | } 3048 | } 3049 | var Er = {}; 3050 | function Cr() { 3051 | return { 3052 | init: function (e) { 3053 | return null; 3054 | }, 3055 | onEvent: function (e, t) { 3056 | return true; 3057 | }, 3058 | transformResponse: function (e, t, r) { 3059 | return e; 3060 | }, 3061 | isInlineSwap: function (e) { 3062 | return false; 3063 | }, 3064 | handleSwap: function (e, t, r, n) { 3065 | return false; 3066 | }, 3067 | encodeParameters: function (e, t, r) { 3068 | return null; 3069 | }, 3070 | }; 3071 | } 3072 | function Rr(e, t) { 3073 | if (t.init) { 3074 | t.init(C); 3075 | } 3076 | Er[e] = ne(Cr(), t); 3077 | } 3078 | function Or(e) { 3079 | delete Er[e]; 3080 | } 3081 | function Tr(e, r, n) { 3082 | if (e == undefined) { 3083 | return r; 3084 | } 3085 | if (r == undefined) { 3086 | r = []; 3087 | } 3088 | if (n == undefined) { 3089 | n = []; 3090 | } 3091 | var t = Z(e, "hx-ext"); 3092 | if (t) { 3093 | te(t.split(","), function (e) { 3094 | e = e.replace(/ /g, ""); 3095 | if (e.slice(0, 7) == "ignore:") { 3096 | n.push(e.slice(7)); 3097 | return; 3098 | } 3099 | if (n.indexOf(e) < 0) { 3100 | var t = Er[e]; 3101 | if (t && r.indexOf(t) < 0) { 3102 | r.push(t); 3103 | } 3104 | } 3105 | }); 3106 | } 3107 | return Tr(u(e), r, n); 3108 | } 3109 | var qr = false; 3110 | K().addEventListener("DOMContentLoaded", function () { 3111 | qr = true; 3112 | }); 3113 | function Hr(e) { 3114 | if (qr || K().readyState === "complete") { 3115 | e(); 3116 | } else { 3117 | K().addEventListener("DOMContentLoaded", e); 3118 | } 3119 | } 3120 | function Lr() { 3121 | if (G.config.includeIndicatorStyles !== false) { 3122 | K().head.insertAdjacentHTML( 3123 | "beforeend", 3124 | "" 3135 | ); 3136 | } 3137 | } 3138 | function Ar() { 3139 | var e = K().querySelector('meta[name="htmx-config"]'); 3140 | if (e) { 3141 | return y(e.content); 3142 | } else { 3143 | return null; 3144 | } 3145 | } 3146 | function Nr() { 3147 | var e = Ar(); 3148 | if (e) { 3149 | G.config = ne(G.config, e); 3150 | } 3151 | } 3152 | Hr(function () { 3153 | Nr(); 3154 | Lr(); 3155 | var e = K().body; 3156 | Nt(e); 3157 | var t = K().querySelectorAll( 3158 | "[hx-trigger='restored'],[data-hx-trigger='restored']" 3159 | ); 3160 | e.addEventListener("htmx:abort", function (e) { 3161 | var t = e.target; 3162 | var r = ee(t); 3163 | if (r && r.xhr) { 3164 | r.xhr.abort(); 3165 | } 3166 | }); 3167 | var r = window.onpopstate; 3168 | window.onpopstate = function (e) { 3169 | if (e.state && e.state.htmx) { 3170 | zt(); 3171 | te(t, function (e) { 3172 | oe(e, "htmx:restored", { document: K(), triggerEvent: oe }); 3173 | }); 3174 | } else { 3175 | if (r) { 3176 | r(e); 3177 | } 3178 | } 3179 | }; 3180 | setTimeout(function () { 3181 | oe(e, "htmx:load", {}); 3182 | e = null; 3183 | }, 0); 3184 | }); 3185 | return G; 3186 | })(); 3187 | }); 3188 | --------------------------------------------------------------------------------