1import{r as u,j as r}from"./index-aWHYV2P8.js";import{P as v}from"./attendanceDate-DE7Ar6Gc.js";import{P as Q}from"./PublicPrivacyFooter-i-dCTtal.js";import{k as X,p as Z}from"./formClasses-BohnxhWn.js";import"./SignaturePad-aEn2Q4kn.js";import{h as ee,i as te,A as ne}from"./useWaivers-tPZWSUFq.js";import{n as R,W as re,a as se}from"./waiverDocumentModel-DkcMwDAK.js";import{b as ae}from"./m4hMark-4bQO_nXa.js";import{an as T}from"./App-DGJhB_Lc.js";import{C as ie}from"./circle-check-Cx-WixrN.js";import"./supabaseClient-Bga8xEX7.js";import"./FormNativeSelect--the3wZE.js";import"./FormTextInput-CH9xCr3T.js";import"./pageMeta-OBeqI8bG.js";import"./authRoutes-YPIBnK90.js";import"./template-BymKwmnO.js";import"./queryClient-CMzOD_mj.js";const x="Participation Waiver";function i(e){return typeof e=="string"?e.trim():""}function oe(e){var t;return i(e.program_name)||i((t=e.group)==null?void 0:t.program_name)}function le(e){var t,n;return i((t=e.school)==null?void 0:t.school_name)||i((n=e.group)==null?void 0:n.school_name)}function ue(e){const t=i(e.start_date)||i(e.end_date);if(!t)return"";const n=Number(t.slice(0,4));return Number.isFinite(n)&&n>=2e3&&n<=2100?String(n):""}function ce(e,t){const n=e.trim();if(!n||!t)return n;const a=new RegExp(`\\s*[-ââ]\\s*(Fall|Spring|Summer|Winter)\\s+${t}\\s*$`,"i"),s=new RegExp(`\\s*[-ââ]\\s*${t}\\s*$`);return n.replace(a,"").replace(s,"").trim()||n}function D(e){const t=e.trim();return t?new RegExp(`\\b${x}$`,"i").test(t)?t:/^waiver$/i.test(t)?x:/\s+waiver$/i.test(t)?t.replace(/\s+waiver$/i,` ${x}`):`${t} ${x}`:x}const me=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function B(e){const t=i(e),n=/^(\d{4})-(\d{2})-(\d{2})$/.exec(t);if(!n)return null;const a=Number(n[1]),s=Number(n[2]),c=Number(n[3]);return s<1||s>12||c<1||c>31?null:{year:a,month:s,day:c}}function y(e,t){const n=`${me[e.month-1]} ${e.day}`;return t?`${n}, ${e.year}`:n}function de(e,t){const n=B(e),a=B(t);if(n&&a){const s=n.year===a.year;return`${y(n,!s)} â ${y(a,!0)}`}return n&&!i(t)?y(n,!0):a&&!i(e)?y(a,!0):[i(e),i(t)].filter(Boolean).join(" â ")}function fe(e){const t=[de(e.start_date,e.end_date),i(e.program_time),i(e.age_range)].filter(Boolean).join(" · ");return{location:i(e.location_name),schedule:t}}function xe(e,t=x){const n=oe(e),a=le(e),s=ue(e),c=i(e.name),g=i(t)||x;if(!n&&!a)return{title:D(c||g),subtitle:null};const w=n?ce(n,s):c||g,b=[a||null,s||null].filter(h=>!!h);return{title:D(w),subtitle:b.length>0?b.join(" · "):null}}function pe(e){return e.type!=="legal_section"&&e.type!=="section_heading"}function ge(e){return e==null?!1:typeof e=="string"?e.trim().length>0:typeof e=="boolean"?!0:typeof e=="number"?Number.isFinite(e):Array.isArray(e)?e.length>0:!0}function M(e,t,n){const a=[];for(const s of e)if(!(!pe(s)||!s.required)){if(s.type==="signature"){n!=null&&n.hasSignatureInk||a.push(s.label);continue}if(s.type==="checkbox"){t[s.id]!==!0&&a.push(s.label);continue}ge(t[s.id])||a.push(s.label)}return a}function F(e){const t=e.find(n=>n.type==="signature"&&n.mapsToLegacyColumn==="signature_storage_path");return(t==null?void 0:t.id)??null}function j(){return r.jsx(Q,{className:"mx-auto max-w-3xl",variant:"waiver"})}function he(){var e;return((e=crypto.randomUUID)==null?void 0:e.call(crypto))??`${Date.now()}-${Math.random().toString(36).slice(2)}`}function be(e){return new Promise((t,n)=>{const a=new FileReader;a.onerror=()=>n(new Error("signature_read_failed")),a.onload=()=>t(String(a.result)),a.readAsDataURL(e)})}function De(){const{slug:e}=ae(),t=ee(e),n=te(),a=u.useRef(null),[s,c]=u.useState({}),[g,w]=u.useState(0),[b]=u.useState(he),[h,L]=u.useState(!1),[P,U]=u.useState(""),[_,m]=u.useState(""),[H,O]=u.useState(!1),[Y,J]=u.useState(""),l=u.useMemo(()=>{if(!t.data)return null;try{return R({title:t.data.version.title,body:t.data.version.body,blocks_json:t.data.version.blocks_json??[]})}catch{return null}},[t.data]),S=u.useMemo(()=>{if(!t.data||l)return"";try{return R({title:t.data.version.title,body:t.data.version.body,blocks_json:t.data.version.blocks_json??[]}),""}catch(o){return o instanceof re?o.message:"This waiver document could not be opened."}},[l,t.data]);async function q(){var E,W;if(m(""),!e||!t.data||!l)return;const o=l.pages.length-1;if(g!==o||((E=l.pages[o])==null?void 0:E.role)!=="agreement"){m("Please complete all pages and submit from the Agreement page.");return}const d=M(l.pages[o].blocks,s,{hasSignatureInk:h});if(d.length>0){m(`Please complete: ${d.join(", ")}`);return}const f=F(l.pages[o].blocks)??F(l.pages.flatMap(p=>p.blocks));if(!f){m("This waiver is missing a signature field.");return}const A=await((W=a.current)==null?void 0:W.toBlob());if(!A){m("Please sign before submitting.");return}try{const p=await be(A),{campaign:G,version:I}=t.data,V=typeof s.student_name=="string"?s.student_name.trim():"",K={slug:e,campaign_id:G.id,waiver_version_id:I.id,content_hash:I.content_hash,submission_token:b,answers_json:s,signatures:{[f]:p},website:P||void 0};n.mutate(K,{onSuccess:()=>{J(V||"the participant"),O(!0)},onError:C=>m(C instanceof Error?C.message:"Unable to submit waiver.")})}catch(p){m(p instanceof Error?p.message:"Unable to submit waiver.")}}if(t.isLoading)return r.jsxs("main",{className:"min-h-screen bg-stone-50 px-4 py-8 font-sans",children:[r.jsxs("div",{className:"mx-auto max-w-3xl space-y-3",children:[r.jsx(v,{}),r.jsx("div",{className:"h-24 animate-pulse rounded-2xl bg-stone-100"}),r.jsx("div",{className:"h-96 animate-pulse rounded-2xl bg-stone-100"})]}),r.jsx(j,{})]});if(t.error||!t.data||!l||S)return r.jsxs("main",{className:"min-h-screen bg-stone-50 px-4 py-8 font-sans",children:[r.jsxs("div",{className:"mx-auto max-w-2xl",children:[r.jsx(v,{}),r.jsxs("section",{className:"rounded-2xl border border-stone-200 bg-white px-6 py-12 text-center shadow-sm",children:[r.jsx(T,{"aria-hidden":"true",className:"mx-auto mb-4 h-12 w-12 text-stone-300"}),r.jsx("h1",{className:"m-0 text-2xl font-semibold text-stone-950",children:"Waiver unavailable"}),r.jsx("p",{className:"m-0 mt-2 text-sm text-stone-500",children:S||"This waiver link is closed or no longer active."})]})]}),r.jsx(j,{})]});const{campaign:k,version:z}=t.data,$=fe(k),N=xe(k,z.title);return H?r.jsxs("main",{className:"min-h-screen bg-stone-50 px-4 py-8 font-sans",children:[r.jsxs("div",{className:"mx-auto max-w-2xl",children:[r.jsx(v,{}),r.jsxs("section",{className:"rounded-2xl border border-emerald-200 bg-white px-6 py-12 text-center shadow-sm",children:[r.jsx(ie,{"aria-hidden":"true",className:"mx-auto mb-4 h-14 w-14 text-emerald-600"}),r.jsx("h1",{className:"m-0 text-2xl font-semibold text-stone-950",children:"Waiver submitted"}),r.jsxs("p",{className:"m-0 mt-2 text-sm text-stone-600",children:["We received your signed waiver for ",Y||"the participant","."]})]})]}),r.jsx(j,{})]}):r.jsxs("main",{className:"min-h-screen bg-stone-50 px-4 py-6 font-sans sm:py-10",children:[r.jsxs("div",{className:"mx-auto max-w-3xl space-y-3",children:[r.jsx(v,{}),r.jsxs("header",{className:"rounded-2xl border border-violet-100 bg-gradient-to-br from-white via-violet-50 to-amber-50 px-5 py-5 shadow-sm",children:[r.jsx("h1",{className:"m-0 text-2xl font-semibold tracking-tight text-stone-950 sm:text-3xl",children:N.title}),N.subtitle?r.jsx("p",{className:"m-0 mt-1 text-sm font-medium text-stone-600",children:N.subtitle}):null,$.schedule?r.jsxs("p",{className:"m-0 mt-2 text-sm text-stone-600",children:["Program dates: ",$.schedule]}):null]}),_?r.jsx("p",{className:`${X} rounded-lg bg-rose-50 px-3 py-2`,children:_}):null,r.jsx("input",{"aria-hidden":"true",autoComplete:"off",className:"hidden",name:"website",onCh
1ange:o=>U(o.target.value),tabIndex:-1,value:P}),r.jsx(se,{answers:s,chrome:"plain",document:l,lastPageAction:r.jsxs("button",{className:Z,disabled:n.isPending||!h,onClick:()=>void q(),type:"button",children:[r.jsx(T,{"aria-hidden":"true",className:"h-4 w-4"}),n.isPending?"Submittingâ¦":ne]}),mode:"fill",onAnswerChange:(o,d)=>{c(f=>({...f,[o]:d})),m("")},onBeforeNext:o=>{const d=l.pages[o];if(!d)return null;const f=M(d.blocks,s,{hasSignatureInk:h});return f.length===0?null:`Please complete: ${f.join(", ")}`},onPageIndexChange:o=>{w(o),m("")},onSignatureInkChange:L,pageIndex:g,signaturePadRef:a})]}),r.jsx(j,{})]})}export{De as WaiverPublicPage};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.