From d05ea66f4bbcf0cc5c8908f3435c68de1b070fa1 Mon Sep 17 00:00:00 2001 From: Alexander Neonxp Kiryukhin Date: Sat, 12 Oct 2024 02:52:22 +0300 Subject: Начальная версия MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- static/js/ext/morphdom-swap.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 static/js/ext/morphdom-swap.js (limited to 'static/js/ext/morphdom-swap.js') diff --git a/static/js/ext/morphdom-swap.js b/static/js/ext/morphdom-swap.js new file mode 100644 index 0000000..337a604 --- /dev/null +++ b/static/js/ext/morphdom-swap.js @@ -0,0 +1,21 @@ +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('morphdom-swap', { + isInlineSwap: function(swapStyle) { + return swapStyle === 'morphdom'; + }, + handleSwap: function (swapStyle, target, fragment) { + if (swapStyle === 'morphdom') { + if (fragment.nodeType === Node.DOCUMENT_FRAGMENT_NODE) { + // IE11 doesn't support DocumentFragment.firstElementChild + morphdom(target, fragment.firstElementChild || fragment.firstChild); + return [target]; + } else { + morphdom(target, fragment.outerHTML); + return [target]; + } + } + } +}); -- cgit v1.2.3