PageSourceSearch

https://prosurfingtools.com/assets/training-DloAsaOp.js

js prosurfingtools.com collected 2026-09-24 14:51:02 UTC 129,464 bytes, 6 lines download raw bytes

1import{w as lt,u as le,r as o,j as n,o as it,al as mt,cf as gt,am as vt,V as Ls,b$ as Ps,B as pt,a3 as Tn,cC as es,cD as ar,h as ot,cE as rr,cc as ir,cd as or,F as G,a_ as As,cF as lr,cG as cr,ap as dr,cH as ur,f as Rn,a as Zt,cI as zs,cJ as $s,M as bn,cb as _s,cg as fr,W as Fs,v as Bs,g as Hs,cK as Ws,cL as te,an as Us,z as hr,cM as mr,ci as gr,Z as Vs,s as vr,cN as pr,be as Oe,cO as Tt,cP as br,e as xr,bk as yr,bl as ts,C as jr,L as ns,c1 as wr,R as Sr,b as dn,br as ss}from"./index-Br5nW43a.js";import{G as en}from"./get-surfer-BsHTFriC.js";import{w as Nr,a as Cr}from"./with-email-verification-Bp5rpZQy.js";import{u as Dr}from"./use-deletion-protection-DQ9ljpwY.js";import{b as xn}from"./index.esm-C-_xy2OQ.js";import{i as at,s as as,b as Tr}from"./heat-selection-D-kZsrAv.js";import{M as Lt}from"./modal-alert-DNdV8VUx.js";import{I as xt,a as Rr}from"./index.esm-D_tX_VAo.js";import{c as kr,d as Ir,e as Er}from"./index.esm-CNny3hpD.js";import{A as kn}from"./accordion-chevron-BzBYlqOn.js";import{B}from"./Button-DAMaCeRV.js";import{W as qs,b as Gs,G as Mr,a as Or,c as rs,s as is,d as os,h as ls,e as Lr,t as cs}from"./conditions-format-gF0HnKqq.js";import{d as Pr,G as Ar}from"./index.esm-B4jjQFQW.js";import{a as Xs,G as In}from"./index.esm-BPv83vHT.js";import{S as Ys}from"./stable-video-zVzHF-YO.js";import{M as H}from"./Modal-FnnLaYfz.js";import{A as ct}from"./Alert-DWTtpk7g.js";import{P as zr}from"./ProgressBar-CUaaDpgv.js";import{T as $r}from"./Typeahead-C0JpIGvH.js";import{M as _r}from"./modal-upgrade-CHEjvEfZ.js";const Fr=e=>{const{heat:t,training:s}=e,{t:a}=le(),[r,i]=o.useState([]),c=async()=>{if(t&&t.key&&s){const l={training:s,heatId:t.key};await e.firebase.cloud("getScores")(l).then(d=>d.data).then(d=>{i(d)})}};return o.useEffect(()=>{c().then()},[t]),n.jsx("div",{className:"text-center winner-wrap",children:r.results&&n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"winner-trophy",children:"🏆"}),n.jsx("div",{className:"winner-label",children:a("training.heatFinished")}),n.jsx("div",{className:"winner-name",children:n.jsx(en,{uid:r.results[0].surfer})}),n.jsx("div",{className:"winner-subtitle",children:a("training.winsThisHeat")})]})})},Br=lt(Fr),Hr=e=>{var b;const{heat:t,training:s,running:a,handleSeeCompetitor:r,surferSelected:i}=e,{t:c}=le(),[l,u]=o.useState(!0),[d,f]=o.useState([]),h=e.firebase.scores();o.useEffect(()=>{let m=!0,p=0;u(!0),f([]);const x=async()=>{const y=++p;try{const w=await e.firebase.cloud("getScores")({training:s,heatId:t.key});m&&y===p&&(f(w.data||[]),u(!1))}catch{m&&y===p&&u(!1)}},D=it(mt(h,vt("trainingId"),gt(s.trainingId)),x);return()=>{m=!1,D()}},[t.key,s.trainingId]);const g=!s.trainingType||s.trainingType==="competition",v=c(a?"training.heatScoreNeeds":"training.heatScoreNeeded");return n.jsxs(n.Fragment,{children:[l&&n.jsx(Ls,{size:"sm"}),d.results&&n.jsxs("div",{children:[n.jsxs("div",{className:"d-flex align-items-center heat-scores-header",children:[n.jsx("div",{className:"heat-scores-col-surfer",children:c("training.heatScoreSurfer")}),g&&n.jsx("div",{className:"heat-scores-col-wave",children:c("training.heatScore1st")}),g&&n.jsx("div",{className:"heat-scores-col-wave",children:c("training.heatScore2nd")}),g&&n.jsx("div",{className:"heat-scores-col-wave col-abbr-hint","data-tooltip":c("training.total"),children:"T"}),g&&n.jsx("div",{className:"heat-scores-col-wave col-abbr-hint","data-tooltip":v,children:"N"}),g&&a&&(((b=t.heat.priorityOrder)==null?void 0:b.length)>0||t.heat.priority)&&n.jsx("div",{className:"heat-scores-col-half col-abbr-hint","data-tooltip":c("training.priority"),children:"P"})]}),d.results.map((m,p)=>{var x;return n.jsxs("div",{id:p===0&&a?"tour-select-surfer":void 0,className:"d-flex align-items-center heat-scores-row",onClick:()=>r(m.surfer,t.key),style:{background:(i==null?void 0:i.uid)===m.surfer&&(i==null?void 0:i.heatId)===t.key?"rgba(250,190,8,0.12)":p%2===0?"#fff":"#fafaf9",borderLeft:(i==null?void 0:i.uid)===m.surfer&&(i==null?void 0:i.heatId)===t.key?"3px solid #fabe08":"3px solid transparent"},children:[n.jsx("div",{className:"heat-scores-col-surfer heat-scores-surfer-name",onClick:D=>D.preventDefault(),children:n.jsx(en,{uid:m.surfer})}),g&&n.jsx("div",{className:"heat-scores-col-wave heat-scores-wave-val",children:m.bestFirstWave||"—"}),g&&n.jsx("div",{className:"heat-scores-col-wave heat-scores-wave-val",children:m.bestSecondWave||"—"}),g&&n.jsx("div",{className:"heat-scores-col-wave heat-scores-total-val",children:m.total||"—"}),g&&n.jsx("div",{className:"heat-scores-col-wave heat-scores-needs-val",children:m.needs||"—"}),g&&a&&(((x=t.heat.priorityOrder)==null?void 0:x.length)>0||t.heat.priority)&&(()=>{const y=(t.heat.priorityOrder||[]).indexOf(m.surfer),w=y>=0?y+1:t.heat.priority===m.surfer?n.jsx(xn,{}):"";return n.jsx("div",{className:"heat-scores-col-half heat-scores-priority-val",children:w})})()]},m.surfer)})]})]})},Ks=lt(Hr),Wr=({heat:e,index:t,total:s,training:a,canDeleteHeat:r,handleSeeCompetitor:i,handleDeleteHeat:c,surferSelected:l,loadedHeatId:u,handleLoadHeat:d,now:f})=>{const[h,g]=o.useState(!1),{t:v}=le(),b=!a.trainingType||a.trainingType==="competition",m=u===e.key,p=at(e,f),x=Dr(e.heat.trainingId,!!r,e.key),D=v(b?"modal.deleteHeatLabel":"modal.deleteSessionLabel");return n.jsxs("div",{className:`past-heat-item${m?" past-heat-item--loaded":""}`,"aria-current":m?"true":void 0,children:[n.jsxs("div",{className:"d-flex justify-content-between align-items-center past-heat-row-header",onClick:()=>g(y=>!y),children:[n.jsxs("div",{className:"d-flex align-items-center gap-3",children:[n.jsxs("span",{className:"past-heat-title",children:[v(b?"training.heat":"training.session")," ",s-t]}),p&&n.jsxs("span",{className:`heat-running-label${b?" heat-running-label--competition":""}`,children:[n.jsx("span",{className:"quiver-board-dot","aria-hidden":"true"}),v("training.running")]}),n.jsx("span",{className:"past-heat-date",children:e.heat.created&&pt(e.heat.created).fromNow()})]}),n.jsxs("div",{className:"d-flex align-items-center gap-1",children:[n.jsx(B,{className:`btn-icon past-heat-load-btn${m?" past-heat-load-btn--loaded":""}`,size:"sm",variant:"outline-secondary","aria-disabled":m,"aria-label":v(m?"training.loaded":b?"training.loadHeat":"training.loadSession"),title:v(m?"training.loaded":b?"training.loadHeat":"training.loadSession"),onClick:y=>{y.stopPropagation(),m||d(e.key)},children:m?n.jsx(kr,{"aria-hidden":"true"}):n.jsx(Ir,{"aria-hidden":"true"})}),r&&n.jsx("div",{onClick:y=>y.stopPropagation(),title:x?v("video.deletionBlocked"):D,children:n.jsx(Lt,{disabled:x,name:n.jsx(xt,{}),body:v("modal.deleteHeat"),ariaLabel:D,className:"btn-wave-delete btn-icon",handleAction:()=>c(e.key)})}),n.jsx(kn,{open:h,onToggle:()=>g(y=>!y),iconClassName:"past-heat-chevron",label:`${v(b?"training.heat":"training.session")} ${s-t}`})]})]}),h&&n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"past-heat-body",children:n.jsx(Ks,{training:a,heat:e,currentHeat:!1,surferSelected:l,handleSeeCompetitor:i})}),(e.heat.startTime||e.heat.endTime)&&n.jsxs("div",{className:"text-muted past-heat-times",children:[e.heat.startTime&&n.jsxs("span",{children:[v("training.started")," ",pt(e.heat.startTime).format("HH:mm")]}),e.heat.startTime&&e.heat.endTime&&n.jsx("span",{children:" · "}),e.heat.endTime&&n.jsxs("span",{children:[v("training.ended")," ",pt(e.heat.endTime).format("HH:mm")]})]})]})]})},Ur=({training:e,heats:t,canDeleteHeat:s,handleSeeCompetitor:a,handleDeleteHeat:r,surferSelected:i,loadedHeatId:c,handleLoadHeat:l,now:u})=>{const[d,f]=o.useState(!0),{t:h}=le(),g=!e.trainingType||e.trainingType==="competition";return t.length===0?null:n.jsxs("div",{className:"training-block-wrap training-block-mb",children:[n.jsxs("div",{className:"training-card-header training-card-header-clickable",onClick:()=>f(v=>!v),children:[n.jsxs("div",{className:"d-flex align-items-center gap-2",children:[n.jsx(Ps,{className:"training-card-icon"}),n.jsx("span",{className:"training-card-title",children:h(g?"training.pastHeats":"training.pastSessions")})]}),n.jsx(kn,{open:d,onToggle:()=>f(v=>!v),iconClassName:"training-card-chevron",label:h(g?"training.pastHeats":"training.pastSessions")})]}),d&&t.map((v,b)=>n.jsx(Wr,{heat:v,index:b,total:t.length,training:e,canDeleteHeat:s,surferSelected:i,loadedHeatId:c,handleLoadHeat:l,now:u,handleSeeCompetitor:a,handleDeleteHeat:r},v.key))]})};function Vr(e){return Tn({attr:{version:"1.2",baseProfile:"tiny",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M10.396 18.433c2.641-2.574 6.604-6.433 6.604-6.433s-3.963-3.859-6.604-6.433c-.363-.349-.853-.567-1.39
16-.567-1.104 0-2 .896-2 2v10c0 1.104.896 2 2 2 .543 0 1.033-.218 1.396-.567z"}}]})(e)}function ds(e){return Tn({attr:{version:"1.2",baseProfile:"tiny",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M16 6h-8c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2z"}}]})(e)}function qr(e){return Tn({attr:{version:"1.2",baseProfile:"tiny",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M21 7h-3c0-1.65-1.35-3-3-3h-12c-1.65 0-3 1.35-3 3v7c0 1.65 1.35 3 3 3v3l3-3c0 1.65 1.35 3 3 3h8l3 3v-3h1c1.65 0 3-1.35 3-3v-7c0-1.65-1.35-3-3-3zm-18 8c-.542 0-1-.458-1-1v-7c0-.542.458-1 1-1h12c.542 0 1 .458 1 1v1h-6.5c-1.379 0-2.5 1.121-2.5 2.5v4.5h-4zm19 2c0 .542-.458 1-1 1h-12c-.542 0-1-.458-1-1v-6.5c0-.827.673-1.5 1.5-1.5h11.5c.542 0 1 .458 1 1v7z"}}]})(e)}function us(e){return e?e.split("?")[0]:""}function Gr(e){try{const t=new URL(e).searchParams,s=t.get("X-Goog-Date"),a=Number(t.get("X-Goog-Expires"));if(!s||!a)return 1/0;const r=s.replace(/^(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})Z$/,"$1-$2-$3T$4:$5:$6Z"),i=Date.parse(r)+a*1e3;return Number.isFinite(i)?i:0}catch{return 1/0}}function Xr(e,t,s=Date.now()){return e&&us(e)===us(t)&&Gr(e)>s+300*1e3}const Yr=500*1024*1024,fs=80,Kr=["queued","processing","rendering","removing"],Jr=3,et=(e,t={})=>({className:"btn-icon",title:e,"aria-label":e,...t});function Js(e){const[t,s]=o.useState(!1),a=o.useRef(!0);return o.useEffect(()=>()=>{a.current=!1},[]),[t,async(...i)=>{s(!0);try{await e(...i)}finally{a.current&&s(!1)}}]}function En(e,t){const[s,a]=o.useState("");return o.useEffect(()=>{let r=!0;if(!t){a("");return}return e.resolveStoragePath(t).then(i=>{r&&a(c=>Xr(c,i)?c:i)}).catch(()=>{}),()=>{r=!1}},[e,t]),s}function Qr({firebase:e,path:t,alt:s}){const a=En(e,t);return a?n.jsx("img",{className:"session-video-thumbnail",src:a,alt:s}):null}const hs=2,Zr=3;function ei({firebase:e,videoId:t,previewUrl:s,thumbnailUrl:a,index:r,ride:i,surfers:c,duration:l,busy:u,onChange:d,onExclude:f,useAiDescriptions:h,onUseAiDescriptionsChange:g,hideSurfer:v=!1}){const{t:b}=le(),m=o.useRef(null),[p,x]=o.useState(!1),[D,y]=o.useState(null),w=En(e,p?s:null),R=I=>d(i.id,I);function T(I,C){y({start:I,end:C}),x(!0),m.current&&m.current.src&&(m.current.currentTime=I,m.current.play().catch(()=>{}))}function N(){var I;if(p){(I=m.current)==null||I.pause(),x(!1),y(null);return}T(i.start,i.end)}function E(){m.current&&D&&(m.current.currentTime=D.start,m.current.play().catch(()=>{}))}function _(){const I=Math.min(l,Math.round((i.end+hs)*10)/10);R({end:I}),T(Math.max(i.start,i.end-Zr),I)}return n.jsxs("fieldset",{className:"session-video-ride",disabled:u,children:[n.jsx("legend",{className:"h6",children:b("video.ride",{number:r+1})}),n.jsxs("div",{className:"session-video-ride-summary",children:[a&&n.jsx(Qr,{firebase:e,path:a,alt:b("video.ride",{number:r+1})}),n.jsxs("div",{className:"session-video-ride-detail",children:[n.jsx("p",{className:"small session-video-ride-description",children:i.description}),n.jsx(G.Check,{type:"switch",id:`use-ai-descriptions-${t}-${i.id}`,className:"session-video-ai-switch",label:b("video.useAiDescriptions"),checked:h,onChange:I=>g(I.target.checked)})]})]}),p&&n.jsx(Ys,{ref:m,className:"session-video-ride-player",controls:!0,playsInline:!0,preload:"metadata",src:w,"aria-label":b("video.preview"),onLoadedMetadata:E,onTimeUpdate:()=>{D&&m.current.currentTime>=D.end&&m.current.pause()}}),n.jsxs("div",{className:"row g-2",children:[!v&&n.jsxs(G.Group,{className:"col-12 col-md-6",controlId:`surfer-${t}-${i.id}`,children:[n.jsx(G.Label,{children:b("video.surfer")}),n.jsxs(G.Select,{value:i.surfer||"",onChange:I=>R({surfer:I.target.value}),children:[n.jsx("option",{value:"",children:b("video.chooseSurfer")}),Object.entries(c).map(([I,C])=>n.jsx("option",{value:I,children:[C.name,C.surname].filter(Boolean).join(" ")||C.email||I},I))]})]}),["start","end"].map(I=>n.jsxs(G.Group,{className:"col-6 col-md-3",controlId:`${I}-${t}-${i.id}`,children:[n.jsx(G.Label,{children:b(`video.${I}`)}),n.jsx(G.Control,{type:"number",min:"0",max:l,step:"0.1",value:Number.isNaN(i[I])?"":i[I],onChange:C=>R({[I]:C.target.value===""?NaN:Number(C.target.value)})})]},I))]}),n.jsxs("div",{className:"d-flex gap-2 mt-2 flex-wrap",children:[n.jsx(B,{size:"sm",variant:"outline-secondary",...et(b(p?"video.closePreview":"video.preview")),"aria-expanded":p,onClick:N,children:p?n.jsx(cr,{"aria-hidden":"true"}):n.jsx(dr,{"aria-hidden":"true"})}),n.jsx(B,{size:"sm",variant:"outline-secondary",...et(b("video.extendEnd",{seconds:hs})),onClick:_,disabled:i.end>=l,children:n.jsx(ur,{"aria-hidden":"true"})}),n.jsx(B,{size:"sm",variant:"outline-danger",...et(b("video.exclude")),onClick:f,children:n.jsx(xt,{"aria-hidden":"true"})})]})]})}function ti({firebase:e,video:t,surfers:s,onConfirm:a,busy:r,wave:i=null}){const{t:c}=le(),[l,u]=o.useState((t.rides||[]).map(({id:x,start:D,end:y,surfer:w,description:R})=>({id:x,start:D,end:y,surfer:w,description:R}))),[d,f]=o.useState(!0),h=(x,D)=>u(y=>y.map(w=>w.id===x?{...w,...D}:w)),[g,v]=Js(a),b=!!i&&l.length>1,m=i&&l.length===1?l[0]:null,p=i?!!m&&Number.isFinite(m.start)&&Number.isFinite(m.end)&&m.start>=0&&m.end>m.start&&m.end<=t.duration:l.every(x=>x.surfer&&Number.isFinite(x.start)&&Number.isFinite(x.end)&&x.start>=0&&x.end>x.start&&x.end<=t.duration);return n.jsxs("div",{children:[b&&n.jsx("p",{className:"session-video-one-clip",role:"status",children:c("video.oneClipPerWave",{count:l.length})}),l.map((x,D)=>{var y;return n.jsx(ei,{firebase:e,videoId:t.id,previewUrl:t.previewUrl,thumbnailUrl:(y=(t.rides||[]).find(w=>w.id===x.id))==null?void 0:y.thumbnailUrl,index:D,ride:x,surfers:s,duration:t.duration,busy:r,onChange:h,useAiDescriptions:d,onUseAiDescriptionsChange:f,hideSurfer:!!i,onExclude:()=>u(w=>w.filter(R=>R.id!==x.id))},x.id)}),!l.length&&n.jsx("p",{children:c("video.noRides")}),n.jsxs("div",{className:"d-flex flex-wrap gap-2",children:[n.jsx(B,{variant:"outline-secondary",...et(c("video.addRide")),disabled:r||l.length>=100,onClick:()=>u(x=>[...x,{id:`manual_${crypto.randomUUID()}`,start:0,end:Math.min(5,t.duration),description:""}]),children:n.jsx(lr,{"aria-hidden":"true"})}),n.jsx(B,{...et(c(g?"video.creatingWaves":i?"video.attachClip":"video.confirm",{count:l.length})),disabled:r||!p||g,onClick:()=>v(i?[{id:m.id,start:m.start,end:m.end,surfer:i.surfer,description:d?m.description:""}]:l.map(({id:x,start:D,end:y,surfer:w,description:R})=>({id:x,start:D,end:y,surfer:w,description:d?R:""}))),children:g?n.jsx(ot,{size:"sm",animation:"border","aria-hidden":"true"}):n.jsx(As,{"aria-hidden":"true"})})]})]})}function ni({firebase:e,video:t,surfers:s,waves:a,busy:r,onConfirm:i}){const{t:c}=le(),[l,u]=o.useState(""),[d,f]=o.useState(""),h=a.filter(p=>p.surfer===l),g=h.find(p=>p.waveId===d&&!p.attached),[v,b]=Js(i),m=En(e,t.previewUrl);return n.jsxs("fieldset",{disabled:r,children:[m&&n.jsx(Ys,{className:"session-video-player",src:m,controls:!0,playsInl
1ine:!0,preload:"metadata"}),n.jsxs(G.Group,{controlId:`competition-surfer-${t.id}`,className:"mb-3",children:[n.jsx(G.Label,{children:c("video.surfer")}),n.jsxs(G.Select,{value:l,onChange:p=>{u(p.target.value),f("")},children:[n.jsx("option",{value:"",children:c("video.chooseSurfer")}),Object.entries(s||{}).map(([p,x])=>n.jsx("option",{value:p,children:[x.name,x.surname].filter(Boolean).join(" ")||x.email||p},p))]})]}),n.jsxs(G.Group,{controlId:`competition-wave-${t.id}`,className:"mb-3",children:[n.jsx(G.Label,{children:c("video.existingWave")}),n.jsxs(G.Select,{value:d,disabled:!l,onChange:p=>f(p.target.value),children:[n.jsx("option",{value:"",children:c("video.chooseWave")}),h.map((p,x)=>n.jsxs("option",{value:p.waveId,disabled:p.attached,children:[c("video.waveChoice",{number:x+1,score:p.score==null?c("video.unscored"):p.score.toFixed(2),time:new Date(p.created).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),p.attached?` — ${c("video.alreadyAttached")}`:""]},p.waveId))]}),l&&!h.length&&n.jsx(G.Text,{children:c("video.noExistingWaves")})]}),n.jsx(B,{...et(c(v?"video.creatingWaves":"video.attachWave")),disabled:r||!g||v,onClick:()=>b([{id:"full",start:0,end:t.duration,surfer:l,description:""}],d),children:v?n.jsx(ot,{size:"sm",animation:"border","aria-hidden":"true"}):n.jsx(As,{"aria-hidden":"true"})})]})}function Qs({firebase:e,heatId:t,surfers:s,isCompetition:a=!1,buttonVariant:r="outline-secondary",compactUpload:i=!1,wave:c=null,onAttached:l}){const{t:u}=le(),[d,f]=o.useState(!1),[h,g]=o.useState([]),[v,b]=o.useState([]),[m,p]=o.useState(!1),[x,D]=o.useState(!1),[y,w]=o.useState(!1),[R,T]=o.useState(""),[N,E]=o.useState([]),[_,I]=o.useState([]),[C,ne]=o.useState("idle"),[se,Q]=o.useState(!1),[je,me]=o.useState(!1),[k,we]=o.useState(!1),X=o.useRef(null),F=o.useCallback(async()=>{const S=await e.cloud("getSessionVideos")({heatId:t});g(S.data.videos),b(S.data.waves||[]),p(S.data.enabled),w(!0)},[e,t]);o.useEffect(()=>()=>{var S;return(S=X.current)==null?void 0:S.abort()},[]),o.useEffect(()=>{if(!d)return;let S=!0,L;async function oe(){try{const K=await e.cloud("getSessionVideos")({heatId:t});S&&(g(K.data.videos),b(K.data.waves||[]),p(K.data.enabled),w(!0))}catch{S&&T("loadError")}S&&(L=setTimeout(oe,8e3))}return oe(),()=>{S=!1,clearTimeout(L)}},[d,e,t]);const[Z,W]=o.useState(null),[O,fe]=o.useState({}),[ge,Y]=o.useState(0),U=h.filter(S=>S.status!=="imported"),ve=h.map(S=>S.name).filter(Boolean),Ne=h.filter(S=>S.status==="imported").length,z=je&&U.length===0;o.useEffect(()=>{U.length>0?me(!0):je&&Q(!1)},[U.length,je]);const P=S=>S.status==="review"&&!O[S.id],ee=S=>!!O[S.id]&&["review","queued","rendering"].includes(S.status),Ce=U.findIndex(S=>S.id===Z),ae=Ce>=0?Ce:Math.max(U.findIndex(P),0),re=S=>{const L=U[Math.min(Math.max(S,0),Math.max(U.length-1,0))];L&&W(L.id)},Te=S=>{const L=U.findIndex(K=>K.id===S);return([...U.slice(L+1),...U.slice(0,Math.max(L,0))].find(P)||{}).id||null};async function qe(S,L,{advance:oe=!1,done:K=!1}={}){D(!0),T("");try{if(await e.cloud(S)({heatId:t,...L}),await F(),oe&&L.videoId){const ie=Te(L.videoId);ie&&W(ie)}K&&(l==null||l(),f(!1))}catch{T("actionError")}finally{D(!1)}}function pe(S,L){T(""),fe(K=>({...K,[S]:!0})),Y(K=>K+1);const oe=Te(S);oe&&W(oe),e.cloud("confirmSessionVideo")({heatId:t,videoId:S,...L}).catch(()=>{fe(K=>{const ie={...K};return delete ie[S],ie}),T("actionError")}).finally(()=>{Y(K=>K-1),F().catch(()=>{})})}function Re(S){const L=Array.from(S.target.files||[]);return S.target.value="",Ye(L)}function ke(S){var L;S.preventDefault(),we(!1),!x&&Ye(Array.from(((L=S.dataTransfer)==null?void 0:L.files)||[]))}async function Ye(S){if(!S.length)return;if(c&&S.length>1){T("fileError");return}if(S.length+h.length+N.length>fs||S.some($=>$.size<=0||$.size>Yr||!/\.(mp4|mov|webm)$/i.test($.name))){T("fileError");return}D(!0),ne("uploading"),Q(!1),T("");const L=new AbortController;X.current=L;const oe=S.map($=>({key:crypto.randomUUID(),file:$,name:$.name})),K=($,ce)=>E(de=>de.map(Be=>Be.key===$?{...Be,...ce}:Be));E($=>[...$,...oe.map(({key:ce,name:de})=>({key:ce,name:de,progress:0,status:"pending"}))]);const ie=[];let ze=!1;for(const{key:$,file:ce,name:de}of oe){if(L.signal.aborted)break;K($,{status:"uploading",progress:0});try{const Be=de.split(".").pop().toLowerCase(),tt={mp4:"video/mp4",mov:"video/quicktime",webm:"video/webm"}[Be],{data:$e}=await e.cloud("createSessionVideoUpload")({heatId:t,name:de,size:ce.size,contentType:tt}),He=dt=>K($,{progress:dt});$e.path?await e.uploadToPath($e.path,ce,He,L.signal,tt):await e.uploadWithPolicy($e,ce,He,L.signal),K($,{status:"uploaded",progress:100}),ie.push($e.id)}catch{ze=!0,K($,{status:"failed"})}}ze&&T("uploadError"),I($=>[...$,...ie]),ne($=>ie.length?"ready":$==="uploading"?"idle":$),D(!1),X.current=null,await F().catch(()=>{})}async function Ke(){D(!0),ne("processing"),T(""),Q(!1);let S=!1;const L=[..._],oe=async()=>{for(;L.length;){const K=L.shift();try{await e.cloud("processSessionVideo")({heatId:t,videoId:K})}catch{S=!0}}};await Promise.all(Array.from({length:Math.min(Jr,L.length)},oe)),S&&T("actionError"),Q(!S),I([]),E([]),ne("idle"),D(!1),await F().catch(()=>{})}return n.jsxs(n.Fragment,{children:[n.jsxs(B,{variant:r,size:"sm",className:i?"session-video-upload-compact":"btn-icon","aria-label":u(c?"video.uploadOne":i?"video.upload":"video.open"),title:u(c?"video.uploadOne":i?"video.upload":"video.open"),onClick:()=>f(!0),children:[n.jsx(es,{"aria-hidden":"true"}),i&&n.jsx("span",{children:u("video.upload")})]}),n.jsxs(H,{show:d,onHide:()=>!x&&(f(!1),Q(!1),me(!1)),size:"lg",backdrop:"static",className:"session-video-modal",children:[n.jsx(H.Header,{closeButton:!x,children:n.jsx(H.Title,{children:u("video.title")})}),n.jsxs(H.Body,{children:[n.jsx("p",{className:"session-video-intro",children:u(a?"video.competitionHelp":"video.intro")}),R&&n.jsx(ct,{variant:"danger",role:"alert",children:u(`video.${R}`)}),!y&&!R&&n.jsx("p",{role:"status",children:u("video.loading")}
1),y&&!m&&n.jsx(ct,{variant:"info",children:u("video.notConfigured")}),m&&n.jsxs("div",{className:"mb-3",children:[n.jsxs("label",{htmlFor:`upload-${t}${c?`-${c.waveId}`:""}`,className:`session-video-dropzone${k?" session-video-dropzone--over":""}${x?" session-video-dropzone--busy":""}`,onDragOver:S=>{S.preventDefault(),x||we(!0)},onDragLeave:()=>we(!1),onDrop:ke,children:[n.jsx(es,{"aria-hidden":"true"}),n.jsx("span",{className:"session-video-dropzone-text",children:u("video.dropHint")}),n.jsx("span",{className:"session-video-dropzone-limits",children:u("video.limits",{count:fs})})]}),n.jsx("input",{id:`upload-${t}${c?`-${c.waveId}`:""}`,type:"file",className:"visually-hidden",multiple:!c,disabled:x,onChange:Re,accept:"video/mp4,video/quicktime,video/webm,.mp4,.mov,.webm,.MP4,.MOV,.WEBM"}),ve.length>0&&n.jsxs("p",{className:"session-video-existing",children:[n.jsx("span",{className:"session-video-existing-label",children:u("video.alreadyUploaded",{count:ve.length,processed:Ne})})," ",n.jsx("span",{className:"session-video-existing-names",children:ve.join(", ")})]})]}),z&&n.jsx(ct,{variant:"success",role:"status",className:"mb-3",dismissible:!0,onClose:()=>me(!1),children:u("video.allWavesCreated")}),se&&!z&&n.jsx(ct,{variant:"success",role:"status",className:"mb-3",dismissible:!0,onClose:()=>Q(!1),children:u("video.processingComplete")}),N.length>0&&n.jsxs("div",{className:"session-video-queue mb-3",children:[n.jsx("p",{className:"session-video-queue-title",role:"status",children:u(`video.queue${C==="processing"?"Processing":C==="ready"?"Ready":"Uploading"}`,{done:N.filter(S=>S.status==="uploaded").length,total:N.length})}),N.map(S=>n.jsxs("div",{className:"session-video-queue-item",children:[n.jsxs("div",{className:"session-video-queue-row",children:[n.jsx("span",{className:"text-break",children:S.name}),n.jsx("span",{className:"session-video-queue-state",children:u(`video.queue.${S.status}`)})]}),n.jsx(zr,{now:S.status==="failed"?100:S.progress,variant:S.status==="failed"?"danger":void 0,label:S.status==="uploading"?`${S.progress}%`:""})]},S.key)),C!=="processing"&&n.jsxs(B,{className:"session-video-process-btn",onClick:Ke,disabled:x||C!=="ready"||!_.length,children:[n.jsx(ar,{"aria-hidden":"true"}),n.jsx("span",{children:u("video.processClips",{count:_.length})})]}),C==="processing"&&n.jsxs("p",{className:"session-video-queue-clipping",role:"status",children:[n.jsx(ot,{size:"sm",animation:"border","aria-hidden":"true"}),u("video.clipping")]})]}),C==="idle"&&U.slice(ae,ae+1).map(S=>n.jsxs("section",{className:"session-video-source",children:[n.jsxs("div",{className:"session-video-source-row",children:[n.jsx("span",{className:"text-break session-video-source-name",children:S.name}),n.jsxs("span",{role:"status",className:"session-video-source-status",children:[(Kr.includes(S.status)||ee(S))&&n.jsx(ot,{size:"sm",animation:"border","aria-hidden":"true",className:"session-video-source-spinner"}),ee(S)?u("video.creatingWaves"):u(a&&S.status==="processing"?"video.preparingPreview":`video.status.${S.status}`)]}),n.jsxs("div",{className:"session-video-source-actions",children:[["failed","uploading"].includes(S.status)&&n.jsx(B,{variant:"outline-secondary",size:"sm",...et(u("video.retry")),disabled:x,onClick:()=>qe("processSessionVideo",{videoId:S.id}),children:n.jsx(rr,{"aria-hidden":"true"})}),!x&&!ee(S)&&["uploading","failed","review"].includes(S.status)&&n.jsx(Lt,{name:n.jsx(xt,{}),ariaLabel:u("video.remove"),body:u(a?"video.removeCompetitionConfirm":"video.removeConfirm"),className:"btn btn-outline-danger btn-sm btn-icon",handleAction:()=>qe("removeSessionVideo",{videoId:S.id},{advance:!0})})]})]}),P(S)&&a&&n.jsx(ni,{firebase:e,video:S,surfers:s,waves:v,busy:x,onConfirm:(L,oe)=>pe(S.id,{rides:L,waveId:oe})}),P(S)&&!a&&n.jsx(ti,{firebase:e,video:S,surfers:s,busy:x,wave:c,onConfirm:L=>c?qe("confirmSessionVideo",{videoId:S.id,rides:L,waveId:c.waveId},{advance:!0,done:!0}):pe(S.id,{rides:L})})]},S.id)),C==="idle"&&U.length>1&&n.jsxs("div",{className:"session-video-pager",children:[n.jsx(B,{size:"sm",variant:"outline-secondary",...et(u("video.previousVideo")),disabled:x||ae===0,onClick:()=>re(ae-1),children:n.jsx(ir,{"aria-hidden":"true"})}),n.jsx("div",{className:"session-video-pager-dots",children:U.map((S,L)=>n.jsx("button",{type:"button",className:`session-video-pager-dot${L===ae?" session-video-pager-dot--current":""}${P(S)?"":" session-video-pager-dot--ready"}`,"aria-label":u("video.goToVideo",{number:L+1}),"aria-current":L===ae?"true":void 0,disabled:x,onClick:()=>re(L)},S.id))}),n.jsx("span",{className:"session-video-pager-count",children:u("video.videoCounter",{current:ae+1,total:U.length})}),ge>0&&n.jsxs("span",{className:"session-video-pager-creating",role:"status",children:[n.jsx(ot,{size:"sm",animation:"border","aria-hidden":"true"})," ",u("video.creatingCount",{count:ge})]}),n.jsx(B,{size:"sm",variant:"outline-secondary",...et(u("video.nextVideo")),disabled:x||ae>=U.length-1,onClick:()=>re(ae+1),children:n.jsx(or,{"aria-hidden":"true"})})]})]})]})]})}const si=lt(Qs),ai=e=>{if(!e)return!0;try{const t=new URL(e);return t.protocol==="http:"||t.protocol==="https:"}catch{return!1}},Zs=window.SpeechRecognition||window.webkitSpeechRecognition,ms=!!Zs,ri={en:"en-GB",es:"es-ES",fr:"fr-FR",pt:"pt-PT"},un=350;function ii(e){const{t,i18n:s}=le(),a=Rn(),{videoAnalysis:r}=Zt(),[i,c]=o.useState(!1),[l,u]=o.useState(!1),d=o.useRef(!1),f=async()=>{var F;c(!1);try{await e.firebase.cloud("removeWaveVideo")({heatId:T.heatId,waveId:T.waveId}),(F=e.onVideoAttached)==null||F.call(e)}catch{c(!0)}},{handleAction:h,handleChangeNote:g,handleChangeLink:v,isNewScoreLoading:b,submit:m,isBot:p,isCompetition:x,scoringEnabled:D=x,board:y,objectiveNames:w,scoreStep:R,wave:T,permissions:N,...E}
1=e,[_,I]=o.useState(!1),[C,ne]=o.useState(!1),se=o.useRef(null),Q=o.useRef(""),je=o.useRef(g);o.useEffect(()=>{je.current=g});const me=!ai(e.link);o.useEffect(()=>{I(!e.link)},[e.link]),o.useEffect(()=>{e.show?u(!1):k()},[e.show]);const k=()=>{se.current&&(se.current.stop(),se.current=null),ne(!1)},we=()=>{if(C){k();return}const F=new Zs;F.lang=ri[s.resolvedLanguage]||"en-GB",F.interimResults=!0,F.continuous=!1,se.current=F,Q.current=(e.note||"").trimEnd(),F.onresult=Z=>{let W="",O="";for(let ge=Z.resultIndex;ge<Z.results.length;ge++){const Y=Z.results[ge][0].transcript;Z.results[ge].isFinal?O+=Y:W+=Y}const fe=(Q.current?Q.current+" ":"")+(O||W);je.current(fe.slice(0,un))},F.onend=()=>{ne(!1),se.current=null},F.onerror=()=>k(),F.start(),ne(!0)},X=async()=>{if(!(me||b||d.current)){d.current=!0,u(!1),k();try{await m(),e.onHide()}catch{u(!0)}finally{d.current=!1}}};return n.jsxs(H,{...E,onHide:()=>{b||e.onHide()},backdrop:b?"static":!0,keyboard:!b,"aria-labelledby":"contained-modal-title-vcenter",dialogClassName:x?"":"modal-technical",centered:!0,children:[n.jsx(H.Header,{closeButton:!b,children:n.jsx(H.Title,{id:"contained-modal-title-vcenter",children:t(D?"modal.addScore":"modal.addFeedback")})}),n.jsxs(H.Body,{children:[l&&n.jsx("p",{role:"alert",className:"text-danger",children:t("training.saveScoreError")}),D&&n.jsxs(G.Group,{className:"form-element",controlId:"score",children:[n.jsx(G.Label,{className:"visually-hidden",children:t("modal.score")}),n.jsxs("div",{className:"modal-score-label-row","aria-hidden":"true",children:[n.jsx("span",{children:t("modal.score")}),n.jsx("strong",{className:"modal-score-value",children:e.score})]}),n.jsx(G.Range,{disabled:b,className:"input-range",min:0,max:10,step:R??.1,value:e.score,onChange:F=>h(Number(F.target.value))})]}),n.jsxs(G.Group,{className:"form-element",controlId:"notes",children:[n.jsx(G.Label,{className:"visually-hidden",children:t("modal.notesPlaceholder")}),n.jsx(G.Control,{value:e.note,onChange:F=>g(F.target.value),as:"textarea",rows:3,maxLength:un,placeholder:t("modal.notesPlaceholder"),disabled:p||b}),!p&&n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"d-flex align-items-center justify-content-between modal-message-footer",children:[n.jsxs("span",{className:"modal-message-counter",children:[(e.note||"").length,"/",un]}),ms&&n.jsxs("button",{type:"button",className:`modal-mic-btn${C?" modal-mic-btn--active":""}`,disabled:b,onClick:we,"aria-label":t(C?"modal.stopVoice":"modal.startVoice"),title:t(C?"modal.stopVoice":"modal.startVoice"),children:[C?n.jsx(zs,{size:15}):n.jsx($s,{size:15}),n.jsx("span",{className:"modal-mic-lang",children:(s.resolvedLanguage||"en").toUpperCase()})]})]}),ms&&n.jsx("p",{className:"modal-mic-hint",children:t("modal.voiceLangHint")})]})]}),n.jsxs("div",{className:"form-element",children:[i&&n.jsx("p",{className:"text-danger modal-link-url",children:t("video.actionError")}),T!=null&&T.video&&r?n.jsxs("div",{className:"d-flex align-items-center gap-2",children:[n.jsx(qs,{wave:T,canEdit:!!(N&&r)}),n.jsx(Gs,{wave:T}),n.jsx("span",{className:"modal-link-url",children:t("video.attached")}),N&&r&&n.jsxs("div",{className:"d-flex align-items-center gap-2 ms-auto",children:[n.jsx(B,{variant:"outline-secondary",size:"sm","aria-label":t("video.edit"),title:t("video.edit"),onClick:()=>a(_s(T.heatId,T.waveId)),children:n.jsx(bn,{"aria-hidden":"true"})}),n.jsx(Lt,{name:n.jsx(xt,{}),className:"btn btn-outline-danger btn-sm btn-icon",ariaLabel:t("video.removeWaveVideo"),body:t("video.removeWaveVideoConfirm"),handleAction:f})]})]}):N&&r&&(T!=null&&T.waveId)&&!e.link?n.jsxs("div",{className:"d-flex align-items-center gap-2",children:[n.jsx("span",{className:"modal-link-url",children:t("video.noWaveVideo")}),n.jsx("div",{className:"ms-auto",children:n.jsx(Qs,{firebase:e.firebase,heatId:T.heatId,wave:T,surfers:{},isCompetition:x,buttonVariant:"outline-secondary",onAttached:e.onVideoAttached})})]}):e.link&&!_?n.jsxs("div",{className:"d-flex align-items-center gap-2",children:[n.jsx(fr,{className:"modal-link-icon","aria-hidden":"true"}),n.jsx("a",{href:e.link,target:"_blank",rel:"noreferrer",className:"modal-link-url","aria-label":`${e.link} (${t("common.opensInNewTab")})`,children:e.link}),n.jsx(B,{variant:"outline-secondary",size:"sm",className:"ms-auto","aria-label":t("modal.editLink"),disabled:b,onClick:()=>I(!0),children:n.jsx(bn,{"aria-hidden":"true"})})]}):n.jsxs(G.Group,{controlId:"link",children:[n.jsx(G.Label,{className:"visually-hidden",children:t("modal.linkPlaceholder")}),n.jsx(G.Control,{value:e.link||"",onChange:F=>v(F.target.value),type:"url",maxLength:"500",placeholder:t("modal.linkPlaceholder"),isInvalid:e.link&&me,autoFocus:_&&!!e.link,disabled:p||b}),n.jsx(G.Control.Feedback,{type:"invalid",children:t("modal.linkInvalid")})]})]}),y&&(()=>
1{const F=[y.length,y.width,y.thickness].filter(Boolean).join(" × "),Z=[y.brand,y.model,F,y.liters?`${y.liters}L`:"",y.material,y.tail,y.finSystem,y.fins,y.finsSetup].filter(Boolean);return n.jsxs("p",{className:"modal-board-text",children:[t("quiver.surfboard"),": ",Z.join(" · ")]})})(),w&&w.length>0&&n.jsxs("p",{className:"modal-board-text",children:[t("training.objectives"),": ",w.join(", ")]})]}),n.jsxs(H.Footer,{children:[n.jsx(B,{disabled:b,onClick:e.onHide,variant:"outline-secondary",size:"sm",children:t("modal.cancel")}),n.jsxs(B,{disabled:b||me,variant:"primary",size:"sm",onClick:X,className:"d-inline-flex align-items-center gap-2",children:[e.name,t("modal.save")]})]})]})}const oi=lt(ii);var li=e=>{const[t,s]=o.useState(!1),{handleAction:a,handleChangeNote:r,handleChangeLink:i,note:c,link:l,wave:u,name:d,data:f,score:h,submit:g,isNewScoreLoading:v,onOpen:b,isBot:m,isCompetition:p,scoringEnabled:x,ariaLabel:D,board:y,objectiveNames:w,scoreStep:R,permissions:T}=e,N=()=>{b&&b(),s(!0)};return n.jsxs(n.Fragment,{children:[n.jsx(B,{variant:"primary",className:e.className,"aria-label":D,onClick:N,children:e.name}),n.jsx(oi,{show:t,onHide:()=>s(!1),name:d,data:f,score:h,isNewScoreLoading:v,handleAction:a,handleChangeNote:r,handleChangeLink:i,note:c,link:l,wave:u,submit:g,isBot:m,isCompetition:p,scoringEnabled:x,board:y,objectiveNames:w,scoreStep:R,permissions:T,onVideoAttached:e.onVideoAttached})]})};const ci=e=>{const{judge:t,waveId:s,wave:a,name:r,score:i,active:c,changeScore:l,saveScore:u,handleChangeNote:d,note:f,link:h,handleChangeLink:g,isNewScoreLoading:v,loadScore:b,isBot:m,isCompetition:p,scoringEnabled:x,ariaLabel:D,board:y,objectiveNames:w,scoreStep:R,permissions:T}=e,[N,E]=o.useState(!1),[_,I]=o.useState(!1);return n.jsxs(n.Fragment,{children:[N&&n.jsx("div",{children:"Loading..."}),c&&n.jsx(li,{data:s,name:r,handleAction:l,handleChangeNote:d,note:f,link:h,wave:a,handleChangeLink:g,score:i,isNewScoreLoading:v,submit:u,onOpen:()=>b(s),ariaLabel:D,isBot:m,isCompetition:p,scoringEnabled:x,board:y,objectiveNames:w,scoreStep:R,permissions:T})]})},di=lt(ci),ea=window.SpeechRecognition||window.webkitSpeechRecognition,gs=!!ea,ui={en:"en-GB",es:"es-ES",fr:"fr-FR",pt:"pt-PT"},fi=75;function hi(e){const{t,i18n:s}=le(),[a,r]=o.useState(!1),i=o.useRef(null),c=o.useRef(""),l=o.useRef(e.onChange);o.useEffect(()=>{l.current=e.onChange});const u=e.maxLength||fi,d=()=>{i.current&&(i.current.stop(),i.current=null),r(!1)};o.useEffect(()=>{e.show||d()},[e.show]);const f=()=>{if(a){d();return}const h=new ea;h.lang=ui[s.resolvedLanguage]||"en-GB",h.interimResults=!0,h.continuous=!1,i.current=h,c.current=(e.message||"").trimEnd(),h.onresult=g=>{let v="",b="";for(let p=g.resultIndex;p<g.results.length;p++){const x=g.results[p][0].transcript;g.results[p].isFinal?b+=x:v+=x}const m=(c.current?c.current+" ":"")+(b||v);l.current({target:{value:m.slice(0,u)}})},h.onend=()=>{r(!1),i.current=null},h.onerror=()=>d(),h.start(),r(!0)};return n.jsxs(H,{...e,"aria-labelledby":"contained-modal-title-vcenter",centered:!0,children:[n.jsx(H.Header,{closeButton:!0,className:"modal-gold-header",children:n.jsx(H.Title,{id:"contained-modal-title-vcenter",children:e.title||t("modal.sendMessage")})}),n.jsxs(H.Body,{children:[n.jsx(G.Control,{value:e.message,onChange:h=>e.onChange(h),as:"textarea",rows:3,maxLength:u,placeholder:e.placeholder||t("modal.typeSomething")}),n.jsxs("div",{className:"d-flex align-items-center justify-content-between modal-message-footer",children:[n.jsxs("span",{className:"modal-message-counter",children:[(e.message||"").length,"/",u]}),gs&&n.jsxs("button",{type:"button",className:`modal-mic-btn${a?" modal-mic-btn--active":""}`,onClick:f,"aria-label":t(a?"modal.stopVoice":"modal.startVoice"),title:t(a?"modal.stopVoice":"modal.startVoice"),children:[a?n.jsx(zs,{size:15}):n.jsx($s,{size:15}),n.jsx("span",{className:"modal-mic-lang",children:(s.resolvedLanguage||"en").toUpperCase()})]})]}),gs&&n.jsx("p",{className:"modal-mic-hint",children:t("modal.voiceLangHint")})]}),n.jsxs(H.Footer,{children:[n.jsx(B,{onClick:e.onHide,variant:"outline-secondary",size:"sm",children:t("modal.cancel")}),n.jsx(B,{variant:"primary",size:"sm",onClick:()=>{e.onSubmit(),e.onHide()},children:e.name})]})]})}var vs=e=>{const[t,s]=o.useState(!1),{handle:a,name:r,data:i,sendMessage:c,submit:l,className:u,id:d,disabled:f,isCompetition:h,onClose:g,maxLength:v,title:b,placeholder:m}=e,p=()=>{s(!1),g&&g()};return n.jsxs(n.Fragment,{children:[n.jsx(B,{title:e.actionLabel||b,"aria-label":e.actionLabel,id:d,variant:"info",className:u,disabled:f,onClick:()=>!f&&s(!0),children:r}),n.jsx(hi,{show:t,onHide:p,onChange:a,name:r,data:i,message:e.message,onSubmit:l,maxLength:v,title:b,placeholder:m,dialogClassName:h===!1?"modal-technical":""})]})};const mi=({show:e,onHide:t,boards:s,selectedBoardId:a,onConfirm:r,isCompetition:i})=>{const{t:c}=le(),[l,u]=o.useState(a||"");o.useEffect(()=>{u(a||"")},[e,a]);const d=l?s.find(f=>f.id===l):null;return n.jsxs(H,{show:e,onHide:t,centered:!0,dialogClassName:i===!1?"modal-technical":"",children:[n.jsx(H.Header,{closeButton:!0,className:"modal-gold-header",children:n.jsxs(H.Title,{className:"d-flex align-items-center gap-2",children:[n.jsx(Xs,{})," ",c("quiver.selectBoard")]})}),n.jsx(H.Body,{children:s.length===0?n.jsx("p",{className:"text-muted mb-0 small",children:c("quiver.noBoardsForSurfer")}
1):n.jsxs(n.Fragment,{children:[n.jsxs(G.Select,{value:l,onChange:f=>u(f.target.value),children:[n.jsx("option",{value:"",children:c("quiver.noBoardSelected")}),s.map(f=>n.jsxs("option",{value:f.id,children:[f.brand," — ",f.model,f.length?` (${f.length})`:""]},f.id))]}),d&&n.jsx("div",{className:"quiver-modal-board-info",children:[[d.length,d.width,d.thickness].filter(Boolean).join(" × "),d.liters?`${d.liters}L`:"",d.material,d.tail,d.fins,d.finsSetup].filter(Boolean).map((f,h)=>n.jsx("span",{className:"quiver-modal-board-chip",children:f},h))})]})}),n.jsxs(H.Footer,{children:[n.jsx(B,{variant:"outline-secondary",size:"sm",onClick:t,children:c("modal.cancel")}),n.jsx(B,{variant:"primary",size:"sm",onClick:()=>{r(l),t()},children:c("modal.confirmAction")})]})]})},gi=({boards:e,selectedBoardId:t,onConfirm:s,disabled:a,className:r,id:i,isCompetition:c})=>{const{t:l}=le(),[u,d]=o.useState(!1);return n.jsxs(n.Fragment,{children:[n.jsxs(B,{id:i,title:l("nav.quiver"),variant:"light",size:"sm",className:`btn-action btn-icon button-with-selection-dot ${r||""}`,disabled:a,onClick:()=>d(!0),children:[n.jsx(Xs,{size:15}),n.jsxs("span",{className:"visually-hidden",children:[" ",l("nav.quiver")]}),n.jsx("span",{className:`quiver-board-dot${t?"":" quiver-board-dot--hidden"}`})]}),n.jsx(mi,{show:u,onHide:()=>d(!1),boards:e,selectedBoardId:t,onConfirm:s,isCompetition:c})]})},vi=({show:e,onHide:t,objectives:s,selectedIds:a,onConfirm:r,isCompetition:i,trainingId:c,firebase:l})=>{const{t:u}=le(),[d,f]=o.useState([]),[h,g]=o.useState(!1);o.useEffect(()=>{if(!e)return;const m={};s.forEach(p=>{m[p.id]=p.name}),f((a||[]).map(p=>({id:p,label:m[p]||p})))},[e,a,s]);const v=s.map(m=>({id:m.id,label:m.name})),b=async m=>{if(!m.some(y=>y.customOption)){f(m);return}g(!0);const x=l.cloud("createObjective"),D=await Promise.all(m.map(async y=>{if(!y.customOption)return y;const w=await x({trainingId:c,name:y.label});return{id:w.data.id,label:w.data.name}}));f(D),g(!1)};return n.jsxs(H,{show:e,onHide:t,centered:!0,dialogClassName:i===!1?"modal-technical":"",children:[n.jsx(H.Header,{closeButton:!0,className:"modal-gold-header",children:n.jsxs(H.Title,{className:"d-flex align-items-center gap-2",children:[n.jsx(Fs,{})," ",u("training.objectives")]})}),n.jsx(H.Body,{children:n.jsx("div",{className:"objective-typeahead-wrap",children:n.jsx($r,{id:"objective-typeahead-multiple",multiple:!0,allowNew:!0,disabled:h,isLoading:h,labelKey:"label",options:v,selected:d,onChange:b,placeholder:u("training.objectivePlaceholder"),newSelectionPrefix:`${u("training.addObjective")}: `})})}),n.jsxs(H.Footer,{children:[n.jsx(B,{variant:"outline-secondary",size:"sm",onClick:t,children:u("modal.cancel")}),n.jsx(B,{variant:"primary",size:"sm",disabled:h,onClick:()=>{r(d.map(m=>m.id)),t()},children:u("modal.confirmAction")})]})]})},pi=lt(({objectives:e,selectedIds:t,onConfirm:s,disabled:a,className:r,id:i,isCompetition:c,trainingId:l,firebase:u})=>{const{t:d}
1=le(),[f,h]=o.useState(!1);return n.jsxs(n.Fragment,{children:[n.jsxs(B,{id:i,title:d("training.objective"),variant:"light",size:"sm",className:`btn-action btn-icon button-with-selection-dot ${r||""}`,disabled:a,onClick:()=>h(!0),children:[n.jsx(Fs,{size:15}),n.jsxs("span",{className:"visually-hidden",children:[" ",d("training.objective")]}),n.jsx("span",{className:`quiver-board-dot${(t||[]).length?"":" quiver-board-dot--hidden"}`})]}),n.jsx(vi,{show:f,onHide:()=>h(!1),objectives:e,selectedIds:t,onConfirm:s,isCompetition:c,trainingId:l,firebase:u})]})}),bi=lt(({uid:e,index:t,firebase:s})=>{const[a,r]=o.useState(""),[i,c]=o.useState("");o.useEffect(()=>{const u=it(s.surferName(e),f=>r(f.val()||"")),d=it(s.surferSurname(e),f=>c(f.val()||""));return()=>{u(),d()}},[e]);const l=`${a} ${i}`.trim();return n.jsxs("div",{className:"surfer-col-judge surfer-col-judge-label col-abbr-hint","data-tooltip":l||void 0,children:["J",t+1]})}),xi=e=>{const{surferSelectedView:t,training:s,permissions:a,isNewWaveLoading:r,isNewPriorityLoading:i,canEditHeat:c,surferSelected:l,running:u,handleAddWave:d,handleSetPriority:f,isNewScoreLoading:h,currentHeat:g,surfersWaves:v,currentUserUid:b,score:m,changeScore:p,saveScore:x,handleChangeNote:D,note:y,link:w,handleChangeLink:R,handleChangeMessage:T,sendMessage:N,message:E,loadScore:_,handleDeleteWave:I,surferBoards:C,selectedBoardId:ne,onBoardChange:se,scoreStep:Q,heatSummary:je,handleChangeHeatSummary:me,saveHeatSummary:k,coachObjectives:we,selectedObjectiveIds:X,onObjectiveChange:F}=e,Z=!s.trainingType||s.trainingType==="competition",W=Z||!!s.useScores,{t:O}=le(),fe=Rn(),{videoAnalysis:ge}=Zt(),[Y,U]=o.useState([]),[ve,Ne]=o.useState(!1);o.useEffect(()=>{Ne(!!(t&&a))},[t,a,l]),o.useEffect(()=>{if(l&&v.length!==0){const P=v.filter(ee=>ee.surfer===l.uid&&ee.heatId===l.heatId);U(P)}else U([])},[l,v]);const z=c&&ve&&u&&(l==null?void 0:l.heatId)===(g==null?void 0:g.key);return n.jsxs("div",{className:"training-block-wrap training-block-mb",children:[n.jsxs("div",{className:"training-card-header",children:[n.jsxs("div",{className:"d-flex align-items-center gap-2",children:[n.jsx(Bs,{className:"training-card-icon"}),n.jsx("span",{className:"training-card-title",children:O("training.surfer")})]}),t&&n.jsxs("div",{className:"d-flex align-items-center gap-2",children:[n.jsx("img",{src:l.data.picture||"/default-profile.png",alt:`${l.data.name} ${l.data.surname}`,title:`${l.data.name} ${l.data.surname}`,style:{width:"1.8rem",height:"1.8rem",borderRadius:"50%",objectFit:"cover",border:`2px solid ${Hs(l.data.jerseyColor)||"#dc2626"}`}}),n.jsxs("span",{className:"surfer-selected-name",children:[l.data.jerseyNumber&&`${l.data.jerseyNumber} | `,l.data.name," ",l.data.surname]})]})]}),n.jsx("div",{className:"training-card-body",children:t&&n.jsxs(n.Fragment,{children:[a&&n.jsxs("div",{className:"d-flex flex-wrap align-items-center justify-content-between mb-2 pb-2 surfer-actions-bar",children:[n.jsxs("div",{className:"d-flex gap-2",children:[n.jsx(B,{title:O("training.wave"),id:"tour-add-wave",variant:"light",size:"sm",className:"btn-action btn-icon",disabled:!z||r,onClick:d,children:r?n.jsx(ot,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"}):n.jsxs(n.Fragment,{children:[n.jsx(In,{size:15})," ",n.jsx("span",{className:"visually-hidden",children:O("training.wave")})]})}),!l.data.bot&&n.jsx(vs,{actionLabel:O("training.message"),data:l.uid,message:E,name:n.jsxs("span",{children:[n.jsx(qr,{size:15})," ",n.jsx("span",{className:"visually-hidden",children:O("training.message")})]}),handle:T,submit:P=>N(l.uid),onClose:()=>T({target:{value:""}}),id:"tour-add-message",className:"btn btn-sm btn-light btn-action btn-icon",isCompetition:Z}),Z&&n.jsx(B,{title:O("training.priority"),id:"tour-add-priority",variant:"light",size:"sm",className:"btn-action btn-icon",disabled:!z||i,onClick:f,children:i?n.jsx(ot,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"}):n.jsxs(n.Fragment,{children:[n.jsx(xn,{size:15})," ",n.jsx("span",{className:"visually-hidden",children:O("training.priority")})]})}),!l.data.bot&&n.jsx(pi,{objectives:we||[],selectedIds:X,onConfirm:P=>F(l.uid,P),disabled:!z,isCompetition:Z,trainingId:s.trainingId}),!l.data.bot&&n.jsx(gi,{boards:C||[],selectedBoardId:ne,onConfirm:se,disabled:!z,isCompetition:Z}),!l.data.bot&&n.jsx(vs,{actionLabel:O("training.heatSummary"),data:g?g.key:null,message:je,maxLength:300,title:O("modal.heatSummary"),placeholder:O("modal.heatSummaryPlaceholder"),name:n.jsxs("span",{children:[n.jsx(Ws,{size:15})," ",n.jsx("span",{className:"visually-hidden",children:O("training.heatSummary")}
1)]}),handle:me,submit:k,id:"tour-heat-summary",className:"btn btn-sm btn-light btn-action btn-icon",isCompetition:Z})]}),n.jsxs("span",{className:"surfer-wave-count",children:[Y.length," ",Y.length!==1?O("training.waves"):O("training.waveSingular")]})]}),n.jsxs("div",{className:"surfer-table-wrap--scroll",children:[n.jsxs("div",{className:"d-flex align-items-center surfer-table-header",children:[n.jsx("div",{className:"surfer-col-num col-abbr-hint","data-tooltip":O("training.wave"),children:"#"}),n.jsx("div",{className:"surfer-col-time",children:O("training.time")}),s&&s.judges&&Object.keys(s.judges).map((P,ee)=>n.jsx(bi,{uid:P,index:ee},P)),W&&n.jsx("div",{className:"surfer-col-total col-abbr-hint","data-tooltip":O("training.total"),children:"T"}),Z&&n.jsx("div",{className:"surfer-col-half col-abbr-hint","data-tooltip":O("training.priority"),children:"P"}),n.jsx("div",{className:"surfer-col-actions"})]}),Y.map((P,ee)=>{const Ce=P.boardId?(C||[]).find(re=>re.id===P.boardId):null,ae=(P.objectiveIds||[]).map(re=>{var Te;return(Te=(we||[]).find(qe=>qe.id===re))==null?void 0:Te.name}).filter(Boolean);return n.jsx("div",{id:ee===0?"tour-add-score":void 0,style:{background:ee%2===0?"#fff":"#fafaf9"},children:n.jsxs("div",{className:"d-flex align-items-center surfer-table-row",children:[n.jsx("div",{className:"surfer-col-num surfer-num-val",children:ee+1}),n.jsx("div",{className:"surfer-col-time surfer-time-val",children:pt(P.created).format("hh:mm a")}),s&&s.judges&&Object.keys(s.judges).map(re=>n.jsx("div",{className:"surfer-col-judge surfer-score-val",children:n.jsx(Mr,{judge:re,waveId:P.waveId,surfer:l.uid,surferWaves:Y,isCompetition:W})},re)),W&&n.jsx("div",{className:"surfer-col-total surfer-total-val",children:n.jsx(Or,{waveId:P.waveId,surfer:l.uid,surferWaves:Y,judges:s&&s.judges})}),Z&&n.jsx("div",{className:"surfer-col-half surfer-priority-val",children:P.priorityPosition!=null?P.priorityPosition:P.priority?n.jsx(xn,{}):""}),n.jsxs("div",{className:"surfer-col-actions surfer-action-cell d-flex align-items-center gap-1",children:[n.jsx(qs,{wave:P,waves:Y,canEdit:!!(a&&ge)}),n.jsx(Gs,{wave:P}),a&&ge&&(P==null?void 0:P.video)&&n.jsx(B,{variant:"outline-secondary",size:"sm",className:"wave-video-button",onClick:re=>{re.stopPropagation(),fe(_s(P.heatId,P.waveId))},"aria-label":O("video.edit"),title:O("video.edit"),children:n.jsx(bn,{})}),n.jsx(di,{waveId:P.waveId,wave:P,name:n.jsx(Pr,{}),ariaLabel:O(W?"modal.addScore":"modal.addFeedback"),judge:b,score:m,active:ve,changeScore:p,handleChangeNote:D,note:y,link:w,handleChangeLink:R,isNewScoreLoading:h,saveScore:re=>x(P.waveId),loadScore:_,isBot:l.data.bot,isCompetition:Z,scoringEnabled:W,board:Ce,objectiveNames:ae,scoreStep:Q,permissions:a}),a&&n.jsx(Lt,{name:n.jsx(xt,{size:12}),ariaLabel:O("modal.delete")+" wave",body:O("modal.deleteWave"),variant:"outline-danger",className:"btn-wave-delete",confirmLabel:O("modal.delete"),confirmIcon:n.jsx(xt,{}),handleAction:()=>I(P.waveId)})]})]})},P.waveId)})]})]})})]})};function ta(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function yi(e,t){for(var s=0;s<t.length;s++){var a=t[s];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function na(e,t,s){return t&&yi(e.prototype,t),e}function sa(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&yn(e,t)}function Gt(e){return Gt=Object.setPrototypeOf?Object.getPrototypeOf:function(s){return s.__proto__||Object.getPrototypeOf(s)},Gt(e)}function yn(e,t){return yn=Object.setPrototypeOf||function(a,r){return a.__proto__=r,a},yn(e,t)}function ji(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function wi(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Si(e,t){return t&&(typeof t=="object"||typeof t=="function")?t:wi(e)}function aa(e){var t=ji();return function(){var a=Gt(e),r;if(t){var i=Gt(this).constructor;r=Reflect.construct(a,arguments,i)}else r=a.apply(this,arguments);return Si(this,r)}}function Ni(e){return Ci(e)||Di(e)||Ti(e)||Ri()}function Ci(e){if(Array.isArray(e))return jn(e)}function Di(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function Ti(e,t){if(e){if(typeof e=="string")return jn(e,t);var s=Object.prototype.toString.call(e).slice(8,-1);if(s==="Object"&&e.constructor&&(s=e.constructor.name),s==="Map"||s==="Set")return Array.from(e);if(s==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s))return jn(e,t)}}function jn(e,t){(t==null||t>e.length)&&(t=e.length);for(var s=0,a=new Array(t);s<t;s++)a[s]=e[s];return a}function Ri(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
2In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Dt(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2,s=String(e);if(t===0)return s;var a=s.match(/(.*?)([0-9]+)(.*)/),r=a?a[1]:"",i=a?a[3]:"",c=a?a[2]:s,l=c.length>=t?c:(Ni(Array(t)).map(function(){return"0"}).join("")+c).slice(t*-1);return"".concat(r).concat(l).concat(i)}var ra={daysInHours:!1,zeroPadTime:2};function ki(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s=t.now,a=s===void 0?Date.now:s,r=t.precision,i=r===void 0?0:r,c=t.controlled,l=t.offsetTime,u=l===void 0?0:l,d=t.overtime,f;typeof e=="string"?f=new Date(e).getTime():e instanceof Date?f=e.getTime():f=e,c||(f+=u);var h=c?f:f-a(),g=Math.min(20,Math.max(0,i)),v=Math.round(parseFloat(((d?h:Math.max(0,h))/1e3).toFixed(g))*1e3),b=Math.abs(v)/1e3;return{total:v,days:Math.floor(b/(3600*24)),hours:Math.floor(b/3600%24),minutes:Math.floor(b/60%60),seconds:Math.floor(b%60),milliseconds:Number((b%1*1e3).toFixed()),completed:v<=0}}function Ii(e,t){var s=e.days,a=e.hours,r=e.minutes,i=e.seconds,c=Object.assign(Object.assign({},ra),t),l=c.daysInHours,u=c.zeroPadTime,d=c.zeroPadDays,f=d===void 0?u:d,h=Math.min(2,u),g=l?Dt(a+s*24,u):Dt(a,h);return{days:l?"":Dt(s,f),hours:g,minutes:Dt(r,h),seconds:Dt(i,h)}}var ia=(function(e){sa(s,e);var t=aa(s);function s(){var a;
2return ta(this,s),a=t.apply(this,arguments),a.state={count:a.props.count||3},a.startCountdown=function(){a.interval=window.setInterval(function(){var r=a.state.count-1;r===0?(a.stopCountdown(),a.props.onComplete&&a.props.onComplete()):a.setState(function(i){return{count:i.count-1}})},1e3)},a.stopCountdown=function(){clearInterval(a.interval)},a.addTime=function(r){a.stopCountdown(),a.setState(function(i){return{count:i.count+r}},a.startCountdown)},a}return na(s,[{key:"componentDidMount",value:function(){this.startCountdown()}},{key:"componentWillUnmount",value:function(){clearInterval(this.interval)}},{key:"render",value:function(){return this.props.children?o.cloneElement(this.props.children,{count:this.state.count}):null}}]),s})(o.Component);ia.propTypes={count:te.number,children:te.element,onComplete:te.func};var Xt=(function(e){sa(s,e);var t=aa(s);function s(a){var r;if(ta(this,s),r=t.call(this,a),r.mounted=!1,r.initialTimestamp=r.calcOffsetStartTimestamp(),r.offsetStartTimestamp=r.props.autoStart?0:r.initialTimestamp,r.offsetTime=0,r.legacyMode=!1,r.legacyCountdownRef=null,r.tick=function(){var c=r.calcTimeDelta(),l=c.completed&&!r.props.overtime?void 0:r.props.onTick;r.setTimeDeltaState(c,void 0,l)},r.setLegacyCountdownRef=function(c){r.legacyCountdownRef=c},r.start=function(){if(!r.isStarted()){var c=r.offsetStartTimestamp;r.offsetStartTimestamp=0,r.offsetTime+=c?r.calcOffsetStartTimestamp()-c:0;var l=r.calcTimeDelta();r.setTimeDeltaState(l,"STARTED",r.props.onStart),!r.props.controlled&&(!l.completed||r.props.overtime)&&(r.clearTimer(),r.interval=window.setInterval(r.tick,r.props.intervalDelay))}},r.pause=function(){r.isPaused()||(r.clearTimer(),r.offsetStartTimestamp=r.calcOffsetStartTimestamp(),r.setTimeDeltaState(r.state.timeDelta,"PAUSED",r.props.onPause))},r.stop=function(){r.isStopped()||(r.clearTimer(),r.offsetStartTimestamp=r.calcOffsetStartTimestamp(),r.offsetTime=r.offsetStartTimestamp-r.initialTimestamp,r.setTimeDeltaState(r.calcTimeDelta(),"STOPPED",r.props.onStop))},r.isStarted=function(){return r.isStatus("STARTED")},r.isPaused=function(){return r.isStatus("PAUSED")},r.isStopped=function(){return r.isStatus("STOPPED")},r.isCompleted=function(){return r.isStatus("COMPLETED")},a.date){var i=r.calcTimeDelta();r.state={timeDelta:i,status:i.completed?"COMPLETED":"STOPPED"}}else r.legacyMode=!0;return r}return na(s,[{key:"componentDidMount",value:function(){this.legacyMode||(this.mounted=!0,this.props.onMount&&this.props.onMount(this.calcTimeDelta()),this.props.autoStart&&this.start())}},{key:"componentDidUpdate",value:function(r){this.legacyMode||this.props.date!==r.date&&(this.initialTimestamp=this.calcOffsetStartTimestamp(),this.offsetStartTimestamp=this.initialTimestamp,this.offsetTime=0,this.setTimeDeltaState(this.calcTimeDelta()))}},{key:"componentWillUnmount",value:function(){this.legacyMode||(this.mounted=!1,this.clearTimer())}},{key:"calcTimeDelta",value:function(){var r=this.props,i=r.date,c=r.now,l=r.precision,u=r.controlled,d=r.overtime;return ki(i,{now:c,precision:l,controlled:u,offsetTime:this.offsetTime,overtime:d})}},{key:"calcOffsetStartTimestamp",value:function(){return Date.now()}},{key:"addTime",value:function(r){this.legacyCountdownRef.addTime(r)}},{key:"clearTimer",value:function(){window.clearInterval(this.interval)}},{key:"isStatus",value:function(r){return this.state.status===r}},{key:"setTimeDeltaState",value:function(r,i,c){var l=this;if(this.mounted){var u=r.completed&&!this.state.timeDelta.completed,d=r.completed&&i==="STARTED";u&&!this.props.overtime&&this.clearTimer();var f=function(){c&&c(l.state.timeDelta),l.props.onComplete&&(u||d)&&l.props.onComplete(r,d)};return this.setState(function(h){var g=i||h.status;return r.completed&&!l.props.overtime?g="COMPLETED":!i&&g==="COMPLETED"&&(g="STOPPED"),{timeDelta:r,status:g}},f)}}},{key:"getApi",value:function(){return this.api=this.api||{start:this.start,pause:this.pause,stop:this.stop,isStarted:this.isStarted,isPaused:this.isPaused,isStopped:this.isStopped,isCompleted:this.isCompleted}}},{key:"getRenderProps",value:function(){var r=this.props,i=r.daysInHours,c=r.zeroPadTime,l=r.zeroPadDays,u=this.state.timeDelta;return Object.assign(Object.assign({},u),{api:this.getApi(),props:this.props,formatted:Ii(u,{daysInHours:i,zeroPadTime:c,zeroPadDays:l})})}},{key:"render",value:function(){if(this.legacyMode){var r=this.props,i=r.count,c=r.children,l=r.onComplete;return o.createElement(ia,{ref:this.setLegacyCountdownRef,count:i,onComplete:l},c)}var u=this.props,d=u.className,f=u.overtime,h=u.children,g=u.renderer,v=this.getRenderProps();if(g)return g(v);
2if(h&&this.state.timeDelta.completed&&!f)return o.cloneElement(h,{countdown:v});var b=v.formatted,m=b.days,p=b.hours,x=b.minutes,D=b.seconds;return o.createElement("span",{className:d},v.total<0?"-":"",m,m?":":"",p,":",x,":",D)}}]),s})(o.Component);Xt.defaultProps=Object.assign(Object.assign({},ra),{controlled:!1,intervalDelay:1e3,precision:0,autoStart:!0});Xt.propTypes={date:te.oneOfType([te.instanceOf(Date),te.string,te.number]),daysInHours:te.bool,zeroPadTime:te.number,zeroPadDays:te.number,controlled:te.bool,intervalDelay:te.number,precision:te.number,autoStart:te.bool,overtime:te.bool,className:te.string,children:te.element,renderer:te.func,now:te.func,onMount:te.func,onStart:te.func,onPause:te.func,onStop:te.func,onTick:te.func,onComplete:te.func};const Ei=({training:e,showCountDown:t,isNewHeatLoading:s,heatsReady:a,canEditHeat:r,isHeatSaving:i,permissions:c,running:l,renderer:u,currentHeat:d,handleNewHeat:f,handleStartHeat:h,handleFinishHeat:g,handleSeeCompetitor:v,endTime:b,heatFinished:m,surferSelected:p,heatNumber:x,runningHeat:D,handleLoadHeat:y})=>{const{t:w}=le(),R=!e.trainingType||e.trainingType==="competition",T=!!D&&D.key!==(d==null?void 0:d.key),{videoAnalysis:N}=Zt(),E=!!(N&&c&&(d!=null&&d.key));return n.jsxs("div",{className:"training-block-wrap training-block-mb",children:[n.jsxs("div",{className:"training-card-header",children:[n.jsxs("div",{className:"d-flex align-items-center gap-2",children:[n.jsx(In,{className:"training-card-icon"}),n.jsxs("span",{className:"training-card-title",children:[w(R?"training.heat":"training.session"),x?` ${x}`:""]})]}),l&&n.jsxs("span",{className:`heat-running-label${R?" heat-running-label--competition":""}`,children:[n.jsx("span",{className:"quiver-board-dot","aria-hidden":"true"}),w("training.running")]}),d&&!l&&n.jsx("span",{className:"heat-status-label",children:w(m?"training.finishedStatus":"training.notStartedStatus")}),c&&n.jsxs(B,{title:w(R?"training.newHeat":"training.newSession"),className:"btn-icon",id:"tour-create-heat",variant:"primary",size:"sm",disabled:!a||!!D||s||i,onClick:f,children:[s?n.jsx(ot,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"}):n.jsxs(n.Fragment,{children:[n.jsx(Ar,{})," ",n.jsx("span",{className:"visually-hidden",children:w(R?"training.newHeat":"training.newSession")})]}),s&&n.jsxs("span",{className:"visually-hidden",children:[" ",w("training.creating")]})]})]}),n.jsxs("div",{className:"training-card-body",children:[T&&n.jsx("div",{className:"countdown-controls-row countdown-return-row mb-3",children:n.jsxs(B,{size:"sm",variant:"outline-secondary",className:"d-inline-flex align-items-center gap-2",onClick:()=>y(D.key),children:[n.jsx(Us,{"aria-hidden":"true"}),w(R?"training.returnRunningHeat":"training.returnRunningSession")]})}),t?n.jsxs(n.Fragment,{children:[T?null:m?n.jsx(Xt,{date:b||Date.now(),renderer:u},d==null?void 0:d.key):n.jsxs("div",{className:"countdown-controls-row mb-3",children:[c&&n.jsxs("div",{className:"d-flex gap-2 align-self-center",children:[n.jsxs(B,{title:w("training.start"),className:"btn-icon",id:"tour-start-heat",variant:"primary",size:"sm",disabled:!r||!!D,onClick:h,children:[n.jsx(Vr,{size:20})," ",n.jsx("span",{className:"visually-hidden",children:w("training.start")})]}),n.jsx(Lt,{ariaLabel:w("training.stop"),body:w("modal.finishHeat"),disabled:!r||!l,variant:"outline-danger",size:"sm",className:"btn-wave-delete btn-icon",name:n.jsxs(n.Fragment,{children:[n.jsx(ds,{size:20})," ",n.jsx("span",{className:"visually-hidden",children:w("training.stop")})]}),confirmLabel:w("training.stop"),confirmIcon:n.jsx(ds,{}),handleAction:g})]}),n.jsx("div",{className:"countdown-display",style:{visibility:b?"visible":"hidden"},children:b?n.jsx(Xt,{date:b,renderer:u}):n.jsx("span",{children:"—"})})]}),d&&n.jsx(Ks,{training:e,heat:d,running:l,surferSelected:p,handleSeeCompetitor:v})]}):n.jsx("div",{className:"text-center py-3 training-no-heat",children:w(R?"training.noActiveHeat":"training.noActiveSession")})]}),E&&n.jsx("div",{className:"card-footer text-muted training-card-footer",children:n.jsx(si,{isCompetition:R,heatId:d.key,surfers:e.surfers,buttonVariant:"primary",compactUpload:!0},d.key)})]})},Mi=({messages:e,surferSelected:t,isCompetition:s})=>{const{t:a}=le();if(!t)return null;const r=e.length!==0?[...e.filter(i=>i.receiver===t.uid&&i.heatId===t.heatId)].sort((i,c)=>new Date(c.created)-new Date(i.created)):[];return r.length===0?null:n.jsxs("div",{className:"training-block-wrap training-block-mb",children:[n.jsx("div",{className:"training-card-header",children:n.jsxs("div",{className:"d-flex align-items-center gap-2",children:[n.jsx(hr,{className:"training-card-icon"}),n.jsx("span",{className:"training-card-title",children:a("messages.title")})]})}),n.jsx("div",{className:"messages-list-wrap",children:r.map(i=>n.jsxs("div",{className:"message-item",children:[n.jsx("div",{className:"message-text",children:i.message}),n.jsxs("div",{className:"d-flex justify-content-between align-items-center message-meta",children:[n.jsx("span",{children:pt(i.created).format("hh:mm a")}),n.jsx("span",{children:i.read?n.jsx(Er,{className:"message-read-icon"}):n.jsx(Rr,{className:"message-unread-icon"})})]})]},i.messageId))})]})},Oi=({show:e,onHide:t,scoreStep:s,onScoreStepChange:a,permissions:r,isCompetition:i,useScores:c,onUseScoresChange:l})=>{const{t:u}=le(),d=i||c;return n.jsxs(H,{show:e,onHide:t,centered:!0,dialogClassName:i===!1?"modal-technical":"",children:[n.jsx(H.Header,{closeButton:!0,className:"modal-gold-header",children:n.jsx(H.Title,{children:u(i?"heatSettings.title":"heatSettings.titleTechnical")})}),n.jsxs(H.Body,{children:[r&&!i&&n.jsxs(G.Group,{className:"form-element",controlId:"useScoresToggle",children:[n.jsx(G.Check,{type:"switch",id:"use-scores-switch",className:"heat-settings-check",label:u("heatSettings.enableScores"),checked:!!c,onChange:f=>l(f.target.checked)}),n.jsx("p",{className:"modal-mic-hint",children:u("heatSettings.enableScoresHint")})]}),r&&d&&n.jsxs(G.Group,{className:"form-element",controlId:"scoreStepToggle",children:[n.jsx(G.Label,{children:u("heatSettings.scorePrecision")}),n.jsx(G.Check,{type:"switch",id:"score-step-switch",className:"heat-settings-check",label:u(s===.01?"heatSettings.twoDecimals":"heatSettings.oneDecimal"),checked:s===.01,onChange:f=>a(f.target.checked?.01:.1)}),n.jsx("p",{className:"modal-mic-hint",children:u("heatSettings.precisionHint")})]})]})]})},fn=({icon:e,label:t,children:s})=>n.jsxs("div",{className:"training-detail-field",children:[n.jsxs("div",{className:"training-detail-label",children:[n.jsx("span",{"aria-hidden":"true",children:e}),t]}),n.jsx("div",{className:"training-detail-value",children:s})]}),ps=({icon:e,label:t,people:s})=>{const a=Object.keys(s||{});return n.jsxs("section",{className:"training-detail-participants","aria-label":t,children:[n.jsxs("div",{className:"training-detail-group-heading",children:[n.jsxs("span",{className:"training-detail-label",children:[n.jsx("span",{"aria-hidden":"true",children:e}),t]}),n.jsx("span",{className:"training-detail-count",children:a.length})]}),a.length?n.jsx("ul",{className:"training-detail-people",children:a.map(r=>n.jsx("li",{children:n.jsx(en,{uid:r})},r))}):n.jsx("span",{className:"training-detail-empty",children:"—"})]})},bs=({training:e,scoreStep:t,onScoreStepChange:s,permissions:a,onUseScoresChange:r})=>{const[i,c]=o.useState(!1),[l,u]=o.useState(!1),{t:d}=le(),f=!e.trainingType||e.trainingType==="competition",h=d(f?"heatSettings.title":"heatSettings.titleTechnical");return n.jsxs("div",{className:"training-block-wrap training-block-mb",children:[n.jsxs("div",{className:"training-card-header training-card-header-clickable",onClick:()=>c(g=>!g),children:[n.jsxs("div",{className:"d-flex align-items-center gap-2",children:[n.jsx(mr,{className:"training-card-icon"}),n.jsx("span",{className:"training-card-title",children:d("training.details")})]}),n.jsxs("div",{className:"d-flex align-items-center gap-2",children:[a&&n.jsx("button",{type:"button",className:"training-settings-btn",onClick:g=>{g.stopPropagation(),u(!0)},"aria-label":h,title:h,children:n.jsx(gr,{})}),n.jsx(kn,{open:i,onToggle:()=>c(g=>!g),iconClassName:"training-card-chevron",label:d("training.details")})]})]}),n.jsx(Oi,{show:l,onHide:()=>u(!1),scoreStep:t,onScoreStepChange:s,permissions:a,isCompetition:f,useScores:!!e.useScores,onUseScoresChange:r}),i&&n.jsxs("div",{className:"training-card-body training-details-body",children:[n.jsxs("div",{className:"training-detail-metadata",children:[e.spot&&n.jsx(fn,{icon:n.jsx(Vs,{}),label:d("dashboard.spotLabel"),children:e.spot}),n.jsxs(fn,{icon:n.jsx(Ps,{}),label:d("training.duration"),children:[e.trainingTime," ",d("training.minutes")]}),n.jsx(fn,{icon:n.jsx(Bs,{}),label:d("training.author"),children:n.jsx(en,{uid:e.author})})]}),n.jsx(ps,{icon:n.jsx(vr,{}),label:d("training.judges"),people:e.judges}),n.jsx(ps,{icon:n.jsx(In,{}),label:d("training.surfers"),people:e.surfers})]}),i&&n.jsxs("div",{className:"card-footer text-muted training-card-footer training-details-created",children:[d("training.createdOn")," ",pt(e.created).format("D MMM YYYY, HH:mm")]})]})},Li=(e,t)=>({marineUrl:`https://marine-api.open-meteo.com/v1/marine?latitude=${e}&longitude=${t}&current=wave_height,wave_period,wave_direction,swell_wave_height,swell_wave_period,sea_surface_temperature&hourly=sea_level_height_msl&timezone=auto&forecast_days=2`,weatherUrl:`https://api.open-meteo.com/v1/forecast?latitude=${e}&longitude=${t}&current=wind_speed_10m,wind_direction_10m,wind_gusts_10m,temperature_2m&timezone=auto`}),xs=(e,t)=>{if(!e.ok)throw new Error(`open-meteo ${e.status}`);if(t&&t.error)throw new Error(`open-meteo: ${t.reason||"error"}`);return t},Pi=600*1e3,hn=new Map,Ai=(e,t)=>{const s=`${e},${t}`,a=hn.get(s);if(a&&Date.now()-a.at<Pi)return a.promise;const{marineUrl:r,weatherUrl:i}=Li(e,t),c=Promise.all([fetch(r),fetch(i)]).then(([l,u])=>Promise.all([l.json().then(d=>xs(l,d)),u.json().then(d=>xs(u,d))])).then(([l,u])=>({marineData:l,weatherData:u})).catch(l=>{throw hn.delete(s),l});return hn.set(s,{at:Date.now(),promise:c}),c},zi=({values:e,times:t,utcOffsetSeconds:s,rising:a,falling:r,accent:i,nowMs:c})=>{if(!e||e.length<2||!t)return null;const l=new Date(c+(s||0)*1e3).toISOString().slice(0,13);let u=t.findIndex(N=>N.slice(0,13)===l);u===-1&&(u=0);const d=Math.max(0,u-5),f=e.slice(d,d+11),h=u-d;if(f.some(N=>N==null))return null;const g=140,v=40,b=Math.min(...f),p=Math.max(...f)-b||.01,x=N=>N/(f.length-1)*g,D=N=>v-(N-b)/p*(v-4)-2,y=f.map((N,E)=>`${x(E).toFixed(1)},${D(N).toFixed(1)}`).join(" "),w=x(h),R=D(f[h]),T=f[h+1]!==void 0&&f[h+1]>f[h];return n.jsxs("div",{className:"conditions-tide-wrap",children:[n.jsxs("svg",{width:g,height:v,viewBox:`0 0 ${g} ${v}`,overflow:"visible",children:[n.jsx("polyline",{points:y,fill:"none",stroke:i,strokeWidth:"1.8",strokeLinejoin:"round"}),n.jsx("circle",{cx:w,cy:R,r:"3.5",fill:i})]}),n.jsx("span",{className:"conditions-tide-label",children:T?a:r})]})},ht=({label:e,title:t,children:s})=>n.jsxs("div",{className:"conditions-row",children:[n.jsx("span",{className:"conditions-label conditions-label-hint",title:t,children:e}),n.jsx("span",{className:"conditions-value",children:s})]}),ys=({lat:e,lng:t,locationName:s,spot:a,isCompetition:r,useImperial:i,conditions:c,historical:l=!1})=>{var R;const u="#fabe08",{t:d}
2=le(),[f,h]=o.useState(null),[g,v]=o.useState(null),[b,m]=o.useState(!0),[p,x]=o.useState(!1),D=Number.isFinite(e)&&Math.abs(e)<=90&&Number.isFinite(t)&&Math.abs(t)<=180;if(o.useEffect(()=>{let T=!1;if(c)return h(c.marine||null),v(c.weather||null),x(!1),m(!1),()=>{T=!0};if(l)return h(null),v(null),m(!1),x(!1),()=>{T=!0};if(D)return m(!0),Ai(e,t).then(({marineData:N,weatherData:E})=>{T||(h(N),v(E),x(!1),m(!1))}).catch(()=>{T||(x(!0),m(!1))}),()=>{T=!0}},[e,t,D,c,l]),!D&&!l&&!c)return null;const y=f==null?void 0:f.current,w=g==null?void 0:g.current;return n.jsxs("div",{className:"training-block-wrap training-block-mb",children:[n.jsxs("div",{className:"training-card-header",children:[n.jsxs("div",{className:"d-flex align-items-center gap-2",children:[n.jsx(pr,{className:"training-card-icon"}),n.jsx("span",{className:"training-card-title",children:d("conditions.title")})]}),(a||s)&&n.jsxs("span",{className:"conditions-location-name",children:[n.jsx(Vs,{className:"conditions-location-icon"}),[a,s].filter(Boolean).join(", ")]})]}),n.jsxs("div",{className:"training-card-body",children:[l&&!c&&n.jsx("div",{className:"conditions-loading",children:d("conditions.notRecorded")}),!(l&&!c)&&b&&n.jsx("div",{className:"conditions-loading",children:d("conditions.loading")}),!(l&&!c)&&p&&n.jsx("div",{className:"conditions-loading",children:d("conditions.error")}),!(l&&!c)&&!b&&!p&&n.jsxs(n.Fragment,{children:[w&&n.jsxs(ht,{label:d("conditions.wind"),title:d("conditions.defWind"),children:[n.jsx(rs,{style:{transform:`rotate(${w.wind_direction_10m}deg)`,display:"inline-block",fontSize:"1.1rem",color:u}})," ",is(w.wind_speed_10m,i)," ",os(w.wind_direction_10m)," ",w.wind_direction_10m,"°",w.wind_gusts_10m>0&&n.jsxs("span",{className:"conditions-gust",children:[" · ",d("conditions.gusts")," ",is(w.wind_gusts_10m,i)]})]}),y&&n.jsxs(n.Fragment,{children:[n.jsxs(ht,{label:d("conditions.wave"),title:d("conditions.defWave"),children:[y.wave_direction!=null&&n.jsxs(n.Fragment,{children:[n.jsx(rs,{style:{transform:`rotate(${y.wave_direction}deg)`,display:"inline-block",fontSize:"1.1rem",color:u}})," "]}),ls(y.wave_height,i)," · ",y.wave_period,"s",y.wave_direction!=null&&n.jsxs(n.Fragment,{children:[" · ",os(y.wave_direction)," ",y.wave_direction,"°"]})]}),n.jsxs(ht,{label:d("conditions.swell"),title:d("conditions.defSwell"),children:[ls(y.swell_wave_height,i)," · ",y.swell_wave_period,"s"]}),n.jsxs(ht,{label:d("conditions.energy"),title:d("conditions.defEnergy"),children:[Lr(y.wave_height,y.wave_period)," kJ"]}),(w==null?void 0:w.temperature_2m)!=null&&n.jsx(ht,{label:d("conditions.airTemp"),title:d("conditions.defAirTemp"),children:cs(w.temperature_2m,i)}),y.sea_surface_temperature!=null&&n.jsx(ht,{label:d("conditions.waterTemp"),title:d("conditions.defWaterTemp"),children:cs(y.sea_surface_temperature,i)})]}),((R=f==null?void 0:f.hourly)==null?void 0:R.sea_level_height_msl)&&n.jsxs("div",{className:"conditions-tide-row",children:[n.jsx("span",{className:"conditions-label conditions-label-hint",title:d("conditions.defTide"),children:d("conditions.tide")}),n.jsx(zi,{values:f.hourly.sea_level_height_msl,times:f.hourly.time,utcOffsetSeconds:f.utc_offset_seconds,nowMs:(c==null?void 0:c.capturedAt)||Date.now(),rising:d("conditions.rising"),falling:d("conditions.falling"),accent:u})]})]})]})]})};function $i(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return o.useMemo(()=>a=>{t.forEach(r=>r(a))},t)}const tn=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function yt(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function Mn(e){return"nodeType"in e}function Le(e){var t,s;return e?yt(e)?e:Mn(e)&&(t=(s=e.ownerDocument)==null?void 0:s.defaultView)!=null?t:window:window}function On(e){const{Document:t}=Le(e);return e instanceof t}function Pt(e){return yt(e)?!1:e instanceof Le(e).HTMLElement}function oa(e){return e instanceof Le(e).SVGElement}function jt(e){return e?yt(e)?e.document:Mn(e)?On(e)?e:Pt(e)||oa(e)?e.ownerDocument:document:document:document}const Xe=tn?o.useLayoutEffect:o.useEffect;function Ln(e){const t=o.useRef(e);return Xe(()=>{t.current=e}),o.useCallback(function(){for(var s=arguments.length,a=new Array(s),r=0;r<s;r++)a[r]=arguments[r];return t.current==null?void 0:t.current(...a)},[])}function _i(){const e=o.useRef(null),t=o.useCallback((a,r)=>{e.current=setInterval(a,r)},[]),s=o.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,s]}function Et(e,t){t===void 0&&(t=[e]);const s=o.useRef(e);return Xe(()=>{s.current!==e&&(s.current=e)},t),s}function At(e,t){const s=o.useRef();return o.useMemo(()=>{const a=e(s.current);return s.current=a,a},[...t])}function Yt(e){const t=Ln(e),s=o.useRef(null),a=o.useCallback(r=>{r!==s.current&&(t==null||t(r,s.current)),s.current=r},[]);return[s,a]}function wn(e){const t=o.useRef();return o.useEffect(()=>{t.current=e},[e]),t.current}let mn={};function zt(e,t){return o.useMemo(()=>
2{if(t)return t;const s=mn[e]==null?0:mn[e]+1;return mn[e]=s,e+"-"+s},[e,t])}function la(e){return function(t){for(var s=arguments.length,a=new Array(s>1?s-1:0),r=1;r<s;r++)a[r-1]=arguments[r];return a.reduce((i,c)=>{const l=Object.entries(c);for(const[u,d]of l){const f=i[u];f!=null&&(i[u]=f+e*d)}return i},{...t})}}const bt=la(1),Kt=la(-1);function Fi(e){return"clientX"in e&&"clientY"in e}function Pn(e){if(!e)return!1;const{KeyboardEvent:t}=Le(e.target);return t&&e instanceof t}function Bi(e){if(!e)return!1;const{TouchEvent:t}=Le(e.target);return t&&e instanceof t}function Sn(e){if(Bi(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:s}=e.touches[0];return{x:t,y:s}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:s}=e.changedTouches[0];return{x:t,y:s}}}return Fi(e)?{x:e.clientX,y:e.clientY}:null}const Mt=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:s}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(s?Math.round(s):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:s}=e;return"scaleX("+t+") scaleY("+s+")"}},Transform:{toString(e){if(e)return[Mt.Translate.toString(e),Mt.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:s,easing:a}=e;return t+" "+s+"ms "+a}}}),js="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function Hi(e){return e.matches(js)?e:e.querySelector(js)}const Wi={display:"none"};function Ui(e){let{id:t,value:s}=e;return Oe.createElement("div",{id:t,style:Wi},s)}function Vi(e){let{id:t,announcement:s,ariaLiveType:a="assertive"}=e;const r={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return Oe.createElement("div",{id:t,style:r,role:"status","aria-live":a,"aria-atomic":!0},s)}function qi(){const[e,t]=o.useState("");return{announce:o.useCallback(a=>{a!=null&&t(a)},[]),announcement:e}}const ca=o.createContext(null);function Gi(e){const t=o.useContext(ca);o.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of <DndContext>");return t(e)},[e,t])}function Xi(){const[e]=o.useState(()=>new Set),t=o.useCallback(a=>(e.add(a),()=>e.delete(a)),[e]);return[o.useCallback(a=>{let{type:r,event:i}=a;e.forEach(c=>{var l;return(l=c[r])==null?void 0:l.call(c,i)})},[e]),t]}const Yi={draggable:`
3    To pick up a draggable item, press the space bar.
4    While dragging, use the arrow keys to move the item.
5    Press space again to drop the item in its new position, or press escape to cancel.
6  `},Ki={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:s}=e;return s?"Draggable item "+t.id+" was moved over droppable area "+s.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:s}=e;return s?"Draggable item "+t.id+" was dropped over droppable area "+s.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function Ji(e){let{announcements:t=Ki,container:s,hiddenTextDescribedById:a,screenReaderInstructions:r=Yi}=e;const{announce:i,announcement:c}=qi(),l=zt("DndLiveRegion"),[u,d]=o.useState(!1);if(o.useEffect(()=>{d(!0)},[]),Gi(o.useMemo(()=>({onDragStart(h){let{active:g}=h;i(t.onDragStart({active:g}))},onDragMove(h){let{active:g,over:v}=h;t.onDragMove&&i(t.onDragMove({active:g,over:v}))},onDragOver(h){let{active:g,over:v}=h;i(t.onDragOver({active:g,over:v}))},onDragEnd(h){let{active:g,over:v}=h;i(t.onDragEnd({active:g,over:v}))},onDragCancel(h){let{active:g,over:v}=h;i(t.onDragCancel({active:g,over:v}))}}),[i,t])),!u)return null;const f=Oe.createElement(Oe.Fragment,null,Oe.createElement(Ui,{id:a,value:r.draggable}),Oe.createElement(Vi,{id:l,announcement:c}));return s?Tt.createPortal(f,s):f}var he;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(he||(he={}));function Jt(){}function ws(e,t){return o.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function Qi(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return o.useMemo(()=>[...t].filter(a=>a!=null),[...t])}const Ve=Object.freeze({x:0,y:0});function Zi(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function eo(e,t){let{data:{value:s}}=e,{data:{value:a}}=t;return s-a}function to(e,t){let{data:{value:s}}=e,{data:{value:a}}=t;return a-s}function no(e,t){if(!e||e.length===0)return null;const[s]=e;return s[t]}function Ss(e,t,s){return t===void 0&&(t=e.left),s===void 0&&(s=e.top),{x:t+e.width*.5,y:s+e.height*.5}}const so=e=>{let{collisionRect:t,droppableRects:s,droppableContainers:a}=e;const r=Ss(t,t.left,t.top),i=[];for(const c of a){const{id:l}=c,u=s.get(l);if(u){const d=Zi(Ss(u),r);i.push({id:l,data:{droppableContainer:c,value:d}})}}return i.sort(eo)};function ao(e,t){const s=Math.max(t.top,e.top),a=Math.max(t.left,e.left),r=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),c=r-a,l=i-s;if(a<r&&s<i){const u=t.width*t.height,d=e.width*e.height,f=c*l,h=f/(u+d-f);return Number(h.toFixed(4))}return 0}const ro=e=>{let{collisionRect:t,droppableRects:s,droppableContainers:a}=e;const r=[];for(const i of a){const{id:c}=i,l=s.get(c);if(l){const u=ao(l,t);u>0&&r.push({id:c,data:{droppableContainer:i,value:u}})}}return r.sort(to)};function io(e,t,s){return{...e,scaleX:t&&s?t.width/s.width:1,scaleY:t&&s?t.height/s.height:1}}function da(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Ve}function oo(e){return function(s){for(var a=arguments.length,r=new Array(a>1?a-1:0),i=1;i<a;i++)r[i-1]=arguments[i];return r.reduce((c,l)=>
6({...c,top:c.top+e*l.y,bottom:c.bottom+e*l.y,left:c.left+e*l.x,right:c.right+e*l.x}),{...s})}}const lo=oo(1);function co(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function uo(e,t,s){const a=co(t);if(!a)return e;const{scaleX:r,scaleY:i,x:c,y:l}=a,u=e.left-c-(1-r)*parseFloat(s),d=e.top-l-(1-i)*parseFloat(s.slice(s.indexOf(" ")+1)),f=r?e.width/r:e.width,h=i?e.height/i:e.height;return{width:f,height:h,top:d,right:u+f,bottom:d+h,left:u}}const fo={ignoreTransform:!1};function wt(e,t){t===void 0&&(t=fo);let s=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:d,transformOrigin:f}=Le(e).getComputedStyle(e);d&&(s=uo(s,d,f))}const{top:a,left:r,width:i,height:c,bottom:l,right:u}=s;return{top:a,left:r,width:i,height:c,bottom:l,right:u}}function Ns(e){return wt(e,{ignoreTransform:!0})}function ho(e){const t=e.innerWidth,s=e.innerHeight;return{top:0,left:0,right:t,bottom:s,width:t,height:s}}function mo(e,t){return t===void 0&&(t=Le(e).getComputedStyle(e)),t.position==="fixed"}function go(e,t){t===void 0&&(t=Le(e).getComputedStyle(e));const s=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(r=>{const i=t[r];return typeof i=="string"?s.test(i):!1})}function An(e,t){const s=[];function a(r){if(t!=null&&s.length>=t||!r)return s;if(On(r)&&r.scrollingElement!=null&&!s.includes(r.scrollingElement))return s.push(r.scrollingElement),s;if(!Pt(r)||oa(r)||s.includes(r))return s;const i=Le(e).getComputedStyle(r);return r!==e&&go(r,i)&&s.push(r),mo(r,i)?s:a(r.parentNode)}return e?a(e):s}function ua(e){const[t]=An(e,1);return t??null}function gn(e){return!tn||!e?null:yt(e)?e:Mn(e)?On(e)||e===jt(e).scrollingElement?window:Pt(e)?e:null:null}function fa(e){return yt(e)?e.scrollX:e.scrollLeft}function ha(e){return yt(e)?e.scrollY:e.scrollTop}function Nn(e){return{x:fa(e),y:ha(e)}}var be;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(be||(be={}));function ma(e){return!tn||!e?!1:e===document.scrollingElement}function ga(e){const t={x:0,y:0},s=ma(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},a={x:e.scrollWidth-s.width,y:e.scrollHeight-s.height},r=e.scrollTop<=t.y,i=e.scrollLeft<=t.x,c=e.scrollTop>=a.y,l=e.scrollLeft>=a.x;return{isTop:r,isLeft:i,isBottom:c,isRight:l,maxScroll:a,minScroll:t}}const vo={x:.2,y:.2};function po(e,t,s,a,r){let{top:i,left:c,right:l,bottom:u}=s;a===void 0&&(a=10),r===void 0&&(r=vo);const{isTop:d,isBottom:f,isLeft:h,isRight:g}=ga(e),v={x:0,y:0},b={x:0,y:0},m={height:t.height*r.y,width:t.width*r.x};return!d&&i<=t.top+m.height?(v.y=be.Backward,b.y=a*Math.abs((t.top+m.height-i)/m.height)):!f&&u>=t.bottom-m.height&&(v.y=be.Forward,b.y=a*Math.abs((t.bottom-m.height-u)/m.height)),!g&&l>=t.right-m.width?(v.x=be.Forward,b.x=a*Math.abs((t.right-m.width-l)/m.width)):!h&&c<=t.left+m.width&&(v.x=be.Backward,b.x=a*Math.abs((t.left+m.width-c)/m.width)),{direction:v,speed:b}}function bo(e){if(e===document.scrollingElement){const{innerWidth:i,innerHeight:c}=window;return{top:0,left:0,right:i,bottom:c,width:i,height:c}}const{top:t,left:s,right:a,bottom:r}=e.getBoundingClientRect();return{top:t,left:s,right:a,bottom:r,width:e.clientWidth,height:e.clientHeight}}function va(e){return e.reduce((t,s)=>bt(t,Nn(s)),Ve)}function xo(e){return e.reduce((t,s)=>t+fa(s),0)}function yo(e){return e.reduce((t,s)=>t+ha(s),0)}function jo(e,t){if(t===void 0&&(t=wt),!e)return;const{top:s,left:a,bottom:r,right:i}=t(e);ua(e)&&(r<=0||i<=0||s>=window.innerHeight||a>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const wo=[["x",["left","right"],xo],["y",["top","bottom"],yo]];class zn{constructor(t,s){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const a=An(s),r=va(a);this.rect={...t},this.width=t.width,this.height=t.height;for(const[i,c,l]of wo)for(const u of c)Object.defineProperty(this,u,{get:()=>{const d=l(a),f=r[i]-d;return this.rect[u]+f},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Rt{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>
6{this.listeners.forEach(s=>{var a;return(a=this.target)==null?void 0:a.removeEventListener(...s)})},this.target=t}add(t,s,a){var r;(r=this.target)==null||r.addEventListener(t,s,a),this.listeners.push([t,s,a])}}function So(e){const{EventTarget:t}=Le(e);return e instanceof t?e:jt(e)}function vn(e,t){const s=Math.abs(e.x),a=Math.abs(e.y);return typeof t=="number"?Math.sqrt(s**2+a**2)>t:"x"in t&&"y"in t?s>t.x&&a>t.y:"x"in t?s>t.x:"y"in t?a>t.y:!1}var Fe;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(Fe||(Fe={}));function Cs(e){e.preventDefault()}function No(e){e.stopPropagation()}var q;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(q||(q={}));const pa={start:[q.Space,q.Enter],cancel:[q.Esc],end:[q.Space,q.Enter,q.Tab]},Co=(e,t)=>{let{currentCoordinates:s}=t;switch(e.code){case q.Right:return{...s,x:s.x+25};case q.Left:return{...s,x:s.x-25};case q.Down:return{...s,y:s.y+25};case q.Up:return{...s,y:s.y-25}}};class ba{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:s}}=t;this.props=t,this.listeners=new Rt(jt(s)),this.windowListeners=new Rt(Le(s)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(Fe.Resize,this.handleCancel),this.windowListeners.add(Fe.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(Fe.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:s}=this.props,a=t.node.current;a&&jo(a),s(Ve)}handleKeyDown(t){if(Pn(t)){const{active:s,context:a,options:r}=this.props,{keyboardCodes:i=pa,coordinateGetter:c=Co,scrollBehavior:l="smooth"}=r,{code:u}=t;if(i.end.includes(u)){this.handleEnd(t);return}if(i.cancel.includes(u)){this.handleCancel(t);return}const{collisionRect:d}=a.current,f=d?{x:d.left,y:d.top}:Ve;this.referenceCoordinates||(this.referenceCoordinates=f);const h=c(t,{active:s,context:a.current,currentCoordinates:f});if(h){const g=Kt(h,f),v={x:0,y:0},{scrollableAncestors:b}=a.current;for(const m of b){const p=t.code,{isTop:x,isRight:D,isLeft:y,isBottom:w,maxScroll:R,minScroll:T}=ga(m),N=bo(m),E={x:Math.min(p===q.Right?N.right-N.width/2:N.right,Math.max(p===q.Right?N.left:N.left+N.width/2,h.x)),y:Math.min(p===q.Down?N.bottom-N.height/2:N.bottom,Math.max(p===q.Down?N.top:N.top+N.height/2,h.y))},_=p===q.Right&&!D||p===q.Left&&!y,I=p===q.Down&&!w||p===q.Up&&!x;if(_&&E.x!==h.x){const C=m.scrollLeft+g.x,ne=p===q.Right&&C<=R.x||p===q.Left&&C>=T.x;if(ne&&!g.y){m.scrollTo({left:C,behavior:l});return}ne?v.x=m.scrollLeft-C:v.x=p===q.Right?m.scrollLeft-R.x:m.scrollLeft-T.x,v.x&&m.scrollBy({left:-v.x,behavior:l});break}else if(I&&E.y!==h.y){const C=m.scrollTop+g.y,ne=p===q.Down&&C<=R.y||p===q.Up&&C>=T.y;if(ne&&!g.x){m.scrollTo({top:C,behavior:l});return}ne?v.y=m.scrollTop-C:v.y=p===q.Down?m.scrollTop-R.y:m.scrollTop-T.y,v.y&&m.scrollBy({top:-v.y,behavior:l});break}}this.handleMove(t,bt(Kt(h,this.referenceCoordinates),v))}}}handleMove(t,s){const{onMove:a}=this.props;t.preventDefault(),a(s)}handleEnd(t){const{onEnd:s}=this.props;t.preventDefault(),this.detach(),s()}handleCancel(t){const{onCancel:s}=this.props;t.preventDefault(),this.detach(),s()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}ba.activators=[{eventName:"onKeyDown",handler:(e,t,s)=>{let{keyboardCodes:a=pa,onActivation:r}=t,{active:i}=s;const{code:c}=e.nativeEvent;if(a.start.includes(c)){const l=i.activatorNode.current;return l&&e.target!==l?!1:(e.preventDefault(),r==null||r({event:e.nativeEvent}),!0)}return!1}}];function Ds(e){return!!(e&&"distance"in e)}function Ts(e){return!!(e&&"delay"in e)}class $n{constructor(t,s,a){var r;a===void 0&&(a=So(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=s;const{event:i}=t,{target:c}=i;this.props=t,this.events=s,this.document=jt(c),this.documentListeners=new Rt(this.document),this.listeners=new Rt(a),this.windowListeners=new Rt(Le(c)),this.initialCoordinates=(r=Sn(i))!=null?r:Ve,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:s,bypassActivationConstraint:a}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(Fe.Resize,this.handleCancel),this.windowListeners.add(Fe.DragStart,Cs),this.windowListeners.add(Fe.VisibilityChange,this.handleCancel),this.windowListeners.add(Fe.ContextMenu,Cs),this.documentListeners.add(Fe.Keydown,this.handleKeydown),s){if(a!=null&&a({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(Ts(s)){this.timeoutId=setTimeout(this.handleStart,s.delay),this.handlePending(s);return}if(Ds(s)){this.handlePending(s);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,s){const{active:a,onPending:r}=this.props;r(a,t,this.initialCoordinates,s)}handleStart(){const{initialCoordinates:t}=this,{onStart:s}=this.props;t&&(this.activated=!0,this.documentListeners.add(Fe.Click,No,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(Fe.SelectionChange,this.removeTextSelection),s(t))}handleMove(t){var s;const{activated:a,initialCoordinates:r,props:i}=this,{onMove:c,options:{activationConstraint:l}}=i;if(!r)return;const u=(s=Sn(t))!=null?s:Ve,d=Kt(r,u);
6if(!a&&l){if(Ds(l)){if(l.tolerance!=null&&vn(d,l.tolerance))return this.handleCancel();if(vn(d,l.distance))return this.handleStart()}if(Ts(l)&&vn(d,l.tolerance))return this.handleCancel();this.handlePending(l,d);return}t.cancelable&&t.preventDefault(),c(u)}handleEnd(){const{onAbort:t,onEnd:s}=this.props;this.detach(),this.activated||t(this.props.active),s()}handleCancel(){const{onAbort:t,onCancel:s}=this.props;this.detach(),this.activated||t(this.props.active),s()}handleKeydown(t){t.code===q.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const Do={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class _n extends $n{constructor(t){const{event:s}=t,a=jt(s.target);super(t,Do,a)}}_n.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:s}=e,{onActivation:a}=t;return!s.isPrimary||s.button!==0?!1:(a==null||a({event:s}),!0)}}];const To={move:{name:"mousemove"},end:{name:"mouseup"}};var Cn;(function(e){e[e.RightClick=2]="RightClick"})(Cn||(Cn={}));class Ro extends $n{constructor(t){super(t,To,jt(t.event.target))}}Ro.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:s}=e,{onActivation:a}=t;return s.button===Cn.RightClick?!1:(a==null||a({event:s}),!0)}}];const pn={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class xa extends $n{constructor(t){super(t,pn)}static setup(){return window.addEventListener(pn.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(pn.move.name,t)};function t(){}}}xa.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:s}=e,{onActivation:a}=t;const{touches:r}=s;return r.length>1?!1:(a==null||a({event:s}),!0)}}];var kt;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(kt||(kt={}));var Qt;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(Qt||(Qt={}));function ko(e){let{acceleration:t,activator:s=kt.Pointer,canScroll:a,draggingRect:r,enabled:i,interval:c=5,order:l=Qt.TreeOrder,pointerCoordinates:u,scrollableAncestors:d,scrollableAncestorRects:f,delta:h,threshold:g}=e;const v=Eo({delta:h,disabled:!i}),[b,m]=_i(),p=o.useRef({x:0,y:0}),x=o.useRef({x:0,y:0}),D=o.useMemo(()=>{switch(s){case kt.Pointer:return u?{top:u.y,bottom:u.y,left:u.x,right:u.x}:null;case kt.DraggableRect:return r}},[s,r,u]),y=o.useRef(null),w=o.useCallback(()=>{const T=y.current;if(!T)return;const N=p.current.x*x.current.x,E=p.current.y*x.current.y;T.scrollBy(N,E)},[]),R=o.useMemo(()=>l===Qt.TreeOrder?[...d].reverse():d,[l,d]);o.useEffect(()=>{if(!i||!d.length||!D){m();return}for(const T of R){if((a==null?void 0:a(T))===!1)continue;const N=d.indexOf(T),E=f[N];if(!E)continue;const{direction:_,speed:I}=po(T,E,D,t,g);for(const C of["x","y"])v[C][_[C]]||(I[C]=0,_[C]=0);if(I.x>0||I.y>0){m(),y.current=T,b(w,c),p.current=I,x.current=_;return}}p.current={x:0,y:0},x.current={x:0,y:0},m()},[t,w,a,m,i,c,JSON.stringify(D),JSON.stringify(v),b,d,R,f,JSON.stringify(g)])}const Io={x:{[be.Backward]:!1,[be.Forward]:!1},y:{[be.Backward]:!1,[be.Forward]:!1}};function Eo(e){let{delta:t,disabled:s}=e;const a=wn(t);return At(r=>{if(s||!a||!r)return Io;const i={x:Math.sign(t.x-a.x),y:Math.sign(t.y-a.y)};return{x:{[be.Backward]:r.x[be.Backward]||i.x===-1,[be.Forward]:r.x[be.Forward]||i.x===1},y:{[be.Backward]:r.y[be.Backward]||i.y===-1,[be.Forward]:r.y[be.Forward]||i.y===1}}},[s,t,a])}function Mo(e,t){const s=t!=null?e.get(t):void 0,a=s?s.node.current:null;return At(r=>{var i;return t==null?null:(i=a??r)!=null?i:null},[a,t])}function Oo(e,t){return o.useMemo(()=>e.reduce((s,a)=>{const{sensor:r}=a,i=r.activators.map(c=>({eventName:c.eventName,handler:t(c.handler,a)}));return[...s,...i]},[]),[e,t])}var Ot;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(Ot||(Ot={}));var Dn;(function(e){e.Optimized="optimized"})(Dn||(Dn={}));const Rs=new Map;function Lo(e,t){let{dragging:s,dependencies:a,config:r}=t;const[i,c]=o.useState(null),{frequency:l,measure:u,strategy:d}=r,f=o.useRef(e),h=p(),g=Et(h),v=o.useCallback(function(x){x===void 0&&(x=[]),!g.current&&c(D=>D===null?x:D.concat(x.filter(y=>!D.includes(y))))},[g]),b=o.useRef(null),m=At(x=>{if(h&&!s)return Rs;if(!x||x===Rs||f.current!==e||i!=null){const D=new Map;for(let y of e){if(!y)continue;if(i&&i.length>0&&!i.includes(y.id)&&y.rect.current){D.set(y.id,y.rect.current);continue}const w=y.node.current,R=w?new zn(u(w),w):null;y.rect.current=R,R&&D.set(y.id,R)}return D}return x},[e,i,s,h,u]);return o.useEffect(()=>{f.current=e},[e]),o.useEffect(()=>{h||v()},[s,h]),o.useEffect(()=>{i&&i.length>0&&c(null)},[JSON.stringify(i)]),o.useEffect(()=>{h||typeof l!="number"||b.current!==null||(b.current=setTimeout(()=>{v(),b.current=null},l))},[l,h,v,...a]),{droppableRects:m,measureDroppableContainers:v,measuringScheduled:i!=null};function p(){switch(d){case Ot.Always:return!1;case Ot.BeforeDragging:return s;default:return!s}}}function ya(e,t){return At(s=>e?s||(typeof t=="function"?t(e):e):null,[t,e])}function Po(e,t){return ya(e,t)}function Ao(e){let{callback:t,disabled:s}=e;const a=Ln(t),r=o.useMemo(()=>
6{if(s||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:i}=window;return new i(a)},[a,s]);return o.useEffect(()=>()=>r==null?void 0:r.disconnect(),[r]),r}function nn(e){let{callback:t,disabled:s}=e;const a=Ln(t),r=o.useMemo(()=>{if(s||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:i}=window;return new i(a)},[s]);return o.useEffect(()=>()=>r==null?void 0:r.disconnect(),[r]),r}function zo(e){return new zn(wt(e),e)}function ks(e,t,s){t===void 0&&(t=zo);const[a,r]=o.useState(null);function i(){r(u=>{if(!e)return null;if(e.isConnected===!1){var d;return(d=u??s)!=null?d:null}const f=t(e);return JSON.stringify(u)===JSON.stringify(f)?u:f})}const c=Ao({callback(u){if(e)for(const d of u){const{type:f,target:h}=d;if(f==="childList"&&h instanceof HTMLElement&&h.contains(e)){i();break}}}}),l=nn({callback:i});return Xe(()=>{i(),e?(l==null||l.observe(e),c==null||c.observe(document.body,{childList:!0,subtree:!0})):(l==null||l.disconnect(),c==null||c.disconnect())},[e]),a}function $o(e){const t=ya(e);return da(e,t)}const Is=[];function _o(e){const t=o.useRef(e),s=At(a=>e?a&&a!==Is&&e&&t.current&&e.parentNode===t.current.parentNode?a:An(e):Is,[e]);return o.useEffect(()=>{t.current=e},[e]),s}function Fo(e){const[t,s]=o.useState(null),a=o.useRef(e),r=o.useCallback(i=>{const c=gn(i.target);c&&s(l=>l?(l.set(c,Nn(c)),new Map(l)):null)},[]);return o.useEffect(()=>{const i=a.current;if(e!==i){c(i);const l=e.map(u=>{const d=gn(u);return d?(d.addEventListener("scroll",r,{passive:!0}),[d,Nn(d)]):null}).filter(u=>u!=null);s(l.length?new Map(l):null),a.current=e}return()=>{c(e),c(i)};function c(l){l.forEach(u=>{const d=gn(u);d==null||d.removeEventListener("scroll",r)})}},[r,e]),o.useMemo(()=>e.length?t?Array.from(t.values()).reduce((i,c)=>bt(i,c),Ve):va(e):Ve,[e,t])}function Es(e,t){t===void 0&&(t=[]);const s=o.useRef(null);return o.useEffect(()=>{s.current=null},t),o.useEffect(()=>{const a=e!==Ve;a&&!s.current&&(s.current=e),!a&&s.current&&(s.current=null)},[e]),s.current?Kt(e,s.current):Ve}function Bo(e){o.useEffect(()=>{if(!tn)return;const t=e.map(s=>{let{sensor:a}=s;return a.setup==null?void 0:a.setup()});return()=>{for(const s of t)s==null||s()}},e.map(t=>{let{sensor:s}=t;return s}))}function Ho(e,t){return o.useMemo(()=>e.reduce((s,a)=>{let{eventName:r,handler:i}=a;return s[r]=c=>{i(c,t)},s},{}),[e,t])}function ja(e){return o.useMemo(()=>e?ho(e):null,[e])}const Ms=[];function Wo(e,t){t===void 0&&(t=wt);const[s]=e,a=ja(s?Le(s):null),[r,i]=o.useState(Ms);function c(){i(()=>e.length?e.map(u=>ma(u)?a:new zn(t(u),u)):Ms)}const l=nn({callback:c});return Xe(()=>{l==null||l.disconnect(),c(),e.forEach(u=>l==null?void 0:l.observe(u))},[e]),r}function Uo(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Pt(t)?t:e}function Vo(e){let{measure:t}=e;const[s,a]=o.useState(null),r=o.useCallback(d=>{for(const{target:f}of d)if(Pt(f)){a(h=>{const g=t(f);return h?{...h,width:g.width,height:g.height}:g});break}},[t]),i=nn({callback:r}),c=o.useCallback(d=>{const f=Uo(d);i==null||i.disconnect(),f&&(i==null||i.observe(f)),a(f?t(f):null)},[t,i]),[l,u]=Yt(c);return o.useMemo(()=>({nodeRef:l,rect:s,setRef:u}),[s,l,u])}const qo=[{sensor:_n,options:{}},{sensor:ba,options:{}}],Go={current:{}},qt={draggable:{measure:Ns},droppable:{measure:Ns,strategy:Ot.WhileDragging,frequency:Dn.Optimized},dragOverlay:{measure:wt}};class It extends Map{get(t){var s;return t!=null&&(s=super.get(t))!=null?s:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:s}=t;return!s})}getNodeFor(t){var s,a;return(s=(a=this.get(t))==null?void 0:a.node.current)!=null?s:void 0}}const Xo={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new It,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:Jt},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:qt,measureDroppableContainers:Jt,windowRect:null,measuringScheduled:!1},Yo={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:Jt,draggableNodes:new Map,over:null,measureDroppableContainers:Jt},sn=o.createContext(Yo),wa=o.createContext(Xo);function Ko(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new It}}}function Jo(e,t){switch(t.type){case he.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case he.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case he.DragEnd:case he.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case he.RegisterDroppable:{const{element:s}=t,{id:a}
6=s,r=new It(e.droppable.containers);return r.set(a,s),{...e,droppable:{...e.droppable,containers:r}}}case he.SetDroppableDisabled:{const{id:s,key:a,disabled:r}=t,i=e.droppable.containers.get(s);if(!i||a!==i.key)return e;const c=new It(e.droppable.containers);return c.set(s,{...i,disabled:r}),{...e,droppable:{...e.droppable,containers:c}}}case he.UnregisterDroppable:{const{id:s,key:a}=t,r=e.droppable.containers.get(s);if(!r||a!==r.key)return e;const i=new It(e.droppable.containers);return i.delete(s),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function Qo(e){let{disabled:t}=e;const{active:s,activatorEvent:a,draggableNodes:r}=o.useContext(sn),i=wn(a),c=wn(s==null?void 0:s.id);return o.useEffect(()=>{if(!t&&!a&&i&&c!=null){if(!Pn(i)||document.activeElement===i.target)return;const l=r.get(c);if(!l)return;const{activatorNode:u,node:d}=l;if(!u.current&&!d.current)return;requestAnimationFrame(()=>{for(const f of[u.current,d.current]){if(!f)continue;const h=Hi(f);if(h){h.focus();break}}})}},[a,t,r,c,i]),null}function Zo(e,t){let{transform:s,...a}=t;return e!=null&&e.length?e.reduce((r,i)=>i({transform:r,...a}),s):s}function el(e){return o.useMemo(()=>({draggable:{...qt.draggable,...e==null?void 0:e.draggable},droppable:{...qt.droppable,...e==null?void 0:e.droppable},dragOverlay:{...qt.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function tl(e){let{activeNode:t,measure:s,initialRect:a,config:r=!0}=e;const i=o.useRef(!1),{x:c,y:l}=typeof r=="boolean"?{x:r,y:r}:r;Xe(()=>{if(!c&&!l||!t){i.current=!1;return}if(i.current||!a)return;const d=t==null?void 0:t.node.current;if(!d||d.isConnected===!1)return;const f=s(d),h=da(f,a);if(c||(h.x=0),l||(h.y=0),i.current=!0,Math.abs(h.x)>0||Math.abs(h.y)>0){const g=ua(d);g&&g.scrollBy({top:h.y,left:h.x})}},[t,c,l,a,s])}const Sa=o.createContext({...Ve,scaleX:1,scaleY:1});var rt;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(rt||(rt={}));const nl=o.memo(function(t){var s,a,r,i;let{id:c,accessibility:l,autoScroll:u=!0,children:d,sensors:f=qo,collisionDetection:h=ro,measuring:g,modifiers:v,...b}=t;const m=o.useReducer(Jo,void 0,Ko),[p,x]=m,[D,y]=Xi(),[w,R]=o.useState(rt.Uninitialized),T=w===rt.Initialized,{draggable:{active:N,nodes:E,translate:_},droppable:{containers:I}}=p,C=N!=null?E.get(N):null,ne=o.useRef({initial:null,translated:null}),se=o.useMemo(()=>{var ue;return N!=null?{id:N,data:(ue=C==null?void 0:C.data)!=null?ue:Go,rect:ne}:null},[N,C]),Q=o.useRef(null),[je,me]=o.useState(null),[k,we]=o.useState(null),X=Et(b,Object.values(b)),F=zt("DndDescribedBy",c),Z=o.useMemo(()=>I.getEnabled(),[I]),W=el(g),{droppableRects:O,measureDroppableContainers:fe,measuringScheduled:ge}=Lo(Z,{dragging:T,dependencies:[_.x,_.y],config:W.droppable}),Y=Mo(E,N),U=o.useMemo(()=>k?Sn(k):null,[k]),ve=Ft(),Ne=Po(Y,W.draggable.measure);tl({activeNode:N!=null?E.get(N):null,config:ve.layoutShiftCompensation,initialRect:Ne,measure:W.draggable.measure});const z=ks(Y,W.draggable.measure,Ne),P=ks(Y?Y.parentElement:null),ee=o.useRef({activatorEvent:null,active:null,activeNode:Y,collisionRect:null,collisions:null,droppableRects:O,draggableNodes:E,draggingNode:null,draggingNodeRect:null,droppableContainers:I,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),Ce=I.getNodeFor((s=ee.current.over)==null?void 0:s.id),ae=Vo({measure:W.dragOverlay.measure}),re=(a=ae.nodeRef.current)!=null?a:Y,Te=T?(r=ae.rect)!=null?r:z:null,qe=!!(ae.nodeRef.current&&ae.rect),pe=$o(qe?null:z),Re=ja(re?Le(re):null),ke=_o(T?Ce??Y:null),Ye=Wo(ke),Ke=Zo(v,{transform:{x:_.x-pe.x,y:_.y-pe.y,scaleX:1,scaleY:1},activatorEvent:k,active:se,activeNodeRect:z,containerNodeRect:P,draggingNodeRect:Te,over:ee.current.over,overlayNodeRect:ae.rect,scrollableAncestors:ke,scrollableAncestorRects:Ye,windowRect:Re}),S=U?bt(U,_):null,L=Fo(ke),oe=Es(L),K=Es(L,[z]),ie=bt(Ke,oe),ze=Te?lo(Te,Ke):null,$=se&&ze?h({active:se,collisionRect:ze,droppableRects:O,droppableContainers:Z,pointerCoordinates:S}):null,ce=no($,"id"),[de,Be]=o.useState(null),tt=qe?Ke:bt(Ke,K),$e=io(tt,(i=de==null?void 0:de.rect)!=null?i:null,z),He=o.useRef(null),dt=o.useCallback((ue,xe)=>{let{sensor:De,options:Ge}=xe;if(Q.current==null)return;const Se=E.get(Q.current);if(!Se)return;const ye=ue.nativeEvent,Pe=new De({active:Q.current,activeNode:Se,event:ye,options:Ge,context:ee,onAbort(J){if(!E.get(J))return;const{onDragAbort:Ie}=X.current,_e={id:J};Ie==null||Ie(_e),D({type:"onDragAbort",event:_e})},onPending(J,We,Ie,_e){if(!E.get(J))return;const{onDragPending:nt}=X.current,Ee={id:J,constraint:We,initialCoordinates:Ie,offset:_e};nt==null||nt(Ee),D({type:"onDragPending",event:Ee})},onStart(J){const We=Q.current;if(We==null)return;const Ie=E.get(We);if(!Ie)return;const{onDragStart:_e}=X.current,Ue={activatorEvent:ye,active:{id:We,data:Ie.data,rect:ne}};Tt.unstable_batchedUpdates(()=>{_e==null||_e(Ue),R(rt.Initializing),x({type:he.DragStart,initialCoordinates:J,active:We}),D({type:"onDragStart",event:Ue}),me(He.current),we(ye)})},onMove(J){x({type:he.DragMove,coordinates:J})},onEnd:Je(he.DragEnd),onCancel:Je(he.DragCancel)});He.current=Pe;function Je(J){return async function(){const{active:Ie,collisions:_e,over:Ue,scrollAdjustedTranslate:nt}=ee.current;let Ee=null;if(Ie&&nt){const{cancelDrop:Qe}=X.current;Ee={activatorEvent:ye,active:Ie,collisions:_e,delta:nt,over:Ue},J===he.DragEnd&&typeof Qe=="function"&&await Promise.resolve(Qe(Ee))&&(J=he.DragCancel)}Q.current=null,Tt.unstable_batchedUpdates(()=>{x({type:J}),R(rt.Uninitialized),Be(null),me(null),we(null),He.current=null;const Qe=J===he.DragEnd?"onDragEnd":"onDragCancel";if(Ee){const ut=X.current[Qe];ut==null||ut(Ee),D({type:Qe,event:Ee})}})}}},[E]),St=o.useCallback((ue,xe)=>(De,Ge)=>{const Se=De.nativeEvent,ye=E.get(Ge);if(Q.current!==null||!ye||Se.dndKit||Se.defaultPrevented)return;const Pe={active:ye};ue(De,xe.options,Pe)===!0&&(Se.dndKit={capturedBy:xe.sensor},Q.current=Ge,dt(De,xe))},[E,dt]),$t=Oo(f,St);Bo(f),Xe(()=>{z&&w===rt.Initializing&&R(rt.Initialized)},[z,w]),o.useEffect(()=>{const{onDragMove:ue}=X.current,{active:xe,activatorEvent:De,collisions:Ge,over:Se}=ee.current;if(!xe||!De)return;const ye={active:xe,activatorEvent:De,collisions:Ge,delta:{x:ie.x,y:ie.y},over:Se};Tt.unstable_batchedUpdates(()=>{ue==null||ue(ye),D({type:"onDragMove",event:ye})})},[ie.x,ie.y]),o.useEffect(()=>{const{active:ue,activatorEvent:xe,collisions:De,droppableContainers:Ge,scrollAdjustedTranslate:Se}=ee.current;if(!ue||Q.current==null||!xe||!Se)return;const{onDragOver:ye}=X.current,Pe=Ge.get(ce),Je=Pe&&Pe.rect.current?{id:Pe.id,rect:Pe.rect.current,data:Pe.data,disabled:Pe.disabled}:null,J={active:ue,activatorEvent:xe,collisions:De,delta:{x:Se.x,y:Se.y},over:Je};Tt.unstable_batchedUpdates(()=>{Be(Je),ye==null||ye(J),D({type:"onDragOver",event:J})})},[ce]),Xe(()=>{ee.current={activatorEvent:k,active:se,activeNode:Y,collisionRect:ze,collisions:$,droppableRects:O,draggableNodes:E,draggingNode:re,draggingNodeRect:Te,droppableContainers:I,over:de,scrollableAncestors:ke,scrollAdjustedTranslate:ie},ne.current={initial:Te,translated:ze}},[se,Y,$,ze,E,re,Te,O,I,de,ke,ie]),ko({...ve,delta:_,draggingRect:ze,pointerCoordinates:S,scrollableAncestors:ke,scrollableAncestorRects:Ye});const _t=o.useMemo(()=>({active:se,activeNode:Y,activeNodeRect:z,activatorEvent:k,collisions:$,containerNodeRect:P,dragOverlay:ae,draggableNodes:E,droppableContainers:I,droppableRects:O,over:de,measureDroppableContainers:fe,scrollableAncestors:ke,scrollableAncestorRects:Ye,measuringConfiguration:W,measuringScheduled:ge,windowRect:Re}),[se,Y,z,k,$,P,ae,E,I,O,de,fe,ke,Ye,W,ge,Re]),an=o.useMemo(()=>({activatorEvent:k,activators:$t,active:se,activeNodeRect:z,ariaDescribedById:{draggable:F},dispatch:x,draggableNodes:E,over:de,measureDroppableContainers:fe}),[k,$t,se,z,x,F,E,de,fe]);return Oe.createElement(ca.Provider,{value:y},Oe.createElement(sn.Provider,{value:an},Oe.createElement(wa.Provider,{value:_t},Oe.createElement(Sa.Provider,{value:$e},d)),Oe.createElement(Qo,{disabled:(l==null?void 0:l.restoreFocus)===!1})),Oe.createElement(Ji,{...l,hiddenTextDescribedById:F}));function Ft(){const ue=(je==null?void 0:je.autoScrollEnabled)===!1,xe=typeof u=="object"?u.enabled===!1:u===!1,De=T&&!ue&&!xe;return typeof u=="object"?{...u,enabled:De}:{enabled:De}}}),sl=o.createContext(null),Os="button",al="Draggable";function rl(e){let{id:t,data:s,disabled:a=!1,attributes:r}=e;const i=zt(al),{activators:c,activatorEvent:l,active:u,activeNodeRect:d,ariaDescribedById:f,draggableNodes:h,over:g}=o.useContext(sn),{role:v=Os,roleDescription:b="draggable",tabIndex:m=0}=r??{},p=(u==null?void 0:u.id)===t,x=o.useContext(p?Sa:sl),[D,y]=Yt(),[w,R]=Yt(),T=Ho(c,t),N=Et(s);Xe(()=>(h.set(t,{id:t,key:i,node:D,activatorNode:w,data:N}),()=>{const _=h.get(t);_&&_.key===i&&h.delete(t)}),[h,t]);const E=o.useMemo(()=>({role:v,tabIndex:m,"aria-disabled":a,"aria-pressed":p&&v===Os?!0:void 0,"aria-roledescription":b,"aria-describedby":f.draggable}),[a,v,m,p,b,f.draggable]);return{active:u,activatorEvent:l,activeNodeRect:d,attributes:E,isDragging:p,listeners:a?void 0:T,node:D,over:g,setNodeRef:y,setActivatorNodeRef:R,transform:x}}function il(){return o.useContext(wa)}const ol="Droppable",ll={timeout:25};function cl(e){let{data:t,disabled:s=!1,id:a,resizeObserverConfig:r}=e;const i=zt(ol),{active:c,dispatch:l,over:u,measureDroppableContainers:d}=o.useContext(sn),f=o.useRef({disabled:s}),h=o.useRef(!1),g=o.useRef(null),v=o.useRef(null),{disabled:b,updateMeasurementsFor:m,timeout:p}={...ll,...r},x=Et(m??a),D=o.useCallback(()=>
6{if(!h.current){h.current=!0;return}v.current!=null&&clearTimeout(v.current),v.current=setTimeout(()=>{d(Array.isArray(x.current)?x.current:[x.current]),v.current=null},p)},[p]),y=nn({callback:D,disabled:b||!c}),w=o.useCallback((E,_)=>{y&&(_&&(y.unobserve(_),h.current=!1),E&&y.observe(E))},[y]),[R,T]=Yt(w),N=Et(t);return o.useEffect(()=>{!y||!R.current||(y.disconnect(),h.current=!1,y.observe(R.current))},[R,y]),o.useEffect(()=>(l({type:he.RegisterDroppable,element:{id:a,key:i,disabled:s,node:R,rect:g,data:N}}),()=>l({type:he.UnregisterDroppable,key:i,id:a})),[a]),o.useEffect(()=>{s!==f.current.disabled&&(l({type:he.SetDroppableDisabled,id:a,key:i,disabled:s}),f.current.disabled=s)},[a,i,s,l]),{active:c,rect:g,isOver:(u==null?void 0:u.id)===a,node:R,over:u,setNodeRef:T}}function Fn(e,t,s){const a=e.slice();return a.splice(s<0?a.length+s:s,0,a.splice(t,1)[0]),a}function dl(e,t){return e.reduce((s,a,r)=>{const i=t.get(a);return i&&(s[r]=i),s},Array(e.length))}function Ut(e){return e!==null&&e>=0}function ul(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let s=0;s<e.length;s++)if(e[s]!==t[s])return!1;return!0}function fl(e){return typeof e=="boolean"?{draggable:e,droppable:e}:e}const Na=e=>{let{rects:t,activeIndex:s,overIndex:a,index:r}=e;const i=Fn(t,a,s),c=t[r],l=i[r];return!l||!c?null:{x:l.left-c.left,y:l.top-c.top,scaleX:l.width/c.width,scaleY:l.height/c.height}},Vt={scaleX:1,scaleY:1},hl=e=>{var t;let{activeIndex:s,activeNodeRect:a,index:r,rects:i,overIndex:c}=e;const l=(t=i[s])!=null?t:a;if(!l)return null;if(r===s){const d=i[c];return d?{x:0,y:s<c?d.top+d.height-(l.top+l.height):d.top-l.top,...Vt}:null}const u=ml(i,r,s);return r>s&&r<=c?{x:0,y:-l.height-u,...Vt}:r<s&&r>=c?{x:0,y:l.height+u,...Vt}:{x:0,y:0,...Vt}};function ml(e,t,s){const a=e[t],r=e[t-1],i=e[t+1];return a?s<t?r?a.top-(r.top+r.height):i?i.top-(a.top+a.height):0:i?i.top-(a.top+a.height):r?a.top-(r.top+r.height):0:0}const Ca="Sortable",Da=Oe.createContext({activeIndex:-1,containerId:Ca,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:Na,disabled:{draggable:!1,droppable:!1}});function gl(e){let{children:t,id:s,items:a,strategy:r=Na,disabled:i=!1}=e;const{active:c,dragOverlay:l,droppableRects:u,over:d,measureDroppableContainers:f}=il(),h=zt(Ca,s),g=l.rect!==null,v=o.useMemo(()=>a.map(T=>typeof T=="object"&&"id"in T?T.id:T),[a]),b=c!=null,m=c?v.indexOf(c.id):-1,p=d?v.indexOf(d.id):-1,x=o.useRef(v),D=!ul(v,x.current),y=p!==-1&&m===-1||D,w=fl(i);Xe(()=>{D&&b&&f(v)},[D,v,b,f]),o.useEffect(()=>{x.current=v},[v]);const R=o.useMemo(()=>({activeIndex:m,containerId:h,disabled:w,disableTransforms:y,items:v,overIndex:p,useDragOverlay:g,sortedRects:dl(v,u),strategy:r}),[m,h,w.draggable,w.droppable,y,v,p,u,g,r]);return Oe.createElement(Da.Provider,{value:R},t)}const vl=e=>{let{id:t,items:s,activeIndex:a,overIndex:r}=e;return Fn(s,a,r).indexOf(t)},pl=e=>{let{containerId:t,isSorting:s,wasDragging:a,index:r,items:i,newIndex:c,previousItems:l,previousContainerId:u,transition:d}=e;return!d||!a||l!==i&&r===c?!1:s?!0:c!==r&&t===u},bl={duration:200,easing:"ease"},Ta="transform",xl=Mt.Transition.toString({property:Ta,duration:0,easing:"linear"}),yl={roleDescription:"sortable"};function jl(e){let{disabled:t,index:s,node:a,rect:r}=e;const[i,c]=o.useState(null),l=o.useRef(s);return Xe(()=>{if(!t&&s!==l.current&&a.current){const u=r.current;if(u){const d=wt(a.current,{ignoreTransform:!0}),f={x:u.left-d.left,y:u.top-d.top,scaleX:u.width/d.width,scaleY:u.height/d.height};(f.x||f.y)&&c(f)}}s!==l.current&&(l.current=s)},[t,s,a,r]),o.useEffect(()=>{i&&c(null)},[i]),i}function wl(e){let{animateLayoutChanges:t=pl,attributes:s,disabled:a,data:r,getNewIndex:i=vl,id:c,strategy:l,resizeObserverConfig:u,transition:d=bl}=e;const{items:f,containerId:h,activeIndex:g,disabled:v,disableTransforms:b,sortedRects:m,overIndex:p,useDragOverlay:x,strategy:D}=o.useContext(Da),y=Sl(a,v),w=f.indexOf(c),R=o.useMemo(()=>({sortable:{containerId:h,index:w,items:f},...r}),[h,r,w,f]),T=o.useMemo(()=>f.slice(f.indexOf(c)),[f,c]),{rect:N,node:E,isOver:_,setNodeRef:I}=cl({id:c,data:R,disabled:y.droppable,resizeObserverConfig:{updateMeasurementsFor:T,...u}}),{active:C,activatorEvent:ne,activeNodeRect:se,attributes:Q,setNodeRef:je,listeners:me,isDragging:k,over:we,setActivatorNodeRef:X,transform:F}=rl({id:c,data:R,attributes:{...yl,...s},disabled:y.draggable}),Z=$i(I,je),W=!!C,O=W&&!b&&Ut(g)&&Ut(p),fe=!x&&k,ge=fe&&O?F:null,U=O?ge??(l??D)({rects:m,activeNodeRect:se,activeIndex:g,overIndex:p,index:w}):null,ve=Ut(g)&&Ut(p)?i({id:c,items:f,activeIndex:g,overIndex:p}):w,Ne=C==null?void 0:C.id,z=o.useRef({activeId:Ne,items:f,newIndex:ve,containerId:h}),P=f!==z.current.items,ee=t({active:C,containerId:h,isDragging:k,isSorting:W,id:c,index:w,items:f,newIndex:z.current.newIndex,previousItems:z.current.items,previousContainerId:z.current.containerId,transition:d,wasDragging:z.current.activeId!=null}),Ce=jl({disabled:!ee,index:w,node:E,rect:N});return o.useEffect(()=>{W&&z.current.newIndex!==ve&&(z.current.newIndex=ve),h!==z.current.containerId&&(z.current.containerId=h),f!==z.current.items&&(z.current.items=f)},[W,ve,h,f]),o.useEffect(()=>{if(Ne===z.current.activeId)return;if(Ne!=null&&z.current.activeId==null){z.current.activeId=Ne;return}const re=setTimeout(()=>{z.current.activeId=Ne},50);return()=>clearTimeout(re)},[Ne]),{active:C,activeIndex:g,attributes:Q,data:R,rect:N,index:w,newIndex:ve,items:f,isOver:_,isSorting:W,isDragging:k,listeners:me,node:E,overIndex:p,over:we,setNodeRef:Z,setA
6ctivatorNodeRef:X,setDroppableNodeRef:I,setDraggableNodeRef:je,transform:Ce??U,transition:ae()};function ae(){if(Ce||P&&z.current.newIndex===w)return xl;if(!(fe&&!Pn(ne)||!d)&&(W||ee))return Mt.Transition.toString({...d,property:Ta})}}function Sl(e,t){var s,a;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(s=e==null?void 0:e.draggable)!=null?s:t.draggable,droppable:(a=e==null?void 0:e.droppable)!=null?a:t.droppable}}q.Down,q.Right,q.Up,q.Left;function Nl({uid:e,surfer:t}){const{attributes:s,listeners:a,setNodeRef:r,transform:i,transition:c,isDragging:l}=wl({id:e});return n.jsxs("div",{ref:r,className:"priority-modal-item",style:{transform:Mt.Transform.toString(i),transition:c,opacity:l?.5:1},children:[n.jsx("div",{className:"priority-modal-handle",...s,...a,children:n.jsx(br,{size:18})}),(t==null?void 0:t.jerseyColor)&&n.jsx("span",{className:"priority-modal-jersey",style:{background:Hs(t.jerseyColor)}}),(t==null?void 0:t.jerseyNumber)&&n.jsx("span",{className:"priority-modal-number",children:t.jerseyNumber}),n.jsx("span",{className:"priority-modal-name",children:t?`${t.name||""} ${t.surname||""}`.trim():e})]})}function Cl({surfers:e,priorityOrder:t,onSave:s,onHide:a}){const{t:r}=le(),i=Object.keys(e||{}),c=[...t.filter(h=>i.includes(h)),...i.filter(h=>!t.includes(h))],[l,u]=o.useState(c),d=Qi(ws(_n),ws(xa,{activationConstraint:{delay:250,tolerance:5}})),f=({active:h,over:g})=>{g&&h.id!==g.id&&u(v=>{const b=v.indexOf(h.id),m=v.indexOf(g.id);return Fn(v,b,m)})};return n.jsxs(n.Fragment,{children:[n.jsx(H.Header,{closeButton:!0,className:"modal-gold-header",children:n.jsx(H.Title,{children:r("training.priorityOrder")})}),n.jsxs(H.Body,{children:[n.jsx("p",{className:"priority-modal-hint",children:r("training.priorityModalHint")}),n.jsx(nl,{sensors:d,collisionDetection:so,onDragEnd:f,children:n.jsx(gl,{items:l,strategy:hl,children:l.map((h,g)=>n.jsxs("div",{className:"priority-modal-row",children:[n.jsx("span",{className:"priority-modal-pos",children:g+1}),n.jsx(Nl,{uid:h,surfer:e==null?void 0:e[h]})]},h))})})]}),n.jsxs(H.Footer,{children:[n.jsx(B,{variant:"outline-secondary",size:"sm",onClick:a,children:r("modal.cancel")}),n.jsx(B,{variant:"primary",size:"sm",onClick:()=>{s(l),a()},children:r("modal.save")})]})]})}function Dl({show:e,onHide:t,surfers:s,priorityOrder:a,onSave:r}){return n.jsx(H,{show:e,onHide:t,centered:!0,children:e&&n.jsx(Cl,{surfers:s,priorityOrder:a,onSave:r,onHide:t})})}const Tl=e=>{const{id:t}=xr();return n.jsx(Rl,{...e,trainingId:t},t)},Rl=e=>{var Zn;const{trainingId:t}=e,s=Rn(),[a,r]=yr(),i=a.get("heat"),c=a.get("surfer"),[l,u]=o.useState(!1),[d,f]=o.useState(!1),[h,g]=o.useState(Date.now()),v=o.useRef(0);o.useEffect(()=>{const j=setInterval(()=>g(Date.now()),1e3);return()=>clearInterval(j)},[]);const b=o.useRef(!1),[m,p]=o.useState(""),[x,D]=o.useState(!0),[y,w]=o.useState(!1),[R,T]=o.useState(!1),[N,E]=o.useState(null),[_,I]=o.useState(!1),[C,ne]=o.useState(null),[se,Q]=o.useState(!1),[je,me]=o.useState([]),[k,we]=o.useState([]),[X,F]=o.useState([]),[Z,W]=o.useState(!1),[O,fe]=o.useState([]),[ge,Y]=o.useState(!1),[U]=o.useState(e.firebase.currentSurferData().uid),[ve]=o.useState(e.firebase.currentSurferData().role),[Ne]=o.useState(e.firebase.currentSurferData().subscription),{tier:z}=Zt(),P=z==="free",[ee,Ce]=o.useState(!1),[ae,re]=o.useState("heats"),[Te]=o.useState(e.firebase.heatLimit),[qe]=o.useState(e.firebase.messageLimit),{t:pe}=le(),[Re,ke]=o.useState(!1),[Ye,Ke]=o.useState(null),[S,L]=o.useState(null),[oe,K]=o.useState(null),[ie,ze]=o.useState(null),[$,ce]=o.useState(!1),[de,Be]=o.useState(!1),tt=o.useRef(!1),$e=o.useRef(null),He=o.useRef(null),[dt,St]=o.useState(!1),[$t,_t]=o.useState(null),[an,Ft]=o.useState([]),[ue,xe]=o.useState({}),[De,Ge]=o.useState([]),[Se,ye]=o.useState({}),[Pe,Je]=o.useState(!1),J=o.useRef(0),[We,Ie]=o.useState(5),[_e,Ue]=o.useState(""),[nt,Ee]=o.useState(""),[Qe,ut]=o.useState(.1),[Bn,Il]=o.useState(!!e.firebase.currentSurferData().useImperial),[Nt,Hn]=o.useState([]),[Wn,rn]=o.useState(""),[Bt,on]=o.useState(""),Ra=e.firebase.heats(),ka=e.firebase.waves();e.firebase.scores();const Ia=e.firebase.messages(),Un=l&&!!N&&N===as(X,i)&&ie===N.key,Ze=Un&&!$&&!Re&&!de;o.useEffect(()=>{b.current=!0,Pa();const j=it(mt(Ra,vt("trainingId"),gt(t)),Oa),M=it(mt(ka,vt("trainingId"),gt(t)),V=>{const Ae=V.val();if(Ae){const Me=Object.keys(Ae).map(st=>Ae[st]).sort(Tr);me(Me)}else me([])}),A=it(mt(Ia,vt("trainingId"),gt(t)),La);return()=>{b.current=!1,v.current+=1,j(),M(),A()}},[]),o.useEffect(()=>{Aa()},[X,i,c,k.surfers,l,Re,$,de]),o.useEffect(()=>{za()},[$]),o.useEffect(()=>{if(!C){Ft([]);return}const j=it(e.firebase.quiverItems(C.uid),M=>{const A=M.val();Ft(A?Object.keys(A).map(V=>({id:V,...A[V]})):[])});return()=>j()},[C==null?void 0:C.uid]),o.useEffect(()=>{if(!k.author)return;const j=it(e.firebase.objectives(k.author),M=>{const A=M.val();Ge(A?Object.keys(A).map(V=>({id:V,...A[V]})):[])});return()=>j()},[k.author]),o.useEffect(()=>{if(!C||!N){on("");return}on((N.heat.summaries||{})[C.uid]||"")},[C==null?void 0:C.uid,N]),o.useEffect(()=>()=>{J.current+=1},[t,i,c]);const Ea=j=>{!Ze||(C==null?void 0:C.heatId)!==ie||(xe(M=>({...M,[C.uid]:j})),ce(!0))},Ma=(j,M)=>{!Ze||(C==null?void 0:C.heatId)!==ie||(ye(A=>({...A,[j]:M})),ce(!0))},Oa=()=>{ln(t)},La=()=>{Xn(t)},Pa=()=>{const j={trainingId:t,surferRole:ve};e.firebase.cloud("getTrainingById")(j).then(A=>{if(!b.current)return;const V=A.data;V?(we(V),V.scoreStep&&ut(V.scoreStep)):s(ts)}),D(!1)},ln=j=>{if(j){const M=++v.current;return e.firebase.cloud("getHeats")({trainingId:j}).then(V=>{!b.current||M!==v.current||(F(V.data||[]),u(!0))})}},Aa=()=>{var A;if(!l||Re||$||de)return;const j=as(X,i);if(i&&!X.some(V=>V.key===i)){f(!0);const V=new URLSearchParams(a);V.delete("heat"),V.delete("surfer"),r(V,{replace:!0})}E(j),I(!!j),ze((j==null?void 0:j.key)||null),w(at(j)),L((j==null?void 0:j.heat.startTime)||null),K((j==null?void 0:j.heat.endTime)||null),Ke((j==null?void 0:j.heat.created)||null),T(!j||!!j.heat.finished||!!j.heat.endTime&&j.heat.endTime<=Date.now()),xe((j==null?void 0:j.heat.boards)||{}),ye((j==null?void 0:j.heat.objectives)||{}),fe((j==null?void 0:j.heat.priorityOrder)||[]);const M=j&&((A=k.surfers)==null?void 0:A[c]);ne(M?{data:M,uid:c,heatId:j.key}:null),Q(!!M),Y(!1)},cn=(j,M=null)=>{if($||de||Pe||Re)return;f(!1),Ue(""),Ee(""),rn("");const A=new URLSearchParams(a);A.set("heat",j);const V=M||Object.keys((k==null?void 0:k.surfers)||{})[0];V?A.set("surfer",V):A.delete("surfer"),r(A)},za=()=>
6{if($){if(!Re&&!Un){ce(!1),W(!1),p(pe("video.actionError"));return}let j={trainingTime:k.trainingTime*6e4,created:Ye,running:y,startTime:S,endTime:oe,heatId:ie,trainingId:t,priorityOrder:O,finished:R,boards:ue,objectives:Se};e.firebase.cloud("saveHeat")(j).then(async()=>{Re&&(await ln(t),b.current&&r({heat:j.heatId})),ce(!1),ke(!1),W(!1)}).catch(()=>{ce(!1),ke(!1),W(!1),p(pe("video.actionError"))})}},$a=j=>{if(!(!l||Re||X.some(M=>at(M))||$)){if(P&&X.length>=Te){re("heats"),Ce(!0);return}ke(!0),ze(e.firebase.createHeat()),Ke(Date.now()),ce(!0),me([]),w(!1),L(null),K(null),fe([]),xe({}),ye({}),E(null),Q(!1),T(!1),Hn(!1),j.preventDefault()}},_a=j=>{!Ze||R||X.some(M=>at(M))||(w(!0),L(Date.now()),ce(!0),e.firebase.cloud("saveHeatConditions")({heatId:N.key}).catch(M=>console.error("saveHeatConditions",M)),j.preventDefault())},Fa=()=>{!Ze||!at(N)||(w(!1),K(Date.now()),T(!0),ce(!0))},Ba=()=>{Ze&&Y(!0)},Ha=j=>{Ze&&(W(!0),fe(j),ce(!0))},Vn=(j,M)=>cn(M,j),Wa=async j=>{var Ae,Me;if(j==null||j.preventDefault(),tt.current||!Ze||!at(N)||(C==null?void 0:C.heatId)!==(N==null?void 0:N.key))return;const M=C.uid,A=O.indexOf(M),V=((Ae=$e.current)==null?void 0:Ae.heatId)===N.key&&((Me=$e.current)==null?void 0:Me.surfer)===M?$e.current:{heatId:N.key,waveId:e.firebase.createWave(),author:U,surfer:M,created:Date.now(),trainingId:t,priorityPosition:A>=0?A+1:null,boardId:ue[M]||null,objectiveIds:Se[M]||[]};$e.current=V,tt.current=!0,Be(!0),St(!1);try{if(await e.firebase.cloud("saveWave")(V),$e.current=null,!b.current)return;_t(V.waveId),A>=0&&O.length>1&&(fe(st=>{const ft=st.indexOf(M);return ft<0?st:[...st.slice(0,ft),...st.slice(ft+1),M]}),ce(!0))}catch{b.current&&St(!0)}finally{tt.current=!1,b.current&&Be(!1)}},Ua=j=>{if(He.current)return He.current;if(!j||!(C!=null&&C.uid)||!C.heatId)return Promise.reject(new Error("A wave and surfer must be selected."));const M=++J.current;Je(!0);const A=Promise.resolve().then(async()=>{try{const V=mt(e.firebase.scores(),vt("trainingId"),gt(t)),Ae=await ss(V),Me=Object.entries(Ae.val()||{}).find(([,ft])=>ft.waveId===j&&ft.judge===U),st={scoreId:(Me==null?void 0:Me[0])||e.firebase.createScore(),score:Kn?We:null,note:_e,link:nt,waveId:j,surfer:C.uid,judge:U,created:(Me==null?void 0:Me[1].created)||Date.now(),trainingId:t,priority:O[0]||null,heatId:C.heatId};await e.firebase.cloud("saveScore")(st),b.current&&M===J.current&&(Ue(""),Ee(""))}finally{He.current=null,b.current&&Je(!1)}});return He.current=A,A},Va=async j=>{const M=++J.current;Ie(5),Ue(""),Ee("");try{const A=mt(e.firebase.scores(),vt("trainingId"),gt(t)),V=await ss(A);if(M!==J.current)return;const Ae=Object.values(V.val()||{}).find(Me=>Me.waveId===j&&Me.judge===U);Ae&&(Ie(Ae.score??5),Ue(Ae.note||""),Ee(Ae.link||""))}catch{M===J.current&&p(pe("training.loadScoreError"))}},qa=j=>{J.current+=1,Ie(j),_t($t)},Ga=j=>{J.current+=1,Ue(j)},Xa=j=>{J.current+=1,Ee(j)},Ya=j=>{e.firebase.cloud("deleteWave")({waveId:j})},Ka=j=>{j&&Yn&&(p(""),e.firebase.cloud("deleteHeat")({heatId:j}).then(()=>{ln(t)}).catch(A=>p(A.code==="functions/failed-precondition"?pe("video.deletionBlocked"):pe("video.actionError"))))},qn=j=>{ut(j),e.firebase.cloud("saveTrainingSettings")({trainingId:t,scoreStep:j})},Gn=j=>{we(A=>({...A,useScores:j})),e.firebase.cloud("saveTrainingSettings")({trainingId:t,useScores:j})},Ja=j=>{rn(j.target.value)},Qa=j=>{if(Nt&&P&&Nt.length>=qe){re("messages"),Ce(!0);return}let A={messageId:e.firebase.createMessage(),trainingId:t,heatId:ie,message:Wn,receiver:j,type:"default"};e.firebase.cloud("saveMessage")(A).then(()=>{rn(""),Xn(t)})},Za=j=>{on(j.target.value)},er=()=>{if(!C)return;e.firebase.cloud("saveHeatSummary")({heatId:ie,uid:C.uid,summary:Bt})},Xn=j=>{j&&e.firebase.cloud("getMessages")({trainingId:j}).then(A=>{b.current&&Hn(A.data)})},Ht=k.length!==0&&(U===k.author||U in k.judges),Yn=!!k.author&&(U===k.author||ve==="Administrator"),Ct=!k.trainingType||k.trainingType==="competition",Kn=Ct||!!k.useScores,tr=X.find(j=>at(j,h)),Jn=at(N,h),Wt=R||!!oe&&oe<=h,Qn=Wt&&((Zn=N==null?void 0:N.heat)==null?void 0:Zn.conditions)||null,nr=N?X.length-X.findIndex(j=>
6j.key===N.key):null,sr=({formatted:{minutes:j,seconds:M},completed:A})=>(A=R||A,A?Kn?n.jsx(Br,{training:k,heat:N}):null:n.jsxs(n.Fragment,{children:[j,":",M]}));return n.jsxs(jr,{className:`content pt-2 pb-3 min-vh-100${Ct?"":" training-mode-technical"}`,children:[m&&n.jsx(ct,{variant:"warning",dismissible:!0,onClose:()=>p(""),children:m}),dt&&n.jsx(ct,{variant:"warning",dismissible:!0,onClose:()=>St(!1),children:pe("training.saveWaveError")}),d&&n.jsx(ct,{variant:"warning",dismissible:!0,onClose:()=>f(!1),children:pe("training.heatUnavailable")}),x&&n.jsx(Ls,{}),k&&k.author&&n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"d-flex flex-wrap align-items-center justify-content-between training-header-bar",children:[n.jsxs("div",{className:"d-flex flex-wrap align-items-center gap-2",children:[n.jsxs("span",{className:"d-flex align-items-center gap-2 flex-shrink-0",children:[n.jsxs(ns,{to:ts,className:"btn btn-outline-secondary btn-sm training-back-link",children:[n.jsx(Us,{})," ",n.jsx("span",{className:"visually-hidden",children:pe("training.backToDashboard")})]}),n.jsx("span",{className:"training-header-sep",children:"|"})]}),n.jsx("h5",{className:"training-header-title",children:k.title}),n.jsx("span",{className:`training-type-badge training-type-badge--${k.trainingType||"competition"}`,children:pe(`dashboard.${k.trainingType||"competition"}`)})]}),n.jsxs(ns,{to:`/dashboard/training/${t}/statistics`,className:"btn btn-primary btn-sm btn-icon",title:pe("training.statistics"),children:[n.jsx(wr,{className:"training-stats-icon"}),n.jsx("span",{className:"visually-hidden",children:pe("training.statistics")})]})]}),n.jsxs(Sr,{className:"g-1 g-md-3",children:[n.jsxs(dn,{xs:12,md:4,children:[n.jsx(Ei,{training:k,showCountDown:_,endTime:oe,currentHeat:N,isNewHeatLoading:Re,heatsReady:l,canEditHeat:Ze,isHeatSaving:$,permissions:Ht,running:Jn,heatNumber:nr,runningHeat:tr,handleLoadHeat:cn,heatFinished:Wt,renderer:sr,surferSelected:C,handleNewHeat:$a,handleFinishHeat:Fa,handleStartHeat:_a,handleSeeCompetitor:Vn}),Nt&&Nt.length>0&&n.jsx(Mi,{messages:Nt,surferSelected:C,isCompetition:Ct}),n.jsx("div",{className:"d-none d-md-block",children:n.jsx(ys,{lat:k.lat,lng:k.lng,locationName:k.locationName,spot:k.spot,isCompetition:Ct,useImperial:Bn,conditions:Qn,historical:Wt})}),n.jsx("div",{className:"d-none d-md-block",children:n.jsx(bs,{training:k,scoreStep:Qe,onScoreStepChange:qn,permissions:Ht,onUseScoresChange:Gn})})]}),n.jsxs(dn,{xs:12,md:8,children:[n.jsx(xi,{surferSelectedView:se,training:k,canEditHeat:Ze,permissions:Ht,surferSelected:C,running:Jn,surfersWaves:je,currentUserUid:U,score:We,currentHeat:N,isNewWaveLoading:de,saveScore:Ua,changeScore:qa,handleAddWave:Wa,handleSetPriority:Ba,isNewScoreLoading:Pe,isNewPriorityLoading:Z,handleChangeNote:Ga,note:_e,link:nt,handleChangeLink:Xa,handleChangeMessage:Ja,sendMessage:Qa,message:Wn,loadScore:Va,handleDeleteWave:Ya,surferBoards:an,selectedBoardId:C&&ue[C.uid]||"",onBoardChange:Ea,coachObjectives:De,selectedObjectiveIds:C?Se[C.uid]||[]:[],onObjectiveChange:Ma,scoreStep:Qe,heatSummary:Bt,handleChangeHeatSummary:Za,saveHeatSummary:er}),Bt&&n.jsxs("div",{className:"training-block-wrap training-block-mb mt-3",children:[n.jsx("div",{className:"training-card-header",children:n.jsxs("div",{className:"d-flex align-items-center gap-2",children:[n.jsx(Ws,{className:"training-card-icon"}),n.jsx("span",{className:"training-card-title",children:pe("training.heatSummary")})]})}),n.jsx("div",{className:"training-card-body",children:n.jsx("p",{className:"stats-heat-summary-text mb-0",children:Bt})})]}),n.jsx("div",{className:"d-md-none",children:n.jsx(ys,{lat:k.lat,lng:k.lng,locationName:k.locationName,spot:k.spot,isCompetition:Ct,useImperial:Bn,conditions:Qn,historical:Wt})}),n.jsx(Ur,{training:k,heats:X,canDeleteHeat:Yn,loadedHeatId:N==null?void 0:N.key,handleLoadHeat:cn,now:h,surferSelected:C,handleSeeCompetitor:Vn,handleDeleteHeat:Ka})]}),n.jsx(dn,{xs:12,className:"d-md-none",children:n.jsx(bs,{training:k,scoreStep:Qe,onScoreStepChange:qn,permissions:Ht,onUseScoresChange:Gn})})]})]}),n.jsx(_r,{show:ee,type:ae,onHide:()=>Ce(!1)}),n.jsx(Dl,{show:ge,onHide:()=>Y(!1),surfers:k.surfers,priorityOrder:O,onSave:Ha})]})},kl=e=>!!e,Jl=lt(Nr(Cr(kl)(Tl)));
6export{Tl as DashboardTraining,Jl as default};

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.