From bc27ffab4eef8a379252167dbccc8f21afa0abf0 Mon Sep 17 00:00:00 2001 From: specCon18 Date: Mon, 7 Aug 2023 18:04:19 -0400 Subject: [PATCH] added in several workflow QOL features and updated flake --- assets/htmx.min.js | 3162 ++++++++++++++++++++++++++++++++++++++- assets/main.css | 17 +- flake.nix | 9 +- package.json | 10 +- pnpm-lock.yaml | 793 ++++++---- src/handlers.rs | 4 +- src/styles/tailwind.css | 2 +- src/templates.rs | 12 +- tailwind.config.cjs | 12 +- templates/base.html | 11 + templates/head.html | 0 templates/root.html | 40 +- test_data/cards.json | 2 +- test_data/test.json | 2 +- 14 files changed, 3764 insertions(+), 312 deletions(-) create mode 100644 templates/base.html create mode 100644 templates/head.html diff --git a/assets/htmx.min.js b/assets/htmx.min.js index d22010f..32786f8 100644 --- a/assets/htmx.min.js +++ b/assets/htmx.min.js @@ -1 +1,3161 @@ -(function(e,t){if(typeof define==="function"&&define.amd){define([],t)}else if(typeof module==="object"&&module.exports){module.exports=t()}else{e.htmx=e.htmx||t()}})(typeof self!=="undefined"?self:this,function(){return function(){"use strict";var G={onLoad:t,process:Nt,on:le,off:ue,trigger:oe,ajax:xr,find:b,findAll:f,closest:d,values:function(e,t){var r=er(e,t||"post");return r.values},remove:U,addClass:B,removeClass:n,toggleClass:V,takeClass:j,defineExtension:Cr,removeExtension:Rr,logAll:X,logNone:F,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,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"]},parseInterval:v,_:e,createEventSource:function(e){return new EventSource(e,{withCredentials:true})},createWebSocket:function(e){var t=new WebSocket(e,[]);t.binaryType=G.config.wsBinaryType;return t},version:"1.9.4"};var C={addTriggerHandler:bt,bodyContains:re,canAccessLocalStorage:M,findThisElement:he,filterValues:ar,hasAttribute:o,getAttributeValue:Z,getClosestAttributeValue:Y,getClosestMatch:c,getExpressionVars:gr,getHeaders:ir,getInputValues:er,getInternalData:ee,getSwapSpecification:sr,getTriggerSpecs:Ge,getTarget:de,makeFragment:l,mergeObjects:ne,makeSettleInfo:S,oobSwap:me,querySelectorExt:ie,selectAndSwap:De,settleImmediately:Wt,shouldCancel:Qe,triggerEvent:oe,triggerErrorEvent:ae,withExtensions:w};var R=["get","post","put","delete","patch"];var O=R.map(function(e){return"[hx-"+e+"], [data-hx-"+e+"]"}).join(", ");function v(e){if(e==undefined){return undefined}if(e.slice(-2)=="ms"){return parseFloat(e.slice(0,-2))||undefined}if(e.slice(-1)=="s"){return parseFloat(e.slice(0,-1))*1e3||undefined}if(e.slice(-1)=="m"){return parseFloat(e.slice(0,-1))*1e3*60||undefined}return parseFloat(e)||undefined}function J(e,t){return e.getAttribute&&e.getAttribute(t)}function o(e,t){return e.hasAttribute&&(e.hasAttribute(t)||e.hasAttribute("data-"+t))}function Z(e,t){return J(e,t)||J(e,"data-"+t)}function u(e){return e.parentElement}function K(){return document}function c(e,t){while(e&&!t(e)){e=u(e)}return e?e:null}function T(e,t,r){var n=Z(t,r);var i=Z(t,"hx-disinherit");if(e!==t&&i&&(i==="*"||i.split(" ").indexOf(r)>=0)){return"unset"}else{return n}}function Y(t,r){var n=null;c(t,function(e){return n=T(t,e,r)});if(n!=="unset"){return n}}function h(e,t){var r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector;return r&&r.call(e,t)}function q(e){var t=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i;var r=t.exec(e);if(r){return r[1].toLowerCase()}else{return""}}function i(e,t){var r=new DOMParser;var n=r.parseFromString(e,"text/html");var i=n.body;while(t>0){t--;i=i.firstChild}if(i==null){i=K().createDocumentFragment()}return i}function H(e){return e.match(/",0);return r.querySelector("template").content}else{var n=q(e);switch(n){case"thead":case"tbody":case"tfoot":case"colgroup":case"caption":return i(""+e+"
",1);case"col":return i(""+e+"
",2);case"tr":return i(""+e+"
",2);case"td":case"th":return i(""+e+"
",3);case"script":return i("
"+e+"
",1);default:return i(e,0)}}}function Q(e){if(e){e()}}function L(e,t){return Object.prototype.toString.call(e)==="[object "+t+"]"}function A(e){return L(e,"Function")}function N(e){return L(e,"Object")}function ee(e){var t="htmx-internal-data";var r=e[t];if(!r){r=e[t]={}}return r}function I(e){var t=[];if(e){for(var r=0;r=0}function re(e){if(e.getRootNode&&e.getRootNode()instanceof window.ShadowRoot){return K().body.contains(e.getRootNode().host)}else{return K().body.contains(e)}}function P(e){return e.trim().split(/\s+/)}function ne(e,t){for(var r in t){if(t.hasOwnProperty(r)){e[r]=t[r]}}return e}function y(e){try{return JSON.parse(e)}catch(e){x(e);return null}}function M(){var e="htmx:localStorageTest";try{localStorage.setItem(e,e);localStorage.removeItem(e);return true}catch(e){return false}}function D(t){try{var e=new URL(t);if(e){t=e.pathname+e.search}if(!t.match("^/$")){t=t.replace(/\/+$/,"")}return t}catch(e){return t}}function e(e){return hr(K().body,function(){return eval(e)})}function t(t){var e=G.on("htmx:load",function(e){t(e.detail.elt)});return e}function X(){G.logger=function(e,t,r){if(console){console.log(t,e,r)}}}function F(){G.logger=null}function b(e,t){if(t){return e.querySelector(t)}else{return b(K(),e)}}function f(e,t){if(t){return e.querySelectorAll(t)}else{return f(K(),e)}}function U(e,t){e=s(e);if(t){setTimeout(function(){U(e);e=null},t)}else{e.parentElement.removeChild(e)}}function B(e,t,r){e=s(e);if(r){setTimeout(function(){B(e,t);e=null},r)}else{e.classList&&e.classList.add(t)}}function n(e,t,r){e=s(e);if(r){setTimeout(function(){n(e,t);e=null},r)}else{if(e.classList){e.classList.remove(t);if(e.classList.length===0){e.removeAttribute("class")}}}}function V(e,t){e=s(e);e.classList.toggle(t)}function j(e,t){e=s(e);te(e.parentElement.children,function(e){n(e,t)});B(e,t)}function d(e,t){e=s(e);if(e.closest){return e.closest(t)}else{do{if(e==null||h(e,t)){return e}}while(e=e&&u(e));return null}}function r(e){var t=e.trim();if(t.startsWith("<")&&t.endsWith("/>")){return t.substring(1,t.length-2)}else{return t}}function W(e,t){if(t.indexOf("closest ")===0){return[d(e,r(t.substr(8)))]}else if(t.indexOf("find ")===0){return[b(e,r(t.substr(5)))]}else if(t.indexOf("next ")===0){return[_(e,r(t.substr(5)))]}else if(t.indexOf("previous ")===0){return[z(e,r(t.substr(9)))]}else if(t==="document"){return[document]}else if(t==="window"){return[window]}else{return K().querySelectorAll(r(t))}}var _=function(e,t){var r=K().querySelectorAll(t);for(var n=0;n=0;n--){var i=r[n];if(i.compareDocumentPosition(e)===Node.DOCUMENT_POSITION_FOLLOWING){return i}}};function ie(e,t){if(t){return W(e,t)[0]}else{return W(K().body,e)[0]}}function s(e){if(L(e,"String")){return b(e)}else{return e}}function $(e,t,r){if(A(t)){return{target:K().body,event:e,listener:t}}else{return{target:s(e),event:t,listener:r}}}function le(t,r,n){Tr(function(){var e=$(t,r,n);e.target.addEventListener(e.event,e.listener)});var e=A(r);return e?r:n}function ue(t,r,n){Tr(function(){var e=$(t,r,n);e.target.removeEventListener(e.event,e.listener)});return A(r)?r:n}var fe=K().createElement("output");function ce(e,t){var r=Y(e,t);if(r){if(r==="this"){return[he(e,t)]}else{var n=W(e,r);if(n.length===0){x('The selector "'+r+'" on '+t+" returned no matches!");return[fe]}else{return n}}}}function he(e,t){return c(e,function(e){return Z(e,t)!=null})}function de(e){var t=Y(e,"hx-target");if(t){if(t==="this"){return he(e,"hx-target")}else{return ie(e,t)}}else{var r=ee(e);if(r.boosted){return K().body}else{return e}}}function ve(e){var t=G.config.attributesToSettle;for(var r=0;r0){o=e.substr(0,e.indexOf(":"));t=e.substr(e.indexOf(":")+1,e.length)}else{o=e}var r=K().querySelectorAll(t);if(r){te(r,function(e){var t;var r=i.cloneNode(true);t=K().createDocumentFragment();t.appendChild(r);if(!pe(o,e)){t=r}var n={shouldSwap:true,target:e,fragment:t};if(!oe(e,"htmx:oobBeforeSwap",n))return;e=n.target;if(n["shouldSwap"]){Pe(o,e,e,t,a)}te(a.elts,function(e){oe(e,"htmx:oobAfterSwap",n)})});i.parentNode.removeChild(i)}else{i.parentNode.removeChild(i);ae(K().body,"htmx:oobErrorNoTarget",{content:i})}return e}function xe(e,t,r){var n=Y(e,"hx-select-oob");if(n){var i=n.split(",");for(let e=0;e0){var r=t.replace("'","\\'");var n=e.tagName.replace(":","\\:");var i=o.querySelector(n+"[id='"+r+"']");if(i&&i!==o){var a=e.cloneNode();ge(e,i);s.tasks.push(function(){ge(e,a)})}}})}function we(e){return function(){n(e,G.config.addedClass);Nt(e);St(e);Se(e);oe(e,"htmx:load")}}function Se(e){var t="[autofocus]";var r=h(e,t)?e:e.querySelector(t);if(r!=null){r.focus()}}function a(e,t,r,n){be(e,r,n);while(r.childNodes.length>0){var i=r.firstChild;B(i,G.config.addedClass);e.insertBefore(i,t);if(i.nodeType!==Node.TEXT_NODE&&i.nodeType!==Node.COMMENT_NODE){n.tasks.push(we(i))}}}function Ee(e,t){var r=0;while(r-1){var t=e.replace(/]*>|>)([\s\S]*?)<\/svg>/gim,"");var r=t.match(/]*>|>)([\s\S]*?)<\/title>/im);if(r){return r[2]}}}function De(e,t,r,n,i,a){i.title=Me(n);var o=l(n);if(o){xe(r,o,i);o=ke(r,o,a);ye(o);return Pe(e,r,t,o,i)}}function Xe(e,t,r){var n=e.getResponseHeader(t);if(n.indexOf("{")===0){var i=y(n);for(var a in i){if(i.hasOwnProperty(a)){var o=i[a];if(!N(o)){o={value:o}}oe(r,a,o)}}}else{var s=n.split(",");for(var l=0;l0){var o=t[0];if(o==="]"){n--;if(n===0){if(a===null){i=i+"true"}t.shift();i+=")})";try{var s=hr(e,function(){return Function(i)()},function(){return true});s.source=i;return s}catch(e){ae(K().body,"htmx:syntax:error",{error:e,source:i});return null}}}else if(o==="["){n++}if(_e(o,a,r)){i+="(("+r+"."+o+") ? ("+r+"."+o+") : (window."+o+"))"}else{i=i+o}a=t.shift()}}}function m(e,t){var r="";while(e.length>0&&!e[0].match(t)){r+=e.shift()}return r}var $e="input, textarea, select";function Ge(e){var t=Z(e,"hx-trigger");var r=[];if(t){var n=We(t);do{m(n,je);var i=n.length;var a=m(n,/[,\[\s]/);if(a!==""){if(a==="every"){var o={trigger:"every"};m(n,je);o.pollInterval=v(m(n,/[,\[\s]/));m(n,je);var s=ze(e,n,"event");if(s){o.eventFilter=s}r.push(o)}else if(a.indexOf("sse:")===0){r.push({trigger:"sse",sseEvent:a.substr(4)})}else{var l={trigger:a};var s=ze(e,n,"event");if(s){l.eventFilter=s}while(n.length>0&&n[0]!==","){m(n,je);var u=n.shift();if(u==="changed"){l.changed=true}else if(u==="once"){l.once=true}else if(u==="consume"){l.consume=true}else if(u==="delay"&&n[0]===":"){n.shift();l.delay=v(m(n,p))}else if(u==="from"&&n[0]===":"){n.shift();var f=m(n,p);if(f==="closest"||f==="find"||f==="next"||f==="previous"){n.shift();f+=" "+m(n,p)}l.from=f}else if(u==="target"&&n[0]===":"){n.shift();l.target=m(n,p)}else if(u==="throttle"&&n[0]===":"){n.shift();l.throttle=v(m(n,p))}else if(u==="queue"&&n[0]===":"){n.shift();l.queue=m(n,p)}else if((u==="root"||u==="threshold")&&n[0]===":"){n.shift();l[u]=m(n,p)}else{ae(e,"htmx:syntax:error",{token:n.shift()})}}r.push(l)}}if(n.length===i){ae(e,"htmx:syntax:error",{token:n.shift()})}m(n,je)}while(n[0]===","&&n.shift())}if(r.length>0){return r}else if(h(e,"form")){return[{trigger:"submit"}]}else if(h(e,'input[type="button"], input[type="submit"]')){return[{trigger:"click"}]}else if(h(e,$e)){return[{trigger:"change"}]}else{return[{trigger:"click"}]}}function Je(e){ee(e).cancelled=true}function Ze(e,t,r){var n=ee(e);n.timeout=setTimeout(function(){if(re(e)&&n.cancelled!==true){if(!tt(r,e,kt("hx:poll:trigger",{triggerSpec:r,target:e}))){t(e)}Ze(e,t,r)}},r.pollInterval)}function Ke(e){return location.hostname===e.hostname&&J(e,"href")&&J(e,"href").indexOf("#")!==0}function Ye(t,r,e){if(t.tagName==="A"&&Ke(t)&&(t.target===""||t.target==="_self")||t.tagName==="FORM"){r.boosted=true;var n,i;if(t.tagName==="A"){n="get";i=t.href}else{var a=J(t,"method");n=a?a.toLowerCase():"get";if(n==="get"){}i=J(t,"action")}e.forEach(function(e){rt(t,function(e,t){if(d(e,G.config.disableSelector)){g(e);return}se(n,i,e,t)},r,e,true)})}}function Qe(e,t){if(e.type==="submit"||e.type==="click"){if(t.tagName==="FORM"){return true}if(h(t,'input[type="submit"], button')&&d(t,"form")!==null){return true}if(t.tagName==="A"&&t.href&&(t.getAttribute("href")==="#"||t.getAttribute("href").indexOf("#")!==0)){return true}}return false}function et(e,t){return ee(e).boosted&&e.tagName==="A"&&t.type==="click"&&(t.ctrlKey||t.metaKey)}function tt(e,t,r){var n=e.eventFilter;if(n){try{return n.call(t,r)!==true}catch(e){ae(K().body,"htmx:eventFilter:error",{error:e,source:n.source});return true}}return false}function rt(a,o,e,s,l){var u=ee(a);var t;if(s.from){t=W(a,s.from)}else{t=[a]}if(s.changed){t.forEach(function(e){var t=ee(e);t.lastValue=e.value})}te(t,function(n){var i=function(e){if(!re(a)){n.removeEventListener(s.trigger,i);return}if(et(a,e)){return}if(l||Qe(e,a)){e.preventDefault()}if(tt(s,a,e)){return}var t=ee(e);t.triggerSpec=s;if(t.handledFor==null){t.handledFor=[]}if(t.handledFor.indexOf(a)<0){t.handledFor.push(a);if(s.consume){e.stopPropagation()}if(s.target&&e.target){if(!h(e.target,s.target)){return}}if(s.once){if(u.triggeredOnce){return}else{u.triggeredOnce=true}}if(s.changed){var r=ee(n);if(r.lastValue===n.value){return}r.lastValue=n.value}if(u.delayed){clearTimeout(u.delayed)}if(u.throttle){return}if(s.throttle){if(!u.throttle){o(a,e);u.throttle=setTimeout(function(){u.throttle=null},s.throttle)}}else if(s.delay){u.delayed=setTimeout(function(){o(a,e)},s.delay)}else{oe(a,"htmx:trigger");o(a,e)}}};if(e.listenerInfos==null){e.listenerInfos=[]}e.listenerInfos.push({trigger:s.trigger,listener:i,on:n});n.addEventListener(s.trigger,i)})}var nt=false;var it=null;function at(){if(!it){it=function(){nt=true};window.addEventListener("scroll",it);setInterval(function(){if(nt){nt=false;te(K().querySelectorAll("[hx-trigger='revealed'],[data-hx-trigger='revealed']"),function(e){ot(e)})}},200)}}function ot(t){if(!o(t,"data-hx-revealed")&&k(t)){t.setAttribute("data-hx-revealed","true");var e=ee(t);if(e.initHash){oe(t,"revealed")}else{t.addEventListener("htmx:afterProcessNode",function(e){oe(t,"revealed")},{once:true})}}}function st(e,t,r){var n=P(r);for(var i=0;i=0){var t=ct(n);setTimeout(function(){lt(s,r,n+1)},t)}};t.onopen=function(e){n=0};ee(s).webSocket=t;t.addEventListener("message",function(e){if(ut(s)){return}var t=e.data;w(s,function(e){t=e.transformResponse(t,null,s)});var r=S(s);var n=l(t);var i=I(n.children);for(var a=0;a0){oe(u,"htmx:validation:halted",i);return}t.send(JSON.stringify(l));if(Qe(e,u)){e.preventDefault()}})}else{ae(u,"htmx:noWebSocketSourceError")}}function ct(e){var t=G.config.wsReconnectDelay;if(typeof t==="function"){return t(e)}if(t==="full-jitter"){var r=Math.min(e,6);var n=1e3*Math.pow(2,r);return n*Math.random()}x('htmx.config.wsReconnectDelay must either be a function or the string "full-jitter"')}function ht(e,t,r){var n=P(r);for(var i=0;i0){var o=n.shift();var s=o.match(/^\s*([a-zA-Z:\-]+:)(.*)/);if(a===0&&s){o.split(":");i=s[1].slice(0,-1);r[i]=s[2]}else{r[i]+=o}a+=Tt(o)}for(var l in r){qt(e,l,r[l])}}}function Lt(t){Re(t);for(var e=0;eG.config.historyCacheSize){i.shift()}while(i.length>0){try{localStorage.setItem("htmx-history-cache",JSON.stringify(i));break}catch(e){ae(K().body,"htmx:historyCacheError",{cause:e,cache:i});i.shift()}}}function Ft(e){if(!M()){return null}e=D(e);var t=y(localStorage.getItem("htmx-history-cache"))||[];for(var r=0;r=200&&this.status<400){oe(K().body,"htmx:historyCacheMissLoad",o);var e=l(this.response);e=e.querySelector("[hx-history-elt],[data-hx-history-elt]")||e;var t=Dt();var r=S(t);var n=Me(this.response);if(n){var i=b("title");if(i){i.innerHTML=n}else{window.document.title=n}}Ie(t,e,r);Wt(r.tasks);Mt=a;oe(K().body,"htmx:historyRestore",{path:a,cacheMiss:true,serverResponse:this.response})}else{ae(K().body,"htmx:historyCacheMissLoadError",o)}};e.send()}function zt(e){Bt();e=e||location.pathname+location.search;var t=Ft(e);if(t){var r=l(t.content);var n=Dt();var i=S(n);Ie(n,r,i);Wt(i.tasks);document.title=t.title;setTimeout(function(){window.scrollTo(0,t.scroll)},0);Mt=e;oe(K().body,"htmx:historyRestore",{path:e,item:t})}else{if(G.config.refreshOnHistoryMiss){window.location.reload(true)}else{_t(e)}}}function $t(e){var t=ce(e,"hx-indicator");if(t==null){t=[e]}te(t,function(e){var t=ee(e);t.requestCount=(t.requestCount||0)+1;e.classList["add"].call(e.classList,G.config.requestClass)});return t}function Gt(e){te(e,function(e){var t=ee(e);t.requestCount=(t.requestCount||0)-1;if(t.requestCount===0){e.classList["remove"].call(e.classList,G.config.requestClass)}})}function Jt(e,t){for(var r=0;r=0}function sr(e,t){var r=t?t:Y(e,"hx-swap");var n={swapStyle:ee(e).boosted?"innerHTML":G.config.defaultSwapStyle,swapDelay:G.config.defaultSwapDelay,settleDelay:G.config.defaultSettleDelay};if(ee(e).boosted&&!or(e)){n["show"]="top"}if(r){var i=P(r);if(i.length>0){n["swapStyle"]=i[0];for(var a=1;a0?l.join(":"):null;n["scroll"]=u;n["scrollTarget"]=f}if(o.indexOf("show:")===0){var c=o.substr(5);var l=c.split(":");var h=l.pop();var f=l.length>0?l.join(":"):null;n["show"]=h;n["showTarget"]=f}if(o.indexOf("focus-scroll:")===0){var d=o.substr("focus-scroll:".length);n["focusScroll"]=d=="true"}}}}return n}function lr(e){return Y(e,"hx-encoding")==="multipart/form-data"||h(e,"form")&&J(e,"enctype")==="multipart/form-data"}function ur(t,r,n){var i=null;w(r,function(e){if(i==null){i=e.encodeParameters(t,n,r)}});if(i!=null){return i}else{if(lr(r)){return nr(n)}else{return rr(n)}}}function S(e){return{tasks:[],elts:[e]}}function fr(e,t){var r=e[0];var n=e[e.length-1];if(t.scroll){var i=null;if(t.scrollTarget){i=ie(r,t.scrollTarget)}if(t.scroll==="top"&&(r||i)){i=i||r;i.scrollTop=0}if(t.scroll==="bottom"&&(n||i)){i=i||n;i.scrollTop=i.scrollHeight}}if(t.show){var i=null;if(t.showTarget){var a=t.showTarget;if(t.showTarget==="window"){a="body"}i=ie(r,a)}if(t.show==="top"&&(r||i)){i=i||r;i.scrollIntoView({block:"start",behavior:G.config.scrollBehavior})}if(t.show==="bottom"&&(n||i)){i=i||n;i.scrollIntoView({block:"end",behavior:G.config.scrollBehavior})}}}function cr(e,t,r,n){if(n==null){n={}}if(e==null){return n}var i=Z(e,t);if(i){var a=i.trim();var o=r;if(a==="unset"){return null}if(a.indexOf("javascript:")===0){a=a.substr(11);o=true}else if(a.indexOf("js:")===0){a=a.substr(3);o=true}if(a.indexOf("{")!==0){a="{"+a+"}"}var s;if(o){s=hr(e,function(){return Function("return ("+a+")")()},{})}else{s=y(a)}for(var l in s){if(s.hasOwnProperty(l)){if(n[l]==null){n[l]=s[l]}}}}return cr(u(e),t,r,n)}function hr(e,t,r){if(G.config.allowEval){return t()}else{ae(e,"htmx:evalDisallowedError");return r}}function dr(e,t){return cr(e,"hx-vars",true,t)}function vr(e,t){return cr(e,"hx-vals",false,t)}function gr(e){return ne(dr(e),vr(e))}function pr(t,r,n){if(n!==null){try{t.setRequestHeader(r,n)}catch(e){t.setRequestHeader(r,encodeURIComponent(n));t.setRequestHeader(r+"-URI-AutoEncoded","true")}}}function mr(t){if(t.responseURL&&typeof URL!=="undefined"){try{var e=new URL(t.responseURL);return e.pathname+e.search}catch(e){ae(K().body,"htmx:badResponseUrl",{url:t.responseURL})}}}function E(e,t){return e.getAllResponseHeaders().match(t)}function xr(e,t,r){e=e.toLowerCase();if(r){if(r instanceof Element||L(r,"String")){return se(e,t,null,null,{targetOverride:s(r),returnPromise:true})}else{return se(e,t,s(r.source),r.event,{handler:r.handler,headers:r.headers,values:r.values,targetOverride:s(r.target),swapOverride:r.swap,returnPromise:true})}}else{return se(e,t,null,null,{returnPromise:true})}}function yr(e){var t=[];while(e){t.push(e);e=e.parentElement}return t}function se(e,t,n,r,i,M){var a=null;var o=null;i=i!=null?i:{};if(i.returnPromise&&typeof Promise!=="undefined"){var s=new Promise(function(e,t){a=e;o=t})}if(n==null){n=K().body}var D=i.handler||wr;if(!re(n)){return}var l=i.targetOverride||de(n);if(l==null||l==fe){ae(n,"htmx:targetError",{target:Z(n,"hx-target")});return}if(!M){var X=function(){return se(e,t,n,r,i,true)};var F={target:l,elt:n,path:t,verb:e,triggeringEvent:r,etc:i,issueRequest:X};if(oe(n,"htmx:confirm",F)===false){return}}var u=n;var f=ee(n);var c=Y(n,"hx-sync");var h=null;var d=false;if(c){var v=c.split(":");var g=v[0].trim();if(g==="this"){u=he(n,"hx-sync")}else{u=ie(n,g)}c=(v[1]||"drop").trim();f=ee(u);if(c==="drop"&&f.xhr&&f.abortable!==true){return}else if(c==="abort"){if(f.xhr){return}else{d=true}}else if(c==="replace"){oe(u,"htmx:abort")}else if(c.indexOf("queue")===0){var U=c.split(" ");h=(U[1]||"last").trim()}}if(f.xhr){if(f.abortable){oe(u,"htmx:abort")}else{if(h==null){if(r){var p=ee(r);if(p&&p.triggerSpec&&p.triggerSpec.queue){h=p.triggerSpec.queue}}if(h==null){h="last"}}if(f.queuedRequests==null){f.queuedRequests=[]}if(h==="first"&&f.queuedRequests.length===0){f.queuedRequests.push(function(){se(e,t,n,r,i)})}else if(h==="all"){f.queuedRequests.push(function(){se(e,t,n,r,i)})}else if(h==="last"){f.queuedRequests=[];f.queuedRequests.push(function(){se(e,t,n,r,i)})}return}}var m=new XMLHttpRequest;f.xhr=m;f.abortable=d;var x=function(){f.xhr=null;f.abortable=false;if(f.queuedRequests!=null&&f.queuedRequests.length>0){var e=f.queuedRequests.shift();e()}};var y=Y(n,"hx-prompt");if(y){var b=prompt(y);if(b===null||!oe(n,"htmx:prompt",{prompt:b,target:l})){Q(a);x();return s}}var w=Y(n,"hx-confirm");if(w){if(!confirm(w)){Q(a);x();return s}}var S=ir(n,l,b);if(i.headers){S=ne(S,i.headers)}var E=er(n,e);var C=E.errors;var R=E.values;if(i.values){R=ne(R,i.values)}var B=gr(n);var O=ne(R,B);var T=ar(O,n);if(e!=="get"&&!lr(n)){S["Content-Type"]="application/x-www-form-urlencoded"}if(G.config.getCacheBusterParam&&e==="get"){T["org.htmx.cache-buster"]=J(l,"id")||"true"}if(t==null||t===""){t=K().location.href}var q=cr(n,"hx-request");var V=ee(n).boosted;var H=G.config.methodsThatUseUrlParams.indexOf(e)>=0;var L={boosted:V,useUrlParams:H,parameters:T,unfilteredParameters:O,headers:S,target:l,verb:e,errors:C,withCredentials:i.credentials||q.credentials||G.config.withCredentials,timeout:i.timeout||q.timeout||G.config.timeout,path:t,triggeringEvent:r};if(!oe(n,"htmx:configRequest",L)){Q(a);x();return s}t=L.path;e=L.verb;S=L.headers;T=L.parameters;C=L.errors;H=L.useUrlParams;if(C&&C.length>0){oe(n,"htmx:validation:halted",L);Q(a);x();return s}var j=t.split("#");var W=j[0];var A=j[1];var N=t;if(H){N=W;var _=Object.keys(T).length!==0;if(_){if(N.indexOf("?")<0){N+="?"}else{N+="&"}N+=rr(T);if(A){N+="#"+A}}}m.open(e.toUpperCase(),N,true);m.overrideMimeType("text/html");m.withCredentials=L.withCredentials;m.timeout=L.timeout;if(q.noHeaders){}else{for(var I in S){if(S.hasOwnProperty(I)){var z=S[I];pr(m,I,z)}}}var k={xhr:m,target:l,requestConfig:L,etc:i,boosted:V,pathInfo:{requestPath:t,finalRequestPath:N,anchor:A}};m.onload=function(){try{var e=yr(n);k.pathInfo.responsePath=mr(m);D(n,k);Gt(P);oe(n,"htmx:afterRequest",k);oe(n,"htmx:afterOnLoad",k);if(!re(n)){var t=null;while(e.length>0&&t==null){var r=e.shift();if(re(r)){t=r}}if(t){oe(t,"htmx:afterRequest",k);oe(t,"htmx:afterOnLoad",k)}}Q(a);x()}catch(e){ae(n,"htmx:onLoadError",ne({error:e},k));throw e}};m.onerror=function(){Gt(P);ae(n,"htmx:afterRequest",k);ae(n,"htmx:sendError",k);Q(o);x()};m.onabort=function(){Gt(P);ae(n,"htmx:afterRequest",k);ae(n,"htmx:sendAbort",k);Q(o);x()};m.ontimeout=function(){Gt(P);ae(n,"htmx:afterRequest",k);ae(n,"htmx:timeout",k);Q(o);x()};if(!oe(n,"htmx:beforeRequest",k)){Q(a);x();return s}var P=$t(n);te(["loadstart","loadend","progress","abort"],function(t){te([m,m.upload],function(e){e.addEventListener(t,function(e){oe(n,"htmx:xhr:"+t,{lengthComputable:e.lengthComputable,loaded:e.loaded,total:e.total})})})});oe(n,"htmx:beforeSend",k);var $=H?null:ur(m,n,T);m.send($);return s}function br(e,t){var r=t.xhr;var n=null;var i=null;if(E(r,/HX-Push:/i)){n=r.getResponseHeader("HX-Push");i="push"}else if(E(r,/HX-Push-Url:/i)){n=r.getResponseHeader("HX-Push-Url");i="push"}else if(E(r,/HX-Replace-Url:/i)){n=r.getResponseHeader("HX-Replace-Url");i="replace"}if(n){if(n==="false"){return{}}else{return{type:i,path:n}}}var a=t.pathInfo.finalRequestPath;var o=t.pathInfo.responsePath;var s=Y(e,"hx-push-url");var l=Y(e,"hx-replace-url");var u=ee(e).boosted;var f=null;var c=null;if(s){f="push";c=s}else if(l){f="replace";c=l}else if(u){f="push";c=o||a}if(c){if(c==="false"){return{}}if(c==="true"){c=o||a}if(t.pathInfo.anchor&&c.indexOf("#")===-1){c=c+"#"+t.pathInfo.anchor}return{type:f,path:c}}else{return{}}}function wr(l,u){var f=u.xhr;var c=u.target;var e=u.etc;if(!oe(l,"htmx:beforeOnLoad",u))return;if(E(f,/HX-Trigger:/i)){Xe(f,"HX-Trigger",l)}if(E(f,/HX-Location:/i)){Bt();var t=f.getResponseHeader("HX-Location");var h;if(t.indexOf("{")===0){h=y(t);t=h["path"];delete h["path"]}xr("GET",t,h).then(function(){Vt(t)});return}if(E(f,/HX-Redirect:/i)){location.href=f.getResponseHeader("HX-Redirect");return}if(E(f,/HX-Refresh:/i)){if("true"===f.getResponseHeader("HX-Refresh")){location.reload();return}}if(E(f,/HX-Retarget:/i)){u.target=K().querySelector(f.getResponseHeader("HX-Retarget"))}var d=br(l,u);var r=f.status>=200&&f.status<400&&f.status!==204;var v=f.response;var n=f.status>=400;var i=ne({shouldSwap:r,serverResponse:v,isError:n},u);if(!oe(c,"htmx:beforeSwap",i))return;c=i.target;v=i.serverResponse;n=i.isError;u.target=c;u.failed=n;u.successful=!n;if(i.shouldSwap){if(f.status===286){Je(l)}w(l,function(e){v=e.transformResponse(v,f,l)});if(d.type){Bt()}var a=e.swapOverride;if(E(f,/HX-Reswap:/i)){a=f.getResponseHeader("HX-Reswap")}var h=sr(l,a);c.classList.add(G.config.swappingClass);var g=null;var p=null;var o=function(){try{var e=document.activeElement;var t={};try{t={elt:e,start:e?e.selectionStart:null,end:e?e.selectionEnd:null}}catch(e){}var r;if(E(f,/HX-Reselect:/i)){r=f.getResponseHeader("HX-Reselect")}var n=S(c);De(h.swapStyle,c,l,v,n,r);if(t.elt&&!re(t.elt)&&J(t.elt,"id")){var i=document.getElementById(J(t.elt,"id"));var a={preventScroll:h.focusScroll!==undefined?!h.focusScroll:!G.config.defaultFocusScroll};if(i){if(t.start&&i.setSelectionRange){try{i.setSelectionRange(t.start,t.end)}catch(e){}}i.focus(a)}}c.classList.remove(G.config.swappingClass);te(n.elts,function(e){if(e.classList){e.classList.add(G.config.settlingClass)}oe(e,"htmx:afterSwap",u)});if(E(f,/HX-Trigger-After-Swap:/i)){var o=l;if(!re(l)){o=K().body}Xe(f,"HX-Trigger-After-Swap",o)}var s=function(){te(n.tasks,function(e){e.call()});te(n.elts,function(e){if(e.classList){e.classList.remove(G.config.settlingClass)}oe(e,"htmx:afterSettle",u)});if(d.type){if(d.type==="push"){Vt(d.path);oe(K().body,"htmx:pushedIntoHistory",{path:d.path})}else{jt(d.path);oe(K().body,"htmx:replacedInHistory",{path:d.path})}}if(u.pathInfo.anchor){var e=b("#"+u.pathInfo.anchor);if(e){e.scrollIntoView({block:"start",behavior:"auto"})}}if(n.title){var t=b("title");if(t){t.innerHTML=n.title}else{window.document.title=n.title}}fr(n.elts,h);if(E(f,/HX-Trigger-After-Settle:/i)){var r=l;if(!re(l)){r=K().body}Xe(f,"HX-Trigger-After-Settle",r)}Q(g)};if(h.settleDelay>0){setTimeout(s,h.settleDelay)}else{s()}}catch(e){ae(l,"htmx:swapError",u);Q(p);throw e}};var s=G.config.globalViewTransitions;if(h.hasOwnProperty("transition")){s=h.transition}if(s&&oe(l,"htmx:beforeTransition",u)&&typeof Promise!=="undefined"&&document.startViewTransition){var m=new Promise(function(e,t){g=e;p=t});var x=o;o=function(){document.startViewTransition(function(){x();return m})}}if(h.swapDelay>0){setTimeout(o,h.swapDelay)}else{o()}}if(n){ae(l,"htmx:responseError",ne({error:"Response Status Error Code "+f.status+" from "+u.pathInfo.requestPath},u))}}var Sr={};function Er(){return{init:function(e){return null},onEvent:function(e,t){return true},transformResponse:function(e,t,r){return e},isInlineSwap:function(e){return false},handleSwap:function(e,t,r,n){return false},encodeParameters:function(e,t,r){return null}}}function Cr(e,t){if(t.init){t.init(C)}Sr[e]=ne(Er(),t)}function Rr(e){delete Sr[e]}function Or(e,r,n){if(e==undefined){return r}if(r==undefined){r=[]}if(n==undefined){n=[]}var t=Z(e,"hx-ext");if(t){te(t.split(","),function(e){e=e.replace(/ /g,"");if(e.slice(0,7)=="ignore:"){n.push(e.slice(7));return}if(n.indexOf(e)<0){var t=Sr[e];if(t&&r.indexOf(t)<0){r.push(t)}}})}return Or(u(e),r,n)}function Tr(e){if(K().readyState!=="loading"){e()}else{K().addEventListener("DOMContentLoaded",e)}}function qr(){if(G.config.includeIndicatorStyles!==false){K().head.insertAdjacentHTML("beforeend","")}}function Hr(){var e=K().querySelector('meta[name="htmx-config"]');if(e){return y(e.content)}else{return null}}function Lr(){var e=Hr();if(e){G.config=ne(G.config,e)}}Tr(function(){Lr();qr();var e=K().body;Nt(e);var t=K().querySelectorAll("[hx-trigger='restored'],[data-hx-trigger='restored']");e.addEventListener("htmx:abort",function(e){var t=e.target;var r=ee(t);if(r&&r.xhr){r.xhr.abort()}});var r=window.onpopstate;window.onpopstate=function(e){if(e.state&&e.state.htmx){zt();te(t,function(e){oe(e,"htmx:restored",{document:K(),triggerEvent:oe})})}else{if(r){r(e)}}};setTimeout(function(){oe(e,"htmx:load",{});e=null},0)});return G}()}); \ No newline at end of file +(function (e, t) { + if (typeof define === "function" && define.amd) { + define([], t); + } else if (typeof module === "object" && module.exports) { + module.exports = t(); + } else { + e.htmx = e.htmx || t(); + } +})(typeof self !== "undefined" ? self : this, function () { + return (function () { + "use strict"; + var G = { + onLoad: t, + process: Nt, + on: le, + off: ue, + trigger: oe, + ajax: xr, + find: b, + findAll: f, + closest: d, + values: function (e, t) { + var r = er(e, t || "post"); + return r.values; + }, + remove: U, + addClass: B, + removeClass: n, + toggleClass: V, + takeClass: j, + defineExtension: Cr, + removeExtension: Rr, + logAll: X, + logNone: F, + 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, + 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"], + }, + parseInterval: v, + _: e, + createEventSource: function (e) { + return new EventSource(e, { withCredentials: true }); + }, + createWebSocket: function (e) { + var t = new WebSocket(e, []); + t.binaryType = G.config.wsBinaryType; + return t; + }, + version: "1.9.4", + }; + var C = { + addTriggerHandler: bt, + bodyContains: re, + canAccessLocalStorage: M, + findThisElement: he, + filterValues: ar, + hasAttribute: o, + getAttributeValue: Z, + getClosestAttributeValue: Y, + getClosestMatch: c, + getExpressionVars: gr, + getHeaders: ir, + getInputValues: er, + getInternalData: ee, + getSwapSpecification: sr, + getTriggerSpecs: Ge, + getTarget: de, + makeFragment: l, + mergeObjects: ne, + makeSettleInfo: S, + oobSwap: me, + querySelectorExt: ie, + selectAndSwap: De, + settleImmediately: Wt, + shouldCancel: Qe, + triggerEvent: oe, + triggerErrorEvent: ae, + withExtensions: w, + }; + var R = ["get", "post", "put", "delete", "patch"]; + var O = R.map(function (e) { + return "[hx-" + e + "], [data-hx-" + e + "]"; + }).join(", "); + function v(e) { + if (e == undefined) { + return undefined; + } + if (e.slice(-2) == "ms") { + return parseFloat(e.slice(0, -2)) || undefined; + } + if (e.slice(-1) == "s") { + return parseFloat(e.slice(0, -1)) * 1e3 || undefined; + } + if (e.slice(-1) == "m") { + return parseFloat(e.slice(0, -1)) * 1e3 * 60 || undefined; + } + return parseFloat(e) || undefined; + } + function J(e, t) { + return e.getAttribute && e.getAttribute(t); + } + function o(e, t) { + return ( + e.hasAttribute && (e.hasAttribute(t) || e.hasAttribute("data-" + t)) + ); + } + function Z(e, t) { + return J(e, t) || J(e, "data-" + t); + } + function u(e) { + return e.parentElement; + } + function K() { + return document; + } + function c(e, t) { + while (e && !t(e)) { + e = u(e); + } + return e ? e : null; + } + function T(e, t, r) { + var n = Z(t, r); + var i = Z(t, "hx-disinherit"); + if (e !== t && i && (i === "*" || i.split(" ").indexOf(r) >= 0)) { + return "unset"; + } else { + return n; + } + } + function Y(t, r) { + var n = null; + c(t, function (e) { + return (n = T(t, e, r)); + }); + if (n !== "unset") { + return n; + } + } + function h(e, t) { + var r = + e.matches || + e.matchesSelector || + e.msMatchesSelector || + e.mozMatchesSelector || + e.webkitMatchesSelector || + e.oMatchesSelector; + return r && r.call(e, t); + } + function q(e) { + var t = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i; + var r = t.exec(e); + if (r) { + return r[1].toLowerCase(); + } else { + return ""; + } + } + function i(e, t) { + var r = new DOMParser(); + var n = r.parseFromString(e, "text/html"); + var i = n.body; + while (t > 0) { + t--; + i = i.firstChild; + } + if (i == null) { + i = K().createDocumentFragment(); + } + return i; + } + function H(e) { + return e.match(/", 0); + return r.querySelector("template").content; + } else { + var n = q(e); + switch (n) { + case "thead": + case "tbody": + case "tfoot": + case "colgroup": + case "caption": + return i("" + e + "
", 1); + case "col": + return i("" + e + "
", 2); + case "tr": + return i("" + e + "
", 2); + case "td": + case "th": + return i("" + e + "
", 3); + case "script": + return i("
" + e + "
", 1); + default: + return i(e, 0); + } + } + } + function Q(e) { + if (e) { + e(); + } + } + function L(e, t) { + return Object.prototype.toString.call(e) === "[object " + t + "]"; + } + function A(e) { + return L(e, "Function"); + } + function N(e) { + return L(e, "Object"); + } + function ee(e) { + var t = "htmx-internal-data"; + var r = e[t]; + if (!r) { + r = e[t] = {}; + } + return r; + } + function I(e) { + var t = []; + if (e) { + for (var r = 0; r < e.length; r++) { + t.push(e[r]); + } + } + return t; + } + function te(e, t) { + if (e) { + for (var r = 0; r < e.length; r++) { + t(e[r]); + } + } + } + function k(e) { + var t = e.getBoundingClientRect(); + var r = t.top; + var n = t.bottom; + return r < window.innerHeight && n >= 0; + } + function re(e) { + if (e.getRootNode && e.getRootNode() instanceof window.ShadowRoot) { + return K().body.contains(e.getRootNode().host); + } else { + return K().body.contains(e); + } + } + function P(e) { + return e.trim().split(/\s+/); + } + function ne(e, t) { + for (var r in t) { + if (t.hasOwnProperty(r)) { + e[r] = t[r]; + } + } + return e; + } + function y(e) { + try { + return JSON.parse(e); + } catch (e) { + x(e); + return null; + } + } + function M() { + var e = "htmx:localStorageTest"; + try { + localStorage.setItem(e, e); + localStorage.removeItem(e); + return true; + } catch (e) { + return false; + } + } + function D(t) { + try { + var e = new URL(t); + if (e) { + t = e.pathname + e.search; + } + if (!t.match("^/$")) { + t = t.replace(/\/+$/, ""); + } + return t; + } catch (e) { + return t; + } + } + function e(e) { + return hr(K().body, function () { + return eval(e); + }); + } + function t(t) { + var e = G.on("htmx:load", function (e) { + t(e.detail.elt); + }); + return e; + } + function X() { + G.logger = function (e, t, r) { + if (console) { + console.log(t, e, r); + } + }; + } + function F() { + G.logger = null; + } + function b(e, t) { + if (t) { + return e.querySelector(t); + } else { + return b(K(), e); + } + } + function f(e, t) { + if (t) { + return e.querySelectorAll(t); + } else { + return f(K(), e); + } + } + function U(e, t) { + e = s(e); + if (t) { + setTimeout(function () { + U(e); + e = null; + }, t); + } else { + e.parentElement.removeChild(e); + } + } + function B(e, t, r) { + e = s(e); + if (r) { + setTimeout(function () { + B(e, t); + e = null; + }, r); + } else { + e.classList && e.classList.add(t); + } + } + function n(e, t, r) { + e = s(e); + if (r) { + setTimeout(function () { + n(e, t); + e = null; + }, r); + } else { + if (e.classList) { + e.classList.remove(t); + if (e.classList.length === 0) { + e.removeAttribute("class"); + } + } + } + } + function V(e, t) { + e = s(e); + e.classList.toggle(t); + } + function j(e, t) { + e = s(e); + te(e.parentElement.children, function (e) { + n(e, t); + }); + B(e, t); + } + function d(e, t) { + e = s(e); + if (e.closest) { + return e.closest(t); + } else { + do { + if (e == null || h(e, t)) { + return e; + } + } while ((e = e && u(e))); + return null; + } + } + function r(e) { + var t = e.trim(); + if (t.startsWith("<") && t.endsWith("/>")) { + return t.substring(1, t.length - 2); + } else { + return t; + } + } + function W(e, t) { + if (t.indexOf("closest ") === 0) { + return [d(e, r(t.substr(8)))]; + } else if (t.indexOf("find ") === 0) { + return [b(e, r(t.substr(5)))]; + } else if (t.indexOf("next ") === 0) { + return [_(e, r(t.substr(5)))]; + } else if (t.indexOf("previous ") === 0) { + return [z(e, r(t.substr(9)))]; + } else if (t === "document") { + return [document]; + } else if (t === "window") { + return [window]; + } else { + return K().querySelectorAll(r(t)); + } + } + var _ = function (e, t) { + var r = K().querySelectorAll(t); + for (var n = 0; n < r.length; n++) { + var i = r[n]; + if (i.compareDocumentPosition(e) === Node.DOCUMENT_POSITION_PRECEDING) { + return i; + } + } + }; + var z = function (e, t) { + var r = K().querySelectorAll(t); + for (var n = r.length - 1; n >= 0; n--) { + var i = r[n]; + if (i.compareDocumentPosition(e) === Node.DOCUMENT_POSITION_FOLLOWING) { + return i; + } + } + }; + function ie(e, t) { + if (t) { + return W(e, t)[0]; + } else { + return W(K().body, e)[0]; + } + } + function s(e) { + if (L(e, "String")) { + return b(e); + } else { + return e; + } + } + function $(e, t, r) { + if (A(t)) { + return { target: K().body, event: e, listener: t }; + } else { + return { target: s(e), event: t, listener: r }; + } + } + function le(t, r, n) { + Tr(function () { + var e = $(t, r, n); + e.target.addEventListener(e.event, e.listener); + }); + var e = A(r); + return e ? r : n; + } + function ue(t, r, n) { + Tr(function () { + var e = $(t, r, n); + e.target.removeEventListener(e.event, e.listener); + }); + return A(r) ? r : n; + } + var fe = K().createElement("output"); + function ce(e, t) { + var r = Y(e, t); + if (r) { + if (r === "this") { + return [he(e, t)]; + } else { + var n = W(e, r); + if (n.length === 0) { + x('The selector "' + r + '" on ' + t + " returned no matches!"); + return [fe]; + } else { + return n; + } + } + } + } + function he(e, t) { + return c(e, function (e) { + return Z(e, t) != null; + }); + } + function de(e) { + var t = Y(e, "hx-target"); + if (t) { + if (t === "this") { + return he(e, "hx-target"); + } else { + return ie(e, t); + } + } else { + var r = ee(e); + if (r.boosted) { + return K().body; + } else { + return e; + } + } + } + function ve(e) { + var t = G.config.attributesToSettle; + for (var r = 0; r < t.length; r++) { + if (e === t[r]) { + return true; + } + } + return false; + } + function ge(t, r) { + te(t.attributes, function (e) { + if (!r.hasAttribute(e.name) && ve(e.name)) { + t.removeAttribute(e.name); + } + }); + te(r.attributes, function (e) { + if (ve(e.name)) { + t.setAttribute(e.name, e.value); + } + }); + } + function pe(e, t) { + var r = Or(t); + for (var n = 0; n < r.length; n++) { + var i = r[n]; + try { + if (i.isInlineSwap(e)) { + return true; + } + } catch (e) { + x(e); + } + } + return e === "outerHTML"; + } + function me(e, i, a) { + var t = "#" + J(i, "id"); + var o = "outerHTML"; + if (e === "true") { + } else if (e.indexOf(":") > 0) { + o = e.substr(0, e.indexOf(":")); + t = e.substr(e.indexOf(":") + 1, e.length); + } else { + o = e; + } + var r = K().querySelectorAll(t); + if (r) { + te(r, function (e) { + var t; + var r = i.cloneNode(true); + t = K().createDocumentFragment(); + t.appendChild(r); + if (!pe(o, e)) { + t = r; + } + var n = { shouldSwap: true, target: e, fragment: t }; + if (!oe(e, "htmx:oobBeforeSwap", n)) return; + e = n.target; + if (n["shouldSwap"]) { + Pe(o, e, e, t, a); + } + te(a.elts, function (e) { + oe(e, "htmx:oobAfterSwap", n); + }); + }); + i.parentNode.removeChild(i); + } else { + i.parentNode.removeChild(i); + ae(K().body, "htmx:oobErrorNoTarget", { content: i }); + } + return e; + } + function xe(e, t, r) { + var n = Y(e, "hx-select-oob"); + if (n) { + var i = n.split(","); + for (let e = 0; e < i.length; e++) { + var a = i[e].split(":", 2); + var o = a[0].trim(); + if (o.indexOf("#") === 0) { + o = o.substring(1); + } + var s = a[1] || "true"; + var l = t.querySelector("#" + o); + if (l) { + me(s, l, r); + } + } + } + te(f(t, "[hx-swap-oob], [data-hx-swap-oob]"), function (e) { + var t = Z(e, "hx-swap-oob"); + if (t != null) { + me(t, e, r); + } + }); + } + function ye(e) { + te(f(e, "[hx-preserve], [data-hx-preserve]"), function (e) { + var t = Z(e, "id"); + var r = K().getElementById(t); + if (r != null) { + e.parentNode.replaceChild(r, e); + } + }); + } + function be(o, e, s) { + te(e.querySelectorAll("[id]"), function (e) { + var t = J(e, "id"); + if (t && t.length > 0) { + var r = t.replace("'", "\\'"); + var n = e.tagName.replace(":", "\\:"); + var i = o.querySelector(n + "[id='" + r + "']"); + if (i && i !== o) { + var a = e.cloneNode(); + ge(e, i); + s.tasks.push(function () { + ge(e, a); + }); + } + } + }); + } + function we(e) { + return function () { + n(e, G.config.addedClass); + Nt(e); + St(e); + Se(e); + oe(e, "htmx:load"); + }; + } + function Se(e) { + var t = "[autofocus]"; + var r = h(e, t) ? e : e.querySelector(t); + if (r != null) { + r.focus(); + } + } + function a(e, t, r, n) { + be(e, r, n); + while (r.childNodes.length > 0) { + var i = r.firstChild; + B(i, G.config.addedClass); + e.insertBefore(i, t); + if (i.nodeType !== Node.TEXT_NODE && i.nodeType !== Node.COMMENT_NODE) { + n.tasks.push(we(i)); + } + } + } + function Ee(e, t) { + var r = 0; + while (r < e.length) { + t = ((t << 5) - t + e.charCodeAt(r++)) | 0; + } + return t; + } + function Ce(e) { + var t = 0; + if (e.attributes) { + for (var r = 0; r < e.attributes.length; r++) { + var n = e.attributes[r]; + if (n.value) { + t = Ee(n.name, t); + t = Ee(n.value, t); + } + } + } + return t; + } + function Re(t) { + var r = ee(t); + if (r.onHandlers) { + for (let e = 0; e < r.onHandlers.length; e++) { + const n = r.onHandlers[e]; + t.removeEventListener(n.event, n.listener); + } + delete r.onHandlers; + } + } + function Oe(e) { + var t = ee(e); + if (t.timeout) { + clearTimeout(t.timeout); + } + if (t.webSocket) { + t.webSocket.close(); + } + if (t.sseEventSource) { + t.sseEventSource.close(); + } + if (t.listenerInfos) { + te(t.listenerInfos, function (e) { + if (e.on) { + e.on.removeEventListener(e.trigger, e.listener); + } + }); + } + if (t.initHash) { + t.initHash = null; + } + Re(e); + } + function g(e) { + oe(e, "htmx:beforeCleanupElement"); + Oe(e); + if (e.children) { + te(e.children, function (e) { + g(e); + }); + } + } + function Te(t, e, r) { + if (t.tagName === "BODY") { + return Ie(t, e, r); + } else { + var n; + var i = t.previousSibling; + a(u(t), t, e, r); + if (i == null) { + n = u(t).firstChild; + } else { + n = i.nextSibling; + } + ee(t).replacedWith = n; + r.elts = r.elts.filter(function (e) { + return e != t; + }); + while (n && n !== t) { + if (n.nodeType === Node.ELEMENT_NODE) { + r.elts.push(n); + } + n = n.nextElementSibling; + } + g(t); + u(t).removeChild(t); + } + } + function qe(e, t, r) { + return a(e, e.firstChild, t, r); + } + function He(e, t, r) { + return a(u(e), e, t, r); + } + function Le(e, t, r) { + return a(e, null, t, r); + } + function Ae(e, t, r) { + return a(u(e), e.nextSibling, t, r); + } + function Ne(e, t, r) { + g(e); + return u(e).removeChild(e); + } + function Ie(e, t, r) { + var n = e.firstChild; + a(e, n, t, r); + if (n) { + while (n.nextSibling) { + g(n.nextSibling); + e.removeChild(n.nextSibling); + } + g(n); + e.removeChild(n); + } + } + function ke(e, t, r) { + var n = r || Y(e, "hx-select"); + if (n) { + var i = K().createDocumentFragment(); + te(t.querySelectorAll(n), function (e) { + i.appendChild(e); + }); + t = i; + } + return t; + } + function Pe(e, t, r, n, i) { + switch (e) { + case "none": + return; + case "outerHTML": + Te(r, n, i); + return; + case "afterbegin": + qe(r, n, i); + return; + case "beforebegin": + He(r, n, i); + return; + case "beforeend": + Le(r, n, i); + return; + case "afterend": + Ae(r, n, i); + return; + case "delete": + Ne(r, n, i); + return; + default: + var a = Or(t); + for (var o = 0; o < a.length; o++) { + var s = a[o]; + try { + var l = s.handleSwap(e, r, n, i); + if (l) { + if (typeof l.length !== "undefined") { + for (var u = 0; u < l.length; u++) { + var f = l[u]; + if ( + f.nodeType !== Node.TEXT_NODE && + f.nodeType !== Node.COMMENT_NODE + ) { + i.tasks.push(we(f)); + } + } + } + return; + } + } catch (e) { + x(e); + } + } + if (e === "innerHTML") { + Ie(r, n, i); + } else { + Pe(G.config.defaultSwapStyle, t, r, n, i); + } + } + } + function Me(e) { + if (e.indexOf(" -1) { + var t = e.replace(/]*>|>)([\s\S]*?)<\/svg>/gim, ""); + var r = t.match(/]*>|>)([\s\S]*?)<\/title>/im); + if (r) { + return r[2]; + } + } + } + function De(e, t, r, n, i, a) { + i.title = Me(n); + var o = l(n); + if (o) { + xe(r, o, i); + o = ke(r, o, a); + ye(o); + return Pe(e, r, t, o, i); + } + } + function Xe(e, t, r) { + var n = e.getResponseHeader(t); + if (n.indexOf("{") === 0) { + var i = y(n); + for (var a in i) { + if (i.hasOwnProperty(a)) { + var o = i[a]; + if (!N(o)) { + o = { value: o }; + } + oe(r, a, o); + } + } + } else { + var s = n.split(","); + for (var l = 0; l < s.length; l++) { + oe(r, s[l].trim(), []); + } + } + } + var Fe = /\s/; + var p = /[\s,]/; + var Ue = /[_$a-zA-Z]/; + var Be = /[_$a-zA-Z0-9]/; + var Ve = ['"', "'", "/"]; + var je = /[^\s]/; + function We(e) { + var t = []; + var r = 0; + while (r < e.length) { + if (Ue.exec(e.charAt(r))) { + var n = r; + while (Be.exec(e.charAt(r + 1))) { + r++; + } + t.push(e.substr(n, r - n + 1)); + } else if (Ve.indexOf(e.charAt(r)) !== -1) { + var i = e.charAt(r); + var n = r; + r++; + while (r < e.length && e.charAt(r) !== i) { + if (e.charAt(r) === "\\") { + r++; + } + r++; + } + t.push(e.substr(n, r - n + 1)); + } else { + var a = e.charAt(r); + t.push(a); + } + r++; + } + return t; + } + function _e(e, t, r) { + return ( + Ue.exec(e.charAt(0)) && + e !== "true" && + e !== "false" && + e !== "this" && + e !== r && + t !== "." + ); + } + function ze(e, t, r) { + if (t[0] === "[") { + t.shift(); + var n = 1; + var i = " return (function(" + r + "){ return ("; + var a = null; + while (t.length > 0) { + var o = t[0]; + if (o === "]") { + n--; + if (n === 0) { + if (a === null) { + i = i + "true"; + } + t.shift(); + i += ")})"; + try { + var s = hr( + e, + function () { + return Function(i)(); + }, + function () { + return true; + }, + ); + s.source = i; + return s; + } catch (e) { + ae(K().body, "htmx:syntax:error", { error: e, source: i }); + return null; + } + } + } else if (o === "[") { + n++; + } + if (_e(o, a, r)) { + i += + "((" + + r + + "." + + o + + ") ? (" + + r + + "." + + o + + ") : (window." + + o + + "))"; + } else { + i = i + o; + } + a = t.shift(); + } + } + } + function m(e, t) { + var r = ""; + while (e.length > 0 && !e[0].match(t)) { + r += e.shift(); + } + return r; + } + var $e = "input, textarea, select"; + function Ge(e) { + var t = Z(e, "hx-trigger"); + var r = []; + if (t) { + var n = We(t); + do { + m(n, je); + var i = n.length; + var a = m(n, /[,\[\s]/); + if (a !== "") { + if (a === "every") { + var o = { trigger: "every" }; + m(n, je); + o.pollInterval = v(m(n, /[,\[\s]/)); + m(n, je); + var s = ze(e, n, "event"); + if (s) { + o.eventFilter = s; + } + r.push(o); + } else if (a.indexOf("sse:") === 0) { + r.push({ trigger: "sse", sseEvent: a.substr(4) }); + } else { + var l = { trigger: a }; + var s = ze(e, n, "event"); + if (s) { + l.eventFilter = s; + } + while (n.length > 0 && n[0] !== ",") { + m(n, je); + var u = n.shift(); + if (u === "changed") { + l.changed = true; + } else if (u === "once") { + l.once = true; + } else if (u === "consume") { + l.consume = true; + } else if (u === "delay" && n[0] === ":") { + n.shift(); + l.delay = v(m(n, p)); + } else if (u === "from" && n[0] === ":") { + n.shift(); + var f = m(n, p); + if ( + f === "closest" || + f === "find" || + f === "next" || + f === "previous" + ) { + n.shift(); + f += " " + m(n, p); + } + l.from = f; + } else if (u === "target" && n[0] === ":") { + n.shift(); + l.target = m(n, p); + } else if (u === "throttle" && n[0] === ":") { + n.shift(); + l.throttle = v(m(n, p)); + } else if (u === "queue" && n[0] === ":") { + n.shift(); + l.queue = m(n, p); + } else if ( + (u === "root" || u === "threshold") && + n[0] === ":" + ) { + n.shift(); + l[u] = m(n, p); + } else { + ae(e, "htmx:syntax:error", { token: n.shift() }); + } + } + r.push(l); + } + } + if (n.length === i) { + ae(e, "htmx:syntax:error", { token: n.shift() }); + } + m(n, je); + } while (n[0] === "," && n.shift()); + } + if (r.length > 0) { + return r; + } else if (h(e, "form")) { + return [{ trigger: "submit" }]; + } else if (h(e, 'input[type="button"], input[type="submit"]')) { + return [{ trigger: "click" }]; + } else if (h(e, $e)) { + return [{ trigger: "change" }]; + } else { + return [{ trigger: "click" }]; + } + } + function Je(e) { + ee(e).cancelled = true; + } + function Ze(e, t, r) { + var n = ee(e); + n.timeout = setTimeout(function () { + if (re(e) && n.cancelled !== true) { + if (!tt(r, e, kt("hx:poll:trigger", { triggerSpec: r, target: e }))) { + t(e); + } + Ze(e, t, r); + } + }, r.pollInterval); + } + function Ke(e) { + return ( + location.hostname === e.hostname && + J(e, "href") && + J(e, "href").indexOf("#") !== 0 + ); + } + function Ye(t, r, e) { + if ( + (t.tagName === "A" && + Ke(t) && + (t.target === "" || t.target === "_self")) || + t.tagName === "FORM" + ) { + r.boosted = true; + var n, i; + if (t.tagName === "A") { + n = "get"; + i = t.href; + } else { + var a = J(t, "method"); + n = a ? a.toLowerCase() : "get"; + if (n === "get") { + } + i = J(t, "action"); + } + e.forEach(function (e) { + rt( + t, + function (e, t) { + if (d(e, G.config.disableSelector)) { + g(e); + return; + } + se(n, i, e, t); + }, + r, + e, + true, + ); + }); + } + } + function Qe(e, t) { + if (e.type === "submit" || e.type === "click") { + if (t.tagName === "FORM") { + return true; + } + if (h(t, 'input[type="submit"], button') && d(t, "form") !== null) { + return true; + } + if ( + t.tagName === "A" && + t.href && + (t.getAttribute("href") === "#" || + t.getAttribute("href").indexOf("#") !== 0) + ) { + return true; + } + } + return false; + } + function et(e, t) { + return ( + ee(e).boosted && + e.tagName === "A" && + t.type === "click" && + (t.ctrlKey || t.metaKey) + ); + } + function tt(e, t, r) { + var n = e.eventFilter; + if (n) { + try { + return n.call(t, r) !== true; + } catch (e) { + ae(K().body, "htmx:eventFilter:error", { + error: e, + source: n.source, + }); + return true; + } + } + return false; + } + function rt(a, o, e, s, l) { + var u = ee(a); + var t; + if (s.from) { + t = W(a, s.from); + } else { + t = [a]; + } + if (s.changed) { + t.forEach(function (e) { + var t = ee(e); + t.lastValue = e.value; + }); + } + te(t, function (n) { + var i = function (e) { + if (!re(a)) { + n.removeEventListener(s.trigger, i); + return; + } + if (et(a, e)) { + return; + } + if (l || Qe(e, a)) { + e.preventDefault(); + } + if (tt(s, a, e)) { + return; + } + var t = ee(e); + t.triggerSpec = s; + if (t.handledFor == null) { + t.handledFor = []; + } + if (t.handledFor.indexOf(a) < 0) { + t.handledFor.push(a); + if (s.consume) { + e.stopPropagation(); + } + if (s.target && e.target) { + if (!h(e.target, s.target)) { + return; + } + } + if (s.once) { + if (u.triggeredOnce) { + return; + } else { + u.triggeredOnce = true; + } + } + if (s.changed) { + var r = ee(n); + if (r.lastValue === n.value) { + return; + } + r.lastValue = n.value; + } + if (u.delayed) { + clearTimeout(u.delayed); + } + if (u.throttle) { + return; + } + if (s.throttle) { + if (!u.throttle) { + o(a, e); + u.throttle = setTimeout(function () { + u.throttle = null; + }, s.throttle); + } + } else if (s.delay) { + u.delayed = setTimeout(function () { + o(a, e); + }, s.delay); + } else { + oe(a, "htmx:trigger"); + o(a, e); + } + } + }; + if (e.listenerInfos == null) { + e.listenerInfos = []; + } + e.listenerInfos.push({ trigger: s.trigger, listener: i, on: n }); + n.addEventListener(s.trigger, i); + }); + } + var nt = false; + var it = null; + function at() { + if (!it) { + it = function () { + nt = true; + }; + window.addEventListener("scroll", it); + setInterval(function () { + if (nt) { + nt = false; + te( + K().querySelectorAll( + "[hx-trigger='revealed'],[data-hx-trigger='revealed']", + ), + function (e) { + ot(e); + }, + ); + } + }, 200); + } + } + function ot(t) { + if (!o(t, "data-hx-revealed") && k(t)) { + t.setAttribute("data-hx-revealed", "true"); + var e = ee(t); + if (e.initHash) { + oe(t, "revealed"); + } else { + t.addEventListener( + "htmx:afterProcessNode", + function (e) { + oe(t, "revealed"); + }, + { once: true }, + ); + } + } + } + function st(e, t, r) { + var n = P(r); + for (var i = 0; i < n.length; i++) { + var a = n[i].split(/:(.+)/); + if (a[0] === "connect") { + lt(e, a[1], 0); + } + if (a[0] === "send") { + ft(e); + } + } + } + function lt(s, r, n) { + if (!re(s)) { + return; + } + if (r.indexOf("/") == 0) { + var e = location.hostname + (location.port ? ":" + location.port : ""); + if (location.protocol == "https:") { + r = "wss://" + e + r; + } else if (location.protocol == "http:") { + r = "ws://" + e + r; + } + } + var t = G.createWebSocket(r); + t.onerror = function (e) { + ae(s, "htmx:wsError", { error: e, socket: t }); + ut(s); + }; + t.onclose = function (e) { + if ([1006, 1012, 1013].indexOf(e.code) >= 0) { + var t = ct(n); + setTimeout(function () { + lt(s, r, n + 1); + }, t); + } + }; + t.onopen = function (e) { + n = 0; + }; + ee(s).webSocket = t; + t.addEventListener("message", function (e) { + if (ut(s)) { + return; + } + var t = e.data; + w(s, function (e) { + t = e.transformResponse(t, null, s); + }); + var r = S(s); + var n = l(t); + var i = I(n.children); + for (var a = 0; a < i.length; a++) { + var o = i[a]; + me(Z(o, "hx-swap-oob") || "true", o, r); + } + Wt(r.tasks); + }); + } + function ut(e) { + if (!re(e)) { + ee(e).webSocket.close(); + return true; + } + } + function ft(u) { + var f = c(u, function (e) { + return ee(e).webSocket != null; + }); + if (f) { + u.addEventListener(Ge(u)[0].trigger, function (e) { + var t = ee(f).webSocket; + var r = ir(u, f); + var n = er(u, "post"); + var i = n.errors; + var a = n.values; + var o = gr(u); + var s = ne(a, o); + var l = ar(s, u); + l["HEADERS"] = r; + if (i && i.length > 0) { + oe(u, "htmx:validation:halted", i); + return; + } + t.send(JSON.stringify(l)); + if (Qe(e, u)) { + e.preventDefault(); + } + }); + } else { + ae(u, "htmx:noWebSocketSourceError"); + } + } + function ct(e) { + var t = G.config.wsReconnectDelay; + if (typeof t === "function") { + return t(e); + } + if (t === "full-jitter") { + var r = Math.min(e, 6); + var n = 1e3 * Math.pow(2, r); + return n * Math.random(); + } + x( + 'htmx.config.wsReconnectDelay must either be a function or the string "full-jitter"', + ); + } + function ht(e, t, r) { + var n = P(r); + for (var i = 0; i < n.length; i++) { + var a = n[i].split(/:(.+)/); + if (a[0] === "connect") { + dt(e, a[1]); + } + if (a[0] === "swap") { + vt(e, a[1]); + } + } + } + function dt(t, e) { + var r = G.createEventSource(e); + r.onerror = function (e) { + ae(t, "htmx:sseError", { error: e, source: r }); + pt(t); + }; + ee(t).sseEventSource = r; + } + function vt(a, o) { + var s = c(a, mt); + if (s) { + var l = ee(s).sseEventSource; + var u = function (e) { + if (pt(s)) { + return; + } + if (!re(a)) { + l.removeEventListener(o, u); + return; + } + var t = e.data; + w(a, function (e) { + t = e.transformResponse(t, null, a); + }); + var r = sr(a); + var n = de(a); + var i = S(a); + De(r.swapStyle, n, a, t, i); + Wt(i.tasks); + oe(a, "htmx:sseMessage", e); + }; + ee(a).sseListener = u; + l.addEventListener(o, u); + } else { + ae(a, "htmx:noSSESourceError"); + } + } + function gt(e, t, r) { + var n = c(e, mt); + if (n) { + var i = ee(n).sseEventSource; + var a = function () { + if (!pt(n)) { + if (re(e)) { + t(e); + } else { + i.removeEventListener(r, a); + } + } + }; + ee(e).sseListener = a; + i.addEventListener(r, a); + } else { + ae(e, "htmx:noSSESourceError"); + } + } + function pt(e) { + if (!re(e)) { + ee(e).sseEventSource.close(); + return true; + } + } + function mt(e) { + return ee(e).sseEventSource != null; + } + function xt(e, t, r, n) { + var i = function () { + if (!r.loaded) { + r.loaded = true; + t(e); + } + }; + if (n) { + setTimeout(i, n); + } else { + i(); + } + } + function yt(t, i, e) { + var a = false; + te(R, function (r) { + if (o(t, "hx-" + r)) { + var n = Z(t, "hx-" + r); + a = true; + i.path = n; + i.verb = r; + e.forEach(function (e) { + bt(t, e, i, function (e, t) { + if (d(e, G.config.disableSelector)) { + g(e); + return; + } + se(r, n, e, t); + }); + }); + } + }); + return a; + } + function bt(n, e, t, r) { + if (e.sseEvent) { + gt(n, r, e.sseEvent); + } else if (e.trigger === "revealed") { + at(); + rt(n, r, t, e); + ot(n); + } else if (e.trigger === "intersect") { + var i = {}; + if (e.root) { + i.root = ie(n, e.root); + } + if (e.threshold) { + i.threshold = parseFloat(e.threshold); + } + var a = new IntersectionObserver(function (e) { + for (var t = 0; t < e.length; t++) { + var r = e[t]; + if (r.isIntersecting) { + oe(n, "intersect"); + break; + } + } + }, i); + a.observe(n); + rt(n, r, t, e); + } else if (e.trigger === "load") { + if (!tt(e, n, kt("load", { elt: n }))) { + xt(n, r, t, e.delay); + } + } else if (e.pollInterval) { + t.polling = true; + Ze(n, r, e); + } else { + rt(n, r, t, e); + } + } + function wt(e) { + if ( + e.type === "text/javascript" || + e.type === "module" || + e.type === "" + ) { + var t = K().createElement("script"); + te(e.attributes, function (e) { + t.setAttribute(e.name, e.value); + }); + t.textContent = e.textContent; + t.async = false; + if (G.config.inlineScriptNonce) { + t.nonce = G.config.inlineScriptNonce; + } + var r = e.parentElement; + try { + r.insertBefore(t, e); + } catch (e) { + x(e); + } finally { + if (e.parentElement) { + e.parentElement.removeChild(e); + } + } + } + } + function St(e) { + if (h(e, "script")) { + wt(e); + } + te(f(e, "script"), function (e) { + wt(e); + }); + } + function Et() { + return document.querySelector("[hx-boost], [data-hx-boost]"); + } + function Ct(e) { + if (!document.evaluate) return []; + let t = null; + const r = []; + const n = document.evaluate( + '//*[@*[ starts-with(name(), "hx-on:") or starts-with(name(), "data-hx-on:") ]]', + e, + ); + while ((t = n.iterateNext())) r.push(t); + return r; + } + function Rt(e) { + if (e.querySelectorAll) { + var t = Et() ? ", a" : ""; + var r = e.querySelectorAll( + O + + t + + ", 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 r; + } else { + return []; + } + } + function Ot(e) { + var n = s("#" + J(e, "form")) || d(e, "form"); + if (!n) { + return; + } + var t = function (e) { + var t = d(e.target, "button, input[type='submit']"); + if (t !== null) { + var r = ee(n); + r.lastButtonClicked = t; + } + }; + e.addEventListener("click", t); + e.addEventListener("focusin", t); + e.addEventListener("focusout", function (e) { + var t = ee(n); + t.lastButtonClicked = null; + }); + } + function Tt(e) { + var t = We(e); + var r = 0; + for (let e = 0; e < t.length; e++) { + const n = t[e]; + if (n === "{") { + r++; + } else if (n === "}") { + r--; + } + } + return r; + } + function qt(t, e, r) { + var n = ee(t); + n.onHandlers = []; + var i = new Function("event", r + "; return;"); + var a = function (e) { + return i.call(t, e); + }; + t.addEventListener(e, a); + n.onHandlers.push({ event: e, listener: a }); + return { nodeData: n, code: r, func: i, listener: a }; + } + function Ht(e) { + var t = Z(e, "hx-on"); + if (t && G.config.allowEval) { + var r = {}; + var n = t.split("\n"); + var i = null; + var a = 0; + while (n.length > 0) { + var o = n.shift(); + var s = o.match(/^\s*([a-zA-Z:\-]+:)(.*)/); + if (a === 0 && s) { + o.split(":"); + i = s[1].slice(0, -1); + r[i] = s[2]; + } else { + r[i] += o; + } + a += Tt(o); + } + for (var l in r) { + qt(e, l, r[l]); + } + } + } + function Lt(t) { + Re(t); + for (var e = 0; e < t.attributes.length; e++) { + var r = t.attributes[e].name; + var n = t.attributes[e].value; + if (r.startsWith("hx-on:") || r.startsWith("data-hx-on:")) { + let e = r.slice(r.indexOf(":") + 1); + if (e.startsWith(":")) e = "htmx" + e; + qt(t, e, n); + } + } + } + function At(t) { + if (d(t, G.config.disableSelector)) { + g(t); + return; + } + var r = ee(t); + if (r.initHash !== Ce(t)) { + Oe(t); + r.initHash = Ce(t); + Ht(t); + oe(t, "htmx:beforeProcessNode"); + if (t.value) { + r.lastValue = t.value; + } + var e = Ge(t); + var n = yt(t, r, e); + if (!n) { + if (Y(t, "hx-boost") === "true") { + Ye(t, r, e); + } else if (o(t, "hx-trigger")) { + e.forEach(function (e) { + bt(t, e, r, function () {}); + }); + } + } + if ( + t.tagName === "FORM" || + (J(t, "type") === "submit" && o(t, "form")) + ) { + Ot(t); + } + var i = Z(t, "hx-sse"); + if (i) { + ht(t, r, i); + } + var a = Z(t, "hx-ws"); + if (a) { + st(t, r, a); + } + oe(t, "htmx:afterProcessNode"); + } + } + function Nt(e) { + e = s(e); + if (d(e, G.config.disableSelector)) { + g(e); + return; + } + At(e); + te(Rt(e), function (e) { + At(e); + }); + te(Ct(e), Lt); + } + function It(e) { + return e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(); + } + function kt(e, t) { + var r; + if (window.CustomEvent && typeof window.CustomEvent === "function") { + r = new CustomEvent(e, { bubbles: true, cancelable: true, detail: t }); + } else { + r = K().createEvent("CustomEvent"); + r.initCustomEvent(e, true, true, t); + } + return r; + } + function ae(e, t, r) { + oe(e, t, ne({ error: t }, r)); + } + function Pt(e) { + return e === "htmx:afterProcessNode"; + } + function w(e, t) { + te(Or(e), function (e) { + try { + t(e); + } catch (e) { + x(e); + } + }); + } + function x(e) { + if (console.error) { + console.error(e); + } else if (console.log) { + console.log("ERROR: ", e); + } + } + function oe(e, t, r) { + e = s(e); + if (r == null) { + r = {}; + } + r["elt"] = e; + var n = kt(t, r); + if (G.logger && !Pt(t)) { + G.logger(e, t, r); + } + if (r.error) { + x(r.error); + oe(e, "htmx:error", { errorInfo: r }); + } + var i = e.dispatchEvent(n); + var a = It(t); + if (i && a !== t) { + var o = kt(a, n.detail); + i = i && e.dispatchEvent(o); + } + w(e, function (e) { + i = i && e.onEvent(t, n) !== false; + }); + return i; + } + var Mt = location.pathname + location.search; + function Dt() { + var e = K().querySelector("[hx-history-elt],[data-hx-history-elt]"); + return e || K().body; + } + function Xt(e, t, r, n) { + if (!M()) { + return; + } + e = D(e); + var i = y(localStorage.getItem("htmx-history-cache")) || []; + for (var a = 0; a < i.length; a++) { + if (i[a].url === e) { + i.splice(a, 1); + break; + } + } + var o = { url: e, content: t, title: r, scroll: n }; + oe(K().body, "htmx:historyItemCreated", { item: o, cache: i }); + i.push(o); + while (i.length > G.config.historyCacheSize) { + i.shift(); + } + while (i.length > 0) { + try { + localStorage.setItem("htmx-history-cache", JSON.stringify(i)); + break; + } catch (e) { + ae(K().body, "htmx:historyCacheError", { cause: e, cache: i }); + i.shift(); + } + } + } + function Ft(e) { + if (!M()) { + return null; + } + e = D(e); + var t = y(localStorage.getItem("htmx-history-cache")) || []; + for (var r = 0; r < t.length; r++) { + if (t[r].url === e) { + return t[r]; + } + } + return null; + } + function Ut(e) { + var t = G.config.requestClass; + var r = e.cloneNode(true); + te(f(r, "." + t), function (e) { + n(e, t); + }); + return r.innerHTML; + } + function Bt() { + var e = Dt(); + var t = Mt || location.pathname + location.search; + var r = K().querySelector( + '[hx-history="false" i],[data-hx-history="false" i]', + ); + if (!r) { + oe(K().body, "htmx:beforeHistorySave", { path: t, historyElt: e }); + Xt(t, Ut(e), K().title, window.scrollY); + } + if (G.config.historyEnabled) + history.replaceState({ htmx: true }, K().title, window.location.href); + } + function Vt(e) { + if (G.config.getCacheBusterParam) { + e = e.replace(/org\.htmx\.cache-buster=[^&]*&?/, ""); + if (e.endsWith("&") || e.endsWith("?")) { + e = e.slice(0, -1); + } + } + if (G.config.historyEnabled) { + history.pushState({ htmx: true }, "", e); + } + Mt = e; + } + function jt(e) { + if (G.config.historyEnabled) history.replaceState({ htmx: true }, "", e); + Mt = e; + } + function Wt(e) { + te(e, function (e) { + e.call(); + }); + } + function _t(a) { + var e = new XMLHttpRequest(); + var o = { path: a, xhr: e }; + oe(K().body, "htmx:historyCacheMiss", o); + e.open("GET", a, true); + e.setRequestHeader("HX-History-Restore-Request", "true"); + e.onload = function () { + if (this.status >= 200 && this.status < 400) { + oe(K().body, "htmx:historyCacheMissLoad", o); + var e = l(this.response); + e = e.querySelector("[hx-history-elt],[data-hx-history-elt]") || e; + var t = Dt(); + var r = S(t); + var n = Me(this.response); + if (n) { + var i = b("title"); + if (i) { + i.innerHTML = n; + } else { + window.document.title = n; + } + } + Ie(t, e, r); + Wt(r.tasks); + Mt = a; + oe(K().body, "htmx:historyRestore", { + path: a, + cacheMiss: true, + serverResponse: this.response, + }); + } else { + ae(K().body, "htmx:historyCacheMissLoadError", o); + } + }; + e.send(); + } + function zt(e) { + Bt(); + e = e || location.pathname + location.search; + var t = Ft(e); + if (t) { + var r = l(t.content); + var n = Dt(); + var i = S(n); + Ie(n, r, i); + Wt(i.tasks); + document.title = t.title; + setTimeout(function () { + window.scrollTo(0, t.scroll); + }, 0); + Mt = e; + oe(K().body, "htmx:historyRestore", { path: e, item: t }); + } else { + if (G.config.refreshOnHistoryMiss) { + window.location.reload(true); + } else { + _t(e); + } + } + } + function $t(e) { + var t = ce(e, "hx-indicator"); + if (t == null) { + t = [e]; + } + te(t, function (e) { + var t = ee(e); + t.requestCount = (t.requestCount || 0) + 1; + e.classList["add"].call(e.classList, G.config.requestClass); + }); + return t; + } + function Gt(e) { + te(e, function (e) { + var t = ee(e); + t.requestCount = (t.requestCount || 0) - 1; + if (t.requestCount === 0) { + e.classList["remove"].call(e.classList, G.config.requestClass); + } + }); + } + function Jt(e, t) { + for (var r = 0; r < e.length; r++) { + var n = e[r]; + if (n.isSameNode(t)) { + return true; + } + } + return false; + } + function Zt(e) { + if (e.name === "" || e.name == null || e.disabled) { + return false; + } + if ( + e.type === "button" || + e.type === "submit" || + e.tagName === "image" || + e.tagName === "reset" || + e.tagName === "file" + ) { + return false; + } + if (e.type === "checkbox" || e.type === "radio") { + return e.checked; + } + return true; + } + function Kt(e, t, r) { + if (e != null && t != null) { + var n = r[e]; + if (n === undefined) { + r[e] = t; + } else if (Array.isArray(n)) { + if (Array.isArray(t)) { + r[e] = n.concat(t); + } else { + n.push(t); + } + } else { + if (Array.isArray(t)) { + r[e] = [n].concat(t); + } else { + r[e] = [n, t]; + } + } + } + } + function Yt(t, r, n, e, i) { + if (e == null || Jt(t, e)) { + return; + } else { + t.push(e); + } + if (Zt(e)) { + var a = J(e, "name"); + var o = e.value; + if (e.multiple) { + o = I(e.querySelectorAll("option:checked")).map(function (e) { + return e.value; + }); + } + if (e.files) { + o = I(e.files); + } + Kt(a, o, r); + if (i) { + Qt(e, n); + } + } + if (h(e, "form")) { + var s = e.elements; + te(s, function (e) { + Yt(t, r, n, e, i); + }); + } + } + function Qt(e, t) { + if (e.willValidate) { + oe(e, "htmx:validation:validate"); + if (!e.checkValidity()) { + t.push({ + elt: e, + message: e.validationMessage, + validity: e.validity, + }); + oe(e, "htmx:validation:failed", { + message: e.validationMessage, + validity: e.validity, + }); + } + } + } + function er(e, t) { + var r = []; + var n = {}; + var i = {}; + var a = []; + var o = ee(e); + var s = + (h(e, "form") && e.noValidate !== true) || + Z(e, "hx-validate") === "true"; + if (o.lastButtonClicked) { + s = s && o.lastButtonClicked.formNoValidate !== true; + } + if (t !== "get") { + Yt(r, i, a, d(e, "form"), s); + } + Yt(r, n, a, e, s); + if ( + o.lastButtonClicked || + e.tagName === "BUTTON" || + (e.tagName === "INPUT" && J(e, "type") === "submit") + ) { + var l = o.lastButtonClicked || e; + var u = J(l, "name"); + Kt(u, l.value, i); + } + var f = ce(e, "hx-include"); + te(f, function (e) { + Yt(r, n, a, e, s); + if (!h(e, "form")) { + te(e.querySelectorAll($e), function (e) { + Yt(r, n, a, e, s); + }); + } + }); + n = ne(n, i); + return { errors: a, values: n }; + } + function tr(e, t, r) { + if (e !== "") { + e += "&"; + } + if (String(r) === "[object Object]") { + r = JSON.stringify(r); + } + var n = encodeURIComponent(r); + e += encodeURIComponent(t) + "=" + n; + return e; + } + function rr(e) { + var t = ""; + for (var r in e) { + if (e.hasOwnProperty(r)) { + var n = e[r]; + if (Array.isArray(n)) { + te(n, function (e) { + t = tr(t, r, e); + }); + } else { + t = tr(t, r, n); + } + } + } + return t; + } + function nr(e) { + var t = new FormData(); + for (var r in e) { + if (e.hasOwnProperty(r)) { + var n = e[r]; + if (Array.isArray(n)) { + te(n, function (e) { + t.append(r, e); + }); + } else { + t.append(r, n); + } + } + } + return t; + } + function ir(e, t, r) { + var n = { + "HX-Request": "true", + "HX-Trigger": J(e, "id"), + "HX-Trigger-Name": J(e, "name"), + "HX-Target": Z(t, "id"), + "HX-Current-URL": K().location.href, + }; + cr(e, "hx-headers", false, n); + if (r !== undefined) { + n["HX-Prompt"] = r; + } + if (ee(e).boosted) { + n["HX-Boosted"] = "true"; + } + return n; + } + function ar(t, e) { + var r = Y(e, "hx-params"); + if (r) { + if (r === "none") { + return {}; + } else if (r === "*") { + return t; + } else if (r.indexOf("not ") === 0) { + te(r.substr(4).split(","), function (e) { + e = e.trim(); + delete t[e]; + }); + return t; + } else { + var n = {}; + te(r.split(","), function (e) { + e = e.trim(); + n[e] = t[e]; + }); + return n; + } + } else { + return t; + } + } + function or(e) { + return J(e, "href") && J(e, "href").indexOf("#") >= 0; + } + function sr(e, t) { + var r = t ? t : Y(e, "hx-swap"); + var n = { + swapStyle: ee(e).boosted ? "innerHTML" : G.config.defaultSwapStyle, + swapDelay: G.config.defaultSwapDelay, + settleDelay: G.config.defaultSettleDelay, + }; + if (ee(e).boosted && !or(e)) { + n["show"] = "top"; + } + if (r) { + var i = P(r); + if (i.length > 0) { + n["swapStyle"] = i[0]; + for (var a = 1; a < i.length; a++) { + var o = i[a]; + if (o.indexOf("swap:") === 0) { + n["swapDelay"] = v(o.substr(5)); + } + if (o.indexOf("settle:") === 0) { + n["settleDelay"] = v(o.substr(7)); + } + if (o.indexOf("transition:") === 0) { + n["transition"] = o.substr(11) === "true"; + } + if (o.indexOf("scroll:") === 0) { + var s = o.substr(7); + var l = s.split(":"); + var u = l.pop(); + var f = l.length > 0 ? l.join(":") : null; + n["scroll"] = u; + n["scrollTarget"] = f; + } + if (o.indexOf("show:") === 0) { + var c = o.substr(5); + var l = c.split(":"); + var h = l.pop(); + var f = l.length > 0 ? l.join(":") : null; + n["show"] = h; + n["showTarget"] = f; + } + if (o.indexOf("focus-scroll:") === 0) { + var d = o.substr("focus-scroll:".length); + n["focusScroll"] = d == "true"; + } + } + } + } + return n; + } + function lr(e) { + return ( + Y(e, "hx-encoding") === "multipart/form-data" || + (h(e, "form") && J(e, "enctype") === "multipart/form-data") + ); + } + function ur(t, r, n) { + var i = null; + w(r, function (e) { + if (i == null) { + i = e.encodeParameters(t, n, r); + } + }); + if (i != null) { + return i; + } else { + if (lr(r)) { + return nr(n); + } else { + return rr(n); + } + } + } + function S(e) { + return { tasks: [], elts: [e] }; + } + function fr(e, t) { + var r = e[0]; + var n = e[e.length - 1]; + if (t.scroll) { + var i = null; + if (t.scrollTarget) { + i = ie(r, t.scrollTarget); + } + if (t.scroll === "top" && (r || i)) { + i = i || r; + i.scrollTop = 0; + } + if (t.scroll === "bottom" && (n || i)) { + i = i || n; + i.scrollTop = i.scrollHeight; + } + } + if (t.show) { + var i = null; + if (t.showTarget) { + var a = t.showTarget; + if (t.showTarget === "window") { + a = "body"; + } + i = ie(r, a); + } + if (t.show === "top" && (r || i)) { + i = i || r; + i.scrollIntoView({ + block: "start", + behavior: G.config.scrollBehavior, + }); + } + if (t.show === "bottom" && (n || i)) { + i = i || n; + i.scrollIntoView({ block: "end", behavior: G.config.scrollBehavior }); + } + } + } + function cr(e, t, r, n) { + if (n == null) { + n = {}; + } + if (e == null) { + return n; + } + var i = Z(e, t); + if (i) { + var a = i.trim(); + var o = r; + if (a === "unset") { + return null; + } + if (a.indexOf("javascript:") === 0) { + a = a.substr(11); + o = true; + } else if (a.indexOf("js:") === 0) { + a = a.substr(3); + o = true; + } + if (a.indexOf("{") !== 0) { + a = "{" + a + "}"; + } + var s; + if (o) { + s = hr( + e, + function () { + return Function("return (" + a + ")")(); + }, + {}, + ); + } else { + s = y(a); + } + for (var l in s) { + if (s.hasOwnProperty(l)) { + if (n[l] == null) { + n[l] = s[l]; + } + } + } + } + return cr(u(e), t, r, n); + } + function hr(e, t, r) { + if (G.config.allowEval) { + return t(); + } else { + ae(e, "htmx:evalDisallowedError"); + return r; + } + } + function dr(e, t) { + return cr(e, "hx-vars", true, t); + } + function vr(e, t) { + return cr(e, "hx-vals", false, t); + } + function gr(e) { + return ne(dr(e), vr(e)); + } + function pr(t, r, n) { + if (n !== null) { + try { + t.setRequestHeader(r, n); + } catch (e) { + t.setRequestHeader(r, encodeURIComponent(n)); + t.setRequestHeader(r + "-URI-AutoEncoded", "true"); + } + } + } + function mr(t) { + if (t.responseURL && typeof URL !== "undefined") { + try { + var e = new URL(t.responseURL); + return e.pathname + e.search; + } catch (e) { + ae(K().body, "htmx:badResponseUrl", { url: t.responseURL }); + } + } + } + function E(e, t) { + return e.getAllResponseHeaders().match(t); + } + function xr(e, t, r) { + e = e.toLowerCase(); + if (r) { + if (r instanceof Element || L(r, "String")) { + return se(e, t, null, null, { + targetOverride: s(r), + returnPromise: true, + }); + } else { + return se(e, t, s(r.source), r.event, { + handler: r.handler, + headers: r.headers, + values: r.values, + targetOverride: s(r.target), + swapOverride: r.swap, + returnPromise: true, + }); + } + } else { + return se(e, t, null, null, { returnPromise: true }); + } + } + function yr(e) { + var t = []; + while (e) { + t.push(e); + e = e.parentElement; + } + return t; + } + function se(e, t, n, r, i, M) { + var a = null; + var o = null; + i = i != null ? i : {}; + if (i.returnPromise && typeof Promise !== "undefined") { + var s = new Promise(function (e, t) { + a = e; + o = t; + }); + } + if (n == null) { + n = K().body; + } + var D = i.handler || wr; + if (!re(n)) { + return; + } + var l = i.targetOverride || de(n); + if (l == null || l == fe) { + ae(n, "htmx:targetError", { target: Z(n, "hx-target") }); + return; + } + if (!M) { + var X = function () { + return se(e, t, n, r, i, true); + }; + var F = { + target: l, + elt: n, + path: t, + verb: e, + triggeringEvent: r, + etc: i, + issueRequest: X, + }; + if (oe(n, "htmx:confirm", F) === false) { + return; + } + } + var u = n; + var f = ee(n); + var c = Y(n, "hx-sync"); + var h = null; + var d = false; + if (c) { + var v = c.split(":"); + var g = v[0].trim(); + if (g === "this") { + u = he(n, "hx-sync"); + } else { + u = ie(n, g); + } + c = (v[1] || "drop").trim(); + f = ee(u); + if (c === "drop" && f.xhr && f.abortable !== true) { + return; + } else if (c === "abort") { + if (f.xhr) { + return; + } else { + d = true; + } + } else if (c === "replace") { + oe(u, "htmx:abort"); + } else if (c.indexOf("queue") === 0) { + var U = c.split(" "); + h = (U[1] || "last").trim(); + } + } + if (f.xhr) { + if (f.abortable) { + oe(u, "htmx:abort"); + } else { + if (h == null) { + if (r) { + var p = ee(r); + if (p && p.triggerSpec && p.triggerSpec.queue) { + h = p.triggerSpec.queue; + } + } + if (h == null) { + h = "last"; + } + } + if (f.queuedRequests == null) { + f.queuedRequests = []; + } + if (h === "first" && f.queuedRequests.length === 0) { + f.queuedRequests.push(function () { + se(e, t, n, r, i); + }); + } else if (h === "all") { + f.queuedRequests.push(function () { + se(e, t, n, r, i); + }); + } else if (h === "last") { + f.queuedRequests = []; + f.queuedRequests.push(function () { + se(e, t, n, r, i); + }); + } + return; + } + } + var m = new XMLHttpRequest(); + f.xhr = m; + f.abortable = d; + var x = function () { + f.xhr = null; + f.abortable = false; + if (f.queuedRequests != null && f.queuedRequests.length > 0) { + var e = f.queuedRequests.shift(); + e(); + } + }; + var y = Y(n, "hx-prompt"); + if (y) { + var b = prompt(y); + if (b === null || !oe(n, "htmx:prompt", { prompt: b, target: l })) { + Q(a); + x(); + return s; + } + } + var w = Y(n, "hx-confirm"); + if (w) { + if (!confirm(w)) { + Q(a); + x(); + return s; + } + } + var S = ir(n, l, b); + if (i.headers) { + S = ne(S, i.headers); + } + var E = er(n, e); + var C = E.errors; + var R = E.values; + if (i.values) { + R = ne(R, i.values); + } + var B = gr(n); + var O = ne(R, B); + var T = ar(O, n); + if (e !== "get" && !lr(n)) { + S["Content-Type"] = "application/x-www-form-urlencoded"; + } + if (G.config.getCacheBusterParam && e === "get") { + T["org.htmx.cache-buster"] = J(l, "id") || "true"; + } + if (t == null || t === "") { + t = K().location.href; + } + var q = cr(n, "hx-request"); + var V = ee(n).boosted; + var H = G.config.methodsThatUseUrlParams.indexOf(e) >= 0; + var L = { + boosted: V, + useUrlParams: H, + parameters: T, + unfilteredParameters: O, + headers: S, + target: l, + verb: e, + errors: C, + withCredentials: + i.credentials || q.credentials || G.config.withCredentials, + timeout: i.timeout || q.timeout || G.config.timeout, + path: t, + triggeringEvent: r, + }; + if (!oe(n, "htmx:configRequest", L)) { + Q(a); + x(); + return s; + } + t = L.path; + e = L.verb; + S = L.headers; + T = L.parameters; + C = L.errors; + H = L.useUrlParams; + if (C && C.length > 0) { + oe(n, "htmx:validation:halted", L); + Q(a); + x(); + return s; + } + var j = t.split("#"); + var W = j[0]; + var A = j[1]; + var N = t; + if (H) { + N = W; + var _ = Object.keys(T).length !== 0; + if (_) { + if (N.indexOf("?") < 0) { + N += "?"; + } else { + N += "&"; + } + N += rr(T); + if (A) { + N += "#" + A; + } + } + } + m.open(e.toUpperCase(), N, true); + m.overrideMimeType("text/html"); + m.withCredentials = L.withCredentials; + m.timeout = L.timeout; + if (q.noHeaders) { + } else { + for (var I in S) { + if (S.hasOwnProperty(I)) { + var z = S[I]; + pr(m, I, z); + } + } + } + var k = { + xhr: m, + target: l, + requestConfig: L, + etc: i, + boosted: V, + pathInfo: { requestPath: t, finalRequestPath: N, anchor: A }, + }; + m.onload = function () { + try { + var e = yr(n); + k.pathInfo.responsePath = mr(m); + D(n, k); + Gt(P); + oe(n, "htmx:afterRequest", k); + oe(n, "htmx:afterOnLoad", k); + if (!re(n)) { + var t = null; + while (e.length > 0 && t == null) { + var r = e.shift(); + if (re(r)) { + t = r; + } + } + if (t) { + oe(t, "htmx:afterRequest", k); + oe(t, "htmx:afterOnLoad", k); + } + } + Q(a); + x(); + } catch (e) { + ae(n, "htmx:onLoadError", ne({ error: e }, k)); + throw e; + } + }; + m.onerror = function () { + Gt(P); + ae(n, "htmx:afterRequest", k); + ae(n, "htmx:sendError", k); + Q(o); + x(); + }; + m.onabort = function () { + Gt(P); + ae(n, "htmx:afterRequest", k); + ae(n, "htmx:sendAbort", k); + Q(o); + x(); + }; + m.ontimeout = function () { + Gt(P); + ae(n, "htmx:afterRequest", k); + ae(n, "htmx:timeout", k); + Q(o); + x(); + }; + if (!oe(n, "htmx:beforeRequest", k)) { + Q(a); + x(); + return s; + } + var P = $t(n); + te(["loadstart", "loadend", "progress", "abort"], function (t) { + te([m, m.upload], function (e) { + e.addEventListener(t, function (e) { + oe(n, "htmx:xhr:" + t, { + lengthComputable: e.lengthComputable, + loaded: e.loaded, + total: e.total, + }); + }); + }); + }); + oe(n, "htmx:beforeSend", k); + var $ = H ? null : ur(m, n, T); + m.send($); + return s; + } + function br(e, t) { + var r = t.xhr; + var n = null; + var i = null; + if (E(r, /HX-Push:/i)) { + n = r.getResponseHeader("HX-Push"); + i = "push"; + } else if (E(r, /HX-Push-Url:/i)) { + n = r.getResponseHeader("HX-Push-Url"); + i = "push"; + } else if (E(r, /HX-Replace-Url:/i)) { + n = r.getResponseHeader("HX-Replace-Url"); + i = "replace"; + } + if (n) { + if (n === "false") { + return {}; + } else { + return { type: i, path: n }; + } + } + var a = t.pathInfo.finalRequestPath; + var o = t.pathInfo.responsePath; + var s = Y(e, "hx-push-url"); + var l = Y(e, "hx-replace-url"); + var u = ee(e).boosted; + var f = null; + var c = null; + if (s) { + f = "push"; + c = s; + } else if (l) { + f = "replace"; + c = l; + } else if (u) { + f = "push"; + c = o || a; + } + if (c) { + if (c === "false") { + return {}; + } + if (c === "true") { + c = o || a; + } + if (t.pathInfo.anchor && c.indexOf("#") === -1) { + c = c + "#" + t.pathInfo.anchor; + } + return { type: f, path: c }; + } else { + return {}; + } + } + function wr(l, u) { + var f = u.xhr; + var c = u.target; + var e = u.etc; + if (!oe(l, "htmx:beforeOnLoad", u)) return; + if (E(f, /HX-Trigger:/i)) { + Xe(f, "HX-Trigger", l); + } + if (E(f, /HX-Location:/i)) { + Bt(); + var t = f.getResponseHeader("HX-Location"); + var h; + if (t.indexOf("{") === 0) { + h = y(t); + t = h["path"]; + delete h["path"]; + } + xr("GET", t, h).then(function () { + Vt(t); + }); + return; + } + if (E(f, /HX-Redirect:/i)) { + location.href = f.getResponseHeader("HX-Redirect"); + return; + } + if (E(f, /HX-Refresh:/i)) { + if ("true" === f.getResponseHeader("HX-Refresh")) { + location.reload(); + return; + } + } + if (E(f, /HX-Retarget:/i)) { + u.target = K().querySelector(f.getResponseHeader("HX-Retarget")); + } + var d = br(l, u); + var r = f.status >= 200 && f.status < 400 && f.status !== 204; + var v = f.response; + var n = f.status >= 400; + var i = ne({ shouldSwap: r, serverResponse: v, isError: n }, u); + if (!oe(c, "htmx:beforeSwap", i)) return; + c = i.target; + v = i.serverResponse; + n = i.isError; + u.target = c; + u.failed = n; + u.successful = !n; + if (i.shouldSwap) { + if (f.status === 286) { + Je(l); + } + w(l, function (e) { + v = e.transformResponse(v, f, l); + }); + if (d.type) { + Bt(); + } + var a = e.swapOverride; + if (E(f, /HX-Reswap:/i)) { + a = f.getResponseHeader("HX-Reswap"); + } + var h = sr(l, a); + c.classList.add(G.config.swappingClass); + var g = null; + var p = null; + var o = function () { + try { + var e = document.activeElement; + var t = {}; + try { + t = { + elt: e, + start: e ? e.selectionStart : null, + end: e ? e.selectionEnd : null, + }; + } catch (e) {} + var r; + if (E(f, /HX-Reselect:/i)) { + r = f.getResponseHeader("HX-Reselect"); + } + var n = S(c); + De(h.swapStyle, c, l, v, n, r); + if (t.elt && !re(t.elt) && J(t.elt, "id")) { + var i = document.getElementById(J(t.elt, "id")); + var a = { + preventScroll: + h.focusScroll !== undefined + ? !h.focusScroll + : !G.config.defaultFocusScroll, + }; + if (i) { + if (t.start && i.setSelectionRange) { + try { + i.setSelectionRange(t.start, t.end); + } catch (e) {} + } + i.focus(a); + } + } + c.classList.remove(G.config.swappingClass); + te(n.elts, function (e) { + if (e.classList) { + e.classList.add(G.config.settlingClass); + } + oe(e, "htmx:afterSwap", u); + }); + if (E(f, /HX-Trigger-After-Swap:/i)) { + var o = l; + if (!re(l)) { + o = K().body; + } + Xe(f, "HX-Trigger-After-Swap", o); + } + var s = function () { + te(n.tasks, function (e) { + e.call(); + }); + te(n.elts, function (e) { + if (e.classList) { + e.classList.remove(G.config.settlingClass); + } + oe(e, "htmx:afterSettle", u); + }); + if (d.type) { + if (d.type === "push") { + Vt(d.path); + oe(K().body, "htmx:pushedIntoHistory", { path: d.path }); + } else { + jt(d.path); + oe(K().body, "htmx:replacedInHistory", { path: d.path }); + } + } + if (u.pathInfo.anchor) { + var e = b("#" + u.pathInfo.anchor); + if (e) { + e.scrollIntoView({ block: "start", behavior: "auto" }); + } + } + if (n.title) { + var t = b("title"); + if (t) { + t.innerHTML = n.title; + } else { + window.document.title = n.title; + } + } + fr(n.elts, h); + if (E(f, /HX-Trigger-After-Settle:/i)) { + var r = l; + if (!re(l)) { + r = K().body; + } + Xe(f, "HX-Trigger-After-Settle", r); + } + Q(g); + }; + if (h.settleDelay > 0) { + setTimeout(s, h.settleDelay); + } else { + s(); + } + } catch (e) { + ae(l, "htmx:swapError", u); + Q(p); + throw e; + } + }; + var s = G.config.globalViewTransitions; + if (h.hasOwnProperty("transition")) { + s = h.transition; + } + if ( + s && + oe(l, "htmx:beforeTransition", u) && + typeof Promise !== "undefined" && + document.startViewTransition + ) { + var m = new Promise(function (e, t) { + g = e; + p = t; + }); + var x = o; + o = function () { + document.startViewTransition(function () { + x(); + return m; + }); + }; + } + if (h.swapDelay > 0) { + setTimeout(o, h.swapDelay); + } else { + o(); + } + } + if (n) { + ae( + l, + "htmx:responseError", + ne( + { + error: + "Response Status Error Code " + + f.status + + " from " + + u.pathInfo.requestPath, + }, + u, + ), + ); + } + } + var Sr = {}; + function Er() { + return { + init: function (e) { + return null; + }, + onEvent: function (e, t) { + return true; + }, + transformResponse: function (e, t, r) { + return e; + }, + isInlineSwap: function (e) { + return false; + }, + handleSwap: function (e, t, r, n) { + return false; + }, + encodeParameters: function (e, t, r) { + return null; + }, + }; + } + function Cr(e, t) { + if (t.init) { + t.init(C); + } + Sr[e] = ne(Er(), t); + } + function Rr(e) { + delete Sr[e]; + } + function Or(e, r, n) { + if (e == undefined) { + return r; + } + if (r == undefined) { + r = []; + } + if (n == undefined) { + n = []; + } + var t = Z(e, "hx-ext"); + if (t) { + te(t.split(","), function (e) { + e = e.replace(/ /g, ""); + if (e.slice(0, 7) == "ignore:") { + n.push(e.slice(7)); + return; + } + if (n.indexOf(e) < 0) { + var t = Sr[e]; + if (t && r.indexOf(t) < 0) { + r.push(t); + } + } + }); + } + return Or(u(e), r, n); + } + function Tr(e) { + if (K().readyState !== "loading") { + e(); + } else { + K().addEventListener("DOMContentLoaded", e); + } + } + function qr() { + if (G.config.includeIndicatorStyles !== false) { + K().head.insertAdjacentHTML( + "beforeend", + "", + ); + } + } + function Hr() { + var e = K().querySelector('meta[name="htmx-config"]'); + if (e) { + return y(e.content); + } else { + return null; + } + } + function Lr() { + var e = Hr(); + if (e) { + G.config = ne(G.config, e); + } + } + Tr(function () { + Lr(); + qr(); + var e = K().body; + Nt(e); + var t = K().querySelectorAll( + "[hx-trigger='restored'],[data-hx-trigger='restored']", + ); + e.addEventListener("htmx:abort", function (e) { + var t = e.target; + var r = ee(t); + if (r && r.xhr) { + r.xhr.abort(); + } + }); + var r = window.onpopstate; + window.onpopstate = function (e) { + if (e.state && e.state.htmx) { + zt(); + te(t, function (e) { + oe(e, "htmx:restored", { document: K(), triggerEvent: oe }); + }); + } else { + if (r) { + r(e); + } + } + }; + setTimeout(function () { + oe(e, "htmx:load", {}); + e = null; + }, 0); + }); + return G; + })(); +}); diff --git a/assets/main.css b/assets/main.css index b59031a..9b9c0ca 100644 --- a/assets/main.css +++ b/assets/main.css @@ -44,7 +44,7 @@ html { -o-tab-size: 4; tab-size: 4; /* 3 */ - font-family: Inter var, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */ font-feature-settings: normal; /* 5 */ @@ -534,6 +534,19 @@ video { --tw-backdrop-sepia: ; } +.m-auto { + margin: auto; +} + +.my-4 { + margin-top: 1rem; + margin-bottom: 1rem; +} + +.block { + display: block; +} + .flex { display: flex; } @@ -581,4 +594,4 @@ video { .text-white { --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity)); -} \ No newline at end of file +} diff --git a/flake.nix b/flake.nix index cb3854f..2d4380f 100644 --- a/flake.nix +++ b/flake.nix @@ -17,7 +17,12 @@ run-dev = pkgs.writeShellScriptBin "run-dev" '' #!/usr/bin/env zsh set -e - cargo run test_data/test.json + cargo watch -x 'run test_data/test.json' + ''; + run-prettier = pkgs.writeShellScriptBin "run-prettier" '' + #!/usr/bin/env zsh + set -e + pnpm prettier --write --ignore-unknown . ''; in { @@ -30,6 +35,7 @@ pkgconfig rustc cargo + cargo-watch nodejs_20 nodePackages_latest.pnpm ]; @@ -43,5 +49,6 @@ build-tailwind = build-tailwind; run-dev = run-dev; + run-prettier = run-prettier; }; } diff --git a/package.json b/package.json index 781dee2..28b226a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { - "devDependencies": { - "prettier": "^3.0.1", - "prettier-plugin-tailwindcss": "^0.4.1", - "tailwindcss": "^3.3.3" - } + "devDependencies": { + "prettier": "^3.0.1", + "prettier-plugin-tailwindcss": "^0.4.1", + "tailwindcss": "^3.3.3" + } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index abeb7ba..931091d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,124 +1,181 @@ -lockfileVersion: 5.4 - -specifiers: - prettier: ^3.0.1 - prettier-plugin-tailwindcss: ^0.4.1 - tailwindcss: ^3.3.3 +lockfileVersion: "6.0" devDependencies: - prettier: 3.0.1 - prettier-plugin-tailwindcss: 0.4.1_prettier@3.0.1 - tailwindcss: 3.3.3 + prettier: + specifier: ^3.0.1 + version: 3.0.1 + prettier-plugin-tailwindcss: + specifier: ^0.4.1 + version: 0.4.1(prettier@3.0.1) + tailwindcss: + specifier: ^3.3.3 + version: 3.3.3 packages: - - /@alloc/quick-lru/5.2.0: - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} - engines: {node: '>=10'} + /@alloc/quick-lru@5.2.0: + resolution: + { + integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==, + } + engines: { node: ">=10" } dev: true - /@jridgewell/gen-mapping/0.3.3: - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} - engines: {node: '>=6.0.0'} + /@jridgewell/gen-mapping@0.3.3: + resolution: + { + integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==, + } + engines: { node: ">=6.0.0" } dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.18 + "@jridgewell/set-array": 1.1.2 + "@jridgewell/sourcemap-codec": 1.4.15 + "@jridgewell/trace-mapping": 0.3.18 dev: true - /@jridgewell/resolve-uri/3.1.0: - resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} - engines: {node: '>=6.0.0'} + /@jridgewell/resolve-uri@3.1.0: + resolution: + { + integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==, + } + engines: { node: ">=6.0.0" } dev: true - /@jridgewell/set-array/1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} - engines: {node: '>=6.0.0'} + /@jridgewell/set-array@1.1.2: + resolution: + { + integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==, + } + engines: { node: ">=6.0.0" } dev: true - /@jridgewell/sourcemap-codec/1.4.14: - resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + /@jridgewell/sourcemap-codec@1.4.14: + resolution: + { + integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==, + } dev: true - /@jridgewell/sourcemap-codec/1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + /@jridgewell/sourcemap-codec@1.4.15: + resolution: + { + integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==, + } dev: true - /@jridgewell/trace-mapping/0.3.18: - resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} + /@jridgewell/trace-mapping@0.3.18: + resolution: + { + integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==, + } dependencies: - '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.14 + "@jridgewell/resolve-uri": 3.1.0 + "@jridgewell/sourcemap-codec": 1.4.14 dev: true - /@nodelib/fs.scandir/2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} + /@nodelib/fs.scandir@2.1.5: + resolution: + { + integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, + } + engines: { node: ">= 8" } dependencies: - '@nodelib/fs.stat': 2.0.5 + "@nodelib/fs.stat": 2.0.5 run-parallel: 1.2.0 dev: true - /@nodelib/fs.stat/2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} + /@nodelib/fs.stat@2.0.5: + resolution: + { + integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, + } + engines: { node: ">= 8" } dev: true - /@nodelib/fs.walk/1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} + /@nodelib/fs.walk@1.2.8: + resolution: + { + integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, + } + engines: { node: ">= 8" } dependencies: - '@nodelib/fs.scandir': 2.1.5 + "@nodelib/fs.scandir": 2.1.5 fastq: 1.15.0 dev: true - /any-promise/1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + /any-promise@1.3.0: + resolution: + { + integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==, + } dev: true - /anymatch/3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} + /anymatch@3.1.3: + resolution: + { + integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, + } + engines: { node: ">= 8" } dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 dev: true - /arg/5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + /arg@5.0.2: + resolution: + { + integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==, + } dev: true - /balanced-match/1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + /balanced-match@1.0.2: + resolution: + { + integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, + } dev: true - /binary-extensions/2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} + /binary-extensions@2.2.0: + resolution: + { + integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==, + } + engines: { node: ">=8" } dev: true - /brace-expansion/1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + /brace-expansion@1.1.11: + resolution: + { + integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, + } dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 dev: true - /braces/3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} + /braces@3.0.2: + resolution: + { + integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, + } + engines: { node: ">=8" } dependencies: fill-range: 7.0.1 dev: true - /camelcase-css/2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} + /camelcase-css@2.0.1: + resolution: + { + integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==, + } + engines: { node: ">= 6" } dev: true - /chokidar/3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} + /chokidar@3.5.3: + resolution: + { + integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==, + } + engines: { node: ">= 8.10.0" } dependencies: anymatch: 3.1.3 braces: 3.0.2 @@ -131,85 +188,127 @@ packages: fsevents: 2.3.2 dev: true - /commander/4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} + /commander@4.1.1: + resolution: + { + integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==, + } + engines: { node: ">= 6" } dev: true - /concat-map/0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + /concat-map@0.0.1: + resolution: + { + integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, + } dev: true - /cssesc/3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} + /cssesc@3.0.0: + resolution: + { + integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==, + } + engines: { node: ">=4" } hasBin: true dev: true - /didyoumean/1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + /didyoumean@1.2.2: + resolution: + { + integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==, + } dev: true - /dlv/1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + /dlv@1.1.3: + resolution: + { + integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==, + } dev: true - /fast-glob/3.3.1: - resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} - engines: {node: '>=8.6.0'} + /fast-glob@3.3.1: + resolution: + { + integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==, + } + engines: { node: ">=8.6.0" } dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 + "@nodelib/fs.stat": 2.0.5 + "@nodelib/fs.walk": 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 dev: true - /fastq/1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + /fastq@1.15.0: + resolution: + { + integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==, + } dependencies: reusify: 1.0.4 dev: true - /fill-range/7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} + /fill-range@7.0.1: + resolution: + { + integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, + } + engines: { node: ">=8" } dependencies: to-regex-range: 5.0.1 dev: true - /fs.realpath/1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + /fs.realpath@1.0.0: + resolution: + { + integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, + } dev: true - /fsevents/2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + /fsevents@2.3.2: + resolution: + { + integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, + } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } os: [darwin] requiresBuild: true dev: true optional: true - /function-bind/1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /function-bind@1.1.1: + resolution: + { + integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, + } dev: true - /glob-parent/5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + /glob-parent@5.1.2: + resolution: + { + integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, + } + engines: { node: ">= 6" } dependencies: is-glob: 4.0.3 dev: true - /glob-parent/6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + /glob-parent@6.0.2: + resolution: + { + integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, + } + engines: { node: ">=10.13.0" } dependencies: is-glob: 4.0.3 dev: true - /glob/7.1.6: - resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + /glob@7.1.6: + resolution: + { + integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==, + } dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -219,153 +318,234 @@ packages: path-is-absolute: 1.0.1 dev: true - /has/1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} + /has@1.0.3: + resolution: + { + integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, + } + engines: { node: ">= 0.4.0" } dependencies: function-bind: 1.1.1 dev: true - /inflight/1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + /inflight@1.0.6: + resolution: + { + integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, + } dependencies: once: 1.4.0 wrappy: 1.0.2 dev: true - /inherits/2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + /inherits@2.0.4: + resolution: + { + integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, + } dev: true - /is-binary-path/2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} + /is-binary-path@2.1.0: + resolution: + { + integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, + } + engines: { node: ">=8" } dependencies: binary-extensions: 2.2.0 dev: true - /is-core-module/2.12.1: - resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} + /is-core-module@2.12.1: + resolution: + { + integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==, + } dependencies: has: 1.0.3 dev: true - /is-extglob/2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + /is-extglob@2.1.1: + resolution: + { + integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, + } + engines: { node: ">=0.10.0" } dev: true - /is-glob/4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + /is-glob@4.0.3: + resolution: + { + integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, + } + engines: { node: ">=0.10.0" } dependencies: is-extglob: 2.1.1 dev: true - /is-number/7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} + /is-number@7.0.0: + resolution: + { + integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, + } + engines: { node: ">=0.12.0" } dev: true - /jiti/1.19.1: - resolution: {integrity: sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==} + /jiti@1.19.1: + resolution: + { + integrity: sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==, + } hasBin: true dev: true - /lilconfig/2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} + /lilconfig@2.1.0: + resolution: + { + integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==, + } + engines: { node: ">=10" } dev: true - /lines-and-columns/1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + /lines-and-columns@1.2.4: + resolution: + { + integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, + } dev: true - /merge2/1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} + /merge2@1.4.1: + resolution: + { + integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, + } + engines: { node: ">= 8" } dev: true - /micromatch/4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} + /micromatch@4.0.5: + resolution: + { + integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, + } + engines: { node: ">=8.6" } dependencies: braces: 3.0.2 picomatch: 2.3.1 dev: true - /minimatch/3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + /minimatch@3.1.2: + resolution: + { + integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, + } dependencies: brace-expansion: 1.1.11 dev: true - /mz/2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + /mz@2.7.0: + resolution: + { + integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==, + } dependencies: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 dev: true - /nanoid/3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + /nanoid@3.3.6: + resolution: + { + integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==, + } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } hasBin: true dev: true - /normalize-path/3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} + /normalize-path@3.0.0: + resolution: + { + integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, + } + engines: { node: ">=0.10.0" } dev: true - /object-assign/4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} + /object-assign@4.1.1: + resolution: + { + integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, + } + engines: { node: ">=0.10.0" } dev: true - /object-hash/3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} + /object-hash@3.0.0: + resolution: + { + integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==, + } + engines: { node: ">= 6" } dev: true - /once/1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + /once@1.4.0: + resolution: + { + integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, + } dependencies: wrappy: 1.0.2 dev: true - /path-is-absolute/1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} + /path-is-absolute@1.0.1: + resolution: + { + integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, + } + engines: { node: ">=0.10.0" } dev: true - /path-parse/1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + /path-parse@1.0.7: + resolution: + { + integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, + } dev: true - /picocolors/1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + /picocolors@1.0.0: + resolution: + { + integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, + } dev: true - /picomatch/2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} + /picomatch@2.3.1: + resolution: + { + integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, + } + engines: { node: ">=8.6" } dev: true - /pify/2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} + /pify@2.3.0: + resolution: + { + integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==, + } + engines: { node: ">=0.10.0" } dev: true - /pirates/4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} + /pirates@4.0.6: + resolution: + { + integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==, + } + engines: { node: ">= 6" } dev: true - /postcss-import/15.1.0_postcss@8.4.27: - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} - engines: {node: '>=14.0.0'} + /postcss-import@15.1.0(postcss@8.4.27): + resolution: + { + integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==, + } + engines: { node: ">=14.0.0" } peerDependencies: postcss: ^8.0.0 dependencies: @@ -375,9 +555,12 @@ packages: resolve: 1.22.2 dev: true - /postcss-js/4.0.1_postcss@8.4.27: - resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} - engines: {node: ^12 || ^14 || >= 16} + /postcss-js@4.0.1(postcss@8.4.27): + resolution: + { + integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==, + } + engines: { node: ^12 || ^14 || >= 16 } peerDependencies: postcss: ^8.4.21 dependencies: @@ -385,12 +568,15 @@ packages: postcss: 8.4.27 dev: true - /postcss-load-config/4.0.1_postcss@8.4.27: - resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} - engines: {node: '>= 14'} + /postcss-load-config@4.0.1(postcss@8.4.27): + resolution: + { + integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==, + } + engines: { node: ">= 14" } peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' + postcss: ">=8.0.9" + ts-node: ">=9.0.0" peerDependenciesMeta: postcss: optional: true @@ -402,9 +588,12 @@ packages: yaml: 2.3.1 dev: true - /postcss-nested/6.0.1_postcss@8.4.27: - resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} - engines: {node: '>=12.0'} + /postcss-nested@6.0.1(postcss@8.4.27): + resolution: + { + integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==, + } + engines: { node: ">=12.0" } peerDependencies: postcss: ^8.2.14 dependencies: @@ -412,57 +601,69 @@ packages: postcss-selector-parser: 6.0.13 dev: true - /postcss-selector-parser/6.0.13: - resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} - engines: {node: '>=4'} + /postcss-selector-parser@6.0.13: + resolution: + { + integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==, + } + engines: { node: ">=4" } dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 dev: true - /postcss-value-parser/4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + /postcss-value-parser@4.2.0: + resolution: + { + integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, + } dev: true - /postcss/8.4.27: - resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} - engines: {node: ^10 || ^12 || >=14} + /postcss@8.4.27: + resolution: + { + integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==, + } + engines: { node: ^10 || ^12 || >=14 } dependencies: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 dev: true - /prettier-plugin-tailwindcss/0.4.1_prettier@3.0.1: - resolution: {integrity: sha512-hwn2EiJmv8M+AW4YDkbjJ6HlZCTzLyz1QlySn9sMuKV/Px0fjwldlB7tol8GzdgqtkdPtzT3iJ4UzdnYXP25Ag==} - engines: {node: '>=12.17.0'} + /prettier-plugin-tailwindcss@0.4.1(prettier@3.0.1): + resolution: + { + integrity: sha512-hwn2EiJmv8M+AW4YDkbjJ6HlZCTzLyz1QlySn9sMuKV/Px0fjwldlB7tol8GzdgqtkdPtzT3iJ4UzdnYXP25Ag==, + } + engines: { node: ">=12.17.0" } peerDependencies: - '@ianvs/prettier-plugin-sort-imports': '*' - '@prettier/plugin-pug': '*' - '@shopify/prettier-plugin-liquid': '*' - '@shufo/prettier-plugin-blade': '*' - '@trivago/prettier-plugin-sort-imports': '*' + "@ianvs/prettier-plugin-sort-imports": "*" + "@prettier/plugin-pug": "*" + "@shopify/prettier-plugin-liquid": "*" + "@shufo/prettier-plugin-blade": "*" + "@trivago/prettier-plugin-sort-imports": "*" prettier: ^2.2 || ^3.0 - prettier-plugin-astro: '*' - prettier-plugin-css-order: '*' - prettier-plugin-import-sort: '*' - prettier-plugin-jsdoc: '*' - prettier-plugin-marko: '*' - prettier-plugin-organize-attributes: '*' - prettier-plugin-organize-imports: '*' - prettier-plugin-style-order: '*' - prettier-plugin-svelte: '*' - prettier-plugin-twig-melody: '*' + prettier-plugin-astro: "*" + prettier-plugin-css-order: "*" + prettier-plugin-import-sort: "*" + prettier-plugin-jsdoc: "*" + prettier-plugin-marko: "*" + prettier-plugin-organize-attributes: "*" + prettier-plugin-organize-imports: "*" + prettier-plugin-style-order: "*" + prettier-plugin-svelte: "*" + prettier-plugin-twig-melody: "*" peerDependenciesMeta: - '@ianvs/prettier-plugin-sort-imports': + "@ianvs/prettier-plugin-sort-imports": optional: true - '@prettier/plugin-pug': + "@prettier/plugin-pug": optional: true - '@shopify/prettier-plugin-liquid': + "@shopify/prettier-plugin-liquid": optional: true - '@shufo/prettier-plugin-blade': + "@shufo/prettier-plugin-blade": optional: true - '@trivago/prettier-plugin-sort-imports': + "@trivago/prettier-plugin-sort-imports": optional: true prettier-plugin-astro: optional: true @@ -488,31 +689,46 @@ packages: prettier: 3.0.1 dev: true - /prettier/3.0.1: - resolution: {integrity: sha512-fcOWSnnpCrovBsmFZIGIy9UqK2FaI7Hqax+DIO0A9UxeVoY4iweyaFjS5TavZN97Hfehph0nhsZnjlVKzEQSrQ==} - engines: {node: '>=14'} + /prettier@3.0.1: + resolution: + { + integrity: sha512-fcOWSnnpCrovBsmFZIGIy9UqK2FaI7Hqax+DIO0A9UxeVoY4iweyaFjS5TavZN97Hfehph0nhsZnjlVKzEQSrQ==, + } + engines: { node: ">=14" } hasBin: true dev: true - /queue-microtask/1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + /queue-microtask@1.2.3: + resolution: + { + integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, + } dev: true - /read-cache/1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + /read-cache@1.0.0: + resolution: + { + integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==, + } dependencies: pify: 2.3.0 dev: true - /readdirp/3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} + /readdirp@3.6.0: + resolution: + { + integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, + } + engines: { node: ">=8.10.0" } dependencies: picomatch: 2.3.1 dev: true - /resolve/1.22.2: - resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} + /resolve@1.22.2: + resolution: + { + integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==, + } hasBin: true dependencies: is-core-module: 2.12.1 @@ -520,28 +736,40 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true - /reusify/1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + /reusify@1.0.4: + resolution: + { + integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, + } + engines: { iojs: ">=1.0.0", node: ">=0.10.0" } dev: true - /run-parallel/1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + /run-parallel@1.2.0: + resolution: + { + integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, + } dependencies: queue-microtask: 1.2.3 dev: true - /source-map-js/1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} - engines: {node: '>=0.10.0'} + /source-map-js@1.0.2: + resolution: + { + integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, + } + engines: { node: ">=0.10.0" } dev: true - /sucrase/3.34.0: - resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} - engines: {node: '>=8'} + /sucrase@3.34.0: + resolution: + { + integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==, + } + engines: { node: ">=8" } hasBin: true dependencies: - '@jridgewell/gen-mapping': 0.3.3 + "@jridgewell/gen-mapping": 0.3.3 commander: 4.1.1 glob: 7.1.6 lines-and-columns: 1.2.4 @@ -550,17 +778,23 @@ packages: ts-interface-checker: 0.1.13 dev: true - /supports-preserve-symlinks-flag/1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} + /supports-preserve-symlinks-flag@1.0.0: + resolution: + { + integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, + } + engines: { node: ">= 0.4" } dev: true - /tailwindcss/3.3.3: - resolution: {integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==} - engines: {node: '>=14.0.0'} + /tailwindcss@3.3.3: + resolution: + { + integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==, + } + engines: { node: ">=14.0.0" } hasBin: true dependencies: - '@alloc/quick-lru': 5.2.0 + "@alloc/quick-lru": 5.2.0 arg: 5.0.2 chokidar: 3.5.3 didyoumean: 1.2.2 @@ -575,10 +809,10 @@ packages: object-hash: 3.0.0 picocolors: 1.0.0 postcss: 8.4.27 - postcss-import: 15.1.0_postcss@8.4.27 - postcss-js: 4.0.1_postcss@8.4.27 - postcss-load-config: 4.0.1_postcss@8.4.27 - postcss-nested: 6.0.1_postcss@8.4.27 + postcss-import: 15.1.0(postcss@8.4.27) + postcss-js: 4.0.1(postcss@8.4.27) + postcss-load-config: 4.0.1(postcss@8.4.27) + postcss-nested: 6.0.1(postcss@8.4.27) postcss-selector-parser: 6.0.13 resolve: 1.22.2 sucrase: 3.34.0 @@ -586,39 +820,60 @@ packages: - ts-node dev: true - /thenify-all/1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} + /thenify-all@1.6.0: + resolution: + { + integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==, + } + engines: { node: ">=0.8" } dependencies: thenify: 3.3.1 dev: true - /thenify/3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + /thenify@3.3.1: + resolution: + { + integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==, + } dependencies: any-promise: 1.3.0 dev: true - /to-regex-range/5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + /to-regex-range@5.0.1: + resolution: + { + integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, + } + engines: { node: ">=8.0" } dependencies: is-number: 7.0.0 dev: true - /ts-interface-checker/0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + /ts-interface-checker@0.1.13: + resolution: + { + integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==, + } dev: true - /util-deprecate/1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + /util-deprecate@1.0.2: + resolution: + { + integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, + } dev: true - /wrappy/1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + /wrappy@1.0.2: + resolution: + { + integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, + } dev: true - /yaml/2.3.1: - resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} - engines: {node: '>= 14'} + /yaml@2.3.1: + resolution: + { + integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==, + } + engines: { node: ">= 14" } dev: true diff --git a/src/handlers.rs b/src/handlers.rs index c3fc053..c1a5138 100644 --- a/src/handlers.rs +++ b/src/handlers.rs @@ -4,7 +4,9 @@ use crate::templates::RootTemplate; use crate::util::HtmlTemplate; pub async fn root() -> impl IntoResponse { - let template = RootTemplate {}; + let template = RootTemplate { + name: "Steven" + }; HtmlTemplate(template) } diff --git a/src/styles/tailwind.css b/src/styles/tailwind.css index bd6213e..b5c61c9 100644 --- a/src/styles/tailwind.css +++ b/src/styles/tailwind.css @@ -1,3 +1,3 @@ @tailwind base; @tailwind components; -@tailwind utilities; \ No newline at end of file +@tailwind utilities; diff --git a/src/templates.rs b/src/templates.rs index 4f3803e..4865990 100644 --- a/src/templates.rs +++ b/src/templates.rs @@ -2,4 +2,14 @@ use askama::Template; #[derive(Template)] #[template(path = "root.html")] -pub struct RootTemplate; \ No newline at end of file +pub struct RootTemplate<'a>{ + pub name: &'a str, +} + +#[derive(Template)] +#[template(path="base.html")] +pub struct BaseTemplate; + +#[derive(Template)] +#[template(path="head.html")] +pub struct HeadTemplate; \ No newline at end of file diff --git a/tailwind.config.cjs b/tailwind.config.cjs index 481bb58..0960ca9 100644 --- a/tailwind.config.cjs +++ b/tailwind.config.cjs @@ -1,13 +1,7 @@ -const { fontFamily } = require('tailwindcss/defaultTheme'); - /** @type {import('tailwindcss').Config} */ module.exports = { - content: ['./templates/*.html'], + content: ["./templates/*.html"], theme: { - extend: { - fontFamily: { - sans: ['Inter var', ...fontFamily.sans], - }, - }, + extend: {}, }, -}; \ No newline at end of file +}; diff --git a/templates/base.html b/templates/base.html new file mode 100644 index 0000000..818da0b --- /dev/null +++ b/templates/base.html @@ -0,0 +1,11 @@ + + + + SK TCG Trader + + + + + {% block body %}{% endblock %} + + diff --git a/templates/head.html b/templates/head.html new file mode 100644 index 0000000..e69de29 diff --git a/templates/root.html b/templates/root.html index 657f8c4..1ab0dd0 100644 --- a/templates/root.html +++ b/templates/root.html @@ -1,20 +1,20 @@ - - - - SK TCG Trader - - - - -
-

SK TCG Trader

-

Click the button below to get the metrics

-
-

-
- -
- - - \ No newline at end of file +{% extends "base.html" %} {% block body %} +
+

{{ name }}'s SK TCG Trader

+
+

+ Click the button below to get the metrics +

+
+

+ +
+{% endblock %} diff --git a/test_data/cards.json b/test_data/cards.json index 71e6420..6a97f1c 100644 --- a/test_data/cards.json +++ b/test_data/cards.json @@ -3161,4 +3161,4 @@ "usd_value": "0.0" } ] -} \ No newline at end of file +} diff --git a/test_data/test.json b/test_data/test.json index f98a25e..4642524 100644 --- a/test_data/test.json +++ b/test_data/test.json @@ -51,4 +51,4 @@ "usd_value": "7.67" } ] -} \ No newline at end of file +}