From 45640416cd455d1fdb84f0a282c5e871445e88c1 Mon Sep 17 00:00:00 2001 From: 0ceanSlim Date: Wed, 15 May 2024 16:28:12 -0400 Subject: [PATCH] first commit --- .gitignore | 2 ++ config.example.json | 3 +++ go.mod | 3 +++ go.sum | 0 license | 21 ++++++++++++++++ main.go | 33 +++++++++++++++++++++++++ readme.md | 46 +++++++++++++++++++++++++++++++++++ src/api/api.go | 36 +++++++++++++++++++++++++++ src/routes/example.go | 7 ++++++ src/routes/root.go | 27 ++++++++++++++++++++ src/util/config.go | 28 +++++++++++++++++++++ web/static/htmx.min.js | 1 + web/static/img/favicon.ico | Bin 0 -> 67646 bytes web/static/img/globe.png | Bin 0 -> 44766 bytes web/style/input.css | 5 ++++ web/style/readme.md | 9 +++++++ web/style/tailwind.config.js | 10 ++++++++ web/views/example.html | 27 ++++++++++++++++++++ web/views/index.html | 41 +++++++++++++++++++++++++++++++ 19 files changed, 299 insertions(+) create mode 100644 .gitignore create mode 100644 config.example.json create mode 100644 go.mod create mode 100644 go.sum create mode 100644 license create mode 100644 main.go create mode 100644 readme.md create mode 100644 src/api/api.go create mode 100644 src/routes/example.go create mode 100644 src/routes/root.go create mode 100644 src/util/config.go create mode 100644 web/static/htmx.min.js create mode 100644 web/static/img/favicon.ico create mode 100644 web/static/img/globe.png create mode 100644 web/style/input.css create mode 100644 web/style/readme.md create mode 100644 web/style/tailwind.config.js create mode 100644 web/views/example.html create mode 100644 web/views/index.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..05988f2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +output.css +config.json \ No newline at end of file diff --git a/config.example.json b/config.example.json new file mode 100644 index 0000000..10e4562 --- /dev/null +++ b/config.example.json @@ -0,0 +1,3 @@ +{ + "port": 8787 +} diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..cdbb578 --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module GoStart + +go 1.22.2 diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..e69de29 diff --git a/license b/license new file mode 100644 index 0000000..69a955a --- /dev/null +++ b/license @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) [2024] [OceanSlim] + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/main.go b/main.go new file mode 100644 index 0000000..544bf38 --- /dev/null +++ b/main.go @@ -0,0 +1,33 @@ +package main + +import ( + "GoStart/src/api" + "GoStart/src/routes" + "GoStart/src/util" + + "fmt" + "net/http" +) + + +func main() { + // Load Configurations + cfg, err := util.LoadConfig() + if err != nil { + fmt.Printf("Failed to load config: %v\n", err) + return + } + + mux := http.NewServeMux() + // Initialize Home View + mux.HandleFunc("/", routes.RootHandler) + // Serve Static Files + mux.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("web/static")))) + // Example view + mux.HandleFunc("/example", routes.ExampleHandler) + // API endpoint + mux.HandleFunc("/api/example", api.ExampleHandler) + + fmt.Printf("Server is running on http://localhost:%d\n", cfg.Port) + http.ListenAndServe(fmt.Sprintf(":%d", cfg.Port), mux) +} \ No newline at end of file diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..f52d3a3 --- /dev/null +++ b/readme.md @@ -0,0 +1,46 @@ +# GoStart + +This is a basic starter project for building web applications using Go, Tailwind CSS, and htmx. It provides a foundation for creating interactive and responsive web applications without relying on any third-party dependencies, utilizing only the packages included with the Go language by default. + +## Features + +- **Go**: The project is built using Go, a powerful and efficient programming language for building scalable and high-performance applications. +- **Tailwind CSS**: Tailwind CSS is used for styling the web application, providing a utility-first CSS framework that enables rapid UI development. +- **htmx**: htmx is a lightweight library that allows you to add interactive features to your web pages without writing JavaScript, enabling server-side rendering and reducing the need for complex client-side code. +- **Bring Your Own Database**: This starter project does not include a specific database implementation, allowing you to choose and integrate the database solution that best fits your project's requirements. + +### Getting Started + +1. Clone the repository: + + ```bash + git clone https://git.happytavern.co/oceanslim/gostart.git + ``` + +2. Navigate to the project directory: + + ```bash + cd GoStart + ``` + +3. Setup your configuration + + ```bash + cp config.example.json config.json + ``` + +4. Build and run the application: + + ```bash + go run main.go + ``` + + The application will be accessible at `http://localhost:8787`, or whatever port you set in your configuration. + +### Contributing + +Contributions to this project are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request. + +### License + +This project is licensed under the [MIT License](LICENSE). diff --git a/src/api/api.go b/src/api/api.go new file mode 100644 index 0000000..61341da --- /dev/null +++ b/src/api/api.go @@ -0,0 +1,36 @@ +package api + +import ( + "encoding/json" + "net/http" +) + +// ExampleHandler is a basic HTTP handler function for your API endpoint +func ExampleHandler(w http.ResponseWriter, r *http.Request) { + // Define your response struct + type Response struct { + Message string `json:"message"` + } + + // Create a response object + response := Response{ + Message: "Hello, this is a basic example API!", + } + + // Convert response object to JSON + jsonResponse, err := json.Marshal(response) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + // Set response headers + w.Header().Set("Content-Type", "application/json") + + // Write the JSON response + _, err = w.Write(jsonResponse) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } +} diff --git a/src/routes/example.go b/src/routes/example.go new file mode 100644 index 0000000..742b46f --- /dev/null +++ b/src/routes/example.go @@ -0,0 +1,7 @@ +package routes + +import "net/http" + +func ExampleHandler(w http.ResponseWriter, r *http.Request) { + http.ServeFile(w, r, "web/views/example.html") +} \ No newline at end of file diff --git a/src/routes/root.go b/src/routes/root.go new file mode 100644 index 0000000..a6be1ea --- /dev/null +++ b/src/routes/root.go @@ -0,0 +1,27 @@ +package routes + +import ( + "html/template" + "net/http" +) + +type PageData struct { + Title string +} + +func RootHandler(w http.ResponseWriter, r *http.Request) { + data := PageData{ + Title: "Home Page", + } + + tmpl, err := template.ParseFiles("web/views/index.html") + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + err = tmpl.Execute(w, data) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + } +} \ No newline at end of file diff --git a/src/util/config.go b/src/util/config.go new file mode 100644 index 0000000..0ed29b0 --- /dev/null +++ b/src/util/config.go @@ -0,0 +1,28 @@ +package util + +import ( + "encoding/json" + "fmt" + "os" +) + +type Config struct { + Port int `json:"port"` + Development string `json:"development"` +} + +func LoadConfig() (*Config, error) { + file, err := os.Open("config.json") + if err != nil { + return nil, fmt.Errorf("failed to open config file: %v", err) + } + defer file.Close() + + var config Config + err = json.NewDecoder(file).Decode(&config) + if err != nil { + return nil, fmt.Errorf("failed to decode config file: %v", err) + } + + return &config, nil +} \ No newline at end of file diff --git a/web/static/htmx.min.js b/web/static/htmx.min.js new file mode 100644 index 0000000..de5f0f1 --- /dev/null +++ b/web/static/htmx.min.js @@ -0,0 +1 @@ +(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 Q={onLoad:F,process:zt,on:de,off:ge,trigger:ce,ajax:Nr,find:C,findAll:f,closest:v,values:function(e,t){var r=dr(e,t||"post");return r.values},remove:_,addClass:z,removeClass:n,toggleClass:$,takeClass:W,defineExtension:Ur,removeExtension:Br,logAll:V,logNone:j,logger:null,config:{historyEnabled:true,historyCacheSize:10,refreshOnHistoryMiss:false,defaultSwapStyle:"innerHTML",defaultSwapDelay:0,defaultSettleDelay:20,includeIndicatorStyles:true,indicatorClass:"htmx-indicator",requestClass:"htmx-request",addedClass:"htmx-added",settlingClass:"htmx-settling",swappingClass:"htmx-swapping",allowEval:true,allowScriptTags:true,inlineScriptNonce:"",attributesToSettle:["class","style","width","height"],withCredentials:false,timeout:0,wsReconnectDelay:"full-jitter",wsBinaryType:"blob",disableSelector:"[hx-disable], [data-hx-disable]",useTemplateFragments:false,scrollBehavior:"smooth",defaultFocusScroll:false,getCacheBusterParam:false,globalViewTransitions:false,methodsThatUseUrlParams:["get"],selfRequestsOnly:false,ignoreTitle:false,scrollIntoViewOnBoost:true,triggerSpecsCache:null},parseInterval:d,_:t,createEventSource:function(e){return new EventSource(e,{withCredentials:true})},createWebSocket:function(e){var t=new WebSocket(e,[]);t.binaryType=Q.config.wsBinaryType;return t},version:"1.9.12"};var r={addTriggerHandler:Lt,bodyContains:se,canAccessLocalStorage:U,findThisElement:xe,filterValues:yr,hasAttribute:o,getAttributeValue:te,getClosestAttributeValue:ne,getClosestMatch:c,getExpressionVars:Hr,getHeaders:xr,getInputValues:dr,getInternalData:ae,getSwapSpecification:wr,getTriggerSpecs:it,getTarget:ye,makeFragment:l,mergeObjects:le,makeSettleInfo:T,oobSwap:Ee,querySelectorExt:ue,selectAndSwap:je,settleImmediately:nr,shouldCancel:ut,triggerEvent:ce,triggerErrorEvent:fe,withExtensions:R};var w=["get","post","put","delete","patch"];var i=w.map(function(e){return"[hx-"+e+"], [data-hx-"+e+"]"}).join(", ");var S=e("head"),q=e("title"),H=e("svg",true);function e(e,t){return new RegExp("<"+e+"(\\s[^>]*>|>)([\\s\\S]*?)<\\/"+e+">",!!t?"gim":"im")}function d(e){if(e==undefined){return undefined}let t=NaN;if(e.slice(-2)=="ms"){t=parseFloat(e.slice(0,-2))}else if(e.slice(-1)=="s"){t=parseFloat(e.slice(0,-1))*1e3}else if(e.slice(-1)=="m"){t=parseFloat(e.slice(0,-1))*1e3*60}else{t=parseFloat(e)}return isNaN(t)?undefined:t}function ee(e,t){return e.getAttribute&&e.getAttribute(t)}function o(e,t){return e.hasAttribute&&(e.hasAttribute(t)||e.hasAttribute("data-"+t))}function te(e,t){return ee(e,t)||ee(e,"data-"+t)}function u(e){return e.parentElement}function re(){return document}function c(e,t){while(e&&!t(e)){e=u(e)}return e?e:null}function L(e,t,r){var n=te(t,r);var i=te(t,"hx-disinherit");if(e!==t&&i&&(i==="*"||i.split(" ").indexOf(r)>=0)){return"unset"}else{return n}}function ne(t,r){var n=null;c(t,function(e){return n=L(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 A(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 s(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=re().createDocumentFragment()}return i}function N(e){return/",0);var a=i.querySelector("template").content;if(Q.config.allowScriptTags){oe(a.querySelectorAll("script"),function(e){if(Q.config.inlineScriptNonce){e.nonce=Q.config.inlineScriptNonce}e.htmxExecuted=navigator.userAgent.indexOf("Firefox")===-1})}else{oe(a.querySelectorAll("script"),function(e){_(e)})}return a}switch(r){case"thead":case"tbody":case"tfoot":case"colgroup":case"caption":return s(""+n+"
",1);case"col":return s(""+n+"
",2);case"tr":return s(""+n+"
",2);case"td":case"th":return s(""+n+"
",3);case"script":case"style":return s("
"+n+"
",1);default:return s(n,0)}}function ie(e){if(e){e()}}function I(e,t){return Object.prototype.toString.call(e)==="[object "+t+"]"}function k(e){return I(e,"Function")}function P(e){return I(e,"Object")}function ae(e){var t="htmx-internal-data";var r=e[t];if(!r){r=e[t]={}}return r}function M(e){var t=[];if(e){for(var r=0;r=0}function se(e){if(e.getRootNode&&e.getRootNode()instanceof window.ShadowRoot){return re().body.contains(e.getRootNode().host)}else{return re().body.contains(e)}}function D(e){return e.trim().split(/\s+/)}function le(e,t){for(var r in t){if(t.hasOwnProperty(r)){e[r]=t[r]}}return e}function E(e){try{return JSON.parse(e)}catch(e){b(e);return null}}function U(){var e="htmx:localStorageTest";try{localStorage.setItem(e,e);localStorage.removeItem(e);return true}catch(e){return false}}function B(t){try{var e=new URL(t);if(e){t=e.pathname+e.search}if(!/^\/$/.test(t)){t=t.replace(/\/+$/,"")}return t}catch(e){return t}}function t(e){return Tr(re().body,function(){return eval(e)})}function F(t){var e=Q.on("htmx:load",function(e){t(e.detail.elt)});return e}function V(){Q.logger=function(e,t,r){if(console){console.log(t,e,r)}}}function j(){Q.logger=null}function C(e,t){if(t){return e.querySelector(t)}else{return C(re(),e)}}function f(e,t){if(t){return e.querySelectorAll(t)}else{return f(re(),e)}}function _(e,t){e=p(e);if(t){setTimeout(function(){_(e);e=null},t)}else{e.parentElement.removeChild(e)}}function z(e,t,r){e=p(e);if(r){setTimeout(function(){z(e,t);e=null},r)}else{e.classList&&e.classList.add(t)}}function n(e,t,r){e=p(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 $(e,t){e=p(e);e.classList.toggle(t)}function W(e,t){e=p(e);oe(e.parentElement.children,function(e){n(e,t)});z(e,t)}function v(e,t){e=p(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 g(e,t){return e.substring(0,t.length)===t}function G(e,t){return e.substring(e.length-t.length)===t}function J(e){var t=e.trim();if(g(t,"<")&&G(t,"/>")){return t.substring(1,t.length-2)}else{return t}}function Z(e,t){if(t.indexOf("closest ")===0){return[v(e,J(t.substr(8)))]}else if(t.indexOf("find ")===0){return[C(e,J(t.substr(5)))]}else if(t==="next"){return[e.nextElementSibling]}else if(t.indexOf("next ")===0){return[K(e,J(t.substr(5)))]}else if(t==="previous"){return[e.previousElementSibling]}else if(t.indexOf("previous ")===0){return[Y(e,J(t.substr(9)))]}else if(t==="document"){return[document]}else if(t==="window"){return[window]}else if(t==="body"){return[document.body]}else{return re().querySelectorAll(J(t))}}var K=function(e,t){var r=re().querySelectorAll(t);for(var n=0;n=0;n--){var i=r[n];if(i.compareDocumentPosition(e)===Node.DOCUMENT_POSITION_FOLLOWING){return i}}};function ue(e,t){if(t){return Z(e,t)[0]}else{return Z(re().body,e)[0]}}function p(e){if(I(e,"String")){return C(e)}else{return e}}function ve(e,t,r){if(k(t)){return{target:re().body,event:e,listener:t}}else{return{target:p(e),event:t,listener:r}}}function de(t,r,n){jr(function(){var e=ve(t,r,n);e.target.addEventListener(e.event,e.listener)});var e=k(r);return e?r:n}function ge(t,r,n){jr(function(){var e=ve(t,r,n);e.target.removeEventListener(e.event,e.listener)});return k(r)?r:n}var pe=re().createElement("output");function me(e,t){var r=ne(e,t);if(r){if(r==="this"){return[xe(e,t)]}else{var n=Z(e,r);if(n.length===0){b('The selector "'+r+'" on '+t+" returned no matches!");return[pe]}else{return n}}}}function xe(e,t){return c(e,function(e){return te(e,t)!=null})}function ye(e){var t=ne(e,"hx-target");if(t){if(t==="this"){return xe(e,"hx-target")}else{return ue(e,t)}}else{var r=ae(e);if(r.boosted){return re().body}else{return e}}}function be(e){var t=Q.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=re().querySelectorAll(t);if(r){oe(r,function(e){var t;var r=i.cloneNode(true);t=re().createDocumentFragment();t.appendChild(r);if(!Se(o,e)){t=r}var n={shouldSwap:true,target:e,fragment:t};if(!ce(e,"htmx:oobBeforeSwap",n))return;e=n.target;if(n["shouldSwap"]){Fe(o,e,e,t,a)}oe(a.elts,function(e){ce(e,"htmx:oobAfterSwap",n)})});i.parentNode.removeChild(i)}else{i.parentNode.removeChild(i);fe(re().body,"htmx:oobErrorNoTarget",{content:i})}return e}function Ce(e,t,r){var n=ne(e,"hx-select-oob");if(n){var i=n.split(",");for(var a=0;a0){var r=t.replace("'","\\'");var n=e.tagName.replace(":","\\:");var i=o.querySelector(n+"[id='"+r+"']");if(i&&i!==o){var a=e.cloneNode();we(e,i);s.tasks.push(function(){we(e,a)})}}})}function Oe(e){return function(){n(e,Q.config.addedClass);zt(e);Nt(e);qe(e);ce(e,"htmx:load")}}function qe(e){var t="[autofocus]";var r=h(e,t)?e:e.querySelector(t);if(r!=null){r.focus()}}function a(e,t,r,n){Te(e,r,n);while(r.childNodes.length>0){var i=r.firstChild;z(i,Q.config.addedClass);e.insertBefore(i,t);if(i.nodeType!==Node.TEXT_NODE&&i.nodeType!==Node.COMMENT_NODE){n.tasks.push(Oe(i))}}}function He(e,t){var r=0;while(r-1){var t=e.replace(H,"");var r=t.match(q);if(r){return r[2]}}}function je(e,t,r,n,i,a){i.title=Ve(n);var o=l(n);if(o){Ce(r,o,i);o=Be(r,o,a);Re(o);return Fe(e,r,t,o,i)}}function _e(e,t,r){var n=e.getResponseHeader(t);if(n.indexOf("{")===0){var i=E(n);for(var a in i){if(i.hasOwnProperty(a)){var o=i[a];if(!P(o)){o={value:o}}ce(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=Tr(e,function(){return Function(i)()},function(){return true});s.source=i;return s}catch(e){fe(re().body,"htmx:syntax:error",{error:e,source:i});return null}}}else if(o==="["){n++}if(Qe(o,a,r)){i+="(("+r+"."+o+") ? ("+r+"."+o+") : (window."+o+"))"}else{i=i+o}a=t.shift()}}}function y(e,t){var r="";while(e.length>0&&!t.test(e[0])){r+=e.shift()}return r}function tt(e){var t;if(e.length>0&&Ze.test(e[0])){e.shift();t=y(e,Ke).trim();e.shift()}else{t=y(e,x)}return t}var rt="input, textarea, select";function nt(e,t,r){var n=[];var i=Ye(t);do{y(i,Je);var a=i.length;var o=y(i,/[,\[\s]/);if(o!==""){if(o==="every"){var s={trigger:"every"};y(i,Je);s.pollInterval=d(y(i,/[,\[\s]/));y(i,Je);var l=et(e,i,"event");if(l){s.eventFilter=l}n.push(s)}else if(o.indexOf("sse:")===0){n.push({trigger:"sse",sseEvent:o.substr(4)})}else{var u={trigger:o};var l=et(e,i,"event");if(l){u.eventFilter=l}while(i.length>0&&i[0]!==","){y(i,Je);var f=i.shift();if(f==="changed"){u.changed=true}else if(f==="once"){u.once=true}else if(f==="consume"){u.consume=true}else if(f==="delay"&&i[0]===":"){i.shift();u.delay=d(y(i,x))}else if(f==="from"&&i[0]===":"){i.shift();if(Ze.test(i[0])){var c=tt(i)}else{var c=y(i,x);if(c==="closest"||c==="find"||c==="next"||c==="previous"){i.shift();var h=tt(i);if(h.length>0){c+=" "+h}}}u.from=c}else if(f==="target"&&i[0]===":"){i.shift();u.target=tt(i)}else if(f==="throttle"&&i[0]===":"){i.shift();u.throttle=d(y(i,x))}else if(f==="queue"&&i[0]===":"){i.shift();u.queue=y(i,x)}else if(f==="root"&&i[0]===":"){i.shift();u[f]=tt(i)}else if(f==="threshold"&&i[0]===":"){i.shift();u[f]=y(i,x)}else{fe(e,"htmx:syntax:error",{token:i.shift()})}}n.push(u)}}if(i.length===a){fe(e,"htmx:syntax:error",{token:i.shift()})}y(i,Je)}while(i[0]===","&&i.shift());if(r){r[t]=n}return n}function it(e){var t=te(e,"hx-trigger");var r=[];if(t){var n=Q.config.triggerSpecsCache;r=n&&n[t]||nt(e,t,n)}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,rt)){return[{trigger:"change"}]}else{return[{trigger:"click"}]}}function at(e){ae(e).cancelled=true}function ot(e,t,r){var n=ae(e);n.timeout=setTimeout(function(){if(se(e)&&n.cancelled!==true){if(!ct(r,e,Wt("hx:poll:trigger",{triggerSpec:r,target:e}))){t(e)}ot(e,t,r)}},r.pollInterval)}function st(e){return location.hostname===e.hostname&&ee(e,"href")&&ee(e,"href").indexOf("#")!==0}function lt(t,r,e){if(t.tagName==="A"&&st(t)&&(t.target===""||t.target==="_self")||t.tagName==="FORM"){r.boosted=true;var n,i;if(t.tagName==="A"){n="get";i=ee(t,"href")}else{var a=ee(t,"method");n=a?a.toLowerCase():"get";if(n==="get"){}i=ee(t,"action")}e.forEach(function(e){ht(t,function(e,t){if(v(e,Q.config.disableSelector)){m(e);return}he(n,i,e,t)},r,e,true)})}}function ut(e,t){if(e.type==="submit"||e.type==="click"){if(t.tagName==="FORM"){return true}if(h(t,'input[type="submit"], button')&&v(t,"form")!==null){return true}if(t.tagName==="A"&&t.href&&(t.getAttribute("href")==="#"||t.getAttribute("href").indexOf("#")!==0)){return true}}return false}function ft(e,t){return ae(e).boosted&&e.tagName==="A"&&t.type==="click"&&(t.ctrlKey||t.metaKey)}function ct(e,t,r){var n=e.eventFilter;if(n){try{return n.call(t,r)!==true}catch(e){fe(re().body,"htmx:eventFilter:error",{error:e,source:n.source});return true}}return false}function ht(a,o,e,s,l){var u=ae(a);var t;if(s.from){t=Z(a,s.from)}else{t=[a]}if(s.changed){t.forEach(function(e){var t=ae(e);t.lastValue=e.value})}oe(t,function(n){var i=function(e){if(!se(a)){n.removeEventListener(s.trigger,i);return}if(ft(a,e)){return}if(l||ut(e,a)){e.preventDefault()}if(ct(s,a,e)){return}var t=ae(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=ae(n);if(r.lastValue===n.value){return}r.lastValue=n.value}if(u.delayed){clearTimeout(u.delayed)}if(u.throttle){return}if(s.throttle>0){if(!u.throttle){o(a,e);u.throttle=setTimeout(function(){u.throttle=null},s.throttle)}}else if(s.delay>0){u.delayed=setTimeout(function(){o(a,e)},s.delay)}else{ce(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 vt=false;var dt=null;function gt(){if(!dt){dt=function(){vt=true};window.addEventListener("scroll",dt);setInterval(function(){if(vt){vt=false;oe(re().querySelectorAll("[hx-trigger='revealed'],[data-hx-trigger='revealed']"),function(e){pt(e)})}},200)}}function pt(t){if(!o(t,"data-hx-revealed")&&X(t)){t.setAttribute("data-hx-revealed","true");var e=ae(t);if(e.initHash){ce(t,"revealed")}else{t.addEventListener("htmx:afterProcessNode",function(e){ce(t,"revealed")},{once:true})}}}function mt(e,t,r){var n=D(r);for(var i=0;i=0){var t=wt(n);setTimeout(function(){xt(s,r,n+1)},t)}};t.onopen=function(e){n=0};ae(s).webSocket=t;t.addEventListener("message",function(e){if(yt(s)){return}var t=e.data;R(s,function(e){t=e.transformResponse(t,null,s)});var r=T(s);var n=l(t);var i=M(n.children);for(var a=0;a0){ce(u,"htmx:validation:halted",i);return}t.send(JSON.stringify(l));if(ut(e,u)){e.preventDefault()}})}else{fe(u,"htmx:noWebSocketSourceError")}}function wt(e){var t=Q.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()}b('htmx.config.wsReconnectDelay must either be a function or the string "full-jitter"')}function St(e,t,r){var n=D(r);for(var i=0;i0){setTimeout(i,n)}else{i()}}function Ht(t,i,e){var a=false;oe(w,function(r){if(o(t,"hx-"+r)){var n=te(t,"hx-"+r);a=true;i.path=n;i.verb=r;e.forEach(function(e){Lt(t,e,i,function(e,t){if(v(e,Q.config.disableSelector)){m(e);return}he(r,n,e,t)})})}});return a}function Lt(n,e,t,r){if(e.sseEvent){Rt(n,r,e.sseEvent)}else if(e.trigger==="revealed"){gt();ht(n,r,t,e);pt(n)}else if(e.trigger==="intersect"){var i={};if(e.root){i.root=ue(n,e.root)}if(e.threshold){i.threshold=parseFloat(e.threshold)}var a=new IntersectionObserver(function(e){for(var t=0;t0){t.polling=true;ot(n,r,e)}else{ht(n,r,t,e)}}function At(e){if(!e.htmxExecuted&&Q.config.allowScriptTags&&(e.type==="text/javascript"||e.type==="module"||e.type==="")){var t=re().createElement("script");oe(e.attributes,function(e){t.setAttribute(e.name,e.value)});t.textContent=e.textContent;t.async=false;if(Q.config.inlineScriptNonce){t.nonce=Q.config.inlineScriptNonce}var r=e.parentElement;try{r.insertBefore(t,e)}catch(e){b(e)}finally{if(e.parentElement){e.parentElement.removeChild(e)}}}}function Nt(e){if(h(e,"script")){At(e)}oe(f(e,"script"),function(e){At(e)})}function It(e){var t=e.attributes;if(!t){return false}for(var r=0;r0){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+=Bt(o)}for(var l in r){Ft(e,l,r[l])}}}function jt(e){Ae(e);for(var t=0;tQ.config.historyCacheSize){i.shift()}while(i.length>0){try{localStorage.setItem("htmx-history-cache",JSON.stringify(i));break}catch(e){fe(re().body,"htmx:historyCacheError",{cause:e,cache:i});i.shift()}}}function Yt(e){if(!U()){return null}e=B(e);var t=E(localStorage.getItem("htmx-history-cache"))||[];for(var r=0;r=200&&this.status<400){ce(re().body,"htmx:historyCacheMissLoad",o);var e=l(this.response);e=e.querySelector("[hx-history-elt],[data-hx-history-elt]")||e;var t=Zt();var r=T(t);var n=Ve(this.response);if(n){var i=C("title");if(i){i.innerHTML=n}else{window.document.title=n}}Ue(t,e,r);nr(r.tasks);Jt=a;ce(re().body,"htmx:historyRestore",{path:a,cacheMiss:true,serverResponse:this.response})}else{fe(re().body,"htmx:historyCacheMissLoadError",o)}};e.send()}function ar(e){er();e=e||location.pathname+location.search;var t=Yt(e);if(t){var r=l(t.content);var n=Zt();var i=T(n);Ue(n,r,i);nr(i.tasks);document.title=t.title;setTimeout(function(){window.scrollTo(0,t.scroll)},0);Jt=e;ce(re().body,"htmx:historyRestore",{path:e,item:t})}else{if(Q.config.refreshOnHistoryMiss){window.location.reload(true)}else{ir(e)}}}function or(e){var t=me(e,"hx-indicator");if(t==null){t=[e]}oe(t,function(e){var t=ae(e);t.requestCount=(t.requestCount||0)+1;e.classList["add"].call(e.classList,Q.config.requestClass)});return t}function sr(e){var t=me(e,"hx-disabled-elt");if(t==null){t=[]}oe(t,function(e){var t=ae(e);t.requestCount=(t.requestCount||0)+1;e.setAttribute("disabled","")});return t}function lr(e,t){oe(e,function(e){var t=ae(e);t.requestCount=(t.requestCount||0)-1;if(t.requestCount===0){e.classList["remove"].call(e.classList,Q.config.requestClass)}});oe(t,function(e){var t=ae(e);t.requestCount=(t.requestCount||0)-1;if(t.requestCount===0){e.removeAttribute("disabled")}})}function ur(e,t){for(var r=0;r=0}function wr(e,t){var r=t?t:ne(e,"hx-swap");var n={swapStyle:ae(e).boosted?"innerHTML":Q.config.defaultSwapStyle,swapDelay:Q.config.defaultSwapDelay,settleDelay:Q.config.defaultSettleDelay};if(Q.config.scrollIntoViewOnBoost&&ae(e).boosted&&!br(e)){n["show"]="top"}if(r){var i=D(r);if(i.length>0){for(var a=0;a0?l.join(":"):null;n["scroll"]=u;n["scrollTarget"]=f}else 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}else if(o.indexOf("focus-scroll:")===0){var v=o.substr("focus-scroll:".length);n["focusScroll"]=v=="true"}else if(a==0){n["swapStyle"]=o}else{b("Unknown modifier in hx-swap: "+o)}}}}return n}function Sr(e){return ne(e,"hx-encoding")==="multipart/form-data"||h(e,"form")&&ee(e,"enctype")==="multipart/form-data"}function Er(t,r,n){var i=null;R(r,function(e){if(i==null){i=e.encodeParameters(t,n,r)}});if(i!=null){return i}else{if(Sr(r)){return mr(n)}else{return pr(n)}}}function T(e){return{tasks:[],elts:[e]}}function Cr(e,t){var r=e[0];var n=e[e.length-1];if(t.scroll){var i=null;if(t.scrollTarget){i=ue(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=ue(r,a)}if(t.show==="top"&&(r||i)){i=i||r;i.scrollIntoView({block:"start",behavior:Q.config.scrollBehavior})}if(t.show==="bottom"&&(n||i)){i=i||n;i.scrollIntoView({block:"end",behavior:Q.config.scrollBehavior})}}}function Rr(e,t,r,n){if(n==null){n={}}if(e==null){return n}var i=te(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=Tr(e,function(){return Function("return ("+a+")")()},{})}else{s=E(a)}for(var l in s){if(s.hasOwnProperty(l)){if(n[l]==null){n[l]=s[l]}}}}return Rr(u(e),t,r,n)}function Tr(e,t,r){if(Q.config.allowEval){return t()}else{fe(e,"htmx:evalDisallowedError");return r}}function Or(e,t){return Rr(e,"hx-vars",true,t)}function qr(e,t){return Rr(e,"hx-vals",false,t)}function Hr(e){return le(Or(e),qr(e))}function Lr(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 Ar(t){if(t.responseURL&&typeof URL!=="undefined"){try{var e=new URL(t.responseURL);return e.pathname+e.search}catch(e){fe(re().body,"htmx:badResponseUrl",{url:t.responseURL})}}}function O(e,t){return t.test(e.getAllResponseHeaders())}function Nr(e,t,r){e=e.toLowerCase();if(r){if(r instanceof Element||I(r,"String")){return he(e,t,null,null,{targetOverride:p(r),returnPromise:true})}else{return he(e,t,p(r.source),r.event,{handler:r.handler,headers:r.headers,values:r.values,targetOverride:p(r.target),swapOverride:r.swap,select:r.select,returnPromise:true})}}else{return he(e,t,null,null,{returnPromise:true})}}function Ir(e){var t=[];while(e){t.push(e);e=e.parentElement}return t}function kr(e,t,r){var n;var i;if(typeof URL==="function"){i=new URL(t,document.location.href);var a=document.location.origin;n=a===i.origin}else{i=t;n=g(t,document.location.origin)}if(Q.config.selfRequestsOnly){if(!n){return false}}return ce(e,"htmx:validateUrl",le({url:i,sameHost:n},r))}function he(t,r,n,i,a,e){var o=null;var s=null;a=a!=null?a:{};if(a.returnPromise&&typeof Promise!=="undefined"){var l=new Promise(function(e,t){o=e;s=t})}if(n==null){n=re().body}var M=a.handler||Mr;var X=a.select||null;if(!se(n)){ie(o);return l}var u=a.targetOverride||ye(n);if(u==null||u==pe){fe(n,"htmx:targetError",{target:te(n,"hx-target")});ie(s);return l}var f=ae(n);var c=f.lastButtonClicked;if(c){var h=ee(c,"formaction");if(h!=null){r=h}var v=ee(c,"formmethod");if(v!=null){if(v.toLowerCase()!=="dialog"){t=v}}}var d=ne(n,"hx-confirm");if(e===undefined){var D=function(e){return he(t,r,n,i,a,!!e)};var U={target:u,elt:n,path:r,verb:t,triggeringEvent:i,etc:a,issueRequest:D,question:d};if(ce(n,"htmx:confirm",U)===false){ie(o);return l}}var g=n;var p=ne(n,"hx-sync");var m=null;var x=false;if(p){var B=p.split(":");var F=B[0].trim();if(F==="this"){g=xe(n,"hx-sync")}else{g=ue(n,F)}p=(B[1]||"drop").trim();f=ae(g);if(p==="drop"&&f.xhr&&f.abortable!==true){ie(o);return l}else if(p==="abort"){if(f.xhr){ie(o);return l}else{x=true}}else if(p==="replace"){ce(g,"htmx:abort")}else if(p.indexOf("queue")===0){var V=p.split(" ");m=(V[1]||"last").trim()}}if(f.xhr){if(f.abortable){ce(g,"htmx:abort")}else{if(m==null){if(i){var y=ae(i);if(y&&y.triggerSpec&&y.triggerSpec.queue){m=y.triggerSpec.queue}}if(m==null){m="last"}}if(f.queuedRequests==null){f.queuedRequests=[]}if(m==="first"&&f.queuedRequests.length===0){f.queuedRequests.push(function(){he(t,r,n,i,a)})}else if(m==="all"){f.queuedRequests.push(function(){he(t,r,n,i,a)})}else if(m==="last"){f.queuedRequests=[];f.queuedRequests.push(function(){he(t,r,n,i,a)})}ie(o);return l}}var b=new XMLHttpRequest;f.xhr=b;f.abortable=x;var w=function(){f.xhr=null;f.abortable=false;if(f.queuedRequests!=null&&f.queuedRequests.length>0){var e=f.queuedRequests.shift();e()}};var j=ne(n,"hx-prompt");if(j){var S=prompt(j);if(S===null||!ce(n,"htmx:prompt",{prompt:S,target:u})){ie(o);w();return l}}if(d&&!e){if(!confirm(d)){ie(o);w();return l}}var E=xr(n,u,S);if(t!=="get"&&!Sr(n)){E["Content-Type"]="application/x-www-form-urlencoded"}if(a.headers){E=le(E,a.headers)}var _=dr(n,t);var C=_.errors;var R=_.values;if(a.values){R=le(R,a.values)}var z=Hr(n);var $=le(R,z);var T=yr($,n);if(Q.config.getCacheBusterParam&&t==="get"){T["org.htmx.cache-buster"]=ee(u,"id")||"true"}if(r==null||r===""){r=re().location.href}var O=Rr(n,"hx-request");var W=ae(n).boosted;var q=Q.config.methodsThatUseUrlParams.indexOf(t)>=0;var H={boosted:W,useUrlParams:q,parameters:T,unfilteredParameters:$,headers:E,target:u,verb:t,errors:C,withCredentials:a.credentials||O.credentials||Q.config.withCredentials,timeout:a.timeout||O.timeout||Q.config.timeout,path:r,triggeringEvent:i};if(!ce(n,"htmx:configRequest",H)){ie(o);w();return l}r=H.path;t=H.verb;E=H.headers;T=H.parameters;C=H.errors;q=H.useUrlParams;if(C&&C.length>0){ce(n,"htmx:validation:halted",H);ie(o);w();return l}var G=r.split("#");var J=G[0];var L=G[1];var A=r;if(q){A=J;var Z=Object.keys(T).length!==0;if(Z){if(A.indexOf("?")<0){A+="?"}else{A+="&"}A+=pr(T);if(L){A+="#"+L}}}if(!kr(n,A,H)){fe(n,"htmx:invalidPath",H);ie(s);return l}b.open(t.toUpperCase(),A,true);b.overrideMimeType("text/html");b.withCredentials=H.withCredentials;b.timeout=H.timeout;if(O.noHeaders){}else{for(var N in E){if(E.hasOwnProperty(N)){var K=E[N];Lr(b,N,K)}}}var I={xhr:b,target:u,requestConfig:H,etc:a,boosted:W,select:X,pathInfo:{requestPath:r,finalRequestPath:A,anchor:L}};b.onload=function(){try{var e=Ir(n);I.pathInfo.responsePath=Ar(b);M(n,I);lr(k,P);ce(n,"htmx:afterRequest",I);ce(n,"htmx:afterOnLoad",I);if(!se(n)){var t=null;while(e.length>0&&t==null){var r=e.shift();if(se(r)){t=r}}if(t){ce(t,"htmx:afterRequest",I);ce(t,"htmx:afterOnLoad",I)}}ie(o);w()}catch(e){fe(n,"htmx:onLoadError",le({error:e},I));throw e}};b.onerror=function(){lr(k,P);fe(n,"htmx:afterRequest",I);fe(n,"htmx:sendError",I);ie(s);w()};b.onabort=function(){lr(k,P);fe(n,"htmx:afterRequest",I);fe(n,"htmx:sendAbort",I);ie(s);w()};b.ontimeout=function(){lr(k,P);fe(n,"htmx:afterRequest",I);fe(n,"htmx:timeout",I);ie(s);w()};if(!ce(n,"htmx:beforeRequest",I)){ie(o);w();return l}var k=or(n);var P=sr(n);oe(["loadstart","loadend","progress","abort"],function(t){oe([b,b.upload],function(e){e.addEventListener(t,function(e){ce(n,"htmx:xhr:"+t,{lengthComputable:e.lengthComputable,loaded:e.loaded,total:e.total})})})});ce(n,"htmx:beforeSend",I);var Y=q?null:Er(b,n,T);b.send(Y);return l}function Pr(e,t){var r=t.xhr;var n=null;var i=null;if(O(r,/HX-Push:/i)){n=r.getResponseHeader("HX-Push");i="push"}else if(O(r,/HX-Push-Url:/i)){n=r.getResponseHeader("HX-Push-Url");i="push"}else if(O(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=ne(e,"hx-push-url");var l=ne(e,"hx-replace-url");var u=ae(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 Mr(l,u){var f=u.xhr;var c=u.target;var e=u.etc;var t=u.requestConfig;var h=u.select;if(!ce(l,"htmx:beforeOnLoad",u))return;if(O(f,/HX-Trigger:/i)){_e(f,"HX-Trigger",l)}if(O(f,/HX-Location:/i)){er();var r=f.getResponseHeader("HX-Location");var v;if(r.indexOf("{")===0){v=E(r);r=v["path"];delete v["path"]}Nr("GET",r,v).then(function(){tr(r)});return}var n=O(f,/HX-Refresh:/i)&&"true"===f.getResponseHeader("HX-Refresh");if(O(f,/HX-Redirect:/i)){location.href=f.getResponseHeader("HX-Redirect");n&&location.reload();return}if(n){location.reload();return}if(O(f,/HX-Retarget:/i)){if(f.getResponseHeader("HX-Retarget")==="this"){u.target=l}else{u.target=ue(l,f.getResponseHeader("HX-Retarget"))}}var d=Pr(l,u);var i=f.status>=200&&f.status<400&&f.status!==204;var g=f.response;var a=f.status>=400;var p=Q.config.ignoreTitle;var o=le({shouldSwap:i,serverResponse:g,isError:a,ignoreTitle:p},u);if(!ce(c,"htmx:beforeSwap",o))return;c=o.target;g=o.serverResponse;a=o.isError;p=o.ignoreTitle;u.target=c;u.failed=a;u.successful=!a;if(o.shouldSwap){if(f.status===286){at(l)}R(l,function(e){g=e.transformResponse(g,f,l)});if(d.type){er()}var s=e.swapOverride;if(O(f,/HX-Reswap:/i)){s=f.getResponseHeader("HX-Reswap")}var v=wr(l,s);if(v.hasOwnProperty("ignoreTitle")){p=v.ignoreTitle}c.classList.add(Q.config.swappingClass);var m=null;var x=null;var y=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(h){r=h}if(O(f,/HX-Reselect:/i)){r=f.getResponseHeader("HX-Reselect")}if(d.type){ce(re().body,"htmx:beforeHistoryUpdate",le({history:d},u));if(d.type==="push"){tr(d.path);ce(re().body,"htmx:pushedIntoHistory",{path:d.path})}else{rr(d.path);ce(re().body,"htmx:replacedInHistory",{path:d.path})}}var n=T(c);je(v.swapStyle,c,l,g,n,r);if(t.elt&&!se(t.elt)&&ee(t.elt,"id")){var i=document.getElementById(ee(t.elt,"id"));var a={preventScroll:v.focusScroll!==undefined?!v.focusScroll:!Q.config.defaultFocusScroll};if(i){if(t.start&&i.setSelectionRange){try{i.setSelectionRange(t.start,t.end)}catch(e){}}i.focus(a)}}c.classList.remove(Q.config.swappingClass);oe(n.elts,function(e){if(e.classList){e.classList.add(Q.config.settlingClass)}ce(e,"htmx:afterSwap",u)});if(O(f,/HX-Trigger-After-Swap:/i)){var o=l;if(!se(l)){o=re().body}_e(f,"HX-Trigger-After-Swap",o)}var s=function(){oe(n.tasks,function(e){e.call()});oe(n.elts,function(e){if(e.classList){e.classList.remove(Q.config.settlingClass)}ce(e,"htmx:afterSettle",u)});if(u.pathInfo.anchor){var e=re().getElementById(u.pathInfo.anchor);if(e){e.scrollIntoView({block:"start",behavior:"auto"})}}if(n.title&&!p){var t=C("title");if(t){t.innerHTML=n.title}else{window.document.title=n.title}}Cr(n.elts,v);if(O(f,/HX-Trigger-After-Settle:/i)){var r=l;if(!se(l)){r=re().body}_e(f,"HX-Trigger-After-Settle",r)}ie(m)};if(v.settleDelay>0){setTimeout(s,v.settleDelay)}else{s()}}catch(e){fe(l,"htmx:swapError",u);ie(x);throw e}};var b=Q.config.globalViewTransitions;if(v.hasOwnProperty("transition")){b=v.transition}if(b&&ce(l,"htmx:beforeTransition",u)&&typeof Promise!=="undefined"&&document.startViewTransition){var w=new Promise(function(e,t){m=e;x=t});var S=y;y=function(){document.startViewTransition(function(){S();return w})}}if(v.swapDelay>0){setTimeout(y,v.swapDelay)}else{y()}}if(a){fe(l,"htmx:responseError",le({error:"Response Status Error Code "+f.status+" from "+u.pathInfo.requestPath},u))}}var Xr={};function Dr(){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 Ur(e,t){if(t.init){t.init(r)}Xr[e]=le(Dr(),t)}function Br(e){delete Xr[e]}function Fr(e,r,n){if(e==undefined){return r}if(r==undefined){r=[]}if(n==undefined){n=[]}var t=te(e,"hx-ext");if(t){oe(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=Xr[e];if(t&&r.indexOf(t)<0){r.push(t)}}})}return Fr(u(e),r,n)}var Vr=false;re().addEventListener("DOMContentLoaded",function(){Vr=true});function jr(e){if(Vr||re().readyState==="complete"){e()}else{re().addEventListener("DOMContentLoaded",e)}}function _r(){if(Q.config.includeIndicatorStyles!==false){re().head.insertAdjacentHTML("beforeend","")}}function zr(){var e=re().querySelector('meta[name="htmx-config"]');if(e){return E(e.content)}else{return null}}function $r(){var e=zr();if(e){Q.config=le(Q.config,e)}}jr(function(){$r();_r();var e=re().body;zt(e);var t=re().querySelectorAll("[hx-trigger='restored'],[data-hx-trigger='restored']");e.addEventListener("htmx:abort",function(e){var t=e.target;var r=ae(t);if(r&&r.xhr){r.xhr.abort()}});const r=window.onpopstate?window.onpopstate.bind(window):null;window.onpopstate=function(e){if(e.state&&e.state.htmx){ar();oe(t,function(e){ce(e,"htmx:restored",{document:re(),triggerEvent:ce})})}else{if(r){r(e)}}};setTimeout(function(){ce(e,"htmx:load",{});e=null},0)});return Q}()}); \ No newline at end of file diff --git a/web/static/img/favicon.ico b/web/static/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ae456247fd2cbbb7202a2b21f5b069619ae6da40 GIT binary patch literal 67646 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

+Rj<;nMP#h4?Xv&IV+ zF3O~{@0N#0cRWM;zJl+OJ`835_L2AFp!Q+cvby)&IAdmhU&^!7yfW|6R0iII&T!<& zk>)E43*#qFo-#BiH*Z-|O4^R3w2Z^xkAUE?>lCl>8^&=!aLA32$e8n8Q_{aqOita| zy;shv@e?MEpxD~1FTU8{`pT6nuT%z_*!mz}rr2m@qm_*ZY&>A&0UHn4c)-R3HXg9? hfQ<)iJW$zqz|Qv1MgbcIY!t9jz(xTZ1^#vv_&>07Y4!jB literal 0 HcmV?d00001 diff --git a/web/static/img/globe.png b/web/static/img/globe.png new file mode 100644 index 0000000000000000000000000000000000000000..8c4ee305516d8b631cbf81a30d1bcc3a6881022c GIT binary patch literal 44766 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

gV33CXbt(a63UQBC?0`QW9i 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�mV6t&wq}=!1R?jq)xu3CxC(ru=z}m( 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 + + + + + Example Route + + + + +

+

+ This is an additional example route +

+
+ +
+
+

Serve Static Files Like this Globe

+ alternate text +
+ +
+

© 2024 My Web App

+
+ + diff --git a/web/views/index.html b/web/views/index.html new file mode 100644 index 0000000..ea54cf8 --- /dev/null +++ b/web/views/index.html @@ -0,0 +1,41 @@ + + + + + + GO Web App + + + + + +
+

+ Welcome to My GO Web App Framework {{.Title}} +

+
+ +
+
+ +

API Example

+
Access Example API +

Content Section

+

+ This is the main content of your web app. You can add any HTML content + here. +

+ Another Example Route can be found here +
+
+ + + +