aboutsummaryrefslogtreecommitdiff
path: root/static/js/ext/alpine-morph.js
diff options
context:
space:
mode:
Diffstat (limited to 'static/js/ext/alpine-morph.js')
-rw-r--r--static/js/ext/alpine-morph.js20
1 files changed, 20 insertions, 0 deletions
diff --git a/static/js/ext/alpine-morph.js b/static/js/ext/alpine-morph.js
new file mode 100644
index 0000000..ea41cf0
--- /dev/null
+++ b/static/js/ext/alpine-morph.js
@@ -0,0 +1,20 @@
+if (htmx.version && !htmx.version.startsWith("1.")) {
+ console.warn("WARNING: You are using an htmx 1 extension with htmx " + htmx.version +
+ ". It is recommended that you move to the version of this extension found on https://htmx.org/extensions")
+}
+htmx.defineExtension('alpine-morph', {
+ isInlineSwap: function (swapStyle) {
+ return swapStyle === 'morph';
+ },
+ handleSwap: function (swapStyle, target, fragment) {
+ if (swapStyle === 'morph') {
+ if (fragment.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
+ Alpine.morph(target, fragment.firstElementChild);
+ return [target];
+ } else {
+ Alpine.morph(target, fragment.outerHTML);
+ return [target];
+ }
+ }
+ }
+});