retrigger 2.x events

This commit is contained in:
Carson Gross
2025-12-03 11:00:28 -07:00
parent 65c8fb4791
commit a47f4ccd7d
2 changed files with 60 additions and 6 deletions

View File

@@ -24,14 +24,68 @@
htmx.config.noSwap.push("4xx", "5xx");
}
},
htmx_after_implicitInheritance : function(elt, detail) {
// TODO - how should we alert users? collect a report? just log?
// TODO - needs a config option to enable
// Re-delegate new events to old event names for backwards compatibility
htmx_after_implicitInheritance: function (elt, detail) {
if (!htmx.config.compat?.suppressInheritanceLogs) {
console.log("IMPLICIT INHERITANCE DETECTED, attribute: " + detail.name + ", elt: ", elt, ", inherited from: ", detail.parent)
let evt = new CustomEvent("htmxImplicitInheritace", {
detail,turn
cancelable: true,
bubbles : true,
composed: true,
});
elt.dispatchEvent(evt)
}
},
// TODO - catch all new events and redelegate to old event names as best we can
// this can probably be done as a map... See www/content/migration-guide-htmx-4.md:94
htmx_after_init: function (elt, detail) {
maybeRetriggerEvent(elt, "htmx:afterOnLoad", detail);
maybeRetriggerEvent(elt, "htmx:afterProcessNode", detail);
maybeRetriggerEvent(elt, "htmx:load", detail);
},
htmx_after_request: function (elt, detail) {
maybeRetriggerEvent(elt, "htmx:afterRequest", detail);
},
htmx_after_swap: function (elt, detail) {
maybeRetriggerEvent(elt, "htmx:afterSettle", detail);
maybeRetriggerEvent(elt, "htmx:afterSwap", detail);
},
htmx_before_cleanup: function (elt, detail) {
maybeRetriggerEvent(elt, "htmx:beforeCleanupElement", detail);
},
htmx_before_history_update: function (elt, detail) {
maybeRetriggerEvent(elt, "htmx:beforeHistoryUpdate", detail);
maybeRetriggerEvent(elt, "htmx:beforeHistorySave", detail);
},
htmx_before_init: function (elt, detail) {
maybeRetriggerEvent(elt, "htmx:beforeOnLoad", detail);
},
htmx_before_process: function (elt, detail) {
maybeRetriggerEvent(elt, "htmx:beforeProcessNode", detail);
},
htmx_before_request: function (elt, detail) {
maybeRetriggerEvent(elt, "htmx:beforeRequest", detail);
maybeRetriggerEvent(elt, "htmx:beforeSend", detail);
},
htmx_before_swap: function (elt, detail) {
maybeRetriggerEvent(elt, "htmx:beforeSwap", detail);
},
htmx_before_viewTransition: function (elt, detail) {
maybeRetriggerEvent(elt, "htmx:beforeTransition", detail);
},
htmx_config_request: function (elt, detail) {
maybeRetriggerEvent(elt, "htmx:configRequest", detail);
},
htmx_before_restore_history: function (elt, detail) {
maybeRetriggerEvent(elt, "htmx:historyRestore", detail);
},
htmx_after_push_into_history: function (elt, detail) {
maybeRetriggerEvent(elt, "htmx:pushedIntoHistory", detail);
},
htmx_after_replace_into_history: function (elt, detail) {
maybeRetriggerEvent(elt, "htmx:replacedInHistory", detail);
},
htmx_error: function (elt, detail) {
maybeRetriggerEvent(elt, "htmx:targetError", detail);
},
});
})()

View File

@@ -211,7 +211,7 @@ var htmx = (() => {
if (parent) {
let val = this.__attributeValue(parent, name, undefined, returnElt);
if (!returnElt && val && this.config.implicitInheritance) {
this.__triggerExtensions(elt, "htmx:after:implicitInheritance", {elt, parent})
this.__triggerExtensions(elt, "htmx:after:implicitInheritance", {elt, name, parent})
}
return val;
}