(function() { function stringifyEvent(event) { var obj = {} for (var key in event) { obj[key] = event[key] } return JSON.stringify(obj, function(key, value) { if (value instanceof Node) { var nodeRep = value.tagName if (nodeRep) { nodeRep = nodeRep.toLowerCase() if (value.id) { nodeRep += '#' + value.id } if (value.classList && value.classList.length) { nodeRep += '.' + value.classList.toString().replace(' ', '.') } return nodeRep } else { return 'Node' } } if (value instanceof Window) return 'Window' return value }) } htmx.defineExtension('event-header', { onEvent: function(name, evt) { if (name === 'htmx:configRequest') { if (evt.detail.triggeringEvent) { evt.detail.headers['Triggering-Event'] = stringifyEvent(evt.detail.triggeringEvent) } } } }) })()