├── .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(/" + e + "", 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("", 1);
216 | case "col":
217 | return i("", 2);
218 | case "tr":
219 | return i("", 2);
220 | case "td":
221 | case "th":
222 | return i("", 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(/