htmx.org 1.8.5 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -1
- package/README.md +7 -4
- package/dist/ext/class-tools.js +21 -13
- package/dist/ext/ws.js +11 -5
- package/dist/htmx.js +157 -18
- package/dist/htmx.min.js +1 -1
- package/dist/htmx.min.js.gz +0 -0
- package/package.json +6 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,27 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## [1.
|
|
3
|
+
## [1.9.0] - 2023-04-11
|
|
4
|
+
|
|
5
|
+
* Support for generalized inline event handling via the new [`hx-on`](/attributes/hx-on) attribute, which addresses
|
|
6
|
+
the shortcoming of limited [`onevent` properties](https://developer.mozilla.org/en-US/docs/Web/Events/Event_handlers#using_onevent_properties) attributes in HTML.
|
|
7
|
+
* Support for [view transitions](/docs#view-transitions), based on the experimental [View Transitions API](https://developer.mozilla.org/en-US/docs/Web/API/View_Transitions_API)
|
|
8
|
+
currently available in Chrome 111+ and coming to other browsers soon.
|
|
9
|
+
* Support for "naked" [`hx-trigger`](/attributes/hx-trigger) attributes, where an `hx-trigger` is present on an element
|
|
10
|
+
that does not have an `hx-get`, etc. defined on it. Instead, it will trigger the new `htmx:triggered` event, which can
|
|
11
|
+
be responded to via your [preferred scripting solution](/docs#scripting).
|
|
12
|
+
* A memory leak fix by [@croxton](https://github.com/bigskysoftware/htmx/commit/8cd3a480a7388877628ce8b9b8e50cd5df48bb81)
|
|
13
|
+
* The htmx website has been migrated from 11ty to [zola](https://www.getzola.org/) by [@danieljsummers](https://github.com/danieljsummers), cutting
|
|
14
|
+
way down on the number of "development" javascript dependencies
|
|
15
|
+
* Many other smaller bug fixes
|
|
16
|
+
|
|
17
|
+
## [1.8.6] - 2023-03-02
|
|
18
|
+
|
|
19
|
+
* ESM support!
|
|
20
|
+
* Sass has been vanquished from the htmx.org website, which should set us up for some good progress going forward
|
|
21
|
+
* Fixed a bug where the `changed` modifier on `keyup` did not work properly if an input was tabbed into
|
|
22
|
+
* Many other smaller bug fixes and doc fixes
|
|
23
|
+
|
|
24
|
+
## [1.8.5] - 2023-01-17
|
|
4
25
|
|
|
5
26
|
* Support a new optional cache-busting configuration option, `getCacheBusterParam`, to allow browsers to disambiguate
|
|
6
27
|
between `GET` requests from htmx and from the raw browser
|
package/README.md
CHANGED
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
[](https://bundlephobia.com/result?p=htmx.org)
|
|
8
8
|
[](https://bundlephobia.com/result?p=htmx.org)
|
|
9
9
|
|
|
10
|
-
|
|
11
10
|
## introduction
|
|
12
11
|
|
|
13
12
|
htmx allows you to access [AJAX](https://htmx.org/docs#ajax), [CSS Transitions](https://htmx.org/docs#css_transitions),
|
|
@@ -34,7 +33,7 @@ By removing these arbitrary constraints htmx completes HTML as a
|
|
|
34
33
|
## quick start
|
|
35
34
|
|
|
36
35
|
```html
|
|
37
|
-
<script src="https://unpkg.com/htmx.org@1.
|
|
36
|
+
<script src="https://unpkg.com/htmx.org@1.9.0"></script>
|
|
38
37
|
<!-- have a button POST a click via AJAX -->
|
|
39
38
|
<button hx-post="/clicked" hx-swap="outerHTML">
|
|
40
39
|
Click Me
|
|
@@ -67,20 +66,24 @@ Note there is an old broken package called `htmx`. This is `htmx.org`.
|
|
|
67
66
|
* please write code, including tests, in ES5 for [IE 11 compatibility](https://stackoverflow.com/questions/39902809/support-for-es6-in-internet-explorer-11)
|
|
68
67
|
* please include test cases in [`/test`](https://github.com/bigskysoftware/htmx/tree/dev/test) and docs in [`/www`](https://github.com/bigskysoftware/htmx/tree/dev/www)
|
|
69
68
|
* if you are adding a feature, consider doing it as an [extension](https://htmx.org/extensions) instead to
|
|
70
|
-
keep the core htmx code tidy
|
|
69
|
+
keep the core htmx code tidy
|
|
71
70
|
* development pull requests should be against the `dev` branch, docs fixes can be made directly against `master`
|
|
72
71
|
* No time? Then [become a sponsor](https://github.com/sponsors/bigskysoftware#sponsors)
|
|
73
72
|
|
|
74
73
|
### hacking guide
|
|
75
74
|
|
|
76
75
|
To develop htmx locally, you will need to install the development dependencies.
|
|
77
|
-
|
|
76
|
+
|
|
77
|
+
__Requires Python and Node 15.__
|
|
78
|
+
|
|
79
|
+
Run:
|
|
78
80
|
|
|
79
81
|
```
|
|
80
82
|
npm install
|
|
81
83
|
```
|
|
82
84
|
|
|
83
85
|
Then, run a web server in the root.
|
|
86
|
+
|
|
84
87
|
This is easiest with Python:
|
|
85
88
|
|
|
86
89
|
```
|
package/dist/ext/class-tools.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(){
|
|
1
|
+
(function () {
|
|
2
2
|
|
|
3
3
|
function splitOnWhitespace(trigger) {
|
|
4
4
|
return trigger.split(/\s+/);
|
|
@@ -20,15 +20,29 @@
|
|
|
20
20
|
delay = 100;
|
|
21
21
|
}
|
|
22
22
|
return {
|
|
23
|
-
operation:operation,
|
|
24
|
-
cssClass:cssClass,
|
|
25
|
-
delay:delay
|
|
23
|
+
operation: operation,
|
|
24
|
+
cssClass: cssClass,
|
|
25
|
+
delay: delay
|
|
26
26
|
}
|
|
27
27
|
} else {
|
|
28
28
|
return null;
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
+
function performOperation(elt, classOperation, classList, currentRunTime) {
|
|
33
|
+
setTimeout(function () {
|
|
34
|
+
elt.classList[classOperation.operation].call(elt.classList, classOperation.cssClass);
|
|
35
|
+
}, currentRunTime)
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function toggleOperation(elt, classOperation, classList, currentRunTime) {
|
|
39
|
+
setTimeout(function () {
|
|
40
|
+
setInterval(function () {
|
|
41
|
+
elt.classList[classOperation.operation].call(elt.classList, classOperation.cssClass);
|
|
42
|
+
}, classOperation.delay);
|
|
43
|
+
}, currentRunTime)
|
|
44
|
+
}
|
|
45
|
+
|
|
32
46
|
function processClassList(elt, classList) {
|
|
33
47
|
var runs = classList.split("&");
|
|
34
48
|
for (var i = 0; i < runs.length; i++) {
|
|
@@ -41,17 +55,11 @@
|
|
|
41
55
|
var classOperation = parseClassOperation(trimmedValue);
|
|
42
56
|
if (classOperation) {
|
|
43
57
|
if (classOperation.operation === "toggle") {
|
|
44
|
-
|
|
45
|
-
setInterval(function () {
|
|
46
|
-
elt.classList[classOperation.operation].call(elt.classList, classOperation.cssClass);
|
|
47
|
-
}, classOperation.delay);
|
|
48
|
-
}, currentRunTime);
|
|
58
|
+
toggleOperation(elt, classOperation, classList, currentRunTime);
|
|
49
59
|
currentRunTime = currentRunTime + classOperation.delay;
|
|
50
60
|
} else {
|
|
51
61
|
currentRunTime = currentRunTime + classOperation.delay;
|
|
52
|
-
|
|
53
|
-
elt.classList[classOperation.operation].call(elt.classList, classOperation.cssClass);
|
|
54
|
-
}, currentRunTime);
|
|
62
|
+
performOperation(elt, classOperation, classList, currentRunTime);
|
|
55
63
|
}
|
|
56
64
|
}
|
|
57
65
|
}
|
|
@@ -81,4 +89,4 @@
|
|
|
81
89
|
}
|
|
82
90
|
}
|
|
83
91
|
});
|
|
84
|
-
})();
|
|
92
|
+
})();
|
package/dist/ext/ws.js
CHANGED
|
@@ -177,11 +177,6 @@ This extension adds support for WebSockets to htmx. See /www/extensions/ws.md f
|
|
|
177
177
|
*/
|
|
178
178
|
function createWebsocketWrapper(socketElt, socketFunc) {
|
|
179
179
|
var wrapper = {
|
|
180
|
-
publicInterface: {
|
|
181
|
-
send: this.send,
|
|
182
|
-
sendImmediately: this.sendImmediately,
|
|
183
|
-
queue: this.queue
|
|
184
|
-
},
|
|
185
180
|
socket: null,
|
|
186
181
|
messageQueue: [],
|
|
187
182
|
retryCount: 0,
|
|
@@ -247,6 +242,11 @@ This extension adds support for WebSockets to htmx. See /www/extensions/ws.md f
|
|
|
247
242
|
/** @type {WebSocket} */
|
|
248
243
|
var socket = socketFunc();
|
|
249
244
|
|
|
245
|
+
// The event.type detail is added for interface conformance with the
|
|
246
|
+
// other two lifecycle events (open and close) so a single handler method
|
|
247
|
+
// can handle them polymorphically, if required.
|
|
248
|
+
api.triggerEvent(socketElt, "htmx:wsConnecting", { event: { type: 'connecting' } });
|
|
249
|
+
|
|
250
250
|
this.socket = socket;
|
|
251
251
|
|
|
252
252
|
socket.onopen = function (e) {
|
|
@@ -291,6 +291,12 @@ This extension adds support for WebSockets to htmx. See /www/extensions/ws.md f
|
|
|
291
291
|
|
|
292
292
|
wrapper.init();
|
|
293
293
|
|
|
294
|
+
wrapper.publicInterface = {
|
|
295
|
+
send: wrapper.send.bind(wrapper),
|
|
296
|
+
sendImmediately: wrapper.sendImmediately.bind(wrapper),
|
|
297
|
+
queue: wrapper.messageQueue
|
|
298
|
+
};
|
|
299
|
+
|
|
294
300
|
return wrapper;
|
|
295
301
|
}
|
|
296
302
|
|
package/dist/htmx.js
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
|
-
//
|
|
1
|
+
// UMD insanity
|
|
2
|
+
// This code sets up support for (in order) AMD, ES6 modules, and globals.
|
|
2
3
|
(function (root, factory) {
|
|
3
4
|
//@ts-ignore
|
|
4
5
|
if (typeof define === 'function' && define.amd) {
|
|
5
6
|
// AMD. Register as an anonymous module.
|
|
6
7
|
//@ts-ignore
|
|
7
8
|
define([], factory);
|
|
9
|
+
} else if (typeof module === 'object' && module.exports) {
|
|
10
|
+
// Node. Does not work with strict CommonJS, but
|
|
11
|
+
// only CommonJS-like environments that support module.exports,
|
|
12
|
+
// like Node.
|
|
13
|
+
module.exports = factory();
|
|
8
14
|
} else {
|
|
9
15
|
// Browser globals
|
|
10
16
|
root.htmx = root.htmx || factory();
|
|
@@ -64,6 +70,7 @@ return (function () {
|
|
|
64
70
|
scrollBehavior: 'smooth',
|
|
65
71
|
defaultFocusScroll: false,
|
|
66
72
|
getCacheBusterParam: false,
|
|
73
|
+
globalViewTransitions: false,
|
|
67
74
|
},
|
|
68
75
|
parseInterval:parseInterval,
|
|
69
76
|
_:internalEval,
|
|
@@ -75,7 +82,7 @@ return (function () {
|
|
|
75
82
|
sock.binaryType = htmx.config.wsBinaryType;
|
|
76
83
|
return sock;
|
|
77
84
|
},
|
|
78
|
-
version: "1.
|
|
85
|
+
version: "1.9.0"
|
|
79
86
|
};
|
|
80
87
|
|
|
81
88
|
/** @type {import("./htmx").HtmxInternalApi} */
|
|
@@ -259,13 +266,18 @@ return (function () {
|
|
|
259
266
|
return responseNode;
|
|
260
267
|
}
|
|
261
268
|
|
|
269
|
+
function aFullPageResponse(resp) {
|
|
270
|
+
return resp.match(/<body/);
|
|
271
|
+
}
|
|
272
|
+
|
|
262
273
|
/**
|
|
263
274
|
*
|
|
264
275
|
* @param {string} resp
|
|
265
276
|
* @returns {Element}
|
|
266
277
|
*/
|
|
267
278
|
function makeFragment(resp) {
|
|
268
|
-
|
|
279
|
+
var partialResponse = !aFullPageResponse(resp);
|
|
280
|
+
if (htmx.config.useTemplateFragments && partialResponse) {
|
|
269
281
|
var documentFragment = parseHTML("<body><template>" + resp + "</template></body>", 0);
|
|
270
282
|
// @ts-ignore type mismatch between DocumentFragment and Element.
|
|
271
283
|
// TODO: Are these close enough for htmx to use interchangably?
|
|
@@ -465,7 +477,10 @@ return (function () {
|
|
|
465
477
|
function removeElement(elt, delay) {
|
|
466
478
|
elt = resolveTarget(elt);
|
|
467
479
|
if (delay) {
|
|
468
|
-
setTimeout(function(){
|
|
480
|
+
setTimeout(function(){
|
|
481
|
+
removeElement(elt);
|
|
482
|
+
elt = null;
|
|
483
|
+
}, delay);
|
|
469
484
|
} else {
|
|
470
485
|
elt.parentElement.removeChild(elt);
|
|
471
486
|
}
|
|
@@ -474,7 +489,10 @@ return (function () {
|
|
|
474
489
|
function addClassToElement(elt, clazz, delay) {
|
|
475
490
|
elt = resolveTarget(elt);
|
|
476
491
|
if (delay) {
|
|
477
|
-
setTimeout(function(){
|
|
492
|
+
setTimeout(function(){
|
|
493
|
+
addClassToElement(elt, clazz);
|
|
494
|
+
elt = null;
|
|
495
|
+
}, delay);
|
|
478
496
|
} else {
|
|
479
497
|
elt.classList && elt.classList.add(clazz);
|
|
480
498
|
}
|
|
@@ -483,7 +501,10 @@ return (function () {
|
|
|
483
501
|
function removeClassFromElement(elt, clazz, delay) {
|
|
484
502
|
elt = resolveTarget(elt);
|
|
485
503
|
if (delay) {
|
|
486
|
-
setTimeout(function(){
|
|
504
|
+
setTimeout(function(){
|
|
505
|
+
removeClassFromElement(elt, clazz);
|
|
506
|
+
elt = null;
|
|
507
|
+
}, delay);
|
|
487
508
|
} else {
|
|
488
509
|
if (elt.classList) {
|
|
489
510
|
elt.classList.remove(clazz);
|
|
@@ -524,21 +545,30 @@ return (function () {
|
|
|
524
545
|
}
|
|
525
546
|
}
|
|
526
547
|
|
|
548
|
+
function normalizeSelector(selector) {
|
|
549
|
+
var trimmedSelector = selector.trim();
|
|
550
|
+
if (trimmedSelector.startsWith("<") && trimmedSelector.endsWith("/>")) {
|
|
551
|
+
return trimmedSelector.substring(1, trimmedSelector.length - 2);
|
|
552
|
+
} else {
|
|
553
|
+
return trimmedSelector;
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
|
|
527
557
|
function querySelectorAllExt(elt, selector) {
|
|
528
558
|
if (selector.indexOf("closest ") === 0) {
|
|
529
|
-
return [closest(elt, selector.substr(8))];
|
|
559
|
+
return [closest(elt, normalizeSelector(selector.substr(8)))];
|
|
530
560
|
} else if (selector.indexOf("find ") === 0) {
|
|
531
|
-
return [find(elt, selector.substr(5))];
|
|
561
|
+
return [find(elt, normalizeSelector(selector.substr(5)))];
|
|
532
562
|
} else if (selector.indexOf("next ") === 0) {
|
|
533
|
-
return [scanForwardQuery(elt, selector.substr(5))];
|
|
563
|
+
return [scanForwardQuery(elt, normalizeSelector(selector.substr(5)))];
|
|
534
564
|
} else if (selector.indexOf("previous ") === 0) {
|
|
535
|
-
return [scanBackwardsQuery(elt, selector.substr(9))];
|
|
565
|
+
return [scanBackwardsQuery(elt, normalizeSelector(selector.substr(9)))];
|
|
536
566
|
} else if (selector === 'document') {
|
|
537
567
|
return [document];
|
|
538
568
|
} else if (selector === 'window') {
|
|
539
569
|
return [window];
|
|
540
570
|
} else {
|
|
541
|
-
return getDocument().querySelectorAll(selector);
|
|
571
|
+
return getDocument().querySelectorAll(normalizeSelector(selector));
|
|
542
572
|
}
|
|
543
573
|
}
|
|
544
574
|
|
|
@@ -754,7 +784,7 @@ return (function () {
|
|
|
754
784
|
var oobSelectValues = oobSelects.split(",");
|
|
755
785
|
for (let i = 0; i < oobSelectValues.length; i++) {
|
|
756
786
|
var oobSelectValue = oobSelectValues[i].split(":", 2);
|
|
757
|
-
var id = oobSelectValue[0];
|
|
787
|
+
var id = oobSelectValue[0].trim();
|
|
758
788
|
if (id.indexOf("#") === 0) {
|
|
759
789
|
id = id.substring(1);
|
|
760
790
|
}
|
|
@@ -786,7 +816,9 @@ return (function () {
|
|
|
786
816
|
function handleAttributes(parentNode, fragment, settleInfo) {
|
|
787
817
|
forEach(fragment.querySelectorAll("[id]"), function (newNode) {
|
|
788
818
|
if (newNode.id && newNode.id.length > 0) {
|
|
789
|
-
var
|
|
819
|
+
var normalizedId = newNode.id.replace("'", "\\'");
|
|
820
|
+
var normalizedTag = newNode.tagName.replace(':', '\\:');
|
|
821
|
+
var oldNode = parentNode.querySelector(normalizedTag + "[id='" + normalizedId + "']");
|
|
790
822
|
if (oldNode && oldNode !== parentNode) {
|
|
791
823
|
var newAttributes = newNode.cloneNode();
|
|
792
824
|
cloneAttributes(newNode, oldNode);
|
|
@@ -855,6 +887,9 @@ return (function () {
|
|
|
855
887
|
|
|
856
888
|
function deInitNode(element) {
|
|
857
889
|
var internalData = getInternalData(element);
|
|
890
|
+
if (internalData.timeout) {
|
|
891
|
+
clearTimeout(internalData.timeout);
|
|
892
|
+
}
|
|
858
893
|
if (internalData.webSocket) {
|
|
859
894
|
internalData.webSocket.close();
|
|
860
895
|
}
|
|
@@ -868,6 +903,11 @@ return (function () {
|
|
|
868
903
|
}
|
|
869
904
|
});
|
|
870
905
|
}
|
|
906
|
+
if (internalData.onHandlers) {
|
|
907
|
+
for (var eventName of internalData.onHandlers) {
|
|
908
|
+
element.removeEventListener(eventName, internalData.onHandlers[eventName]);
|
|
909
|
+
}
|
|
910
|
+
}
|
|
871
911
|
}
|
|
872
912
|
|
|
873
913
|
function cleanUpElement(element) {
|
|
@@ -1317,12 +1357,17 @@ return (function () {
|
|
|
1317
1357
|
}
|
|
1318
1358
|
|
|
1319
1359
|
function addEventListener(elt, handler, nodeData, triggerSpec, explicitCancel) {
|
|
1360
|
+
var elementData = getInternalData(elt);
|
|
1320
1361
|
var eltsToListenOn;
|
|
1321
1362
|
if (triggerSpec.from) {
|
|
1322
1363
|
eltsToListenOn = querySelectorAllExt(elt, triggerSpec.from);
|
|
1323
1364
|
} else {
|
|
1324
1365
|
eltsToListenOn = [elt];
|
|
1325
1366
|
}
|
|
1367
|
+
// store the initial value of the element so we can tell if it changes
|
|
1368
|
+
if (triggerSpec.changed) {
|
|
1369
|
+
elementData.lastValue = elt.value;
|
|
1370
|
+
}
|
|
1326
1371
|
forEach(eltsToListenOn, function (eltToListenOn) {
|
|
1327
1372
|
var eventListener = function (evt) {
|
|
1328
1373
|
if (!bodyContains(elt)) {
|
|
@@ -1343,7 +1388,6 @@ return (function () {
|
|
|
1343
1388
|
if (eventData.handledFor == null) {
|
|
1344
1389
|
eventData.handledFor = [];
|
|
1345
1390
|
}
|
|
1346
|
-
var elementData = getInternalData(elt);
|
|
1347
1391
|
if (eventData.handledFor.indexOf(elt) < 0) {
|
|
1348
1392
|
eventData.handledFor.push(elt);
|
|
1349
1393
|
if (triggerSpec.consume) {
|
|
@@ -1385,6 +1429,7 @@ return (function () {
|
|
|
1385
1429
|
} else if (triggerSpec.delay) {
|
|
1386
1430
|
elementData.delayed = setTimeout(function() { handler(elt, evt) }, triggerSpec.delay);
|
|
1387
1431
|
} else {
|
|
1432
|
+
triggerEvent(elt, 'htmx:trigger')
|
|
1388
1433
|
handler(elt, evt);
|
|
1389
1434
|
}
|
|
1390
1435
|
}
|
|
@@ -1398,7 +1443,7 @@ return (function () {
|
|
|
1398
1443
|
on: eltToListenOn
|
|
1399
1444
|
})
|
|
1400
1445
|
eltToListenOn.addEventListener(triggerSpec.trigger, eventListener);
|
|
1401
|
-
})
|
|
1446
|
+
});
|
|
1402
1447
|
}
|
|
1403
1448
|
|
|
1404
1449
|
var windowIsScrolling = false // used by initScrollHandler
|
|
@@ -1677,6 +1722,13 @@ return (function () {
|
|
|
1677
1722
|
});
|
|
1678
1723
|
}
|
|
1679
1724
|
});
|
|
1725
|
+
if (!explicitAction && hasAttribute(elt, 'hx-trigger')) {
|
|
1726
|
+
explicitAction = true
|
|
1727
|
+
triggerSpecs.forEach(function(triggerSpec) {
|
|
1728
|
+
// For "naked" triggers, don't do anything at all
|
|
1729
|
+
addTriggerHandler(elt, triggerSpec, nodeData, function () { })
|
|
1730
|
+
})
|
|
1731
|
+
}
|
|
1680
1732
|
return explicitAction;
|
|
1681
1733
|
}
|
|
1682
1734
|
|
|
@@ -1761,7 +1813,7 @@ return (function () {
|
|
|
1761
1813
|
if (elt.querySelectorAll) {
|
|
1762
1814
|
var boostedElts = hasChanceOfBeingBoosted() ? ", a, form" : "";
|
|
1763
1815
|
var results = elt.querySelectorAll(VERB_SELECTOR + boostedElts + ", [hx-sse], [data-hx-sse], [hx-ws]," +
|
|
1764
|
-
" [data-hx-ws], [hx-ext], [data-hx-ext]");
|
|
1816
|
+
" [data-hx-ws], [hx-ext], [data-hx-ext], [hx-trigger], [data-hx-trigger], [hx-on], [data-hx-on]");
|
|
1765
1817
|
return results;
|
|
1766
1818
|
} else {
|
|
1767
1819
|
return [];
|
|
@@ -1789,6 +1841,57 @@ return (function () {
|
|
|
1789
1841
|
})
|
|
1790
1842
|
}
|
|
1791
1843
|
|
|
1844
|
+
function countCurlies(line) {
|
|
1845
|
+
var tokens = tokenizeString(line);
|
|
1846
|
+
var netCurlies = 0;
|
|
1847
|
+
for (let i = 0; i < tokens.length; i++) {
|
|
1848
|
+
const token = tokens[i];
|
|
1849
|
+
if (token === "{") {
|
|
1850
|
+
netCurlies++;
|
|
1851
|
+
} else if (token === "}") {
|
|
1852
|
+
netCurlies--;
|
|
1853
|
+
}
|
|
1854
|
+
}
|
|
1855
|
+
return netCurlies;
|
|
1856
|
+
}
|
|
1857
|
+
|
|
1858
|
+
function addHxOnEventHandler(elt, eventName, code) {
|
|
1859
|
+
var nodeData = getInternalData(elt);
|
|
1860
|
+
nodeData.onHandlers ||= {};
|
|
1861
|
+
var func = new Function("event", code + "; return;");
|
|
1862
|
+
var listener = elt.addEventListener(eventName, function (e) {
|
|
1863
|
+
return func.call(elt, e);
|
|
1864
|
+
});
|
|
1865
|
+
nodeData.onHandlers[eventName] = listener;
|
|
1866
|
+
return {nodeData, code, func, listener};
|
|
1867
|
+
}
|
|
1868
|
+
|
|
1869
|
+
function processHxOn(elt) {
|
|
1870
|
+
var hxOnValue = getAttributeValue(elt, 'hx-on');
|
|
1871
|
+
if (hxOnValue) {
|
|
1872
|
+
var handlers = {}
|
|
1873
|
+
var lines = hxOnValue.split("\n");
|
|
1874
|
+
var currentEvent = null;
|
|
1875
|
+
var curlyCount = 0;
|
|
1876
|
+
while (lines.length > 0) {
|
|
1877
|
+
var line = lines.shift();
|
|
1878
|
+
var match = line.match(/^\s*([a-zA-Z:\-]+:)(.*)/);
|
|
1879
|
+
if (curlyCount === 0 && match) {
|
|
1880
|
+
line.split(":")
|
|
1881
|
+
currentEvent = match[1].slice(0, -1); // strip last colon
|
|
1882
|
+
handlers[currentEvent] = match[2];
|
|
1883
|
+
} else {
|
|
1884
|
+
handlers[currentEvent] += line;
|
|
1885
|
+
}
|
|
1886
|
+
curlyCount += countCurlies(line);
|
|
1887
|
+
}
|
|
1888
|
+
|
|
1889
|
+
for (var eventName in handlers) {
|
|
1890
|
+
addHxOnEventHandler(elt, eventName, handlers[eventName]);
|
|
1891
|
+
}
|
|
1892
|
+
}
|
|
1893
|
+
}
|
|
1894
|
+
|
|
1792
1895
|
function initNode(elt) {
|
|
1793
1896
|
if (elt.closest && elt.closest(htmx.config.disableSelector)) {
|
|
1794
1897
|
return;
|
|
@@ -1801,6 +1904,8 @@ return (function () {
|
|
|
1801
1904
|
// clean up any previously processed info
|
|
1802
1905
|
deInitNode(elt);
|
|
1803
1906
|
|
|
1907
|
+
processHxOn(elt);
|
|
1908
|
+
|
|
1804
1909
|
triggerEvent(elt, "htmx:beforeProcessNode")
|
|
1805
1910
|
|
|
1806
1911
|
if (elt.value) {
|
|
@@ -2385,6 +2490,9 @@ return (function () {
|
|
|
2385
2490
|
if (modifier.indexOf("settle:") === 0) {
|
|
2386
2491
|
swapSpec["settleDelay"] = parseInterval(modifier.substr(7));
|
|
2387
2492
|
}
|
|
2493
|
+
if (modifier.indexOf("transition:") === 0) {
|
|
2494
|
+
swapSpec["transition"] = modifier.substr(11) === "true";
|
|
2495
|
+
}
|
|
2388
2496
|
if (modifier.indexOf("scroll:") === 0) {
|
|
2389
2497
|
var scrollSpec = modifier.substr(7);
|
|
2390
2498
|
var splitSpec = scrollSpec.split(":");
|
|
@@ -2884,7 +2992,7 @@ return (function () {
|
|
|
2884
2992
|
removeRequestIndicatorClasses(indicators);
|
|
2885
2993
|
triggerEvent(elt, 'htmx:afterRequest', responseInfo);
|
|
2886
2994
|
triggerEvent(elt, 'htmx:afterOnLoad', responseInfo);
|
|
2887
|
-
// if the body no longer contains the element, trigger the
|
|
2995
|
+
// if the body no longer contains the element, trigger the event on the closest parent
|
|
2888
2996
|
// remaining in the DOM
|
|
2889
2997
|
if (!bodyContains(elt)) {
|
|
2890
2998
|
var secondaryTriggerElt = null;
|
|
@@ -3091,6 +3199,7 @@ return (function () {
|
|
|
3091
3199
|
serverResponse = beforeSwapDetails.serverResponse; // allow updating content
|
|
3092
3200
|
isError = beforeSwapDetails.isError; // allow updating error
|
|
3093
3201
|
|
|
3202
|
+
responseInfo.target = target; // Make updated target available to response events
|
|
3094
3203
|
responseInfo.failed = isError; // Make failed property available to response events
|
|
3095
3204
|
responseInfo.successful = !isError; // Make successful property available to response events
|
|
3096
3205
|
|
|
@@ -3115,9 +3224,13 @@ return (function () {
|
|
|
3115
3224
|
var swapSpec = getSwapSpecification(elt, swapOverride);
|
|
3116
3225
|
|
|
3117
3226
|
target.classList.add(htmx.config.swappingClass);
|
|
3227
|
+
|
|
3228
|
+
// optional transition API promise callbacks
|
|
3229
|
+
var settleResolve = null;
|
|
3230
|
+
var settleReject = null;
|
|
3231
|
+
|
|
3118
3232
|
var doSwap = function () {
|
|
3119
3233
|
try {
|
|
3120
|
-
|
|
3121
3234
|
var activeElt = document.activeElement;
|
|
3122
3235
|
var selectionInfo = {};
|
|
3123
3236
|
try {
|
|
@@ -3216,6 +3329,7 @@ return (function () {
|
|
|
3216
3329
|
}
|
|
3217
3330
|
handleTrigger(xhr, "HX-Trigger-After-Settle", finalElt);
|
|
3218
3331
|
}
|
|
3332
|
+
maybeCall(settleResolve);
|
|
3219
3333
|
}
|
|
3220
3334
|
|
|
3221
3335
|
if (swapSpec.settleDelay > 0) {
|
|
@@ -3225,10 +3339,34 @@ return (function () {
|
|
|
3225
3339
|
}
|
|
3226
3340
|
} catch (e) {
|
|
3227
3341
|
triggerErrorEvent(elt, 'htmx:swapError', responseInfo);
|
|
3342
|
+
maybeCall(settleReject);
|
|
3228
3343
|
throw e;
|
|
3229
3344
|
}
|
|
3230
3345
|
};
|
|
3231
3346
|
|
|
3347
|
+
var shouldTransition = htmx.config.globalViewTransitions
|
|
3348
|
+
if(swapSpec.hasOwnProperty('transition')){
|
|
3349
|
+
shouldTransition = swapSpec.transition;
|
|
3350
|
+
}
|
|
3351
|
+
|
|
3352
|
+
if(shouldTransition &&
|
|
3353
|
+
triggerEvent(elt, 'htmx:beforeTransition', responseInfo) &&
|
|
3354
|
+
typeof Promise !== "undefined" && document.startViewTransition){
|
|
3355
|
+
var settlePromise = new Promise(function (_resolve, _reject) {
|
|
3356
|
+
settleResolve = _resolve;
|
|
3357
|
+
settleReject = _reject;
|
|
3358
|
+
});
|
|
3359
|
+
// wrap the original doSwap() in a call to startViewTransition()
|
|
3360
|
+
var innerDoSwap = doSwap;
|
|
3361
|
+
doSwap = function() {
|
|
3362
|
+
document.startViewTransition(function () {
|
|
3363
|
+
innerDoSwap();
|
|
3364
|
+
return settlePromise;
|
|
3365
|
+
});
|
|
3366
|
+
}
|
|
3367
|
+
}
|
|
3368
|
+
|
|
3369
|
+
|
|
3232
3370
|
if (swapSpec.swapDelay > 0) {
|
|
3233
3371
|
setTimeout(doSwap, swapSpec.swapDelay)
|
|
3234
3372
|
} else {
|
|
@@ -3390,6 +3528,7 @@ return (function () {
|
|
|
3390
3528
|
};
|
|
3391
3529
|
setTimeout(function () {
|
|
3392
3530
|
triggerEvent(body, 'htmx:load', {}); // give ready handlers a chance to load up before firing this event
|
|
3531
|
+
body = null; // kill reference for gc
|
|
3393
3532
|
}, 0);
|
|
3394
3533
|
})
|
|
3395
3534
|
|
package/dist/htmx.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(e,t){if(typeof define==="function"&&define.amd){define([],t)}else{e.htmx=e.htmx||t()}})(typeof self!=="undefined"?self:this,function(){return function(){"use strict";var z={onLoad:t,process:mt,on:D,off:X,trigger:ee,ajax:or,find:C,findAll:R,closest:A,values:function(e,t){var r=Bt(e,t||"post");return r.values},remove:O,addClass:q,removeClass:T,toggleClass:L,takeClass:H,defineExtension:dr,removeExtension:vr,logAll:E,logger:null,config:{historyEnabled:true,historyCacheSize:10,refreshOnHistoryMiss:false,defaultSwapStyle:"innerHTML",defaultSwapDelay:0,defaultSettleDelay:20,includeIndicatorStyles:true,indicatorClass:"htmx-indicator",requestClass:"htmx-request",addedClass:"htmx-added",settlingClass:"htmx-settling",swappingClass:"htmx-swapping",allowEval:true,inlineScriptNonce:"",attributesToSettle:["class","style","width","height"],withCredentials:false,timeout:0,wsReconnectDelay:"full-jitter",wsBinaryType:"blob",disableSelector:"[hx-disable], [data-hx-disable]",useTemplateFragments:false,scrollBehavior:"smooth",defaultFocusScroll:false,getCacheBusterParam:false},parseInterval:v,_:e,createEventSource:function(e){return new EventSource(e,{withCredentials:true})},createWebSocket:function(e){var t=new WebSocket(e,[]);t.binaryType=z.config.wsBinaryType;return t},version:"1.8.5"};var r={addTriggerHandler:ft,bodyContains:re,canAccessLocalStorage:S,filterValues:Wt,hasAttribute:o,getAttributeValue:J,getClosestMatch:h,getExpressionVars:rr,getHeaders:_t,getInputValues:Bt,getInternalData:K,getSwapSpecification:Gt,getTriggerSpecs:Xe,getTarget:se,makeFragment:f,mergeObjects:ne,makeSettleInfo:Zt,oobSwap:V,selectAndSwap:Oe,settleImmediately:At,shouldCancel:Ve,triggerEvent:ee,triggerErrorEvent:Q,withExtensions:wt};var n=["get","post","put","delete","patch"];var i=n.map(function(e){return"[hx-"+e+"], [data-hx-"+e+"]"}).join(", ");function v(e){if(e==undefined){return undefined}if(e.slice(-2)=="ms"){return parseFloat(e.slice(0,-2))||undefined}if(e.slice(-1)=="s"){return parseFloat(e.slice(0,-1))*1e3||undefined}if(e.slice(-1)=="m"){return parseFloat(e.slice(0,-1))*1e3*60||undefined}return parseFloat(e)||undefined}function G(e,t){return e.getAttribute&&e.getAttribute(t)}function o(e,t){return e.hasAttribute&&(e.hasAttribute(t)||e.hasAttribute("data-"+t))}function J(e,t){return G(e,t)||G(e,"data-"+t)}function u(e){return e.parentElement}function $(){return document}function h(e,t){while(e&&!t(e)){e=u(e)}return e?e:null}function a(e,t,r){var n=J(t,r);var i=J(t,"hx-disinherit");if(e!==t&&i&&(i==="*"||i.split(" ").indexOf(r)>=0)){return"unset"}else{return n}}function Z(t,r){var n=null;h(t,function(e){return n=a(t,e,r)});if(n!=="unset"){return n}}function d(e,t){var r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector;return r&&r.call(e,t)}function s(e){var t=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i;var r=t.exec(e);if(r){return r[1].toLowerCase()}else{return""}}function l(e,t){var r=new DOMParser;var n=r.parseFromString(e,"text/html");var i=n.body;while(t>0){t--;i=i.firstChild}if(i==null){i=$().createDocumentFragment()}return i}function f(e){if(z.config.useTemplateFragments){var t=l("<body><template>"+e+"</template></body>",0);return t.querySelector("template").content}else{var r=s(e);switch(r){case"thead":case"tbody":case"tfoot":case"colgroup":case"caption":return l("<table>"+e+"</table>",1);case"col":return l("<table><colgroup>"+e+"</colgroup></table>",2);case"tr":return l("<table><tbody>"+e+"</tbody></table>",2);case"td":case"th":return l("<table><tbody><tr>"+e+"</tr></tbody></table>",3);case"script":return l("<div>"+e+"</div>",1);default:return l(e,0)}}}function te(e){if(e){e()}}function g(e,t){return Object.prototype.toString.call(e)==="[object "+t+"]"}function p(e){return g(e,"Function")}function m(e){return g(e,"Object")}function K(e){var t="htmx-internal-data";var r=e[t];if(!r){r=e[t]={}}return r}function y(e){var t=[];if(e){for(var r=0;r<e.length;r++){t.push(e[r])}}return t}function Y(e,t){if(e){for(var r=0;r<e.length;r++){t(e[r])}}}function x(e){var t=e.getBoundingClientRect();var r=t.top;var n=t.bottom;return r<window.innerHeight&&n>=0}function re(e){if(e.getRootNode&&e.getRootNode()instanceof ShadowRoot){return $().body.contains(e.getRootNode().host)}else{return $().body.contains(e)}}function b(e){return e.trim().split(/\s+/)}function ne(e,t){for(var r in t){if(t.hasOwnProperty(r)){e[r]=t[r]}}return e}function w(e){try{return JSON.parse(e)}catch(e){St(e);return null}}function S(){var e="htmx:localStorageTest";try{localStorage.setItem(e,e);localStorage.removeItem(e);return true}catch(e){return false}}function e(e){return Qt($().body,function(){return eval(e)})}function t(t){var e=z.on("htmx:load",function(e){t(e.detail.elt)});return e}function E(){z.logger=function(e,t,r){if(console){console.log(t,e,r)}}}function C(e,t){if(t){return e.querySelector(t)}else{return C($(),e)}}function R(e,t){if(t){return e.querySelectorAll(t)}else{return R($(),e)}}function O(e,t){e=M(e);if(t){setTimeout(function(){O(e)},t)}else{e.parentElement.removeChild(e)}}function q(e,t,r){e=M(e);if(r){setTimeout(function(){q(e,t)},r)}else{e.classList&&e.classList.add(t)}}function T(e,t,r){e=M(e);if(r){setTimeout(function(){T(e,t)},r)}else{if(e.classList){e.classList.remove(t);if(e.classList.length===0){e.removeAttribute("class")}}}}function L(e,t){e=M(e);e.classList.toggle(t)}function H(e,t){e=M(e);Y(e.parentElement.children,function(e){T(e,t)});q(e,t)}function A(e,t){e=M(e);if(e.closest){return e.closest(t)}else{do{if(e==null||d(e,t)){return e}}while(e=e&&u(e));return null}}function N(e,t){if(t.indexOf("closest ")===0){return[A(e,t.substr(8))]}else if(t.indexOf("find ")===0){return[C(e,t.substr(5))]}else if(t.indexOf("next ")===0){return[I(e,t.substr(5))]}else if(t.indexOf("previous ")===0){return[k(e,t.substr(9))]}else if(t==="document"){return[document]}else if(t==="window"){return[window]}else{return $().querySelectorAll(t)}}var I=function(e,t){var r=$().querySelectorAll(t);for(var n=0;n<r.length;n++){var i=r[n];if(i.compareDocumentPosition(e)===Node.DOCUMENT_POSITION_PRECEDING){return i}}};var k=function(e,t){var r=$().querySelectorAll(t);for(var n=r.length-1;n>=0;n--){var i=r[n];if(i.compareDocumentPosition(e)===Node.DOCUMENT_POSITION_FOLLOWING){return i}}};function ie(e,t){if(t){return N(e,t)[0]}else{return N($().body,e)[0]}}function M(e){if(g(e,"String")){return C(e)}else{return e}}function P(e,t,r){if(p(t)){return{target:$().body,event:e,listener:t}}else{return{target:M(e),event:t,listener:r}}}function D(t,r,n){pr(function(){var e=P(t,r,n);e.target.addEventListener(e.event,e.listener)});var e=p(r);return e?r:n}function X(t,r,n){pr(function(){var e=P(t,r,n);e.target.removeEventListener(e.event,e.listener)});return p(r)?r:n}var ae=$().createElement("output");function F(e,t){var r=Z(e,t);if(r){if(r==="this"){return[oe(e,t)]}else{var n=N(e,r);if(n.length===0){St('The selector "'+r+'" on '+t+" returned no matches!");return[ae]}else{return n}}}}function oe(e,t){return h(e,function(e){return J(e,t)!=null})}function se(e){var t=Z(e,"hx-target");if(t){if(t==="this"){return oe(e,"hx-target")}else{return ie(e,t)}}else{var r=K(e);if(r.boosted){return $().body}else{return e}}}function B(e){var t=z.config.attributesToSettle;for(var r=0;r<t.length;r++){if(e===t[r]){return true}}return false}function j(t,r){Y(t.attributes,function(e){if(!r.hasAttribute(e.name)&&B(e.name)){t.removeAttribute(e.name)}});Y(r.attributes,function(e){if(B(e.name)){t.setAttribute(e.name,e.value)}})}function U(e,t){var r=gr(t);for(var n=0;n<r.length;n++){var i=r[n];try{if(i.isInlineSwap(e)){return true}}catch(e){St(e)}}return e==="outerHTML"}function V(e,i,a){var t="#"+i.id;var o="outerHTML";if(e==="true"){}else if(e.indexOf(":")>0){o=e.substr(0,e.indexOf(":"));t=e.substr(e.indexOf(":")+1,e.length)}else{o=e}var r=$().querySelectorAll(t);if(r){Y(r,function(e){var t;var r=i.cloneNode(true);t=$().createDocumentFragment();t.appendChild(r);if(!U(o,e)){t=r}var n={shouldSwap:true,target:e,fragment:t};if(!ee(e,"htmx:oobBeforeSwap",n))return;e=n.target;if(n["shouldSwap"]){Ce(o,e,e,t,a)}Y(a.elts,function(e){ee(e,"htmx:oobAfterSwap",n)})});i.parentNode.removeChild(i)}else{i.parentNode.removeChild(i);Q($().body,"htmx:oobErrorNoTarget",{content:i})}return e}function _(e,t,r){var n=Z(e,"hx-select-oob");if(n){var i=n.split(",");for(let e=0;e<i.length;e++){var a=i[e].split(":",2);var o=a[0];if(o.indexOf("#")===0){o=o.substring(1)}var s=a[1]||"true";var l=t.querySelector("#"+o);if(l){V(s,l,r)}}}Y(R(t,"[hx-swap-oob], [data-hx-swap-oob]"),function(e){var t=J(e,"hx-swap-oob");if(t!=null){V(t,e,r)}})}function W(e){Y(R(e,"[hx-preserve], [data-hx-preserve]"),function(e){var t=J(e,"id");var r=$().getElementById(t);if(r!=null){e.parentNode.replaceChild(r,e)}})}function le(n,e,i){Y(e.querySelectorAll("[id]"),function(e){if(e.id&&e.id.length>0){var t=n.querySelector(e.tagName+"[id='"+e.id+"']");if(t&&t!==n){var r=e.cloneNode();j(e,t);i.tasks.push(function(){j(e,r)})}}})}function ue(e){return function(){T(e,z.config.addedClass);mt(e);ht(e);fe(e);ee(e,"htmx:load")}}function fe(e){var t="[autofocus]";var r=d(e,t)?e:e.querySelector(t);if(r!=null){r.focus()}}function ce(e,t,r,n){le(e,r,n);while(r.childNodes.length>0){var i=r.firstChild;q(i,z.config.addedClass);e.insertBefore(i,t);if(i.nodeType!==Node.TEXT_NODE&&i.nodeType!==Node.COMMENT_NODE){n.tasks.push(ue(i))}}}function he(e,t){var r=0;while(r<e.length){t=(t<<5)-t+e.charCodeAt(r++)|0}return t}function de(e){var t=0;if(e.attributes){for(var r=0;r<e.attributes.length;r++){var n=e.attributes[r];if(n.value){t=he(n.name,t);t=he(n.value,t)}}}return t}function ve(e){var t=K(e);if(t.webSocket){t.webSocket.close()}if(t.sseEventSource){t.sseEventSource.close()}if(t.listenerInfos){Y(t.listenerInfos,function(e){if(e.on){e.on.removeEventListener(e.trigger,e.listener)}})}}function ge(e){ee(e,"htmx:beforeCleanupElement");ve(e);if(e.children){Y(e.children,function(e){ge(e)})}}function pe(e,t,r){if(e.tagName==="BODY"){return Se(e,t,r)}else{var n;var i=e.previousSibling;ce(u(e),e,t,r);if(i==null){n=u(e).firstChild}else{n=i.nextSibling}K(e).replacedWith=n;r.elts=[];while(n&&n!==e){if(n.nodeType===Node.ELEMENT_NODE){r.elts.push(n)}n=n.nextElementSibling}ge(e);u(e).removeChild(e)}}function me(e,t,r){return ce(e,e.firstChild,t,r)}function ye(e,t,r){return ce(u(e),e,t,r)}function xe(e,t,r){return ce(e,null,t,r)}function be(e,t,r){return ce(u(e),e.nextSibling,t,r)}function we(e,t,r){ge(e);return u(e).removeChild(e)}function Se(e,t,r){var n=e.firstChild;ce(e,n,t,r);if(n){while(n.nextSibling){ge(n.nextSibling);e.removeChild(n.nextSibling)}ge(n);e.removeChild(n)}}function Ee(e,t){var r=Z(e,"hx-select");if(r){var n=$().createDocumentFragment();Y(t.querySelectorAll(r),function(e){n.appendChild(e)});t=n}return t}function Ce(e,t,r,n,i){switch(e){case"none":return;case"outerHTML":pe(r,n,i);return;case"afterbegin":me(r,n,i);return;case"beforebegin":ye(r,n,i);return;case"beforeend":xe(r,n,i);return;case"afterend":be(r,n,i);return;case"delete":we(r,n,i);return;default:var a=gr(t);for(var o=0;o<a.length;o++){var f=a[o];try{var s=f.handleSwap(e,r,n,i);if(s){if(typeof s.length!=="undefined"){for(var l=0;l<s.length;l++){var u=s[l];if(u.nodeType!==Node.TEXT_NODE&&u.nodeType!==Node.COMMENT_NODE){i.tasks.push(ue(u))}}}return}}catch(e){St(e)}}if(e==="innerHTML"){Se(r,n,i)}else{Ce(z.config.defaultSwapStyle,t,r,n,i)}}}function Re(e){if(e.indexOf("<title")>-1){var t=e.replace(/<svg(\s[^>]*>|>)([\s\S]*?)<\/svg>/gim,"");var r=t.match(/<title(\s[^>]*>|>)([\s\S]*?)<\/title>/im);if(r){return r[2]}}}function Oe(e,t,r,n,i){i.title=Re(n);var a=f(n);if(a){_(r,a,i);a=Ee(r,a);W(a);return Ce(e,r,t,a,i)}}function qe(e,t,r){var n=e.getResponseHeader(t);if(n.indexOf("{")===0){var i=w(n);for(var a in i){if(i.hasOwnProperty(a)){var o=i[a];if(!m(o)){o={value:o}}ee(r,a,o)}}}else{ee(r,n,[])}}var Te=/\s/;var Le=/[\s,]/;var He=/[_$a-zA-Z]/;var Ae=/[_$a-zA-Z0-9]/;var Ne=['"',"'","/"];var Ie=/[^\s]/;function ke(e){var t=[];var r=0;while(r<e.length){if(He.exec(e.charAt(r))){var n=r;while(Ae.exec(e.charAt(r+1))){r++}t.push(e.substr(n,r-n+1))}else if(Ne.indexOf(e.charAt(r))!==-1){var i=e.charAt(r);var n=r;r++;while(r<e.length&&e.charAt(r)!==i){if(e.charAt(r)==="\\"){r++}r++}t.push(e.substr(n,r-n+1))}else{var a=e.charAt(r);t.push(a)}r++}return t}function Me(e,t,r){return He.exec(e.charAt(0))&&e!=="true"&&e!=="false"&&e!=="this"&&e!==r&&t!=="."}function Pe(e,t,r){if(t[0]==="["){t.shift();var n=1;var i=" return (function("+r+"){ return (";var a=null;while(t.length>0){var o=t[0];if(o==="]"){n--;if(n===0){if(a===null){i=i+"true"}t.shift();i+=")})";try{var s=Qt(e,function(){return Function(i)()},function(){return true});s.source=i;return s}catch(e){Q($().body,"htmx:syntax:error",{error:e,source:i});return null}}}else if(o==="["){n++}if(Me(o,a,r)){i+="(("+r+"."+o+") ? ("+r+"."+o+") : (window."+o+"))"}else{i=i+o}a=t.shift()}}}function c(e,t){var r="";while(e.length>0&&!e[0].match(t)){r+=e.shift()}return r}var De="input, textarea, select";function Xe(e){var t=J(e,"hx-trigger");var r=[];if(t){var n=ke(t);do{c(n,Ie);var f=n.length;var i=c(n,/[,\[\s]/);if(i!==""){if(i==="every"){var a={trigger:"every"};c(n,Ie);a.pollInterval=v(c(n,/[,\[\s]/));c(n,Ie);var o=Pe(e,n,"event");if(o){a.eventFilter=o}r.push(a)}else if(i.indexOf("sse:")===0){r.push({trigger:"sse",sseEvent:i.substr(4)})}else{var s={trigger:i};var o=Pe(e,n,"event");if(o){s.eventFilter=o}while(n.length>0&&n[0]!==","){c(n,Ie);var l=n.shift();if(l==="changed"){s.changed=true}else if(l==="once"){s.once=true}else if(l==="consume"){s.consume=true}else if(l==="delay"&&n[0]===":"){n.shift();s.delay=v(c(n,Le))}else if(l==="from"&&n[0]===":"){n.shift();var u=c(n,Le);if(u==="closest"||u==="find"||u==="next"||u==="previous"){n.shift();u+=" "+c(n,Le)}s.from=u}else if(l==="target"&&n[0]===":"){n.shift();s.target=c(n,Le)}else if(l==="throttle"&&n[0]===":"){n.shift();s.throttle=v(c(n,Le))}else if(l==="queue"&&n[0]===":"){n.shift();s.queue=c(n,Le)}else if((l==="root"||l==="threshold")&&n[0]===":"){n.shift();s[l]=c(n,Le)}else{Q(e,"htmx:syntax:error",{token:n.shift()})}}r.push(s)}}if(n.length===f){Q(e,"htmx:syntax:error",{token:n.shift()})}c(n,Ie)}while(n[0]===","&&n.shift())}if(r.length>0){return r}else if(d(e,"form")){return[{trigger:"submit"}]}else if(d(e,'input[type="button"]')){return[{trigger:"click"}]}else if(d(e,De)){return[{trigger:"change"}]}else{return[{trigger:"click"}]}}function Fe(e){K(e).cancelled=true}function Be(e,t,r){var n=K(e);n.timeout=setTimeout(function(){if(re(e)&&n.cancelled!==true){if(!We(r,xt("hx:poll:trigger",{triggerSpec:r,target:e}))){t(e)}Be(e,t,r)}},r.pollInterval)}function je(e){return location.hostname===e.hostname&&G(e,"href")&&G(e,"href").indexOf("#")!==0}function Ue(t,r,e){if(t.tagName==="A"&&je(t)&&(t.target===""||t.target==="_self")||t.tagName==="FORM"){r.boosted=true;var n,i;if(t.tagName==="A"){n="get";i=G(t,"href")}else{var a=G(t,"method");n=a?a.toLowerCase():"get";if(n==="get"){}i=G(t,"action")}e.forEach(function(e){ze(t,function(e,t){lr(n,i,e,t)},r,e,true)})}}function Ve(e,t){if(e.type==="submit"||e.type==="click"){if(t.tagName==="FORM"){return true}if(d(t,'input[type="submit"], button')&&A(t,"form")!==null){return true}if(t.tagName==="A"&&t.href&&(t.getAttribute("href")==="#"||t.getAttribute("href").indexOf("#")!==0)){return true}}return false}function _e(e,t){return K(e).boosted&&e.tagName==="A"&&t.type==="click"&&(t.ctrlKey||t.metaKey)}function We(e,t){var r=e.eventFilter;if(r){try{return r(t)!==true}catch(e){Q($().body,"htmx:eventFilter:error",{error:e,source:r.source});return true}}return false}function ze(a,o,e,s,l){var t;if(s.from){t=N(a,s.from)}else{t=[a]}Y(t,function(n){var i=function(e){if(!re(a)){n.removeEventListener(s.trigger,i);return}if(_e(a,e)){return}if(l||Ve(e,a)){e.preventDefault()}if(We(s,e)){return}var t=K(e);t.triggerSpec=s;if(t.handledFor==null){t.handledFor=[]}var r=K(a);if(t.handledFor.indexOf(a)<0){t.handledFor.push(a);if(s.consume){e.stopPropagation()}if(s.target&&e.target){if(!d(e.target,s.target)){return}}if(s.once){if(r.triggeredOnce){return}else{r.triggeredOnce=true}}if(s.changed){if(r.lastValue===a.value){return}else{r.lastValue=a.value}}if(r.delayed){clearTimeout(r.delayed)}if(r.throttle){return}if(s.throttle){if(!r.throttle){o(a,e);r.throttle=setTimeout(function(){r.throttle=null},s.throttle)}}else if(s.delay){r.delayed=setTimeout(function(){o(a,e)},s.delay)}else{o(a,e)}}};if(e.listenerInfos==null){e.listenerInfos=[]}e.listenerInfos.push({trigger:s.trigger,listener:i,on:n});n.addEventListener(s.trigger,i)})}var Ge=false;var Je=null;function $e(){if(!Je){Je=function(){Ge=true};window.addEventListener("scroll",Je);setInterval(function(){if(Ge){Ge=false;Y($().querySelectorAll("[hx-trigger='revealed'],[data-hx-trigger='revealed']"),function(e){Ze(e)})}},200)}}function Ze(t){if(!o(t,"data-hx-revealed")&&x(t)){t.setAttribute("data-hx-revealed","true");var e=K(t);if(e.initHash){ee(t,"revealed")}else{t.addEventListener("htmx:afterProcessNode",function(e){ee(t,"revealed")},{once:true})}}}function Ke(e,t,r){var n=b(r);for(var i=0;i<n.length;i++){var a=n[i].split(/:(.+)/);if(a[0]==="connect"){Ye(e,a[1],0)}if(a[0]==="send"){et(e)}}}function Ye(s,r,n){if(!re(s)){return}if(r.indexOf("/")==0){var e=location.hostname+(location.port?":"+location.port:"");if(location.protocol=="https:"){r="wss://"+e+r}else if(location.protocol=="http:"){r="ws://"+e+r}}var t=z.createWebSocket(r);t.onerror=function(e){Q(s,"htmx:wsError",{error:e,socket:t});Qe(s)};t.onclose=function(e){if([1006,1012,1013].indexOf(e.code)>=0){var t=tt(n);setTimeout(function(){Ye(s,r,n+1)},t)}};t.onopen=function(e){n=0};K(s).webSocket=t;t.addEventListener("message",function(e){if(Qe(s)){return}var t=e.data;wt(s,function(e){t=e.transformResponse(t,null,s)});var r=Zt(s);var n=f(t);var i=y(n.children);for(var a=0;a<i.length;a++){var o=i[a];V(J(o,"hx-swap-oob")||"true",o,r)}At(r.tasks)})}function Qe(e){if(!re(e)){K(e).webSocket.close();return true}}function et(u){var f=h(u,function(e){return K(e).webSocket!=null});if(f){u.addEventListener(Xe(u)[0].trigger,function(e){var t=K(f).webSocket;var r=_t(u,f);var n=Bt(u,"post");var i=n.errors;var a=n.values;var o=rr(u);var s=ne(a,o);var l=Wt(s,u);l["HEADERS"]=r;if(i&&i.length>0){ee(u,"htmx:validation:halted",i);return}t.send(JSON.stringify(l));if(Ve(e,u)){e.preventDefault()}})}else{Q(u,"htmx:noWebSocketSourceError")}}function tt(e){var t=z.config.wsReconnectDelay;if(typeof t==="function"){return t(e)}if(t==="full-jitter"){var r=Math.min(e,6);var n=1e3*Math.pow(2,r);return n*Math.random()}St('htmx.config.wsReconnectDelay must either be a function or the string "full-jitter"')}function rt(e,t,r){var n=b(r);for(var i=0;i<n.length;i++){var a=n[i].split(/:(.+)/);if(a[0]==="connect"){nt(e,a[1])}if(a[0]==="swap"){it(e,a[1])}}}function nt(t,e){var r=z.createEventSource(e);r.onerror=function(e){Q(t,"htmx:sseError",{error:e,source:r});ot(t)};K(t).sseEventSource=r}function it(a,o){var s=h(a,st);if(s){var l=K(s).sseEventSource;var u=function(e){if(ot(s)){l.removeEventListener(o,u);return}var t=e.data;wt(a,function(e){t=e.transformResponse(t,null,a)});var r=Gt(a);var n=se(a);var i=Zt(a);Oe(r.swapStyle,a,n,t,i);At(i.tasks);ee(a,"htmx:sseMessage",e)};K(a).sseListener=u;l.addEventListener(o,u)}else{Q(a,"htmx:noSSESourceError")}}function at(e,t,r){var n=h(e,st);if(n){var i=K(n).sseEventSource;var a=function(){if(!ot(n)){if(re(e)){t(e)}else{i.removeEventListener(r,a)}}};K(e).sseListener=a;i.addEventListener(r,a)}else{Q(e,"htmx:noSSESourceError")}}function ot(e){if(!re(e)){K(e).sseEventSource.close();return true}}function st(e){return K(e).sseEventSource!=null}function lt(e,t,r,n){var i=function(){if(!r.loaded){r.loaded=true;t(e)}};if(n){setTimeout(i,n)}else{i()}}function ut(t,i,e){var a=false;Y(n,function(r){if(o(t,"hx-"+r)){var n=J(t,"hx-"+r);a=true;i.path=n;i.verb=r;e.forEach(function(e){ft(t,e,i,function(e,t){lr(r,n,e,t)})})}});return a}function ft(n,e,t,r){if(e.sseEvent){at(n,r,e.sseEvent)}else if(e.trigger==="revealed"){$e();ze(n,r,t,e);Ze(n)}else if(e.trigger==="intersect"){var i={};if(e.root){i.root=ie(n,e.root)}if(e.threshold){i.threshold=parseFloat(e.threshold)}var a=new IntersectionObserver(function(e){for(var t=0;t<e.length;t++){var r=e[t];if(r.isIntersecting){ee(n,"intersect");break}}},i);a.observe(n);ze(n,r,t,e)}else if(e.trigger==="load"){if(!We(e,xt("load",{elt:n}))){lt(n,r,t,e.delay)}}else if(e.pollInterval){t.polling=true;Be(n,r,e)}else{ze(n,r,t,e)}}function ct(e){if(e.type==="text/javascript"||e.type==="module"||e.type===""){var t=$().createElement("script");Y(e.attributes,function(e){t.setAttribute(e.name,e.value)});t.textContent=e.textContent;t.async=false;if(z.config.inlineScriptNonce){t.nonce=z.config.inlineScriptNonce}var r=e.parentElement;try{r.insertBefore(t,e)}catch(e){St(e)}finally{if(e.parentElement){e.parentElement.removeChild(e)}}}}function ht(e){if(d(e,"script")){ct(e)}Y(R(e,"script"),function(e){ct(e)})}function dt(){return document.querySelector("[hx-boost], [data-hx-boost]")}function vt(e){if(e.querySelectorAll){var t=dt()?", a, form":"";var r=e.querySelectorAll(i+t+", [hx-sse], [data-hx-sse], [hx-ws],"+" [data-hx-ws], [hx-ext], [data-hx-ext]");return r}else{return[]}}function gt(n){var e=function(e){var t=A(e.target,"button, input[type='submit']");if(t!==null){var r=K(n);r.lastButtonClicked=t}};n.addEventListener("click",e);n.addEventListener("focusin",e);n.addEventListener("focusout",function(e){var t=K(n);t.lastButtonClicked=null})}function pt(e){if(e.closest&&e.closest(z.config.disableSelector)){return}var t=K(e);if(t.initHash!==de(e)){t.initHash=de(e);ve(e);ee(e,"htmx:beforeProcessNode");if(e.value){t.lastValue=e.value}var r=Xe(e);var n=ut(e,t,r);if(!n&&Z(e,"hx-boost")==="true"){Ue(e,t,r)}if(e.tagName==="FORM"){gt(e)}var i=J(e,"hx-sse");if(i){rt(e,t,i)}var a=J(e,"hx-ws");if(a){Ke(e,t,a)}ee(e,"htmx:afterProcessNode")}}function mt(e){e=M(e);pt(e);Y(vt(e),function(e){pt(e)})}function yt(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}function xt(e,t){var r;if(window.CustomEvent&&typeof window.CustomEvent==="function"){r=new CustomEvent(e,{bubbles:true,cancelable:true,detail:t})}else{r=$().createEvent("CustomEvent");r.initCustomEvent(e,true,true,t)}return r}function Q(e,t,r){ee(e,t,ne({error:t},r))}function bt(e){return e==="htmx:afterProcessNode"}function wt(e,t){Y(gr(e),function(e){try{t(e)}catch(e){St(e)}})}function St(e){if(console.error){console.error(e)}else if(console.log){console.log("ERROR: ",e)}}function ee(e,t,r){e=M(e);if(r==null){r={}}r["elt"]=e;var n=xt(t,r);if(z.logger&&!bt(t)){z.logger(e,t,r)}if(r.error){St(r.error);ee(e,"htmx:error",{errorInfo:r})}var i=e.dispatchEvent(n);var a=yt(t);if(i&&a!==t){var o=xt(a,n.detail);i=i&&e.dispatchEvent(o)}wt(e,function(e){i=i&&e.onEvent(t,n)!==false});return i}var Et=location.pathname+location.search;function Ct(){var e=$().querySelector("[hx-history-elt],[data-hx-history-elt]");return e||$().body}function Rt(e,t,r,n){if(!S()){return}var i=w(localStorage.getItem("htmx-history-cache"))||[];for(var a=0;a<i.length;a++){if(i[a].url===e){i.splice(a,1);break}}var o={url:e,content:t,title:r,scroll:n};ee($().body,"htmx:historyItemCreated",{item:o,cache:i});i.push(o);while(i.length>z.config.historyCacheSize){i.shift()}while(i.length>0){try{localStorage.setItem("htmx-history-cache",JSON.stringify(i));break}catch(e){Q($().body,"htmx:historyCacheError",{cause:e,cache:i});i.shift()}}}function Ot(e){if(!S()){return null}var t=w(localStorage.getItem("htmx-history-cache"))||[];for(var r=0;r<t.length;r++){if(t[r].url===e){return t[r]}}return null}function qt(e){var t=z.config.requestClass;var r=e.cloneNode(true);Y(R(r,"."+t),function(e){T(e,t)});return r.innerHTML}function Tt(){var e=Ct();var t=Et||location.pathname+location.search;var r=$().querySelector('[hx-history="false" i],[data-hx-history="false" i]');if(!r){ee($().body,"htmx:beforeHistorySave",{path:t,historyElt:e});Rt(t,qt(e),$().title,window.scrollY)}if(z.config.historyEnabled)history.replaceState({htmx:true},$().title,window.location.href)}function Lt(e){if(z.config.getCacheBusterParam){e=e.replace(/org\.htmx\.cache-buster=[^&]*&?/,"");if(e.endsWith("&")||e.endsWith("?")){e=e.slice(0,-1)}}if(z.config.historyEnabled){history.pushState({htmx:true},"",e)}Et=e}function Ht(e){if(z.config.historyEnabled)history.replaceState({htmx:true},"",e);Et=e}function At(e){Y(e,function(e){e.call()})}function Nt(a){var e=new XMLHttpRequest;var o={path:a,xhr:e};ee($().body,"htmx:historyCacheMiss",o);e.open("GET",a,true);e.setRequestHeader("HX-History-Restore-Request","true");e.onload=function(){if(this.status>=200&&this.status<400){ee($().body,"htmx:historyCacheMissLoad",o);var e=f(this.response);e=e.querySelector("[hx-history-elt],[data-hx-history-elt]")||e;var t=Ct();var r=Zt(t);var n=Re(this.response);if(n){var i=C("title");if(i){i.innerHTML=n}else{window.document.title=n}}Se(t,e,r);At(r.tasks);Et=a;ee($().body,"htmx:historyRestore",{path:a,cacheMiss:true,serverResponse:this.response})}else{Q($().body,"htmx:historyCacheMissLoadError",o)}};e.send()}function It(e){Tt();e=e||location.pathname+location.search;var t=Ot(e);if(t){var r=f(t.content);var n=Ct();var i=Zt(n);Se(n,r,i);At(i.tasks);document.title=t.title;window.scrollTo(0,t.scroll);Et=e;ee($().body,"htmx:historyRestore",{path:e,item:t})}else{if(z.config.refreshOnHistoryMiss){window.location.reload(true)}else{Nt(e)}}}function kt(e){var t=F(e,"hx-indicator");if(t==null){t=[e]}Y(t,function(e){var t=K(e);t.requestCount=(t.requestCount||0)+1;e.classList["add"].call(e.classList,z.config.requestClass)});return t}function Mt(e){Y(e,function(e){var t=K(e);t.requestCount=(t.requestCount||0)-1;if(t.requestCount===0){e.classList["remove"].call(e.classList,z.config.requestClass)}})}function Pt(e,t){for(var r=0;r<e.length;r++){var n=e[r];if(n.isSameNode(t)){return true}}return false}function Dt(e){if(e.name===""||e.name==null||e.disabled){return false}if(e.type==="button"||e.type==="submit"||e.tagName==="image"||e.tagName==="reset"||e.tagName==="file"){return false}if(e.type==="checkbox"||e.type==="radio"){return e.checked}return true}function Xt(t,r,n,e,i){if(e==null||Pt(t,e)){return}else{t.push(e)}if(Dt(e)){var a=G(e,"name");var o=e.value;if(e.multiple){o=y(e.querySelectorAll("option:checked")).map(function(e){return e.value})}if(e.files){o=y(e.files)}if(a!=null&&o!=null){var s=r[a];if(s!==undefined){if(Array.isArray(s)){if(Array.isArray(o)){r[a]=s.concat(o)}else{s.push(o)}}else{if(Array.isArray(o)){r[a]=[s].concat(o)}else{r[a]=[s,o]}}}else{r[a]=o}}if(i){Ft(e,n)}}if(d(e,"form")){var l=e.elements;Y(l,function(e){Xt(t,r,n,e,i)})}}function Ft(e,t){if(e.willValidate){ee(e,"htmx:validation:validate");if(!e.checkValidity()){t.push({elt:e,message:e.validationMessage,validity:e.validity});ee(e,"htmx:validation:failed",{message:e.validationMessage,validity:e.validity})}}}function Bt(e,t){var r=[];var n={};var i={};var a=[];var o=K(e);var s=d(e,"form")&&e.noValidate!==true||J(e,"hx-validate")==="true";if(o.lastButtonClicked){s=s&&o.lastButtonClicked.formNoValidate!==true}if(t!=="get"){Xt(r,i,a,A(e,"form"),s)}Xt(r,n,a,e,s);if(o.lastButtonClicked){var l=G(o.lastButtonClicked,"name");if(l){n[l]=o.lastButtonClicked.value}}var u=F(e,"hx-include");Y(u,function(e){Xt(r,n,a,e,s);if(!d(e,"form")){Y(e.querySelectorAll(De),function(e){Xt(r,n,a,e,s)})}});n=ne(n,i);return{errors:a,values:n}}function jt(e,t,r){if(e!==""){e+="&"}if(String(r)==="[object Object]"){r=JSON.stringify(r)}var n=encodeURIComponent(r);e+=encodeURIComponent(t)+"="+n;return e}function Ut(e){var t="";for(var r in e){if(e.hasOwnProperty(r)){var n=e[r];if(Array.isArray(n)){Y(n,function(e){t=jt(t,r,e)})}else{t=jt(t,r,n)}}}return t}function Vt(e){var t=new FormData;for(var r in e){if(e.hasOwnProperty(r)){var n=e[r];if(Array.isArray(n)){Y(n,function(e){t.append(r,e)})}else{t.append(r,n)}}}return t}function _t(e,t,r){var n={"HX-Request":"true","HX-Trigger":G(e,"id"),"HX-Trigger-Name":G(e,"name"),"HX-Target":J(t,"id"),"HX-Current-URL":$().location.href};Yt(e,"hx-headers",false,n);if(r!==undefined){n["HX-Prompt"]=r}if(K(e).boosted){n["HX-Boosted"]="true"}return n}function Wt(t,e){var r=Z(e,"hx-params");if(r){if(r==="none"){return{}}else if(r==="*"){return t}else if(r.indexOf("not ")===0){Y(r.substr(4).split(","),function(e){e=e.trim();delete t[e]});return t}else{var n={};Y(r.split(","),function(e){e=e.trim();n[e]=t[e]});return n}}else{return t}}function zt(e){return G(e,"href")&&G(e,"href").indexOf("#")>=0}function Gt(e,t){var r=t?t:Z(e,"hx-swap");var n={swapStyle:K(e).boosted?"innerHTML":z.config.defaultSwapStyle,swapDelay:z.config.defaultSwapDelay,settleDelay:z.config.defaultSettleDelay};if(K(e).boosted&&!zt(e)){n["show"]="top"}if(r){var i=b(r);if(i.length>0){n["swapStyle"]=i[0];for(var a=1;a<i.length;a++){var o=i[a];if(o.indexOf("swap:")===0){n["swapDelay"]=v(o.substr(5))}if(o.indexOf("settle:")===0){n["settleDelay"]=v(o.substr(7))}if(o.indexOf("scroll:")===0){var s=o.substr(7);var l=s.split(":");var f=l.pop();var u=l.length>0?l.join(":"):null;n["scroll"]=f;n["scrollTarget"]=u}if(o.indexOf("show:")===0){var c=o.substr(5);var l=c.split(":");var h=l.pop();var u=l.length>0?l.join(":"):null;n["show"]=h;n["showTarget"]=u}if(o.indexOf("focus-scroll:")===0){var d=o.substr("focus-scroll:".length);n["focusScroll"]=d=="true"}}}}return n}function Jt(e){return Z(e,"hx-encoding")==="multipart/form-data"||d(e,"form")&&G(e,"enctype")==="multipart/form-data"}function $t(t,r,n){var i=null;wt(r,function(e){if(i==null){i=e.encodeParameters(t,n,r)}});if(i!=null){return i}else{if(Jt(r)){return Vt(n)}else{return Ut(n)}}}function Zt(e){return{tasks:[],elts:[e]}}function Kt(e,t){var r=e[0];var n=e[e.length-1];if(t.scroll){var i=null;if(t.scrollTarget){i=ie(r,t.scrollTarget)}if(t.scroll==="top"&&(r||i)){i=i||r;i.scrollTop=0}if(t.scroll==="bottom"&&(n||i)){i=i||n;i.scrollTop=i.scrollHeight}}if(t.show){var i=null;if(t.showTarget){var a=t.showTarget;if(t.showTarget==="window"){a="body"}i=ie(r,a)}if(t.show==="top"&&(r||i)){i=i||r;i.scrollIntoView({block:"start",behavior:z.config.scrollBehavior})}if(t.show==="bottom"&&(n||i)){i=i||n;i.scrollIntoView({block:"end",behavior:z.config.scrollBehavior})}}}function Yt(e,t,r,n){if(n==null){n={}}if(e==null){return n}var i=J(e,t);if(i){var a=i.trim();var o=r;if(a==="unset"){return null}if(a.indexOf("javascript:")===0){a=a.substr(11);o=true}else if(a.indexOf("js:")===0){a=a.substr(3);o=true}if(a.indexOf("{")!==0){a="{"+a+"}"}var s;if(o){s=Qt(e,function(){return Function("return ("+a+")")()},{})}else{s=w(a)}for(var l in s){if(s.hasOwnProperty(l)){if(n[l]==null){n[l]=s[l]}}}}return Yt(u(e),t,r,n)}function Qt(e,t,r){if(z.config.allowEval){return t()}else{Q(e,"htmx:evalDisallowedError");return r}}function er(e,t){return Yt(e,"hx-vars",true,t)}function tr(e,t){return Yt(e,"hx-vals",false,t)}function rr(e){return ne(er(e),tr(e))}function nr(t,r,n){if(n!==null){try{t.setRequestHeader(r,n)}catch(e){t.setRequestHeader(r,encodeURIComponent(n));t.setRequestHeader(r+"-URI-AutoEncoded","true")}}}function ir(t){if(t.responseURL&&typeof URL!=="undefined"){try{var e=new URL(t.responseURL);return e.pathname+e.search}catch(e){Q($().body,"htmx:badResponseUrl",{url:t.responseURL})}}}function ar(e,t){return e.getAllResponseHeaders().match(t)}function or(e,t,r){e=e.toLowerCase();if(r){if(r instanceof Element||g(r,"String")){return lr(e,t,null,null,{targetOverride:M(r),returnPromise:true})}else{return lr(e,t,M(r.source),r.event,{handler:r.handler,headers:r.headers,values:r.values,targetOverride:M(r.target),swapOverride:r.swap,returnPromise:true})}}else{return lr(e,t,null,null,{returnPromise:true})}}function sr(e){var t=[];while(e){t.push(e);e=e.parentElement}return t}function lr(e,t,n,r,i,f){var c=null;var h=null;i=i!=null?i:{};if(i.returnPromise&&typeof Promise!=="undefined"){var d=new Promise(function(e,t){c=e;h=t})}if(n==null){n=$().body}var v=i.handler||fr;if(!re(n)){return}var g=i.targetOverride||se(n);if(g==null||g==ae){Q(n,"htmx:targetError",{target:J(n,"hx-target")});return}if(!f){var p=function(){return lr(e,t,n,r,i,true)};var m={target:g,elt:n,path:t,verb:e,triggeringEvent:r,etc:i,issueRequest:p};if(ee(n,"htmx:confirm",m)===false){return}}var y=n;var a=K(n);var x=Z(n,"hx-sync");var b=null;var w=false;if(x){var S=x.split(":");var E=S[0].trim();if(E==="this"){y=oe(n,"hx-sync")}else{y=ie(n,E)}x=(S[1]||"drop").trim();a=K(y);if(x==="drop"&&a.xhr&&a.abortable!==true){return}else if(x==="abort"){if(a.xhr){return}else{w=true}}else if(x==="replace"){ee(y,"htmx:abort")}else if(x.indexOf("queue")===0){var C=x.split(" ");b=(C[1]||"last").trim()}}if(a.xhr){if(a.abortable){ee(y,"htmx:abort")}else{if(b==null){if(r){var R=K(r);if(R&&R.triggerSpec&&R.triggerSpec.queue){b=R.triggerSpec.queue}}if(b==null){b="last"}}if(a.queuedRequests==null){a.queuedRequests=[]}if(b==="first"&&a.queuedRequests.length===0){a.queuedRequests.push(function(){lr(e,t,n,r,i)})}else if(b==="all"){a.queuedRequests.push(function(){lr(e,t,n,r,i)})}else if(b==="last"){a.queuedRequests=[];a.queuedRequests.push(function(){lr(e,t,n,r,i)})}return}}var o=new XMLHttpRequest;a.xhr=o;a.abortable=w;var s=function(){a.xhr=null;a.abortable=false;if(a.queuedRequests!=null&&a.queuedRequests.length>0){var e=a.queuedRequests.shift();e()}};var O=Z(n,"hx-prompt");if(O){var q=prompt(O);if(q===null||!ee(n,"htmx:prompt",{prompt:q,target:g})){te(c);s();return d}}var T=Z(n,"hx-confirm");if(T){if(!confirm(T)){te(c);s();return d}}var L=_t(n,g,q);if(i.headers){L=ne(L,i.headers)}var H=Bt(n,e);var A=H.errors;var N=H.values;if(i.values){N=ne(N,i.values)}var I=rr(n);var k=ne(N,I);var M=Wt(k,n);if(e!=="get"&&!Jt(n)){L["Content-Type"]="application/x-www-form-urlencoded"}if(z.config.getCacheBusterParam&&e==="get"){M["org.htmx.cache-buster"]=G(g,"id")||"true"}if(t==null||t===""){t=$().location.href}var P=Yt(n,"hx-request");var D=K(n).boosted;var l={boosted:D,parameters:M,unfilteredParameters:k,headers:L,target:g,verb:e,errors:A,withCredentials:i.credentials||P.credentials||z.config.withCredentials,timeout:i.timeout||P.timeout||z.config.timeout,path:t,triggeringEvent:r};if(!ee(n,"htmx:configRequest",l)){te(c);s();return d}t=l.path;e=l.verb;L=l.headers;M=l.parameters;A=l.errors;if(A&&A.length>0){ee(n,"htmx:validation:halted",l);te(c);s();return d}var X=t.split("#");var F=X[0];var B=X[1];var j=null;if(e==="get"){j=F;var U=Object.keys(M).length!==0;if(U){if(j.indexOf("?")<0){j+="?"}else{j+="&"}j+=Ut(M);if(B){j+="#"+B}}o.open("GET",j,true)}else{o.open(e.toUpperCase(),t,true)}o.overrideMimeType("text/html");o.withCredentials=l.withCredentials;o.timeout=l.timeout;if(P.noHeaders){}else{for(var V in L){if(L.hasOwnProperty(V)){var _=L[V];nr(o,V,_)}}}var u={xhr:o,target:g,requestConfig:l,etc:i,boosted:D,pathInfo:{requestPath:t,finalRequestPath:j||t,anchor:B}};o.onload=function(){try{var e=sr(n);u.pathInfo.responsePath=ir(o);v(n,u);Mt(W);ee(n,"htmx:afterRequest",u);ee(n,"htmx:afterOnLoad",u);if(!re(n)){var t=null;while(e.length>0&&t==null){var r=e.shift();if(re(r)){t=r}}if(t){ee(t,"htmx:afterRequest",u);ee(t,"htmx:afterOnLoad",u)}}te(c);s()}catch(e){Q(n,"htmx:onLoadError",ne({error:e},u));throw e}};o.onerror=function(){Mt(W);Q(n,"htmx:afterRequest",u);Q(n,"htmx:sendError",u);te(h);s()};o.onabort=function(){Mt(W);Q(n,"htmx:afterRequest",u);Q(n,"htmx:sendAbort",u);te(h);s()};o.ontimeout=function(){Mt(W);Q(n,"htmx:afterRequest",u);Q(n,"htmx:timeout",u);te(h);s()};if(!ee(n,"htmx:beforeRequest",u)){te(c);s();return d}var W=kt(n);Y(["loadstart","loadend","progress","abort"],function(t){Y([o,o.upload],function(e){e.addEventListener(t,function(e){ee(n,"htmx:xhr:"+t,{lengthComputable:e.lengthComputable,loaded:e.loaded,total:e.total})})})});ee(n,"htmx:beforeSend",u);o.send(e==="get"?null:$t(o,n,M));return d}function ur(e,t){var r=t.xhr;var n=null;var i=null;if(ar(r,/HX-Push:/i)){n=r.getResponseHeader("HX-Push");i="push"}else if(ar(r,/HX-Push-Url:/i)){n=r.getResponseHeader("HX-Push-Url");i="push"}else if(ar(r,/HX-Replace-Url:/i)){n=r.getResponseHeader("HX-Replace-Url");i="replace"}if(n){if(n==="false"){return{}}else{return{type:i,path:n}}}var a=t.pathInfo.finalRequestPath;var o=t.pathInfo.responsePath;var s=Z(e,"hx-push-url");var f=Z(e,"hx-replace-url");var c=K(e).boosted;var l=null;var u=null;if(s){l="push";u=s}else if(f){l="replace";u=f}else if(c){l="push";u=o||a}if(u){if(u==="false"){return{}}if(u==="true"){u=o||a}if(t.pathInfo.anchor&&u.indexOf("#")===-1){u=u+"#"+t.pathInfo.anchor}return{type:l,path:u}}else{return{}}}function fr(s,l){var u=l.xhr;var f=l.target;var n=l.etc;if(!ee(s,"htmx:beforeOnLoad",l))return;if(ar(u,/HX-Trigger:/i)){qe(u,"HX-Trigger",s)}if(ar(u,/HX-Location:/i)){Tt();var e=u.getResponseHeader("HX-Location");var c;if(e.indexOf("{")===0){c=w(e);e=c["path"];delete c["path"]}or("GET",e,c).then(function(){Lt(e)});return}if(ar(u,/HX-Redirect:/i)){location.href=u.getResponseHeader("HX-Redirect");return}if(ar(u,/HX-Refresh:/i)){if("true"===u.getResponseHeader("HX-Refresh")){location.reload();return}}if(ar(u,/HX-Retarget:/i)){l.target=$().querySelector(u.getResponseHeader("HX-Retarget"))}var h=ur(s,l);var i=u.status>=200&&u.status<400&&u.status!==204;var d=u.response;var t=u.status>=400;var r=ne({shouldSwap:i,serverResponse:d,isError:t},l);if(!ee(f,"htmx:beforeSwap",r))return;f=r.target;d=r.serverResponse;t=r.isError;l.failed=t;l.successful=!t;if(r.shouldSwap){if(u.status===286){Fe(s)}wt(s,function(e){d=e.transformResponse(d,u,s)});if(h.type){Tt()}var a=n.swapOverride;if(ar(u,/HX-Reswap:/i)){a=u.getResponseHeader("HX-Reswap")}var c=Gt(s,a);f.classList.add(z.config.swappingClass);var o=function(){try{var e=document.activeElement;var t={};try{t={elt:e,start:e?e.selectionStart:null,end:e?e.selectionEnd:null}}catch(e){}var n=Zt(f);Oe(c.swapStyle,f,s,d,n);if(t.elt&&!re(t.elt)&&t.elt.id){var r=document.getElementById(t.elt.id);var i={preventScroll:c.focusScroll!==undefined?!c.focusScroll:!z.config.defaultFocusScroll};if(r){if(t.start&&r.setSelectionRange){try{r.setSelectionRange(t.start,t.end)}catch(e){}}r.focus(i)}}f.classList.remove(z.config.swappingClass);Y(n.elts,function(e){if(e.classList){e.classList.add(z.config.settlingClass)}ee(e,"htmx:afterSwap",l)});if(ar(u,/HX-Trigger-After-Swap:/i)){var a=s;if(!re(s)){a=$().body}qe(u,"HX-Trigger-After-Swap",a)}var o=function(){Y(n.tasks,function(e){e.call()});Y(n.elts,function(e){if(e.classList){e.classList.remove(z.config.settlingClass)}ee(e,"htmx:afterSettle",l)});if(h.type){if(h.type==="push"){Lt(h.path);ee($().body,"htmx:pushedIntoHistory",{path:h.path})}else{Ht(h.path);ee($().body,"htmx:replacedInHistory",{path:h.path})}}if(l.pathInfo.anchor){var e=C("#"+l.pathInfo.anchor);if(e){e.scrollIntoView({block:"start",behavior:"auto"})}}if(n.title){var t=C("title");if(t){t.innerHTML=n.title}else{window.document.title=n.title}}Kt(n.elts,c);if(ar(u,/HX-Trigger-After-Settle:/i)){var r=s;if(!re(s)){r=$().body}qe(u,"HX-Trigger-After-Settle",r)}};if(c.settleDelay>0){setTimeout(o,c.settleDelay)}else{o()}}catch(e){Q(s,"htmx:swapError",l);throw e}};if(c.swapDelay>0){setTimeout(o,c.swapDelay)}else{o()}}if(t){Q(s,"htmx:responseError",ne({error:"Response Status Error Code "+u.status+" from "+l.pathInfo.requestPath},l))}}var cr={};function hr(){return{init:function(e){return null},onEvent:function(e,t){return true},transformResponse:function(e,t,r){return e},isInlineSwap:function(e){return false},handleSwap:function(e,t,r,n){return false},encodeParameters:function(e,t,r){return null}}}function dr(e,t){if(t.init){t.init(r)}cr[e]=ne(hr(),t)}function vr(e){delete cr[e]}function gr(e,r,n){if(e==undefined){return r}if(r==undefined){r=[]}if(n==undefined){n=[]}var t=J(e,"hx-ext");if(t){Y(t.split(","),function(e){e=e.replace(/ /g,"");if(e.slice(0,7)=="ignore:"){n.push(e.slice(7));return}if(n.indexOf(e)<0){var t=cr[e];if(t&&r.indexOf(t)<0){r.push(t)}}})}return gr(u(e),r,n)}function pr(e){if($().readyState!=="loading"){e()}else{$().addEventListener("DOMContentLoaded",e)}}function mr(){if(z.config.includeIndicatorStyles!==false){$().head.insertAdjacentHTML("beforeend","<style> ."+z.config.indicatorClass+"{opacity:0;transition: opacity 200ms ease-in;} ."+z.config.requestClass+" ."+z.config.indicatorClass+"{opacity:1} ."+z.config.requestClass+"."+z.config.indicatorClass+"{opacity:1} </style>")}}function yr(){var e=$().querySelector('meta[name="htmx-config"]');if(e){return w(e.content)}else{return null}}function xr(){var e=yr();if(e){z.config=ne(z.config,e)}}pr(function(){xr();mr();var e=$().body;mt(e);var t=$().querySelectorAll("[hx-trigger='restored'],[data-hx-trigger='restored']");e.addEventListener("htmx:abort",function(e){var t=e.target;var r=K(t);if(r&&r.xhr){r.xhr.abort()}});window.onpopstate=function(e){if(e.state&&e.state.htmx){It();Y(t,function(e){ee(e,"htmx:restored",{document:$(),triggerEvent:ee})})}};setTimeout(function(){ee(e,"htmx:load",{})},0)});return z}()});
|
|
1
|
+
(function(e,t){if(typeof define==="function"&&define.amd){define([],t)}else if(typeof module==="object"&&module.exports){module.exports=t()}else{e.htmx=e.htmx||t()}})(typeof self!=="undefined"?self:this,function(){return function(){"use strict";var z={onLoad:t,process:qt,on:se,off:le,trigger:ie,ajax:hr,find:b,findAll:f,closest:d,values:function(e,t){var r=Jt(e,t||"post");return r.values},remove:F,addClass:B,removeClass:n,toggleClass:j,takeClass:V,defineExtension:xr,removeExtension:yr,logAll:X,logger:null,config:{historyEnabled:true,historyCacheSize:10,refreshOnHistoryMiss:false,defaultSwapStyle:"innerHTML",defaultSwapDelay:0,defaultSettleDelay:20,includeIndicatorStyles:true,indicatorClass:"htmx-indicator",requestClass:"htmx-request",addedClass:"htmx-added",settlingClass:"htmx-settling",swappingClass:"htmx-swapping",allowEval:true,inlineScriptNonce:"",attributesToSettle:["class","style","width","height"],withCredentials:false,timeout:0,wsReconnectDelay:"full-jitter",wsBinaryType:"blob",disableSelector:"[hx-disable], [data-hx-disable]",useTemplateFragments:false,scrollBehavior:"smooth",defaultFocusScroll:false,getCacheBusterParam:false,globalViewTransitions:false},parseInterval:v,_:e,createEventSource:function(e){return new EventSource(e,{withCredentials:true})},createWebSocket:function(e){var t=new WebSocket(e,[]);t.binaryType=z.config.wsBinaryType;return t},version:"1.9.0"};var C={addTriggerHandler:mt,bodyContains:ee,canAccessLocalStorage:D,filterValues:Qt,hasAttribute:q,getAttributeValue:J,getClosestMatch:c,getExpressionVars:ur,getHeaders:Yt,getInputValues:Jt,getInternalData:Y,getSwapSpecification:tr,getTriggerSpecs:We,getTarget:he,makeFragment:l,mergeObjects:te,makeSettleInfo:S,oobSwap:pe,selectAndSwap:Pe,settleImmediately:Ft,shouldCancel:$e,triggerEvent:ie,triggerErrorEvent:ne,withExtensions:w};var R=["get","post","put","delete","patch"];var O=R.map(function(e){return"[hx-"+e+"], [data-hx-"+e+"]"}).join(", ");function v(e){if(e==undefined){return undefined}if(e.slice(-2)=="ms"){return parseFloat(e.slice(0,-2))||undefined}if(e.slice(-1)=="s"){return parseFloat(e.slice(0,-1))*1e3||undefined}if(e.slice(-1)=="m"){return parseFloat(e.slice(0,-1))*1e3*60||undefined}return parseFloat(e)||undefined}function G(e,t){return e.getAttribute&&e.getAttribute(t)}function q(e,t){return e.hasAttribute&&(e.hasAttribute(t)||e.hasAttribute("data-"+t))}function J(e,t){return G(e,t)||G(e,"data-"+t)}function u(e){return e.parentElement}function Z(){return document}function c(e,t){while(e&&!t(e)){e=u(e)}return e?e:null}function T(e,t,r){var n=J(t,r);var i=J(t,"hx-disinherit");if(e!==t&&i&&(i==="*"||i.split(" ").indexOf(r)>=0)){return"unset"}else{return n}}function $(t,r){var n=null;c(t,function(e){return n=T(t,e,r)});if(n!=="unset"){return n}}function h(e,t){var r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector;return r&&r.call(e,t)}function H(e){var t=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i;var r=t.exec(e);if(r){return r[1].toLowerCase()}else{return""}}function i(e,t){var r=new DOMParser;var n=r.parseFromString(e,"text/html");var i=n.body;while(t>0){t--;i=i.firstChild}if(i==null){i=Z().createDocumentFragment()}return i}function L(e){return e.match(/<body/)}function l(e){var t=!L(e);if(z.config.useTemplateFragments&&t){var r=i("<body><template>"+e+"</template></body>",0);return r.querySelector("template").content}else{var n=H(e);switch(n){case"thead":case"tbody":case"tfoot":case"colgroup":case"caption":return i("<table>"+e+"</table>",1);case"col":return i("<table><colgroup>"+e+"</colgroup></table>",2);case"tr":return i("<table><tbody>"+e+"</tbody></table>",2);case"td":case"th":return i("<table><tbody><tr>"+e+"</tr></tbody></table>",3);case"script":return i("<div>"+e+"</div>",1);default:return i(e,0)}}}function K(e){if(e){e()}}function A(e,t){return Object.prototype.toString.call(e)==="[object "+t+"]"}function N(e){return A(e,"Function")}function I(e){return A(e,"Object")}function Y(e){var t="htmx-internal-data";var r=e[t];if(!r){r=e[t]={}}return r}function k(e){var t=[];if(e){for(var r=0;r<e.length;r++){t.push(e[r])}}return t}function Q(e,t){if(e){for(var r=0;r<e.length;r++){t(e[r])}}}function P(e){var t=e.getBoundingClientRect();var r=t.top;var n=t.bottom;return r<window.innerHeight&&n>=0}function ee(e){if(e.getRootNode&&e.getRootNode()instanceof ShadowRoot){return Z().body.contains(e.getRootNode().host)}else{return Z().body.contains(e)}}function M(e){return e.trim().split(/\s+/)}function te(e,t){for(var r in t){if(t.hasOwnProperty(r)){e[r]=t[r]}}return e}function y(e){try{return JSON.parse(e)}catch(e){x(e);return null}}function D(){var e="htmx:localStorageTest";try{localStorage.setItem(e,e);localStorage.removeItem(e);return true}catch(e){return false}}function e(e){return or(Z().body,function(){return eval(e)})}function t(t){var e=z.on("htmx:load",function(e){t(e.detail.elt)});return e}function X(){z.logger=function(e,t,r){if(console){console.log(t,e,r)}}}function b(e,t){if(t){return e.querySelector(t)}else{return b(Z(),e)}}function f(e,t){if(t){return e.querySelectorAll(t)}else{return f(Z(),e)}}function F(e,t){e=s(e);if(t){setTimeout(function(){F(e);e=null},t)}else{e.parentElement.removeChild(e)}}function B(e,t,r){e=s(e);if(r){setTimeout(function(){B(e,t);e=null},r)}else{e.classList&&e.classList.add(t)}}function n(e,t,r){e=s(e);if(r){setTimeout(function(){n(e,t);e=null},r)}else{if(e.classList){e.classList.remove(t);if(e.classList.length===0){e.removeAttribute("class")}}}}function j(e,t){e=s(e);e.classList.toggle(t)}function V(e,t){e=s(e);Q(e.parentElement.children,function(e){n(e,t)});B(e,t)}function d(e,t){e=s(e);if(e.closest){return e.closest(t)}else{do{if(e==null||h(e,t)){return e}}while(e=e&&u(e));return null}}function r(e){var t=e.trim();if(t.startsWith("<")&&t.endsWith("/>")){return t.substring(1,t.length-2)}else{return t}}function U(e,t){if(t.indexOf("closest ")===0){return[d(e,r(t.substr(8)))]}else if(t.indexOf("find ")===0){return[b(e,r(t.substr(5)))]}else if(t.indexOf("next ")===0){return[_(e,r(t.substr(5)))]}else if(t.indexOf("previous ")===0){return[W(e,r(t.substr(9)))]}else if(t==="document"){return[document]}else if(t==="window"){return[window]}else{return Z().querySelectorAll(r(t))}}var _=function(e,t){var r=Z().querySelectorAll(t);for(var n=0;n<r.length;n++){var i=r[n];if(i.compareDocumentPosition(e)===Node.DOCUMENT_POSITION_PRECEDING){return i}}};var W=function(e,t){var r=Z().querySelectorAll(t);for(var n=r.length-1;n>=0;n--){var i=r[n];if(i.compareDocumentPosition(e)===Node.DOCUMENT_POSITION_FOLLOWING){return i}}};function re(e,t){if(t){return U(e,t)[0]}else{return U(Z().body,e)[0]}}function s(e){if(A(e,"String")){return b(e)}else{return e}}function oe(e,t,r){if(N(t)){return{target:Z().body,event:e,listener:t}}else{return{target:s(e),event:t,listener:r}}}function se(t,r,n){wr(function(){var e=oe(t,r,n);e.target.addEventListener(e.event,e.listener)});var e=N(r);return e?r:n}function le(t,r,n){wr(function(){var e=oe(t,r,n);e.target.removeEventListener(e.event,e.listener)});return N(r)?r:n}var ue=Z().createElement("output");function fe(e,t){var r=$(e,t);if(r){if(r==="this"){return[ce(e,t)]}else{var n=U(e,r);if(n.length===0){x('The selector "'+r+'" on '+t+" returned no matches!");return[ue]}else{return n}}}}function ce(e,t){return c(e,function(e){return J(e,t)!=null})}function he(e){var t=$(e,"hx-target");if(t){if(t==="this"){return ce(e,"hx-target")}else{return re(e,t)}}else{var r=Y(e);if(r.boosted){return Z().body}else{return e}}}function de(e){var t=z.config.attributesToSettle;for(var r=0;r<t.length;r++){if(e===t[r]){return true}}return false}function ve(t,r){Q(t.attributes,function(e){if(!r.hasAttribute(e.name)&&de(e.name)){t.removeAttribute(e.name)}});Q(r.attributes,function(e){if(de(e.name)){t.setAttribute(e.name,e.value)}})}function ge(e,t){var r=br(t);for(var n=0;n<r.length;n++){var i=r[n];try{if(i.isInlineSwap(e)){return true}}catch(e){x(e)}}return e==="outerHTML"}function pe(e,i,a){var t="#"+i.id;var o="outerHTML";if(e==="true"){}else if(e.indexOf(":")>0){o=e.substr(0,e.indexOf(":"));t=e.substr(e.indexOf(":")+1,e.length)}else{o=e}var r=Z().querySelectorAll(t);if(r){Q(r,function(e){var t;var r=i.cloneNode(true);t=Z().createDocumentFragment();t.appendChild(r);if(!ge(o,e)){t=r}var n={shouldSwap:true,target:e,fragment:t};if(!ie(e,"htmx:oobBeforeSwap",n))return;e=n.target;if(n["shouldSwap"]){Ie(o,e,e,t,a)}Q(a.elts,function(e){ie(e,"htmx:oobAfterSwap",n)})});i.parentNode.removeChild(i)}else{i.parentNode.removeChild(i);ne(Z().body,"htmx:oobErrorNoTarget",{content:i})}return e}function me(e,t,r){var n=$(e,"hx-select-oob");if(n){var i=n.split(",");for(let e=0;e<i.length;e++){var a=i[e].split(":",2);var o=a[0].trim();if(o.indexOf("#")===0){o=o.substring(1)}var s=a[1]||"true";var l=t.querySelector("#"+o);if(l){pe(s,l,r)}}}Q(f(t,"[hx-swap-oob], [data-hx-swap-oob]"),function(e){var t=J(e,"hx-swap-oob");if(t!=null){pe(t,e,r)}})}function xe(e){Q(f(e,"[hx-preserve], [data-hx-preserve]"),function(e){var t=J(e,"id");var r=Z().getElementById(t);if(r!=null){e.parentNode.replaceChild(r,e)}})}function ye(a,e,o){Q(e.querySelectorAll("[id]"),function(e){if(e.id&&e.id.length>0){var t=e.id.replace("'","\\'");var r=e.tagName.replace(":","\\:");var n=a.querySelector(r+"[id='"+t+"']");if(n&&n!==a){var i=e.cloneNode();ve(e,n);o.tasks.push(function(){ve(e,i)})}}})}function be(e){return function(){n(e,z.config.addedClass);qt(e);yt(e);we(e);ie(e,"htmx:load")}}function we(e){var t="[autofocus]";var r=h(e,t)?e:e.querySelector(t);if(r!=null){r.focus()}}function a(e,t,r,n){ye(e,r,n);while(r.childNodes.length>0){var i=r.firstChild;B(i,z.config.addedClass);e.insertBefore(i,t);if(i.nodeType!==Node.TEXT_NODE&&i.nodeType!==Node.COMMENT_NODE){n.tasks.push(be(i))}}}function Se(e,t){var r=0;while(r<e.length){t=(t<<5)-t+e.charCodeAt(r++)|0}return t}function Ee(e){var t=0;if(e.attributes){for(var r=0;r<e.attributes.length;r++){var n=e.attributes[r];if(n.value){t=Se(n.name,t);t=Se(n.value,t)}}}return t}function Ce(e){var t=Y(e);if(t.timeout){clearTimeout(t.timeout)}if(t.webSocket){t.webSocket.close()}if(t.sseEventSource){t.sseEventSource.close()}if(t.listenerInfos){Q(t.listenerInfos,function(e){if(e.on){e.on.removeEventListener(e.trigger,e.listener)}})}if(t.onHandlers){for(var r of t.onHandlers){e.removeEventListener(r,t.onHandlers[r])}}}function o(e){ie(e,"htmx:beforeCleanupElement");Ce(e);if(e.children){Q(e.children,function(e){o(e)})}}function Re(e,t,r){if(e.tagName==="BODY"){return Ae(e,t,r)}else{var n;var i=e.previousSibling;a(u(e),e,t,r);if(i==null){n=u(e).firstChild}else{n=i.nextSibling}Y(e).replacedWith=n;r.elts=[];while(n&&n!==e){if(n.nodeType===Node.ELEMENT_NODE){r.elts.push(n)}n=n.nextElementSibling}o(e);u(e).removeChild(e)}}function Oe(e,t,r){return a(e,e.firstChild,t,r)}function qe(e,t,r){return a(u(e),e,t,r)}function Te(e,t,r){return a(e,null,t,r)}function He(e,t,r){return a(u(e),e.nextSibling,t,r)}function Le(e,t,r){o(e);return u(e).removeChild(e)}function Ae(e,t,r){var n=e.firstChild;a(e,n,t,r);if(n){while(n.nextSibling){o(n.nextSibling);e.removeChild(n.nextSibling)}o(n);e.removeChild(n)}}function Ne(e,t){var r=$(e,"hx-select");if(r){var n=Z().createDocumentFragment();Q(t.querySelectorAll(r),function(e){n.appendChild(e)});t=n}return t}function Ie(e,t,r,n,i){switch(e){case"none":return;case"outerHTML":Re(r,n,i);return;case"afterbegin":Oe(r,n,i);return;case"beforebegin":qe(r,n,i);return;case"beforeend":Te(r,n,i);return;case"afterend":He(r,n,i);return;case"delete":Le(r,n,i);return;default:var a=br(t);for(var o=0;o<a.length;o++){var s=a[o];try{var l=s.handleSwap(e,r,n,i);if(l){if(typeof l.length!=="undefined"){for(var u=0;u<l.length;u++){var f=l[u];if(f.nodeType!==Node.TEXT_NODE&&f.nodeType!==Node.COMMENT_NODE){i.tasks.push(be(f))}}}return}}catch(e){x(e)}}if(e==="innerHTML"){Ae(r,n,i)}else{Ie(z.config.defaultSwapStyle,t,r,n,i)}}}function ke(e){if(e.indexOf("<title")>-1){var t=e.replace(/<svg(\s[^>]*>|>)([\s\S]*?)<\/svg>/gim,"");var r=t.match(/<title(\s[^>]*>|>)([\s\S]*?)<\/title>/im);if(r){return r[2]}}}function Pe(e,t,r,n,i){i.title=ke(n);var a=l(n);if(a){me(r,a,i);a=Ne(r,a);xe(a);return Ie(e,r,t,a,i)}}function Me(e,t,r){var n=e.getResponseHeader(t);if(n.indexOf("{")===0){var i=y(n);for(var a in i){if(i.hasOwnProperty(a)){var o=i[a];if(!I(o)){o={value:o}}ie(r,a,o)}}}else{ie(r,n,[])}}var De=/\s/;var g=/[\s,]/;var Xe=/[_$a-zA-Z]/;var Fe=/[_$a-zA-Z0-9]/;var Be=['"',"'","/"];var p=/[^\s]/;function je(e){var t=[];var r=0;while(r<e.length){if(Xe.exec(e.charAt(r))){var n=r;while(Fe.exec(e.charAt(r+1))){r++}t.push(e.substr(n,r-n+1))}else if(Be.indexOf(e.charAt(r))!==-1){var i=e.charAt(r);var n=r;r++;while(r<e.length&&e.charAt(r)!==i){if(e.charAt(r)==="\\"){r++}r++}t.push(e.substr(n,r-n+1))}else{var a=e.charAt(r);t.push(a)}r++}return t}function Ve(e,t,r){return Xe.exec(e.charAt(0))&&e!=="true"&&e!=="false"&&e!=="this"&&e!==r&&t!=="."}function Ue(e,t,r){if(t[0]==="["){t.shift();var n=1;var i=" return (function("+r+"){ return (";var a=null;while(t.length>0){var o=t[0];if(o==="]"){n--;if(n===0){if(a===null){i=i+"true"}t.shift();i+=")})";try{var s=or(e,function(){return Function(i)()},function(){return true});s.source=i;return s}catch(e){ne(Z().body,"htmx:syntax:error",{error:e,source:i});return null}}}else if(o==="["){n++}if(Ve(o,a,r)){i+="(("+r+"."+o+") ? ("+r+"."+o+") : (window."+o+"))"}else{i=i+o}a=t.shift()}}}function m(e,t){var r="";while(e.length>0&&!e[0].match(t)){r+=e.shift()}return r}var _e="input, textarea, select";function We(e){var t=J(e,"hx-trigger");var r=[];if(t){var n=je(t);do{m(n,p);var i=n.length;var a=m(n,/[,\[\s]/);if(a!==""){if(a==="every"){var o={trigger:"every"};m(n,p);o.pollInterval=v(m(n,/[,\[\s]/));m(n,p);var s=Ue(e,n,"event");if(s){o.eventFilter=s}r.push(o)}else if(a.indexOf("sse:")===0){r.push({trigger:"sse",sseEvent:a.substr(4)})}else{var l={trigger:a};var s=Ue(e,n,"event");if(s){l.eventFilter=s}while(n.length>0&&n[0]!==","){m(n,p);var u=n.shift();if(u==="changed"){l.changed=true}else if(u==="once"){l.once=true}else if(u==="consume"){l.consume=true}else if(u==="delay"&&n[0]===":"){n.shift();l.delay=v(m(n,g))}else if(u==="from"&&n[0]===":"){n.shift();var f=m(n,g);if(f==="closest"||f==="find"||f==="next"||f==="previous"){n.shift();f+=" "+m(n,g)}l.from=f}else if(u==="target"&&n[0]===":"){n.shift();l.target=m(n,g)}else if(u==="throttle"&&n[0]===":"){n.shift();l.throttle=v(m(n,g))}else if(u==="queue"&&n[0]===":"){n.shift();l.queue=m(n,g)}else if((u==="root"||u==="threshold")&&n[0]===":"){n.shift();l[u]=m(n,g)}else{ne(e,"htmx:syntax:error",{token:n.shift()})}}r.push(l)}}if(n.length===i){ne(e,"htmx:syntax:error",{token:n.shift()})}m(n,p)}while(n[0]===","&&n.shift())}if(r.length>0){return r}else if(h(e,"form")){return[{trigger:"submit"}]}else if(h(e,'input[type="button"]')){return[{trigger:"click"}]}else if(h(e,_e)){return[{trigger:"change"}]}else{return[{trigger:"click"}]}}function ze(e){Y(e).cancelled=true}function Ge(e,t,r){var n=Y(e);n.timeout=setTimeout(function(){if(ee(e)&&n.cancelled!==true){if(!Ye(r,Ht("hx:poll:trigger",{triggerSpec:r,target:e}))){t(e)}Ge(e,t,r)}},r.pollInterval)}function Je(e){return location.hostname===e.hostname&&G(e,"href")&&G(e,"href").indexOf("#")!==0}function Ze(t,r,e){if(t.tagName==="A"&&Je(t)&&(t.target===""||t.target==="_self")||t.tagName==="FORM"){r.boosted=true;var n,i;if(t.tagName==="A"){n="get";i=G(t,"href")}else{var a=G(t,"method");n=a?a.toLowerCase():"get";if(n==="get"){}i=G(t,"action")}e.forEach(function(e){Qe(t,function(e,t){ae(n,i,e,t)},r,e,true)})}}function $e(e,t){if(e.type==="submit"||e.type==="click"){if(t.tagName==="FORM"){return true}if(h(t,'input[type="submit"], button')&&d(t,"form")!==null){return true}if(t.tagName==="A"&&t.href&&(t.getAttribute("href")==="#"||t.getAttribute("href").indexOf("#")!==0)){return true}}return false}function Ke(e,t){return Y(e).boosted&&e.tagName==="A"&&t.type==="click"&&(t.ctrlKey||t.metaKey)}function Ye(e,t){var r=e.eventFilter;if(r){try{return r(t)!==true}catch(e){ne(Z().body,"htmx:eventFilter:error",{error:e,source:r.source});return true}}return false}function Qe(i,a,e,o,s){var l=Y(i);var t;if(o.from){t=U(i,o.from)}else{t=[i]}if(o.changed){l.lastValue=i.value}Q(t,function(r){var n=function(e){if(!ee(i)){r.removeEventListener(o.trigger,n);return}if(Ke(i,e)){return}if(s||$e(e,i)){e.preventDefault()}if(Ye(o,e)){return}var t=Y(e);t.triggerSpec=o;if(t.handledFor==null){t.handledFor=[]}if(t.handledFor.indexOf(i)<0){t.handledFor.push(i);if(o.consume){e.stopPropagation()}if(o.target&&e.target){if(!h(e.target,o.target)){return}}if(o.once){if(l.triggeredOnce){return}else{l.triggeredOnce=true}}if(o.changed){if(l.lastValue===i.value){return}else{l.lastValue=i.value}}if(l.delayed){clearTimeout(l.delayed)}if(l.throttle){return}if(o.throttle){if(!l.throttle){a(i,e);l.throttle=setTimeout(function(){l.throttle=null},o.throttle)}}else if(o.delay){l.delayed=setTimeout(function(){a(i,e)},o.delay)}else{ie(i,"htmx:trigger");a(i,e)}}};if(e.listenerInfos==null){e.listenerInfos=[]}e.listenerInfos.push({trigger:o.trigger,listener:n,on:r});r.addEventListener(o.trigger,n)})}var et=false;var tt=null;function rt(){if(!tt){tt=function(){et=true};window.addEventListener("scroll",tt);setInterval(function(){if(et){et=false;Q(Z().querySelectorAll("[hx-trigger='revealed'],[data-hx-trigger='revealed']"),function(e){nt(e)})}},200)}}function nt(t){if(!q(t,"data-hx-revealed")&&P(t)){t.setAttribute("data-hx-revealed","true");var e=Y(t);if(e.initHash){ie(t,"revealed")}else{t.addEventListener("htmx:afterProcessNode",function(e){ie(t,"revealed")},{once:true})}}}function it(e,t,r){var n=M(r);for(var i=0;i<n.length;i++){var a=n[i].split(/:(.+)/);if(a[0]==="connect"){at(e,a[1],0)}if(a[0]==="send"){st(e)}}}function at(s,r,n){if(!ee(s)){return}if(r.indexOf("/")==0){var e=location.hostname+(location.port?":"+location.port:"");if(location.protocol=="https:"){r="wss://"+e+r}else if(location.protocol=="http:"){r="ws://"+e+r}}var t=z.createWebSocket(r);t.onerror=function(e){ne(s,"htmx:wsError",{error:e,socket:t});ot(s)};t.onclose=function(e){if([1006,1012,1013].indexOf(e.code)>=0){var t=lt(n);setTimeout(function(){at(s,r,n+1)},t)}};t.onopen=function(e){n=0};Y(s).webSocket=t;t.addEventListener("message",function(e){if(ot(s)){return}var t=e.data;w(s,function(e){t=e.transformResponse(t,null,s)});var r=S(s);var n=l(t);var i=k(n.children);for(var a=0;a<i.length;a++){var o=i[a];pe(J(o,"hx-swap-oob")||"true",o,r)}Ft(r.tasks)})}function ot(e){if(!ee(e)){Y(e).webSocket.close();return true}}function st(u){var f=c(u,function(e){return Y(e).webSocket!=null});if(f){u.addEventListener(We(u)[0].trigger,function(e){var t=Y(f).webSocket;var r=Yt(u,f);var n=Jt(u,"post");var i=n.errors;var a=n.values;var o=ur(u);var s=te(a,o);var l=Qt(s,u);l["HEADERS"]=r;if(i&&i.length>0){ie(u,"htmx:validation:halted",i);return}t.send(JSON.stringify(l));if($e(e,u)){e.preventDefault()}})}else{ne(u,"htmx:noWebSocketSourceError")}}function lt(e){var t=z.config.wsReconnectDelay;if(typeof t==="function"){return t(e)}if(t==="full-jitter"){var r=Math.min(e,6);var n=1e3*Math.pow(2,r);return n*Math.random()}x('htmx.config.wsReconnectDelay must either be a function or the string "full-jitter"')}function ut(e,t,r){var n=M(r);for(var i=0;i<n.length;i++){var a=n[i].split(/:(.+)/);if(a[0]==="connect"){ft(e,a[1])}if(a[0]==="swap"){ct(e,a[1])}}}function ft(t,e){var r=z.createEventSource(e);r.onerror=function(e){ne(t,"htmx:sseError",{error:e,source:r});dt(t)};Y(t).sseEventSource=r}function ct(a,o){var s=c(a,vt);if(s){var l=Y(s).sseEventSource;var u=function(e){if(dt(s)){l.removeEventListener(o,u);return}var t=e.data;w(a,function(e){t=e.transformResponse(t,null,a)});var r=tr(a);var n=he(a);var i=S(a);Pe(r.swapStyle,a,n,t,i);Ft(i.tasks);ie(a,"htmx:sseMessage",e)};Y(a).sseListener=u;l.addEventListener(o,u)}else{ne(a,"htmx:noSSESourceError")}}function ht(e,t,r){var n=c(e,vt);if(n){var i=Y(n).sseEventSource;var a=function(){if(!dt(n)){if(ee(e)){t(e)}else{i.removeEventListener(r,a)}}};Y(e).sseListener=a;i.addEventListener(r,a)}else{ne(e,"htmx:noSSESourceError")}}function dt(e){if(!ee(e)){Y(e).sseEventSource.close();return true}}function vt(e){return Y(e).sseEventSource!=null}function gt(e,t,r,n){var i=function(){if(!r.loaded){r.loaded=true;t(e)}};if(n){setTimeout(i,n)}else{i()}}function pt(t,i,e){var a=false;Q(R,function(r){if(q(t,"hx-"+r)){var n=J(t,"hx-"+r);a=true;i.path=n;i.verb=r;e.forEach(function(e){mt(t,e,i,function(e,t){ae(r,n,e,t)})})}});if(!a&&q(t,"hx-trigger")){a=true;e.forEach(function(e){mt(t,e,i,function(){})})}return a}function mt(n,e,t,r){if(e.sseEvent){ht(n,r,e.sseEvent)}else if(e.trigger==="revealed"){rt();Qe(n,r,t,e);nt(n)}else if(e.trigger==="intersect"){var i={};if(e.root){i.root=re(n,e.root)}if(e.threshold){i.threshold=parseFloat(e.threshold)}var a=new IntersectionObserver(function(e){for(var t=0;t<e.length;t++){var r=e[t];if(r.isIntersecting){ie(n,"intersect");break}}},i);a.observe(n);Qe(n,r,t,e)}else if(e.trigger==="load"){if(!Ye(e,Ht("load",{elt:n}))){gt(n,r,t,e.delay)}}else if(e.pollInterval){t.polling=true;Ge(n,r,e)}else{Qe(n,r,t,e)}}function xt(e){if(e.type==="text/javascript"||e.type==="module"||e.type===""){var t=Z().createElement("script");Q(e.attributes,function(e){t.setAttribute(e.name,e.value)});t.textContent=e.textContent;t.async=false;if(z.config.inlineScriptNonce){t.nonce=z.config.inlineScriptNonce}var r=e.parentElement;try{r.insertBefore(t,e)}catch(e){x(e)}finally{if(e.parentElement){e.parentElement.removeChild(e)}}}}function yt(e){if(h(e,"script")){xt(e)}Q(f(e,"script"),function(e){xt(e)})}function bt(){return document.querySelector("[hx-boost], [data-hx-boost]")}function wt(e){if(e.querySelectorAll){var t=bt()?", a, form":"";var r=e.querySelectorAll(O+t+", [hx-sse], [data-hx-sse], [hx-ws],"+" [data-hx-ws], [hx-ext], [data-hx-ext], [hx-trigger], [data-hx-trigger], [hx-on], [data-hx-on]");return r}else{return[]}}function St(n){var e=function(e){var t=d(e.target,"button, input[type='submit']");if(t!==null){var r=Y(n);r.lastButtonClicked=t}};n.addEventListener("click",e);n.addEventListener("focusin",e);n.addEventListener("focusout",function(e){var t=Y(n);t.lastButtonClicked=null})}function Et(e){var t=je(e);var r=0;for(let e=0;e<t.length;e++){const n=t[e];if(n==="{"){r++}else if(n==="}"){r--}}return r}function Ct(t,e,r){var n=Y(t);n.onHandlers||={};var i=new Function("event",r+"; return;");var a=t.addEventListener(e,function(e){return i.call(t,e)});n.onHandlers[e]=a;return{nodeData:n,code:r,func:i,listener:a}}function Rt(e){var t=J(e,"hx-on");if(t){var r={};var n=t.split("\n");var i=null;var a=0;while(n.length>0){var o=n.shift();var s=o.match(/^\s*([a-zA-Z:\-]+:)(.*)/);if(a===0&&s){o.split(":");i=s[1].slice(0,-1);r[i]=s[2]}else{r[i]+=o}a+=Et(o)}for(var l in r){Ct(e,l,r[l])}}}function Ot(e){if(e.closest&&e.closest(z.config.disableSelector)){return}var t=Y(e);if(t.initHash!==Ee(e)){t.initHash=Ee(e);Ce(e);Rt(e);ie(e,"htmx:beforeProcessNode");if(e.value){t.lastValue=e.value}var r=We(e);var n=pt(e,t,r);if(!n&&$(e,"hx-boost")==="true"){Ze(e,t,r)}if(e.tagName==="FORM"){St(e)}var i=J(e,"hx-sse");if(i){ut(e,t,i)}var a=J(e,"hx-ws");if(a){it(e,t,a)}ie(e,"htmx:afterProcessNode")}}function qt(e){e=s(e);Ot(e);Q(wt(e),function(e){Ot(e)})}function Tt(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}function Ht(e,t){var r;if(window.CustomEvent&&typeof window.CustomEvent==="function"){r=new CustomEvent(e,{bubbles:true,cancelable:true,detail:t})}else{r=Z().createEvent("CustomEvent");r.initCustomEvent(e,true,true,t)}return r}function ne(e,t,r){ie(e,t,te({error:t},r))}function Lt(e){return e==="htmx:afterProcessNode"}function w(e,t){Q(br(e),function(e){try{t(e)}catch(e){x(e)}})}function x(e){if(console.error){console.error(e)}else if(console.log){console.log("ERROR: ",e)}}function ie(e,t,r){e=s(e);if(r==null){r={}}r["elt"]=e;var n=Ht(t,r);if(z.logger&&!Lt(t)){z.logger(e,t,r)}if(r.error){x(r.error);ie(e,"htmx:error",{errorInfo:r})}var i=e.dispatchEvent(n);var a=Tt(t);if(i&&a!==t){var o=Ht(a,n.detail);i=i&&e.dispatchEvent(o)}w(e,function(e){i=i&&e.onEvent(t,n)!==false});return i}var At=location.pathname+location.search;function Nt(){var e=Z().querySelector("[hx-history-elt],[data-hx-history-elt]");return e||Z().body}function It(e,t,r,n){if(!D()){return}var i=y(localStorage.getItem("htmx-history-cache"))||[];for(var a=0;a<i.length;a++){if(i[a].url===e){i.splice(a,1);break}}var o={url:e,content:t,title:r,scroll:n};ie(Z().body,"htmx:historyItemCreated",{item:o,cache:i});i.push(o);while(i.length>z.config.historyCacheSize){i.shift()}while(i.length>0){try{localStorage.setItem("htmx-history-cache",JSON.stringify(i));break}catch(e){ne(Z().body,"htmx:historyCacheError",{cause:e,cache:i});i.shift()}}}function kt(e){if(!D()){return null}var t=y(localStorage.getItem("htmx-history-cache"))||[];for(var r=0;r<t.length;r++){if(t[r].url===e){return t[r]}}return null}function Pt(e){var t=z.config.requestClass;var r=e.cloneNode(true);Q(f(r,"."+t),function(e){n(e,t)});return r.innerHTML}function Mt(){var e=Nt();var t=At||location.pathname+location.search;var r=Z().querySelector('[hx-history="false" i],[data-hx-history="false" i]');if(!r){ie(Z().body,"htmx:beforeHistorySave",{path:t,historyElt:e});It(t,Pt(e),Z().title,window.scrollY)}if(z.config.historyEnabled)history.replaceState({htmx:true},Z().title,window.location.href)}function Dt(e){if(z.config.getCacheBusterParam){e=e.replace(/org\.htmx\.cache-buster=[^&]*&?/,"");if(e.endsWith("&")||e.endsWith("?")){e=e.slice(0,-1)}}if(z.config.historyEnabled){history.pushState({htmx:true},"",e)}At=e}function Xt(e){if(z.config.historyEnabled)history.replaceState({htmx:true},"",e);At=e}function Ft(e){Q(e,function(e){e.call()})}function Bt(a){var e=new XMLHttpRequest;var o={path:a,xhr:e};ie(Z().body,"htmx:historyCacheMiss",o);e.open("GET",a,true);e.setRequestHeader("HX-History-Restore-Request","true");e.onload=function(){if(this.status>=200&&this.status<400){ie(Z().body,"htmx:historyCacheMissLoad",o);var e=l(this.response);e=e.querySelector("[hx-history-elt],[data-hx-history-elt]")||e;var t=Nt();var r=S(t);var n=ke(this.response);if(n){var i=b("title");if(i){i.innerHTML=n}else{window.document.title=n}}Ae(t,e,r);Ft(r.tasks);At=a;ie(Z().body,"htmx:historyRestore",{path:a,cacheMiss:true,serverResponse:this.response})}else{ne(Z().body,"htmx:historyCacheMissLoadError",o)}};e.send()}function jt(e){Mt();e=e||location.pathname+location.search;var t=kt(e);if(t){var r=l(t.content);var n=Nt();var i=S(n);Ae(n,r,i);Ft(i.tasks);document.title=t.title;window.scrollTo(0,t.scroll);At=e;ie(Z().body,"htmx:historyRestore",{path:e,item:t})}else{if(z.config.refreshOnHistoryMiss){window.location.reload(true)}else{Bt(e)}}}function Vt(e){var t=fe(e,"hx-indicator");if(t==null){t=[e]}Q(t,function(e){var t=Y(e);t.requestCount=(t.requestCount||0)+1;e.classList["add"].call(e.classList,z.config.requestClass)});return t}function Ut(e){Q(e,function(e){var t=Y(e);t.requestCount=(t.requestCount||0)-1;if(t.requestCount===0){e.classList["remove"].call(e.classList,z.config.requestClass)}})}function _t(e,t){for(var r=0;r<e.length;r++){var n=e[r];if(n.isSameNode(t)){return true}}return false}function Wt(e){if(e.name===""||e.name==null||e.disabled){return false}if(e.type==="button"||e.type==="submit"||e.tagName==="image"||e.tagName==="reset"||e.tagName==="file"){return false}if(e.type==="checkbox"||e.type==="radio"){return e.checked}return true}function zt(t,r,n,e,i){if(e==null||_t(t,e)){return}else{t.push(e)}if(Wt(e)){var a=G(e,"name");var o=e.value;if(e.multiple){o=k(e.querySelectorAll("option:checked")).map(function(e){return e.value})}if(e.files){o=k(e.files)}if(a!=null&&o!=null){var s=r[a];if(s!==undefined){if(Array.isArray(s)){if(Array.isArray(o)){r[a]=s.concat(o)}else{s.push(o)}}else{if(Array.isArray(o)){r[a]=[s].concat(o)}else{r[a]=[s,o]}}}else{r[a]=o}}if(i){Gt(e,n)}}if(h(e,"form")){var l=e.elements;Q(l,function(e){zt(t,r,n,e,i)})}}function Gt(e,t){if(e.willValidate){ie(e,"htmx:validation:validate");if(!e.checkValidity()){t.push({elt:e,message:e.validationMessage,validity:e.validity});ie(e,"htmx:validation:failed",{message:e.validationMessage,validity:e.validity})}}}function Jt(e,t){var r=[];var n={};var i={};var a=[];var o=Y(e);var s=h(e,"form")&&e.noValidate!==true||J(e,"hx-validate")==="true";if(o.lastButtonClicked){s=s&&o.lastButtonClicked.formNoValidate!==true}if(t!=="get"){zt(r,i,a,d(e,"form"),s)}zt(r,n,a,e,s);if(o.lastButtonClicked){var l=G(o.lastButtonClicked,"name");if(l){n[l]=o.lastButtonClicked.value}}var u=fe(e,"hx-include");Q(u,function(e){zt(r,n,a,e,s);if(!h(e,"form")){Q(e.querySelectorAll(_e),function(e){zt(r,n,a,e,s)})}});n=te(n,i);return{errors:a,values:n}}function Zt(e,t,r){if(e!==""){e+="&"}if(String(r)==="[object Object]"){r=JSON.stringify(r)}var n=encodeURIComponent(r);e+=encodeURIComponent(t)+"="+n;return e}function $t(e){var t="";for(var r in e){if(e.hasOwnProperty(r)){var n=e[r];if(Array.isArray(n)){Q(n,function(e){t=Zt(t,r,e)})}else{t=Zt(t,r,n)}}}return t}function Kt(e){var t=new FormData;for(var r in e){if(e.hasOwnProperty(r)){var n=e[r];if(Array.isArray(n)){Q(n,function(e){t.append(r,e)})}else{t.append(r,n)}}}return t}function Yt(e,t,r){var n={"HX-Request":"true","HX-Trigger":G(e,"id"),"HX-Trigger-Name":G(e,"name"),"HX-Target":J(t,"id"),"HX-Current-URL":Z().location.href};ar(e,"hx-headers",false,n);if(r!==undefined){n["HX-Prompt"]=r}if(Y(e).boosted){n["HX-Boosted"]="true"}return n}function Qt(t,e){var r=$(e,"hx-params");if(r){if(r==="none"){return{}}else if(r==="*"){return t}else if(r.indexOf("not ")===0){Q(r.substr(4).split(","),function(e){e=e.trim();delete t[e]});return t}else{var n={};Q(r.split(","),function(e){e=e.trim();n[e]=t[e]});return n}}else{return t}}function er(e){return G(e,"href")&&G(e,"href").indexOf("#")>=0}function tr(e,t){var r=t?t:$(e,"hx-swap");var n={swapStyle:Y(e).boosted?"innerHTML":z.config.defaultSwapStyle,swapDelay:z.config.defaultSwapDelay,settleDelay:z.config.defaultSettleDelay};if(Y(e).boosted&&!er(e)){n["show"]="top"}if(r){var i=M(r);if(i.length>0){n["swapStyle"]=i[0];for(var a=1;a<i.length;a++){var o=i[a];if(o.indexOf("swap:")===0){n["swapDelay"]=v(o.substr(5))}if(o.indexOf("settle:")===0){n["settleDelay"]=v(o.substr(7))}if(o.indexOf("transition:")===0){n["transition"]=o.substr(11)==="true"}if(o.indexOf("scroll:")===0){var s=o.substr(7);var l=s.split(":");var u=l.pop();var f=l.length>0?l.join(":"):null;n["scroll"]=u;n["scrollTarget"]=f}if(o.indexOf("show:")===0){var c=o.substr(5);var l=c.split(":");var h=l.pop();var f=l.length>0?l.join(":"):null;n["show"]=h;n["showTarget"]=f}if(o.indexOf("focus-scroll:")===0){var d=o.substr("focus-scroll:".length);n["focusScroll"]=d=="true"}}}}return n}function rr(e){return $(e,"hx-encoding")==="multipart/form-data"||h(e,"form")&&G(e,"enctype")==="multipart/form-data"}function nr(t,r,n){var i=null;w(r,function(e){if(i==null){i=e.encodeParameters(t,n,r)}});if(i!=null){return i}else{if(rr(r)){return Kt(n)}else{return $t(n)}}}function S(e){return{tasks:[],elts:[e]}}function ir(e,t){var r=e[0];var n=e[e.length-1];if(t.scroll){var i=null;if(t.scrollTarget){i=re(r,t.scrollTarget)}if(t.scroll==="top"&&(r||i)){i=i||r;i.scrollTop=0}if(t.scroll==="bottom"&&(n||i)){i=i||n;i.scrollTop=i.scrollHeight}}if(t.show){var i=null;if(t.showTarget){var a=t.showTarget;if(t.showTarget==="window"){a="body"}i=re(r,a)}if(t.show==="top"&&(r||i)){i=i||r;i.scrollIntoView({block:"start",behavior:z.config.scrollBehavior})}if(t.show==="bottom"&&(n||i)){i=i||n;i.scrollIntoView({block:"end",behavior:z.config.scrollBehavior})}}}function ar(e,t,r,n){if(n==null){n={}}if(e==null){return n}var i=J(e,t);if(i){var a=i.trim();var o=r;if(a==="unset"){return null}if(a.indexOf("javascript:")===0){a=a.substr(11);o=true}else if(a.indexOf("js:")===0){a=a.substr(3);o=true}if(a.indexOf("{")!==0){a="{"+a+"}"}var s;if(o){s=or(e,function(){return Function("return ("+a+")")()},{})}else{s=y(a)}for(var l in s){if(s.hasOwnProperty(l)){if(n[l]==null){n[l]=s[l]}}}}return ar(u(e),t,r,n)}function or(e,t,r){if(z.config.allowEval){return t()}else{ne(e,"htmx:evalDisallowedError");return r}}function sr(e,t){return ar(e,"hx-vars",true,t)}function lr(e,t){return ar(e,"hx-vals",false,t)}function ur(e){return te(sr(e),lr(e))}function fr(t,r,n){if(n!==null){try{t.setRequestHeader(r,n)}catch(e){t.setRequestHeader(r,encodeURIComponent(n));t.setRequestHeader(r+"-URI-AutoEncoded","true")}}}function cr(t){if(t.responseURL&&typeof URL!=="undefined"){try{var e=new URL(t.responseURL);return e.pathname+e.search}catch(e){ne(Z().body,"htmx:badResponseUrl",{url:t.responseURL})}}}function E(e,t){return e.getAllResponseHeaders().match(t)}function hr(e,t,r){e=e.toLowerCase();if(r){if(r instanceof Element||A(r,"String")){return ae(e,t,null,null,{targetOverride:s(r),returnPromise:true})}else{return ae(e,t,s(r.source),r.event,{handler:r.handler,headers:r.headers,values:r.values,targetOverride:s(r.target),swapOverride:r.swap,returnPromise:true})}}else{return ae(e,t,null,null,{returnPromise:true})}}function dr(e){var t=[];while(e){t.push(e);e=e.parentElement}return t}function ae(e,t,n,r,i,M){var a=null;var o=null;i=i!=null?i:{};if(i.returnPromise&&typeof Promise!=="undefined"){var s=new Promise(function(e,t){a=e;o=t})}if(n==null){n=Z().body}var D=i.handler||gr;if(!ee(n)){return}var l=i.targetOverride||he(n);if(l==null||l==ue){ne(n,"htmx:targetError",{target:J(n,"hx-target")});return}if(!M){var X=function(){return ae(e,t,n,r,i,true)};var F={target:l,elt:n,path:t,verb:e,triggeringEvent:r,etc:i,issueRequest:X};if(ie(n,"htmx:confirm",F)===false){return}}var u=n;var f=Y(n);var c=$(n,"hx-sync");var h=null;var d=false;if(c){var v=c.split(":");var g=v[0].trim();if(g==="this"){u=ce(n,"hx-sync")}else{u=re(n,g)}c=(v[1]||"drop").trim();f=Y(u);if(c==="drop"&&f.xhr&&f.abortable!==true){return}else if(c==="abort"){if(f.xhr){return}else{d=true}}else if(c==="replace"){ie(u,"htmx:abort")}else if(c.indexOf("queue")===0){var B=c.split(" ");h=(B[1]||"last").trim()}}if(f.xhr){if(f.abortable){ie(u,"htmx:abort")}else{if(h==null){if(r){var p=Y(r);if(p&&p.triggerSpec&&p.triggerSpec.queue){h=p.triggerSpec.queue}}if(h==null){h="last"}}if(f.queuedRequests==null){f.queuedRequests=[]}if(h==="first"&&f.queuedRequests.length===0){f.queuedRequests.push(function(){ae(e,t,n,r,i)})}else if(h==="all"){f.queuedRequests.push(function(){ae(e,t,n,r,i)})}else if(h==="last"){f.queuedRequests=[];f.queuedRequests.push(function(){ae(e,t,n,r,i)})}return}}var m=new XMLHttpRequest;f.xhr=m;f.abortable=d;var x=function(){f.xhr=null;f.abortable=false;if(f.queuedRequests!=null&&f.queuedRequests.length>0){var e=f.queuedRequests.shift();e()}};var y=$(n,"hx-prompt");if(y){var b=prompt(y);if(b===null||!ie(n,"htmx:prompt",{prompt:b,target:l})){K(a);x();return s}}var w=$(n,"hx-confirm");if(w){if(!confirm(w)){K(a);x();return s}}var S=Yt(n,l,b);if(i.headers){S=te(S,i.headers)}var E=Jt(n,e);var C=E.errors;var R=E.values;if(i.values){R=te(R,i.values)}var j=ur(n);var O=te(R,j);var q=Qt(O,n);if(e!=="get"&&!rr(n)){S["Content-Type"]="application/x-www-form-urlencoded"}if(z.config.getCacheBusterParam&&e==="get"){q["org.htmx.cache-buster"]=G(l,"id")||"true"}if(t==null||t===""){t=Z().location.href}var T=ar(n,"hx-request");var H=Y(n).boosted;var L={boosted:H,parameters:q,unfilteredParameters:O,headers:S,target:l,verb:e,errors:C,withCredentials:i.credentials||T.credentials||z.config.withCredentials,timeout:i.timeout||T.timeout||z.config.timeout,path:t,triggeringEvent:r};if(!ie(n,"htmx:configRequest",L)){K(a);x();return s}t=L.path;e=L.verb;S=L.headers;q=L.parameters;C=L.errors;if(C&&C.length>0){ie(n,"htmx:validation:halted",L);K(a);x();return s}var V=t.split("#");var U=V[0];var A=V[1];var N=null;if(e==="get"){N=U;var _=Object.keys(q).length!==0;if(_){if(N.indexOf("?")<0){N+="?"}else{N+="&"}N+=$t(q);if(A){N+="#"+A}}m.open("GET",N,true)}else{m.open(e.toUpperCase(),t,true)}m.overrideMimeType("text/html");m.withCredentials=L.withCredentials;m.timeout=L.timeout;if(T.noHeaders){}else{for(var I in S){if(S.hasOwnProperty(I)){var W=S[I];fr(m,I,W)}}}var k={xhr:m,target:l,requestConfig:L,etc:i,boosted:H,pathInfo:{requestPath:t,finalRequestPath:N||t,anchor:A}};m.onload=function(){try{var e=dr(n);k.pathInfo.responsePath=cr(m);D(n,k);Ut(P);ie(n,"htmx:afterRequest",k);ie(n,"htmx:afterOnLoad",k);if(!ee(n)){var t=null;while(e.length>0&&t==null){var r=e.shift();if(ee(r)){t=r}}if(t){ie(t,"htmx:afterRequest",k);ie(t,"htmx:afterOnLoad",k)}}K(a);x()}catch(e){ne(n,"htmx:onLoadError",te({error:e},k));throw e}};m.onerror=function(){Ut(P);ne(n,"htmx:afterRequest",k);ne(n,"htmx:sendError",k);K(o);x()};m.onabort=function(){Ut(P);ne(n,"htmx:afterRequest",k);ne(n,"htmx:sendAbort",k);K(o);x()};m.ontimeout=function(){Ut(P);ne(n,"htmx:afterRequest",k);ne(n,"htmx:timeout",k);K(o);x()};if(!ie(n,"htmx:beforeRequest",k)){K(a);x();return s}var P=Vt(n);Q(["loadstart","loadend","progress","abort"],function(t){Q([m,m.upload],function(e){e.addEventListener(t,function(e){ie(n,"htmx:xhr:"+t,{lengthComputable:e.lengthComputable,loaded:e.loaded,total:e.total})})})});ie(n,"htmx:beforeSend",k);m.send(e==="get"?null:nr(m,n,q));return s}function vr(e,t){var r=t.xhr;var n=null;var i=null;if(E(r,/HX-Push:/i)){n=r.getResponseHeader("HX-Push");i="push"}else if(E(r,/HX-Push-Url:/i)){n=r.getResponseHeader("HX-Push-Url");i="push"}else if(E(r,/HX-Replace-Url:/i)){n=r.getResponseHeader("HX-Replace-Url");i="replace"}if(n){if(n==="false"){return{}}else{return{type:i,path:n}}}var a=t.pathInfo.finalRequestPath;var o=t.pathInfo.responsePath;var s=$(e,"hx-push-url");var l=$(e,"hx-replace-url");var u=Y(e).boosted;var f=null;var c=null;if(s){f="push";c=s}else if(l){f="replace";c=l}else if(u){f="push";c=o||a}if(c){if(c==="false"){return{}}if(c==="true"){c=o||a}if(t.pathInfo.anchor&&c.indexOf("#")===-1){c=c+"#"+t.pathInfo.anchor}return{type:f,path:c}}else{return{}}}function gr(s,l){var u=l.xhr;var f=l.target;var e=l.etc;if(!ie(s,"htmx:beforeOnLoad",l))return;if(E(u,/HX-Trigger:/i)){Me(u,"HX-Trigger",s)}if(E(u,/HX-Location:/i)){Mt();var t=u.getResponseHeader("HX-Location");var c;if(t.indexOf("{")===0){c=y(t);t=c["path"];delete c["path"]}hr("GET",t,c).then(function(){Dt(t)});return}if(E(u,/HX-Redirect:/i)){location.href=u.getResponseHeader("HX-Redirect");return}if(E(u,/HX-Refresh:/i)){if("true"===u.getResponseHeader("HX-Refresh")){location.reload();return}}if(E(u,/HX-Retarget:/i)){l.target=Z().querySelector(u.getResponseHeader("HX-Retarget"))}var h=vr(s,l);var r=u.status>=200&&u.status<400&&u.status!==204;var d=u.response;var n=u.status>=400;var i=te({shouldSwap:r,serverResponse:d,isError:n},l);if(!ie(f,"htmx:beforeSwap",i))return;f=i.target;d=i.serverResponse;n=i.isError;l.target=f;l.failed=n;l.successful=!n;if(i.shouldSwap){if(u.status===286){ze(s)}w(s,function(e){d=e.transformResponse(d,u,s)});if(h.type){Mt()}var a=e.swapOverride;if(E(u,/HX-Reswap:/i)){a=u.getResponseHeader("HX-Reswap")}var c=tr(s,a);f.classList.add(z.config.swappingClass);var v=null;var g=null;var o=function(){try{var e=document.activeElement;var t={};try{t={elt:e,start:e?e.selectionStart:null,end:e?e.selectionEnd:null}}catch(e){}var n=S(f);Pe(c.swapStyle,f,s,d,n);if(t.elt&&!ee(t.elt)&&t.elt.id){var r=document.getElementById(t.elt.id);var i={preventScroll:c.focusScroll!==undefined?!c.focusScroll:!z.config.defaultFocusScroll};if(r){if(t.start&&r.setSelectionRange){try{r.setSelectionRange(t.start,t.end)}catch(e){}}r.focus(i)}}f.classList.remove(z.config.swappingClass);Q(n.elts,function(e){if(e.classList){e.classList.add(z.config.settlingClass)}ie(e,"htmx:afterSwap",l)});if(E(u,/HX-Trigger-After-Swap:/i)){var a=s;if(!ee(s)){a=Z().body}Me(u,"HX-Trigger-After-Swap",a)}var o=function(){Q(n.tasks,function(e){e.call()});Q(n.elts,function(e){if(e.classList){e.classList.remove(z.config.settlingClass)}ie(e,"htmx:afterSettle",l)});if(h.type){if(h.type==="push"){Dt(h.path);ie(Z().body,"htmx:pushedIntoHistory",{path:h.path})}else{Xt(h.path);ie(Z().body,"htmx:replacedInHistory",{path:h.path})}}if(l.pathInfo.anchor){var e=b("#"+l.pathInfo.anchor);if(e){e.scrollIntoView({block:"start",behavior:"auto"})}}if(n.title){var t=b("title");if(t){t.innerHTML=n.title}else{window.document.title=n.title}}ir(n.elts,c);if(E(u,/HX-Trigger-After-Settle:/i)){var r=s;if(!ee(s)){r=Z().body}Me(u,"HX-Trigger-After-Settle",r)}K(v)};if(c.settleDelay>0){setTimeout(o,c.settleDelay)}else{o()}}catch(e){ne(s,"htmx:swapError",l);K(g);throw e}};var p=z.config.globalViewTransitions;if(c.hasOwnProperty("transition")){p=c.transition}if(p&&ie(s,"htmx:beforeTransition",l)&&typeof Promise!=="undefined"&&document.startViewTransition){var m=new Promise(function(e,t){v=e;g=t});var x=o;o=function(){document.startViewTransition(function(){x();return m})}}if(c.swapDelay>0){setTimeout(o,c.swapDelay)}else{o()}}if(n){ne(s,"htmx:responseError",te({error:"Response Status Error Code "+u.status+" from "+l.pathInfo.requestPath},l))}}var pr={};function mr(){return{init:function(e){return null},onEvent:function(e,t){return true},transformResponse:function(e,t,r){return e},isInlineSwap:function(e){return false},handleSwap:function(e,t,r,n){return false},encodeParameters:function(e,t,r){return null}}}function xr(e,t){if(t.init){t.init(C)}pr[e]=te(mr(),t)}function yr(e){delete pr[e]}function br(e,r,n){if(e==undefined){return r}if(r==undefined){r=[]}if(n==undefined){n=[]}var t=J(e,"hx-ext");if(t){Q(t.split(","),function(e){e=e.replace(/ /g,"");if(e.slice(0,7)=="ignore:"){n.push(e.slice(7));return}if(n.indexOf(e)<0){var t=pr[e];if(t&&r.indexOf(t)<0){r.push(t)}}})}return br(u(e),r,n)}function wr(e){if(Z().readyState!=="loading"){e()}else{Z().addEventListener("DOMContentLoaded",e)}}function Sr(){if(z.config.includeIndicatorStyles!==false){Z().head.insertAdjacentHTML("beforeend","<style> ."+z.config.indicatorClass+"{opacity:0;transition: opacity 200ms ease-in;} ."+z.config.requestClass+" ."+z.config.indicatorClass+"{opacity:1} ."+z.config.requestClass+"."+z.config.indicatorClass+"{opacity:1} </style>")}}function Er(){var e=Z().querySelector('meta[name="htmx-config"]');if(e){return y(e.content)}else{return null}}function Cr(){var e=Er();if(e){z.config=te(z.config,e)}}wr(function(){Cr();Sr();var e=Z().body;qt(e);var t=Z().querySelectorAll("[hx-trigger='restored'],[data-hx-trigger='restored']");e.addEventListener("htmx:abort",function(e){var t=e.target;var r=Y(t);if(r&&r.xhr){r.xhr.abort()}});window.onpopstate=function(e){if(e.state&&e.state.htmx){jt();Q(t,function(e){ie(e,"htmx:restored",{document:Z(),triggerEvent:ie})})}};setTimeout(function(){ie(e,"htmx:load",{});e=null},0)});return z}()});
|
package/dist/htmx.min.js.gz
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"AJAX",
|
|
6
6
|
"HTML"
|
|
7
7
|
],
|
|
8
|
-
"version": "1.
|
|
8
|
+
"version": "1.9.0",
|
|
9
9
|
"homepage": "https://htmx.org/",
|
|
10
10
|
"bugs": {
|
|
11
11
|
"url": "https://github.com/bigskysoftware/htmx/issues"
|
|
@@ -36,19 +36,15 @@
|
|
|
36
36
|
"url": "git+https://github.com/bigskysoftware/htmx.git"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"
|
|
40
|
-
"@11ty/eleventy-plugin-rss": "^1.1.2",
|
|
41
|
-
"chai": "^4.3.6",
|
|
39
|
+
"chai": "^4.3.7",
|
|
42
40
|
"chai-dom": "^1.11.0",
|
|
43
|
-
"eleventy-plugin-sass": "^1.2.0",
|
|
44
41
|
"fs-extra": "^9.1.0",
|
|
45
42
|
"mocha": "^10.2.0",
|
|
46
43
|
"mocha-chrome": "^2.2.0",
|
|
47
|
-
"mocha-webdriver-runner": "^0.6.
|
|
48
|
-
"mock-socket": "^9.1
|
|
49
|
-
"sass": "^1.51.0",
|
|
44
|
+
"mocha-webdriver-runner": "^0.6.4",
|
|
45
|
+
"mock-socket": "^9.2.1",
|
|
50
46
|
"sinon": "^9.2.4",
|
|
51
|
-
"typescript": "^4.
|
|
52
|
-
"uglify-js": "^3.
|
|
47
|
+
"typescript": "^4.9.5",
|
|
48
|
+
"uglify-js": "^3.17.4"
|
|
53
49
|
}
|
|
54
50
|
}
|