diff options
Diffstat (limited to 'static/js/ext/alpine-morph.js')
-rw-r--r-- | static/js/ext/alpine-morph.js | 20 |
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]; + } + } + } +}); |