var ur=Object.defineProperty;var mr=(s,e,t)=>e in s?ur(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var l=(s,e,t)=>(mr(s,typeof e!="symbol"?e+"":e,t),t),Mt=(s,e,t)=>{if(!e.has(s))throw TypeError("Cannot "+t)};var f=(s,e,t)=>(Mt(s,e,"read from private field"),t?t.call(s):e.get(s)),m=(s,e,t)=>{if(e.has(s))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(s):e.set(s,t)},S=(s,e,t,r)=>(Mt(s,e,"write to private field"),r?r.call(s,t):e.set(s,t),t);var g=(s,e,t)=>(Mt(s,e,"access private method"),t);import{_ as fr}from"./preload-helper-b857222e.js";/*!
Turbo 8.0.12
Copyright © 2024 37signals LLC
*/(function(s){if(typeof s.requestSubmit=="function")return;s.requestSubmit=function(r){r?(e(r,this),r.click()):(r=document.createElement("input"),r.type="submit",r.hidden=!0,this.appendChild(r),r.click(),this.removeChild(r))};function e(r,i){r instanceof HTMLElement||t(TypeError,"parameter 1 is not of type 'HTMLElement'"),r.type=="submit"||t(TypeError,"The specified element is not a submit button"),r.form==i||t(DOMException,"The specified element is not owned by this form element","NotFoundError")}function t(r,i,c){throw new r("Failed to execute 'requestSubmit' on 'HTMLFormElement': "+i+".",c)}})(HTMLFormElement.prototype);const ss=new WeakMap;function pr(s){const e=s instanceof Element?s:s instanceof Node?s.parentElement:null,t=e?e.closest("input, button"):null;return(t==null?void 0:t.type)=="submit"?t:null}function gr(s){const e=pr(s.target);e&&e.form&&ss.set(e.form,e)}(function(){if("submitter"in Event.prototype)return;let s=window.Event.prototype;if("SubmitEvent"in window){const e=window.SubmitEvent.prototype;if(/Apple Computer/.test(navigator.vendor)&&!("submitter"in e))s=e;else return}addEventListener("click",gr,!0),Object.defineProperty(s,"submitter",{get(){if(this.type=="submit"&&this.target instanceof HTMLFormElement)return ss.get(this.target)}})})();const J={eager:"eager",lazy:"lazy"},Je=class Je extends HTMLElement{constructor(){super();l(this,"loaded",Promise.resolve());this.delegate=new Je.delegateConstructor(this)}static get observedAttributes(){return["disabled","loading","src"]}connectedCallback(){this.delegate.connect()}disconnectedCallback(){this.delegate.disconnect()}reload(){return this.delegate.sourceURLReloaded()}attributeChangedCallback(t){t=="loading"?this.delegate.loadingStyleChanged():t=="src"?this.delegate.sourceURLChanged():t=="disabled"&&this.delegate.disabledChanged()}get src(){return this.getAttribute("src")}set src(t){t?this.setAttribute("src",t):this.removeAttribute("src")}get refresh(){return this.getAttribute("refresh")}set refresh(t){t?this.setAttribute("refresh",t):this.removeAttribute("refresh")}get shouldReloadWithMorph(){return this.src&&this.refresh==="morph"}get loading(){return br(this.getAttribute("loading")||"")}set loading(t){t?this.setAttribute("loading",t):this.removeAttribute("loading")}get disabled(){return this.hasAttribute("disabled")}set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribute("disabled")}get autoscroll(){return this.hasAttribute("autoscroll")}set autoscroll(t){t?this.setAttribute("autoscroll",""):this.removeAttribute("autoscroll")}get complete(){return!this.delegate.isLoading}get isActive(){return this.ownerDocument===document&&!this.isPreview}get isPreview(){var t,r;return(r=(t=this.ownerDocument)==null?void 0:t.documentElement)==null?void 0:r.hasAttribute("data-turbo-preview")}};l(Je,"delegateConstructor");let I=Je;function br(s){switch(s.toLowerCase()){case"lazy":return J.lazy;default:return J.eager}}const vr={enabled:!0,progressBarDelay:500,unvisitableExtensions:new Set([".7z",".aac",".apk",".avi",".bmp",".bz2",".css",".csv",".deb",".dmg",".doc",".docx",".exe",".gif",".gz",".heic",".heif",".ico",".iso",".jpeg",".jpg",".js",".json",".m4a",".mkv",".mov",".mp3",".mp4",".mpeg",".mpg",".msi",".ogg",".ogv",".pdf",".pkg",".png",".ppt",".pptx",".rar",".rtf",".svg",".tar",".tif",".tiff",".txt",".wav",".webm",".webp",".wma",".wmv",".xls",".xlsx",".xml",".zip"])};function Re(s){if(s.getAttribute("data-turbo-eval")=="false")return s;{const e=document.createElement("script"),t=cs();return t&&(e.nonce=t),e.textContent=s.textContent,e.async=!1,Sr(e,s),e}}function Sr(s,e){for(const{name:t,value:r}of e.attributes)s.setAttribute(t,r)}function wr(s){const e=document.createElement("template");return e.innerHTML=s,e.content}function w(s,{target:e,cancelable:t,detail:r}={}){const i=new CustomEvent(s,{cancelable:t,bubbles:!0,composed:!0,detail:r});return e&&e.isConnected?e.dispatchEvent(i):document.documentElement.dispatchEvent(i),i}function Xt(s){s.preventDefault(),s.stopImmediatePropagation()}function Ee(){return document.visibilityState==="hidden"?is():rs()}function rs(){return new Promise(s=>requestAnimationFrame(()=>s()))}function is(){return new Promise(s=>setTimeout(()=>s(),0))}function yr(){return Promise.resolve()}function ns(s=""){return new DOMParser().parseFromString(s,"text/html")}function os(s,...e){const t=Er(s,e).replace(/^\n/,"").split(`
`),r=t[0].match(/^\s+/),i=r?r[0].length:0;return t.map(c=>c.slice(i)).join(`
`)}function Er(s,e){return s.reduce((t,r,i)=>{const c=e[i]==null?"":e[i];return t+r+c},"")}function j(){return Array.from({length:36}).map((s,e)=>e==8||e==13||e==18||e==23?"-":e==14?"4":e==19?(Math.floor(Math.random()*4)+8).toString(16):Math.floor(Math.random()*15).toString(16)).join("")}function ze(s,...e){for(const t of e.map(r=>r==null?void 0:r.getAttribute(s)))if(typeof t=="string")return t;return null}function Rr(s,...e){return e.some(t=>t&&t.hasAttribute(s))}function je(...s){for(const e of s)e.localName=="turbo-frame"&&e.setAttribute("busy",""),e.setAttribute("aria-busy","true")}function Ke(...s){for(const e of s)e.localName=="turbo-frame"&&e.removeAttribute("busy"),e.removeAttribute("aria-busy")}function Ar(s,e=2e3){return new Promise(t=>{const r=()=>{s.removeEventListener("error",r),s.removeEventListener("load",r),t()};s.addEventListener("load",r,{once:!0}),s.addEventListener("error",r,{once:!0}),setTimeout(t,e)})}function as(s){switch(s){case"replace":return history.replaceState;case"advance":case"restore":return history.pushState}}function Lr(s){return s=="advance"||s=="replace"||s=="restore"}function Z(...s){const e=ze("data-turbo-action",...s);return Lr(e)?e:null}function Ht(s){return document.querySelector(`meta[name="${s}"]`)}function Xe(s){const e=Ht(s);return e&&e.content}function cs(){const s=Ht("csp-nonce");if(s){const{nonce:e,content:t}=s;return e==""?t:e}}function Tr(s,e){let t=Ht(s);return t||(t=document.createElement("meta"),t.setAttribute("name",s),document.head.appendChild(t)),t.setAttribute("content",e),t}function ce(s,e){var t;if(s instanceof Element)return s.closest(e)||ce(s.assignedSlot||((t=s.getRootNode())==null?void 0:t.host),e)}function Bt(s){const e="[inert], :disabled, [hidden], details:not([open]), dialog:not([open])";return!!s&&s.closest(e)==null&&typeof s.focus=="function"}function ls(s){return Array.from(s.querySelectorAll("[autofocus]")).find(Bt)}async function Pr(s,e){const t=e();s(),await rs();const r=e();return[t,r]}function hs(s){if(s==="_blank")return!1;if(s){for(const e of document.getElementsByName(s))if(e instanceof HTMLIFrameElement)return!1;return!0}else return!0}function ds(s){return ce(s,"a[href]:not([target^=_]):not([download])")}function us(s){return T(s.getAttribute("href")||"")}function Cr(s,e){let t=null;return(...r)=>{const i=()=>s.apply(this,r);clearTimeout(t),t=setTimeout(i,e)}}const Mr={"aria-disabled":{beforeSubmit:s=>{s.setAttribute("aria-disabled","true"),s.addEventListener("click",Xt)},afterSubmit:s=>{s.removeAttribute("aria-disabled"),s.removeEventListener("click",Xt)}},disabled:{beforeSubmit:s=>s.disabled=!0,afterSubmit:s=>s.disabled=!1}};var Ae;class kr{constructor(e){m(this,Ae,null);Object.assign(this,e)}get submitter(){return f(this,Ae)}set submitter(e){S(this,Ae,Mr[e]||e)}}Ae=new WeakMap;const Ir=new kr({mode:"on",submitter:"disabled"}),L={drive:vr,forms:Ir};function T(s){return new URL(s.toString(),document.baseURI)}function ee(s){let e;if(s.hash)return s.hash.slice(1);if(e=s.href.match(/#(.*)$/))return e[1]}function Ot(s,e){const t=(e==null?void 0:e.getAttribute("formaction"))||s.getAttribute("action")||s.action;return T(t)}function Fr(s){return(Or(s).match(/\.[^.]*$/)||[])[0]||""}function qr(s,e){const t=Dr(e);return s.href===T(t).href||s.href.startsWith(t)}function N(s,e){return qr(s,e)&&!L.drive.unvisitableExtensions.has(Fr(s))}function kt(s){const e=ee(s);return e!=null?s.href.slice(0,-(e.length+1)):s.href}function Ne(s){return kt(s)}function Hr(s,e){return T(s).href==T(e).href}function Br(s){return s.pathname.split("/").slice(1)}function Or(s){return Br(s).slice(-1)[0]}function Dr(s){return Vr(s.origin+s.pathname)}function Vr(s){return s.endsWith("/")?s:s+"/"}class bt{constructor(e){this.response=e}get succeeded(){return this.response.ok}get failed(){return!this.succeeded}get clientError(){return this.statusCode>=400&&this.statusCode<=499}get serverError(){return this.statusCode>=500&&this.statusCode<=599}get redirected(){return this.response.redirected}get location(){return T(this.response.url)}get isHTML(){return this.contentType&&this.contentType.match(/^(?:text\/([^\s;,]+\b)?html|application\/xhtml\+xml)\b/)}get statusCode(){return this.response.status}get contentType(){return this.header("Content-Type")}get responseText(){return this.response.clone().text()}get responseHTML(){return this.isHTML?this.response.clone().text():Promise.resolve(void 0)}header(e){return this.response.headers.get(e)}}class Nr extends Set{constructor(e){super(),this.maxSize=e}add(e){if(this.size>=this.maxSize){const r=this.values().next().value;this.delete(r)}super.add(e)}}const ms=new Nr(20),Wr=window.fetch;function Dt(s,e={}){const t=new Headers(e.headers||{}),r=j();return ms.add(r),t.append("X-Turbo-Request-Id",r),Wr(s,{...e,headers:t})}function vt(s){switch(s.toLowerCase()){case"get":return M.get;case"post":return M.post;case"put":return M.put;case"patch":return M.patch;case"delete":return M.delete}}const M={get:"get",post:"post",put:"put",patch:"patch",delete:"delete"};function fs(s){switch(s.toLowerCase()){case W.multipart:return W.multipart;case W.plain:return W.plain;default:return W.urlEncoded}}const W={urlEncoded:"application/x-www-form-urlencoded",multipart:"multipart/form-data",plain:"text/plain"};var Le,Qe,ps,Ge,gs;class ve{constructor(e,t,r,i=new URLSearchParams,c=null,p=W.urlEncoded){m(this,Qe);m(this,Ge);l(this,"abortController",new AbortController);m(this,Le,e=>{});var C;const[v,E]=Yt(T(r),t,i,p);this.delegate=e,this.url=v,this.target=c,this.fetchOptions={credentials:"same-origin",redirect:"follow",method:t.toUpperCase(),headers:{...this.defaultHeaders},body:E,signal:this.abortSignal,referrer:(C=this.delegate.referrer)==null?void 0:C.href},this.enctype=p}get method(){return this.fetchOptions.method}set method(e){const t=this.isSafe?this.url.searchParams:this.fetchOptions.body||new FormData,r=vt(e)||M.get;this.url.search="";const[i,c]=Yt(this.url,r,t,this.enctype);this.url=i,this.fetchOptions.body=c,this.fetchOptions.method=r.toUpperCase()}get headers(){return this.fetchOptions.headers}set headers(e){this.fetchOptions.headers=e}get body(){return this.isSafe?this.url.searchParams:this.fetchOptions.body}set body(e){this.fetchOptions.body=e}get location(){return this.url}get params(){return this.url.searchParams}get entries(){return this.body?Array.from(this.body.entries()):[]}cancel(){this.abortController.abort()}async perform(){const{fetchOptions:e}=this;this.delegate.prepareRequest(this);const t=await g(this,Qe,ps).call(this,e);try{this.delegate.requestStarted(this),t.detail.fetchRequest?this.response=t.detail.fetchRequest.response:this.response=Dt(this.url.href,e);const r=await this.response;return await this.receive(r)}catch(r){if(r.name!=="AbortError")throw g(this,Ge,gs).call(this,r)&&this.delegate.requestErrored(this,r),r}finally{this.delegate.requestFinished(this)}}async receive(e){const t=new bt(e);return w("turbo:before-fetch-response",{cancelable:!0,detail:{fetchResponse:t},target:this.target}).defaultPrevented?this.delegate.requestPreventedHandlingResponse(this,t):t.succeeded?this.delegate.requestSucceededWithResponse(this,t):this.delegate.requestFailedWithResponse(this,t),t}get defaultHeaders(){return{Accept:"text/html, application/xhtml+xml"}}get isSafe(){return St(this.method)}get abortSignal(){return this.abortController.signal}acceptResponseType(e){this.headers.Accept=[e,this.headers.Accept].join(", ")}}Le=new WeakMap,Qe=new WeakSet,ps=async function(e){const t=new Promise(i=>S(this,Le,i)),r=w("turbo:before-fetch-request",{cancelable:!0,detail:{fetchOptions:e,url:this.url,resume:f(this,Le)},target:this.target});return this.url=r.detail.url,r.defaultPrevented&&await t,r},Ge=new WeakSet,gs=function(e){return!w("turbo:fetch-request-error",{target:this.target,cancelable:!0,detail:{request:this,error:e}}).defaultPrevented};function St(s){return vt(s)==M.get}function Yt(s,e,t,r){const i=Array.from(t).length>0?new URLSearchParams(bs(t)):s.searchParams;return St(e)?[_r(s,i),null]:r==W.urlEncoded?[s,i]:[s,t]}function bs(s){const e=[];for(const[t,r]of s)r instanceof File||e.push([t,r]);return e}function _r(s,e){const t=new URLSearchParams(bs(e));return s.search=t.toString(),s}class Ur{constructor(e,t){l(this,"started",!1);l(this,"intersect",e=>{const t=e.slice(-1)[0];t!=null&&t.isIntersecting&&this.delegate.elementAppearedInViewport(this.element)});this.delegate=e,this.element=t,this.intersectionObserver=new IntersectionObserver(this.intersect)}start(){this.started||(this.started=!0,this.intersectionObserver.observe(this.element))}stop(){this.started&&(this.started=!1,this.intersectionObserver.unobserve(this.element))}}class te{static wrap(e){return typeof e=="string"?new this(wr(e)):e}constructor(e){this.fragment=xr(e)}}l(te,"contentType","text/vnd.turbo-stream.html");function xr(s){for(const e of s.querySelectorAll("turbo-stream")){const t=document.importNode(e,!0);for(const r of t.templateElement.content.querySelectorAll("script"))r.replaceWith(Re(r));e.replaceWith(t)}return s}const $r=100;var Q,D;class zr{constructor(){m(this,Q,null);m(this,D,null)}get(e){if(f(this,D)&&f(this,D).url===e&&f(this,D).expire>Date.now())return f(this,D).request}setLater(e,t,r){this.clear(),S(this,Q,setTimeout(()=>{t.perform(),this.set(e,t,r),S(this,Q,null)},$r))}set(e,t,r){S(this,D,{url:e,request:t,expire:new Date(new Date().getTime()+r)})}clear(){f(this,Q)&&clearTimeout(f(this,Q)),S(this,D,null)}}Q=new WeakMap,D=new WeakMap;const jr=10*1e3,ae=new zr,ie={initialized:"initialized",requesting:"requesting",waiting:"waiting",receiving:"receiving",stopping:"stopping",stopped:"stopped"};class wt{constructor(e,t,r,i=!1){l(this,"state",ie.initialized);const c=Gr(t,r),p=Qr(Jr(t,r),c),v=Kr(t,r),E=Zr(t,r);this.delegate=e,this.formElement=t,this.submitter=r,this.fetchRequest=new ve(this,c,p,v,t,E),this.mustRedirect=i}static confirmMethod(e){return Promise.resolve(confirm(e))}get method(){return this.fetchRequest.method}set method(e){this.fetchRequest.method=e}get action(){return this.fetchRequest.url.toString()}set action(e){this.fetchRequest.url=T(e)}get body(){return this.fetchRequest.body}get enctype(){return this.fetchRequest.enctype}get isSafe(){return this.fetchRequest.isSafe}get location(){return this.fetchRequest.url}async start(){const{initialized:e,requesting:t}=ie,r=ze("data-turbo-confirm",this.submitter,this.formElement);if(!(typeof r=="string"&&!await(typeof L.forms.confirm=="function"?L.forms.confirm:wt.confirmMethod)(r,this.formElement,this.submitter))&&this.state==e)return this.state=t,this.fetchRequest.perform()}stop(){const{stopping:e,stopped:t}=ie;if(this.state!=e&&this.state!=t)return this.state=e,this.fetchRequest.cancel(),!0}prepareRequest(e){if(!e.isSafe){const t=Xr(Xe("csrf-param"))||Xe("csrf-token");t&&(e.headers["X-CSRF-Token"]=t)}this.requestAcceptsTurboStreamResponse(e)&&e.acceptResponseType(te.contentType)}requestStarted(e){this.state=ie.waiting,this.submitter&&L.forms.submitter.beforeSubmit(this.submitter),this.setSubmitsWith(),je(this.formElement),w("turbo:submit-start",{target:this.formElement,detail:{formSubmission:this}}),this.delegate.formSubmissionStarted(this)}requestPreventedHandlingResponse(e,t){ae.clear(),this.result={success:t.succeeded,fetchResponse:t}}requestSucceededWithResponse(e,t){if(t.clientError||t.serverError){this.delegate.formSubmissionFailedWithResponse(this,t);return}if(ae.clear(),this.requestMustRedirect(e)&&Yr(t)){const r=new Error("Form responses must redirect to another location");this.delegate.formSubmissionErrored(this,r)}else this.state=ie.receiving,this.result={success:!0,fetchResponse:t},this.delegate.formSubmissionSucceededWithResponse(this,t)}requestFailedWithResponse(e,t){this.result={success:!1,fetchResponse:t},this.delegate.formSubmissionFailedWithResponse(this,t)}requestErrored(e,t){this.result={success:!1,error:t},this.delegate.formSubmissionErrored(this,t)}requestFinished(e){this.state=ie.stopped,this.submitter&&L.forms.submitter.afterSubmit(this.submitter),this.resetSubmitterText(),Ke(this.formElement),w("turbo:submit-end",{target:this.formElement,detail:{formSubmission:this,...this.result}}),this.delegate.formSubmissionFinished(this)}setSubmitsWith(){if(!(!this.submitter||!this.submitsWith)){if(this.submitter.matches("button"))this.originalSubmitText=this.submitter.innerHTML,this.submitter.innerHTML=this.submitsWith;else if(this.submitter.matches("input")){const e=this.submitter;this.originalSubmitText=e.value,e.value=this.submitsWith}}}resetSubmitterText(){if(!(!this.submitter||!this.originalSubmitText)){if(this.submitter.matches("button"))this.submitter.innerHTML=this.originalSubmitText;else if(this.submitter.matches("input")){const e=this.submitter;e.value=this.originalSubmitText}}}requestMustRedirect(e){return!e.isSafe&&this.mustRedirect}requestAcceptsTurboStreamResponse(e){return!e.isSafe||Rr("data-turbo-stream",this.submitter,this.formElement)}get submitsWith(){var e;return(e=this.submitter)==null?void 0:e.getAttribute("data-turbo-submits-with")}}function Kr(s,e){const t=new FormData(s),r=e==null?void 0:e.getAttribute("name"),i=e==null?void 0:e.getAttribute("value");return r&&t.append(r,i||""),t}function Xr(s){if(s!=null){const t=(document.cookie?document.cookie.split("; "):[]).find(r=>r.startsWith(s));if(t){const r=t.split("=").slice(1).join("=");return r?decodeURIComponent(r):void 0}}}function Yr(s){return s.statusCode==200&&!s.redirected}function Jr(s,e){const t=typeof s.action=="string"?s.action:null;return e!=null&&e.hasAttribute("formaction")?e.getAttribute("formaction")||"":s.getAttribute("action")||t||""}function Qr(s,e){const t=T(s);return St(e)&&(t.search=""),t}function Gr(s,e){const t=(e==null?void 0:e.getAttribute("formmethod"))||s.getAttribute("method")||"";return vt(t.toLowerCase())||M.get}function Zr(s,e){return fs((e==null?void 0:e.getAttribute("formenctype"))||s.enctype)}class yt{constructor(e){this.element=e}get activeElement(){return this.element.ownerDocument.activeElement}get children(){return[...this.element.children]}hasAnchor(e){return this.getElementForAnchor(e)!=null}getElementForAnchor(e){return e?this.element.querySelector(`[id='${e}'], a[name='${e}']`):null}get isConnected(){return this.element.isConnected}get firstAutofocusableElement(){return ls(this.element)}get permanentElements(){return Ss(this.element)}getPermanentElementById(e){return vs(this.element,e)}getPermanentElementMapForSnapshot(e){const t={};for(const r of this.permanentElements){const{id:i}=r,c=e.getPermanentElementById(i);c&&(t[i]=[r,c])}return t}}function vs(s,e){return s.querySelector(`#${e}[data-turbo-permanent]`)}function Ss(s){return s.querySelectorAll("[id][data-turbo-permanent]")}class Vt{constructor(e,t){l(this,"started",!1);l(this,"submitCaptured",()=>{this.eventTarget.removeEventListener("submit",this.submitBubbled,!1),this.eventTarget.addEventListener("submit",this.submitBubbled,!1)});l(this,"submitBubbled",e=>{if(!e.defaultPrevented){const t=e.target instanceof HTMLFormElement?e.target:void 0,r=e.submitter||void 0;t&&ei(t,r)&&ti(t,r)&&this.delegate.willSubmitForm(t,r)&&(e.preventDefault(),e.stopImmediatePropagation(),this.delegate.formSubmitted(t,r))}});this.delegate=e,this.eventTarget=t}start(){this.started||(this.eventTarget.addEventListener("submit",this.submitCaptured,!0),this.started=!0)}stop(){this.started&&(this.eventTarget.removeEventListener("submit",this.submitCaptured,!0),this.started=!1)}}function ei(s,e){return((e==null?void 0:e.getAttribute("formmethod"))||s.getAttribute("method"))!="dialog"}function ti(s,e){const t=(e==null?void 0:e.getAttribute("formtarget"))||s.getAttribute("target");return hs(t)}var Te,Pe;class ws{constructor(e,t){m(this,Te,e=>{});m(this,Pe,e=>{});this.delegate=e,this.element=t}scrollToAnchor(e){const t=this.snapshot.getElementForAnchor(e);t?(this.scrollToElement(t),this.focusElement(t)):this.scrollToPosition({x:0,y:0})}scrollToAnchorFromLocation(e){this.scrollToAnchor(ee(e))}scrollToElement(e){e.scrollIntoView()}focusElement(e){e instanceof HTMLElement&&(e.hasAttribute("tabindex")?e.focus():(e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")))}scrollToPosition({x:e,y:t}){this.scrollRoot.scrollTo(e,t)}scrollToTop(){this.scrollToPosition({x:0,y:0})}get scrollRoot(){return window}async render(e){const{isPreview:t,shouldRender:r,willRender:i,newSnapshot:c}=e,p=i;if(r)try{this.renderPromise=new Promise(F=>S(this,Te,F)),this.renderer=e,await this.prepareToRenderSnapshot(e);const v=new Promise(F=>S(this,Pe,F)),E={resume:f(this,Pe),render:this.renderer.renderElement,renderMethod:this.renderer.renderMethod};this.delegate.allowsImmediateRender(c,E)||await v,await this.renderSnapshot(e),this.delegate.viewRenderedSnapshot(c,t,this.renderer.renderMethod),this.delegate.preloadOnLoadLinksForView(this.element),this.finishRenderingSnapshot(e)}finally{delete this.renderer,f(this,Te).call(this,void 0),delete this.renderPromise}else p&&this.invalidate(e.reloadReason)}invalidate(e){this.delegate.viewInvalidated(e)}async prepareToRenderSnapshot(e){this.markAsPreview(e.isPreview),await e.prepareToRender()}markAsPreview(e){e?this.element.setAttribute("data-turbo-preview",""):this.element.removeAttribute("data-turbo-preview")}markVisitDirection(e){this.element.setAttribute("data-turbo-visit-direction",e)}unmarkVisitDirection(){this.element.removeAttribute("data-turbo-visit-direction")}async renderSnapshot(e){await e.render()}finishRenderingSnapshot(e){e.finishRendering()}}Te=new WeakMap,Pe=new WeakMap;class si extends ws{missing(){this.element.innerHTML='Content missing'}get snapshot(){return new yt(this.element)}}class ys{constructor(e,t){l(this,"clickBubbled",e=>{this.clickEventIsSignificant(e)?this.clickEvent=e:delete this.clickEvent});l(this,"linkClicked",e=>{this.clickEvent&&this.clickEventIsSignificant(e)&&this.delegate.shouldInterceptLinkClick(e.target,e.detail.url,e.detail.originalEvent)&&(this.clickEvent.preventDefault(),e.preventDefault(),this.delegate.linkClickIntercepted(e.target,e.detail.url,e.detail.originalEvent)),delete this.clickEvent});l(this,"willVisit",e=>{delete this.clickEvent});this.delegate=e,this.element=t}start(){this.element.addEventListener("click",this.clickBubbled),document.addEventListener("turbo:click",this.linkClicked),document.addEventListener("turbo:before-visit",this.willVisit)}stop(){this.element.removeEventListener("click",this.clickBubbled),document.removeEventListener("turbo:click",this.linkClicked),document.removeEventListener("turbo:before-visit",this.willVisit)}clickEventIsSignificant(e){var i;const t=e.composed?(i=e.target)==null?void 0:i.parentElement:e.target,r=ds(t)||t;return r instanceof Element&&r.closest("turbo-frame, html")==this.element}}class Es{constructor(e,t){l(this,"started",!1);l(this,"clickCaptured",()=>{this.eventTarget.removeEventListener("click",this.clickBubbled,!1),this.eventTarget.addEventListener("click",this.clickBubbled,!1)});l(this,"clickBubbled",e=>{if(e instanceof MouseEvent&&this.clickEventIsSignificant(e)){const t=e.composedPath&&e.composedPath()[0]||e.target,r=ds(t);if(r&&hs(r.target)){const i=us(r);this.delegate.willFollowLinkToLocation(r,i,e)&&(e.preventDefault(),this.delegate.followedLinkToLocation(r,i))}}});this.delegate=e,this.eventTarget=t}start(){this.started||(this.eventTarget.addEventListener("click",this.clickCaptured,!0),this.started=!0)}stop(){this.started&&(this.eventTarget.removeEventListener("click",this.clickCaptured,!0),this.started=!1)}clickEventIsSignificant(e){return!(e.target&&e.target.isContentEditable||e.defaultPrevented||e.which>1||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey)}}class Rs{constructor(e,t){this.delegate=e,this.linkInterceptor=new Es(this,t)}start(){this.linkInterceptor.start()}stop(){this.linkInterceptor.stop()}canPrefetchRequestToLocation(e,t){return!1}prefetchAndCacheRequestToLocation(e,t){}willFollowLinkToLocation(e,t,r){return this.delegate.willSubmitFormLinkToLocation(e,t,r)&&(e.hasAttribute("data-turbo-method")||e.hasAttribute("data-turbo-stream"))}followedLinkToLocation(e,t){const r=document.createElement("form"),i="hidden";for(const[se,P]of t.searchParams)r.append(Object.assign(document.createElement("input"),{type:i,name:se,value:P}));const c=Object.assign(t,{search:""});r.setAttribute("data-turbo","true"),r.setAttribute("action",c.href),r.setAttribute("hidden","");const p=e.getAttribute("data-turbo-method");p&&r.setAttribute("method",p);const v=e.getAttribute("data-turbo-frame");v&&r.setAttribute("data-turbo-frame",v);const E=Z(e);E&&r.setAttribute("data-turbo-action",E);const C=e.getAttribute("data-turbo-confirm");C&&r.setAttribute("data-turbo-confirm",C),e.hasAttribute("data-turbo-stream")&&r.setAttribute("data-turbo-stream",""),this.delegate.submittedFormLinkToLocation(e,t,r),document.body.appendChild(r),r.addEventListener("turbo:submit-end",()=>r.remove(),{once:!0}),requestAnimationFrame(()=>r.requestSubmit())}}class As{static async preservingPermanentElements(e,t,r){const i=new this(e,t);i.enter(),await r(),i.leave()}constructor(e,t){this.delegate=e,this.permanentElementMap=t}enter(){for(const e in this.permanentElementMap){const[t,r]=this.permanentElementMap[e];this.delegate.enteringBardo(t,r),this.replaceNewPermanentElementWithPlaceholder(r)}}leave(){for(const e in this.permanentElementMap){const[t]=this.permanentElementMap[e];this.replaceCurrentPermanentElementWithClone(t),this.replacePlaceholderWithPermanentElement(t),this.delegate.leavingBardo(t)}}replaceNewPermanentElementWithPlaceholder(e){const t=ri(e);e.replaceWith(t)}replaceCurrentPermanentElementWithClone(e){const t=e.cloneNode(!0);e.replaceWith(t)}replacePlaceholderWithPermanentElement(e){const t=this.getPlaceholderById(e.id);t==null||t.replaceWith(e)}getPlaceholderById(e){return this.placeholders.find(t=>t.content==e)}get placeholders(){return[...document.querySelectorAll("meta[name=turbo-permanent-placeholder][content]")]}}function ri(s){const e=document.createElement("meta");return e.setAttribute("name","turbo-permanent-placeholder"),e.setAttribute("content",s.id),e}var V;class Nt{constructor(e,t,r,i=!0){m(this,V,null);this.currentSnapshot=e,this.newSnapshot=t,this.isPreview=r,this.willRender=i,this.renderElement=this.constructor.renderElement,this.promise=new Promise((c,p)=>this.resolvingFunctions={resolve:c,reject:p})}static renderElement(e,t){}get shouldRender(){return!0}get shouldAutofocus(){return!0}get reloadReason(){}prepareToRender(){}render(){}finishRendering(){this.resolvingFunctions&&(this.resolvingFunctions.resolve(),delete this.resolvingFunctions)}async preservingPermanentElements(e){await As.preservingPermanentElements(this,this.permanentElementMap,e)}focusFirstAutofocusableElement(){if(this.shouldAutofocus){const e=this.connectedSnapshot.firstAutofocusableElement;e&&e.focus()}}enteringBardo(e){f(this,V)||e.contains(this.currentSnapshot.activeElement)&&S(this,V,this.currentSnapshot.activeElement)}leavingBardo(e){e.contains(f(this,V))&&f(this,V)instanceof HTMLElement&&(f(this,V).focus(),S(this,V,null))}get connectedSnapshot(){return this.newSnapshot.isConnected?this.newSnapshot:this.currentSnapshot}get currentElement(){return this.currentSnapshot.element}get newElement(){return this.newSnapshot.element}get permanentElementMap(){return this.currentSnapshot.getPermanentElementMapForSnapshot(this.newSnapshot)}get renderMethod(){return"replace"}}V=new WeakMap;class Et extends Nt{static renderElement(e,t){var p;const r=document.createRange();r.selectNodeContents(e),r.deleteContents();const i=t,c=(p=i.ownerDocument)==null?void 0:p.createRange();c&&(c.selectNodeContents(i),e.appendChild(c.extractContents()))}constructor(e,t,r,i,c,p=!0){super(t,r,i,c,p),this.delegate=e}get shouldRender(){return!0}async render(){await Ee(),this.preservingPermanentElements(()=>{this.loadFrameElement()}),this.scrollFrameIntoView(),await Ee(),this.focusFirstAutofocusableElement(),await Ee(),this.activateScriptElements()}loadFrameElement(){this.delegate.willRenderFrame(this.currentElement,this.newElement),this.renderElement(this.currentElement,this.newElement)}scrollFrameIntoView(){if(this.currentElement.autoscroll||this.newElement.autoscroll){const e=this.currentElement.firstElementChild,t=ii(this.currentElement.getAttribute("data-autoscroll-block"),"end"),r=ni(this.currentElement.getAttribute("data-autoscroll-behavior"),"auto");if(e)return e.scrollIntoView({block:t,behavior:r}),!0}return!1}activateScriptElements(){for(const e of this.newScriptElements){const t=Re(e);e.replaceWith(t)}}get newScriptElements(){return this.currentElement.querySelectorAll("script")}}function ii(s,e){return s=="end"||s=="start"||s=="center"||s=="nearest"?s:e}function ni(s,e){return s=="auto"||s=="smooth"?s:e}var oi=function(){let s=new Set,e={morphStyle:"outerHTML",callbacks:{beforeNodeAdded:P,afterNodeAdded:P,beforeNodeMorphed:P,afterNodeMorphed:P,beforeNodeRemoved:P,afterNodeRemoved:P,beforeAttributeUpdated:P},head:{style:"merge",shouldPreserve:function(n){return n.getAttribute("im-preserve")==="true"},shouldReAppend:function(n){return n.getAttribute("im-re-append")==="true"},shouldRemove:P,afterHeadMorphed:P}};function t(n,o,a={}){n instanceof Document&&(n=n.documentElement),typeof o=="string"&&(o=rr(o));let h=ir(o),d=Pt(n,h,a);return r(n,h,d)}function r(n,o,a){if(a.head.block){let h=n.querySelector("head"),d=o.querySelector("head");if(h&&d){let u=se(d,h,a);Promise.all(u).then(function(){r(n,o,Object.assign(a,{head:{block:!1,ignore:!0}}))});return}}if(a.morphStyle==="innerHTML")return p(o,n,a),n.children;if(a.morphStyle==="outerHTML"||a.morphStyle==null){let h=or(o,n,a),d=h==null?void 0:h.previousSibling,u=h==null?void 0:h.nextSibling,b=c(n,h,a);return h?nr(d,b,u):[]}else throw"Do not understand how to morph style "+a.morphStyle}function i(n,o){return o.ignoreActiveValue&&n===document.activeElement&&n!==document.body}function c(n,o,a){if(!(a.ignoreActive&&n===document.activeElement))return o==null?a.callbacks.beforeNodeRemoved(n)===!1?n:(n.remove(),a.callbacks.afterNodeRemoved(n),null):re(n,o)?(a.callbacks.beforeNodeMorphed(n,o)===!1||(n instanceof HTMLHeadElement&&a.head.ignore||(n instanceof HTMLHeadElement&&a.head.style!=="morph"?se(o,n,a):(E(o,n,a),i(n,a)||p(o,n,a))),a.callbacks.afterNodeMorphed(n,o)),n):a.callbacks.beforeNodeRemoved(n)===!1||a.callbacks.beforeNodeAdded(o)===!1?n:(n.parentElement.replaceChild(o,n),a.callbacks.afterNodeAdded(o),a.callbacks.afterNodeRemoved(n),o)}function p(n,o,a){let h=n.firstChild,d=o.firstChild,u;for(;h;){if(u=h,h=u.nextSibling,d==null){if(a.callbacks.beforeNodeAdded(u)===!1)return;o.appendChild(u),a.callbacks.afterNodeAdded(u),K(a,u);continue}if(Ve(u,d,a)){c(d,u,a),d=d.nextSibling,K(a,u);continue}let b=tr(n,o,u,d,a);if(b){d=$t(d,b,a),c(b,u,a),K(a,u);continue}let R=sr(n,o,u,d,a);if(R){d=$t(d,R,a),c(R,u,a),K(a,u);continue}if(a.callbacks.beforeNodeAdded(u)===!1)return;o.insertBefore(u,d),a.callbacks.afterNodeAdded(u),K(a,u)}for(;d!==null;){let b=d;d=d.nextSibling,zt(b,a)}}function v(n,o,a,h){return n==="value"&&h.ignoreActiveValue&&o===document.activeElement?!0:h.callbacks.beforeAttributeUpdated(n,o,a)===!1}function E(n,o,a){let h=n.nodeType;if(h===1){const d=n.attributes,u=o.attributes;for(const b of d)v(b.name,o,"update",a)||o.getAttribute(b.name)!==b.value&&o.setAttribute(b.name,b.value);for(let b=u.length-1;0<=b;b--){const R=u[b];v(R.name,o,"remove",a)||n.hasAttribute(R.name)||o.removeAttribute(R.name)}}(h===8||h===3)&&o.nodeValue!==n.nodeValue&&(o.nodeValue=n.nodeValue),i(o,a)||F(n,o,a)}function C(n,o,a,h){if(n[a]!==o[a]){let d=v(a,o,"update",h);d||(o[a]=n[a]),n[a]?d||o.setAttribute(a,n[a]):v(a,o,"remove",h)||o.removeAttribute(a)}}function F(n,o,a){if(n instanceof HTMLInputElement&&o instanceof HTMLInputElement&&n.type!=="file"){let h=n.value,d=o.value;C(n,o,"checked",a),C(n,o,"disabled",a),n.hasAttribute("value")?h!==d&&(v("value",o,"update",a)||(o.setAttribute("value",h),o.value=h)):v("value",o,"remove",a)||(o.value="",o.removeAttribute("value"))}else if(n instanceof HTMLOptionElement)C(n,o,"selected",a);else if(n instanceof HTMLTextAreaElement&&o instanceof HTMLTextAreaElement){let h=n.value,d=o.value;if(v("value",o,"update",a))return;h!==d&&(o.value=h),o.firstChild&&o.firstChild.nodeValue!==h&&(o.firstChild.nodeValue=h)}}function se(n,o,a){let h=[],d=[],u=[],b=[],R=a.head.style,X=new Map;for(const A of n.children)X.set(A.outerHTML,A);for(const A of o.children){let H=X.has(A.outerHTML),we=a.head.shouldReAppend(A),Ct=a.head.shouldPreserve(A);H||Ct?we?d.push(A):(X.delete(A.outerHTML),u.push(A)):R==="append"?we&&(d.push(A),b.push(A)):a.head.shouldRemove(A)!==!1&&d.push(A)}b.push(...X.values());let Kt=[];for(const A of b){let H=document.createRange().createContextualFragment(A.outerHTML).firstChild;if(a.callbacks.beforeNodeAdded(H)!==!1){if(H.href||H.src){let we=null,Ct=new Promise(function(dr){we=dr});H.addEventListener("load",function(){we()}),Kt.push(Ct)}o.appendChild(H),a.callbacks.afterNodeAdded(H),h.push(H)}}for(const A of d)a.callbacks.beforeNodeRemoved(A)!==!1&&(o.removeChild(A),a.callbacks.afterNodeRemoved(A));return a.head.afterHeadMorphed(o,{added:h,kept:u,removed:d}),Kt}function P(){}function Tt(n){let o={};return Object.assign(o,e),Object.assign(o,n),o.callbacks={},Object.assign(o.callbacks,e.callbacks),Object.assign(o.callbacks,n.callbacks),o.head={},Object.assign(o.head,e.head),Object.assign(o.head,n.head),o}function Pt(n,o,a){return a=Tt(a),{target:n,newContent:o,config:a,morphStyle:a.morphStyle,ignoreActive:a.ignoreActive,ignoreActiveValue:a.ignoreActiveValue,idMap:hr(n,o),deadIds:new Set,callbacks:a.callbacks,head:a.head}}function Ve(n,o,a){return n==null||o==null?!1:n.nodeType===o.nodeType&&n.tagName===o.tagName?n.id!==""&&n.id===o.id?!0:Se(a,n,o)>0:!1}function re(n,o){return n==null||o==null?!1:n.nodeType===o.nodeType&&n.tagName===o.tagName}function $t(n,o,a){for(;n!==o;){let h=n;n=n.nextSibling,zt(h,a)}return K(a,o),o.nextSibling}function tr(n,o,a,h,d){let u=Se(d,a,o),b=null;if(u>0){let R=h,X=0;for(;R!=null;){if(Ve(a,R,d))return R;if(X+=Se(d,R,n),X>u)return null;R=R.nextSibling}}return b}function sr(n,o,a,h,d){let u=h,b=a.nextSibling,R=0;for(;u!=null;){if(Se(d,u,n)>0)return null;if(re(a,u))return u;if(re(b,u)&&(R++,b=b.nextSibling,R>=2))return null;u=u.nextSibling}return u}function rr(n){let o=new DOMParser,a=n.replace(/