1(function(root,factory){if(typeof define==='function'&&define.amd){define([],factory);}else if(typeof module==='object'&&module.exports){module.exports=factory();}else{root.htmx=root.htmx||factory();}}(typeof self!=='undefined'?self:this,function(){return(function(){'use strict';var htmx={onLoad:onLoadHelper,process:processNode,on:addEventListenerImpl,off:removeEventListenerImpl,trigger:triggerEvent,ajax:ajaxHelper,find:find,findAll:findAll,closest:closest,values:function(elt,type){var inputValues=getInputValues(elt,type||"post");return inputValues.values;},remove:removeElement,addClass:addClassToElement,removeClass:removeClassFromElement,toggleClass:toggleClassOnElement,takeClass:takeClassForElement,defineExtension:defineExtension,removeExtension:removeExtension,logAll:logAll,logNone:logNone,logger:null,config:{historyEnabled:true,historyCacheSize:10,refreshOnHistoryMiss:false,defaultSwapStyle:'innerHTML',defaultSwapDelay:0,defaultSettleDelay:20,includeIndicatorStyles:true,indicatorClass:'htmx-indicator',requestClass:'htmx-request',addedClass:'htmx-added',settlingClass:'htmx-settling',swappingClass:'htmx-swapping',allowEval:true,allowScriptTags:true,inlineScriptNonce:'',attributesToSettle:["class","style","width","height"],withCredentials:false,timeout:0,wsReconnectDelay:'full-jitter',wsBinaryType:'blob',disableSelector:"[hx-disable], [data-hx-disable]",useTemplateFragments:false,scrollBehavior:'smooth',defaultFocusScroll:false,getCacheBusterParam:false,globalViewTransitions:false,methodsThatUseUrlParams:["get"],selfRequestsOnly:false,ignoreTitle:false,scrollIntoViewOnBoost:true,triggerSpecsCache:null,},parseInterval:parseInterval,_:internalEval,createEventSource:function(url){return new EventSource(url,{withCredentials:true})},createWebSocket:function(url){var sock=new WebSocket(url,[]);sock.binaryType=htmx.config.wsBinaryType;return sock;},version:"1.9.11"};var internalAPI={addTriggerHandler:addTriggerHandler,bodyContains:bodyContains,canAccessLocalStorage:canAccessLocalStorage,findThisElement:findThisElement,filterValues:filterValues,hasAttribute:hasAttribute,getAttributeValue:getAttributeValue,getClosestAttributeValue:getClosestAttributeValue,getClosestMatch:getClosestMatch,getExpressionVars:getExpressionVars,getHeaders:getHeaders,getInputValues:getInputValues,getInternalData:getInternalData,getSwapSpecification:getSwapSpecification,getTriggerSpecs:getTriggerSpecs,getTarget:getTarget,makeFragment:makeFragment,mergeObjects:mergeObjects,makeSettleInfo:makeSettleInfo,oobSwap:oobSwap,querySelectorExt:querySelectorExt,selectAndSwap:selectAndSwap,settleImmediately:settleImmediately,shouldCancel:shouldCancel,triggerEvent:triggerEvent,triggerErrorEvent:triggerErrorEvent,withExtensions:withExtensions,} 2var VERBS=['get','post','put','delete','patch'];var VERB_SELECTOR=VERBS.map(function(verb){return"[hx-"+verb+"], [data-hx-"+verb+"]"}).join(", ");var HEAD_TAG_REGEX=makeTagRegEx('head'),TITLE_TAG_REGEX=makeTagRegEx('title'),SVG_TAGS_REGEX=makeTagRegEx('svg',true);function makeTagRegEx(tag,global=false){return new RegExp(`<${tag}(\\s[^>]*>|>)([\\s\\S]*?)<\\/${tag}>`,global?'gim':'im');} 3function parseInterval(str){if(str==undefined){return undefined;} 4let interval=NaN;if(str.slice(-2)=="ms"){interval=parseFloat(str.slice(0,-2));}else if(str.slice(-1)=="s"){interval=parseFloat(str.slice(0,-1))*1000;}else if(str.slice(-1)=="m"){interval=parseFloat(str.slice(0,-1))*1000*60;}else{interval=parseFloat(str);} 5return isNaN(interval)?undefined:interval;} 6function getRawAttribute(elt,name){return elt.getAttribute&&elt.getAttribute(name);} 7function hasAttribute(elt,qualifiedName){return elt.hasAttribute&&(elt.hasAttribute(qualifiedName)||elt.hasAttribute("data-"+qualifiedName));} 8function getAttributeValue(elt,qualifiedName){return getRawAttribute(elt,qualifiedName)||getRawAttribute(elt,"data-"+qualifiedName);} 9function parentElt(elt){return elt.parentElement;} 10function getDocument(){return document;} 11function getClosestMatch(elt,condition){while(elt&&!condition(elt)){elt=parentElt(elt);} 12return elt?elt:null;} 13function getAttributeValueWithDisinheritance(initialElement,ancestor,attributeName){var attributeValue=getAttributeValue(ancestor,attributeName);var disinherit=getAttributeValue(ancestor,"hx-disinherit");if(initialElement!==ancestor&&disinherit&&(disinherit==="*"||disinherit.split(" ").indexOf(attributeName)>=0)){return"unset";}else{return attributeValue}} 14function getClosestAttributeValue(elt,attributeName){var closestAttr=null;getClosestMatch(elt,function(e){return closestAttr=getAttributeValueWithDisinheritance(elt,e,attributeName);});if(closestAttr!=="unset"){return closestAttr;}} 15function matches(elt,selector){var matchesFunction=elt.matches||elt.matchesSelector||elt.msMatchesSelector||elt.mozMatchesSelector||elt.webkitMatchesSelector||elt.oMatchesSelector;return matchesFunction&&matchesFunction.call(elt,selector);} 16function getStartTag(str){var tagMatcher=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i 17var match=tagMatcher.exec(str);if(match){return match[1].toLowerCase();}else{return"";}} 18function parseHTML(resp,depth){var parser=new DOMParser();var responseDoc=parser.parseFromString(resp,"text/html");var responseNode=responseDoc.body;while(depth>0){depth--;responseNode=responseNode.firstChild;} 19if(responseNode==null){responseNode=getDocument().createDocumentFragment();} 20return responseNode;} 21function aFullPageResponse(resp){return/<body/.test(resp)} 22function makeFragment(response){var partialResponse=!aFullPageResponse(response);var startTag=getStartTag(response);var content=response;if(startTag==='head'){content=content.replace(HEAD_TAG_REGEX,'');} 23if(htmx.config.useTemplateFragments&&partialResponse){var fragment=parseHTML("<body><template>"+content+"</template></body>",0);var fragmentContent=fragment.querySelector('template').content;if(htmx.config.allowScriptTags){forEach(fragmentContent.querySelectorAll("script"),function(script){if(htmx.config.inlineScriptNonce){script.nonce=htmx.config.inlineScriptNonce;} 24script.htmxExecuted=navigator.userAgent.indexOf("Firefox")===-1;})}
24else{forEach(fragmentContent.querySelectorAll("script"),function(script){removeElement(script);})} 25return fragmentContent;} 26switch(startTag){case"thead":case"tbody":case"tfoot":case"colgroup":case"caption":return parseHTML("<table>"+content+"</table>",1);case"col":return parseHTML("<table><colgroup>"+content+"</colgroup></table>",2);case"tr":return parseHTML("<table><tbody>"+content+"</tbody></table>",2);case"td":case"th":return parseHTML("<table><tbody><tr>"+content+"</tr></tbody></table>",3);case"script":case"style":return parseHTML("<div>"+content+"</div>",1);default:return parseHTML(content,0);}} 27function maybeCall(func){if(func){func();}} 28function isType(o,type){return Object.prototype.toString.call(o)==="[object "+type+"]";} 29function isFunction(o){return isType(o,"Function");} 30function isRawObject(o){return isType(o,"Object");} 31function getInternalData(elt){var dataProp='htmx-internal-data';var data=elt[dataProp];if(!data){data=elt[dataProp]={};} 32return data;} 33function toArray(arr){var returnArr=[];if(arr){for(var i=0;i<arr.length;i++){returnArr.push(arr[i]);}} 34return returnArr} 35function forEach(arr,func){if(arr){for(var i=0;i<arr.length;i++){func(arr[i]);}}} 36function isScrolledIntoView(el){var rect=el.getBoundingClientRect();var elemTop=rect.top;var elemBottom=rect.bottom;return elemTop<window.innerHeight&&elemBottom>=0;} 37function bodyContains(elt){if(elt.getRootNode&&elt.getRootNode()instanceof window.ShadowRoot){return getDocument().body.contains(elt.getRootNode().host);}else{return getDocument().body.contains(elt);}} 38function splitOnWhitespace(trigger){return trigger.trim().split(/\s+/);} 39function mergeObjects(obj1,obj2){for(var key in obj2){if(obj2.hasOwnProperty(key)){obj1[key]=obj2[key];}} 40return obj1;} 41function parseJSON(jString){try{return JSON.parse(jString);}catch(error){logError(error);return null;}} 42function canAccessLocalStorage(){var test='htmx:localStorageTest';try{localStorage.setItem(test,test);localStorage.removeItem(test);return true;}catch(e){return false;}} 43function normalizePath(path){try{var url=new URL(path);if(url){path=url.pathname+url.search;} 44if(!(/^\/$/.test(path))){path=path.replace(/\/+$/,'');} 45return path;}catch(e){return path;}} 46function internalEval(str){return maybeEval(getDocument().body,function(){return eval(str);});} 47function onLoadHelper(callback){var value=htmx.on("htmx:load",function(evt){callback(evt.detail.elt);});return value;} 48function logAll(){htmx.logger=function(elt,event,data){if(console){console.log(event,elt,data);}}} 49function logNone(){htmx.logger=null} 50function find(eltOrSelector,selector){if(selector){return eltOrSelector.querySelector(selector);}else{return find(getDocument(),eltOrSelector);}} 51function findAll(eltOrSelector,selector){if(selector){return eltOrSelector.querySelectorAll(selector);}else{return findAll(getDocument(),eltOrSelector);}} 52function removeElement(elt,delay){elt=resolveTarget(elt);if(delay){setTimeout(function(){removeElement(elt);elt=null;},delay);}else{elt.parentElement.removeChild(elt);}} 53function addClassToElement(elt,clazz,delay){elt=resolveTarget(elt);if(delay){setTimeout(function(){addClassToElement(elt,clazz);elt=null;},delay);}else{elt.classList&&elt.classList.add(clazz);}} 54function removeClassFromElement(elt,clazz,delay){elt=resolveTarget(elt);if(delay){setTimeout(function(){removeClassFromElement(elt,clazz);elt=null;},delay);}else{if(elt.classList){elt.classList.remove(clazz);if(elt.classList.length===0){elt.removeAttribute("class");}}}} 55function toggleClassOnElement(elt,clazz){elt=resolveTarget(elt);elt.classList.toggle(clazz);} 56function takeClassForElement(elt,clazz){elt=resolveTarget(elt);forEach(elt.parentElement.children,function(child){removeClassFromElement(child,clazz);}) 57addClassToElement(elt,clazz);} 58function closest(elt,selector){elt=resolveTarget(elt);if(elt.closest){return elt.closest(selector);}else{do{if(elt==null||matches(elt,selector)){return elt;}} 59while(elt=elt&&parentElt(elt));return null;}} 60function startsWith(str,prefix){return str.substring(0,prefix.length)===prefix} 61function endsWith(str,suffix){return str.substring(str.length-suffix.length)===suffix} 62function normalizeSelector(selector){var trimmedSelector=selector.trim();if(startsWith(trimmedSelector,"<")&&endsWith(trimmedSelector,"/>")){return trimmedSelector.substring(1,trimmedSelector.length-2);}else{return trimmedSelector;}} 63function querySelectorAllExt(elt,selector){if(selector.indexOf("closest ")===0){return[closest(elt,normalizeSelector(selector.substr(8)))];}else if(selector.indexOf("find ")===0){return[find(elt,normalizeSelector(selector.substr(5)))];}else if(selector==="next"){return[elt.nextElementSibling]}else if(selector.indexOf("next ")===0){return[scanForwardQuery(elt,normalizeSelector(selector.substr(5)))];}else if(selector==="previous"){return[elt.previousElementSibling]}else if(selector.indexOf("previous ")===0){return[scanBackwardsQuery(elt,normalizeSelector(selector.substr(9)))];}else if(selector==='document'){return[document];}else if(selector==='window'){return[window];}else if(selector==='body'){return[document.body];}else{return getDocument().querySelectorAll(normalizeSelector(selector));}} 64var scanForwardQuery=function(start,match){var results=getDocument().querySelectorAll(match);for(var i=0;i<results.length;i++){var elt=results[i];if(elt.compareDocumentPosition(start)===Node.DOCUMENT_POSITION_PRECEDING){return elt;}}} 65var scanBackwardsQuery=function(start,match){var results=getDocument().querySelectorAll(match);for(var i=results.length-1;i>=0;i--){var elt=results[i];if(elt.compareDocumentPosition(start)===Node.DOCUMENT_POSITION_FOLLOWING){return elt;}}} 66function querySelectorExt(eltOrSelector,selector){if(selector){return querySelectorAllExt(eltOrSelector,selector)[0];}else{return querySelectorAllExt(getDocument().body,eltOrSelector)[0];}} 67function resolveTarget(arg2){if(isType(arg2,'String')){return find(arg2);}else{return arg2;}} 68function processEventArgs(arg1,arg2,arg3){if(isFunction(arg2)){return{target:getDocument().body,event:arg1,listener:arg2}}else{return{target:resolveTarget(arg1),event:arg2,listener:arg3}}} 69function addEventListenerImpl(arg1,arg2,arg3){ready(function(){var eventArgs=processEventArgs(arg1,arg2,arg3);eventArgs.target.addEventListener(eventArgs.event,eventArgs.listener);}) 70var b=isFunction(arg2);return b?arg2:arg3;} 71function removeEventListenerImpl(arg1,arg2,arg3){ready(function(){var eventArgs=processEventArgs(arg1,arg2,arg3);eventArgs.target.removeEventListener(eventArgs.event,eventArgs.listener);}) 72return isFunction(arg2)?arg2:arg3;}
73var DUMMY_ELT=getDocument().createElement("output");function findAttributeTargets(elt,attrName){var attrTarget=getClosestAttributeValue(elt,attrName);if(attrTarget){if(attrTarget==="this"){return[findThisElement(elt,attrName)];}else{var result=querySelectorAllExt(elt,attrTarget);if(result.length===0){logError('The selector "'+attrTarget+'" on '+attrName+" returned no matches!");return[DUMMY_ELT]}else{return result;}}}} 74function findThisElement(elt,attribute){return getClosestMatch(elt,function(elt){return getAttributeValue(elt,attribute)!=null;})} 75function getTarget(elt){var targetStr=getClosestAttributeValue(elt,"hx-target");if(targetStr){if(targetStr==="this"){return findThisElement(elt,'hx-target');}else{return querySelectorExt(elt,targetStr)}}else{var data=getInternalData(elt);if(data.boosted){return getDocument().body;}else{return elt;}}} 76function shouldSettleAttribute(name){var attributesToSettle=htmx.config.attributesToSettle;for(var i=0;i<attributesToSettle.length;i++){if(name===attributesToSettle[i]){return true;}} 77return false;} 78function cloneAttributes(mergeTo,mergeFrom){forEach(mergeTo.attributes,function(attr){if(!mergeFrom.hasAttribute(attr.name)&&shouldSettleAttribute(attr.name)){mergeTo.removeAttribute(attr.name)}});forEach(mergeFrom.attributes,function(attr){if(shouldSettleAttribute(attr.name)){mergeTo.setAttribute(attr.name,attr.value);}});} 79function isInlineSwap(swapStyle,target){var extensions=getExtensions(target);for(var i=0;i<extensions.length;i++){var extension=extensions[i];try{if(extension.isInlineSwap(swapStyle)){return true;}}catch(e){logError(e);}} 80return swapStyle==="outerHTML";} 81function oobSwap(oobValue,oobElement,settleInfo){var selector="#"+getRawAttribute(oobElement,"id");var swapStyle="outerHTML";if(oobValue==="true"){}else if(oobValue.indexOf(":")>0){swapStyle=oobValue.substr(0,oobValue.indexOf(":"));selector=oobValue.substr(oobValue.indexOf(":")+1,oobValue.length);}else{swapStyle=oobValue;} 82var targets=getDocument().querySelectorAll(selector);if(targets){forEach(targets,function(target){var fragment;var oobElementClone=oobElement.cloneNode(true);fragment=getDocument().createDocumentFragment();fragment.appendChild(oobElementClone);if(!isInlineSwap(swapStyle,target)){fragment=oobElementClone;} 83var beforeSwapDetails={shouldSwap:true,target:target,fragment:fragment};if(!triggerEvent(target,'htmx:oobBeforeSwap',beforeSwapDetails))return;target=beforeSwapDetails.target;if(beforeSwapDetails['shouldSwap']){swap(swapStyle,target,target,fragment,settleInfo);} 84forEach(settleInfo.elts,function(elt){triggerEvent(elt,'htmx:oobAfterSwap',beforeSwapDetails);});});oobElement.parentNode.removeChild(oobElement);}else{oobElement.parentNode.removeChild(oobElement);triggerErrorEvent(getDocument().body,"htmx:oobErrorNoTarget",{content:oobElement});} 85return oobValue;} 86function handleOutOfBandSwaps(elt,fragment,settleInfo){var oobSelects=getClosestAttributeValue(elt,"hx-select-oob");if(oobSelects){var oobSelectValues=oobSelects.split(",");for(var i=0;i<oobSelectValues.length;i++){var oobSelectValue=oobSelectValues[i].split(":",2);var id=oobSelectValue[0].trim();if(id.indexOf("#")===0){id=id.substring(1);} 87var oobValue=oobSelectValue[1]||"true";var oobElement=fragment.querySelector("#"+id);if(oobElement){oobSwap(oobValue,oobElement,settleInfo);}}} 88forEach(findAll(fragment,'[hx-swap-oob], [data-hx-swap-oob]'),function(oobElement){var oobValue=getAttributeValue(oobElement,"hx-swap-oob");if(oobValue!=null){oobSwap(oobValue,oobElement,settleInfo);}});} 89function handlePreservedElements(fragment){forEach(findAll(fragment,'[hx-preserve], [data-hx-preserve]'),function(preservedElt){var id=getAttributeValue(preservedElt,"id");var oldElt=getDocument().getElementById(id);if(oldElt!=null){preservedElt.parentNode.replaceChild(oldElt,preservedElt);}});} 90function handleAttributes(parentNode,fragment,settleInfo){forEach(fragment.querySelectorAll("[id]"),function(newNode){var id=getRawAttribute(newNode,"id") 91if(id&&id.length>0){var normalizedId=id.replace("'","\\'");var normalizedTag=newNode.tagName.replace(':','\\:');var oldNode=parentNode.querySelector(normalizedTag+"[id='"+normalizedId+"']");if(oldNode&&oldNode!==parentNode){var newAttributes=newNode.cloneNode();cloneAttributes(newNode,oldNode);settleInfo.tasks.push(function(){cloneAttributes(newNode,newAttributes);});}}});} 92function makeAjaxLoadTask(child){return function(){removeClassFromElement(child,htmx.config.addedClass);processNode(child);processScripts(child);
92processFocus(child) 93triggerEvent(child,'htmx:load');};} 94function processFocus(child){var autofocus="[autofocus]";var autoFocusedElt=matches(child,autofocus)?child:child.querySelector(autofocus) 95if(autoFocusedElt!=null){autoFocusedElt.focus();}} 96function insertNodesBefore(parentNode,insertBefore,fragment,settleInfo){handleAttributes(parentNode,fragment,settleInfo);while(fragment.childNodes.length>0){var child=fragment.firstChild;addClassToElement(child,htmx.config.addedClass);parentNode.insertBefore(child,insertBefore);if(child.nodeType!==Node.TEXT_NODE&&child.nodeType!==Node.COMMENT_NODE){settleInfo.tasks.push(makeAjaxLoadTask(child));}}} 97function stringHash(string,hash){var char=0;while(char<string.length){hash=(hash<<5)-hash+string.charCodeAt(char++)|0;} 98return hash;} 99function attributeHash(elt){var hash=0;if(elt.attributes){for(var i=0;i<elt.attributes.length;i++){var attribute=elt.attributes[i];if(attribute.value){hash=stringHash(attribute.name,hash);hash=stringHash(attribute.value,hash);}}} 100return hash;} 101function deInitOnHandlers(elt){var internalData=getInternalData(elt);if(internalData.onHandlers){for(var i=0;i<internalData.onHandlers.length;i++){const handlerInfo=internalData.onHandlers[i];elt.removeEventListener(handlerInfo.event,handlerInfo.listener);} 102delete internalData.onHandlers}} 103function deInitNode(element){var internalData=getInternalData(element);if(internalData.timeout){clearTimeout(internalData.timeout);} 104if(internalData.webSocket){internalData.webSocket.close();} 105if(internalData.sseEventSource){internalData.sseEventSource.close();} 106if(internalData.listenerInfos){forEach(internalData.listenerInfos,function(info){if(info.on){info.on.removeEventListener(info.trigger,info.listener);}});} 107deInitOnHandlers(element);forEach(Object.keys(internalData),function(key){delete internalData[key]});} 108function cleanUpElement(element){triggerEvent(element,"htmx:beforeCleanupElement") 109deInitNode(element);if(element.children){forEach(element.children,function(child){cleanUpElement(child)});}} 110function swapOuterHTML(target,fragment,settleInfo){if(target.tagName==="BODY"){return swapInnerHTML(target,fragment,settleInfo);}else{var newElt 111var eltBeforeNewContent=target.previousSibling;insertNodesBefore(parentElt(target),target,fragment,settleInfo);if(eltBeforeNewContent==null){newElt=parentElt(target).firstChild;}else{newElt=eltBeforeNewContent.nextSibling;} 112settleInfo.elts=settleInfo.elts.filter(function(e){return e!=target});while(newElt&&newElt!==target){if(newElt.nodeType===Node.ELEMENT_NODE){settleInfo.elts.push(newElt);} 113newElt=newElt.nextElementSibling;} 114cleanUpElement(target);parentElt(target).removeChild(target);}} 115function swapAfterBegin(target,fragment,settleInfo){return insertNodesBefore(target,target.firstChild,fragment,settleInfo);} 116function swapBeforeBegin(target,fragment,settleInfo){return insertNodesBefore(parentElt(target),target,fragment,settleInfo);} 117function swapBeforeEnd(target,fragment,settleInfo){return insertNodesBefore(target,null,fragment,settleInfo);} 118function swapAfterEnd(target,fragment,settleInfo){return insertNodesBefore(parentElt(target),target.nextSibling,fragment,settleInfo);} 119function swapDelete(target,fragment,settleInfo){cleanUpElement(target);return parentElt(target).removeChild(target);} 120function swapInnerHTML(target,fragment,settleInfo){var firstChild=target.firstChild;insertNodesBefore(target,firstChild,fragment,settleInfo);if(firstChild){while(firstChild.nextSibling){cleanUpElement(firstChild.nextSibling) 121target.removeChild(firstChild.nextSibling);} 122cleanUpElement(firstChild) 123target.removeChild(firstChild);}} 124function maybeSelectFromResponse(elt,fragment,selectOverride){var selector=selectOverride||getClosestAttributeValue(elt,"hx-select");if(selector){var newFragment=getDocument().createDocumentFragment();forEach(fragment.querySelectorAll(selector),function(node){newFragment.appendChild(node);});fragment=newFragment;} 125return fragment;} 126function swap(swapStyle,elt,target,fragment,settleInfo){switch(swapStyle){case"none":return;case"outerHTML":swapOuterHTML(target,fragment,settleInfo);return;case"afterbegin":swapAfterBegin(target,fragment,settleInfo);return;case"beforebegin":swapBeforeBegin(target,fragment,settleInfo);return;case"beforeend":swapBeforeEnd(target,fragment,settleInfo);return;case"afterend":swapAfterEnd(target,fragment,settleInfo);return;case"delete":swapDelete(target,fragment,settleInfo);return;default:var extensions=getExtensions(elt);for(var i=0;i<extensions.length;i++){var ext=extensions[i];try{var newElements=ext.handleSwap(swapStyle,target,fragment,settleInfo);if(newElements){if(typeof newElements.length!=='undefined'){for(var j=0;j<newElements.length;j++){var child=newElements[j];if(child.nodeType!==Node.TEXT_NODE&&child.nodeType!==Node.COMMENT_NODE){settleInfo.tasks.push(makeAjaxLoadTask(child));}}} 127return;}}catch(e){logError(e);}} 128if(swapStyle==="innerHTML"){swapInnerHTML(target,fragment,settleInfo);}else{swap(htmx.config.defaultSwapStyle,elt,target,fragment,settleInfo);}}} 129function findTitle(content){if(content.indexOf('<title')>-1){var contentWithSvgsRemoved=content.replace(SVG_TAGS_REGEX,'');var result=contentWithSvgsRemoved.match(TITLE_TAG_REGEX);if(result){return result[2];}}} 130function selectAndSwap(swapStyle,target,elt,responseText,settleInfo,selectOverride){settleInfo.title=findTitle(responseText);var fragment=makeFragment(responseText);if(fragment){handleOutOfBandSwaps(elt,fragment,settleInfo);fragment=maybeSelectFromResponse(elt,fragment,selectOverride);handlePreservedElements(fragment);return swap(swapStyle,elt,target,fragment,settleInfo);}} 131function handleTrigger(xhr,header,elt){var triggerBody=xhr.getResponseHeader(header);if(triggerBody.indexOf("{")===0){var triggers=parseJSON(triggerBody);for(var eventName in triggers){if(triggers.hasOwnProperty(eventName)){var detail=triggers[eventName];if(!isRawObject(detail)){detail={"value":detail}} 132triggerEvent(elt,eventName,detail);}}}else{var eventNames=triggerBody.split(",") 133for(var i=0;i<eventNames.length;i++){triggerEvent(elt,eventNames[i].trim(),[]);}}} 134var WHITESPACE=/\s/;var WHITESPACE_OR_COMMA=/[\s,]/;var SYMBOL_START=/[_$a-zA-Z]/;var SYMBOL_CONT=/[_$a-zA-Z0-9]/;var STRINGISH_START=['"',"'","/"];var NOT_WHITESPACE=/[^\s]/;var COMBINED_SELECTOR_START=/[{(]/;var COMBINED_SELECTOR_END=/[})]/;function tokenizeString(str){var tokens=[];var position=0;while(position<str.length){if(SYMBOL_START.exec(str.charAt(position))){var startPosition=position;while(SYMBOL_CONT.exec(str.charAt(position+1))){position++;} 135tokens.push(str.substr(startPosition,position-startPosition+1));}else if(STRINGISH_START.indexOf(str.charAt(position))!==-1){var startChar=str.charAt(position);var startPosition=position;position++;while(position<str.length&&str.charAt(position)!==startChar){if(str.charAt(position)==="\\"){position++;} 136position++;} 137tokens.push(str.substr(startPosition,position-startPosition+1));}else{var symbol=str.charAt(position);tokens.push(symbol);} 138position++;} 139return tokens;} 140function isPossibleRelativeReference(token,last,paramName){return SYMBOL_START.exec(token.charAt(0))&&token!=="true"&&token!=="false"&&token!=="this"&&token!==paramName&&last!==".";} 141function maybeGenerateConditional(elt,tokens,paramName){if(tokens[0]==='['){tokens.shift();var bracketCount=1;var conditionalSource=" return (function("+paramName+"){ return (";var last=null;while(tokens.length>0){var token=tokens[0];if(token==="]"){bracketCount--;if(bracketCount===0){if(last===null){conditionalSource=conditionalSource+"true";} 142tokens.shift();conditionalSource+=")})";try{var conditionFunction=maybeEval(elt,function(){return Function(conditionalSource)();},function(){return true}) 143conditionFunction.source=conditionalSource;return conditionFunction;}catch(e){triggerErrorEvent(getDocument().body,"htmx:syntax:error",{error:e,source:conditionalSource}) 144return null;}}}else if(token==="["){bracketCount++;} 145if(isPossibleRelativeReference(token,last,paramName)){conditionalSource+="(("+paramName+"."+token+") ? ("+paramName+"."+token+") : (window."+token+"))";}else{conditionalSource=conditionalSource+token;} 146last=tokens.shift();}}} 147function consumeUntil(tokens,match){var result="";while(tokens.length>0&&!match.test(tokens[0])){result+=tokens.shift();} 148return result;} 149function consumeCSSSelector(tokens){var result;if(tokens.length>0&&COMBINED_SELECTOR_START.test(tokens[0])){tokens.shift();result=consumeUntil(tokens,COMBINED_SELECTOR_END).trim();tokens.shift();}else{result=consumeUntil(tokens,WHITESPACE_OR_COMMA);} 150return result;} 151var INPUT_SELECTOR='input, textarea, select';function parseAndCacheTrigger(elt,explicitTrigger,cache){var triggerSpecs=[];var tokens=tokenizeString(explicitTrigger);do{consumeUntil(tokens,NOT_WHITESPACE);var initialLength=tokens.length;var trigger=consumeUntil(tokens,/[,\[\s]/);if(trigger!==""){if(trigger==="every"){var every={trigger:'every'};consumeUntil(tokens,NOT_WHITESPACE);every.pollInterval=parseInterval(consumeUntil(tokens,/[,\[\s]/));consumeUntil(tokens,NOT_WHITESPACE);var eventFilter=maybeGenerateConditional(elt,tokens,"event");
151if(eventFilter){every.eventFilter=eventFilter;} 152triggerSpecs.push(every);}else if(trigger.indexOf("sse:")===0){triggerSpecs.push({trigger:'sse',sseEvent:trigger.substr(4)});}else{var triggerSpec={trigger:trigger};var eventFilter=maybeGenerateConditional(elt,tokens,"event");if(eventFilter){triggerSpec.eventFilter=eventFilter;} 153while(tokens.length>0&&tokens[0]!==","){consumeUntil(tokens,NOT_WHITESPACE) 154var token=tokens.shift();if(token==="changed"){triggerSpec.changed=true;}else if(token==="once"){triggerSpec.once=true;}else if(token==="consume"){triggerSpec.consume=true;}else if(token==="delay"&&tokens[0]===":"){tokens.shift();triggerSpec.delay=parseInterval(consumeUntil(tokens,WHITESPACE_OR_COMMA));}else if(token==="from"&&tokens[0]===":"){tokens.shift();if(COMBINED_SELECTOR_START.test(tokens[0])){var from_arg=consumeCSSSelector(tokens);}else{var from_arg=consumeUntil(tokens,WHITESPACE_OR_COMMA);if(from_arg==="closest"||from_arg==="find"||from_arg==="next"||from_arg==="previous"){tokens.shift();var selector=consumeCSSSelector(tokens);if(selector.length>0){from_arg+=" "+selector;}}} 155triggerSpec.from=from_arg;}else if(token==="target"&&tokens[0]===":"){tokens.shift();
155triggerSpec.target=consumeCSSSelector(tokens);}else if(token==="throttle"&&tokens[0]===":"){tokens.shift();triggerSpec.throttle=parseInterval(consumeUntil(tokens,WHITESPACE_OR_COMMA));}else if(token==="queue"&&tokens[0]===":"){tokens.shift();triggerSpec.queue=consumeUntil(tokens,WHITESPACE_OR_COMMA);}else if(token==="root"&&tokens[0]===":"){tokens.shift();triggerSpec[token]=consumeCSSSelector(tokens);}else if(token==="threshold"&&tokens[0]===":"){tokens.shift();triggerSpec[token]=consumeUntil(tokens,WHITESPACE_OR_COMMA);}else{triggerErrorEvent(elt,"htmx:syntax:error",{token:tokens.shift()});}} 156triggerSpecs.push(triggerSpec);}} 157if(tokens.length===initialLength){triggerErrorEvent(elt,"htmx:syntax:error",{token:tokens.shift()});} 158consumeUntil(tokens,NOT_WHITESPACE);}while(tokens[0]===","&&tokens.shift()) 159if(cache){cache[explicitTrigger]=triggerSpecs} 160return triggerSpecs} 161function getTriggerSpecs(elt){var explicitTrigger=getAttributeValue(elt,'hx-trigger');var triggerSpecs=[];if(explicitTrigger){var cache=htmx.config.triggerSpecsCache 162triggerSpecs=(cache&&cache[explicitTrigger])||parseAndCacheTrigger(elt,explicitTrigger,cache)} 163if(triggerSpecs.length>0){return triggerSpecs;}else if(matches(elt,'form')){return[{trigger:'submit'}];}else if(matches(elt,'input[type="button"], input[type="submit"]')){return[{trigger:'click'}];}else if(matches(elt,INPUT_SELECTOR)){return[{trigger:'change'}];}else{return[{trigger:'click'}];}} 164function cancelPolling(elt){getInternalData(elt).cancelled=true;} 165function processPolling(elt,handler,spec){var nodeData=getInternalData(elt);nodeData.timeout=setTimeout(function(){if(bodyContains(elt)&&nodeData.cancelled!==true){if(!maybeFilterEvent(spec,elt,makeEvent('hx:poll:trigger',{triggerSpec:spec,target:elt}))){handler(elt);} 166processPolling(elt,handler,spec);}},spec.pollInterval);} 167function isLocalLink(elt){return location.hostname===elt.hostname&&getRawAttribute(elt,'href')&&getRawAttribute(elt,'href').indexOf("#")!==0;} 168function boostElement(elt,nodeData,triggerSpecs){if((elt.tagName==="A"&&isLocalLink(elt)&&(elt.target===""||elt.target==="_self"))||elt.tagName==="FORM"){nodeData.boosted=true;var verb,path;if(elt.tagName==="A"){verb="get";path=getRawAttribute(elt,'href')}else{var rawAttribute=getRawAttribute(elt,"method");verb=rawAttribute?rawAttribute.toLowerCase():"get";if(verb==="get"){} 169path=getRawAttribute(elt,'action');} 170triggerSpecs.forEach(function(triggerSpec){addEventListener(elt,function(elt,evt){if(closest(elt,htmx.config.disableSelector)){cleanUpElement(elt) 171return} 172issueAjaxRequest(verb,path,elt,evt)},nodeData,triggerSpec,true);});}} 173function shouldCancel(evt,elt){if(evt.type==="submit"||evt.type==="click"){if(elt.tagName==="FORM"){return true;} 174if(matches(elt,'input[type="submit"], button')&&closest(elt,'form')!==null){return true;} 175if(elt.tagName==="A"&&elt.href&&(elt.getAttribute('href')==='#'||elt.getAttribute('href').indexOf("#")!==0)){return true;}} 176return false;} 177function ignoreBoostedAnchorCtrlClick(elt,evt){return getInternalData(elt).boosted&&elt.tagName==="A"&&evt.type==="click"&&(evt.ctrlKey||evt.metaKey);} 178function maybeFilterEvent(triggerSpec,elt,evt){var eventFilter=triggerSpec.eventFilter;if(eventFilter){try{return eventFilter.call(elt,evt)!==true;}catch(e){triggerErrorEvent(getDocument().body,"htmx:eventFilter:error",{error:e,source:eventFilter.source});return true;}} 179return false;} 180function addEventListener(elt,handler,nodeData,triggerSpec,explicitCancel){var elementData=getInternalData(elt);var eltsToListenOn;if(triggerSpec.from){eltsToListenOn=querySelectorAllExt(elt,triggerSpec.from);}else{eltsToListenOn=[elt];} 181if(triggerSpec.changed){eltsToListenOn.forEach(function(eltToListenOn){var eltToListenOnData=getInternalData(eltToListenOn);eltToListenOnData.lastValue=eltToListenOn.value;})} 182forEach(eltsToListenOn,function(eltToListenOn){var eventListener=function(evt){if(!bodyContains(elt)){eltToListenOn.removeEventListener(triggerSpec.trigger,eventListener);return;} 183if(ignoreBoostedAnchorCtrlClick(elt,evt)){return;} 184if(explicitCancel||shouldCancel(evt,elt)){evt.preventDefault();} 185if(maybeFilterEvent(triggerSpec,elt,evt)){return;} 186var eventData=getInternalData(evt);eventData.triggerSpec=triggerSpec;if(eventData.handledFor==null){eventData.handledFor=[];} 187if(eventData.handledFor.indexOf(elt)<0){eventData.handledFor.push(elt);if(triggerSpec.consume){evt.stopPropagation();} 188if(triggerSpec.target&&evt.target){if(!matches(evt.target,triggerSpec.target)){return;}} 189if(triggerSpec.once){if(elementData.triggeredOnce){return;}else{elementData.triggeredOnce=true;}} 190if(triggerSpec.changed){var eltToListenOnData=getInternalData(eltToListenOn) 191if(eltToListenOnData.lastValue===eltToListenOn.value){return;} 192eltToListenOnData.lastValue=eltToListenOn.value} 193if(elementData.delayed){clearTimeout(elementData.delayed);} 194if(elementData.throttle){return;} 195if(triggerSpec.throttle>0){if(!elementData.throttle){handler(elt,evt);elementData.throttle=setTimeout(function(){elementData.throttle=null;},triggerSpec.throttle);}}else if(triggerSpec.delay>0){elementData.delayed=setTimeout(function(){handler(elt,evt)},triggerSpec.delay);}else{triggerEvent(elt,'htmx:trigger') 196handler(elt,evt);}}};if(nodeData.listenerInfos==null){nodeData.listenerInfos=[];} 197nodeData.listenerInfos.push({trigger:triggerSpec.trigger,listener:eventListener,on:eltToListenOn}) 198eltToListenOn.addEventListener(triggerSpec.trigger,eventListener);});} 199var windowIsScrolling=false 200var scrollHandler=null;function initScrollHandler(){if(!scrollHandler){scrollHandler=function(){windowIsScrolling=true};window.addEventListener("scroll",scrollHandler) 201setInterval(function(){if(windowIsScrolling){windowIsScrolling=false;forEach(getDocument().querySelectorAll("[hx-trigger='revealed'],[data-hx-trigger='revealed']"),function(elt){maybeReveal(elt);})}},200);}} 202function maybeReveal(elt){if(!hasAttribute(elt,'data-hx-revealed')&&isScrolledIntoView(elt)){elt.setAttribute('data-hx-revealed','true');var nodeData=getInternalData(elt);if(nodeData.initHash){triggerEvent(elt,'revealed');}else{elt.addEventListener("htmx:afterProcessNode",function(evt){triggerEvent(elt,'revealed')},{once:true});}}} 203function processWebSocketInfo(elt,nodeData,info){var values=splitOnWhitespace(info);for(var i=0;i<values.length;i++){var value=values[i].split(/:(.+)/);if(value[0]==="connect"){ensureWebSocket(elt,value[1],0);} 204if(value[0]==="send"){processWebSocketSend(elt);}}} 205function ensureWebSocket(elt,wssSource,retryCount){if(!bodyContains(elt)){return;} 206if(wssSource.indexOf("/")==0){var base_part=location.hostname+(location.port?':'+location.port:'');if(location.protocol=='https:'){wssSource="wss://"+base_part+wssSource;}else if(location.protocol=='http:'){wssSource="ws://"+base_part+wssSource;}} 207var socket=htmx.createWebSocket(wssSource);socket.onerror=function(e){triggerErrorEvent(elt,"htmx:wsError",{error:e,socket:socket});maybeCloseWebSocketSource(elt);};socket.onclose=function(e){if([1006,1012,1013].indexOf(e.code)>=0){var delay=getWebSocketReconnectDelay(retryCount);setTimeout(function(){ensureWebSocket(elt,wssSource,retryCount+1);},delay);}};socket.onopen=function(e){retryCount=0;} 208getInternalData(elt).webSocket=socket;socket.addEventListener('message',function(event){if(maybeCloseWebSocketSource(elt)){return;} 209var response=event.data;withExtensions(elt,function(extension){response=extension.transformResponse(response,null,elt);});var settleInfo=makeSettleInfo(elt);var fragment=makeFragment(response);var children=toArray(fragment.children);for(var i=0;i<children.length;i++){var child=children[i];oobSwap(getAttributeValue(child,"hx-swap-oob")||"true",child,settleInfo);} 210settleImmediately(settleInfo.tasks);});} 211function maybeCloseWebSocketSource(elt){if(!bodyContains(elt)){getInternalData(elt).webSocket.close();return true;}} 212function processWebSocketSend(elt){var webSocketSourceElt=getClosestMatch(elt,function(parent){return getInternalData(parent).webS
212ocket!=null;});if(webSocketSourceElt){elt.addEventListener(getTriggerSpecs(elt)[0].trigger,function(evt){var webSocket=getInternalData(webSocketSourceElt).webSocket;var headers=getHeaders(elt,webSocketSourceElt);var results=getInputValues(elt,'post');var errors=results.errors;var rawParameters=results.values;var expressionVars=getExpressionVars(elt);var allParameters=mergeObjects(rawParameters,expressionVars);var filteredParameters=filterValues(allParameters,elt);filteredParameters['HEADERS']=headers;if(errors&&errors.length>0){triggerEvent(elt,'htmx:validation:halted',errors);return;} 213webSocket.send(JSON.stringify(filteredParameters));if(shouldCancel(evt,elt)){evt.preventDefault();}});}else{triggerErrorEvent(elt,"htmx:noWebSocketSourceError");}} 214function getWebSocketReconnectDelay(retryCount){var delay=htmx.config.wsReconnectDelay;if(typeof delay==='function'){return delay(retryCount);} 215if(delay==='full-jitter'){var exp=Math.min(retryCount,6);var maxDelay=1000*Math.pow(2,exp);return maxDelay*Math.random();} 216logError('htmx.config.wsReconnectDelay must either be a function or the string "full-jitter"');} 217function processSSEInfo(elt,nodeData,info){var values=splitOnWhitespace(info);for(var i=0;i<values.length;i++){var value=values[i].split(/:(.+)/);if(value[0]==="connect"){processSSESource(elt,value[1]);} 218if((value[0]==="swap")){processSSESwap(elt,value[1])}}} 219function processSSESource(elt,sseSrc){var source=htmx.createEventSource(sseSrc);source.onerror=function(e){triggerErrorEvent(elt,"htmx:sseError",{error:e,source:source});maybeCloseSSESource(elt);};getInternalData(elt).sseEventSource=source;} 220function processSSESwap(elt,sseEventName){var sseSourceElt=getClosestMatch(elt,hasEventSource);if(sseSourceElt){var sseEventSource=getInternalData(sseSourceElt).sseEventSource;var sseListener=function(event){if(maybeCloseSSESource(sseSourceElt)){return;} 221if(!bodyContains(elt)){sseEventSource.removeEventListener(sseEventName,sseListener);return;} 222var response=event.data;withExtensions(elt,function(extension){response=extension.transformResponse(response,null,elt);});var swapSpec=getSwapSpecification(elt) 223var target=getTarget(elt) 224var settleInfo=makeSettleInfo(elt);selectAndSwap(swapSpec.swapStyle,target,elt,response,settleInfo) 225settleImmediately(settleInfo.tasks) 226triggerEvent(elt,"htmx:sseMessage",event)};getInternalData(elt).sseListener=sseListener;sseEventSource.addEventListener(sseEventName,sseListener);}else{triggerErrorEvent(elt,"htmx:noSSESourceError");}} 227function processSSETrigger(elt,handler,sseEventName){var sseSourceElt=getClosestMatch(elt,hasEventSource);if(sseSourceElt){var sseEventSource=getInternalData(sseSourceElt).sseEventSource;var sseListener=function(){if(!maybeCloseSSESource(sseSourceElt)){if(bodyContains(elt)){handler(elt);}else{sseEventSource.removeEventListener(sseEventName,sseListener);}}};getInternalData(elt).sseListener=sseListener;sseEventSource.addEventListener(sseEventName,sseListener);}else{triggerErrorEvent(elt,"htmx:noSSESourceError");}} 228function maybeCloseSSESource(elt){if(!bodyContains(elt)){getInternalData(elt).sseEventSource.close();return true;}} 229function hasEventSource(node){return getInternalData(node).sseEventSource!=null;} 230function loadImmediately(elt,handler,nodeData,delay){var load=function(){if(!nodeData.loaded){nodeData.loaded=true;handler(elt);}} 231if(delay>0){setTimeout(load,delay);}else{load();}} 232function processVerbs(elt,nodeData,triggerSpecs){var explicitAction=false;forEach(VERBS,function(verb){if(hasAttribute(elt,'hx-'+verb)){var path=getAttributeValue(elt,'hx-'+verb);explicitAction=true;nodeData.path=path;nodeData.verb=verb;triggerSpecs.forEach(function(triggerSpec){addTriggerHandler(elt,triggerSpec,nodeData,function(elt,evt){if(closest(elt,htmx.config.disableSelector)){cleanUpElement(elt) 233return} 234issueAjaxRequest(verb,path,elt,evt)})});}});return explicitAction;} 235function addTriggerHandler(elt,triggerSpec,nodeData,handler){if(triggerSpec.sseEvent){processSSETrigger(elt,handler,triggerSpec.sseEvent);}else if(triggerSpec.trigger==="revealed"){initScrollHandler();addEventListener(elt,handler,nodeData,triggerSpec);maybeReveal(elt);}else if(triggerSpec.trigger==="intersect"){var observerOptions={};if(triggerSpec.root){observerOptions.root=querySelectorExt(elt,triggerSpec.root)} 236if(triggerSpec.threshold){observerOptions.threshold=parseFloat(triggerSpec.threshold);} 237var observer=new IntersectionObserver(function(entries){for(var i=0;i<entries.length;i++){var entry=entries[i];if(entry.isIntersecting){triggerEvent(elt,"intersect");break;}}},observerOptions);observer.observe(elt);addEventListener(elt,handler,nodeData,triggerSpec);}else if(triggerSpec.trigger==="load"){if(!maybeFilterEvent(triggerSpec,elt,makeEvent("load",{elt:elt}))){loadImmediately(elt,handler,nodeData,triggerSpec.delay);}}else if(triggerSpec.pollInterval>0){nodeData.polling=true;processPolling(elt,handler,triggerSpec);}else{addEventListener(elt,handler,nodeData,triggerSpec);}} 238function evalScript(script){if(!script.htmxExecuted&&htmx.config.allowScriptTags&&(script.type==="text/javascript"||script.type==="module"||script.type==="")){var newScript=getDocument().createElement("script");forEach(script.attributes,function(attr){newScript.setAttribute(attr.name,attr.value);});newScript.textContent=script.textContent;newScript.async=false;
238if(htmx.config.inlineScriptNonce){newScript.nonce=htmx.config.inlineScriptNonce;} 239var parent=script.parentElement;try{parent.insertBefore(newScript,script);}catch(e){logError(e);}finally{if(script.parentElement){script.parentElement.removeChild(script);}}}} 240function processScripts(elt){if(matches(elt,"script")){evalScript(elt);} 241forEach(findAll(elt,"script"),function(script){evalScript(script);});} 242function shouldProcessHxOn(elt){var attributes=elt.attributes 243for(var j=0;j<attributes.length;j++){var attrName=attributes[j].name 244if(startsWith(attrName,"hx-on:")||startsWith(attrName,"data-hx-on:")||startsWith(attrName,"hx-on-")||startsWith(attrName,"data-hx-on-")){return true}} 245return false} 246function findHxOnWildcardElements(elt){var node=null 247var elements=[] 248if(shouldProcessHxOn(elt)){elements.push(elt)} 249if(document.evaluate){var iter=document.evaluate('.//*[@*[ starts-with(name(), "hx-on:") or starts-with(name(), "data-hx-on:") or'+' starts-with(name(), "hx-on-") or starts-with(name(), "data-hx-on-") ]]',elt) 250while(node=iter.iterateNext())elements.push(node)}else{var allElements=elt.getElementsByTagName("*") 251for(var i=0;i<allElements.length;i++){if(shouldProcessHxOn(allElements[i])){elements.push(allElements[i])}}} 252return elements} 253function findElementsToProcess(elt){if(elt.querySelectorAll){var boostedSelector=", [hx-boost] a, [data-hx-boost] a, a[hx-boost], a[data-hx-boost]";var results=elt.querySelectorAll(VERB_SELECTOR+boostedSelector+", form, [type='submit'], [hx-sse], [data-hx-sse], [hx-ws],"+" [data-hx-ws], [hx-ext], [data-hx-ext], [hx-trigger], [data-hx-trigger], [hx-on], [data-hx-on]");return results;}else{return[];}} 254function maybeSetLastButtonClicked(evt){var elt=closest(evt.target,"button, input[type='submit']");var internalData=getRelatedFormData(evt) 255if(internalData){internalData.lastButtonClicked=elt;}};function maybeUnsetLastButtonClicked(evt){var internalData=getRelatedFormData(evt) 256if(internalData){internalData.lastButtonClicked=null;}} 257function getRelatedFormData(evt){var elt=closest(evt.target,"button, input[type='submit']");if(!elt){return;} 258var form=resolveTarget('#'+getRawAttribute(elt,'form'))||closest(elt,'form');if(!form){return;} 259return getInternalData(form);} 260function initButtonTracking(elt){elt.addEventListener('click',maybeSetLastButtonClicked) 261elt.addEventListener('focusin',maybeSetLastButtonClicked) 262elt.addEventListener('focusout',maybeUnsetLastButtonClicked)} 263function countCurlies(line){var tokens=tokenizeString(line);var netCurlies=0;for(var i=0;i<tokens.length;i++){const token=tokens[i];if(token==="{"){netCurlies++;}else if(token==="}"){netCurlies--;}} 264return netCurlies;} 265function addHxOnEventHandler(elt,eventName,code){var nodeData=getInternalData(elt);if(!Array.isArray(nodeData.onHandlers)){nodeData.onHandlers=[];} 266var func;var listener=function(e){return maybeEval(elt,function(){if(!func){func=new Function("event",code);} 267func.call(elt,e);});};elt.addEventListener(eventName,listener);nodeData.onHandlers.push({event:eventName,listener:listener});} 268function processHxOn(elt){var hxOnValue=getAttributeValue(elt,'hx-on');if(hxOnValue){var handlers={} 269var lines=hxOnValue.split("\n");var currentEvent=null;var curlyCount=0;while(lines.length>0){var line=lines.shift();var match=line.match(/^\s*([a-zA-Z:\-\.]+:)(.*)/);if(curlyCount===0&&match){line.split(":") 270currentEvent=match[1].slice(0,-1);handlers[currentEvent]=match[2];}else{handlers[currentEvent]+=line;} 271curlyCount+=countCurlies(line);} 272for(var eventName in handlers){addHxOnEventHandler(elt,eventName,handlers[eventName]);}}} 273function processHxOnWildcard(elt){deInitOnHandlers(elt) 274for(var i=0;i<elt.attributes.length;i++){var name=elt.attributes[i].name 275var value=elt.attributes[i].value 276if(startsWith(name,"hx-on")||startsWith(name,"data-hx-on")){var afterOnPosition=name.indexOf("-on")+3;var nextChar=name.slice(afterOnPosition,afterOnPosition+1);if(nextChar==="-"||nextChar===":"){var eventName=name.slice(afterOnPosition+1);if(startsWith(eventName,":")){eventName="htmx"+eventName}else if(startsWith(eventName,"-")){eventName="htmx:"+eventName.slice(1);}else if(startsWith(eventName,"htmx-")){eventName="htmx:"+eventName.slice(5);} 277addHxOnEventHandler(elt,eventName,value)}}}} 278function initNode(elt){if(closest(elt,htmx.config.disableSelector)){cleanUpElement(elt) 279return;} 280var nodeData=getInternalData(elt);if(nodeData.initHash!==attributeHash(elt)){deInitNode(elt);nodeData.initHash=attributeHash(elt);processHxOn(elt);triggerEvent(elt,"htmx:beforeProcessNode") 281if(elt.value){nodeData.lastValue=elt.value;} 282var triggerSpecs=getTriggerSpecs(elt);var hasExplicitHttpAction=processVerbs(elt,nodeData,triggerSpecs);if(!hasExplicitHttpAction){if(getClosestAttributeValue(elt,"hx-boost")==="true"){boostElement(elt,nodeData,triggerSpecs);}else if(hasAttribute(elt,'hx-trigger')){triggerSpecs.forEach(function(triggerSpec){addTriggerHandler(elt,triggerSpec,nodeData,function(){})})}} 283if(elt.tagName==="FORM"||(getRawAttribute(elt,"type")==="submit"&&hasAttribute(elt,"form"))){initButtonTracking(elt)} 284var sseInfo=getAttributeValue(elt,'hx-sse');if(sseInfo){processSSEInfo(elt,nodeData,sseInfo);} 285var wsInfo=getAttributeValue(elt,'hx-ws');if(wsInfo){processWebSocketInfo(elt,nodeData,wsInfo);} 286triggerEvent(elt,"htmx:afterProcessNode");}} 287function processNode(elt){elt=resolveTarget(elt);if(closest(elt,htmx.config.disableSelector)){cleanUpElement(elt) 288return;} 289initNode(elt);forEach(findElementsToProcess(elt),function(child){initNode(child)});forEach(findHxOnWildcardElements(elt),processHxOnWildcard);} 290function kebabEventName(str){return str.replace(/([a-z0-9])([A-Z])/g,'$1-$2').toLowerCase();} 291function makeEvent(eventName,detail){var evt;if(window.CustomEvent&&typeof window.CustomEvent==='function'){evt=new CustomEvent(eventName,{bubbles:true,cancelable:true,detail
291:detail});}else{evt=getDocument().createEvent('CustomEvent');evt.initCustomEvent(eventName,true,true,detail);} 292return evt;} 293function triggerErrorEvent(elt,eventName,detail){triggerEvent(elt,eventName,mergeObjects({error:eventName},detail));} 294function ignoreEventForLogging(eventName){return eventName==="htmx:afterProcessNode"} 295function withExtensions(elt,toDo){forEach(getExtensions(elt),function(extension){try{toDo(extension);}catch(e){logError(e);}});} 296function logError(msg){if(console.error){console.error(msg);}else if(console.log){console.log("ERROR: ",msg);}} 297function triggerEvent(elt,eventName,detail){elt=resolveTarget(elt);if(detail==null){detail={};} 298detail["elt"]=elt;var event=makeEvent(eventName,detail);if(htmx.logger&&!ignoreEventForLogging(eventName)){htmx.logger(elt,eventName,detail);} 299if(detail.error){logError(detail.error);triggerEvent(elt,"htmx:error",{errorInfo:detail})} 300var eventResult=elt.dispatchEvent(event);var kebabName=kebabEventName(eventName);if(eventResult&&kebabName!==eventName){var kebabedEvent=makeEvent(kebabName,event.detail);eventResult=eventResult&&elt.dispatchEvent(kebabedEvent)} 301withExtensions(elt,function(extension){eventResult=eventResult&&(extension.onEvent(eventName,event)!==false&&!event.defaultPrevented)});return eventResult;} 302var currentPathForHistory=location.pathname+location.search;function getHistoryElement(){var historyElt=getDocument().querySelector('[hx-history-elt],[data-hx-history-elt]');return historyElt||getDocument().body;} 303function saveToHistoryCache(url,content,title,scroll){if(!canAccessLocalStorage()){return;} 304if(htmx.config.historyCacheSize<=0){localStorage.removeItem("htmx-history-cache");return;} 305url=normalizePath(url);var historyCache=parseJSON(localStorage.getItem("htmx-history-cache"))||[];for(var i=0;i<historyCache.length;i++){if(historyCache[i].url===url){historyCache.splice(i,1);break;}} 306var newHistoryItem={url:url,content:content,title:title,scroll:scroll};triggerEvent(getDocument().body,"htmx:historyItemCreated",{item:newHistoryItem,cache:historyCache}) 307historyCache.push(newHistoryItem) 308while(historyCache.length>htmx.config.historyCacheSize){historyCache.shift();} 309while(historyCache.length>0){try{localStorage.setItem("htmx-history-cache",JSON.stringify(historyCache));break;}catch(e){triggerErrorEvent(getDocument().body,"htmx:historyCacheError",{cause:e,cache:historyCache}) 310historyCache.shift();}}} 311function getCachedHistory(url){if(!canAccessLocalStorage()){return null;} 312url=normalizePath(url);var historyCache=parseJSON(localStorage.getItem("htmx-history-cache"))||[];for(var i=0;i<historyCache.length;i++){if(historyCache[i].url===url){return historyCache[i];}} 313return null;} 314function cleanInnerHtmlForHistory(elt){var className=htmx.config.requestClass;var clone=elt.cloneNode(true);forEach(findAll(clone,"."+className),function(child){removeClassFromElement(child,className);});return clone.innerHTML;} 315function saveCurrentPageToHistory(){var elt=getHistoryElement();var path=currentPathForHistory||location.pathname+location.search;var disableHistoryCache 316try{disableHistoryCache=getDocument().querySelector('[hx-history="false" i],[data-hx-history="false" i]')}catch(e){disableHistoryCache=getDocument().querySelector('[hx-history="false"],[data-hx-history="false"]')} 317if(!disableHistoryCache){triggerEvent(getDocument().body,"htmx:beforeHistorySave",{path:path,historyElt:elt});saveToHistoryCache(path,cleanInnerHtmlForHistory(elt),getDocument().title,window.scrollY);} 318if(htmx.config.historyEnabled)history.replaceState({htmx:true},getDocument().title,window.location.href);} 319function pushUrlIntoHistory(path){if(htmx.config.getCacheBusterParam){path=path.replace(/org\.htmx\.cache-buster=[^&]*&?/,'') 320if(endsWith(path,'&')||endsWith(path,"?")){path=path.slice(0,-1);}} 321if(htmx.config.historyEnabled){history.pushState({htmx:true},"",path);} 322currentPathForHistory=path;} 323function replaceUrlInHistory(path){if(htmx.config.historyEnabled)history.replaceState({htmx:true},"",path);currentPathForHistory=path;} 324function settleImmediately(tasks){forEach(tasks,function(task){task.call();});} 325function loadHistoryFromServer(path){var request=new XMLHttpRequest();var details={path:path,xhr:request};triggerEvent(getDocument().body,"htmx:historyCacheMiss",details);request.open('GET',path,true);request.setRequestHeader("HX-Request","true");request.setRequestHeader("HX-History-Restore-Request","true");request.setRequestHeader("HX-Current-URL",getDocument().location.href);request.onload=function(){if(this.status>=200&&this.status<400){triggerEvent(getDocument().body,"htmx:historyCacheMissLoad",details);var fragment=makeFragment(this.response);fragment=fragment.querySelector('[hx-history-elt],[data-hx-history-elt]')||fragment;var historyElement=getHistoryElement();var settleInfo=makeSettleInfo(historyElement);var title=findTitle(this.response);if(title){var titleElt=find("title");if(titleElt){titleElt.innerHTML=title;}else{window.document.title=title;}} 326swapInnerHTML(historyElement,fragment,settleInfo) 327settleImmediately(settleInfo.tasks);currentPathForHistory=path;triggerEvent(getDocument().body,"htmx:historyRestore",{path:path,cacheMiss:true,serverResponse:this.response});}else{triggerErrorEvent(getDocument().body,"htmx:historyCacheMissLoadError",details);}};request.send();} 328function restoreHistory(path){saveCurrentPageToHistory();path=path||location.pathname+location.search;
328var cached=getCachedHistory(path);if(cached){var fragment=makeFragment(cached.content);var historyElement=getHistoryElement();var settleInfo=makeSettleInfo(historyElement);swapInnerHTML(historyElement,fragment,settleInfo) 329settleImmediately(settleInfo.tasks);document.title=cached.title;setTimeout(function(){window.scrollTo(0,cached.scroll);},0);currentPathForHistory=path;triggerEvent(getDocument().body,"htmx:historyRestore",{path:path,item:cached});}else{if(htmx.config.refreshOnHistoryMiss){window.location.reload(true);}else{loadHistoryFromServer(path);}}} 330function addRequestIndicatorClasses(elt){var indicators=findAttributeTargets(elt,'hx-indicator');if(indicators==null){indicators=[elt];} 331forEach(indicators,function(ic){var internalData=getInternalData(ic);internalData.requestCount=(internalData.requestCount||0)+1;ic.classList["add"].call(ic.classList,htmx.config.requestClass);});return indicators;} 332function disableElements(elt){var disabledElts=findAttributeTargets(elt,'hx-disabled-elt');if(disabledElts==null){disabledElts=[];} 333forEach(disabledElts,function(disabledElement){var internalData=getInternalData(disabledElement);internalData.requestCount=(internalData.requestCount||0)+1;disabledElement.setAttribute("disabled","");});return disabledElts;} 334function removeRequestIndicators(indicators,disabled){forEach(indicators,function(ic){var internalData=getInternalData(ic);internalData.requestCount=(internalData.requestCount||0)-1;if(internalData.requestCount===0){ic.classList["remove"].call(ic.classList,htmx.config.requestClass);}});forEach(disabled,function(disabledElement){var internalData=getInternalData(disabledElement);internalData.requestCount=(internalData.requestCount||0)-1;if(internalData.requestCount===0){disabledElement.removeAttribute('disabled');}});} 335function haveSeenNode(processed,elt){for(var i=0;i<processed.length;i++){var node=processed[i];if(node.isSameNode(elt)){return true;}} 336return false;} 337function shouldInclude(elt){if(elt.name===""||elt.name==null||elt.disabled||closest(elt,"fieldset[disabled]")){return false;} 338if(elt.type==="button"||elt.type==="submit"||elt.tagName==="image"||elt.tagName==="reset"||elt.tagName==="file"){return false;} 339if(elt.type==="checkbox"||elt.type==="radio"){return elt.checked;} 340return true;} 341function addValueToValues(name,value,values){if(name!=null&&value!=null){var current=values[name];if(current===undefined){values[name]=value;}else if(Array.isArray(current)){if(Array.isArray(value)){values[name]=current.concat(value);}else{current.push(value);}}else{if(Array.isArray(value)){values[name]=[current].concat(value);}else{values[name]=[current,value];}}}} 342function processInputValue(processed,values,errors,elt,validate){if(elt==null||haveSeenNode(processed,elt)){return;}else{processed.push(elt);} 343if(shouldInclude(elt)){var name=getRawAttribute(elt,"name");var value=elt.value;if(elt.multiple&&elt.tagName==="SELECT"){value=toArray(elt.querySelectorAll("option:checked")).map(function(e){return e.value});} 344if(elt.files){value=toArray(elt.files);} 345addValueToValues(name,value,values);if(validate){validateElement(elt,errors);}} 346if(matches(elt,'form')){var inputs=elt.elements;forEach(inputs,function(input){processInputValue(processed,values,errors,input,validate);});}} 347function validateElement(element,errors){if(element.willValidate){triggerEvent(element,"htmx:validation:validate") 348if(!element.checkValidity()){errors.push({elt:element,message:element.validationMessage,validity:element.validity});triggerEvent(element,"htmx:validation:failed",{message:element.validationMessage,validity:element.validity})}}} 349function getInputValues(elt,verb){var processed=[];var values={};var formValues={};var errors=[];var internalData=getInternalData(elt);if(internalData.lastButtonClicked&&!bodyContains(internalData.lastButtonClicked)){internalData.lastButtonClicked=null} 350var validate=(matches(elt,'form')&&elt.noValidate!==true)||getAttributeValue(elt,"hx-validate")==="true";if(internalData.lastButtonClicked){validate=validate&&internalData.lastButtonClicked.formNoValidate!==true;} 351if(verb!=='get'){processInputValue(processed,formValues,errors,closest(elt,'form'),validate);} 352processInputValue(processed,values,errors,elt,validate);if(internalData.lastButtonClicked||elt.tagName==="BUTTON"||(elt.tagName==="INPUT"&&getRawAttribute(elt,"type")==="submit")){var button=internalData.lastButtonClicked||elt 353var name=getRawAttribute(button,"name") 354addValueToValues(name,button.value,formValues)} 355var includes=findAttributeTargets(elt,"hx-include");forEach(includes,function(node){processInputValue(processed,values,errors,node,validate);if(!matches(node,'form')){forEach(node.querySelectorAll(INPUT_SELECTOR),function(descendant){processInputValue(processed,values,errors,descendant,validate);})}});values=mergeObjects(values,formValues);return{errors:errors,values:values};} 356function appendParam(returnStr,name,realValue){if(returnStr!==""){returnStr+="&";} 357if(String(realValue)==="[object Object]"){realValue=JSON.stringify(realValue);} 358var s=encodeURIComponent(realValue);returnStr+=encodeURIComponent(name)+"="+s;return returnStr;} 359function urlEncode(values){var returnStr="";for(var name in values){if(values.hasOwnProperty(name)){var value=values[name];if(Array.isArray(value)){forEach(value,function(v){returnStr=appendParam(returnStr,name,v);});}else{returnStr=appendParam(returnStr,name,value);}}} 360return returnStr;} 361function makeFormData(values){var formData=new FormData();for(var name in values){if(values.hasOwnProperty(name)){var value=values[name];if(Array.isArray(value)){forEach(value,function(v){formData.append(name,v);});}else{formData.append(name,value);}}} 362return formData;} 363function getHeaders(elt,target,prompt){var headers={"HX-Request":"true","HX-Trigger":getRawAttribute(elt,"id"),"HX-Trigger-Name":getRawAttribute(elt,"name"),"HX-Target":getAttributeValue(target,"id"),"HX-Current-URL":getDocument().location.href,} 364getValuesForElement(elt,"hx-headers",false,headers) 365if(prompt!==undefined){headers["HX-Prompt"]=prompt;} 366if(getInternalData(elt).boosted){headers["HX-Boosted"]="true";} 367return headers;} 368function filterValues(inputValues,elt){var paramsValue=getClosestAttributeValue(elt,"hx-params");if(paramsValue){if(paramsValue==="none"){return{};}else if(paramsValue==="*"){return inputValues;}else if(paramsValue.indexOf("not ")===0){forEach(paramsValue.substr(4).split(","),function(name){name=name.trim();delete inputValues[name];});return inputValues;}else{var newValues={} 369forEach(paramsValue.split(","),function(name){name=name.trim();newValues[name]=inputValues[name];});return newValues;}}else{return inputValues;}} 370function isAnchorLink(elt){return getRawAttribute(elt,'href')&&getRawAttribute(elt,'href').indexOf("#")>=0} 371function getSwapSpecification(elt,swapInfoOverride){var swapInfo=swapInfoOverride?swapInfoOverride:getClosestAttributeValue(elt,"hx-swap");var swapSpec={"swapStyle":getInternalData(elt).boosted?'innerHTML':htmx.config.defaultSwapStyle,"swapDelay":htmx.config.defaultSwapDelay,"settleDelay":htmx.config.defaultSettleDelay} 372if(htmx.config.scrollIntoViewOnBoost&&getInternalData(elt).boosted&&!isAnchorLink(elt)){swapSpec["show"]="top"} 373if(swapInfo){var split=splitOnWhitespace(swapInfo);if(split.length>0){for(var i=0;i<split.length;i++){var value=split[i];if(value.indexOf("swap:")===0){swapSpec["swapDelay"]=parseInterval(value.substr(5));}else if(value.indexOf("settle:")===0){swapSpec["settleDelay"]=parseInterval(value.substr(7));}else if(value.indexOf("transition:")===0){swapSpec["transition"]=value.substr(11)==="true";}else if(value.indexOf("ignoreTitle:")===0){swapSpec["ignoreTitle"]=value.substr(12)==="true";}else if(value.indexOf("scroll:")===0){var scrollSpec=value.substr(7);var splitSpec=scrollSpec.split(":");var scrollVal=splitSpec.pop();var selectorVal=splitSpec.length>0?splitSpec.join(":"):null;swapSpec["scroll"]=scrollVal;swapSpec["scrollTarget"]=selectorVal;}else if(value.indexOf("show:")===0){var showSpec=value.substr(5);var splitSpec=showSpec.split(":");var showVal=splitSpec.pop();var selectorVal=splitSpec.length>0?splitSpec.join(":"):null;swapSpec["show"]=showVal;swapSpec["showTarget"]=selectorVal;}else if(value.indexOf("focus-scroll:")===0){var focusScrollVal=value.substr("focus-scroll:".length);swapSpec["focusScroll"]=focusScrollVal=="true";}else if(i==0){swapSpec["swapStyle"]=value;}else{logError('Unknown modifier in hx-swap: '+value);}}}} 374return swapSpec;} 375function usesFormData(elt){return getClosestAttributeValue(elt,"hx-encoding")==="multipart/form-data"||(matches(elt,"form")&&getRawAttribute(elt,'enctype')==="multipart/form-data");} 376function encodeParamsForBody(xhr,elt,filteredParameters){var encodedParameters=null;withExtensions(elt,function(extension){if(encodedParameters==null){encodedParameters=extension.encodeParameters(xhr,filteredParameters,elt);}});if(encodedParameters!=null){return encodedParameters;}else{if(usesFormData(elt)){return makeFormData(filteredParameters);}else{return urlEncode(filteredParameters);}}} 377function makeSettleInfo(target){return{tasks:[],elts:[target]};} 378function updateScrollState(content,swapSpec){var first=content[0];var last=content[content.length-1];if(swapSpec.scroll){var target=null;if(swapSpec.scrollTarget){target=querySelectorExt(first,swapSpec.scrollTarget);} 379if(swapSpec.scroll==="top"&&(first||target)){target=target||first;target.scrollTop=0;} 380if(swapSpec.scroll==="bottom"&&(last||target)){target=target||last;target.scrollTop=target.scrollHeight;}} 381if(swapSpec.show){var target=null;if(swapSpec.showTarget){var targetStr=swapSpec.showTarget;if(swapSpec.showTarget==="window"){targetStr="body";} 382target=querySelectorExt(first,targetStr);} 383if(swapSpec.show==="top"&&(first||target)){target=target||first;target.scrollIntoView({block:'start',behavior:htmx.config.scrollBehavior});} 384if(swapSpec.show==="bottom"&&(last||target)){target=target||last;target.scrollIntoView({block:'end',behavior:htmx.config.scrollBehavior});}}} 385function getValuesForElement(elt,attr,evalAsDefault,values){if(values==null){values={};} 386if(elt==null){return values;} 387var attributeValue=getAttributeValue(elt,attr);if(attributeValue){var str=attributeValue.trim();var evaluateValue=evalAsDefault;if(str==="unset"){return null;} 388if(str.indexOf("javascript:")===0){str=str.substr(11);evaluateValue=true;}else if(str.indexOf("js:")===0){str=str.substr(3);evaluateValue=true;} 389if(str.indexOf('{')!==0){str="{"+str+"}";} 390var varsValues;if(evaluateValue){varsValues=maybeEval(elt,function(){return Function("return ("+str+")")();},{});}else{varsValues=parseJSON(str);} 391for(var key in varsValues){if(varsValues.hasOwnProperty(key)){if(values[key]==null){values[key]=varsValues[key];}}}} 392return getValuesForElement(parentElt(elt),attr,evalAsDefault,values);} 393function maybeEval(elt,toEval,defaultVal){if(htmx.config.allowEval){return toEval();}else{triggerErrorEvent(elt,'htmx:evalDisallowedError');return defaultVal;}} 394function getHXVarsForElement(elt,expressionVars){return getValuesForElement(elt,"hx-vars",true,expressionVars);} 395function getHXValsForElement(elt,expressionVars){return getValuesForElement(elt,"hx-vals",false,expressionVars);} 396function getExpressionVars(elt){return mergeObjects(getHXVarsForElement(elt),getHXValsForElement(elt));} 397function safelySetHeaderValue(xhr,header,headerValue){if(headerValue!==null){try{xhr.setRequestHeader(header,headerValue);}catch(e){xhr.setRequestHeader(header,encodeURIComponent(headerValue));
397xhr.setRequestHeader(header+"-URI-AutoEncoded","true");}}} 398function getPathFromResponse(xhr){if(xhr.responseURL&&typeof(URL)!=="undefined"){try{var url=new URL(xhr.responseURL);return url.pathname+url.search;}catch(e){triggerErrorEvent(getDocument().body,"htmx:badResponseUrl",{url:xhr.responseURL});}}} 399function hasHeader(xhr,regexp){return regexp.test(xhr.getAllResponseHeaders())} 400function ajaxHelper(verb,path,context){verb=verb.toLowerCase();if(context){if(context instanceof Element||isType(context,'String')){return issueAjaxRequest(verb,path,null,null,{targetOverride:resolveTarget(context),returnPromise:true});}else{return issueAjaxRequest(verb,path,resolveTarget(context.source),context.event,{handler:context.handler,headers:context.headers,values:context.values,targetOverride:resolveTarget(context.target),swapOverride:context.swap,select:context.select,returnPromise:true});}}else{return issueAjaxRequest(verb,path,null,null,{returnPromise:true});}} 401function hierarchyForElt(elt){var arr=[];while(elt){arr.push(elt);elt=elt.parentElement;} 402return arr;} 403function verifyPath(elt,path,requestConfig){var sameHost 404var url 405if(typeof URL==="function"){url=new URL(path,document.location.href);var origin=document.location.origin;sameHost=origin===url.origin;}else{url=path 406sameHost=startsWith(path,document.location.origin)} 407if(htmx.config.selfRequestsOnly){if(!sameHost){return false;}} 408return triggerEvent(elt,"htmx:validateUrl",mergeObjects({url:url,sameHost:sameHost},requestConfig));} 409function issueAjaxRequest(verb,path,elt,event,etc,confirmed){var resolve=null;var reject=null;etc=etc!=null?etc:{};if(etc.returnPromise&&typeof Promise!=="undefined"){var promise=new Promise(function(_resolve,_reject){resolve=_resolve;reject=_reject;});} 410if(elt==null){elt=getDocument().body;} 411var responseHandler=etc.handler||handleAjaxResponse;var select=etc.select||null;if(!bodyContains(elt)){maybeCall(resolve);return promise;} 412var target=etc.targetOverride||getTarget(elt);if(target==null||target==DUMMY_ELT){triggerErrorEvent(elt,'htmx:targetError',{target:getAttributeValue(elt,"hx-target")});maybeCall(reject);return promise;} 413var eltData=getInternalData(elt);var submitter=eltData.lastButtonClicked;if(submitter){var buttonPath=getRawAttribute(submitter,"formaction");if(buttonPath!=null){path=buttonPath;} 414var buttonVerb=getRawAttribute(submitter,"formmethod") 415if(buttonVerb!=null){if(buttonVerb.toLowerCase()!=="dialog"){verb=buttonVerb;}}} 416var confirmQuestion=getClosestAttributeValue(elt,"hx-confirm");if(confirmed===undefined){var issueRequest=function(skipConfirmation){return issueAjaxRequest(verb,path,elt,event,etc,!!skipConfirmation);} 417var confirmDetails={target:target,elt:elt,path:path,verb:verb,triggeringEvent:event,etc:etc,issueRequest:issueRequest,question:confirmQuestion};if(triggerEvent(elt,'htmx:confirm',confirmDetails)===false){maybeCall(resolve);return promise;}} 418var syncElt=elt;var syncStrategy=getClosestAttributeValue(elt,"hx-sync");var queueStrategy=null;var abortable=false;if(syncStrategy){var syncStrings=syncStrategy.split(":");var selector=syncStrings[0].trim();if(selector==="this"){syncElt=findThisElement(elt,'hx-sync');}else{syncElt=querySelectorExt(elt,selector);} 419syncStrategy=(syncStrings[1]||'drop').trim();eltData=getInternalData(syncElt);if(syncStrategy==="drop"&&eltData.xhr&&eltData.abortable!==true){maybeCall(resolve);return promise;}else if(syncStrategy==="abort"){if(eltData.xhr){maybeCall(resolve);return promise;}else{abortable=true;}}else if(syncStrategy==="replace"){triggerEvent(syncElt,'htmx:abort');}else if(syncStrategy.indexOf("queue")===0){var queueStrArray=syncStrategy.split(" ");queueStrategy=(queueStrArray[1]||"last").trim();}} 420if(eltData.xhr){if(eltData.abortable){triggerEvent(syncElt,'htmx:abort');}else{if(queueStrategy==null){if(event){var eventData=getInternalData(event);if(eventData&&eventData.triggerSpec&&eventData.triggerSpec.queue){queueStrategy=eventData.triggerSpec.queue;}} 421if(queueStrategy==null){queueStrategy="last";}} 422if(eltData.queuedRequests==null){eltData.queuedRequests=[];} 423if(queueStrategy==="first"&&eltData.queuedRequests.length===0){eltData.queuedRequests.push(function(){issueAjaxRequest(verb,path,elt,event,etc)});}else if(queueStrategy==="all"){eltData.queuedRequests.push(function(){issueAjaxRequest(verb,path,elt,event,etc)});}else if(queueStrategy==="last"){eltData.queuedRequests=[];eltData.queuedRequests.push(function(){issueAjaxRequest(verb,path,elt,event,etc)});} 424maybeCall(resolve);return promise;}} 425var xhr=new XMLHttpRequest();eltData.xhr=xhr;eltData.abortable=abortable;var endRequestLock=function(){eltData.xhr=null;eltData.abortable=false;if(eltData.queuedRequests!=null&&eltData.queuedRequests.length>0){var queuedRequest=eltData.queuedRequests.shift();queuedRequest();}} 426var promptQuestion=getClosestAttributeValue(elt,"hx-prompt");if(promptQuestion){var promptResponse=prompt(promptQuestion);if(promptResponse===null||!triggerEvent(elt,'htmx:prompt',{prompt:promptResponse,target:target})){maybeCall(resolve);endRequestLock();return promise;}} 427if(confirmQuestion&&!confirmed){if(!confirm(confirmQuestion)){maybeCall(resolve);endRequestLock() 428return promise;}} 429var headers=getHeaders(elt,target,promptResponse);if(verb!=='get'&&!usesFormData(elt)){headers['Content-Type']='application/x-www-form-urlencoded';} 430if(etc.headers){headers=mergeObjects(headers,etc.headers);} 431var results=getInputValues(elt,verb);var errors=results.errors;var rawParameters=results.values;if(etc.values){rawParameters=mergeObjects(rawParameters,etc.values);} 432var expressionVars=getExpressionVars(elt);var allParameters=mergeObjects(rawParameters,expressionVars);var filteredParameters=filterValues(allParameters,elt);
432if(htmx.config.getCacheBusterParam&&verb==='get'){filteredParameters['org.htmx.cache-buster']=getRawAttribute(target,"id")||"true";} 433if(path==null||path===""){path=getDocument().location.href;} 434var requestAttrValues=getValuesForElement(elt,'hx-request');var eltIsBoosted=getInternalData(elt).boosted;var useUrlParams=htmx.config.methodsThatUseUrlParams.indexOf(verb)>=0 435var requestConfig={boosted:eltIsBoosted,useUrlParams:useUrlParams,parameters:filteredParameters,unfilteredParameters:allParameters,headers:headers,target:target,verb:verb,errors:errors,withCredentials:etc.credentials||requestAttrValues.credentials||htmx.config.withCredentials,timeout:etc.timeout||requestAttrValues.timeout||htmx.config.timeout,path:path,triggeringEvent:event};if(!triggerEvent(elt,'htmx:configRequest',requestConfig)){maybeCall(resolve);endRequestLock();return promise;} 436path=requestConfig.path;verb=requestConfig.verb;headers=requestConfig.headers;filteredParameters=requestConfig.parameters;errors=requestConfig.errors;useUrlParams=requestConfig.useUrlParams;if(errors&&errors.length>0){triggerEvent(elt,'htmx:validation:halted',requestConfig) 437maybeCall(resolve);endRequestLock();return promise;} 438var splitPath=path.split("#");var pathNoAnchor=splitPath[0];var anchor=splitPath[1];var finalPath=path 439if(useUrlParams){finalPath=pathNoAnchor;var values=Object.keys(filteredParameters).length!==0;if(values){if(finalPath.indexOf("?")<0){finalPath+="?";}else{finalPath+="&";} 440finalPath+=urlEncode(filteredParameters);if(anchor){finalPath+="#"+anchor;}}} 441if(!verifyPath(elt,finalPath,requestConfig)){triggerErrorEvent(elt,'htmx:invalidPath',requestConfig) 442maybeCall(reject);return promise;};xhr.open(verb.toUpperCase(),finalPath,true);xhr.overrideMimeType("text/html");xhr.withCredentials=requestConfig.withCredentials;xhr.timeout=requestConfig.timeout;if(requestAttrValues.noHeaders){}else{for(var header in headers){if(headers.hasOwnProperty(header)){var headerValue=headers[header];safelySetHeaderValue(xhr,header,headerValue);}}} 443var responseInfo={xhr:xhr,target:target,requestConfig:requestConfig,etc:etc,boosted:eltIsBoosted,select:select,pathInfo:{requestPath:path,finalRequestPath:finalPath,anchor:anchor}};xhr.onload=function(){try{var hierarchy=hierarchyForElt(elt);responseInfo.pathInfo.responsePath=getPathFromResponse(xhr);responseHandler(elt,responseInfo);removeRequestIndicators(indicators,disableElts);triggerEvent(elt,'htmx:afterRequest',responseInfo);triggerEvent(elt,'htmx:afterOnLoad',responseInfo);if(!bodyContains(elt)){var secondaryTriggerElt=null;while(hierarchy.length>0&&secondaryTriggerElt==null){var parentEltInHierarchy=hierarchy.shift();if(bodyContains(parentEltInHierarchy)){secondaryTriggerElt=parentEltInHierarchy;}} 444if(secondaryTriggerElt){triggerEvent(secondaryTriggerElt,'htmx:afterRequest',responseInfo);triggerEvent(secondaryTriggerElt,'htmx:afterOnLoad',responseInfo);}} 445maybeCall(resolve);endRequestLock();}catch(e){triggerErrorEvent(elt,'htmx:onLoadError',mergeObjects({error:e},responseInfo));throw e;}} 446xhr.onerror=function(){removeRequestIndicators(indicators,disableElts);triggerErrorEvent(elt,'htmx:afterRequest',responseInfo);triggerErrorEvent(elt,'htmx:sendError',responseInfo);maybeCall(reject);endRequestLock();} 447xhr.onabort=function(){removeRequestIndicators(indicators,disableElts);triggerErrorEvent(elt,'htmx:afterRequest',responseInfo);triggerErrorEvent(elt,'htmx:sendAbort',responseInfo);maybeCall(reject);endRequestLock();} 448xhr.ontimeout=function(){removeRequestIndicators(indicators,disableElts);triggerErrorEvent(elt,'htmx:afterRequest',responseInfo);triggerErrorEvent(elt,'htmx:timeout',responseInfo);maybeCall(reject);endRequestLock();} 449if(!triggerEvent(elt,'htmx:beforeRequest',responseInfo)){maybeCall(resolve);endRequestLock() 450return promise} 451var indicators=addRequestIndicatorClasses(elt);var disableElts=disableElements(elt);forEach(['loadstart','loadend','progress','abort'],function(eventName){forEach([xhr,xhr.upload],function(target){target.addEventListener(eventName,function(event){triggerEvent(elt,"htmx:xhr:"+eventName,{lengthComputable:event.lengthComputable,loaded:event.loaded,total:event.total});})});});triggerEvent(elt,'htmx:beforeSend',responseInfo);var params=useUrlParams?null:encodeParamsForBody(xhr,elt,filteredParameters) 452xhr.send(params);return promise;} 453function determineHistoryUpdates(elt,responseInfo){var xhr=responseInfo.xhr;var pathFromHeaders=null;var typeFromHeaders=null;if(hasHeader(xhr,/HX-Push:/i)){pathFromHeaders=xhr.getResponseHeader("HX-Push");typeFromHeaders="push";}else if(hasHeader(xhr,/HX-Push-Url:/i)){pathFromHeaders=xhr.getResponseHeader("HX-Push-Url");typeFromHeaders="push";}else if(hasHeader(xhr,/HX-Replace-Url:/i)){pathFromHeaders=xhr.getResponseHeader("HX-Replace-Url");typeFromHeaders="replace";} 454if(pathFromHeaders){if(pathFromHeaders==="false"){return{}}else{return{type:typeFromHeaders,path:pathFromHeaders}}} 455var requestPath=responseInfo.pathInfo.finalRequestPath;var responsePath=responseInfo.pathInfo.responsePath;var pushUrl=getClosestAttributeValue(elt,"hx-push-url");var replaceUrl=getClosestAttributeValue(elt,"hx-replace-url");
455var elementIsBoosted=getInternalData(elt).boosted;var saveType=null;var path=null;if(pushUrl){saveType="push";path=pushUrl;}else if(replaceUrl){saveType="replace";path=replaceUrl;}else if(elementIsBoosted){saveType="push";path=responsePath||requestPath;} 456if(path){if(path==="false"){return{};} 457if(path==="true"){path=responsePath||requestPath;} 458if(responseInfo.pathInfo.anchor&&path.indexOf("#")===-1){path=path+"#"+responseInfo.pathInfo.anchor;} 459return{type:saveType,path:path}}else{return{};}} 460function handleAjaxResponse(elt,responseInfo){var xhr=responseInfo.xhr;var target=responseInfo.target;var etc=responseInfo.etc;var requestConfig=responseInfo.requestConfig;var select=responseInfo.select;if(!triggerEvent(elt,'htmx:beforeOnLoad',responseInfo))return;if(hasHeader(xhr,/HX-Trigger:/i)){handleTrigger(xhr,"HX-Trigger",elt);} 461if(hasHeader(xhr,/HX-Location:/i)){saveCurrentPageToHistory();var redirectPath=xhr.getResponseHeader("HX-Location");var swapSpec;if(redirectPath.indexOf("{")===0){swapSpec=parseJSON(redirectPath);redirectPath=swapSpec['path'];delete swapSpec['path'];} 462ajaxHelper('GET',redirectPath,swapSpec).then(function(){pushUrlIntoHistory(redirectPath);});return;} 463var shouldRefresh=hasHeader(xhr,/HX-Refresh:/i)&&"true"===xhr.getResponseHeader("HX-Refresh");if(hasHeader(xhr,/HX-Redirect:/i)){location.href=xhr.getResponseHeader("HX-Redirect");shouldRefresh&&location.reload();return;} 464if(shouldRefresh){location.reload();return;} 465if(hasHeader(xhr,/HX-Retarget:/i)){if(xhr.getResponseHeader("HX-Retarget")==="this"){responseInfo.target=elt;}else{responseInfo.target=querySelectorExt(elt,xhr.getResponseHeader("HX-Retarget"));}} 466var historyUpdate=determineHistoryUpdates(elt,responseInfo);var shouldSwap=xhr.status>=200&&xhr.status<400&&xhr.status!==204;var serverResponse=xhr.response;var isError=xhr.status>=400;var ignoreTitle=htmx.config.ignoreTitle 467var beforeSwapDetails=mergeObjects({shouldSwap:shouldSwap,serverResponse:serverResponse,isError:isError,ignoreTitle:ignoreTitle},responseInfo);if(!triggerEvent(target,'htmx:beforeSwap',beforeSwapDetails))return;target=beforeSwapDetails.target;serverResponse=beforeSwapDetails.serverResponse;isError=beforeSwapDetails.isError;ignoreTitle=beforeSwapDetails.ignoreTitle;responseInfo.target=target;responseInfo.failed=isError;responseInfo.successful=!isError;if(beforeSwapDetails.shouldSwap){if(xhr.status===286){cancelPolling(elt);} 468withExtensions(elt,function(extension){serverResponse=extension.transformResponse(serverResponse,xhr,elt);});if(historyUpdate.type){saveCurrentPageToHistory();} 469var swapOverride=etc.swapOverride;if(hasHeader(xhr,/HX-Reswap:/i)){swapOverride=xhr.getResponseHeader("HX-Reswap");} 470var swapSpec=getSwapSpecification(elt,swapOverride);if(swapSpec.hasOwnProperty('ignoreTitle')){ignoreTitle=swapSpec.ignoreTitle;} 471target.classList.add(htmx.config.swappingClass);var settleResolve=null;var settleReject=null;var doSwap=function(){try{var activeElt=document.activeElement;var selectionInfo={};try{selectionInfo={elt:activeElt,start:activeElt?activeElt.selectionStart:null,end:activeElt?activeElt.selectionEnd:null};}catch(e){} 472var selectOverride;if(select){selectOverride=select;} 473if(hasHeader(xhr,/HX-Reselect:/i)){selectOverride=xhr.getResponseHeader("HX-Reselect");} 474if(historyUpdate.type){triggerEvent(getDocument().body,'htmx:beforeHistoryUpdate',mergeObjects({history:historyUpdate},responseInfo));if(historyUpdate.type==="push"){pushUrlIntoHistory(historyUpdate.path);triggerEvent(getDocument().body,'htmx:pushedIntoHistory',{path:historyUpdate.path});}else{replaceUrlInHistory(historyUpdate.path);triggerEvent(getDocument().body,'htmx:replacedInHistory',{path:historyUpdate.path});}} 475var settleInfo=makeSettleInfo(target);selectAndSwap(swapSpec.swapStyle,target,elt,serverResponse,settleInfo,selectOverride);if(selectionInfo.elt&&!bodyContains(selectionInfo.elt)&&getRawAttribute(selectionInfo.elt,"id")){var newActiveElt=document.getElementById(getRawAttribute(selectionInfo.elt,"id"));var focusOptions={preventScroll:swapSpec.focusScroll!==undefined?!swapSpec.focusScroll:!htmx.config.defaultFocusScroll};if(newActiveElt){if(selectionInfo.start&&newActiveElt.setSelectionRange){try{newActiveElt.setSelectionRange(selectionInfo.start,selectionInfo.end);}catch(e){}} 476newActiveElt.focus(focusOptions);}} 477target.classList.remove(htmx.config.swappingClass);forEach(settleInfo.elts,function(elt){if(elt.classList){elt.classList.add(htmx.config.settlingClass);} 478triggerEvent(elt,'htmx:afterSwap',responseInfo);});if(hasHeader(xhr,/HX-Trigger-After-Swap:/i)){var finalElt=elt;if(!bodyContains(elt)){finalElt=getDocument().body;} 479handleTrigger(xhr,"HX-Trigger-After-Swap",finalElt);} 480var doSettle=function(){forEach(settleInfo.tasks,function(task){task.call();});forEach(settleInfo.elts,function(elt){if(elt.classList){elt.classList.remove(htmx.config.settlingClass);} 481triggerEvent(elt,'htmx:afterSettle',responseInfo);});
481if(responseInfo.pathInfo.anchor){var anchorTarget=getDocument().getElementById(responseInfo.pathInfo.anchor);if(anchorTarget){anchorTarget.scrollIntoView({block:'start',behavior:"auto"});}} 482if(settleInfo.title&&!ignoreTitle){var titleElt=find("title");if(titleElt){titleElt.innerHTML=settleInfo.title;}else{window.document.title=settleInfo.title;}} 483updateScrollState(settleInfo.elts,swapSpec);if(hasHeader(xhr,/HX-Trigger-After-Settle:/i)){var finalElt=elt;if(!bodyContains(elt)){finalElt=getDocument().body;} 484handleTrigger(xhr,"HX-Trigger-After-Settle",finalElt);} 485maybeCall(settleResolve);} 486if(swapSpec.settleDelay>0){setTimeout(doSettle,swapSpec.settleDelay)}else{doSettle();}}catch(e){triggerErrorEvent(elt,'htmx:swapError',responseInfo);maybeCall(settleReject);throw e;}};var shouldTransition=htmx.config.globalViewTransitions 487if(swapSpec.hasOwnProperty('transition')){shouldTransition=swapSpec.transition;} 488if(shouldTransition&&triggerEvent(elt,'htmx:beforeTransition',responseInfo)&&typeof Promise!=="undefined"&&document.startViewTransition){var settlePromise=new Promise(function(_resolve,_reject){settleResolve=_resolve;settleReject=_reject;});var innerDoSwap=doSwap;doSwap=function(){document.startViewTransition(function(){innerDoSwap();return settlePromise;});}} 489if(swapSpec.swapDelay>0){setTimeout(doSwap,swapSpec.swapDelay)}else{doSwap();}} 490if(isError){triggerErrorEvent(elt,'htmx:responseError',mergeObjects({error:"Response Status Error Code "+xhr.status+" from "+responseInfo.pathInfo.requestPath},responseInfo));}} 491var extensions={};function extensionBase(){return{init:function(api){return null;},onEvent:function(name,evt){return true;},transformResponse:function(text,xhr,elt){return text;},isInlineSwap:function(swapStyle){return false;},handleSwap:function(swapStyle,target,fragment,settleInfo){return false;},encodeParameters:function(xhr,parameters,elt){return null;}}} 492function defineExtension(name,extension){if(extension.init){extension.init(internalAPI)} 493extensions[name]=mergeObjects(extensionBase(),extension);} 494function removeExtension(name){delete extensions[name];} 495function getExtensions(elt,extensionsToReturn,extensionsToIgnore){if(elt==undefined){return extensionsToReturn;} 496if(extensionsToReturn==undefined){extensionsToReturn=[];} 497if(extensionsToIgnore==undefined){extensionsToIgnore=[];} 498var extensionsForElement=getAttributeValue(elt,"hx-ext");if(extensionsForElement){forEach(extensionsForElement.split(","),function(extensionName){extensionName=extensionName.replace(/ /g,'');if(extensionName.slice(0,7)=="ignore:"){extensionsToIgnore.push(extensionName.slice(7));return;} 499if(extensionsToIgnore.indexOf(extensionName)<0){var extension=extensions[extensionName];if(extension&&extensionsToReturn.indexOf(extension)<0){extensionsToReturn.push(extension);}}});} 500return getExtensions(parentElt(elt),extensionsToReturn,extensionsToIgnore);} 501var isReady=false 502getDocument().addEventListener('DOMContentLoaded',function(){isReady=true})
503function ready(fn){if(isReady||getDocument().readyState==='complete'){fn();}else{getDocument().addEventListener('DOMContentLoaded',fn);}} 504function insertIndicatorStyles(){if(htmx.config.includeIndicatorStyles!==false){getDocument().head.insertAdjacentHTML("beforeend","<style>\ 505 ."+htmx.config.indicatorClass+"{opacity:0}\ 506 ."+htmx.config.requestClass+" ."+htmx.config.indicatorClass+"{opacity:1; transition: opacity 200ms ease-in;}\ 507 ."+htmx.config.requestClass+"."+htmx.config.indicatorClass+"{opacity:1; transition: opacity 200ms ease-in;}\ 508 </style>");}} 509function getMetaConfig(){var element=getDocument().querySelector('meta[name="htmx-config"]');if(element){return parseJSON(element.content);}else{return null;}} 510function mergeMetaConfig(){var metaConfig=getMetaConfig();if(metaConfig){htmx.config=mergeObjects(htmx.config,metaConfig)}} 511ready(function(){mergeMetaConfig();insertIndicatorStyles();var body=getDocument().body;processNode(body);var restoredElts=getDocument().querySelectorAll("[hx-trigger='restored'],[data-hx-trigger='restored']");body.addEventListener("htmx:abort",function(evt){var target=evt.target;var internalData=getInternalData(target);if(internalData&&internalData.xhr){internalData.xhr.abort();}});const originalPopstate=window.onpopstate?window.onpopstate.bind(window):null;window.onpopstate=function(event){if(event.state&&event.state.htmx){restoreHistory();forEach(restoredElts,function(elt){triggerEvent(elt,'htmx:restored',{'document':getDocument(),'triggerEvent':triggerEvent});});}else{if(originalPopstate){originalPopstate(event);}}};setTimeout(function(){triggerEvent(body,'htmx:load',{});body=null;},0);}) 512return htmx;})()}));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.