courthive-components 6.12.1 → 6.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/schedule-page/domain/matchUpCatalogProjections.d.ts +11 -1
- package/dist/components/schedule-page/engine/schedulePageStore.d.ts +3 -0
- package/dist/components/schedule-page/index.d.ts +1 -1
- package/dist/components/schedule-page/types.d.ts +8 -0
- package/dist/components/schedule-page/ui/matchUpCatalog.d.ts +2 -0
- package/dist/courthive-components.es.js +1205 -1186
- package/dist/courthive-components.umd.js +16 -16
- package/dist/index.d.ts +1 -1
- package/package.json +2 -2
|
@@ -172,9 +172,9 @@
|
|
|
172
172
|
Click on <strong>point scores</strong> to award a point.<br><br>
|
|
173
173
|
Use the <strong>LIVE</strong> pill to set an irregular ending (Retired, Walkover, etc.).<br><br>
|
|
174
174
|
<strong>Undo/Redo/Clear</strong> buttons control scoring history.
|
|
175
|
-
`},S=()=>bf.map(e=>({label:yf[e],active:e===u,onClick:()=>E(e)})),C=()=>({info:x[u],menu:{menuItems:S()},clickAway:!1}),w=()=>{setTimeout(()=>{if(g)return;let e=document.getElementById(`clearScoreV2`);e&&(e.style.backgroundColor=`var(--chc-clear-btn-bg)`,e.style.color=`var(--chc-clear-btn-text)`,d&&(e.disabled=!1)),m&&v(m)},0)},T,E=e=>{e!==u&&(y(),h=!1,u=e,al({scoringApproach:e}),T&&(T.update({content:b(e),config:C()}),w()))};T=se.open({title:i.title||`Score Entry`,content:b(u),config:C(),buttons:[{onClick:()=>{y()},label:i.cancel||`Cancel`,intent:`none`,footer:{className:`button`,style:`background-color: var(--chc-bg-primary); color: var(--chc-text-primary); border: 1px solid var(--chc-border-primary);`},close:!0},{id:`clearScoreV2`,label:i.clear||`Clear`,intent:`none`,disabled:!0,close:!1,onClick:()=>{if(h=!0,u===`freeScore`){let e=document.getElementById(`scoreInputV2`);e&&(e.value=``,e.dispatchEvent(new Event(`input`,{bubbles:!0})),e.focus())}else u===`dynamicSets`&&window.resetDynamicSets?window.resetDynamicSets():u===`dialPad`&&window.resetDialPad?window.resetDialPad():u===`inlineScoring`&&window.resetInlineScoring&&window.resetInlineScoring()}},{id:`submitScoreV2`,label:i.submit||`Submit Score`,intent:`is-primary`,disabled:u!==`inlineScoring`,onClick:()=>{if(m&&_(m)){y();let e=c.getSelectedCode();n(e?{...m,matchUpStatusCodes:[e]}:m)}},close:!0}],onClose:()=>{g=!0,r?.()}}),w()}function Sf(e){let t=e%100;if(t>=11&&t<=13)return`${e}th`;switch(e%10){case 1:return`${e}st`;case 2:return`${e}nd`;case 3:return`${e}rd`;default:return`${e}th`}}var Cf={};function wf(e,t,n){let r=e.sideEnding;return r?.sideNumber===t&&r.status===n?{...e,sideEnding:void 0,bothSidesOut:void 0,reasonCode:void 0}:{...e,sideEnding:{sideNumber:t,status:n},matchEnding:void 0,bothSidesOut:void 0,reasonCode:void 0}}function Tf(e,t){return e.matchEnding===t?{...e,matchEnding:void 0,reasonCode:void 0}:{...e,matchEnding:t,sideEnding:void 0,bothSidesOut:void 0,reasonCode:void 0}}function Ef(e){return!e.sideEnding||!Nc(e.sideEnding.status)?e:{...e,bothSidesOut:!e.bothSidesOut}}function Df(e){return!!e.sideEnding&&Nc(e.sideEnding.status)}function Of(e,t){return{...e,reasonCode:e.reasonCode===t?void 0:t}}function kf(e){let{selectedOutcome:t,winnerSelection:n}=Lc(e);if(!xc.includes(t))return Cf;let r=uf(e);return n===`NEITHER`?{sideEnding:{sideNumber:1,status:t},bothSidesOut:!0,reasonCode:r}:Sc.has(t)?n!==1&&n!==2?Cf:{sideEnding:{sideNumber:Nf(n),status:t},reasonCode:r}:{matchEnding:t,reasonCode:r}}function Af(e){return e.sideEnding?.status??e.matchEnding}function jf(e){let t=Af(e);if(!t)return{isValid:!1,awaitingWinner:!1,isDoubleExit:!1,clearsScore:!1,hasEnding:!1};let n=Fc({selectedOutcome:t,winnerSelection:e.sideEnding?e.bothSidesOut?_c:Nf(e.sideEnding.sideNumber):void 0});return{...n,clearsScore:Oc(n.matchUpStatus),hasEnding:!0}}function Mf(e,t){if(!e)return{isValid:!1,awaitingWinner:!1,isDoubleExit:!1,clearsScore:!1,hasEnding:!1};let n=Fc({selectedOutcome:e,winnerSelection:t===1||t===2?t:void 0});return{...n,clearsScore:Oc(n.matchUpStatus),hasEnding:!0}}function Nf(e){return e===1?2:1}function Pf(){return If(Sc)}function Ff(){return If(Cc)}function If(e){return xc.filter(t=>e.has(t))}function Lf(e,n){if(!e.length)return;let r=t.scoreGovernor.generateScoreString({sets:e,matchUpFormat:n});if(typeof r==`string`)return r||void 0}function Rf(e){return ml(e)?e?.tiebreakSet?.tiebreakTo:void 0}function zf(e,n,r){let i=Rf(r);if(i===void 0||!Number.isFinite(e))return;let a=t.scoreGovernor.getTiebreakComplement({lowValue:e,tiebreakTo:i,tiebreakNoAd:r?.tiebreakSet?.NoAD,isSide1:n===1});if(!a)return;let[o,s]=a;if(o!==void 0&&s!==void 0)return{side1:o,side2:s}}var Bf=2,Vf={};function Hf(e={}){let t=e.matchUpFormat??`SET3-S:6/TB7`,n=dl(t),r=Uf(e.sets??[],n);return{matchUpFormat:t,approach:e.approach??`dynamicSets`,sets:tp(r,n),ending:e.matchUp?kf(e.matchUp):Cf}}function Uf(e,t){let n=yp(t);return Array.from({length:n},(n,r)=>{let i=e[r];return i?ml(pl(r,t))?xp({side1:i.side1TiebreakScore,side2:i.side2TiebreakScore}):xp({side1:i.side1Score,side2:i.side2Score,tiebreak1:i.side1TiebreakScore,tiebreak2:i.side2TiebreakScore}):Vf})}function Wf(e,t){let{cell:n,digit:r}=t;if(!up(e,n)||!Number.isInteger(r)||r<0||r>9)return e;let i=dl(e.matchUpFormat),a=pl(n.setIndex,i),o=e.sets[n.setIndex];if(ml(a))return Gf(e,n,r,a,!!t.complement);let s=dp(o,n),c=cp(s,r,n.kind===`games`?lp(a,dp(o,pp(n))):void 0);if(c===void 0)return e;let l=fp(o,n,c);return t.complement&&(l=Kf(l,n,c,s,a)),ep(e,n.setIndex,l,i,n.kind===`games`)}function Gf(e,t,n,r,i){if(t.kind!==`games`)return e;let a=e.sets[t.setIndex],o=t.side===1?a.side1:a.side2,s=t.side===1?a.side2:a.side1,c=cp(o!==void 0&&(s===void 0||o<s)?o:void 0,n,void 0);if(c===void 0)return e;let l=i?zf(c,t.side,r):void 0,u=l?{side1:l.side1,side2:l.side2}:fp(a,t,c);return ep(e,t.setIndex,u,dl(e.matchUpFormat),!0)}function Kf(e,n,r,i,a){let o=pp(n);if(n.kind===`games`){if(i!==void 0)return e;let t=Sl(r,a);return t===null?e:fp(e,o,t)}if(mp(e)!==n.side)return e;let s=a?.tiebreakFormat?.tiebreakTo;if(s===void 0)return e;let c=t.scoreGovernor.getTiebreakComplement({lowValue:r,tiebreakTo:s,tiebreakNoAd:a?.tiebreakFormat?.NoAD,isSide1:n.side===1});return!c||c[0]===void 0||c[1]===void 0?e:{...e,tiebreak1:c[0],tiebreak2:c[1]}}function qf(e,t,n){if(!up(e,t)||n!==void 0&&(!Number.isInteger(n)||n<0))return e;let r=e.sets[t.setIndex];return dp(r,t)===n?e:ep(e,t.setIndex,fp(r,t,n),dl(e.matchUpFormat),t.kind===`games`)}function Jf(e,t){return qf(e,t,void 0)}function Yf(e){return e.sets.every(e=>vp(e))?e:{...e,sets:e.sets.map(()=>Vf)}}function Xf(e){return e.sets.every(e=>vp(e))&&e.ending===Cf?e:{...e,sets:e.sets.map(()=>Vf),ending:Cf}}function Zf(e,t){let n=Qf(e.ending,t);return n===e.ending?e:{...e,ending:n}}function Qf(e,t){switch(t.kind){case`side`:return wf(e,t.sideNumber,t.status);case`match`:return Tf(e,t.status);case`bothSidesOut`:return Ef(e);case`reasonCode`:return Of(e,t.code);default:return e}}function vee(e,n){if(n===e.matchUpFormat)return e;let r=dl(e.matchUpFormat),{sets:i}=t.scoreGovernor.retainScoreForFormat({sets:e.sets.map((e,t)=>ap(e,t,r)),matchUpFormat:n,previousMatchUpFormat:e.matchUpFormat}),a=dl(n),o=e.sets.slice(0,i.length),s=Array.from({length:yp(a)},(e,t)=>o[t]??Vf);return{...e,matchUpFormat:n,sets:tp(s,a)}}function $f(e,t){return t===e.approach?e:{...e,approach:t}}function ep(e,t,n,r,i){let a=e.sets.map((e,r)=>r===t?xp(n):e);return{...e,sets:tp(a,r,i?t:void 0)}}function tp(e,t,n){let r=e.map((e,r)=>r===n?np(e,r,t):e),i=rp(r,t);return i===void 0?r:r.map((e,t)=>t>i?Vf:e)}function np(e,t,n){return e.tiebreak1===void 0&&e.tiebreak2===void 0||e.side1===void 0||e.side2===void 0||ml(pl(t,n))||wl(t,{side1:e.side1,side2:e.side2},n)?e:xp({side1:e.side1,side2:e.side2})}function rp(e,t){if(t.exactly===void 0)for(let n=0;n<e.length;n+=1){let r=ip(e.slice(0,n+1),t);if(r.length&&bl(r,t))return n}}function ip(e,t){return e.flatMap((e,n)=>_p(e)?[ap(e,n,t)]:[])}function ap(e,t,n){let r=ml(pl(t,n));if(!_p(e))return xp({setNumber:t+1,side1Score:r?void 0:e.side1,side2Score:r?void 0:e.side2,side1TiebreakScore:r?e.side1:e.tiebreak1,side2TiebreakScore:r?e.side2:e.tiebreak2});if(r)return xp({setNumber:t+1,side1Score:0,side2Score:0,side1TiebreakScore:e.side1,side2TiebreakScore:e.side2,winningSide:op(e,t,n)});let i=El(t,gp(e.side1),gp(e.side2),hp(e),n);return e.tiebreak1!==void 0&&e.tiebreak2!==void 0?{...i,side1TiebreakScore:e.tiebreak1,side2TiebreakScore:e.tiebreak2}:i}function op(e,n,r){let{winningSide:i}=t.scoreGovernor.analyzeSet({setObject:{setNumber:n+1,side1TiebreakScore:e.side1,side2TiebreakScore:e.side2},matchUpScoringFormat:r});return i===1||i===2?i:void 0}function sp(e,t){let n=dl(e.matchUpFormat),r=tp(Uf(t,n),n);return JSON.stringify(r)===JSON.stringify(e.sets)?e:{...e,sets:r}}function cp(e,t,n){let r=e===void 0?t:e*10+t;if(!(String(r).length>Bf)&&!(n!==void 0&&r>n))return r}function lp(e,n){if(e)return t.scoreGovernor.getMaxSetScore({opponentScore:n,setTo:e.setTo,tiebreakAt:e.tiebreakAt,tiebreakTo:e.tiebreakSet?.tiebreakTo,NoAD:e.NoAD,winBy:e.winBy,timed:hl(e)})}function up(e,t){return!Number.isInteger(t.setIndex)||t.setIndex<0||t.setIndex>=e.sets.length||t.side!==1&&t.side!==2?!1:t.kind===`games`||t.kind===`tiebreak`&&!ml(pl(t.setIndex,dl(e.matchUpFormat)))}function dp(e,t){return t.kind===`games`?t.side===1?e.side1:e.side2:t.side===1?e.tiebreak1:e.tiebreak2}function fp(e,t,n){let r=t.kind===`games`?t.side===1?`side1`:`side2`:t.side===1?`tiebreak1`:`tiebreak2`;return xp({...e,[r]:n})}function pp(e){return{...e,side:e.side===1?2:1}}function mp(e){if(e.side1!==void 0&&e.side2!==void 0&&e.side1!==e.side2)return e.side1>e.side2?2:1}function hp(e){let t=[e.tiebreak1,e.tiebreak2].filter(e=>e!==void 0);return t.length?String(Math.min(...t)):void 0}function gp(e){return e===void 0?``:String(e)}function _p(e){return e.side1!==void 0&&e.side2!==void 0}function vp(e){return e.side1===void 0&&e.side2===void 0&&e.tiebreak1===void 0&&e.tiebreak2===void 0}function yp(e){return bp(e)??e.exactly??e.bestOf}function bp(e){if(e.finalSetFormat?.tiebreakSet?.tiebreakTo!==void 0)return t.matchUpFormatCode.aggregateDeciderSetNumber(e)}function xp(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}var{COMPLETED:yee}=t.matchUpStatusConstants;function Sp(e){return jf(e.ending)}function Cp(e){return ip(e.sets,Up(e))}function wp(e){return e.sets.some(e=>!vp(e))}function Tp(e){if(!Sp(e).clearsScore)return Lf(Cp(e),e.matchUpFormat)}function Ep(e){if(Sp(e).clearsScore)return Lf(Cp(e),e.matchUpFormat)}function Dp(e){if(Sp(e).clearsScore)return!1;let t=Up(e),n=Vp(e);return n===void 0||!Ip(e,n)?!1:(xl(Cp(e),t)!==void 0||Kc(Cp(e),e.matchUpFormat))&&kp(e)===void 0}function Op(e){let t=Sp(e);if(t.hasEnding){if(t.winningSide===1||t.winningSide===2)return t.winningSide;if(t.isDoubleExit)return}if(Dp(e))return xl(Cp(e),Up(e))}function kp(e,t={}){if(Sp(e).clearsScore)return;let n=Up(e);for(let[r,i]of e.sets.entries()){if(!_p(i))continue;let a=Ap(r,i,t)??jp(e,r,i,n);if(a)return a}return Mp(e)}function Ap(e,t,n){if(t.tiebreak1===void 0||t.tiebreak2===void 0||t.tiebreak1===t.tiebreak2)return;let r=mp(t);if(r===void 0)return;let i=r===1?2:1;if((t.tiebreak1>t.tiebreak2?1:2)===i)return;let a=n.sideNames?.[i-1]??`side ${i}`;return`${Hp(e)} ${a} won it, so they must win the tiebreak`}function jp(e,n,r,i){if(Rp(e,n))return;let{isValid:a,error:o}=t.scoreGovernor.validateSetScore(Lp(r,ml(pl(n,i))),e.matchUpFormat,n===yp(i)-1,!0);if(!a&&o)return`${Hp(n)} ${o}`}function Mp(e){let t=Vp(e);if(t!==void 0)for(let n=0;n<t;n+=1){if(Ip(e,n))continue;let t=e.sets[n];return vp(t)?`${Hp(n)} has no score`:`${Hp(n)} is not finished`}}function Np(e,t={}){let n=Up(e),r=Vp(e),i=[];if(r!==void 0)for(let n=0;n<=r;n+=1)i.push({kind:`games`,setIndex:n}),Bp(e,n,t.editingSet)&&i.push({kind:`tiebreak`,setIndex:n});let a=r===void 0?0:r+1;return a<yp(n)&&Pp(e,a,n)&&i.push({kind:`games`,setIndex:a}),i}function Pp(e,t,n){if(t===0)return!0;for(let n=0;n<t;n+=1)if(!Ip(e,n))return!1;return t+1===bp(n)?Fp(e,t):hl(pl(t-1,n))?!0:rp(e.sets,n)===void 0&&xl(Cp(e),n)===void 0}function Fp(e,t){let n=e.sets.slice(0,t),r=e=>n.reduce((t,n)=>t+(n[e]??0),0);return r(`side1`)===r(`side2`)}function Ip(e,n){let r=e.sets[n];if(!r||!_p(r)||Rp(e,n))return!1;let i=Up(e),a=pl(n,i);return hl(a)?!0:t.scoreGovernor.validateSetScore(Lp(r,ml(a)),e.matchUpFormat,n===yp(i)-1,!1).isValid}function Lp(e,t){return t?{side1TiebreakScore:e.side1,side2TiebreakScore:e.side2}:{side1Score:e.side1,side2Score:e.side2,side1TiebreakScore:e.tiebreak1,side2TiebreakScore:e.tiebreak2}}function Rp(e,t){let n=e.sets[t];return zp(e,t)&&(n.tiebreak1===void 0||n.tiebreak2===void 0)}function zp(e,t){let n=e.sets[t];if(!_p(n))return!1;let r=Up(e);return!ml(pl(t,r))&&wl(t,{side1:n.side1,side2:n.side2},r)}function Bp(e,t,n){return zp(e,t)&&(Rp(e,t)||n===t)}function Vp(e){for(let t=e.sets.length-1;t>=0;--t)if(!vp(e.sets[t]))return t}function Hp(e){return`${Sf(e+1)} set:`}function Up(e){return dl(e.matchUpFormat)}function Wp(e,t,n,r){let i=e.sets[t];return i?dp(i,{setIndex:t,side:n,kind:r}):void 0}function Gp(e){return e===1?2:1}function Kp(e){let t=/^(?:Digit|Numpad)(\d)$/.exec(e);return t?Number(t[1]):void 0}function qp(e){return e.metaKey||e.ctrlKey||e.altKey}function Jp(e={}){let t=Hf(e);return{get:()=>t,set:e=>{t=e}}}var Yp=`54px`,Xp=`aria-label`;function Zp(e){let t=e.store??Jp({matchUpFormat:e.matchUpFormat,approach:`dynamicSets`,sets:e.sets}),n=dl(t.get().matchUpFormat),r=t.get().sets.length,i=e.smartComplements!==!1,a=new Set,o,s,c=new Map,l=new Map,u=new Map,d=new Map;return{store:t,columns:()=>v().map(y),rowCells:e=>v().map(t=>x(e,t)),getSets:()=>Cp(f()),bandControl:()=>ce(),error:()=>kp(f(),{sideNames:e.sideNames}),clear:()=>U(),focusFirst:()=>H({kind:`games`,setIndex:0},2),smartComplementsEnabled:()=>i};function f(){return t.get()}function p(e,t){return{setIndex:e,side:t,kind:`games`}}function m(e,t){return{setIndex:e,side:t,kind:`tiebreak`}}function h(e){return Wp(f(),e.setIndex,e.side,e.kind)}function g(e){let t=h(e);return t===void 0?``:String(t)}function _(e){return h(m(e,1))!==void 0&&h(m(e,2))!==void 0}function v(){return Np(f(),{editingSet:s})}function y(e){return e.kind===`tiebreak`?{heading:`TB`,width:Yp}:{heading:Sf(e.setIndex+1)}}function b(e,t,n){return`${e}:${n}:${t}`}function x(e,t){return t.kind===`tiebreak`?A(e,t.setIndex):C(e,t.setIndex)}function S(){let e=document.createElement(`input`);return e.type=`text`,e.inputMode=`numeric`,e.className=`chc-sec-set-input`,e}function C(e,t){let n=document.createElement(`div`);n.className=`chc-sec-games-cell`;let r=b(`games`,e,t),i=S();i.value=g(p(t,e)),i.dataset.side=String(e),i.dataset.set=String(t+1),i.setAttribute(Xp,`${Sf(t+1)} set, side ${e} games`),i.addEventListener(`input`,()=>B(e,t,i)),i.addEventListener(`keydown`,n=>ee(n,{kind:`games`,setIndex:t},e)),i.addEventListener(`focus`,()=>{P(t),i.select()}),c.set(r,i);let a=document.createElement(`sup`);a.className=`chc-sec-tb-mark`,a.setAttribute(`aria-hidden`,`true`);let o=document.createElement(`span`);return o.className=`chc-sec-sr-only`,u.set(r,a),d.set(r,o),n.append(i,a,o),M(e,t),n.append(D(e,t)),w(t),n}function w(e){let t=E(e);for(let n of[1,2]){let r=b(`games`,n,e),i=c.get(r);i&&(i.hidden=t);let a=u.get(r);a&&(a.hidden=t);let o=d.get(r);o&&(o.hidden=t);let s=l.get(r);s&&(s.hidden=!t,t&&O(s,n,e))}}function T(){for(let e=0;e<r;e+=1)w(e)}function E(e){return s!==e&&Ip(f(),e)}function D(e,t){let n=document.createElement(`button`);return n.type=`button`,n.className=`chc-sec-set-done`,n.dataset.doneSide=String(e),n.dataset.doneSet=String(t+1),n.title=`Click to edit this set`,n.addEventListener(`click`,()=>k(t,e)),l.set(b(`games`,e,t),n),n}function O(e,t,n){let r=g(p(n,t)),i=h(m(n,t)),a=h(m(n,Gp(t))),o=i!==void 0&&(a===void 0||i<a);if(e.replaceChildren(r),o){let t=document.createElement(`sup`);t.className=`chc-sec-tb-mark`,t.setAttribute(`aria-hidden`,`true`),t.textContent=String(i),e.append(t)}let s=o?`${r} games, tiebreak ${i}`:`${r} games`;e.setAttribute(Xp,`${Sf(n+1)} set, side ${t}: ${s} — edit`)}function k(e,t){P(e);let n=c.get(b(`games`,t,e));n?.focus(),n?.select()}function A(e,t){let n=S();return n.classList.add(`chc-sec-tb-input`),n.value=g(m(t,e)),n.dataset.tiebreakSide=String(e),n.dataset.tiebreakSet=String(t+1),n.setAttribute(Xp,`${Sf(t+1)} set tiebreak, side ${e} points`),n.addEventListener(`input`,()=>V(e,t,n)),n.addEventListener(`keydown`,n=>ee(n,{kind:`tiebreak`,setIndex:t},e)),n.addEventListener(`focus`,()=>n.select()),c.set(b(`tiebreak`,e,t),n),n}function j(){for(let[e,t]of c){let[n,r,i]=e.split(`:`),a=g({kind:n,setIndex:Number(r),side:Number(i)});t.value!==a&&(t.value=a)}}function M(e,t){let n=b(`games`,e,t),r=u.get(n),i=d.get(n);if(!r)return;let a=h(m(t,e)),o=h(m(t,Gp(e))),s=a!==void 0&&(o===void 0||a<o);r.textContent=s?String(a):``,i&&(i.textContent=s?` tiebreak ${a}`:``)}function N(){for(let e=0;e<r;e+=1)for(let t of[1,2])M(t,e)}function P(t){if(s===t)return;let n=W();s=t,T(),W()!==n&&(o={kind:`games`,setIndex:t},e.onStructureChange?.(),G())}function F(e){let t=e.value.replace(/\D/g,``).replace(/^0+(?=\d)/,``);return t!==e.value&&(e.value=t),t}function I(e,t){let n=Jf(f(),e);for(let r of t){let t=Wf(n,{cell:e,digit:Number(r),complement:L(e)});if(t===n)break;n=t}return R(e,n),n}function L(e){return i?e.kind===`tiebreak`||!a.has(e.setIndex):!1}function R(e,t){if(e.kind!==`games`)return!1;let n=Gp(e.side),r=Wp(t,e.setIndex,n,`games`)!==h(p(e.setIndex,n));return r&&a.add(e.setIndex),r}function z(e){t.set(e),j()}function B(e,t,n){let r=W();s=t,z(I(p(t,e),F(n))),oe(r,Rp(f(),t)?{kind:`tiebreak`,setIndex:t}:void 0)}function V(e,t,n){let r=W();z(I(m(t,e),F(n))),s=t,oe(r)}function ee(e,t,n){if(qp(e))return;if(e.key===`Enter`){if(t.kind===`tiebreak`&&_(t.setIndex)){e.preventDefault(),e.stopPropagation();let n=W();s=void 0,oe(n,{kind:`games`,setIndex:t.setIndex+1});return}let n=re(t.setIndex);if(!n)return;e.preventDefault(),e.stopPropagation(),H(n,ae(n));return}let r=h({kind:t.kind,setIndex:t.setIndex,side:n})===void 0,i=Kp(e.code);if(i!==void 0&&t.kind===`games`&&r&&te(t,n,i,e.shiftKey)){e.preventDefault();return}if(e.key===`Tab`){let r=ie(t,n,e.shiftKey?-1:1);if(!r)return;e.preventDefault(),H(r.slot,r.sideNumber);return}if(e.key===`Backspace`&&r){let r=ie(t,n,-1);if(!r)return;e.preventDefault(),H(r.slot,r.sideNumber)}}function te(e,t,n,r){let i=e.setIndex,a=W();s=i;let o=p(i,r?Gp(t):t),c=Wf(f(),{cell:o,digit:n,complement:L(o)});if(c===f())return!0;let l=R(o,c);if(!r&&!l)return!1;z(c);let u=Rp(f(),i)?{kind:`tiebreak`,setIndex:i}:ne(i);return oe(a,u),u&&H(u,ae(u)),!0}function ne(e){let t=e+1;if(!(t>=r)&&v().some(e=>e.kind===`games`&&e.setIndex===t))return{kind:`games`,setIndex:t}}function re(e){if(hl(pl(e,n)))return ne(e)}function ie(e,t,n){let r=v().flatMap(e=>[2,Gp(2)].map(t=>({slot:e,sideNumber:t}))),i=r.findIndex(n=>n.slot.kind===e.kind&&n.slot.setIndex===e.setIndex&&n.sideNumber===t);if(!(i<0))return r[i+n]}function H(e,t){if(e.kind===`games`&&E(e.setIndex)){k(e.setIndex,t);return}let n=c.get(b(e.kind,t,e.setIndex));n?.focus(),n?.select()}function ae(e){return e.kind===`tiebreak`?mp(f().sets[e.setIndex])??2:2}function U(){let e=W();a.clear(),s=void 0,j(),oe(e)}function W(){return v().map(e=>`${e.kind}${e.setIndex}`).join(`|`)}function oe(t,n){if(N(),T(),W()===t){e.onChange?.();return}o=n??se(),e.onStructureChange?.(),e.onChange?.(),G()}function G(){let e=o;if(o=void 0,!e||e.setIndex>=r)return;let t=c.get(b(e.kind,e.sideNumber??ae(e),e.setIndex));t&&(t.focus(),e.sideNumber===void 0?t.select():t.setSelectionRange(t.value.length,t.value.length))}function se(){let e=document.activeElement;if(e)for(let[t,n]of c){if(n!==e)continue;let[r,i,a]=t.split(`:`);return{kind:r,setIndex:Number(i),sideNumber:Number(a)}}}function ce(){let t=document.createElement(`button`);t.type=`button`,t.className=`chc-sec-smart`,t.dataset.action=`smartComplements`,t.textContent=e.smartComplementsLabel??`Smart`,t.setAttribute(`aria-pressed`,String(i));let n=`Smart complements — fill the opposing score from the one you type`;return t.title=n,t.setAttribute(Xp,n),t.addEventListener(`click`,()=>{i=!i,a.clear(),e.onChange?.()}),t}}var Qp=`200px`;function $p(){let e=new Map;return{cell(t,n){let r=document.createElement(`div`);return r.className=`chc-sec-readout`,r.dataset.readoutSide=String(t),em(r,t,n),e.set(t,r),r},update(t){for(let[n,r]of e)em(r,n,t)}}}function em(e,t,n){e.replaceChildren();let r=[];for(let[i,a]of n.entries()){let n=t===1?a.side1TiebreakScore:a.side2TiebreakScore,o=t===1?a.side2TiebreakScore:a.side1TiebreakScore,s=t===1?a.side1Score:a.side2Score,c=!a.side1Score&&!a.side2Score&&n!==void 0&&o!==void 0,l=String(c?n:s??0),u=!c&&n!==void 0&&(o===void 0||n<o);i>0&&e.append(` `);let d=document.createElement(`span`);if(d.className=`chc-sec-readout-set`,d.textContent=l,e.append(d),u){let e=document.createElement(`sup`);e.className=`chc-sec-tb-mark`,e.setAttribute(`aria-hidden`,`true`),e.textContent=String(n),d.append(e)}r.push(u?`${l} tiebreak ${n}`:l)}e.setAttribute(`aria-label`,r.length?`Side ${t}: ${r.join(`, `)}`:`Side ${t}: no score`)}function tm(e){let t=e.initialText??``,n=e.store??Jp({matchUpFormat:e.matchUpFormat,approach:`freeScore`}),r=n.get().matchUpFormat;e.store?t=e.initialText??Tp(n.get())??``:u();let i,a,o=$p();return{store:n,columns:()=>[{width:Qp}],rowCells:e=>[o.cell(e,Cp(s()))],block:()=>d(),matchUpStatus:()=>l(),getText:()=>t,getSets:()=>Cp(s()),hasEntry:()=>!!t.trim(),clear:()=>{t=``,i&&(i.value=``),o.update([]),e.onChange?.()},focusFirst:()=>{if(!i)return;i.focus();let e=i.value.length;i.setSelectionRange(e,e)}};function s(){return n.get()}function c(){if(!t.trim())return{sets:[]};let e=nd(t,r);return{sets:e.sets??[],result:e}}function l(){return c().result?.matchUpStatus}function u(){n.set(sp(s(),c().sets))}function d(){let n=document.createElement(`div`);n.className=`chc-sec-freescore`;let r=`chc-fs-${Math.random().toString(36).slice(2,8)}`,c=document.createElement(`label`);return c.className=`chc-sec-field-label`,c.htmlFor=r,c.textContent=e.label??`TYPE THE SCORE`,i=document.createElement(`input`),i.type=`text`,i.id=r,i.className=`chc-sec-freescore-input`,i.value=t,i.dataset.freeScore=`true`,i.autocomplete=`off`,i.spellcheck=!1,i.addEventListener(`input`,()=>{t=i?.value??``,u(),o.update(Cp(s())),f(),e.onChange?.()}),a=document.createElement(`div`),a.className=`chc-sec-field-note`,n.append(c,i,a),f(),n}function f(){if(!a)return;let{result:n}=c(),i=Vc(n?.matchUpStatus,e.disabledMatchUpStatuses,e.statusScopeLabels);if(i){a.textContent=i,a.dataset.tone=`error`;return}if(!t.trim()){a.textContent=``,a.dataset.tone=`idle`;return}let o=!n?.sets?.length&&!n?.matchUpStatus;if(!n?.valid||o){let e=n?.errors?.[0];a.textContent=typeof e==`string`?e:e?.message??`Not a score this format allows`,a.dataset.tone=`error`;return}let l=!n.matchUpStatus&&Dp(s());a.dataset.tone=l?`good`:`idle`,a.textContent=l?`A complete match under ${r}`:`${n.formattedScore} — not a finished result`}}var nm=`aria-pressed`;function rm(e){let t=e.store??Jp({matchUpFormat:e.matchUpFormat,approach:`dialPad`,sets:e.sets}),n=dl(t.get().matchUpFormat),r=t.get().sets.length,i=!1,a,o=$p(),s=new Map;return{store:t,columns:()=>[{width:Qp}],rowCells:e=>[o.cell(e,l())],block:()=>M(),getSets:()=>Cp(c()),clear:()=>{i=!1,k()},focusFirst:()=>s.get(1)?.focus()};function c(){return t.get()}function l(){return c().sets.flatMap((e,t)=>vp(e)?[]:p(t)?[{setNumber:t+1,side1Score:0,side2Score:0,side1TiebreakScore:e.side1,side2TiebreakScore:e.side2}]:[{setNumber:t+1,side1Score:e.side1??0,side2Score:e.side2??0,side1TiebreakScore:e.tiebreak1,side2TiebreakScore:e.tiebreak2}])}function u(e,t){return{setIndex:e,side:t,kind:`games`}}function d(e,t){return{setIndex:e,side:t,kind:`tiebreak`}}function f(e,t){return(t===1?e.side1:e.side2)!==void 0}function p(e){return ml(pl(e,n))}function m(e=!1){let t=e?Gp(2):2;for(let[n,r]of c().sets.entries()){if(!f(r,t))return u(n,t);if(!e&&!f(r,Gp(t)))return u(n,Gp(t));if(!h(n))return}}function h(e){let t=c().sets[e];return!f(t,1)||!f(t,2)?!1:_l(e,{side1:t.side1,side2:t.side2,tiebreak:g(t)},n)}function g(e){let t=[e.tiebreak1,e.tiebreak2].filter(e=>e!==void 0);return t.length?Math.min(...t):void 0}function _(){if(!N())return!1;let e=y(),t=c().sets[e];return p(e)||!f(t,1)||!f(t,2)?!1:wl(e,{side1:t.side1,side2:t.side2},n)}function v(){for(let e=c().sets.length-1;e>=0;--e){let t=c().sets[e];if(f(t,Gp(2)))return u(e,Gp(2));if(f(t,2))return u(e,2)}}function y(){for(let e=c().sets.length-1;e>=0;--e)if(!vp(c().sets[e]))return e;return 0}function b(){for(let e=0;e<r;e+=1){let t=c().sets[e];if(!p(e)){if(!f(t,1)||!f(t,2))return;continue}let n=x(t);if(n===void 0||n<10)return e}}function x(e){let t=[e.side1,e.side2].filter(e=>e!==void 0);return t.length?Math.min(...t):void 0}function S(e){let t=x(e);if(t!==void 0)return e.side2===t?2:1}function C(e){return e!==c()&&(t.set(e),k(),!0)}function w(e,t=!1){if(i){T(e);return}let n=b();if(n!==void 0){C(Wf(c(),{cell:u(n,t?Gp(2):2),digit:e,complement:!0}));return}let r=v(),a=t&&r?.side!==Gp(2)?void 0:r;if(a&&C(Wf(c(),{cell:a,digit:e})))return;let o=m(t);o&&C(Wf(c(),{cell:o,digit:e}))}function T(e){let t=y(),n=mp(c().sets[t]);C(Wf(c(),{cell:d(t,n??2),digit:e,complement:n!==void 0}))}function E(){for(let e=c().sets.length-1;e>=0;--e){let t=c().sets[e];if(!vp(t)){if(p(e)){let n=S(t)??2;O(u(e,n),D(x(t)),[u(e,1),u(e,2)],!0);return}if(t.tiebreak1!==void 0||t.tiebreak2!==void 0){let n=mp(t)??2,r=n===1?t.tiebreak1:t.tiebreak2;O(d(e,n),D(r),[d(e,1),d(e,2)],n!==void 0);return}for(let n of[Gp(2),2]){let r=dp(t,u(e,n));if(r!==void 0){O(u(e,n),D(r),[u(e,n)]);return}}}}}function D(e){return e===void 0?``:String(e).slice(0,-1)}function O(e,t,n,r=!1){let i=c();for(let e of n)i=Jf(i,e);for(let n of t)i=Wf(i,{cell:e,digit:Number(n),complement:r});C(i)}function k(){o.update(l()),A(),e.onChange?.()}function A(){if(!a)return;let e=_();a.disabled=!e,!e&&i&&(i=!1,a.setAttribute(nm,`false`))}function j(e){if(qp(e))return;let t=Kp(e.code);if(t!==void 0){e.preventDefault(),w(t,e.shiftKey);return}e.key===`Backspace`&&(e.preventDefault(),E())}function M(){let e=document.createElement(`div`);e.className=`chc-sec-dialpad`,e.addEventListener(`keydown`,j);let t=document.createElement(`div`);t.className=`chc-sec-dialpad-digits`;for(let e=0;e<=9;e+=1){let n=document.createElement(`button`);n.type=`button`,n.className=`chc-sec-btn chc-sec-key`,n.dataset.digit=String(e),n.textContent=String(e),n.addEventListener(`click`,()=>w(e)),s.set(e,n),t.append(n)}let n=document.createElement(`div`);n.className=`chc-sec-dialpad-side`;let r=document.createElement(`button`);r.type=`button`,r.className=`chc-sec-btn`,r.dataset.action=`tiebreak`,r.textContent=`Tiebreak`,r.setAttribute(nm,String(i)),r.disabled=!_(),r.addEventListener(`click`,()=>{i=!i,r.setAttribute(nm,String(i)),k()}),a=r;let o=document.createElement(`button`);return o.type=`button`,o.className=`chc-sec-btn chc-sec-key-back`,o.dataset.action=`backspace`,o.textContent=`Backspace`,o.addEventListener(`click`,()=>E()),n.append(r,o),e.append(t,n),e}function N(){let e=!1;for(let t=0;t<r;t+=1){if(p(t))continue;let r=pl(t,n);(r?.tiebreakFormat||Rf(r))&&(e=!0)}return e}}var{COMPLETED:im}=t.matchUpStatusConstants;function am(e,t){if(e.cleared)return{score:{sets:[]},matchUpStatusCodes:[]};let n=om(e);return{matchUpStatus:e.matchUpStatus??(e.winningSide?im:void 0),winningSide:e.winningSide,score:{sets:e.sets??[]},...t?{matchUpFormat:t}:{},...n?{matchUpStatusCodes:n}:{}}}function om({reasonCode:e,matchUpStatus:t,winningSide:n}){if(e)return jc(t)?[e,e]:n===1?[``,e]:[e]}var{DOUBLE_WALKOVER:sm,WALKOVER:cm,DEFAULTED:lm}=t.matchUpStatusConstants;function um(e){let{resolution:t,sideNames:n,scoreString:r,scoreComplete:i,scoreWinningSide:a,reasonDisplay:o,advancesTo:s}=e,c=e.labels??Rc(),l=e=>n[e-1],u=e=>c[e]??e;if(!t.hasEnding)return i&&a?{tone:`good`,headline:`${l(a)} def. ${l(dm(a))} ${r??``}`.trim(),detail:s?`advances to ${s}`:void 0}:{tone:`neutral`,headline:r?`${r} — not a finished result`:`No result entered yet`};let d=t.matchUpStatus;if(!d)return{tone:`neutral`,headline:`No result entered yet`};if(t.isDoubleExit){let e=d===sm?cm:lm;return{tone:`warn`,headline:`${u(d)} — neither side advances`,detail:fm([o,Pc(e)])}}let f=t.winningSide===1||t.winningSide===2?t.winningSide:void 0;return f?{tone:`good`,headline:`${u(d)} — ${l(f)} advances`,detail:fm([o,t.clearsScore?`no score recorded`:r])}:t.clearsScore&&r?{tone:`warn`,headline:`${u(d)} — the part-score of ${r} has been cleared`,detail:`nobody advances`}:Cc.has(d)?{tone:r?`good`:`neutral`,headline:r?`${u(d)} — ${r} recorded`:u(d),detail:fm([o,`nobody advances`])}:{tone:`warn`,headline:`${u(d)} — no winner yet`,detail:`not ready to submit`}}function dm(e){return e===1?2:1}function fm(e){let t=e.filter(e=>!!e);return t.length?t.join(` · `):void 0}var{RETIRED:pm,WALKOVER:mm,DEFAULTED:hm,IN_PROGRESS:gm,CANCELLED:_m,AWAITING_RESULT:vm,SUSPENDED:ym}=t.matchUpStatusConstants,bm=`chc-sec-btn`,xm=`chc-sec-btn chc-sec-btn-pill`,Sm=`chc-sec-check`,Cm=`chc-sec-other-menu`,wm=`chc-sec-other-item`,Tm=`aria-label`,Em=`chc-sec-spacer`,Dm=`Other…`,Om=`Other`,km=`chc-sec-band-headline`,Am=`chc-sec-band-detail`,jm=`The recorded result will be removed — Submit to clear it.`,Mm=`Enter a replacement score: a later match depends on this result.`,Nm=`aria-pressed`,Pm=`aria-expanded`,Fm=`M20 6 9 17l-5-5`,Im=62,Lm=6,Rm=`(width <= 560px)`;function zm(){return globalThis.matchMedia?.(Rm).matches??!1}var Bm=[`IN_PROGRESS`,`AWAITING_RESULT`,`SUSPENDED`],Vm={[mm]:`Did not play at all — no score`,[pm]:`Started, could not finish — score kept`,[hm]:`Removed by the referee`},Hm={w:mm,r:pm,d:hm},Um={i:gm,c:_m,a:vm,s:ym},Wm=0;function Gm(e){let t=e.labels??Rc(),n=e.region,r=e.matchUpFormat,i=e.approachLabel,a=e.store??e.region.store??Jp({matchUpFormat:e.matchUpFormat});e.initialState&&a.set({...a.get(),ending:e.initialState});let o=ce(),s=new Set(e.disabledMatchUpStatuses),c=e.clearable===!1&&o,l=!1,u,d,f=!1,p,m=!1,h=`chc-sec-title-${Wm+=1}`,g=J(`chc-sec`);g.dataset.component=`scoreEntryCard`;let _=J(`chc-sec-header`),v=J(`chc-sec-rows`),y=J(`chc-sec-endings`),b=J(`chc-sec-band`),x=J(`chc-sec-score-region`),S=Jm(`Submit`,`chc-sec-btn chc-sec-btn-primary`),C=Jm(`Clear`,bm);g.append(_,A(),b,j());let w=`.${Cm}, [data-action="other"], [data-action="switchApproach"]`,T=e=>{(m||f)&&(e.target?.closest(w)||(e.preventDefault(),e.stopPropagation(),e.type===`click`&&E()))};g.addEventListener(`pointerdown`,T,!0),g.addEventListener(`mousedown`,T,!0),g.addEventListener(`click`,T,!0);function E(){return!m&&!f?!1:(m=!1,f=!1,L(),!0)}return g.addEventListener(`keydown`,e=>{qp(e)||le(e)||z(e)||e.key!==`Enter`||S.disabled||e.target?.closest(`.chc-sec-other-menu`)||(e.preventDefault(),S.click())}),L(),{element:g,closeMenus:E,destroy:ye,refresh:ae,rerender:L,update:e=>{e.matchUpFormat&&(r=e.matchUpFormat,a.set(vee(M(),e.matchUpFormat))),e.region&&(n=e.region,e.region.store&&e.region.store!==a&&(e.region.store.set({...e.region.store.get(),ending:N()}),a=e.region.store)),e.approachLabel&&(i=e.approachLabel),L()},store:a,getModel:M,getState:N,holdsEntry:ce,titleId:h};function D(){let t=_;t.replaceChildren();let n=Km(`chc-sec-title`,e.title??`Score Entry`);n.id=h,t.append(n),e.context&&t.append(Km(`chc-sec-context`,e.context)),t.append(J(Em)),r&&t.append(k(r)),i&&t.append(O(i))}function O(t){let n=Jm(t,bm);if(n.dataset.action=`switchApproach`,!e.approaches?.length)return n.addEventListener(`click`,()=>e.onSwitchApproach?.()),n;let r=J(`chc-sec-approach-anchor`);if(n.setAttribute(`aria-expanded`,String(m)),n.setAttribute(`aria-haspopup`,`menu`),n.addEventListener(`click`,()=>{m=!m,f=!1,L()}),r.append(n),m){let n=J(`${Cm} chc-sec-approach-menu`);n.setAttribute(`role`,`menu`);for(let r of e.approaches){let i=r.label===t,a=Jm(``,wm);a.dataset.approach=r.key,a.setAttribute(`role`,`menuitemradio`),a.setAttribute(Nm,String(i));let o=J(Sm);i&&o.append(Ym(Fm,3)),a.append(o,Km(``,r.label)),a.addEventListener(`click`,()=>{m=!1,L(),i||e.onSelectApproach?.(r.key)}),n.append(a)}r.append(n)}return r}function k(t){if(!e.onEditFormat)return Km(`chc-sec-format`,t);let n=Jm(t,`chc-sec-format chc-sec-format-button`);return n.dataset.action=`editFormat`,n.setAttribute(Tm,`Scoring format ${t} — edit`),n.title=`Edit the scoring format`,n.addEventListener(`click`,()=>e.onEditFormat?.()),n}function A(){let e=J(`chc-sec-body`);return e.append(v,x,y),e}function j(){let r=J(`chc-sec-footer`),i=Jm(`Cancel`,bm);return i.dataset.action=`cancel`,i.addEventListener(`click`,()=>e.onCancel?.()),C.dataset.action=`clear`,C.addEventListener(`click`,()=>{a.set(Xf(M())),n.clear?.(),d=void 0,f=!1,l=!0,e.onClear?.(),L(),n.focusFirst?.()}),S.dataset.action=`submit`,S.addEventListener(`click`,()=>{if(c&&!ce()||Vc(W().matchUpStatus,e.disabledMatchUpStatuses,t))return;if(G()){e.onSubmit?.({cleared:!0});return}let n=W();e.onSubmit?.({matchUpStatus:n.matchUpStatus,winningSide:n.hasEnding?n.winningSide:Op(M()),reasonCode:N().reasonCode,score:n.clearsScore?void 0:Tp(M())})}),r.append(i,J(Em),C,S),r}function M(){return a.get()}function N(){return M().ending}function P(e){a.set(Zf(M(),e))}function F(){return Dp(M())&&!n.matchUpStatus?.()}function I(){return Vc(W().matchUpStatus,e.disabledMatchUpStatuses,t)??kp(M(),{sideNames:[e.sides[0].participantName,e.sides[1].participantName]})}function L(){let e=W();D(),fe(e.winningSide),he(),ge(),se()}function R(){let e=Sp(M()).clearsScore;g.dataset.scoreLocked=e?`true`:`false`;for(let t of v.querySelectorAll(`input.chc-sec-set-input`))U(t,e);for(let t of x.querySelectorAll(`input, button, textarea, select`))U(t,e)}function z(e){if(e.key!==`Tab`||e.shiftKey||e.defaultPrevented)return!1;let t=e.target;if(!t)return!1;if(B(t))return!S.disabled&&(e.preventDefault(),S.focus(),!0);if(t===S){let t=y.querySelector(`button:not([disabled])`);return t?(e.preventDefault(),t.focus(),!0):!1}return!1}function B(e){return e.classList.contains(`chc-sec-set-input`)?!0:(e.tagName===`INPUT`||e.tagName===`TEXTAREA`)&&x.contains(e)}function V(){if(!Sp(M()).clearsScore){u=void 0;return}let e=Ep(M());e&&(u=e),a.set(Yf(M())),n.clear?.()}function ee(e){return s.has(e)||e===pm&&!te()?!1:!ne(e)||!F()}function te(){return wp(M())||!!n.hasEntry?.()}function ne(e){return e===pm||e===hm||Cc.has(e)&&!Tc.has(e)}function re(){let e=g.querySelectorAll(`.chc-sec-endings button[data-ending], .chc-sec-side-option[data-ending]`);for(let t of e){let e=t.dataset.ending??``,n=!ee(e)&&t.getAttribute(Nm)!==`true`;t.disabled=n,n?t.title=ie(e):t.removeAttribute(`title`)}}function ie(n){let r=t[n]??n;return Vc(n,e.disabledMatchUpStatuses,t)||(n===pm&&!te()?`No score yet — ${r} keeps the score that was played`:`The score is complete — ${r} cannot follow it`)}function H(){if(!F())return!1;let e=N();if(e.matchEnding&&Cc.has(e.matchEnding))return P({kind:`match`,status:e.matchEnding}),f=!1,!0;let t=e.sideEnding?.status;return e.sideEnding&&(t===pm||t===hm)?(P({kind:`side`,sideNumber:e.sideEnding.sideNumber,status:e.sideEnding.status}),d=void 0,!0):!1}function ae(){if(H()){L();return}oe()}function U(e,t){if(t){if(e.disabled)return;e.disabled=!0,e.dataset.lockedByEnding=`true`;return}e.dataset.lockedByEnding&&(e.disabled=!1,delete e.dataset.lockedByEnding)}function W(){let e=Sp(M());return e.hasEnding?e:Mf(n.matchUpStatus?.(),Op(M()))}function oe(){se()}function G(){return l&&o&&!ce()&&!c}function se(){R(),re();let e=W();xe(e),S.disabled=c&&!ce()||!!I()||!(G()||e.isValid||!e.hasEnding&&F()),C.disabled=!ce(),S.title=c&&!ce()?t.clearRefused??Mm:``}function ce(){let e=N();return!!(e.sideEnding||e.matchEnding||e.reasonCode||wp(M())||n.hasEntry?.())}function le(e){if(e.key.length!==1||K(e.target))return!1;let t=Um[e.key.toLowerCase()];if(t)return ue(e,t);let n=Hm[e.key.toLowerCase()];if(!n)return!1;let r=e.key===e.key.toUpperCase()?Gp(2):2;return ee(n)?(e.preventDefault(),P({kind:`side`,sideNumber:r,status:n}),V(),d=N().sideEnding?r:void 0,f=!1,L(),de(r,n),!0):(e.preventDefault(),!0)}function ue(e,t){return e.preventDefault(),!Ff().includes(t)||!ee(t)||(P({kind:`match`,status:t}),V(),f=!1,L(),(g.querySelector(`.chc-sec-endings button[data-ending="${t}"]`)??g.querySelector(`.chc-sec-endings button[data-action="other"]`))?.focus(),!0)}function de(e,t){let n=N().sideEnding?`[data-panel-side="${e}"] button[data-ending="${t}"]`:`button[data-action="endedEarly"][data-side="${e}"]`;g.querySelector(n)?.focus()}function K(e){let t=e;return t?t.isContentEditable||t.tagName===`TEXTAREA`?!0:t.tagName===`INPUT`&&!t.classList.contains(`chc-sec-set-input`):!1}function fe(e){v.replaceChildren();let t=n.columns?.()??[],r=t.map(e=>e.width??`${Im}px`).join(` `),i=t.length>Lm||zm(),a=i?`${r} 1fr`:`1fr ${r}`;if(t.some(e=>e.heading)){let e=J(`chc-sec-row-head`);e.style.gridTemplateColumns=a;let n=t.map(e=>qm(e.heading??``));e.append(...i?n:[Km(``,`PLAYER`),...n]),v.append(e)}for(let t of[1,2])v.append(pe(t,a,e,i)),d===t&&v.append(me(t))}function pe(r,i,a,o=!1){let s=e.sides[r-1],c=N().sideEnding,l=c&&(c.sideNumber===r||N().bothSidesOut)?c:void 0,u=J(`chc-sec-row`);u.style.gridTemplateColumns=i,u.dataset.side=String(r),u.dataset.stacked=String(o),u.dataset.ended=String(c?.sideNumber===r),u.dataset.bothOut=String(!!N().bothSidesOut),u.dataset.winner=String(a===r);let p=J(`chc-sec-participant`),m=J(Sm);a===r&&m.append(Ym(Fm,3));let h=Jm(``,`chc-sec-opener`);h.dataset.action=`endedEarly`,h.dataset.side=String(r),h.title=`How did this match end for them?`;let g=s.seed?`${s.participantName} ${s.seed}`:s.participantName;if(h.setAttribute(Tm,`${g} — ended early`),h.setAttribute(Pm,String(d===r)),h.setAttribute(Nm,String(!!l)),h.append(Km(`chc-sec-name`,s.participantName)),s.seed&&h.append(Km(`chc-sec-seed`,s.seed)),h.append(Ym(`m6 9 6 6 6-6`,2.5)),h.addEventListener(`click`,()=>{d=d===r?void 0:r,f=!1,L()}),p.append(m,h),l){let e=J(`chc-sec-row-ending`);e.dataset.rowEnding=l.status,e.textContent=t[l.status]??l.status,p.append(e)}let _=n.rowCells?.(r)??[];return o&&r===2?u.append(..._,p):u.append(p,..._),u}function me(n){let r=e.sides[n-1],i=J(`chc-sec-side-panel`);i.dataset.panelSide=String(n),i.append(Km(`chc-sec-side-panel-head`,`What happened to ${r.participantName}?`));let a=J(`chc-sec-side-panel-body`);for(let e of Pf().filter(e=>!s.has(e))){let r=N().sideEnding?.sideNumber===n&&N().sideEnding?.status===e,i=Jm(``,`chc-sec-btn chc-sec-side-option`);i.dataset.ending=e,i.setAttribute(Nm,String(r));let o=J(`chc-sec-side-option-label`);o.append(Km(``,t[e]??e));let s=Vm[e];s&&o.append(Km(`chc-sec-side-option-hint`,s)),i.append(o),i.disabled=!ee(e)&&!r,i.disabled&&(i.title=ie(e)),i.addEventListener(`click`,()=>{P({kind:`side`,sideNumber:n,status:e}),V(),L()}),a.append(i)}let o=Af(N()),c=N().sideEnding?.sideNumber===n?pf(e.statusCodeGroups,o):[];if(c.length){a.append(Km(`chc-sec-reason-head`,`REASON`));let e=J(`chc-sec-reasons`);for(let t of c){let n=t.matchUpStatusCode,r=Jm(mf(t),xm);r.dataset.reason=n,r.setAttribute(Nm,String(N().reasonCode===n));let i=hf(t);i&&(r.title=i),r.addEventListener(`click`,()=>{P({kind:`reasonCode`,code:n}),L()}),e.append(r)}a.append(e)}if(N().sideEnding?.sideNumber===n&&Df(N())){let t=e.sides[+(n===1)],r=document.createElement(`label`);r.className=`chc-sec-both-out`;let i=document.createElement(`input`);i.type=`checkbox`,i.checked=!!N().bothSidesOut,i.dataset.action=`bothSidesOut`,i.addEventListener(`change`,()=>{P({kind:`bothSidesOut`}),L()}),r.append(i,Km(``,`${t.participantName} did not appear either — no one advances`)),a.append(r)}return i.append(a),i}function he(){x.replaceChildren();let e=n.block?.();e&&x.append(e)}function ge(){y.replaceChildren(),y.append(Hc(e.disabledMatchUpStatuses,t));let n=Ff().filter(e=>!s.has(e)),r=n.filter(e=>Bm.includes(e)),i=n.filter(e=>!Bm.includes(e));for(let e of r)y.append(be(e,t[e]??e));if(!i.length)return;let a=!!N().matchEnding&&i.includes(N().matchEnding),o=a&&N().matchEnding?t[N().matchEnding]??N().matchEnding:void 0,c=Jm(o?`${Om}: ${o}`:Dm,xm);if(c.dataset.action=`other`,c.setAttribute(Nm,String(a)),c.setAttribute(Pm,String(f)),c.append(Ym(`m6 9 6 6 6-6`,2.5)),c.addEventListener(`click`,()=>{f=!f,m=!1,L()}),y.append(c),!f){ye();return}let l=J(Cm);for(let e of i){let n=N().matchEnding===e,r=Jm(``,wm);r.dataset.ending=e,r.setAttribute(Nm,String(n));let i=J(Sm);n&&i.append(Ym(Fm,3)),r.append(i,Km(``,t[e]??e)),r.addEventListener(`click`,()=>{P({kind:`match`,status:e}),V(),f=!1,L()}),l.append(r)}y.append(l),ve(l,c)}function _e(e,t){let n=t.getBoundingClientRect(),r=e.offsetHeight,i=globalThis.innerHeight-n.bottom<r+6&&n.top>r+6;e.style.position=`fixed`,e.style.left=`${n.left}px`,e.style.top=i?`${n.top-r-6}px`:`${n.bottom+6}px`,e.style.bottom=`auto`,e.style.right=`auto`}function ve(e,t){_e(e,t),ye(),p=()=>_e(e,t),globalThis.addEventListener(`scroll`,p,!0),globalThis.addEventListener(`resize`,p)}function ye(){p&&=(globalThis.removeEventListener(`scroll`,p,!0),globalThis.removeEventListener(`resize`,p),void 0)}function be(e,t){let n=Jm(t,xm);return n.dataset.ending=e,n.setAttribute(Nm,String(N().matchEnding===e)),n.addEventListener(`click`,()=>{P({kind:`match`,status:e}),V(),f=!1,L()}),n}function xe(n){let r=I();if(r){b.replaceChildren(),b.dataset.tone=`warn`,b.setAttribute(`role`,`status`),b.append(Km(km,r)),Se(!0);return}if(c&&!ce()){b.replaceChildren(),b.dataset.tone=`warn`,b.setAttribute(`role`,`status`),b.append(Km(km,t.clearRefused??Mm)),Se(!0);return}if(G()){b.replaceChildren(),b.dataset.tone=`warn`,b.setAttribute(`role`,`status`),b.append(Km(km,t.clearedHeadline??jm)),Se(!0);return}let i=Af(N()),a=pf(e.statusCodeGroups,i).find(e=>e.matchUpStatusCode===N().reasonCode),o=um({resolution:n,sideNames:[e.sides[0].participantName,e.sides[1].participantName],scoreString:Tp(M())||u,scoreComplete:F(),scoreWinningSide:Op(M()),reasonDisplay:a?mf(a):void 0,labels:t});b.replaceChildren(),b.dataset.tone=o.tone,b.setAttribute(`role`,`status`),b.append(Km(km,o.headline)),o.detail&&b.append(J(Em),Km(Am,o.detail)),Se(!o.detail)}function Se(e){let t=n.bandControl?.();t&&(e&&b.append(J(Em)),b.append(t))}}function J(e){let t=document.createElement(`div`);return e&&(t.className=e),t}function Km(e,t){let n=J(e);return n.textContent=t,n}function qm(e){return Km(`chc-sec-col-head`,e)}function Jm(e,t){let n=document.createElement(`button`);return n.type=`button`,n.className=t,e&&(n.textContent=e),n}function Ym(e,t=2){let n=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`);n.setAttribute(`width`,`15`),n.setAttribute(`height`,`15`),n.setAttribute(`viewBox`,`0 0 24 24`),n.setAttribute(`fill`,`none`),n.setAttribute(`stroke`,`currentColor`),n.setAttribute(`stroke-width`,String(t)),n.setAttribute(`stroke-linecap`,`round`),n.setAttribute(`stroke-linejoin`,`round`),n.setAttribute(`aria-hidden`,`true`);let r=document.createElementNS(`http://www.w3.org/2000/svg`,`path`);return r.setAttribute(`d`,e),n.append(r),n}var Xm={dynamicSets:`Dynamic Sets`,freeScore:`Free Score`,dialPad:`Dial Pad`},Zm=[`dynamicSets`,`freeScore`,`dialPad`],Qm=780;function $m(e){return e instanceof HTMLElement?e.isContentEditable?!0:e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement:!1}function eh(e){return e.metaKey||e.ctrlKey||e.altKey}function th(e){let n=e.approaches?.length?e.approaches:Zm,r=e.labels??Rc(),i=e.approach??n[0],a=e.matchUpFormat??e.matchUp?.matchUpFormat,o=a,s=!1,c=!1,l=Jp({matchUpFormat:a,approach:i,sets:e.sets??e.matchUp?.score?.sets,matchUp:e.matchUp}),u=x(),d=h(i),f=Gm({...e,labels:r,matchUpFormat:a,store:l,region:d,approachLabel:Xm[i],approaches:n.length>1?n.map(m):void 0,onSelectApproach:e=>g(e),onEditFormat:e.onFormatChange?v:void 0,onCancel:()=>{e.onCancel?.(),D()},onSubmit:t=>{let n=Cp(l.get()),r=a===o?void 0:a;e.onSubmit?.({...t,sets:n,outcome:am({...t,sets:n},r)}),D()}}),p=se.open({content:f.element,config:{maxWidth:Qm,clickAway:!1,padding:`0`,...e.modalConfig},onClose:()=>{E(),O()}});document.addEventListener(`keydown`,C),y(),b();function m(e){return{key:e,label:Xm[e]}}function h(t){let n=()=>f.refresh();return t===`freeScore`?tm({store:l,onChange:n,disabledMatchUpStatuses:e.disabledMatchUpStatuses,statusScopeLabels:r}):t===`dialPad`?rm({store:l,onChange:n}):Zp({store:l,sideNames:[e.sides[0].participantName,e.sides[1].participantName],onChange:n,onStructureChange:()=>f.rerender()})}function g(t){s||t===i||(l.set($f(l.get(),t)),i=t,d=h(t),f.update({region:d,approachLabel:Xm[t]}),b(),e.onApproachChange?.(t))}function _(n){if(n===a)return;let r=a,o=Cp(l.get()),s=t.scoreGovernor.retainScoreForFormat({sets:o,matchUpFormat:n,previousMatchUpFormat:r});a=n,f.update({matchUpFormat:n}),d=h(i),f.update({region:d}),b(),s.discarded.length&&e.onScoreDiscarded?.({...s,matchUpFormat:n}),e.onFormatChange?.(n)}function v(){let t=e.openFormatPicker??Ko,n=S();n&&(n.inert=!0),t({existingMatchUpFormat:a??`SET3-S:6/TB7`,callback:e=>{e&&_(e)},onClose:()=>{n&&(n.inert=!1),b()}})}function y(){let e=S();e&&(e.setAttribute(`aria-modal`,`true`),e.setAttribute(`aria-labelledby`,f.titleId))}function b(){if(!s&&e.autoFocus!==!1){if(u){S()?.focus();return}if(d.focusFirst){d.focusFirst();return}(f.element.querySelector(`input:not([disabled]), button[data-digit]`)??S())?.focus()}}function x(){let t=e.matchUp;return t?!!t.winningSide||jc(t.matchUpStatus)||Dp(l.get()):!1}function S(){return f.element.closest(`section[id^="cmdl-"]`)}function C(e){if(s||!T())return;if(e.key===`Escape`){if(e.preventDefault(),f.closeMenus())return;w(`cancel`)?.click();return}if(e.key!==`Delete`&&e.key!==`Backspace`||e.defaultPrevented||eh(e)||$m(e.target)||!S()?.contains(e.target))return;let t=w(`clear`);t&&!t.disabled&&(e.preventDefault(),t.click())}function w(e){return f.element.querySelector(`button[data-action="${e}"]`)}function T(){let e=S();return e?[...document.querySelectorAll(`section[id^="cmdl-"]`)].at(-1)===e:!1}function E(){s||(s=!0,document.removeEventListener(`keydown`,C),f.destroy())}function D(){s||p.close(),E(),O()}function O(){c||(c=!0,e.onClose?.())}return{card:f,approach:()=>i,setApproach:g,setMatchUpFormat:_,close:D}}var nh=[`input:not([inert]):not([inert] *)`,`select:not([inert]):not([inert] *)`,`textarea:not([inert]):not([inert] *)`,`a[href]:not([inert]):not([inert] *)`,`area[href]:not([inert]):not([inert] *)`,`button:not([inert]):not([inert] *)`,`[tabindex]:not(slot):not([inert]):not([inert] *)`,`audio[controls]:not([inert]):not([inert] *)`,`video[controls]:not([inert]):not([inert] *)`,`[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)`,`details>summary:first-of-type:not([inert]):not([inert] *)`,`details:not([inert]):not([inert] *)`],rh=nh.join(`,`),ih=typeof Element>`u`,ah=ih?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,oh=!ih&&Element.prototype.getRootNode?function(e){return e?.getRootNode?.call(e)}:function(e){return e?.ownerDocument},sh=function(e,t){t===void 0&&(t=!0);var n=e?.getAttribute?.call(e,`inert`);return n===``||n===`true`||t&&e&&(typeof e.closest==`function`?e.closest(`[inert]`):sh(e.parentNode))},ch=function(e){var t=e?.getAttribute?.call(e,`contenteditable`);return t===``||t===`true`},lh=function(e,t,n){if(sh(e))return[];var r=Array.prototype.slice.apply(e.querySelectorAll(rh));return t&&ah.call(e,rh)&&r.unshift(e),r=r.filter(n),r},uh=function(e,t,n){for(var r=[],i=Array.from(e);i.length;){var a=i.shift();if(!sh(a,!1)){if(a.tagName===`SLOT`){var o=a.assignedElements(),s=uh(o.length?o:a.children,!0,n);n.flatten?r.push.apply(r,s):r.push({scopeParent:a,candidates:s})}else{ah.call(a,rh)&&n.filter(a)&&(t||!e.includes(a))&&r.push(a);var c=a.shadowRoot||typeof n.getShadowRoot==`function`&&n.getShadowRoot(a),l=!sh(c,!1)&&(!n.shadowRootFilter||n.shadowRootFilter(a));if(c&&l){var u=uh(c===!0?a.children:c.children,!0,n);n.flatten?r.push.apply(r,u):r.push({scopeParent:a,candidates:u})}else i.unshift.apply(i,a.children)}}}return r},dh=function(e){return!isNaN(parseInt(e.getAttribute(`tabindex`),10))},fh=function(e){if(!e)throw Error(`No node provided`);return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||ch(e))&&!dh(e)?0:e.tabIndex},ph=function(e,t){var n=fh(e);return n<0&&t&&!dh(e)?0:n},mh=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},hh=function(e){return e.tagName===`INPUT`},gh=function(e){return hh(e)&&e.type===`hidden`},_h=function(e){return e.tagName===`DETAILS`&&Array.prototype.slice.apply(e.children).some(function(e){return e.tagName===`SUMMARY`})},vh=function(e,t){for(var n=0;n<e.length;n++)if(e[n].checked&&e[n].form===t)return e[n]},yh=function(e){if(!e.name)return!0;var t=e.form||oh(e),n=function(e){return t.querySelectorAll(`input[type="radio"][name="`+e+`"]`)},r;if(typeof window<`u`&&window.CSS!==void 0&&typeof window.CSS.escape==`function`)r=n(window.CSS.escape(e.name));else try{r=n(e.name)}catch(e){return console.error(`Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s`,e.message),!1}var i=vh(r,e.form);return!i||i===e},bh=function(e){return hh(e)&&e.type===`radio`},xh=function(e){return bh(e)&&!yh(e)},Sh=function(e){var t=e&&oh(e),n=t?.host,r=!1;if(t&&t!==e){var i,a,o;for(r=!!((i=n)!=null&&(a=i.ownerDocument)!=null&&a.contains(n)||e!=null&&(o=e.ownerDocument)!=null&&o.contains(e));!r&&n;){var s,c;t=oh(n),n=t?.host,r=!!((s=n)!=null&&(c=s.ownerDocument)!=null&&c.contains(n))}}return r},Ch=function(e){var t=e.getBoundingClientRect(),n=t.width,r=t.height;return n===0&&r===0},wh=function(e,t){var n=t.displayCheck,r=t.getShadowRoot;if(n===`full-native`&&`checkVisibility`in e)return!e.checkVisibility({checkOpacity:!1,opacityProperty:!1,contentVisibilityAuto:!0,visibilityProperty:!0,checkVisibilityCSS:!0});var i=getComputedStyle(e).visibility;if(i===`hidden`||i===`collapse`)return!0;var a=ah.call(e,`details>summary:first-of-type`)?e.parentElement:e;if(ah.call(a,`details:not([open]) *`))return!0;if(!n||n===`full`||n===`full-native`||n===`legacy-full`){if(typeof r==`function`){for(var o=e;e;){var s=e.parentElement,c=oh(e);if(s&&!s.shadowRoot&&r(s)===!0)return Ch(e);e=e.assignedSlot?e.assignedSlot:!s&&c!==e.ownerDocument?c.host:s}e=o}if(Sh(e))return!e.getClientRects().length;if(n!==`legacy-full`)return!0}else if(n===`non-zero-area`)return Ch(e);return!1},Th=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName===`FIELDSET`&&t.disabled){for(var n=0;n<t.children.length;n++){var r=t.children.item(n);if(r.tagName===`LEGEND`)return ah.call(t,`fieldset[disabled] *`)?!0:!r.contains(e)}return!0}t=t.parentElement}return!1},Eh=function(e,t){return!(t.disabled||gh(t)||wh(t,e)||_h(t)||Th(t))},Dh=function(e,t){return!(xh(t)||fh(t)<0||!Eh(e,t))},Oh=function(e){var t=parseInt(e.getAttribute(`tabindex`),10);return!!(isNaN(t)||t>=0)},kh=function(e){var t=[],n=[];return e.forEach(function(e,r){var i=!!e.scopeParent,a=i?e.scopeParent:e,o=ph(a,i),s=i?kh(e.candidates):a;o===0?i?t.push.apply(t,s):t.push(a):n.push({documentOrder:r,tabIndex:o,item:e,isScope:i,content:s})}),n.sort(mh).reduce(function(e,t){return t.isScope?e.push.apply(e,t.content):e.push(t.content),e},[]).concat(t)},Ah=function(e,t){return t||={},kh(t.getShadowRoot?uh([e],t.includeContainer,{filter:Dh.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:Oh}):lh(e,t.includeContainer,Dh.bind(null,t)))},jh=function(e,t){return t||={},t.getShadowRoot?uh([e],t.includeContainer,{filter:Eh.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):lh(e,t.includeContainer,Eh.bind(null,t))},Mh=function(e,t){if(t||={},!e)throw Error(`No node provided`);return ah.call(e,rh)!==!1&&Dh(t,e)},Nh=nh.concat(`iframe:not([inert]):not([inert] *)`).join(`,`),Ph=function(e,t){if(t||={},!e)throw Error(`No node provided`);return ah.call(e,Nh)!==!1&&Eh(t,e)};function Fh(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Ih(e){if(Array.isArray(e))return Fh(e)}function Lh(e,t){var n=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(!n){if(Array.isArray(e)||(n=Kh(e))||t){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
176
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||n.return==null||n.return()}finally{if(s)throw a}}}}function
|
|
177
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Vh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Hh(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Vh(Object(n),!0).forEach(function(t){Rh(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Vh(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Uh(e){return Ih(e)||zh(e)||Kh(e)||Bh()}function Wh(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Gh(e){var t=Wh(e,`string`);return typeof t==`symbol`?t:t+``}function Kh(e,t){if(e){if(typeof e==`string`)return Fh(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Fh(e,t):void 0}}var qh={getActiveTrap:function(e){return e?.length>0?e[e.length-1]:null},activateTrap:function(e,t){t!==qh.getActiveTrap(e)&&qh.pauseTrap(e);var n=e.indexOf(t);n===-1||e.splice(n,1),e.push(t)},deactivateTrap:function(e,t){var n=e.indexOf(t);n!==-1&&e.splice(n,1),qh.unpauseTrap(e)},pauseTrap:function(e){qh.getActiveTrap(e)?._setPausedState(!0)},unpauseTrap:function(e){var t=qh.getActiveTrap(e);t&&!t._isManuallyPaused()&&t._setPausedState(!1)}},Jh=function(e){return e.tagName&&e.tagName.toLowerCase()===`input`&&typeof e.select==`function`},Yh=function(e){return e?.key===`Escape`||e?.key===`Esc`||e?.keyCode===27},Xh=function(e){return e?.key===`Tab`||e?.keyCode===9},Zh=function(e){return Xh(e)&&!e.shiftKey},Qh=function(e){return Xh(e)&&e.shiftKey},$h=function(e){return setTimeout(e,0)},eg=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return typeof e==`function`?e.apply(void 0,n):e},tg=function(e){return e.target.shadowRoot&&typeof e.composedPath==`function`?e.composedPath()[0]:e.target},ng=[],rg=function(e,t){var n=t?.document||document,r=t?.trapStack||ng,i=Hh({returnFocusOnDeactivate:!0,escapeDeactivates:!0,delayInitialFocus:!0,delayReturnFocus:!0,isolateSubtrees:!1,isKeyForward:Zh,isKeyBackward:Qh},t),a={containers:[],containerGroups:[],tabbableGroups:[],adjacentElements:new Set,alreadySilent:new Set,nodeFocusedBeforeActivation:null,mostRecentlyFocusedNode:null,active:!1,paused:!1,manuallyPaused:!1,delayInitialFocusTimer:void 0,recentNavEvent:void 0},o,s=function(e,t,n){return e&&e[t]!==void 0?e[t]:i[n||t]},c=function(e,t){var n=typeof t?.composedPath==`function`?t.composedPath():void 0;return a.containerGroups.findIndex(function(t){var r=t.container,i=t.tabbableNodes;return r.contains(e)||n?.includes(r)||i.find(function(t){return t===e})})},l=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=t.hasFallback,a=r!==void 0&&r,o=t.params,s=o===void 0?[]:o,c=i[e];if(typeof c==`function`&&(c=c.apply(void 0,Uh(s))),c===!0&&(c=void 0),!c){if(c===void 0||c===!1)return c;throw Error(`\`${e}\` was specified but was not a node, or did not return a node`)}var l=c;if(typeof c==`string`){try{l=n.querySelector(c)}catch(t){throw Error(`\`${e}\` appears to be an invalid selector; error="${t.message}"`,{cause:t})}if(!l&&!a)throw Error(`\`${e}\` as selector refers to no known node`)}return l},u=function(e){var t=e.activeElement;return t?t.shadowRoot&&t.shadowRoot.activeElement!==null?u(t.shadowRoot):t:null},d=function(){var e=l(`initialFocus`,{hasFallback:!0});if(e===!1)return!1;if(e===void 0||e&&!Ph(e,i.tabbableOptions)){var t=u(n);if(c(t)>=0)e=t;else{var r=a.tabbableGroups[0];e=r&&r.firstTabbableNode||l(`fallbackFocus`)}}else e===null&&(e=l(`fallbackFocus`));if(!e)throw Error(`Your focus-trap needs to have at least one focusable element`);return e},f=function(){if(a.containerGroups=a.containers.map(function(e){var t=Ah(e,i.tabbableOptions),n=jh(e,i.tabbableOptions),r=t.length>0?t[0]:void 0,a=t.length>0?t[t.length-1]:void 0,o=n.find(function(e){return Mh(e)}),s=n.slice().reverse().find(function(e){return Mh(e)});return{container:e,tabbableNodes:t,focusableNodes:n,posTabIndexesFound:!!t.find(function(e){return fh(e)>0}),firstTabbableNode:r,lastTabbableNode:a,firstDomTabbableNode:o,lastDomTabbableNode:s,nextTabbableNode:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,i=t.indexOf(e);return i<0?r?n.slice(n.indexOf(e)+1).find(function(e){return Mh(e)}):n.slice(0,n.indexOf(e)).reverse().find(function(e){return Mh(e)}):t[i+(r?1:-1)]}}}),a.tabbableGroups=a.containerGroups.filter(function(e){return e.tabbableNodes.length>0}),a.tabbableGroups.length<=0&&!l(`fallbackFocus`))throw Error(`Your focus-trap must have at least one container with at least one tabbable node in it at all times`);if(a.containerGroups.find(function(e){return e.posTabIndexesFound})&&a.containerGroups.length>1)throw Error(`At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.`)},p=function(e){if(e!==!1){if(e===u(n)){a.mostRecentlyFocusedNode=e;return}if(!e||!e.focus){p(d());return}e.focus({preventScroll:!!i.preventScroll}),a.mostRecentlyFocusedNode=e,Jh(e)&&e.select()}},m=function(e){var t=l(`setReturnFocus`,{params:[e]});return t||t!==!1&&e},h=function(e){var t=e.target,n=e.event,r=e.isBackward,o=r!==void 0&&r;t||=tg(n),f();var s=null;if(a.tabbableGroups.length>0){var u=c(t,n),d=u>=0?a.containerGroups[u]:void 0;if(u<0)s=o?a.tabbableGroups[a.tabbableGroups.length-1].lastTabbableNode:a.tabbableGroups[0].firstTabbableNode;else if(o){var p=a.tabbableGroups.findIndex(function(e){var n=e.firstTabbableNode;return t===n});if(p<0&&(d.container===t||Ph(t,i.tabbableOptions)&&!Mh(t,i.tabbableOptions)&&!d.nextTabbableNode(t,!1))&&(p=u),p>=0){var m=p===0?a.tabbableGroups.length-1:p-1,h=a.tabbableGroups[m];s=fh(t)>=0?h.lastTabbableNode:h.lastDomTabbableNode}else Xh(n)||(s=d.nextTabbableNode(t,!1))}else{var g=a.tabbableGroups.findIndex(function(e){var n=e.lastTabbableNode;return t===n});if(g<0&&(d.container===t||Ph(t,i.tabbableOptions)&&!Mh(t,i.tabbableOptions)&&!d.nextTabbableNode(t))&&(g=u),g>=0){var _=g===a.tabbableGroups.length-1?0:g+1,v=a.tabbableGroups[_];s=fh(t)>=0?v.firstTabbableNode:v.firstDomTabbableNode}else Xh(n)||(s=d.nextTabbableNode(t))}}else s=l(`fallbackFocus`);return s},g=function(e){if(!(c(tg(e),e)>=0)){if(eg(i.clickOutsideDeactivates,e)){o.deactivate({returnFocus:i.returnFocusOnDeactivate});return}eg(i.allowOutsideClick,e)||e.preventDefault()}},_=function(e){var t=tg(e),n=c(t,e)>=0;if(n||t instanceof Document)n&&(a.mostRecentlyFocusedNode=t);else{e.stopImmediatePropagation();var r,o=!0;if(a.mostRecentlyFocusedNode){if(fh(a.mostRecentlyFocusedNode)>0){var s=c(a.mostRecentlyFocusedNode),l=a.containerGroups[s].tabbableNodes;if(l.length>0){var u=l.findIndex(function(e){return e===a.mostRecentlyFocusedNode});u>=0&&(i.isKeyForward(a.recentNavEvent)?u+1<l.length&&(r=l[u+1],o=!1):u-1>=0&&(r=l[u-1],o=!1))}}else a.containerGroups.some(function(e){return e.tabbableNodes.some(function(e){return fh(e)>0})})||(o=!1)}else o=!1;o&&(r=h({target:a.mostRecentlyFocusedNode,isBackward:i.isKeyBackward(a.recentNavEvent)})),p(r||a.mostRecentlyFocusedNode||d())}a.recentNavEvent=void 0},v=function(e){var t=arguments.length>1&&arguments[1]!==void 0&&arguments[1];a.recentNavEvent=e;var n=h({event:e,isBackward:t});n&&(Xh(e)&&e.preventDefault(),p(n))},y=function(e){(i.isKeyForward(e)||i.isKeyBackward(e))&&v(e,i.isKeyBackward(e))},b=function(e){Yh(e)&&eg(i.escapeDeactivates,e)!==!1&&(e.preventDefault(),o.deactivate())},x=function(e){c(tg(e),e)>=0||eg(i.clickOutsideDeactivates,e)||eg(i.allowOutsideClick,e)||(e.preventDefault(),e.stopImmediatePropagation())},S=function(){if(a.active){qh.activateTrap(r,o);var e;return i.delayInitialFocus?e=new Promise(function(e){a.delayInitialFocusTimer=$h(function(){p(d()),e()})}):p(d()),n.addEventListener(`focusin`,_,!0),n.addEventListener(`mousedown`,g,{capture:!0,passive:!1}),n.addEventListener(`touchstart`,g,{capture:!0,passive:!1}),n.addEventListener(`click`,x,{capture:!0,passive:!1}),n.addEventListener(`keydown`,y,{capture:!0,passive:!1}),n.addEventListener(`keydown`,b),e}},C=function(e){a.active&&!a.paused&&o._setSubtreeIsolation(!1),a.adjacentElements.clear(),a.alreadySilent.clear();var t=new Set,n=new Set,r=Lh(e),i;try{for(r.s();!(i=r.n()).done;){var s=i.value;t.add(s);for(var c=typeof ShadowRoot<`u`&&s.getRootNode()instanceof ShadowRoot,l=s;l;){t.add(l);var u=l.parentElement,d=[];u?d=u.children:!u&&c&&(d=l.getRootNode().children,u=l.getRootNode().host,c=typeof ShadowRoot<`u`&&u.getRootNode()instanceof ShadowRoot);var f=Lh(d),p;try{for(f.s();!(p=f.n()).done;){var m=p.value;n.add(m)}}catch(e){f.e(e)}finally{f.f()}l=u}}}catch(e){r.e(e)}finally{r.f()}t.forEach(function(e){n.delete(e)}),a.adjacentElements=n},w=function(){if(a.active)return n.removeEventListener(`focusin`,_,!0),n.removeEventListener(`mousedown`,g,!0),n.removeEventListener(`touchstart`,g,!0),n.removeEventListener(`click`,x,!0),n.removeEventListener(`keydown`,y,!0),n.removeEventListener(`keydown`,b),o},T=typeof window<`u`&&`MutationObserver`in window?new MutationObserver(function(e){var t=a.mostRecentlyFocusedNode;t&&e.some(function(e){return Array.from(e.removedNodes).some(function(e){return e===t||typeof e.contains==`function`&&e.contains(t)})})&&a.containers.some(function(e){return e?.isConnected})&&(f(),p(d()))}):void 0,E=function(){T&&(T.disconnect(),a.active&&!a.paused&&a.containers.map(function(e){T.observe(e,{subtree:!0,childList:!0})}))};return o={get active(){return a.active},get paused(){return a.paused},activate:function(e){if(a.active)return this;var t=s(e,`onActivate`),i=s(e,`onPostActivate`),c=s(e,`checkCanFocusTrap`),l=qh.getActiveTrap(r),d=!1;if(l&&!l.paused){var p;(p=l._setSubtreeIsolation)==null||p.call(l,!1),d=!0}try{c||f(),a.active=!0,a.paused=!1,a.nodeFocusedBeforeActivation=u(n),t?.({trap:o});var m=function(){c&&f();var e=function(){o._setSubtreeIsolation(!0),E(),i?.({trap:o})},t=S();t?t.then(e):e()};if(c)return c(a.containers.concat()).then(m,m),this;m()}catch(e){if(l===qh.getActiveTrap(r)&&d){var h;(h=l._setSubtreeIsolation)==null||h.call(l,!0)}throw e}return this},deactivate:function(e){if(!a.active)return this;var t=Hh({onDeactivate:i.onDeactivate,onPostDeactivate:i.onPostDeactivate,checkCanReturnFocus:i.checkCanReturnFocus},e);clearTimeout(a.delayInitialFocusTimer),a.delayInitialFocusTimer=void 0,a.paused||o._setSubtreeIsolation(!1),a.alreadySilent.clear(),w(),a.active=!1,a.paused=!1,E(),qh.deactivateTrap(r,o);var n=s(t,`onDeactivate`),c=s(t,`onPostDeactivate`),l=s(t,`checkCanReturnFocus`),u=s(t,`delayReturnFocus`),d=s(t,`returnFocus`,`returnFocusOnDeactivate`);n?.({trap:o});var f=function(){d&&p(m(a.nodeFocusedBeforeActivation)),c?.({trap:o})},h=function(){u&&d?$h(f):f()};return d&&l?(l(m(a.nodeFocusedBeforeActivation)).then(h,h),this):(h(),this)},pause:function(e){return a.active?(a.manuallyPaused=!0,this._setPausedState(!0,e)):this},unpause:function(e){return!a.active||(a.manuallyPaused=!1,r[r.length-1]!==this)?this:this._setPausedState(!1,e)},updateContainerElements:function(e){return a.containers=[].concat(e).filter(Boolean).map(function(e){return typeof e==`string`?n.querySelector(e):e}),i.isolateSubtrees&&C(a.containers),a.active&&(f(),a.paused||o._setSubtreeIsolation(!0)),E(),this}},Object.defineProperties(o,{_isManuallyPaused:{value:function(){return a.manuallyPaused}},_setPausedState:{value:function(e,t){if(a.paused===e)return this;if(a.paused=e,e){var n=s(t,`onPause`),r=s(t,`onPostPause`);n?.({trap:o}),w(),o._setSubtreeIsolation(!1),E(),r?.({trap:o})}else{var i=s(t,`onUnpause`),c=s(t,`onPostUnpause`);i?.({trap:o}),(function(){f();var e=function(){o._setSubtreeIsolation(!0),E(),c?.({trap:o})},t=S();t?t.then(e):e()})()}return this}},_setSubtreeIsolation:{value:function(e){i.isolateSubtrees&&a.adjacentElements.forEach(function(t){if(e)switch(i.isolateSubtrees){case`aria-hidden`:(t.ariaHidden===`true`||t.getAttribute(`aria-hidden`)?.toLowerCase()===`true`)&&a.alreadySilent.add(t),t.setAttribute(`aria-hidden`,`true`);break;default:(t.inert||t.hasAttribute(`inert`))&&a.alreadySilent.add(t),t.setAttribute(`inert`,!0)}else if(!a.alreadySilent.has(t))switch(i.isolateSubtrees){case`aria-hidden`:t.removeAttribute(`aria-hidden`);break;default:t.removeAttribute(`inert`)}})}}}),o.updateContainerElements(e),o},ig=`left`,ag=`right`,og=`courthive-drawer`,sg=e=>typeof e==`function`,cg=e=>{for(;e.firstChild;)e.firstChild.remove()};function bee(e,t){let n=t.parentNode;for(;n;){if(n===e)return!0;n=n.parentNode}return!1}var lg=null,xee=!1,See=(e=og)=>{if(lg)return lg;let t={selectorTrigger:`[data-drawer-trigger]`,selectorTarget:`[data-drawer-target]`,selectorClose:`[data-drawer-close]`,leftAlignment:`drawer--left`,visibleClass:`is-visible`,activeClass:`is-active`,speedClose:350,speedOpen:50},n={},r=!1,i,a,o,s=!1,c=e=>a=e,l=()=>{sg(a)&&(a?.(),a=void 0);let n=document.getElementById(e);n&&(n.classList.remove(t.visibleClass),document.documentElement.style.overflow=``,setTimeout(function(){i?(n.classList.add(t.visibleClass),document.documentElement.style.overflow=`hidden`,sg(i?.callback)&&i.callback()):(n.classList.remove(t.activeClass),r=!1),i=!1,o?.deactivate()},t.speedClose))},u=n=>{if(!e)return;let r=document.getElementById(e);r&&(r.classList.contains(t.leftAlignment)||r.classList.add(t.leftAlignment),g(r,!1,n))},d=n=>{let r=document.getElementById(e);r&&(r.classList.remove(t.leftAlignment),g(r,!1,n))},f=t=>{let n=document.getElementById(e)?.querySelector(`.drawer__title`);n&&(n.innerHTML=t)},p=t=>{let r=document.getElementById(e)?.querySelector(`.drawer__footer`);r&&(cg(r),sg(t)?n.footer=t(r,l):r.innerHTML=t||``)},m=t=>{let r=document.getElementById(e)?.querySelector(`.drawer__content`);r&&(cg(r),sg(t)?n.content=t(r,l):r.innerHTML=t)},h=t=>{let n=document.getElementById(e)?.querySelector(`.drawer__wrapper`);n&&(n.style.width=t)},g=(e,n,i)=>{r=!0,s=!0,e.classList.add(t.activeClass),document.documentElement.style.overflow=`hidden`,n&&(o=rg(e),o.activate()),sg(i)&&i&&i(),setTimeout(function(){e.classList.add(t.visibleClass),setTimeout(()=>{s=!1},100)},t.speedOpen)};return xee||=(document.addEventListener(`click`,function(t){if(!e||!r||s)return;let n=t.target,i=document.querySelector(`.drawer__wrapper`);if(!i)return;let a=n.classList.contains(`drawer__close`)||n.closest(`.drawer__close`)||`drawerClose`in n.dataset||n.closest(`[data-drawer-close]`);(!bee(i,n)||a)&&l()},!1),document.addEventListener(`keydown`,e=>{e.key===`Escape`&&r&&l()},!1),!0),lg={settings:t,open:(t={})=>{let{title:n,content:a,side:o,width:s,footer:l,callback:_,onClose:v}=t;if(a&&m(a),v&&c(v),n&&f(n),s&&h(s),p(l),r)i={callback:_};else if(o){if(o===ag)return d(_);if(o===ig)return u(_)}else{let t=document.getElementById(e);t&&g(t,l,_)}},close:l,setTitle:f,setContent:m,setFooter:p,attributes:n},lg};function Cee(e=og){if(document.getElementById(e))return;let t=`
|
|
175
|
+
`},S=()=>bf.map(e=>({label:yf[e],active:e===u,onClick:()=>E(e)})),C=()=>({info:x[u],menu:{menuItems:S()},clickAway:!1}),w=()=>{setTimeout(()=>{if(g)return;let e=document.getElementById(`clearScoreV2`);e&&(e.style.backgroundColor=`var(--chc-clear-btn-bg)`,e.style.color=`var(--chc-clear-btn-text)`,d&&(e.disabled=!1)),m&&v(m)},0)},T,E=e=>{e!==u&&(y(),h=!1,u=e,al({scoringApproach:e}),T&&(T.update({content:b(e),config:C()}),w()))};T=se.open({title:i.title||`Score Entry`,content:b(u),config:C(),buttons:[{onClick:()=>{y()},label:i.cancel||`Cancel`,intent:`none`,footer:{className:`button`,style:`background-color: var(--chc-bg-primary); color: var(--chc-text-primary); border: 1px solid var(--chc-border-primary);`},close:!0},{id:`clearScoreV2`,label:i.clear||`Clear`,intent:`none`,disabled:!0,close:!1,onClick:()=>{if(h=!0,u===`freeScore`){let e=document.getElementById(`scoreInputV2`);e&&(e.value=``,e.dispatchEvent(new Event(`input`,{bubbles:!0})),e.focus())}else u===`dynamicSets`&&window.resetDynamicSets?window.resetDynamicSets():u===`dialPad`&&window.resetDialPad?window.resetDialPad():u===`inlineScoring`&&window.resetInlineScoring&&window.resetInlineScoring()}},{id:`submitScoreV2`,label:i.submit||`Submit Score`,intent:`is-primary`,disabled:u!==`inlineScoring`,onClick:()=>{if(m&&_(m)){y();let e=c.getSelectedCode();n(e?{...m,matchUpStatusCodes:[e]}:m)}},close:!0}],onClose:()=>{g=!0,r?.()}}),w()}function Sf(e){let t=e%100;if(t>=11&&t<=13)return`${e}th`;switch(e%10){case 1:return`${e}st`;case 2:return`${e}nd`;case 3:return`${e}rd`;default:return`${e}th`}}var Cf={};function wf(e,t,n){let r=e.sideEnding;return r?.sideNumber===t&&r.status===n?{...e,sideEnding:void 0,bothSidesOut:void 0,reasonCode:void 0}:{...e,sideEnding:{sideNumber:t,status:n},matchEnding:void 0,bothSidesOut:void 0,reasonCode:void 0}}function Tf(e,t){return e.matchEnding===t?{...e,matchEnding:void 0,reasonCode:void 0}:{...e,matchEnding:t,sideEnding:void 0,bothSidesOut:void 0,reasonCode:void 0}}function Ef(e){return!e.sideEnding||!Nc(e.sideEnding.status)?e:{...e,bothSidesOut:!e.bothSidesOut}}function Df(e){return!!e.sideEnding&&Nc(e.sideEnding.status)}function Of(e,t){return{...e,reasonCode:e.reasonCode===t?void 0:t}}function kf(e){let{selectedOutcome:t,winnerSelection:n}=Lc(e);if(!xc.includes(t))return Cf;let r=uf(e);return n===`NEITHER`?{sideEnding:{sideNumber:1,status:t},bothSidesOut:!0,reasonCode:r}:Sc.has(t)?n!==1&&n!==2?Cf:{sideEnding:{sideNumber:Nf(n),status:t},reasonCode:r}:{matchEnding:t,reasonCode:r}}function Af(e){return e.sideEnding?.status??e.matchEnding}function jf(e){let t=Af(e);if(!t)return{isValid:!1,awaitingWinner:!1,isDoubleExit:!1,clearsScore:!1,hasEnding:!1};let n=Fc({selectedOutcome:t,winnerSelection:e.sideEnding?e.bothSidesOut?_c:Nf(e.sideEnding.sideNumber):void 0});return{...n,clearsScore:Oc(n.matchUpStatus),hasEnding:!0}}function Mf(e,t){if(!e)return{isValid:!1,awaitingWinner:!1,isDoubleExit:!1,clearsScore:!1,hasEnding:!1};let n=Fc({selectedOutcome:e,winnerSelection:t===1||t===2?t:void 0});return{...n,clearsScore:Oc(n.matchUpStatus),hasEnding:!0}}function Nf(e){return e===1?2:1}function Pf(){return If(Sc)}function Ff(){return If(Cc)}function If(e){return xc.filter(t=>e.has(t))}function Lf(e,n){if(!e.length)return;let r=t.scoreGovernor.generateScoreString({sets:e,matchUpFormat:n});if(typeof r==`string`)return r||void 0}function Rf(e){return ml(e)?e?.tiebreakSet?.tiebreakTo:void 0}function zf(e,n,r){let i=Rf(r);if(i===void 0||!Number.isFinite(e))return;let a=t.scoreGovernor.getTiebreakComplement({lowValue:e,tiebreakTo:i,tiebreakNoAd:r?.tiebreakSet?.NoAD,isSide1:n===1});if(!a)return;let[o,s]=a;if(o!==void 0&&s!==void 0)return{side1:o,side2:s}}var Bf=2,Vf={};function Hf(e={}){let t=e.matchUpFormat??`SET3-S:6/TB7`,n=dl(t),r=Uf(e.sets??[],n);return{matchUpFormat:t,approach:e.approach??`dynamicSets`,sets:np(r,n),ending:e.matchUp?kf(e.matchUp):Cf}}function Uf(e,t){let n=bp(t);return Array.from({length:n},(n,r)=>{let i=e[r];return i?ml(pl(r,t))?Sp({side1:i.side1TiebreakScore,side2:i.side2TiebreakScore}):Sp({side1:i.side1Score,side2:i.side2Score,tiebreak1:i.side1TiebreakScore,tiebreak2:i.side2TiebreakScore}):Vf})}function Wf(e,t){let{cell:n,digit:r}=t;if(!dp(e,n)||!Number.isInteger(r)||r<0||r>9)return e;let i=dl(e.matchUpFormat),a=pl(n.setIndex,i),o=e.sets[n.setIndex];if(ml(a))return Gf(e,n,r,a,!!t.complement);let s=fp(o,n),c=lp(s,r,n.kind===`games`?up(a,fp(o,mp(n))):void 0);if(c===void 0)return e;let l=pp(o,n,c);return t.complement&&(l=Kf(l,n,c,s,a)),tp(e,n.setIndex,l,i,n.kind===`games`)}function Gf(e,t,n,r,i){if(t.kind!==`games`)return e;let a=e.sets[t.setIndex],o=t.side===1?a.side1:a.side2,s=t.side===1?a.side2:a.side1,c=lp(o!==void 0&&(s===void 0||o<s)?o:void 0,n,void 0);if(c===void 0)return e;let l=i?zf(c,t.side,r):void 0,u=l?{side1:l.side1,side2:l.side2}:pp(a,t,c);return tp(e,t.setIndex,u,dl(e.matchUpFormat),!0)}function Kf(e,n,r,i,a){let o=mp(n);if(n.kind===`games`){if(i!==void 0)return e;let t=Sl(r,a);return t===null?e:pp(e,o,t)}if(hp(e)!==n.side)return e;let s=a?.tiebreakFormat?.tiebreakTo;if(s===void 0)return e;let c=t.scoreGovernor.getTiebreakComplement({lowValue:r,tiebreakTo:s,tiebreakNoAd:a?.tiebreakFormat?.NoAD,isSide1:n.side===1});return!c||c[0]===void 0||c[1]===void 0?e:{...e,tiebreak1:c[0],tiebreak2:c[1]}}function qf(e,t,n){if(!dp(e,t)||n!==void 0&&(!Number.isInteger(n)||n<0))return e;let r=e.sets[t.setIndex];return fp(r,t)===n?e:tp(e,t.setIndex,pp(r,t,n),dl(e.matchUpFormat),t.kind===`games`)}function Jf(e,t){return qf(e,t,void 0)}function Yf(e){return e.sets.every(e=>yp(e))?e:{...e,sets:e.sets.map(()=>Vf)}}function Xf(e){return e.sets.every(e=>yp(e))&&e.ending===Cf?e:{...e,sets:e.sets.map(()=>Vf),ending:Cf}}function Zf(e,t){let n=Qf(e.ending,t);return n===e.ending?e:{...e,ending:n}}function Qf(e,t){switch(t.kind){case`side`:return wf(e,t.sideNumber,t.status);case`match`:return Tf(e,t.status);case`bothSidesOut`:return Ef(e);case`reasonCode`:return Of(e,t.code);default:return e}}function $f(e,n){if(n===e.matchUpFormat)return e;let r=dl(e.matchUpFormat),{sets:i}=t.scoreGovernor.retainScoreForFormat({sets:e.sets.map((e,t)=>op(e,t,r)),matchUpFormat:n,previousMatchUpFormat:e.matchUpFormat}),a=dl(n),o=e.sets.slice(0,i.length),s=Array.from({length:bp(a)},(e,t)=>o[t]??Vf);return{...e,matchUpFormat:n,sets:np(s,a)}}function ep(e,t){return t===e.approach?e:{...e,approach:t}}function tp(e,t,n,r,i){let a=e.sets.map((e,r)=>r===t?Sp(n):e);return{...e,sets:np(a,r,i?t:void 0)}}function np(e,t,n){let r=e.map((e,r)=>r===n?rp(e,r,t):e),i=ip(r,t);return i===void 0?r:r.map((e,t)=>t>i?Vf:e)}function rp(e,t,n){return e.tiebreak1===void 0&&e.tiebreak2===void 0||e.side1===void 0||e.side2===void 0||ml(pl(t,n))||wl(t,{side1:e.side1,side2:e.side2},n)?e:Sp({side1:e.side1,side2:e.side2})}function ip(e,t){if(t.exactly===void 0)for(let n=0;n<e.length;n+=1){let r=ap(e.slice(0,n+1),t);if(r.length&&bl(r,t))return n}}function ap(e,t){return e.flatMap((e,n)=>vp(e)?[op(e,n,t)]:[])}function op(e,t,n){let r=ml(pl(t,n));if(!vp(e))return Sp({setNumber:t+1,side1Score:r?void 0:e.side1,side2Score:r?void 0:e.side2,side1TiebreakScore:r?e.side1:e.tiebreak1,side2TiebreakScore:r?e.side2:e.tiebreak2});if(r)return Sp({setNumber:t+1,side1Score:0,side2Score:0,side1TiebreakScore:e.side1,side2TiebreakScore:e.side2,winningSide:sp(e,t,n)});let i=El(t,_p(e.side1),_p(e.side2),gp(e),n);return e.tiebreak1!==void 0&&e.tiebreak2!==void 0?{...i,side1TiebreakScore:e.tiebreak1,side2TiebreakScore:e.tiebreak2}:i}function sp(e,n,r){let{winningSide:i}=t.scoreGovernor.analyzeSet({setObject:{setNumber:n+1,side1TiebreakScore:e.side1,side2TiebreakScore:e.side2},matchUpScoringFormat:r});return i===1||i===2?i:void 0}function cp(e,t){let n=dl(e.matchUpFormat),r=np(Uf(t,n),n);return JSON.stringify(r)===JSON.stringify(e.sets)?e:{...e,sets:r}}function lp(e,t,n){let r=e===void 0?t:e*10+t;if(!(String(r).length>Bf)&&!(n!==void 0&&r>n))return r}function up(e,n){if(e)return t.scoreGovernor.getMaxSetScore({opponentScore:n,setTo:e.setTo,tiebreakAt:e.tiebreakAt,tiebreakTo:e.tiebreakSet?.tiebreakTo,NoAD:e.NoAD,winBy:e.winBy,timed:hl(e)})}function dp(e,t){return!Number.isInteger(t.setIndex)||t.setIndex<0||t.setIndex>=e.sets.length||t.side!==1&&t.side!==2?!1:t.kind===`games`||t.kind===`tiebreak`&&!ml(pl(t.setIndex,dl(e.matchUpFormat)))}function fp(e,t){return t.kind===`games`?t.side===1?e.side1:e.side2:t.side===1?e.tiebreak1:e.tiebreak2}function pp(e,t,n){let r=t.kind===`games`?t.side===1?`side1`:`side2`:t.side===1?`tiebreak1`:`tiebreak2`;return Sp({...e,[r]:n})}function mp(e){return{...e,side:e.side===1?2:1}}function hp(e){if(e.side1!==void 0&&e.side2!==void 0&&e.side1!==e.side2)return e.side1>e.side2?2:1}function gp(e){let t=[e.tiebreak1,e.tiebreak2].filter(e=>e!==void 0);return t.length?String(Math.min(...t)):void 0}function _p(e){return e===void 0?``:String(e)}function vp(e){return e.side1!==void 0&&e.side2!==void 0}function yp(e){return e.side1===void 0&&e.side2===void 0&&e.tiebreak1===void 0&&e.tiebreak2===void 0}function bp(e){return xp(e)??e.exactly??e.bestOf}function xp(e){if(e.finalSetFormat?.tiebreakSet?.tiebreakTo!==void 0)return t.matchUpFormatCode.aggregateDeciderSetNumber(e)}function Sp(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}var{COMPLETED:vee}=t.matchUpStatusConstants;function Cp(e){return jf(e.ending)}function wp(e){return ap(e.sets,Wp(e))}function Tp(e){return e.sets.some(e=>!yp(e))}function Ep(e){if(!Cp(e).clearsScore)return Lf(wp(e),e.matchUpFormat)}function Dp(e){if(Cp(e).clearsScore)return Lf(wp(e),e.matchUpFormat)}function Op(e){if(Cp(e).clearsScore)return!1;let t=Wp(e),n=Hp(e);return n===void 0||!Lp(e,n)?!1:(xl(wp(e),t)!==void 0||Kc(wp(e),e.matchUpFormat))&&Ap(e)===void 0}function kp(e){let t=Cp(e);if(t.hasEnding){if(t.winningSide===1||t.winningSide===2)return t.winningSide;if(t.isDoubleExit)return}if(Op(e))return xl(wp(e),Wp(e))}function Ap(e,t={}){if(Cp(e).clearsScore)return;let n=Wp(e);for(let[r,i]of e.sets.entries()){if(!vp(i))continue;let a=jp(r,i,t)??Mp(e,r,i,n);if(a)return a}return Np(e)}function jp(e,t,n){if(t.tiebreak1===void 0||t.tiebreak2===void 0||t.tiebreak1===t.tiebreak2)return;let r=hp(t);if(r===void 0)return;let i=r===1?2:1;if((t.tiebreak1>t.tiebreak2?1:2)===i)return;let a=n.sideNames?.[i-1]??`side ${i}`;return`${Up(e)} ${a} won it, so they must win the tiebreak`}function Mp(e,n,r,i){if(zp(e,n))return;let{isValid:a,error:o}=t.scoreGovernor.validateSetScore(Rp(r,ml(pl(n,i))),e.matchUpFormat,n===bp(i)-1,!0);if(!a&&o)return`${Up(n)} ${o}`}function Np(e){let t=Hp(e);if(t!==void 0)for(let n=0;n<t;n+=1){if(Lp(e,n))continue;let t=e.sets[n];return yp(t)?`${Up(n)} has no score`:`${Up(n)} is not finished`}}function Pp(e,t={}){let n=Wp(e),r=Hp(e),i=[];if(r!==void 0)for(let n=0;n<=r;n+=1)i.push({kind:`games`,setIndex:n}),Vp(e,n,t.editingSet)&&i.push({kind:`tiebreak`,setIndex:n});let a=r===void 0?0:r+1;return a<bp(n)&&Fp(e,a,n)&&i.push({kind:`games`,setIndex:a}),i}function Fp(e,t,n){if(t===0)return!0;for(let n=0;n<t;n+=1)if(!Lp(e,n))return!1;return t+1===xp(n)?Ip(e,t):hl(pl(t-1,n))?!0:ip(e.sets,n)===void 0&&xl(wp(e),n)===void 0}function Ip(e,t){let n=e.sets.slice(0,t),r=e=>n.reduce((t,n)=>t+(n[e]??0),0);return r(`side1`)===r(`side2`)}function Lp(e,n){let r=e.sets[n];if(!r||!vp(r)||zp(e,n))return!1;let i=Wp(e),a=pl(n,i);return hl(a)?!0:t.scoreGovernor.validateSetScore(Rp(r,ml(a)),e.matchUpFormat,n===bp(i)-1,!1).isValid}function Rp(e,t){return t?{side1TiebreakScore:e.side1,side2TiebreakScore:e.side2}:{side1Score:e.side1,side2Score:e.side2,side1TiebreakScore:e.tiebreak1,side2TiebreakScore:e.tiebreak2}}function zp(e,t){let n=e.sets[t];return Bp(e,t)&&(n.tiebreak1===void 0||n.tiebreak2===void 0)}function Bp(e,t){let n=e.sets[t];if(!vp(n))return!1;let r=Wp(e);return!ml(pl(t,r))&&wl(t,{side1:n.side1,side2:n.side2},r)}function Vp(e,t,n){return Bp(e,t)&&(zp(e,t)||n===t)}function Hp(e){for(let t=e.sets.length-1;t>=0;--t)if(!yp(e.sets[t]))return t}function Up(e){return`${Sf(e+1)} set:`}function Wp(e){return dl(e.matchUpFormat)}function Gp(e,t,n,r){let i=e.sets[t];return i?fp(i,{setIndex:t,side:n,kind:r}):void 0}function Kp(e){return e===1?2:1}function qp(e){let t=/^(?:Digit|Numpad)(\d)$/.exec(e);return t?Number(t[1]):void 0}function Jp(e){return e.metaKey||e.ctrlKey||e.altKey}function Yp(e={}){let t=Hf(e);return{get:()=>t,set:e=>{t=e}}}var Xp=`54px`,Zp=`aria-label`;function Qp(e){let t=e.store??Yp({matchUpFormat:e.matchUpFormat,approach:`dynamicSets`,sets:e.sets}),n=dl(t.get().matchUpFormat),r=t.get().sets.length,i=e.smartComplements!==!1,a=new Set,o,s,c=new Map,l=new Map,u=new Map,d=new Map;return{store:t,columns:()=>v().map(y),rowCells:e=>v().map(t=>x(e,t)),getSets:()=>wp(f()),bandControl:()=>ce(),error:()=>Ap(f(),{sideNames:e.sideNames}),clear:()=>U(),focusFirst:()=>H({kind:`games`,setIndex:0},2),smartComplementsEnabled:()=>i};function f(){return t.get()}function p(e,t){return{setIndex:e,side:t,kind:`games`}}function m(e,t){return{setIndex:e,side:t,kind:`tiebreak`}}function h(e){return Gp(f(),e.setIndex,e.side,e.kind)}function g(e){let t=h(e);return t===void 0?``:String(t)}function _(e){return h(m(e,1))!==void 0&&h(m(e,2))!==void 0}function v(){return Pp(f(),{editingSet:s})}function y(e){return e.kind===`tiebreak`?{heading:`TB`,width:Xp}:{heading:Sf(e.setIndex+1)}}function b(e,t,n){return`${e}:${n}:${t}`}function x(e,t){return t.kind===`tiebreak`?A(e,t.setIndex):C(e,t.setIndex)}function S(){let e=document.createElement(`input`);return e.type=`text`,e.inputMode=`numeric`,e.className=`chc-sec-set-input`,e}function C(e,t){let n=document.createElement(`div`);n.className=`chc-sec-games-cell`;let r=b(`games`,e,t),i=S();i.value=g(p(t,e)),i.dataset.side=String(e),i.dataset.set=String(t+1),i.setAttribute(Zp,`${Sf(t+1)} set, side ${e} games`),i.addEventListener(`input`,()=>B(e,t,i)),i.addEventListener(`keydown`,n=>ee(n,{kind:`games`,setIndex:t},e)),i.addEventListener(`focus`,()=>{P(t),i.select()}),c.set(r,i);let a=document.createElement(`sup`);a.className=`chc-sec-tb-mark`,a.setAttribute(`aria-hidden`,`true`);let o=document.createElement(`span`);return o.className=`chc-sec-sr-only`,u.set(r,a),d.set(r,o),n.append(i,a,o),M(e,t),n.append(D(e,t)),w(t),n}function w(e){let t=E(e);for(let n of[1,2]){let r=b(`games`,n,e),i=c.get(r);i&&(i.hidden=t);let a=u.get(r);a&&(a.hidden=t);let o=d.get(r);o&&(o.hidden=t);let s=l.get(r);s&&(s.hidden=!t,t&&O(s,n,e))}}function T(){for(let e=0;e<r;e+=1)w(e)}function E(e){return s!==e&&Lp(f(),e)}function D(e,t){let n=document.createElement(`button`);return n.type=`button`,n.className=`chc-sec-set-done`,n.dataset.doneSide=String(e),n.dataset.doneSet=String(t+1),n.title=`Click to edit this set`,n.addEventListener(`click`,()=>k(t,e)),l.set(b(`games`,e,t),n),n}function O(e,t,n){let r=g(p(n,t)),i=h(m(n,t)),a=h(m(n,Kp(t))),o=i!==void 0&&(a===void 0||i<a);if(e.replaceChildren(r),o){let t=document.createElement(`sup`);t.className=`chc-sec-tb-mark`,t.setAttribute(`aria-hidden`,`true`),t.textContent=String(i),e.append(t)}let s=o?`${r} games, tiebreak ${i}`:`${r} games`;e.setAttribute(Zp,`${Sf(n+1)} set, side ${t}: ${s} — edit`)}function k(e,t){P(e);let n=c.get(b(`games`,t,e));n?.focus(),n?.select()}function A(e,t){let n=S();return n.classList.add(`chc-sec-tb-input`),n.value=g(m(t,e)),n.dataset.tiebreakSide=String(e),n.dataset.tiebreakSet=String(t+1),n.setAttribute(Zp,`${Sf(t+1)} set tiebreak, side ${e} points`),n.addEventListener(`input`,()=>V(e,t,n)),n.addEventListener(`keydown`,n=>ee(n,{kind:`tiebreak`,setIndex:t},e)),n.addEventListener(`focus`,()=>n.select()),c.set(b(`tiebreak`,e,t),n),n}function j(){for(let[e,t]of c){let[n,r,i]=e.split(`:`),a=g({kind:n,setIndex:Number(r),side:Number(i)});t.value!==a&&(t.value=a)}}function M(e,t){let n=b(`games`,e,t),r=u.get(n),i=d.get(n);if(!r)return;let a=h(m(t,e)),o=h(m(t,Kp(e))),s=a!==void 0&&(o===void 0||a<o);r.textContent=s?String(a):``,i&&(i.textContent=s?` tiebreak ${a}`:``)}function N(){for(let e=0;e<r;e+=1)for(let t of[1,2])M(t,e)}function P(t){if(s===t)return;let n=W();s=t,T(),W()!==n&&(o={kind:`games`,setIndex:t},e.onStructureChange?.(),G())}function F(e){let t=e.value.replace(/\D/g,``).replace(/^0+(?=\d)/,``);return t!==e.value&&(e.value=t),t}function I(e,t){let n=Jf(f(),e);for(let r of t){let t=Wf(n,{cell:e,digit:Number(r),complement:L(e)});if(t===n)break;n=t}return R(e,n),n}function L(e){return i?e.kind===`tiebreak`||!a.has(e.setIndex):!1}function R(e,t){if(e.kind!==`games`)return!1;let n=Kp(e.side),r=Gp(t,e.setIndex,n,`games`)!==h(p(e.setIndex,n));return r&&a.add(e.setIndex),r}function z(e){t.set(e),j()}function B(e,t,n){let r=W();s=t,z(I(p(t,e),F(n))),oe(r,zp(f(),t)?{kind:`tiebreak`,setIndex:t}:void 0)}function V(e,t,n){let r=W();z(I(m(t,e),F(n))),s=t,oe(r)}function ee(e,t,n){if(Jp(e))return;if(e.key===`Enter`){if(t.kind===`tiebreak`&&_(t.setIndex)){e.preventDefault(),e.stopPropagation();let n=W();s=void 0,oe(n,{kind:`games`,setIndex:t.setIndex+1});return}let n=re(t.setIndex);if(!n)return;e.preventDefault(),e.stopPropagation(),H(n,ae(n));return}let r=h({kind:t.kind,setIndex:t.setIndex,side:n})===void 0,i=qp(e.code);if(i!==void 0&&t.kind===`games`&&r&&te(t,n,i,e.shiftKey)){e.preventDefault();return}if(e.key===`Tab`){let r=ie(t,n,e.shiftKey?-1:1);if(!r)return;e.preventDefault(),H(r.slot,r.sideNumber);return}if(e.key===`Backspace`&&r){let r=ie(t,n,-1);if(!r)return;e.preventDefault(),H(r.slot,r.sideNumber)}}function te(e,t,n,r){let i=e.setIndex,a=W();s=i;let o=p(i,r?Kp(t):t),c=Wf(f(),{cell:o,digit:n,complement:L(o)});if(c===f())return!0;let l=R(o,c);if(!r&&!l)return!1;z(c);let u=zp(f(),i)?{kind:`tiebreak`,setIndex:i}:ne(i);return oe(a,u),u&&H(u,ae(u)),!0}function ne(e){let t=e+1;if(!(t>=r)&&v().some(e=>e.kind===`games`&&e.setIndex===t))return{kind:`games`,setIndex:t}}function re(e){if(hl(pl(e,n)))return ne(e)}function ie(e,t,n){let r=v().flatMap(e=>[2,Kp(2)].map(t=>({slot:e,sideNumber:t}))),i=r.findIndex(n=>n.slot.kind===e.kind&&n.slot.setIndex===e.setIndex&&n.sideNumber===t);if(!(i<0))return r[i+n]}function H(e,t){if(e.kind===`games`&&E(e.setIndex)){k(e.setIndex,t);return}let n=c.get(b(e.kind,t,e.setIndex));n?.focus(),n?.select()}function ae(e){return e.kind===`tiebreak`?hp(f().sets[e.setIndex])??2:2}function U(){let e=W();a.clear(),s=void 0,j(),oe(e)}function W(){return v().map(e=>`${e.kind}${e.setIndex}`).join(`|`)}function oe(t,n){if(N(),T(),W()===t){e.onChange?.();return}o=n??se(),e.onStructureChange?.(),e.onChange?.(),G()}function G(){let e=o;if(o=void 0,!e||e.setIndex>=r)return;let t=c.get(b(e.kind,e.sideNumber??ae(e),e.setIndex));t&&(t.focus(),e.sideNumber===void 0?t.select():t.setSelectionRange(t.value.length,t.value.length))}function se(){let e=document.activeElement;if(e)for(let[t,n]of c){if(n!==e)continue;let[r,i,a]=t.split(`:`);return{kind:r,setIndex:Number(i),sideNumber:Number(a)}}}function ce(){let t=document.createElement(`button`);t.type=`button`,t.className=`chc-sec-smart`,t.dataset.action=`smartComplements`,t.textContent=e.smartComplementsLabel??`Smart`,t.setAttribute(`aria-pressed`,String(i));let n=`Smart complements — fill the opposing score from the one you type`;return t.title=n,t.setAttribute(Zp,n),t.addEventListener(`click`,()=>{i=!i,a.clear(),e.onChange?.()}),t}}var $p=`200px`;function em(){let e=new Map;return{cell(t,n){let r=document.createElement(`div`);return r.className=`chc-sec-readout`,r.dataset.readoutSide=String(t),tm(r,t,n),e.set(t,r),r},update(t){for(let[n,r]of e)tm(r,n,t)}}}function tm(e,t,n){e.replaceChildren();let r=[];for(let[i,a]of n.entries()){let n=t===1?a.side1TiebreakScore:a.side2TiebreakScore,o=t===1?a.side2TiebreakScore:a.side1TiebreakScore,s=t===1?a.side1Score:a.side2Score,c=!a.side1Score&&!a.side2Score&&n!==void 0&&o!==void 0,l=String(c?n:s??0),u=!c&&n!==void 0&&(o===void 0||n<o);i>0&&e.append(` `);let d=document.createElement(`span`);if(d.className=`chc-sec-readout-set`,d.textContent=l,e.append(d),u){let e=document.createElement(`sup`);e.className=`chc-sec-tb-mark`,e.setAttribute(`aria-hidden`,`true`),e.textContent=String(n),d.append(e)}r.push(u?`${l} tiebreak ${n}`:l)}e.setAttribute(`aria-label`,r.length?`Side ${t}: ${r.join(`, `)}`:`Side ${t}: no score`)}function nm(e){let t=e.initialText??``,n=e.store??Yp({matchUpFormat:e.matchUpFormat,approach:`freeScore`}),r=n.get().matchUpFormat;e.store?t=e.initialText??Ep(n.get())??``:u();let i,a,o=em();return{store:n,columns:()=>[{width:$p}],rowCells:e=>[o.cell(e,wp(s()))],block:()=>d(),matchUpStatus:()=>l(),getText:()=>t,getSets:()=>wp(s()),hasEntry:()=>!!t.trim(),clear:()=>{t=``,i&&(i.value=``),o.update([]),e.onChange?.()},focusFirst:()=>{if(!i)return;i.focus();let e=i.value.length;i.setSelectionRange(e,e)}};function s(){return n.get()}function c(){if(!t.trim())return{sets:[]};let e=nd(t,r);return{sets:e.sets??[],result:e}}function l(){return c().result?.matchUpStatus}function u(){n.set(cp(s(),c().sets))}function d(){let n=document.createElement(`div`);n.className=`chc-sec-freescore`;let r=`chc-fs-${Math.random().toString(36).slice(2,8)}`,c=document.createElement(`label`);return c.className=`chc-sec-field-label`,c.htmlFor=r,c.textContent=e.label??`TYPE THE SCORE`,i=document.createElement(`input`),i.type=`text`,i.id=r,i.className=`chc-sec-freescore-input`,i.value=t,i.dataset.freeScore=`true`,i.autocomplete=`off`,i.spellcheck=!1,i.addEventListener(`input`,()=>{t=i?.value??``,u(),o.update(wp(s())),f(),e.onChange?.()}),a=document.createElement(`div`),a.className=`chc-sec-field-note`,n.append(c,i,a),f(),n}function f(){if(!a)return;let{result:n}=c(),i=Vc(n?.matchUpStatus,e.disabledMatchUpStatuses,e.statusScopeLabels);if(i){a.textContent=i,a.dataset.tone=`error`;return}if(!t.trim()){a.textContent=``,a.dataset.tone=`idle`;return}let o=!n?.sets?.length&&!n?.matchUpStatus;if(!n?.valid||o){let e=n?.errors?.[0];a.textContent=typeof e==`string`?e:e?.message??`Not a score this format allows`,a.dataset.tone=`error`;return}let l=!n.matchUpStatus&&Op(s());a.dataset.tone=l?`good`:`idle`,a.textContent=l?`A complete match under ${r}`:`${n.formattedScore} — not a finished result`}}var rm=`aria-pressed`;function im(e){let t=e.store??Yp({matchUpFormat:e.matchUpFormat,approach:`dialPad`,sets:e.sets}),n=dl(t.get().matchUpFormat),r=t.get().sets.length,i=!1,a,o=em(),s=new Map;return{store:t,columns:()=>[{width:$p}],rowCells:e=>[o.cell(e,l())],block:()=>M(),getSets:()=>wp(c()),clear:()=>{i=!1,k()},focusFirst:()=>s.get(1)?.focus()};function c(){return t.get()}function l(){return c().sets.flatMap((e,t)=>yp(e)?[]:p(t)?[{setNumber:t+1,side1Score:0,side2Score:0,side1TiebreakScore:e.side1,side2TiebreakScore:e.side2}]:[{setNumber:t+1,side1Score:e.side1??0,side2Score:e.side2??0,side1TiebreakScore:e.tiebreak1,side2TiebreakScore:e.tiebreak2}])}function u(e,t){return{setIndex:e,side:t,kind:`games`}}function d(e,t){return{setIndex:e,side:t,kind:`tiebreak`}}function f(e,t){return(t===1?e.side1:e.side2)!==void 0}function p(e){return ml(pl(e,n))}function m(e=!1){let t=e?Kp(2):2;for(let[n,r]of c().sets.entries()){if(!f(r,t))return u(n,t);if(!e&&!f(r,Kp(t)))return u(n,Kp(t));if(!h(n))return}}function h(e){let t=c().sets[e];return!f(t,1)||!f(t,2)?!1:_l(e,{side1:t.side1,side2:t.side2,tiebreak:g(t)},n)}function g(e){let t=[e.tiebreak1,e.tiebreak2].filter(e=>e!==void 0);return t.length?Math.min(...t):void 0}function _(){if(!N())return!1;let e=y(),t=c().sets[e];return p(e)||!f(t,1)||!f(t,2)?!1:wl(e,{side1:t.side1,side2:t.side2},n)}function v(){for(let e=c().sets.length-1;e>=0;--e){let t=c().sets[e];if(f(t,Kp(2)))return u(e,Kp(2));if(f(t,2))return u(e,2)}}function y(){for(let e=c().sets.length-1;e>=0;--e)if(!yp(c().sets[e]))return e;return 0}function b(){for(let e=0;e<r;e+=1){let t=c().sets[e];if(!p(e)){if(!f(t,1)||!f(t,2))return;continue}let n=x(t);if(n===void 0||n<10)return e}}function x(e){let t=[e.side1,e.side2].filter(e=>e!==void 0);return t.length?Math.min(...t):void 0}function S(e){let t=x(e);if(t!==void 0)return e.side2===t?2:1}function C(e){return e!==c()&&(t.set(e),k(),!0)}function w(e,t=!1){if(i){T(e);return}let n=b();if(n!==void 0){C(Wf(c(),{cell:u(n,t?Kp(2):2),digit:e,complement:!0}));return}let r=v(),a=t&&r?.side!==Kp(2)?void 0:r;if(a&&C(Wf(c(),{cell:a,digit:e})))return;let o=m(t);o&&C(Wf(c(),{cell:o,digit:e}))}function T(e){let t=y(),n=hp(c().sets[t]);C(Wf(c(),{cell:d(t,n??2),digit:e,complement:n!==void 0}))}function E(){for(let e=c().sets.length-1;e>=0;--e){let t=c().sets[e];if(!yp(t)){if(p(e)){let n=S(t)??2;O(u(e,n),D(x(t)),[u(e,1),u(e,2)],!0);return}if(t.tiebreak1!==void 0||t.tiebreak2!==void 0){let n=hp(t)??2,r=n===1?t.tiebreak1:t.tiebreak2;O(d(e,n),D(r),[d(e,1),d(e,2)],n!==void 0);return}for(let n of[Kp(2),2]){let r=fp(t,u(e,n));if(r!==void 0){O(u(e,n),D(r),[u(e,n)]);return}}}}}function D(e){return e===void 0?``:String(e).slice(0,-1)}function O(e,t,n,r=!1){let i=c();for(let e of n)i=Jf(i,e);for(let n of t)i=Wf(i,{cell:e,digit:Number(n),complement:r});C(i)}function k(){o.update(l()),A(),e.onChange?.()}function A(){if(!a)return;let e=_();a.disabled=!e,!e&&i&&(i=!1,a.setAttribute(rm,`false`))}function j(e){if(Jp(e))return;let t=qp(e.code);if(t!==void 0){e.preventDefault(),w(t,e.shiftKey);return}e.key===`Backspace`&&(e.preventDefault(),E())}function M(){let e=document.createElement(`div`);e.className=`chc-sec-dialpad`,e.addEventListener(`keydown`,j);let t=document.createElement(`div`);t.className=`chc-sec-dialpad-digits`;for(let e=0;e<=9;e+=1){let n=document.createElement(`button`);n.type=`button`,n.className=`chc-sec-btn chc-sec-key`,n.dataset.digit=String(e),n.textContent=String(e),n.addEventListener(`click`,()=>w(e)),s.set(e,n),t.append(n)}let n=document.createElement(`div`);n.className=`chc-sec-dialpad-side`;let r=document.createElement(`button`);r.type=`button`,r.className=`chc-sec-btn`,r.dataset.action=`tiebreak`,r.textContent=`Tiebreak`,r.setAttribute(rm,String(i)),r.disabled=!_(),r.addEventListener(`click`,()=>{i=!i,r.setAttribute(rm,String(i)),k()}),a=r;let o=document.createElement(`button`);return o.type=`button`,o.className=`chc-sec-btn chc-sec-key-back`,o.dataset.action=`backspace`,o.textContent=`Backspace`,o.addEventListener(`click`,()=>E()),n.append(r,o),e.append(t,n),e}function N(){let e=!1;for(let t=0;t<r;t+=1){if(p(t))continue;let r=pl(t,n);(r?.tiebreakFormat||Rf(r))&&(e=!0)}return e}}var{COMPLETED:am}=t.matchUpStatusConstants;function om(e,t){if(e.cleared)return{score:{sets:[]},matchUpStatusCodes:[]};let n=sm(e);return{matchUpStatus:e.matchUpStatus??(e.winningSide?am:void 0),winningSide:e.winningSide,score:{sets:e.sets??[]},...t?{matchUpFormat:t}:{},...n?{matchUpStatusCodes:n}:{}}}function sm({reasonCode:e,matchUpStatus:t,winningSide:n}){if(e)return jc(t)?[e,e]:n===1?[``,e]:[e]}var{DOUBLE_WALKOVER:cm,WALKOVER:lm,DEFAULTED:um}=t.matchUpStatusConstants;function dm(e){let{resolution:t,sideNames:n,scoreString:r,scoreComplete:i,scoreWinningSide:a,reasonDisplay:o,advancesTo:s}=e,c=e.labels??Rc(),l=e=>n[e-1],u=e=>c[e]??e;if(!t.hasEnding)return i&&a?{tone:`good`,headline:`${l(a)} def. ${l(fm(a))} ${r??``}`.trim(),detail:s?`advances to ${s}`:void 0}:{tone:`neutral`,headline:r?`${r} — not a finished result`:`No result entered yet`};let d=t.matchUpStatus;if(!d)return{tone:`neutral`,headline:`No result entered yet`};if(t.isDoubleExit){let e=d===cm?lm:um;return{tone:`warn`,headline:`${u(d)} — neither side advances`,detail:pm([o,Pc(e)])}}let f=t.winningSide===1||t.winningSide===2?t.winningSide:void 0;return f?{tone:`good`,headline:`${u(d)} — ${l(f)} advances`,detail:pm([o,t.clearsScore?`no score recorded`:r])}:t.clearsScore&&r?{tone:`warn`,headline:`${u(d)} — the part-score of ${r} has been cleared`,detail:`nobody advances`}:Cc.has(d)?{tone:r?`good`:`neutral`,headline:r?`${u(d)} — ${r} recorded`:u(d),detail:pm([o,`nobody advances`])}:{tone:`warn`,headline:`${u(d)} — no winner yet`,detail:`not ready to submit`}}function fm(e){return e===1?2:1}function pm(e){let t=e.filter(e=>!!e);return t.length?t.join(` · `):void 0}var{RETIRED:mm,WALKOVER:hm,DEFAULTED:gm,IN_PROGRESS:_m,CANCELLED:vm,AWAITING_RESULT:ym,SUSPENDED:bm}=t.matchUpStatusConstants,xm=`chc-sec-btn`,Sm=`chc-sec-btn chc-sec-btn-pill`,Cm=`chc-sec-check`,wm=`chc-sec-other-menu`,Tm=`chc-sec-other-item`,Em=`aria-label`,Dm=`chc-sec-spacer`,Om=`Other…`,km=`Other`,Am=`chc-sec-band-headline`,jm=`chc-sec-band-detail`,Mm=`The recorded result will be removed — Submit to clear it.`,Nm=`Enter a replacement score: a later match depends on this result.`,Pm=`aria-pressed`,Fm=`aria-expanded`,Im=`M20 6 9 17l-5-5`,Lm=62,Rm=6,zm=`(width <= 560px)`;function Bm(){return globalThis.matchMedia?.(zm).matches??!1}var Vm=[`IN_PROGRESS`,`AWAITING_RESULT`,`SUSPENDED`],Hm={[hm]:`Did not play at all — no score`,[mm]:`Started, could not finish — score kept`,[gm]:`Removed by the referee`},Um={w:hm,r:mm,d:gm},Wm={i:_m,c:vm,a:ym,s:bm},Gm=0;function Km(e){let t=e.labels??Rc(),n=e.region,r=e.matchUpFormat,i=e.approachLabel,a=e.store??e.region.store??Yp({matchUpFormat:e.matchUpFormat});e.initialState&&a.set({...a.get(),ending:e.initialState});let o=ce(),s=new Set(e.disabledMatchUpStatuses),c=e.clearable===!1&&o,l=!1,u,d,f=!1,p,m=!1,h=`chc-sec-title-${Gm+=1}`,g=J(`chc-sec`);g.dataset.component=`scoreEntryCard`;let _=J(`chc-sec-header`),v=J(`chc-sec-rows`),y=J(`chc-sec-endings`),b=J(`chc-sec-band`),x=J(`chc-sec-score-region`),S=Ym(`Submit`,`chc-sec-btn chc-sec-btn-primary`),C=Ym(`Clear`,xm);g.append(_,A(),b,j());let w=`.${wm}, [data-action="other"], [data-action="switchApproach"]`,T=e=>{(m||f)&&(e.target?.closest(w)||(e.preventDefault(),e.stopPropagation(),e.type===`click`&&E()))};g.addEventListener(`pointerdown`,T,!0),g.addEventListener(`mousedown`,T,!0),g.addEventListener(`click`,T,!0);function E(){return!m&&!f?!1:(m=!1,f=!1,L(),!0)}return g.addEventListener(`keydown`,e=>{Jp(e)||le(e)||z(e)||e.key!==`Enter`||S.disabled||e.target?.closest(`.chc-sec-other-menu`)||(e.preventDefault(),S.click())}),L(),{element:g,closeMenus:E,destroy:ye,refresh:ae,rerender:L,update:e=>{e.matchUpFormat&&(r=e.matchUpFormat,a.set($f(M(),e.matchUpFormat))),e.region&&(n=e.region,e.region.store&&e.region.store!==a&&(e.region.store.set({...e.region.store.get(),ending:N()}),a=e.region.store)),e.approachLabel&&(i=e.approachLabel),L()},store:a,getModel:M,getState:N,holdsEntry:ce,titleId:h};function D(){let t=_;t.replaceChildren();let n=qm(`chc-sec-title`,e.title??`Score Entry`);n.id=h,t.append(n),e.context&&t.append(qm(`chc-sec-context`,e.context)),t.append(J(Dm)),r&&t.append(k(r)),i&&t.append(O(i))}function O(t){let n=Ym(t,xm);if(n.dataset.action=`switchApproach`,!e.approaches?.length)return n.addEventListener(`click`,()=>e.onSwitchApproach?.()),n;let r=J(`chc-sec-approach-anchor`);if(n.setAttribute(`aria-expanded`,String(m)),n.setAttribute(`aria-haspopup`,`menu`),n.addEventListener(`click`,()=>{m=!m,f=!1,L()}),r.append(n),m){let n=J(`${wm} chc-sec-approach-menu`);n.setAttribute(`role`,`menu`);for(let r of e.approaches){let i=r.label===t,a=Ym(``,Tm);a.dataset.approach=r.key,a.setAttribute(`role`,`menuitemradio`),a.setAttribute(Pm,String(i));let o=J(Cm);i&&o.append(Xm(Im,3)),a.append(o,qm(``,r.label)),a.addEventListener(`click`,()=>{m=!1,L(),i||e.onSelectApproach?.(r.key)}),n.append(a)}r.append(n)}return r}function k(t){if(!e.onEditFormat)return qm(`chc-sec-format`,t);let n=Ym(t,`chc-sec-format chc-sec-format-button`);return n.dataset.action=`editFormat`,n.setAttribute(Em,`Scoring format ${t} — edit`),n.title=`Edit the scoring format`,n.addEventListener(`click`,()=>e.onEditFormat?.()),n}function A(){let e=J(`chc-sec-body`);return e.append(v,x,y),e}function j(){let r=J(`chc-sec-footer`),i=Ym(`Cancel`,xm);return i.dataset.action=`cancel`,i.addEventListener(`click`,()=>e.onCancel?.()),C.dataset.action=`clear`,C.addEventListener(`click`,()=>{a.set(Xf(M())),n.clear?.(),d=void 0,f=!1,l=!0,e.onClear?.(),L(),n.focusFirst?.()}),S.dataset.action=`submit`,S.addEventListener(`click`,()=>{if(c&&!ce()||Vc(W().matchUpStatus,e.disabledMatchUpStatuses,t))return;if(G()){e.onSubmit?.({cleared:!0});return}let n=W();e.onSubmit?.({matchUpStatus:n.matchUpStatus,winningSide:n.hasEnding?n.winningSide:kp(M()),reasonCode:N().reasonCode,score:n.clearsScore?void 0:Ep(M())})}),r.append(i,J(Dm),C,S),r}function M(){return a.get()}function N(){return M().ending}function P(e){a.set(Zf(M(),e))}function F(){return Op(M())&&!n.matchUpStatus?.()}function I(){return Vc(W().matchUpStatus,e.disabledMatchUpStatuses,t)??Ap(M(),{sideNames:[e.sides[0].participantName,e.sides[1].participantName]})}function L(){let e=W();D(),fe(e.winningSide),he(),ge(),se()}function R(){let e=Cp(M()).clearsScore;g.dataset.scoreLocked=e?`true`:`false`;for(let t of v.querySelectorAll(`input.chc-sec-set-input`))U(t,e);for(let t of x.querySelectorAll(`input, button, textarea, select`))U(t,e)}function z(e){if(e.key!==`Tab`||e.shiftKey||e.defaultPrevented)return!1;let t=e.target;if(!t)return!1;if(B(t))return!S.disabled&&(e.preventDefault(),S.focus(),!0);if(t===S){let t=y.querySelector(`button:not([disabled])`);return t?(e.preventDefault(),t.focus(),!0):!1}return!1}function B(e){return e.classList.contains(`chc-sec-set-input`)?!0:(e.tagName===`INPUT`||e.tagName===`TEXTAREA`)&&x.contains(e)}function V(){if(!Cp(M()).clearsScore){u=void 0;return}let e=Dp(M());e&&(u=e),a.set(Yf(M())),n.clear?.()}function ee(e){return s.has(e)||e===mm&&!te()?!1:!ne(e)||!F()}function te(){return Tp(M())||!!n.hasEntry?.()}function ne(e){return e===mm||e===gm||Cc.has(e)&&!Tc.has(e)}function re(){let e=g.querySelectorAll(`.chc-sec-endings button[data-ending], .chc-sec-side-option[data-ending]`);for(let t of e){let e=t.dataset.ending??``,n=!ee(e)&&t.getAttribute(Pm)!==`true`;t.disabled=n,n?t.title=ie(e):t.removeAttribute(`title`)}}function ie(n){let r=t[n]??n;return Vc(n,e.disabledMatchUpStatuses,t)||(n===mm&&!te()?`No score yet — ${r} keeps the score that was played`:`The score is complete — ${r} cannot follow it`)}function H(){if(!F())return!1;let e=N();if(e.matchEnding&&Cc.has(e.matchEnding))return P({kind:`match`,status:e.matchEnding}),f=!1,!0;let t=e.sideEnding?.status;return e.sideEnding&&(t===mm||t===gm)?(P({kind:`side`,sideNumber:e.sideEnding.sideNumber,status:e.sideEnding.status}),d=void 0,!0):!1}function ae(){if(H()){L();return}oe()}function U(e,t){if(t){if(e.disabled)return;e.disabled=!0,e.dataset.lockedByEnding=`true`;return}e.dataset.lockedByEnding&&(e.disabled=!1,delete e.dataset.lockedByEnding)}function W(){let e=Cp(M());return e.hasEnding?e:Mf(n.matchUpStatus?.(),kp(M()))}function oe(){se()}function G(){return l&&o&&!ce()&&!c}function se(){R(),re();let e=W();xe(e),S.disabled=c&&!ce()||!!I()||!(G()||e.isValid||!e.hasEnding&&F()),C.disabled=!ce(),S.title=c&&!ce()?t.clearRefused??Nm:``}function ce(){let e=N();return!!(e.sideEnding||e.matchEnding||e.reasonCode||Tp(M())||n.hasEntry?.())}function le(e){if(e.key.length!==1||K(e.target))return!1;let t=Wm[e.key.toLowerCase()];if(t)return ue(e,t);let n=Um[e.key.toLowerCase()];if(!n)return!1;let r=e.key===e.key.toUpperCase()?Kp(2):2;return ee(n)?(e.preventDefault(),P({kind:`side`,sideNumber:r,status:n}),V(),d=N().sideEnding?r:void 0,f=!1,L(),de(r,n),!0):(e.preventDefault(),!0)}function ue(e,t){return e.preventDefault(),!Ff().includes(t)||!ee(t)||(P({kind:`match`,status:t}),V(),f=!1,L(),(g.querySelector(`.chc-sec-endings button[data-ending="${t}"]`)??g.querySelector(`.chc-sec-endings button[data-action="other"]`))?.focus(),!0)}function de(e,t){let n=N().sideEnding?`[data-panel-side="${e}"] button[data-ending="${t}"]`:`button[data-action="endedEarly"][data-side="${e}"]`;g.querySelector(n)?.focus()}function K(e){let t=e;return t?t.isContentEditable||t.tagName===`TEXTAREA`?!0:t.tagName===`INPUT`&&!t.classList.contains(`chc-sec-set-input`):!1}function fe(e){v.replaceChildren();let t=n.columns?.()??[],r=t.map(e=>e.width??`${Lm}px`).join(` `),i=t.length>Rm||Bm(),a=i?`${r} 1fr`:`1fr ${r}`;if(t.some(e=>e.heading)){let e=J(`chc-sec-row-head`);e.style.gridTemplateColumns=a;let n=t.map(e=>Jm(e.heading??``));e.append(...i?n:[qm(``,`PLAYER`),...n]),v.append(e)}for(let t of[1,2])v.append(pe(t,a,e,i)),d===t&&v.append(me(t))}function pe(r,i,a,o=!1){let s=e.sides[r-1],c=N().sideEnding,l=c&&(c.sideNumber===r||N().bothSidesOut)?c:void 0,u=J(`chc-sec-row`);u.style.gridTemplateColumns=i,u.dataset.side=String(r),u.dataset.stacked=String(o),u.dataset.ended=String(c?.sideNumber===r),u.dataset.bothOut=String(!!N().bothSidesOut),u.dataset.winner=String(a===r);let p=J(`chc-sec-participant`),m=J(Cm);a===r&&m.append(Xm(Im,3));let h=Ym(``,`chc-sec-opener`);h.dataset.action=`endedEarly`,h.dataset.side=String(r),h.title=`How did this match end for them?`;let g=s.seed?`${s.participantName} ${s.seed}`:s.participantName;if(h.setAttribute(Em,`${g} — ended early`),h.setAttribute(Fm,String(d===r)),h.setAttribute(Pm,String(!!l)),h.append(qm(`chc-sec-name`,s.participantName)),s.seed&&h.append(qm(`chc-sec-seed`,s.seed)),h.append(Xm(`m6 9 6 6 6-6`,2.5)),h.addEventListener(`click`,()=>{d=d===r?void 0:r,f=!1,L()}),p.append(m,h),l){let e=J(`chc-sec-row-ending`);e.dataset.rowEnding=l.status,e.textContent=t[l.status]??l.status,p.append(e)}let _=n.rowCells?.(r)??[];return o&&r===2?u.append(..._,p):u.append(p,..._),u}function me(n){let r=e.sides[n-1],i=J(`chc-sec-side-panel`);i.dataset.panelSide=String(n),i.append(qm(`chc-sec-side-panel-head`,`What happened to ${r.participantName}?`));let a=J(`chc-sec-side-panel-body`);for(let e of Pf().filter(e=>!s.has(e))){let r=N().sideEnding?.sideNumber===n&&N().sideEnding?.status===e,i=Ym(``,`chc-sec-btn chc-sec-side-option`);i.dataset.ending=e,i.setAttribute(Pm,String(r));let o=J(`chc-sec-side-option-label`);o.append(qm(``,t[e]??e));let s=Hm[e];s&&o.append(qm(`chc-sec-side-option-hint`,s)),i.append(o),i.disabled=!ee(e)&&!r,i.disabled&&(i.title=ie(e)),i.addEventListener(`click`,()=>{P({kind:`side`,sideNumber:n,status:e}),V(),L()}),a.append(i)}let o=Af(N()),c=N().sideEnding?.sideNumber===n?pf(e.statusCodeGroups,o):[];if(c.length){a.append(qm(`chc-sec-reason-head`,`REASON`));let e=J(`chc-sec-reasons`);for(let t of c){let n=t.matchUpStatusCode,r=Ym(mf(t),Sm);r.dataset.reason=n,r.setAttribute(Pm,String(N().reasonCode===n));let i=hf(t);i&&(r.title=i),r.addEventListener(`click`,()=>{P({kind:`reasonCode`,code:n}),L()}),e.append(r)}a.append(e)}if(N().sideEnding?.sideNumber===n&&Df(N())){let t=e.sides[+(n===1)],r=document.createElement(`label`);r.className=`chc-sec-both-out`;let i=document.createElement(`input`);i.type=`checkbox`,i.checked=!!N().bothSidesOut,i.dataset.action=`bothSidesOut`,i.addEventListener(`change`,()=>{P({kind:`bothSidesOut`}),L()}),r.append(i,qm(``,`${t.participantName} did not appear either — no one advances`)),a.append(r)}return i.append(a),i}function he(){x.replaceChildren();let e=n.block?.();e&&x.append(e)}function ge(){y.replaceChildren(),y.append(Hc(e.disabledMatchUpStatuses,t));let n=Ff().filter(e=>!s.has(e)),r=n.filter(e=>Vm.includes(e)),i=n.filter(e=>!Vm.includes(e));for(let e of r)y.append(be(e,t[e]??e));if(!i.length)return;let a=!!N().matchEnding&&i.includes(N().matchEnding),o=a&&N().matchEnding?t[N().matchEnding]??N().matchEnding:void 0,c=Ym(o?`${km}: ${o}`:Om,Sm);if(c.dataset.action=`other`,c.setAttribute(Pm,String(a)),c.setAttribute(Fm,String(f)),c.append(Xm(`m6 9 6 6 6-6`,2.5)),c.addEventListener(`click`,()=>{f=!f,m=!1,L()}),y.append(c),!f){ye();return}let l=J(wm);for(let e of i){let n=N().matchEnding===e,r=Ym(``,Tm);r.dataset.ending=e,r.setAttribute(Pm,String(n));let i=J(Cm);n&&i.append(Xm(Im,3)),r.append(i,qm(``,t[e]??e)),r.addEventListener(`click`,()=>{P({kind:`match`,status:e}),V(),f=!1,L()}),l.append(r)}y.append(l),ve(l,c)}function _e(e,t){let n=t.getBoundingClientRect(),r=e.offsetHeight,i=globalThis.innerHeight-n.bottom<r+6&&n.top>r+6;e.style.position=`fixed`,e.style.left=`${n.left}px`,e.style.top=i?`${n.top-r-6}px`:`${n.bottom+6}px`,e.style.bottom=`auto`,e.style.right=`auto`}function ve(e,t){_e(e,t),ye(),p=()=>_e(e,t),globalThis.addEventListener(`scroll`,p,!0),globalThis.addEventListener(`resize`,p)}function ye(){p&&=(globalThis.removeEventListener(`scroll`,p,!0),globalThis.removeEventListener(`resize`,p),void 0)}function be(e,t){let n=Ym(t,Sm);return n.dataset.ending=e,n.setAttribute(Pm,String(N().matchEnding===e)),n.addEventListener(`click`,()=>{P({kind:`match`,status:e}),V(),f=!1,L()}),n}function xe(n){let r=I();if(r){b.replaceChildren(),b.dataset.tone=`warn`,b.setAttribute(`role`,`status`),b.append(qm(Am,r)),Se(!0);return}if(c&&!ce()){b.replaceChildren(),b.dataset.tone=`warn`,b.setAttribute(`role`,`status`),b.append(qm(Am,t.clearRefused??Nm)),Se(!0);return}if(G()){b.replaceChildren(),b.dataset.tone=`warn`,b.setAttribute(`role`,`status`),b.append(qm(Am,t.clearedHeadline??Mm)),Se(!0);return}let i=Af(N()),a=pf(e.statusCodeGroups,i).find(e=>e.matchUpStatusCode===N().reasonCode),o=dm({resolution:n,sideNames:[e.sides[0].participantName,e.sides[1].participantName],scoreString:Ep(M())||u,scoreComplete:F(),scoreWinningSide:kp(M()),reasonDisplay:a?mf(a):void 0,labels:t});b.replaceChildren(),b.dataset.tone=o.tone,b.setAttribute(`role`,`status`),b.append(qm(Am,o.headline)),o.detail&&b.append(J(Dm),qm(jm,o.detail)),Se(!o.detail)}function Se(e){let t=n.bandControl?.();t&&(e&&b.append(J(Dm)),b.append(t))}}function J(e){let t=document.createElement(`div`);return e&&(t.className=e),t}function qm(e,t){let n=J(e);return n.textContent=t,n}function Jm(e){return qm(`chc-sec-col-head`,e)}function Ym(e,t){let n=document.createElement(`button`);return n.type=`button`,n.className=t,e&&(n.textContent=e),n}function Xm(e,t=2){let n=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`);n.setAttribute(`width`,`15`),n.setAttribute(`height`,`15`),n.setAttribute(`viewBox`,`0 0 24 24`),n.setAttribute(`fill`,`none`),n.setAttribute(`stroke`,`currentColor`),n.setAttribute(`stroke-width`,String(t)),n.setAttribute(`stroke-linecap`,`round`),n.setAttribute(`stroke-linejoin`,`round`),n.setAttribute(`aria-hidden`,`true`);let r=document.createElementNS(`http://www.w3.org/2000/svg`,`path`);return r.setAttribute(`d`,e),n.append(r),n}var Zm={dynamicSets:`Dynamic Sets`,freeScore:`Free Score`,dialPad:`Dial Pad`},Qm=[`dynamicSets`,`freeScore`,`dialPad`],$m=780;function eh(e){return e instanceof HTMLElement?e.isContentEditable?!0:e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement:!1}function th(e){return e.metaKey||e.ctrlKey||e.altKey}function nh(e){let n=e.approaches?.length?e.approaches:Qm,r=e.labels??Rc(),i=e.approach??n[0],a=e.matchUpFormat??e.matchUp?.matchUpFormat,o=a,s=!1,c=!1,l=Yp({matchUpFormat:a,approach:i,sets:e.sets??e.matchUp?.score?.sets,matchUp:e.matchUp}),u=x(),d=h(i),f=Km({...e,labels:r,matchUpFormat:a,store:l,region:d,approachLabel:Zm[i],approaches:n.length>1?n.map(m):void 0,onSelectApproach:e=>g(e),onEditFormat:e.onFormatChange?v:void 0,onCancel:()=>{e.onCancel?.(),D()},onSubmit:t=>{let n=wp(l.get()),r=a===o?void 0:a;e.onSubmit?.({...t,sets:n,outcome:om({...t,sets:n},r)}),D()}}),p=se.open({content:f.element,config:{maxWidth:$m,clickAway:!1,padding:`0`,...e.modalConfig},onClose:()=>{E(),O()}});document.addEventListener(`keydown`,C),y(),b();function m(e){return{key:e,label:Zm[e]}}function h(t){let n=()=>f.refresh();return t===`freeScore`?nm({store:l,onChange:n,disabledMatchUpStatuses:e.disabledMatchUpStatuses,statusScopeLabels:r}):t===`dialPad`?im({store:l,onChange:n}):Qp({store:l,sideNames:[e.sides[0].participantName,e.sides[1].participantName],onChange:n,onStructureChange:()=>f.rerender()})}function g(t){s||t===i||(l.set(ep(l.get(),t)),i=t,d=h(t),f.update({region:d,approachLabel:Zm[t]}),b(),e.onApproachChange?.(t))}function _(n){if(n===a)return;let r=a,o=wp(l.get()),s=t.scoreGovernor.retainScoreForFormat({sets:o,matchUpFormat:n,previousMatchUpFormat:r});a=n,f.update({matchUpFormat:n}),d=h(i),f.update({region:d}),b(),s.discarded.length&&e.onScoreDiscarded?.({...s,matchUpFormat:n}),e.onFormatChange?.(n)}function v(){let t=e.openFormatPicker??Ko,n=S();n&&(n.inert=!0),t({existingMatchUpFormat:a??`SET3-S:6/TB7`,callback:e=>{e&&_(e)},onClose:()=>{n&&(n.inert=!1),b()}})}function y(){let e=S();e&&(e.setAttribute(`aria-modal`,`true`),e.setAttribute(`aria-labelledby`,f.titleId))}function b(){if(!s&&e.autoFocus!==!1){if(u){S()?.focus();return}if(d.focusFirst){d.focusFirst();return}(f.element.querySelector(`input:not([disabled]), button[data-digit]`)??S())?.focus()}}function x(){let t=e.matchUp;return t?!!t.winningSide||jc(t.matchUpStatus)||Op(l.get()):!1}function S(){return f.element.closest(`section[id^="cmdl-"]`)}function C(e){if(s||!T())return;if(e.key===`Escape`){if(e.preventDefault(),f.closeMenus())return;w(`cancel`)?.click();return}if(e.key!==`Delete`&&e.key!==`Backspace`||e.defaultPrevented||th(e)||eh(e.target)||!S()?.contains(e.target))return;let t=w(`clear`);t&&!t.disabled&&(e.preventDefault(),t.click())}function w(e){return f.element.querySelector(`button[data-action="${e}"]`)}function T(){let e=S();return e?[...document.querySelectorAll(`section[id^="cmdl-"]`)].at(-1)===e:!1}function E(){s||(s=!0,document.removeEventListener(`keydown`,C),f.destroy())}function D(){s||p.close(),E(),O()}function O(){c||(c=!0,e.onClose?.())}return{card:f,approach:()=>i,setApproach:g,setMatchUpFormat:_,close:D}}var rh=[`input:not([inert]):not([inert] *)`,`select:not([inert]):not([inert] *)`,`textarea:not([inert]):not([inert] *)`,`a[href]:not([inert]):not([inert] *)`,`area[href]:not([inert]):not([inert] *)`,`button:not([inert]):not([inert] *)`,`[tabindex]:not(slot):not([inert]):not([inert] *)`,`audio[controls]:not([inert]):not([inert] *)`,`video[controls]:not([inert]):not([inert] *)`,`[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)`,`details>summary:first-of-type:not([inert]):not([inert] *)`,`details:not([inert]):not([inert] *)`],ih=rh.join(`,`),ah=typeof Element>`u`,oh=ah?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,sh=!ah&&Element.prototype.getRootNode?function(e){return e?.getRootNode?.call(e)}:function(e){return e?.ownerDocument},ch=function(e,t){t===void 0&&(t=!0);var n=e?.getAttribute?.call(e,`inert`);return n===``||n===`true`||t&&e&&(typeof e.closest==`function`?e.closest(`[inert]`):ch(e.parentNode))},lh=function(e){var t=e?.getAttribute?.call(e,`contenteditable`);return t===``||t===`true`},uh=function(e,t,n){if(ch(e))return[];var r=Array.prototype.slice.apply(e.querySelectorAll(ih));return t&&oh.call(e,ih)&&r.unshift(e),r=r.filter(n),r},dh=function(e,t,n){for(var r=[],i=Array.from(e);i.length;){var a=i.shift();if(!ch(a,!1)){if(a.tagName===`SLOT`){var o=a.assignedElements(),s=dh(o.length?o:a.children,!0,n);n.flatten?r.push.apply(r,s):r.push({scopeParent:a,candidates:s})}else{oh.call(a,ih)&&n.filter(a)&&(t||!e.includes(a))&&r.push(a);var c=a.shadowRoot||typeof n.getShadowRoot==`function`&&n.getShadowRoot(a),l=!ch(c,!1)&&(!n.shadowRootFilter||n.shadowRootFilter(a));if(c&&l){var u=dh(c===!0?a.children:c.children,!0,n);n.flatten?r.push.apply(r,u):r.push({scopeParent:a,candidates:u})}else i.unshift.apply(i,a.children)}}}return r},fh=function(e){return!isNaN(parseInt(e.getAttribute(`tabindex`),10))},ph=function(e){if(!e)throw Error(`No node provided`);return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||lh(e))&&!fh(e)?0:e.tabIndex},mh=function(e,t){var n=ph(e);return n<0&&t&&!fh(e)?0:n},hh=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},gh=function(e){return e.tagName===`INPUT`},_h=function(e){return gh(e)&&e.type===`hidden`},vh=function(e){return e.tagName===`DETAILS`&&Array.prototype.slice.apply(e.children).some(function(e){return e.tagName===`SUMMARY`})},yh=function(e,t){for(var n=0;n<e.length;n++)if(e[n].checked&&e[n].form===t)return e[n]},bh=function(e){if(!e.name)return!0;var t=e.form||sh(e),n=function(e){return t.querySelectorAll(`input[type="radio"][name="`+e+`"]`)},r;if(typeof window<`u`&&window.CSS!==void 0&&typeof window.CSS.escape==`function`)r=n(window.CSS.escape(e.name));else try{r=n(e.name)}catch(e){return console.error(`Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s`,e.message),!1}var i=yh(r,e.form);return!i||i===e},xh=function(e){return gh(e)&&e.type===`radio`},Sh=function(e){return xh(e)&&!bh(e)},Ch=function(e){var t=e&&sh(e),n=t?.host,r=!1;if(t&&t!==e){var i,a,o;for(r=!!((i=n)!=null&&(a=i.ownerDocument)!=null&&a.contains(n)||e!=null&&(o=e.ownerDocument)!=null&&o.contains(e));!r&&n;){var s,c;t=sh(n),n=t?.host,r=!!((s=n)!=null&&(c=s.ownerDocument)!=null&&c.contains(n))}}return r},wh=function(e){var t=e.getBoundingClientRect(),n=t.width,r=t.height;return n===0&&r===0},Th=function(e,t){var n=t.displayCheck,r=t.getShadowRoot;if(n===`full-native`&&`checkVisibility`in e)return!e.checkVisibility({checkOpacity:!1,opacityProperty:!1,contentVisibilityAuto:!0,visibilityProperty:!0,checkVisibilityCSS:!0});var i=getComputedStyle(e).visibility;if(i===`hidden`||i===`collapse`)return!0;var a=oh.call(e,`details>summary:first-of-type`)?e.parentElement:e;if(oh.call(a,`details:not([open]) *`))return!0;if(!n||n===`full`||n===`full-native`||n===`legacy-full`){if(typeof r==`function`){for(var o=e;e;){var s=e.parentElement,c=sh(e);if(s&&!s.shadowRoot&&r(s)===!0)return wh(e);e=e.assignedSlot?e.assignedSlot:!s&&c!==e.ownerDocument?c.host:s}e=o}if(Ch(e))return!e.getClientRects().length;if(n!==`legacy-full`)return!0}else if(n===`non-zero-area`)return wh(e);return!1},Eh=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName===`FIELDSET`&&t.disabled){for(var n=0;n<t.children.length;n++){var r=t.children.item(n);if(r.tagName===`LEGEND`)return oh.call(t,`fieldset[disabled] *`)?!0:!r.contains(e)}return!0}t=t.parentElement}return!1},Dh=function(e,t){return!(t.disabled||_h(t)||Th(t,e)||vh(t)||Eh(t))},Oh=function(e,t){return!(Sh(t)||ph(t)<0||!Dh(e,t))},kh=function(e){var t=parseInt(e.getAttribute(`tabindex`),10);return!!(isNaN(t)||t>=0)},Ah=function(e){var t=[],n=[];return e.forEach(function(e,r){var i=!!e.scopeParent,a=i?e.scopeParent:e,o=mh(a,i),s=i?Ah(e.candidates):a;o===0?i?t.push.apply(t,s):t.push(a):n.push({documentOrder:r,tabIndex:o,item:e,isScope:i,content:s})}),n.sort(hh).reduce(function(e,t){return t.isScope?e.push.apply(e,t.content):e.push(t.content),e},[]).concat(t)},jh=function(e,t){return t||={},Ah(t.getShadowRoot?dh([e],t.includeContainer,{filter:Oh.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:kh}):uh(e,t.includeContainer,Oh.bind(null,t)))},Mh=function(e,t){return t||={},t.getShadowRoot?dh([e],t.includeContainer,{filter:Dh.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):uh(e,t.includeContainer,Dh.bind(null,t))},Nh=function(e,t){if(t||={},!e)throw Error(`No node provided`);return oh.call(e,ih)!==!1&&Oh(t,e)},Ph=rh.concat(`iframe:not([inert]):not([inert] *)`).join(`,`),Fh=function(e,t){if(t||={},!e)throw Error(`No node provided`);return oh.call(e,Ph)!==!1&&Dh(t,e)};function Ih(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Lh(e){if(Array.isArray(e))return Ih(e)}function Rh(e,t){var n=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(!n){if(Array.isArray(e)||(n=qh(e))||t){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
176
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||n.return==null||n.return()}finally{if(s)throw a}}}}function zh(e,t,n){return(t=Kh(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Bh(e){if(typeof Symbol<`u`&&e[Symbol.iterator]!=null||e[`@@iterator`]!=null)return Array.from(e)}function Vh(){throw TypeError(`Invalid attempt to spread non-iterable instance.
|
|
177
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Hh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Uh(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Hh(Object(n),!0).forEach(function(t){zh(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Hh(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Wh(e){return Lh(e)||Bh(e)||qh(e)||Vh()}function Gh(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Kh(e){var t=Gh(e,`string`);return typeof t==`symbol`?t:t+``}function qh(e,t){if(e){if(typeof e==`string`)return Ih(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ih(e,t):void 0}}var Jh={getActiveTrap:function(e){return e?.length>0?e[e.length-1]:null},activateTrap:function(e,t){t!==Jh.getActiveTrap(e)&&Jh.pauseTrap(e);var n=e.indexOf(t);n===-1||e.splice(n,1),e.push(t)},deactivateTrap:function(e,t){var n=e.indexOf(t);n!==-1&&e.splice(n,1),Jh.unpauseTrap(e)},pauseTrap:function(e){Jh.getActiveTrap(e)?._setPausedState(!0)},unpauseTrap:function(e){var t=Jh.getActiveTrap(e);t&&!t._isManuallyPaused()&&t._setPausedState(!1)}},Yh=function(e){return e.tagName&&e.tagName.toLowerCase()===`input`&&typeof e.select==`function`},Xh=function(e){return e?.key===`Escape`||e?.key===`Esc`||e?.keyCode===27},Zh=function(e){return e?.key===`Tab`||e?.keyCode===9},Qh=function(e){return Zh(e)&&!e.shiftKey},$h=function(e){return Zh(e)&&e.shiftKey},eg=function(e){return setTimeout(e,0)},tg=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return typeof e==`function`?e.apply(void 0,n):e},ng=function(e){return e.target.shadowRoot&&typeof e.composedPath==`function`?e.composedPath()[0]:e.target},rg=[],ig=function(e,t){var n=t?.document||document,r=t?.trapStack||rg,i=Uh({returnFocusOnDeactivate:!0,escapeDeactivates:!0,delayInitialFocus:!0,delayReturnFocus:!0,isolateSubtrees:!1,isKeyForward:Qh,isKeyBackward:$h},t),a={containers:[],containerGroups:[],tabbableGroups:[],adjacentElements:new Set,alreadySilent:new Set,nodeFocusedBeforeActivation:null,mostRecentlyFocusedNode:null,active:!1,paused:!1,manuallyPaused:!1,delayInitialFocusTimer:void 0,recentNavEvent:void 0},o,s=function(e,t,n){return e&&e[t]!==void 0?e[t]:i[n||t]},c=function(e,t){var n=typeof t?.composedPath==`function`?t.composedPath():void 0;return a.containerGroups.findIndex(function(t){var r=t.container,i=t.tabbableNodes;return r.contains(e)||n?.includes(r)||i.find(function(t){return t===e})})},l=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=t.hasFallback,a=r!==void 0&&r,o=t.params,s=o===void 0?[]:o,c=i[e];if(typeof c==`function`&&(c=c.apply(void 0,Wh(s))),c===!0&&(c=void 0),!c){if(c===void 0||c===!1)return c;throw Error(`\`${e}\` was specified but was not a node, or did not return a node`)}var l=c;if(typeof c==`string`){try{l=n.querySelector(c)}catch(t){throw Error(`\`${e}\` appears to be an invalid selector; error="${t.message}"`,{cause:t})}if(!l&&!a)throw Error(`\`${e}\` as selector refers to no known node`)}return l},u=function(e){var t=e.activeElement;return t?t.shadowRoot&&t.shadowRoot.activeElement!==null?u(t.shadowRoot):t:null},d=function(){var e=l(`initialFocus`,{hasFallback:!0});if(e===!1)return!1;if(e===void 0||e&&!Fh(e,i.tabbableOptions)){var t=u(n);if(c(t)>=0)e=t;else{var r=a.tabbableGroups[0];e=r&&r.firstTabbableNode||l(`fallbackFocus`)}}else e===null&&(e=l(`fallbackFocus`));if(!e)throw Error(`Your focus-trap needs to have at least one focusable element`);return e},f=function(){if(a.containerGroups=a.containers.map(function(e){var t=jh(e,i.tabbableOptions),n=Mh(e,i.tabbableOptions),r=t.length>0?t[0]:void 0,a=t.length>0?t[t.length-1]:void 0,o=n.find(function(e){return Nh(e)}),s=n.slice().reverse().find(function(e){return Nh(e)});return{container:e,tabbableNodes:t,focusableNodes:n,posTabIndexesFound:!!t.find(function(e){return ph(e)>0}),firstTabbableNode:r,lastTabbableNode:a,firstDomTabbableNode:o,lastDomTabbableNode:s,nextTabbableNode:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,i=t.indexOf(e);return i<0?r?n.slice(n.indexOf(e)+1).find(function(e){return Nh(e)}):n.slice(0,n.indexOf(e)).reverse().find(function(e){return Nh(e)}):t[i+(r?1:-1)]}}}),a.tabbableGroups=a.containerGroups.filter(function(e){return e.tabbableNodes.length>0}),a.tabbableGroups.length<=0&&!l(`fallbackFocus`))throw Error(`Your focus-trap must have at least one container with at least one tabbable node in it at all times`);if(a.containerGroups.find(function(e){return e.posTabIndexesFound})&&a.containerGroups.length>1)throw Error(`At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.`)},p=function(e){if(e!==!1){if(e===u(n)){a.mostRecentlyFocusedNode=e;return}if(!e||!e.focus){p(d());return}e.focus({preventScroll:!!i.preventScroll}),a.mostRecentlyFocusedNode=e,Yh(e)&&e.select()}},m=function(e){var t=l(`setReturnFocus`,{params:[e]});return t||t!==!1&&e},h=function(e){var t=e.target,n=e.event,r=e.isBackward,o=r!==void 0&&r;t||=ng(n),f();var s=null;if(a.tabbableGroups.length>0){var u=c(t,n),d=u>=0?a.containerGroups[u]:void 0;if(u<0)s=o?a.tabbableGroups[a.tabbableGroups.length-1].lastTabbableNode:a.tabbableGroups[0].firstTabbableNode;else if(o){var p=a.tabbableGroups.findIndex(function(e){var n=e.firstTabbableNode;return t===n});if(p<0&&(d.container===t||Fh(t,i.tabbableOptions)&&!Nh(t,i.tabbableOptions)&&!d.nextTabbableNode(t,!1))&&(p=u),p>=0){var m=p===0?a.tabbableGroups.length-1:p-1,h=a.tabbableGroups[m];s=ph(t)>=0?h.lastTabbableNode:h.lastDomTabbableNode}else Zh(n)||(s=d.nextTabbableNode(t,!1))}else{var g=a.tabbableGroups.findIndex(function(e){var n=e.lastTabbableNode;return t===n});if(g<0&&(d.container===t||Fh(t,i.tabbableOptions)&&!Nh(t,i.tabbableOptions)&&!d.nextTabbableNode(t))&&(g=u),g>=0){var _=g===a.tabbableGroups.length-1?0:g+1,v=a.tabbableGroups[_];s=ph(t)>=0?v.firstTabbableNode:v.firstDomTabbableNode}else Zh(n)||(s=d.nextTabbableNode(t))}}else s=l(`fallbackFocus`);return s},g=function(e){if(!(c(ng(e),e)>=0)){if(tg(i.clickOutsideDeactivates,e)){o.deactivate({returnFocus:i.returnFocusOnDeactivate});return}tg(i.allowOutsideClick,e)||e.preventDefault()}},_=function(e){var t=ng(e),n=c(t,e)>=0;if(n||t instanceof Document)n&&(a.mostRecentlyFocusedNode=t);else{e.stopImmediatePropagation();var r,o=!0;if(a.mostRecentlyFocusedNode){if(ph(a.mostRecentlyFocusedNode)>0){var s=c(a.mostRecentlyFocusedNode),l=a.containerGroups[s].tabbableNodes;if(l.length>0){var u=l.findIndex(function(e){return e===a.mostRecentlyFocusedNode});u>=0&&(i.isKeyForward(a.recentNavEvent)?u+1<l.length&&(r=l[u+1],o=!1):u-1>=0&&(r=l[u-1],o=!1))}}else a.containerGroups.some(function(e){return e.tabbableNodes.some(function(e){return ph(e)>0})})||(o=!1)}else o=!1;o&&(r=h({target:a.mostRecentlyFocusedNode,isBackward:i.isKeyBackward(a.recentNavEvent)})),p(r||a.mostRecentlyFocusedNode||d())}a.recentNavEvent=void 0},v=function(e){var t=arguments.length>1&&arguments[1]!==void 0&&arguments[1];a.recentNavEvent=e;var n=h({event:e,isBackward:t});n&&(Zh(e)&&e.preventDefault(),p(n))},y=function(e){(i.isKeyForward(e)||i.isKeyBackward(e))&&v(e,i.isKeyBackward(e))},b=function(e){Xh(e)&&tg(i.escapeDeactivates,e)!==!1&&(e.preventDefault(),o.deactivate())},x=function(e){c(ng(e),e)>=0||tg(i.clickOutsideDeactivates,e)||tg(i.allowOutsideClick,e)||(e.preventDefault(),e.stopImmediatePropagation())},S=function(){if(a.active){Jh.activateTrap(r,o);var e;return i.delayInitialFocus?e=new Promise(function(e){a.delayInitialFocusTimer=eg(function(){p(d()),e()})}):p(d()),n.addEventListener(`focusin`,_,!0),n.addEventListener(`mousedown`,g,{capture:!0,passive:!1}),n.addEventListener(`touchstart`,g,{capture:!0,passive:!1}),n.addEventListener(`click`,x,{capture:!0,passive:!1}),n.addEventListener(`keydown`,y,{capture:!0,passive:!1}),n.addEventListener(`keydown`,b),e}},C=function(e){a.active&&!a.paused&&o._setSubtreeIsolation(!1),a.adjacentElements.clear(),a.alreadySilent.clear();var t=new Set,n=new Set,r=Rh(e),i;try{for(r.s();!(i=r.n()).done;){var s=i.value;t.add(s);for(var c=typeof ShadowRoot<`u`&&s.getRootNode()instanceof ShadowRoot,l=s;l;){t.add(l);var u=l.parentElement,d=[];u?d=u.children:!u&&c&&(d=l.getRootNode().children,u=l.getRootNode().host,c=typeof ShadowRoot<`u`&&u.getRootNode()instanceof ShadowRoot);var f=Rh(d),p;try{for(f.s();!(p=f.n()).done;){var m=p.value;n.add(m)}}catch(e){f.e(e)}finally{f.f()}l=u}}}catch(e){r.e(e)}finally{r.f()}t.forEach(function(e){n.delete(e)}),a.adjacentElements=n},w=function(){if(a.active)return n.removeEventListener(`focusin`,_,!0),n.removeEventListener(`mousedown`,g,!0),n.removeEventListener(`touchstart`,g,!0),n.removeEventListener(`click`,x,!0),n.removeEventListener(`keydown`,y,!0),n.removeEventListener(`keydown`,b),o},T=typeof window<`u`&&`MutationObserver`in window?new MutationObserver(function(e){var t=a.mostRecentlyFocusedNode;t&&e.some(function(e){return Array.from(e.removedNodes).some(function(e){return e===t||typeof e.contains==`function`&&e.contains(t)})})&&a.containers.some(function(e){return e?.isConnected})&&(f(),p(d()))}):void 0,E=function(){T&&(T.disconnect(),a.active&&!a.paused&&a.containers.map(function(e){T.observe(e,{subtree:!0,childList:!0})}))};return o={get active(){return a.active},get paused(){return a.paused},activate:function(e){if(a.active)return this;var t=s(e,`onActivate`),i=s(e,`onPostActivate`),c=s(e,`checkCanFocusTrap`),l=Jh.getActiveTrap(r),d=!1;if(l&&!l.paused){var p;(p=l._setSubtreeIsolation)==null||p.call(l,!1),d=!0}try{c||f(),a.active=!0,a.paused=!1,a.nodeFocusedBeforeActivation=u(n),t?.({trap:o});var m=function(){c&&f();var e=function(){o._setSubtreeIsolation(!0),E(),i?.({trap:o})},t=S();t?t.then(e):e()};if(c)return c(a.containers.concat()).then(m,m),this;m()}catch(e){if(l===Jh.getActiveTrap(r)&&d){var h;(h=l._setSubtreeIsolation)==null||h.call(l,!0)}throw e}return this},deactivate:function(e){if(!a.active)return this;var t=Uh({onDeactivate:i.onDeactivate,onPostDeactivate:i.onPostDeactivate,checkCanReturnFocus:i.checkCanReturnFocus},e);clearTimeout(a.delayInitialFocusTimer),a.delayInitialFocusTimer=void 0,a.paused||o._setSubtreeIsolation(!1),a.alreadySilent.clear(),w(),a.active=!1,a.paused=!1,E(),Jh.deactivateTrap(r,o);var n=s(t,`onDeactivate`),c=s(t,`onPostDeactivate`),l=s(t,`checkCanReturnFocus`),u=s(t,`delayReturnFocus`),d=s(t,`returnFocus`,`returnFocusOnDeactivate`);n?.({trap:o});var f=function(){d&&p(m(a.nodeFocusedBeforeActivation)),c?.({trap:o})},h=function(){u&&d?eg(f):f()};return d&&l?(l(m(a.nodeFocusedBeforeActivation)).then(h,h),this):(h(),this)},pause:function(e){return a.active?(a.manuallyPaused=!0,this._setPausedState(!0,e)):this},unpause:function(e){return!a.active||(a.manuallyPaused=!1,r[r.length-1]!==this)?this:this._setPausedState(!1,e)},updateContainerElements:function(e){return a.containers=[].concat(e).filter(Boolean).map(function(e){return typeof e==`string`?n.querySelector(e):e}),i.isolateSubtrees&&C(a.containers),a.active&&(f(),a.paused||o._setSubtreeIsolation(!0)),E(),this}},Object.defineProperties(o,{_isManuallyPaused:{value:function(){return a.manuallyPaused}},_setPausedState:{value:function(e,t){if(a.paused===e)return this;if(a.paused=e,e){var n=s(t,`onPause`),r=s(t,`onPostPause`);n?.({trap:o}),w(),o._setSubtreeIsolation(!1),E(),r?.({trap:o})}else{var i=s(t,`onUnpause`),c=s(t,`onPostUnpause`);i?.({trap:o}),(function(){f();var e=function(){o._setSubtreeIsolation(!0),E(),c?.({trap:o})},t=S();t?t.then(e):e()})()}return this}},_setSubtreeIsolation:{value:function(e){i.isolateSubtrees&&a.adjacentElements.forEach(function(t){if(e)switch(i.isolateSubtrees){case`aria-hidden`:(t.ariaHidden===`true`||t.getAttribute(`aria-hidden`)?.toLowerCase()===`true`)&&a.alreadySilent.add(t),t.setAttribute(`aria-hidden`,`true`);break;default:(t.inert||t.hasAttribute(`inert`))&&a.alreadySilent.add(t),t.setAttribute(`inert`,!0)}else if(!a.alreadySilent.has(t))switch(i.isolateSubtrees){case`aria-hidden`:t.removeAttribute(`aria-hidden`);break;default:t.removeAttribute(`inert`)}})}}}),o.updateContainerElements(e),o},ag=`left`,og=`right`,sg=`courthive-drawer`,cg=e=>typeof e==`function`,lg=e=>{for(;e.firstChild;)e.firstChild.remove()};function yee(e,t){let n=t.parentNode;for(;n;){if(n===e)return!0;n=n.parentNode}return!1}var ug=null,bee=!1,xee=(e=sg)=>{if(ug)return ug;let t={selectorTrigger:`[data-drawer-trigger]`,selectorTarget:`[data-drawer-target]`,selectorClose:`[data-drawer-close]`,leftAlignment:`drawer--left`,visibleClass:`is-visible`,activeClass:`is-active`,speedClose:350,speedOpen:50},n={},r=!1,i,a,o,s=!1,c=e=>a=e,l=()=>{cg(a)&&(a?.(),a=void 0);let n=document.getElementById(e);n&&(n.classList.remove(t.visibleClass),document.documentElement.style.overflow=``,setTimeout(function(){i?(n.classList.add(t.visibleClass),document.documentElement.style.overflow=`hidden`,cg(i?.callback)&&i.callback()):(n.classList.remove(t.activeClass),r=!1),i=!1,o?.deactivate()},t.speedClose))},u=n=>{if(!e)return;let r=document.getElementById(e);r&&(r.classList.contains(t.leftAlignment)||r.classList.add(t.leftAlignment),g(r,!1,n))},d=n=>{let r=document.getElementById(e);r&&(r.classList.remove(t.leftAlignment),g(r,!1,n))},f=t=>{let n=document.getElementById(e)?.querySelector(`.drawer__title`);n&&(n.innerHTML=t)},p=t=>{let r=document.getElementById(e)?.querySelector(`.drawer__footer`);r&&(lg(r),cg(t)?n.footer=t(r,l):r.innerHTML=t||``)},m=t=>{let r=document.getElementById(e)?.querySelector(`.drawer__content`);r&&(lg(r),cg(t)?n.content=t(r,l):r.innerHTML=t)},h=t=>{let n=document.getElementById(e)?.querySelector(`.drawer__wrapper`);n&&(n.style.width=t)},g=(e,n,i)=>{r=!0,s=!0,e.classList.add(t.activeClass),document.documentElement.style.overflow=`hidden`,n&&(o=ig(e),o.activate()),cg(i)&&i&&i(),setTimeout(function(){e.classList.add(t.visibleClass),setTimeout(()=>{s=!1},100)},t.speedOpen)};return bee||=(document.addEventListener(`click`,function(t){if(!e||!r||s)return;let n=t.target,i=document.querySelector(`.drawer__wrapper`);if(!i)return;let a=n.classList.contains(`drawer__close`)||n.closest(`.drawer__close`)||`drawerClose`in n.dataset||n.closest(`[data-drawer-close]`);(!yee(i,n)||a)&&l()},!1),document.addEventListener(`keydown`,e=>{e.key===`Escape`&&r&&l()},!1),!0),ug={settings:t,open:(t={})=>{let{title:n,content:a,side:o,width:s,footer:l,callback:_,onClose:v}=t;if(a&&m(a),v&&c(v),n&&f(n),s&&h(s),p(l),r)i={callback:_};else if(o){if(o===og)return d(_);if(o===ag)return u(_)}else{let t=document.getElementById(e);t&&g(t,l,_)}},close:l,setTitle:f,setContent:m,setFooter:p,attributes:n},ug};function See(e=sg){if(document.getElementById(e))return;let t=`
|
|
178
178
|
<div id="${e}" class="drawer" aria-hidden="true">
|
|
179
179
|
<div class="drawer__overlay" tabindex="-1" data-drawer-close></div>
|
|
180
180
|
<div class="drawer__wrapper" role="dialog" aria-modal="true">
|
|
@@ -191,44 +191,44 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
191
191
|
<div class="drawer__footer"></div>
|
|
192
192
|
</div>
|
|
193
193
|
</div>
|
|
194
|
-
`;document.body.insertAdjacentHTML(`beforeend`,t)}var ug=`bottom`,dg=`right`,fg=`left`,wee=`auto`,pg=[`top`,ug,dg,fg],mg=`start`,Tee=`clippingParents`,Eee=`viewport`,hg=`popper`,Dee=`reference`,gg=pg.reduce(function(e,t){return e.concat([t+`-`+mg,t+`-end`])},[]),_g=[].concat(pg,[wee]).reduce(function(e,t){return e.concat([t,t+`-`+mg,t+`-end`])},[]),vg=[`beforeRead`,`read`,`afterRead`,`beforeMain`,`main`,`afterMain`,`beforeWrite`,`write`,`afterWrite`];function yg(e){return e?(e.nodeName||``).toLowerCase():null}function bg(e){if(e==null)return window;if(e.toString()!==`[object Window]`){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function xg(e){return e instanceof bg(e).Element||e instanceof Element}function Sg(e){return e instanceof bg(e).HTMLElement||e instanceof HTMLElement}function Cg(e){return typeof ShadowRoot>`u`?!1:e instanceof bg(e).ShadowRoot||e instanceof ShadowRoot}function wg(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},i=t.elements[e];Sg(i)&&yg(i)&&(Object.assign(i.style,n),Object.keys(r).forEach(function(e){var t=r[e];t===!1?i.removeAttribute(e):i.setAttribute(e,t===!0?``:t)}))})}function Tg(e){var t=e.state,n={popper:{position:t.options.strategy,left:`0`,top:`0`,margin:`0`},arrow:{position:`absolute`},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(e){var r=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce(function(e,t){return e[t]=``,e},{});Sg(r)&&yg(r)&&(Object.assign(r.style,a),Object.keys(i).forEach(function(e){r.removeAttribute(e)}))})}}var Eg={name:`applyStyles`,enabled:!0,phase:`write`,fn:wg,effect:Tg,requires:[`computeStyles`]};function Dg(e){return e.split(`-`)[0]}var Og=Math.max,kg=Math.min,Ag=Math.round;function jg(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+`/`+e.version}).join(` `):navigator.userAgent}function Mg(){return!/^((?!chrome|android).)*safari/i.test(jg())}function Ng(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),i=1,a=1;t&&Sg(e)&&(i=e.offsetWidth>0&&Ag(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&Ag(r.height)/e.offsetHeight||1);var o=(xg(e)?bg(e):window).visualViewport,s=!Mg()&&n,c=(r.left+(s&&o?o.offsetLeft:0))/i,l=(r.top+(s&&o?o.offsetTop:0))/a,u=r.width/i,d=r.height/a;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c,x:c,y:l}}function Pg(e){var t=Ng(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function Fg(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Cg(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function Ig(e){return bg(e).getComputedStyle(e)}function Lg(e){return[`table`,`td`,`th`].indexOf(yg(e))>=0}function Rg(e){return((xg(e)?e.ownerDocument:e.document)||window.document).documentElement}function zg(e){return yg(e)===`html`?e:e.assignedSlot||e.parentNode||(Cg(e)?e.host:null)||Rg(e)}function Bg(e){return!Sg(e)||Ig(e).position===`fixed`?null:e.offsetParent}function Vg(e){var t=/firefox/i.test(jg());if(/Trident/i.test(jg())&&Sg(e)&&Ig(e).position===`fixed`)return null;var n=zg(e);for(Cg(n)&&(n=n.host);Sg(n)&&[`html`,`body`].indexOf(yg(n))<0;){var r=Ig(n);if(r.transform!==`none`||r.perspective!==`none`||r.contain===`paint`||[`transform`,`perspective`].indexOf(r.willChange)!==-1||t&&r.willChange===`filter`||t&&r.filter&&r.filter!==`none`)return n;n=n.parentNode}return null}function Hg(e){for(var t=bg(e),n=Bg(e);n&&Lg(n)&&Ig(n).position===`static`;)n=Bg(n);return n&&(yg(n)===`html`||yg(n)===`body`&&Ig(n).position===`static`)?t:n||Vg(e)||t}function Ug(e){return[`top`,`bottom`].indexOf(e)>=0?`x`:`y`}function Wg(e,t,n){return Og(e,kg(t,n))}function Gg(e,t,n){var r=Wg(e,t,n);return r>n?n:r}function Kg(){return{top:0,right:0,bottom:0,left:0}}function qg(e){return Object.assign({},Kg(),e)}function Jg(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}var Yg=function(e,t){return e=typeof e==`function`?e(Object.assign({},t.rects,{placement:t.placement})):e,qg(typeof e==`number`?Jg(e,pg):e)};function Xg(e){var t,n=e.state,r=e.name,i=e.options,a=n.elements.arrow,o=n.modifiersData.popperOffsets,s=Dg(n.placement),c=Ug(s),l=[`left`,`right`].indexOf(s)>=0?`height`:`width`;if(a&&o){var u=Yg(i.padding,n),d=Pg(a),f=c===`y`?`top`:fg,p=c===`y`?ug:dg,m=n.rects.reference[l]+n.rects.reference[c]-o[c]-n.rects.popper[l],h=o[c]-n.rects.reference[c],g=Hg(a),_=g?c===`y`?g.clientHeight||0:g.clientWidth||0:0,v=m/2-h/2,y=u[f],b=_-d[l]-u[p],x=_/2-d[l]/2+v,S=Wg(y,x,b),C=c;n.modifiersData[r]=(t={},t[C]=S,t.centerOffset=S-x,t)}}function Zg(e){var t=e.state,n=e.options.element,r=n===void 0?`[data-popper-arrow]`:n;r!=null&&(typeof r==`string`&&(r=t.elements.popper.querySelector(r),!r)||Fg(t.elements.popper,r)&&(t.elements.arrow=r))}var Qg={name:`arrow`,enabled:!0,phase:`main`,fn:Xg,effect:Zg,requires:[`popperOffsets`],requiresIfExists:[`preventOverflow`]};function $g(e){return e.split(`-`)[1]}var e_={top:`auto`,right:`auto`,bottom:`auto`,left:`auto`};function t_(e,t){var n=e.x,r=e.y,i=t.devicePixelRatio||1;return{x:Ag(n*i)/i||0,y:Ag(r*i)/i||0}}function n_(e){var t,n=e.popper,r=e.popperRect,i=e.placement,a=e.variation,o=e.offsets,s=e.position,c=e.gpuAcceleration,l=e.adaptive,u=e.roundOffsets,d=e.isFixed,f=o.x,p=f===void 0?0:f,m=o.y,h=m===void 0?0:m,g=typeof u==`function`?u({x:p,y:h}):{x:p,y:h};p=g.x,h=g.y;var _=o.hasOwnProperty(`x`),v=o.hasOwnProperty(`y`),y=fg,b=`top`,x=window;if(l){var S=Hg(n),C=`clientHeight`,w=`clientWidth`;if(S===bg(n)&&(S=Rg(n),Ig(S).position!==`static`&&s===`absolute`&&(C=`scrollHeight`,w=`scrollWidth`)),S=S,i===`top`||(i===`left`||i===`right`)&&a===`end`){b=ug;var T=d&&S===x&&x.visualViewport?x.visualViewport.height:S[C];h-=T-r.height,h*=c?1:-1}if(i===`left`||(i===`top`||i===`bottom`)&&a===`end`){y=dg;var E=d&&S===x&&x.visualViewport?x.visualViewport.width:S[w];p-=E-r.width,p*=c?1:-1}}var D=Object.assign({position:s},l&&e_),O=u===!0?t_({x:p,y:h},bg(n)):{x:p,y:h};if(p=O.x,h=O.y,c){var k;return Object.assign({},D,(k={},k[b]=v?`0`:``,k[y]=_?`0`:``,k.transform=(x.devicePixelRatio||1)<=1?`translate(`+p+`px, `+h+`px)`:`translate3d(`+p+`px, `+h+`px, 0)`,k))}return Object.assign({},D,(t={},t[b]=v?h+`px`:``,t[y]=_?p+`px`:``,t.transform=``,t))}function r_(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0||r,a=n.adaptive,o=a===void 0||a,s=n.roundOffsets,c=s===void 0||s,l={placement:Dg(t.placement),variation:$g(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy===`fixed`};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,n_(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:c})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,n_(Object.assign({},l,{offsets:t.modifiersData.arrow,position:`absolute`,adaptive:!1,roundOffsets:c})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var i_={name:`computeStyles`,enabled:!0,phase:`beforeWrite`,fn:r_,data:{}},a_={passive:!0};function o_(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,a=i===void 0||i,o=r.resize,s=o===void 0||o,c=bg(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&l.forEach(function(e){e.addEventListener(`scroll`,n.update,a_)}),s&&c.addEventListener(`resize`,n.update,a_),function(){a&&l.forEach(function(e){e.removeEventListener(`scroll`,n.update,a_)}),s&&c.removeEventListener(`resize`,n.update,a_)}}var s_={name:`eventListeners`,enabled:!0,phase:`write`,fn:function(){},effect:o_,data:{}},c_={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function l_(e){return e.replace(/left|right|bottom|top/g,function(e){return c_[e]})}var u_={start:`end`,end:`start`};function d_(e){return e.replace(/start|end/g,function(e){return u_[e]})}function f_(e){var t=bg(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function p_(e){return Ng(Rg(e)).left+f_(e).scrollLeft}function m_(e,t){var n=bg(e),r=Rg(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;var l=Mg();(l||!l&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}return{width:a,height:o,x:s+p_(e),y:c}}function h_(e){var t=Rg(e),n=f_(e),r=e.ownerDocument?.body,i=Og(t.scrollWidth,t.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=Og(t.scrollHeight,t.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),o=-n.scrollLeft+p_(e),s=-n.scrollTop;return Ig(r||t).direction===`rtl`&&(o+=Og(t.clientWidth,r?r.clientWidth:0)-i),{width:i,height:a,x:o,y:s}}function g_(e){var t=Ig(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function __(e){return[`html`,`body`,`#document`].indexOf(yg(e))>=0?e.ownerDocument.body:Sg(e)&&g_(e)?e:__(zg(e))}function v_(e,t){t===void 0&&(t=[]);var n=__(e),r=n===e.ownerDocument?.body,i=bg(n),a=r?[i].concat(i.visualViewport||[],g_(n)?n:[]):n,o=t.concat(a);return r?o:o.concat(v_(zg(a)))}function y_(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function b_(e,t){var n=Ng(e,!1,t===`fixed`);return n.top+=e.clientTop,n.left+=e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function x_(e,t,n){return t===`viewport`?y_(m_(e,n)):xg(t)?b_(t,n):y_(h_(Rg(e)))}function S_(e){var t=v_(zg(e)),n=[`absolute`,`fixed`].indexOf(Ig(e).position)>=0&&Sg(e)?Hg(e):e;return xg(n)?t.filter(function(e){return xg(e)&&Fg(e,n)&&yg(e)!==`body`}):[]}function C_(e,t,n,r){var i=t===`clippingParents`?S_(e):[].concat(t),a=[].concat(i,[n]),o=a[0],s=a.reduce(function(t,n){var i=x_(e,n,r);return t.top=Og(i.top,t.top),t.right=kg(i.right,t.right),t.bottom=kg(i.bottom,t.bottom),t.left=Og(i.left,t.left),t},x_(e,o,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function w_(e){var t=e.reference,n=e.element,r=e.placement,i=r?Dg(r):null,a=r?$g(r):null,o=t.x+t.width/2-n.width/2,s=t.y+t.height/2-n.height/2,c;switch(i){case`top`:c={x:o,y:t.y-n.height};break;case ug:c={x:o,y:t.y+t.height};break;case dg:c={x:t.x+t.width,y:s};break;case fg:c={x:t.x-n.width,y:s};break;default:c={x:t.x,y:t.y}}var l=i?Ug(i):null;if(l!=null){var u=l===`y`?`height`:`width`;switch(a){case mg:c[l]=c[l]-(t[u]/2-n[u]/2);break;case`end`:c[l]=c[l]+(t[u]/2-n[u]/2)}}return c}function T_(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=r===void 0?e.placement:r,a=n.strategy,o=a===void 0?e.strategy:a,s=n.boundary,c=s===void 0?Tee:s,l=n.rootBoundary,u=l===void 0?Eee:l,d=n.elementContext,f=d===void 0?hg:d,p=n.altBoundary,m=p!==void 0&&p,h=n.padding,g=h===void 0?0:h,_=qg(typeof g==`number`?Jg(g,pg):g),v=f===`popper`?Dee:hg,y=e.rects.popper,b=e.elements[m?v:f],x=C_(xg(b)?b:b.contextElement||Rg(e.elements.popper),c,u,o),S=Ng(e.elements.reference),C=w_({reference:S,element:y,strategy:`absolute`,placement:i}),w=y_(Object.assign({},y,C)),T=f===`popper`?w:S,E={top:x.top-T.top+_.top,bottom:T.bottom-x.bottom+_.bottom,left:x.left-T.left+_.left,right:T.right-x.right+_.right},D=e.modifiersData.offset;if(f===`popper`&&D){var O=D[i];Object.keys(E).forEach(function(e){var t=[`right`,`bottom`].indexOf(e)>=0?1:-1,n=[`top`,`bottom`].indexOf(e)>=0?`y`:`x`;E[e]+=O[n]*t})}return E}function E_(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=n.boundary,a=n.rootBoundary,o=n.padding,s=n.flipVariations,c=n.allowedAutoPlacements,l=c===void 0?_g:c,u=$g(r),d=u?s?gg:gg.filter(function(e){return $g(e)===u}):pg,f=d.filter(function(e){return l.indexOf(e)>=0});f.length===0&&(f=d);var p=f.reduce(function(t,n){return t[n]=T_(e,{placement:n,boundary:i,rootBoundary:a,padding:o})[Dg(n)],t},{});return Object.keys(p).sort(function(e,t){return p[e]-p[t]})}function D_(e){if(Dg(e)===`auto`)return[];var t=l_(e);return[d_(e),t,d_(t)]}function O_(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,a=i===void 0||i,o=n.altAxis,s=o===void 0||o,c=n.fallbackPlacements,l=n.padding,u=n.boundary,d=n.rootBoundary,f=n.altBoundary,p=n.flipVariations,m=p===void 0||p,h=n.allowedAutoPlacements,g=t.options.placement,_=Dg(g)===g,v=c||(_||!m?[l_(g)]:D_(g)),y=[g].concat(v).reduce(function(e,n){return e.concat(Dg(n)===`auto`?E_(t,{placement:n,boundary:u,rootBoundary:d,padding:l,flipVariations:m,allowedAutoPlacements:h}):n)},[]),b=t.rects.reference,x=t.rects.popper,S=new Map,C=!0,w=y[0],T=0;T<y.length;T++){var E=y[T],D=Dg(E),O=$g(E)===mg,k=[`top`,ug].indexOf(D)>=0,A=k?`width`:`height`,j=T_(t,{placement:E,boundary:u,rootBoundary:d,altBoundary:f,padding:l}),M=k?O?dg:fg:O?ug:`top`;b[A]>x[A]&&(M=l_(M));var N=l_(M),P=[];if(a&&P.push(j[D]<=0),s&&P.push(j[M]<=0,j[N]<=0),P.every(function(e){return e})){w=E,C=!1;break}S.set(E,P)}if(C)for(var F=m?3:1,I=function(e){var t=y.find(function(t){var n=S.get(t);if(n)return n.slice(0,e).every(function(e){return e})});if(t)return w=t,`break`},L=F;L>0&&I(L)!==`break`;L--);t.placement!==w&&(t.modifiersData[r]._skip=!0,t.placement=w,t.reset=!0)}}var k_={name:`flip`,enabled:!0,phase:`main`,fn:O_,requiresIfExists:[`offset`],data:{_skip:!1}};function A_(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function j_(e){return[`top`,dg,ug,fg].some(function(t){return e[t]>=0})}function M_(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=T_(t,{elementContext:`reference`}),s=T_(t,{altBoundary:!0}),c=A_(o,r),l=A_(s,i,a),u=j_(c),d=j_(l);t.modifiersData[n]={referenceClippingOffsets:c,popperEscapeOffsets:l,isReferenceHidden:u,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}var N_={name:`hide`,enabled:!0,phase:`main`,requiresIfExists:[`preventOverflow`],fn:M_};function P_(e,t,n){var r=Dg(e),i=[`left`,`top`].indexOf(r)>=0?-1:1,a=typeof n==`function`?n(Object.assign({},t,{placement:e})):n,o=a[0],s=a[1];return o||=0,s=(s||0)*i,[`left`,`right`].indexOf(r)>=0?{x:s,y:o}:{x:o,y:s}}function F_(e){var t=e.state,n=e.options,r=e.name,i=n.offset,a=i===void 0?[0,0]:i,o=_g.reduce(function(e,n){return e[n]=P_(n,t.rects,a),e},{}),s=o[t.placement],c=s.x,l=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=c,t.modifiersData.popperOffsets.y+=l),t.modifiersData[r]=o}var I_={name:`offset`,enabled:!0,phase:`main`,requires:[`popperOffsets`],fn:F_};function L_(e){var t=e.state,n=e.name;t.modifiersData[n]=w_({reference:t.rects.reference,element:t.rects.popper,strategy:`absolute`,placement:t.placement})}var R_={name:`popperOffsets`,enabled:!0,phase:`read`,fn:L_,data:{}};function z_(e){return e===`x`?`y`:`x`}function B_(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,a=i===void 0||i,o=n.altAxis,s=o!==void 0&&o,c=n.boundary,l=n.rootBoundary,u=n.altBoundary,d=n.padding,f=n.tether,p=f===void 0||f,m=n.tetherOffset,h=m===void 0?0:m,g=T_(t,{boundary:c,rootBoundary:l,padding:d,altBoundary:u}),_=Dg(t.placement),v=$g(t.placement),y=!v,b=Ug(_),x=z_(b),S=t.modifiersData.popperOffsets,C=t.rects.reference,w=t.rects.popper,T=typeof h==`function`?h(Object.assign({},t.rects,{placement:t.placement})):h,E=typeof T==`number`?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),D=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(S){if(a){var k=b===`y`?`top`:fg,A=b===`y`?ug:dg,j=b===`y`?`height`:`width`,M=S[b],N=M+g[k],P=M-g[A],F=p?-w[j]/2:0,I=v===`start`?C[j]:w[j],L=v===`start`?-w[j]:-C[j],R=t.elements.arrow,z=p&&R?Pg(R):{width:0,height:0},B=t.modifiersData[`arrow#persistent`]?t.modifiersData[`arrow#persistent`].padding:Kg(),V=B[k],ee=B[A],te=Wg(0,C[j],z[j]),ne=y?C[j]/2-F-te-V-E.mainAxis:I-te-V-E.mainAxis,re=y?-C[j]/2+F+te+ee+E.mainAxis:L+te+ee+E.mainAxis,ie=t.elements.arrow&&Hg(t.elements.arrow),H=ie?b===`y`?ie.clientTop||0:ie.clientLeft||0:0,ae=D?.[b]??0,U=M+ne-ae-H,W=M+re-ae,oe=Wg(p?kg(N,U):N,M,p?Og(P,W):P);S[b]=oe,O[b]=oe-M}if(s){var G=b===`x`?`top`:fg,se=b===`x`?ug:dg,ce=S[x],le=x===`y`?`height`:`width`,ue=ce+g[G],de=ce-g[se],K=[`top`,fg].indexOf(_)!==-1,fe=D?.[x]??0,pe=K?ue:ce-C[le]-w[le]-fe+E.altAxis,me=K?ce+C[le]+w[le]-fe-E.altAxis:de,he=p&&K?Gg(pe,ce,me):Wg(p?pe:ue,ce,p?me:de);S[x]=he,O[x]=he-ce}t.modifiersData[r]=O}}var V_={name:`preventOverflow`,enabled:!0,phase:`main`,fn:B_,requiresIfExists:[`offset`]};function H_(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function U_(e){return e===bg(e)||!Sg(e)?f_(e):H_(e)}function W_(e){var t=e.getBoundingClientRect(),n=Ag(t.width)/e.offsetWidth||1,r=Ag(t.height)/e.offsetHeight||1;return n!==1||r!==1}function G_(e,t,n){n===void 0&&(n=!1);var r=Sg(t),i=Sg(t)&&W_(t),a=Rg(t),o=Ng(e,i,n),s={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(r||!r&&!n)&&((yg(t)!==`body`||g_(a))&&(s=U_(t)),Sg(t)?(c=Ng(t,!0),c.x+=t.clientLeft,c.y+=t.clientTop):a&&(c.x=p_(a))),{x:o.left+s.scrollLeft-c.x,y:o.top+s.scrollTop-c.y,width:o.width,height:o.height}}function K_(e){var t=new Map,n=new Set,r=[];e.forEach(function(e){t.set(e.name,e)});function i(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!n.has(e)){var r=t.get(e);r&&i(r)}}),r.push(e)}return e.forEach(function(e){n.has(e.name)||i(e)}),r}function q_(e){var t=K_(e);return vg.reduce(function(e,n){return e.concat(t.filter(function(e){return e.phase===n}))},[])}function J_(e){var t;return function(){return t||=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})}),t}}function Y_(e){var t=e.reduce(function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e},{});return Object.keys(t).map(function(e){return t[e]})}var X_={placement:`bottom`,modifiers:[],strategy:`absolute`};function Z_(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some(function(e){return!(e&&typeof e.getBoundingClientRect==`function`)})}function Oee(e){e===void 0&&(e={});var t=e,n=t.defaultModifiers,r=n===void 0?[]:n,i=t.defaultOptions,a=i===void 0?X_:i;return function(e,t,n){n===void 0&&(n=a);var i={placement:`bottom`,orderedModifiers:[],options:Object.assign({},X_,a),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},o=[],s=!1,c={state:i,setOptions:function(n){var o=typeof n==`function`?n(i.options):n;u(),i.options=Object.assign({},a,i.options,o),i.scrollParents={reference:xg(e)?v_(e):e.contextElement?v_(e.contextElement):[],popper:v_(t)};var s=q_(Y_([].concat(r,i.options.modifiers)));return i.orderedModifiers=s.filter(function(e){return e.enabled}),l(),c.update()},forceUpdate:function(){if(!s){var e=i.elements,t=e.reference,n=e.popper;if(Z_(t,n)){i.rects={reference:G_(t,Hg(n),i.options.strategy===`fixed`),popper:Pg(n)},i.reset=!1,i.placement=i.options.placement,i.orderedModifiers.forEach(function(e){return i.modifiersData[e.name]=Object.assign({},e.data)});for(var r=0;r<i.orderedModifiers.length;r++){if(i.reset===!0){i.reset=!1,r=-1;continue}var a=i.orderedModifiers[r],o=a.fn,l=a.options,u=l===void 0?{}:l,d=a.name;typeof o==`function`&&(i=o({state:i,options:u,name:d,instance:c})||i)}}}},update:J_(function(){return new Promise(function(e){c.forceUpdate(),e(i)})}),destroy:function(){u(),s=!0}};if(!Z_(e,t))return c;c.setOptions(n).then(function(e){!s&&n.onFirstUpdate&&n.onFirstUpdate(e)});function l(){i.orderedModifiers.forEach(function(e){var t=e.name,n=e.options,r=n===void 0?{}:n,a=e.effect;if(typeof a==`function`){var s=a({state:i,name:t,instance:c,options:r});o.push(s||function(){})}})}function u(){o.forEach(function(e){return e()}),o=[]}return c}}var kee=Oee({defaultModifiers:[s_,R_,i_,Eg,I_,k_,V_,Qg,N_]}),Aee=`tippy-box`,Q_=`tippy-content`,$_=`tippy-backdrop`,ev=`tippy-arrow`,tv=`tippy-svg-arrow`,nv={passive:!0,capture:!0},rv=function(){return document.body};function iv(e,t){return{}.hasOwnProperty.call(e,t)}function av(e,t,n){return Array.isArray(e)?e[t]??(Array.isArray(n)?n[t]:n):e}function ov(e,t){var n={}.toString.call(e);return n.indexOf(`[object`)===0&&n.indexOf(t+`]`)>-1}function sv(e,t){return typeof e==`function`?e.apply(void 0,t):e}function cv(e,t){if(t===0)return e;var n;return function(r){clearTimeout(n),n=setTimeout(function(){e(r)},t)}}function lv(e,t){var n=Object.assign({},e);return t.forEach(function(e){delete n[e]}),n}function uv(e){return e.split(/\s+/).filter(Boolean)}function dv(e){return[].concat(e)}function fv(e,t){e.indexOf(t)===-1&&e.push(t)}function pv(e){return e.filter(function(t,n){return e.indexOf(t)===n})}function mv(e){return e.split(`-`)[0]}function hv(e){return[].slice.call(e)}function gv(e){return Object.keys(e).reduce(function(t,n){return e[n]!==void 0&&(t[n]=e[n]),t},{})}function _v(){return document.createElement(`div`)}function vv(e){return[`Element`,`Fragment`].some(function(t){return ov(e,t)})}function yv(e){return ov(e,`NodeList`)}function bv(e){return ov(e,`MouseEvent`)}function xv(e){return!!(e&&e._tippy&&e._tippy.reference===e)}function Sv(e){return vv(e)?[e]:yv(e)?hv(e):Array.isArray(e)?e:hv(document.querySelectorAll(e))}function Cv(e,t){e.forEach(function(e){e&&(e.style.transitionDuration=t+`ms`)})}function wv(e,t){e.forEach(function(e){e&&e.setAttribute(`data-state`,t)})}function Tv(e){var t,n=dv(e)[0];return n!=null&&(t=n.ownerDocument)!=null&&t.body?n.ownerDocument:document}function Ev(e,t){var n=t.clientX,r=t.clientY;return e.every(function(e){var t=e.popperRect,i=e.popperState,a=e.props.interactiveBorder,o=mv(i.placement),s=i.modifiersData.offset;if(!s)return!0;var c=o===`bottom`?s.top.y:0,l=o===`top`?s.bottom.y:0,u=o===`right`?s.left.x:0,d=o===`left`?s.right.x:0,f=t.top-r+c>a,p=r-t.bottom-l>a,m=t.left-n+u>a,h=n-t.right-d>a;return f||p||m||h})}function Dv(e,t,n){var r=t+`EventListener`;[`transitionend`,`webkitTransitionEnd`].forEach(function(t){e[r](t,n)})}function Ov(e,t){for(var n=t;n;){if(e.contains(n))return!0;n=n.getRootNode==null?void 0:n.getRootNode()?.host}return!1}var kv={isTouch:!1},Av=0;function jv(){kv.isTouch||(kv.isTouch=!0,window.performance&&document.addEventListener(`mousemove`,Mv))}function Mv(){var e=performance.now();e-Av<20&&(kv.isTouch=!1,document.removeEventListener(`mousemove`,Mv)),Av=e}function Nv(){var e=document.activeElement;if(xv(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}function Pv(){document.addEventListener(`touchstart`,jv,nv),window.addEventListener(`blur`,Nv)}var Fv=typeof window<`u`&&typeof document<`u`&&!!window.msCrypto;function Iv(e){var t=e===`destroy`?`n already-`:` `;return[e+`() was called on a`+t+`destroyed instance. This is a no-op but`,`indicates a potential memory leak.`].join(` `)}function Lv(e){return e.replace(/[ \t]{2,}/g,` `).replace(/^[ \t]*/gm,``).trim()}function Rv(e){return Lv(`
|
|
194
|
+
`;document.body.insertAdjacentHTML(`beforeend`,t)}var dg=`bottom`,fg=`right`,pg=`left`,Cee=`auto`,mg=[`top`,dg,fg,pg],hg=`start`,wee=`clippingParents`,Tee=`viewport`,gg=`popper`,Eee=`reference`,_g=mg.reduce(function(e,t){return e.concat([t+`-`+hg,t+`-end`])},[]),vg=[].concat(mg,[Cee]).reduce(function(e,t){return e.concat([t,t+`-`+hg,t+`-end`])},[]),yg=[`beforeRead`,`read`,`afterRead`,`beforeMain`,`main`,`afterMain`,`beforeWrite`,`write`,`afterWrite`];function bg(e){return e?(e.nodeName||``).toLowerCase():null}function xg(e){if(e==null)return window;if(e.toString()!==`[object Window]`){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Sg(e){return e instanceof xg(e).Element||e instanceof Element}function Cg(e){return e instanceof xg(e).HTMLElement||e instanceof HTMLElement}function wg(e){return typeof ShadowRoot>`u`?!1:e instanceof xg(e).ShadowRoot||e instanceof ShadowRoot}function Tg(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},i=t.elements[e];Cg(i)&&bg(i)&&(Object.assign(i.style,n),Object.keys(r).forEach(function(e){var t=r[e];t===!1?i.removeAttribute(e):i.setAttribute(e,t===!0?``:t)}))})}function Eg(e){var t=e.state,n={popper:{position:t.options.strategy,left:`0`,top:`0`,margin:`0`},arrow:{position:`absolute`},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(e){var r=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce(function(e,t){return e[t]=``,e},{});Cg(r)&&bg(r)&&(Object.assign(r.style,a),Object.keys(i).forEach(function(e){r.removeAttribute(e)}))})}}var Dg={name:`applyStyles`,enabled:!0,phase:`write`,fn:Tg,effect:Eg,requires:[`computeStyles`]};function Og(e){return e.split(`-`)[0]}var kg=Math.max,Ag=Math.min,jg=Math.round;function Mg(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+`/`+e.version}).join(` `):navigator.userAgent}function Ng(){return!/^((?!chrome|android).)*safari/i.test(Mg())}function Pg(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),i=1,a=1;t&&Cg(e)&&(i=e.offsetWidth>0&&jg(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&jg(r.height)/e.offsetHeight||1);var o=(Sg(e)?xg(e):window).visualViewport,s=!Ng()&&n,c=(r.left+(s&&o?o.offsetLeft:0))/i,l=(r.top+(s&&o?o.offsetTop:0))/a,u=r.width/i,d=r.height/a;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c,x:c,y:l}}function Fg(e){var t=Pg(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function Ig(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&wg(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function Lg(e){return xg(e).getComputedStyle(e)}function Rg(e){return[`table`,`td`,`th`].indexOf(bg(e))>=0}function zg(e){return((Sg(e)?e.ownerDocument:e.document)||window.document).documentElement}function Bg(e){return bg(e)===`html`?e:e.assignedSlot||e.parentNode||(wg(e)?e.host:null)||zg(e)}function Vg(e){return!Cg(e)||Lg(e).position===`fixed`?null:e.offsetParent}function Hg(e){var t=/firefox/i.test(Mg());if(/Trident/i.test(Mg())&&Cg(e)&&Lg(e).position===`fixed`)return null;var n=Bg(e);for(wg(n)&&(n=n.host);Cg(n)&&[`html`,`body`].indexOf(bg(n))<0;){var r=Lg(n);if(r.transform!==`none`||r.perspective!==`none`||r.contain===`paint`||[`transform`,`perspective`].indexOf(r.willChange)!==-1||t&&r.willChange===`filter`||t&&r.filter&&r.filter!==`none`)return n;n=n.parentNode}return null}function Ug(e){for(var t=xg(e),n=Vg(e);n&&Rg(n)&&Lg(n).position===`static`;)n=Vg(n);return n&&(bg(n)===`html`||bg(n)===`body`&&Lg(n).position===`static`)?t:n||Hg(e)||t}function Wg(e){return[`top`,`bottom`].indexOf(e)>=0?`x`:`y`}function Gg(e,t,n){return kg(e,Ag(t,n))}function Kg(e,t,n){var r=Gg(e,t,n);return r>n?n:r}function qg(){return{top:0,right:0,bottom:0,left:0}}function Jg(e){return Object.assign({},qg(),e)}function Yg(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}var Xg=function(e,t){return e=typeof e==`function`?e(Object.assign({},t.rects,{placement:t.placement})):e,Jg(typeof e==`number`?Yg(e,mg):e)};function Zg(e){var t,n=e.state,r=e.name,i=e.options,a=n.elements.arrow,o=n.modifiersData.popperOffsets,s=Og(n.placement),c=Wg(s),l=[`left`,`right`].indexOf(s)>=0?`height`:`width`;if(a&&o){var u=Xg(i.padding,n),d=Fg(a),f=c===`y`?`top`:pg,p=c===`y`?dg:fg,m=n.rects.reference[l]+n.rects.reference[c]-o[c]-n.rects.popper[l],h=o[c]-n.rects.reference[c],g=Ug(a),_=g?c===`y`?g.clientHeight||0:g.clientWidth||0:0,v=m/2-h/2,y=u[f],b=_-d[l]-u[p],x=_/2-d[l]/2+v,S=Gg(y,x,b),C=c;n.modifiersData[r]=(t={},t[C]=S,t.centerOffset=S-x,t)}}function Qg(e){var t=e.state,n=e.options.element,r=n===void 0?`[data-popper-arrow]`:n;r!=null&&(typeof r==`string`&&(r=t.elements.popper.querySelector(r),!r)||Ig(t.elements.popper,r)&&(t.elements.arrow=r))}var $g={name:`arrow`,enabled:!0,phase:`main`,fn:Zg,effect:Qg,requires:[`popperOffsets`],requiresIfExists:[`preventOverflow`]};function e_(e){return e.split(`-`)[1]}var t_={top:`auto`,right:`auto`,bottom:`auto`,left:`auto`};function n_(e,t){var n=e.x,r=e.y,i=t.devicePixelRatio||1;return{x:jg(n*i)/i||0,y:jg(r*i)/i||0}}function r_(e){var t,n=e.popper,r=e.popperRect,i=e.placement,a=e.variation,o=e.offsets,s=e.position,c=e.gpuAcceleration,l=e.adaptive,u=e.roundOffsets,d=e.isFixed,f=o.x,p=f===void 0?0:f,m=o.y,h=m===void 0?0:m,g=typeof u==`function`?u({x:p,y:h}):{x:p,y:h};p=g.x,h=g.y;var _=o.hasOwnProperty(`x`),v=o.hasOwnProperty(`y`),y=pg,b=`top`,x=window;if(l){var S=Ug(n),C=`clientHeight`,w=`clientWidth`;if(S===xg(n)&&(S=zg(n),Lg(S).position!==`static`&&s===`absolute`&&(C=`scrollHeight`,w=`scrollWidth`)),S=S,i===`top`||(i===`left`||i===`right`)&&a===`end`){b=dg;var T=d&&S===x&&x.visualViewport?x.visualViewport.height:S[C];h-=T-r.height,h*=c?1:-1}if(i===`left`||(i===`top`||i===`bottom`)&&a===`end`){y=fg;var E=d&&S===x&&x.visualViewport?x.visualViewport.width:S[w];p-=E-r.width,p*=c?1:-1}}var D=Object.assign({position:s},l&&t_),O=u===!0?n_({x:p,y:h},xg(n)):{x:p,y:h};if(p=O.x,h=O.y,c){var k;return Object.assign({},D,(k={},k[b]=v?`0`:``,k[y]=_?`0`:``,k.transform=(x.devicePixelRatio||1)<=1?`translate(`+p+`px, `+h+`px)`:`translate3d(`+p+`px, `+h+`px, 0)`,k))}return Object.assign({},D,(t={},t[b]=v?h+`px`:``,t[y]=_?p+`px`:``,t.transform=``,t))}function i_(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0||r,a=n.adaptive,o=a===void 0||a,s=n.roundOffsets,c=s===void 0||s,l={placement:Og(t.placement),variation:e_(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy===`fixed`};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,r_(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:c})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,r_(Object.assign({},l,{offsets:t.modifiersData.arrow,position:`absolute`,adaptive:!1,roundOffsets:c})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var a_={name:`computeStyles`,enabled:!0,phase:`beforeWrite`,fn:i_,data:{}},o_={passive:!0};function s_(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,a=i===void 0||i,o=r.resize,s=o===void 0||o,c=xg(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&l.forEach(function(e){e.addEventListener(`scroll`,n.update,o_)}),s&&c.addEventListener(`resize`,n.update,o_),function(){a&&l.forEach(function(e){e.removeEventListener(`scroll`,n.update,o_)}),s&&c.removeEventListener(`resize`,n.update,o_)}}var c_={name:`eventListeners`,enabled:!0,phase:`write`,fn:function(){},effect:s_,data:{}},l_={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function u_(e){return e.replace(/left|right|bottom|top/g,function(e){return l_[e]})}var d_={start:`end`,end:`start`};function f_(e){return e.replace(/start|end/g,function(e){return d_[e]})}function p_(e){var t=xg(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function m_(e){return Pg(zg(e)).left+p_(e).scrollLeft}function h_(e,t){var n=xg(e),r=zg(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;var l=Ng();(l||!l&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}return{width:a,height:o,x:s+m_(e),y:c}}function g_(e){var t=zg(e),n=p_(e),r=e.ownerDocument?.body,i=kg(t.scrollWidth,t.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=kg(t.scrollHeight,t.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),o=-n.scrollLeft+m_(e),s=-n.scrollTop;return Lg(r||t).direction===`rtl`&&(o+=kg(t.clientWidth,r?r.clientWidth:0)-i),{width:i,height:a,x:o,y:s}}function __(e){var t=Lg(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function v_(e){return[`html`,`body`,`#document`].indexOf(bg(e))>=0?e.ownerDocument.body:Cg(e)&&__(e)?e:v_(Bg(e))}function y_(e,t){t===void 0&&(t=[]);var n=v_(e),r=n===e.ownerDocument?.body,i=xg(n),a=r?[i].concat(i.visualViewport||[],__(n)?n:[]):n,o=t.concat(a);return r?o:o.concat(y_(Bg(a)))}function b_(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function x_(e,t){var n=Pg(e,!1,t===`fixed`);return n.top+=e.clientTop,n.left+=e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function S_(e,t,n){return t===`viewport`?b_(h_(e,n)):Sg(t)?x_(t,n):b_(g_(zg(e)))}function C_(e){var t=y_(Bg(e)),n=[`absolute`,`fixed`].indexOf(Lg(e).position)>=0&&Cg(e)?Ug(e):e;return Sg(n)?t.filter(function(e){return Sg(e)&&Ig(e,n)&&bg(e)!==`body`}):[]}function w_(e,t,n,r){var i=t===`clippingParents`?C_(e):[].concat(t),a=[].concat(i,[n]),o=a[0],s=a.reduce(function(t,n){var i=S_(e,n,r);return t.top=kg(i.top,t.top),t.right=Ag(i.right,t.right),t.bottom=Ag(i.bottom,t.bottom),t.left=kg(i.left,t.left),t},S_(e,o,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function T_(e){var t=e.reference,n=e.element,r=e.placement,i=r?Og(r):null,a=r?e_(r):null,o=t.x+t.width/2-n.width/2,s=t.y+t.height/2-n.height/2,c;switch(i){case`top`:c={x:o,y:t.y-n.height};break;case dg:c={x:o,y:t.y+t.height};break;case fg:c={x:t.x+t.width,y:s};break;case pg:c={x:t.x-n.width,y:s};break;default:c={x:t.x,y:t.y}}var l=i?Wg(i):null;if(l!=null){var u=l===`y`?`height`:`width`;switch(a){case hg:c[l]=c[l]-(t[u]/2-n[u]/2);break;case`end`:c[l]=c[l]+(t[u]/2-n[u]/2)}}return c}function E_(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=r===void 0?e.placement:r,a=n.strategy,o=a===void 0?e.strategy:a,s=n.boundary,c=s===void 0?wee:s,l=n.rootBoundary,u=l===void 0?Tee:l,d=n.elementContext,f=d===void 0?gg:d,p=n.altBoundary,m=p!==void 0&&p,h=n.padding,g=h===void 0?0:h,_=Jg(typeof g==`number`?Yg(g,mg):g),v=f===`popper`?Eee:gg,y=e.rects.popper,b=e.elements[m?v:f],x=w_(Sg(b)?b:b.contextElement||zg(e.elements.popper),c,u,o),S=Pg(e.elements.reference),C=T_({reference:S,element:y,strategy:`absolute`,placement:i}),w=b_(Object.assign({},y,C)),T=f===`popper`?w:S,E={top:x.top-T.top+_.top,bottom:T.bottom-x.bottom+_.bottom,left:x.left-T.left+_.left,right:T.right-x.right+_.right},D=e.modifiersData.offset;if(f===`popper`&&D){var O=D[i];Object.keys(E).forEach(function(e){var t=[`right`,`bottom`].indexOf(e)>=0?1:-1,n=[`top`,`bottom`].indexOf(e)>=0?`y`:`x`;E[e]+=O[n]*t})}return E}function D_(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=n.boundary,a=n.rootBoundary,o=n.padding,s=n.flipVariations,c=n.allowedAutoPlacements,l=c===void 0?vg:c,u=e_(r),d=u?s?_g:_g.filter(function(e){return e_(e)===u}):mg,f=d.filter(function(e){return l.indexOf(e)>=0});f.length===0&&(f=d);var p=f.reduce(function(t,n){return t[n]=E_(e,{placement:n,boundary:i,rootBoundary:a,padding:o})[Og(n)],t},{});return Object.keys(p).sort(function(e,t){return p[e]-p[t]})}function O_(e){if(Og(e)===`auto`)return[];var t=u_(e);return[f_(e),t,f_(t)]}function k_(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,a=i===void 0||i,o=n.altAxis,s=o===void 0||o,c=n.fallbackPlacements,l=n.padding,u=n.boundary,d=n.rootBoundary,f=n.altBoundary,p=n.flipVariations,m=p===void 0||p,h=n.allowedAutoPlacements,g=t.options.placement,_=Og(g)===g,v=c||(_||!m?[u_(g)]:O_(g)),y=[g].concat(v).reduce(function(e,n){return e.concat(Og(n)===`auto`?D_(t,{placement:n,boundary:u,rootBoundary:d,padding:l,flipVariations:m,allowedAutoPlacements:h}):n)},[]),b=t.rects.reference,x=t.rects.popper,S=new Map,C=!0,w=y[0],T=0;T<y.length;T++){var E=y[T],D=Og(E),O=e_(E)===hg,k=[`top`,dg].indexOf(D)>=0,A=k?`width`:`height`,j=E_(t,{placement:E,boundary:u,rootBoundary:d,altBoundary:f,padding:l}),M=k?O?fg:pg:O?dg:`top`;b[A]>x[A]&&(M=u_(M));var N=u_(M),P=[];if(a&&P.push(j[D]<=0),s&&P.push(j[M]<=0,j[N]<=0),P.every(function(e){return e})){w=E,C=!1;break}S.set(E,P)}if(C)for(var F=m?3:1,I=function(e){var t=y.find(function(t){var n=S.get(t);if(n)return n.slice(0,e).every(function(e){return e})});if(t)return w=t,`break`},L=F;L>0&&I(L)!==`break`;L--);t.placement!==w&&(t.modifiersData[r]._skip=!0,t.placement=w,t.reset=!0)}}var A_={name:`flip`,enabled:!0,phase:`main`,fn:k_,requiresIfExists:[`offset`],data:{_skip:!1}};function j_(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function M_(e){return[`top`,fg,dg,pg].some(function(t){return e[t]>=0})}function N_(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=E_(t,{elementContext:`reference`}),s=E_(t,{altBoundary:!0}),c=j_(o,r),l=j_(s,i,a),u=M_(c),d=M_(l);t.modifiersData[n]={referenceClippingOffsets:c,popperEscapeOffsets:l,isReferenceHidden:u,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}var P_={name:`hide`,enabled:!0,phase:`main`,requiresIfExists:[`preventOverflow`],fn:N_};function F_(e,t,n){var r=Og(e),i=[`left`,`top`].indexOf(r)>=0?-1:1,a=typeof n==`function`?n(Object.assign({},t,{placement:e})):n,o=a[0],s=a[1];return o||=0,s=(s||0)*i,[`left`,`right`].indexOf(r)>=0?{x:s,y:o}:{x:o,y:s}}function I_(e){var t=e.state,n=e.options,r=e.name,i=n.offset,a=i===void 0?[0,0]:i,o=vg.reduce(function(e,n){return e[n]=F_(n,t.rects,a),e},{}),s=o[t.placement],c=s.x,l=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=c,t.modifiersData.popperOffsets.y+=l),t.modifiersData[r]=o}var L_={name:`offset`,enabled:!0,phase:`main`,requires:[`popperOffsets`],fn:I_};function R_(e){var t=e.state,n=e.name;t.modifiersData[n]=T_({reference:t.rects.reference,element:t.rects.popper,strategy:`absolute`,placement:t.placement})}var z_={name:`popperOffsets`,enabled:!0,phase:`read`,fn:R_,data:{}};function B_(e){return e===`x`?`y`:`x`}function V_(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,a=i===void 0||i,o=n.altAxis,s=o!==void 0&&o,c=n.boundary,l=n.rootBoundary,u=n.altBoundary,d=n.padding,f=n.tether,p=f===void 0||f,m=n.tetherOffset,h=m===void 0?0:m,g=E_(t,{boundary:c,rootBoundary:l,padding:d,altBoundary:u}),_=Og(t.placement),v=e_(t.placement),y=!v,b=Wg(_),x=B_(b),S=t.modifiersData.popperOffsets,C=t.rects.reference,w=t.rects.popper,T=typeof h==`function`?h(Object.assign({},t.rects,{placement:t.placement})):h,E=typeof T==`number`?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),D=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(S){if(a){var k=b===`y`?`top`:pg,A=b===`y`?dg:fg,j=b===`y`?`height`:`width`,M=S[b],N=M+g[k],P=M-g[A],F=p?-w[j]/2:0,I=v===`start`?C[j]:w[j],L=v===`start`?-w[j]:-C[j],R=t.elements.arrow,z=p&&R?Fg(R):{width:0,height:0},B=t.modifiersData[`arrow#persistent`]?t.modifiersData[`arrow#persistent`].padding:qg(),V=B[k],ee=B[A],te=Gg(0,C[j],z[j]),ne=y?C[j]/2-F-te-V-E.mainAxis:I-te-V-E.mainAxis,re=y?-C[j]/2+F+te+ee+E.mainAxis:L+te+ee+E.mainAxis,ie=t.elements.arrow&&Ug(t.elements.arrow),H=ie?b===`y`?ie.clientTop||0:ie.clientLeft||0:0,ae=D?.[b]??0,U=M+ne-ae-H,W=M+re-ae,oe=Gg(p?Ag(N,U):N,M,p?kg(P,W):P);S[b]=oe,O[b]=oe-M}if(s){var G=b===`x`?`top`:pg,se=b===`x`?dg:fg,ce=S[x],le=x===`y`?`height`:`width`,ue=ce+g[G],de=ce-g[se],K=[`top`,pg].indexOf(_)!==-1,fe=D?.[x]??0,pe=K?ue:ce-C[le]-w[le]-fe+E.altAxis,me=K?ce+C[le]+w[le]-fe-E.altAxis:de,he=p&&K?Kg(pe,ce,me):Gg(p?pe:ue,ce,p?me:de);S[x]=he,O[x]=he-ce}t.modifiersData[r]=O}}var H_={name:`preventOverflow`,enabled:!0,phase:`main`,fn:V_,requiresIfExists:[`offset`]};function U_(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function W_(e){return e===xg(e)||!Cg(e)?p_(e):U_(e)}function G_(e){var t=e.getBoundingClientRect(),n=jg(t.width)/e.offsetWidth||1,r=jg(t.height)/e.offsetHeight||1;return n!==1||r!==1}function K_(e,t,n){n===void 0&&(n=!1);var r=Cg(t),i=Cg(t)&&G_(t),a=zg(t),o=Pg(e,i,n),s={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(r||!r&&!n)&&((bg(t)!==`body`||__(a))&&(s=W_(t)),Cg(t)?(c=Pg(t,!0),c.x+=t.clientLeft,c.y+=t.clientTop):a&&(c.x=m_(a))),{x:o.left+s.scrollLeft-c.x,y:o.top+s.scrollTop-c.y,width:o.width,height:o.height}}function q_(e){var t=new Map,n=new Set,r=[];e.forEach(function(e){t.set(e.name,e)});function i(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!n.has(e)){var r=t.get(e);r&&i(r)}}),r.push(e)}return e.forEach(function(e){n.has(e.name)||i(e)}),r}function J_(e){var t=q_(e);return yg.reduce(function(e,n){return e.concat(t.filter(function(e){return e.phase===n}))},[])}function Y_(e){var t;return function(){return t||=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})}),t}}function X_(e){var t=e.reduce(function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e},{});return Object.keys(t).map(function(e){return t[e]})}var Z_={placement:`bottom`,modifiers:[],strategy:`absolute`};function Q_(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some(function(e){return!(e&&typeof e.getBoundingClientRect==`function`)})}function Dee(e){e===void 0&&(e={});var t=e,n=t.defaultModifiers,r=n===void 0?[]:n,i=t.defaultOptions,a=i===void 0?Z_:i;return function(e,t,n){n===void 0&&(n=a);var i={placement:`bottom`,orderedModifiers:[],options:Object.assign({},Z_,a),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},o=[],s=!1,c={state:i,setOptions:function(n){var o=typeof n==`function`?n(i.options):n;u(),i.options=Object.assign({},a,i.options,o),i.scrollParents={reference:Sg(e)?y_(e):e.contextElement?y_(e.contextElement):[],popper:y_(t)};var s=J_(X_([].concat(r,i.options.modifiers)));return i.orderedModifiers=s.filter(function(e){return e.enabled}),l(),c.update()},forceUpdate:function(){if(!s){var e=i.elements,t=e.reference,n=e.popper;if(Q_(t,n)){i.rects={reference:K_(t,Ug(n),i.options.strategy===`fixed`),popper:Fg(n)},i.reset=!1,i.placement=i.options.placement,i.orderedModifiers.forEach(function(e){return i.modifiersData[e.name]=Object.assign({},e.data)});for(var r=0;r<i.orderedModifiers.length;r++){if(i.reset===!0){i.reset=!1,r=-1;continue}var a=i.orderedModifiers[r],o=a.fn,l=a.options,u=l===void 0?{}:l,d=a.name;typeof o==`function`&&(i=o({state:i,options:u,name:d,instance:c})||i)}}}},update:Y_(function(){return new Promise(function(e){c.forceUpdate(),e(i)})}),destroy:function(){u(),s=!0}};if(!Q_(e,t))return c;c.setOptions(n).then(function(e){!s&&n.onFirstUpdate&&n.onFirstUpdate(e)});function l(){i.orderedModifiers.forEach(function(e){var t=e.name,n=e.options,r=n===void 0?{}:n,a=e.effect;if(typeof a==`function`){var s=a({state:i,name:t,instance:c,options:r});o.push(s||function(){})}})}function u(){o.forEach(function(e){return e()}),o=[]}return c}}var Oee=Dee({defaultModifiers:[c_,z_,a_,Dg,L_,A_,H_,$g,P_]}),kee=`tippy-box`,$_=`tippy-content`,ev=`tippy-backdrop`,tv=`tippy-arrow`,nv=`tippy-svg-arrow`,rv={passive:!0,capture:!0},iv=function(){return document.body};function av(e,t){return{}.hasOwnProperty.call(e,t)}function ov(e,t,n){return Array.isArray(e)?e[t]??(Array.isArray(n)?n[t]:n):e}function sv(e,t){var n={}.toString.call(e);return n.indexOf(`[object`)===0&&n.indexOf(t+`]`)>-1}function cv(e,t){return typeof e==`function`?e.apply(void 0,t):e}function lv(e,t){if(t===0)return e;var n;return function(r){clearTimeout(n),n=setTimeout(function(){e(r)},t)}}function uv(e,t){var n=Object.assign({},e);return t.forEach(function(e){delete n[e]}),n}function dv(e){return e.split(/\s+/).filter(Boolean)}function fv(e){return[].concat(e)}function pv(e,t){e.indexOf(t)===-1&&e.push(t)}function mv(e){return e.filter(function(t,n){return e.indexOf(t)===n})}function hv(e){return e.split(`-`)[0]}function gv(e){return[].slice.call(e)}function _v(e){return Object.keys(e).reduce(function(t,n){return e[n]!==void 0&&(t[n]=e[n]),t},{})}function vv(){return document.createElement(`div`)}function yv(e){return[`Element`,`Fragment`].some(function(t){return sv(e,t)})}function bv(e){return sv(e,`NodeList`)}function xv(e){return sv(e,`MouseEvent`)}function Sv(e){return!!(e&&e._tippy&&e._tippy.reference===e)}function Cv(e){return yv(e)?[e]:bv(e)?gv(e):Array.isArray(e)?e:gv(document.querySelectorAll(e))}function wv(e,t){e.forEach(function(e){e&&(e.style.transitionDuration=t+`ms`)})}function Tv(e,t){e.forEach(function(e){e&&e.setAttribute(`data-state`,t)})}function Ev(e){var t,n=fv(e)[0];return n!=null&&(t=n.ownerDocument)!=null&&t.body?n.ownerDocument:document}function Dv(e,t){var n=t.clientX,r=t.clientY;return e.every(function(e){var t=e.popperRect,i=e.popperState,a=e.props.interactiveBorder,o=hv(i.placement),s=i.modifiersData.offset;if(!s)return!0;var c=o===`bottom`?s.top.y:0,l=o===`top`?s.bottom.y:0,u=o===`right`?s.left.x:0,d=o===`left`?s.right.x:0,f=t.top-r+c>a,p=r-t.bottom-l>a,m=t.left-n+u>a,h=n-t.right-d>a;return f||p||m||h})}function Ov(e,t,n){var r=t+`EventListener`;[`transitionend`,`webkitTransitionEnd`].forEach(function(t){e[r](t,n)})}function kv(e,t){for(var n=t;n;){if(e.contains(n))return!0;n=n.getRootNode==null?void 0:n.getRootNode()?.host}return!1}var Av={isTouch:!1},jv=0;function Mv(){Av.isTouch||(Av.isTouch=!0,window.performance&&document.addEventListener(`mousemove`,Nv))}function Nv(){var e=performance.now();e-jv<20&&(Av.isTouch=!1,document.removeEventListener(`mousemove`,Nv)),jv=e}function Pv(){var e=document.activeElement;if(Sv(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}function Fv(){document.addEventListener(`touchstart`,Mv,rv),window.addEventListener(`blur`,Pv)}var Iv=typeof window<`u`&&typeof document<`u`&&!!window.msCrypto;function Lv(e){var t=e===`destroy`?`n already-`:` `;return[e+`() was called on a`+t+`destroyed instance. This is a no-op but`,`indicates a potential memory leak.`].join(` `)}function Rv(e){return e.replace(/[ \t]{2,}/g,` `).replace(/^[ \t]*/gm,``).trim()}function zv(e){return Rv(`
|
|
195
195
|
%ctippy.js
|
|
196
196
|
|
|
197
|
-
%c`+
|
|
197
|
+
%c`+Rv(e)+`
|
|
198
198
|
|
|
199
199
|
%c👷 This is a development-only message. It will be removed in production.
|
|
200
|
-
`)}function
|
|
200
|
+
`)}function Bv(e){return[zv(e),`color: #00C584; font-size: 1.3em; font-weight: bold;`,`line-height: 1.5`,`color: #a6a095;`]}var Vv;process.env.NODE_ENV!==`production`&&Hv();function Hv(){Vv=new Set}function Uv(e,t){if(e&&!Vv.has(t)){var n;Vv.add(t),(n=console).warn.apply(n,Bv(t))}}function Wv(e,t){if(e&&!Vv.has(t)){var n;Vv.add(t),(n=console).error.apply(n,Bv(t))}}function Gv(e){var t=!e,n=Object.prototype.toString.call(e)===`[object Object]`&&!e.addEventListener;Wv(t,[`tippy() was passed`,"`"+String(e)+"`",`as its targets (first) argument. Valid types are: String, Element,`,`Element[], or NodeList.`].join(` `)),Wv(n,[`tippy() was passed a plain object which is not supported as an argument`,`for virtual positioning. Use props.getReferenceClientRect instead.`].join(` `))}var Kv={animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},qv=Object.assign({appendTo:iv,aria:{content:`auto`,expanded:`auto`},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:``,offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:`top`,plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:`mouseenter focus`,triggerTarget:null},Kv,{allowHTML:!1,animation:`fade`,arrow:!0,content:``,inertia:!1,maxWidth:350,role:`tooltip`,theme:``,zIndex:9999}),Jv=Object.keys(qv),Yv=function(e){process.env.NODE_ENV!==`production`&&$v(e,[]),Object.keys(e).forEach(function(t){qv[t]=e[t]})};function Xv(e){var t=(e.plugins||[]).reduce(function(t,n){var r=n.name,i=n.defaultValue;return r&&(t[r]=e[r]===void 0?qv[r]??i:e[r]),t},{});return Object.assign({},e,t)}function Zv(e,t){return(t?Object.keys(Xv(Object.assign({},qv,{plugins:t}))):Jv).reduce(function(t,n){var r=(e.getAttribute(`data-tippy-`+n)||``).trim();if(!r)return t;if(n===`content`)t[n]=r;else try{t[n]=JSON.parse(r)}catch{t[n]=r}return t},{})}function Qv(e,t){var n=Object.assign({},t,{content:cv(t.content,[e])},t.ignoreAttributes?{}:Zv(e,t.plugins));return n.aria=Object.assign({},qv.aria,n.aria),n.aria={expanded:n.aria.expanded===`auto`?t.interactive:n.aria.expanded,content:n.aria.content===`auto`?t.interactive?null:`describedby`:n.aria.content},n}function $v(e,t){e===void 0&&(e={}),t===void 0&&(t=[]),Object.keys(e).forEach(function(e){var n=!av(uv(qv,Object.keys(Kv)),e);n&&=t.filter(function(t){return t.name===e}).length===0,Uv(n,["`"+e+"`",`is not a valid prop. You may have spelled it incorrectly, or if it's`,`a plugin, forgot to pass it in an array as props.plugins.`,`
|
|
201
201
|
|
|
202
202
|
`,`All props: https://atomiks.github.io/tippyjs/v6/all-props/
|
|
203
|
-
`,`Plugins: https://atomiks.github.io/tippyjs/v6/plugins/`].join(` `))})}var
|
|
203
|
+
`,`Plugins: https://atomiks.github.io/tippyjs/v6/plugins/`].join(` `))})}var ey=function(){return`innerHTML`};function ty(e,t){e[ey()]=t}function ny(e){var t=vv();return e===!0?t.className=tv:(t.className=nv,yv(e)?t.appendChild(e):ty(t,e)),t}function ry(e,t){yv(t.content)?(ty(e,``),e.appendChild(t.content)):typeof t.content!=`function`&&(t.allowHTML?ty(e,t.content):e.textContent=t.content)}function iy(e){var t=e.firstElementChild,n=gv(t.children);return{box:t,content:n.find(function(e){return e.classList.contains($_)}),arrow:n.find(function(e){return e.classList.contains(tv)||e.classList.contains(nv)}),backdrop:n.find(function(e){return e.classList.contains(ev)})}}function ay(e){var t=vv(),n=vv();n.className=kee,n.setAttribute(`data-state`,`hidden`),n.setAttribute(`tabindex`,`-1`);var r=vv();r.className=$_,r.setAttribute(`data-state`,`hidden`),ry(r,e.props),t.appendChild(n),n.appendChild(r),i(e.props,e.props);function i(n,r){var i=iy(t),a=i.box,o=i.content,s=i.arrow;r.theme?a.setAttribute(`data-theme`,r.theme):a.removeAttribute(`data-theme`),typeof r.animation==`string`?a.setAttribute(`data-animation`,r.animation):a.removeAttribute(`data-animation`),r.inertia?a.setAttribute(`data-inertia`,``):a.removeAttribute(`data-inertia`),a.style.maxWidth=typeof r.maxWidth==`number`?r.maxWidth+`px`:r.maxWidth,r.role?a.setAttribute(`role`,r.role):a.removeAttribute(`role`),(n.content!==r.content||n.allowHTML!==r.allowHTML)&&ry(o,e.props),r.arrow?s?n.arrow!==r.arrow&&(a.removeChild(s),a.appendChild(ny(r.arrow))):a.appendChild(ny(r.arrow)):s&&a.removeChild(s)}return{popper:t,onUpdate:i}}ay.$$tippy=!0;var oy=1,sy=[],cy=[];function ly(e,t){var n=Qv(e,Object.assign({},qv,Xv(_v(t)))),r,i,a,o=!1,s=!1,c=!1,l=!1,u,d,f,p=[],m=lv(U,n.interactiveDebounce),h,g=oy++,_=null,v=mv(n.plugins),y={id:g,reference:e,popper:vv(),popperInstance:_,props:n,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:v,clearDelayTimeouts:me,setProps:he,setContent:ge,show:_e,hide:ve,hideWithInteractivity:ye,enable:fe,disable:pe,unmount:be,destroy:xe};if(!n.render)return process.env.NODE_ENV!==`production`&&Wv(!0,`render() function has not been supplied.`),y;var b=n.render(y),x=b.popper,S=b.onUpdate;x.setAttribute(`data-tippy-root`,``),x.id=`tippy-`+y.id,y.popper=x,e._tippy=y,x._tippy=y;var C=v.map(function(e){return e.fn(y)}),w=e.hasAttribute(`aria-expanded`);return ie(),F(),M(),N(`onCreate`,[y]),n.showOnCreate&&de(),x.addEventListener(`mouseenter`,function(){y.props.interactive&&y.state.isVisible&&y.clearDelayTimeouts()}),x.addEventListener(`mouseleave`,function(){y.props.interactive&&y.props.trigger.indexOf(`mouseenter`)>=0&&k().addEventListener(`mousemove`,m)}),y;function T(){var e=y.props.touch;return Array.isArray(e)?e:[e,0]}function E(){return T()[0]===`hold`}function D(){var e;return!!((e=y.props.render)!=null&&e.$$tippy)}function O(){return h||e}function k(){var e=O().parentNode;return e?Ev(e):document}function A(){return iy(x)}function j(e){return y.state.isMounted&&!y.state.isVisible||Av.isTouch||u&&u.type===`focus`?0:ov(y.props.delay,+!e,qv.delay)}function M(e){e===void 0&&(e=!1),x.style.pointerEvents=y.props.interactive&&!e?``:`none`,x.style.zIndex=``+y.props.zIndex}function N(e,t,n){if(n===void 0&&(n=!0),C.forEach(function(n){n[e]&&n[e].apply(n,t)}),n){var r;(r=y.props)[e].apply(r,t)}}function P(){var t=y.props.aria;if(t.content){var n=`aria-`+t.content,r=x.id;fv(y.props.triggerTarget||e).forEach(function(e){var t=e.getAttribute(n);if(y.state.isVisible)e.setAttribute(n,t?t+` `+r:r);else{var i=t&&t.replace(r,``).trim();i?e.setAttribute(n,i):e.removeAttribute(n)}})}}function F(){!w&&y.props.aria.expanded&&fv(y.props.triggerTarget||e).forEach(function(e){y.props.interactive?e.setAttribute(`aria-expanded`,y.state.isVisible&&e===O()?`true`:`false`):e.removeAttribute(`aria-expanded`)})}function I(){k().removeEventListener(`mousemove`,m),sy=sy.filter(function(e){return e!==m})}function L(t){if(!Av.isTouch||!c&&t.type!==`mousedown`){var n=t.composedPath&&t.composedPath()[0]||t.target;if(!(y.props.interactive&&kv(x,n))){if(fv(y.props.triggerTarget||e).some(function(e){return kv(e,n)})){if(Av.isTouch||y.state.isVisible&&y.props.trigger.indexOf(`click`)>=0)return}else N(`onClickOutside`,[y,t]);y.props.hideOnClick===!0&&(y.clearDelayTimeouts(),y.hide(),s=!0,setTimeout(function(){s=!1}),y.state.isMounted||V())}}}function R(){c=!0}function z(){c=!1}function B(){var e=k();e.addEventListener(`mousedown`,L,!0),e.addEventListener(`touchend`,L,rv),e.addEventListener(`touchstart`,z,rv),e.addEventListener(`touchmove`,R,rv)}function V(){var e=k();e.removeEventListener(`mousedown`,L,!0),e.removeEventListener(`touchend`,L,rv),e.removeEventListener(`touchstart`,z,rv),e.removeEventListener(`touchmove`,R,rv)}function ee(e,t){ne(e,function(){!y.state.isVisible&&x.parentNode&&x.parentNode.contains(x)&&t()})}function te(e,t){ne(e,t)}function ne(e,t){var n=A().box;function r(e){e.target===n&&(Ov(n,`remove`,r),t())}if(e===0)return t();Ov(n,`remove`,d),Ov(n,`add`,r),d=r}function re(t,n,r){r===void 0&&(r=!1),fv(y.props.triggerTarget||e).forEach(function(e){e.addEventListener(t,n,r),p.push({node:e,eventType:t,handler:n,options:r})})}function ie(){E()&&(re(`touchstart`,ae,{passive:!0}),re(`touchend`,W,{passive:!0})),dv(y.props.trigger).forEach(function(e){if(e!==`manual`)switch(re(e,ae),e){case`mouseenter`:re(`mouseleave`,W);break;case`focus`:re(Iv?`focusout`:`blur`,oe);break;case`focusin`:re(`focusout`,oe)}})}function H(){p.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,i=e.options;t.removeEventListener(n,r,i)}),p=[]}function ae(e){var t=!1;if(!(!y.state.isEnabled||G(e)||s)){var n=u?.type===`focus`;u=e,h=e.currentTarget,F(),!y.state.isVisible&&xv(e)&&sy.forEach(function(t){return t(e)}),e.type===`click`&&(y.props.trigger.indexOf(`mouseenter`)<0||o)&&y.props.hideOnClick!==!1&&y.state.isVisible?t=!0:de(e),e.type===`click`&&(o=!t),t&&!n&&K(e)}}function U(e){var t=e.target,r=O().contains(t)||x.contains(t);e.type===`mousemove`&&r||Dv(ue().concat(x).map(function(e){var t=e._tippy.popperInstance?.state;return t?{popperRect:e.getBoundingClientRect(),popperState:t,props:n}:null}).filter(Boolean),e)&&(I(),K(e))}function W(e){if(!(G(e)||y.props.trigger.indexOf(`click`)>=0&&o)){if(y.props.interactive){y.hideWithInteractivity(e);return}K(e)}}function oe(e){y.props.trigger.indexOf(`focusin`)<0&&e.target!==O()||y.props.interactive&&e.relatedTarget&&x.contains(e.relatedTarget)||K(e)}function G(e){return Av.isTouch?E()!==e.type.indexOf(`touch`)>=0:!1}function se(){ce();var t=y.props,n=t.popperOptions,r=t.placement,i=t.offset,a=t.getReferenceClientRect,o=t.moveTransition,s=D()?iy(x).arrow:null,c=a?{getBoundingClientRect:a,contextElement:a.contextElement||O()}:e,l=[{name:`offset`,options:{offset:i}},{name:`preventOverflow`,options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:`flip`,options:{padding:5}},{name:`computeStyles`,options:{adaptive:!o}},{name:`$$tippy`,enabled:!0,phase:`beforeWrite`,requires:[`computeStyles`],fn:function(e){var t=e.state;if(D()){var n=A().box;[`placement`,`reference-hidden`,`escaped`].forEach(function(e){e===`placement`?n.setAttribute(`data-placement`,t.placement):t.attributes.popper[`data-popper-`+e]?n.setAttribute(`data-`+e,``):n.removeAttribute(`data-`+e)}),t.attributes.popper={}}}}];D()&&s&&l.push({name:`arrow`,options:{element:s,padding:3}}),l.push.apply(l,n?.modifiers||[]),y.popperInstance=Oee(c,x,Object.assign({},n,{placement:r,onFirstUpdate:f,modifiers:l}))}function ce(){y.popperInstance&&=(y.popperInstance.destroy(),null)}function le(){var e=y.props.appendTo,t,n=O();t=y.props.interactive&&e===iv||e===`parent`?n.parentNode:cv(e,[n]),t.contains(x)||t.appendChild(x),y.state.isMounted=!0,se(),process.env.NODE_ENV!==`production`&&Uv(y.props.interactive&&e===qv.appendTo&&n.nextElementSibling!==x,[`Interactive tippy element may not be accessible via keyboard`,`navigation because it is not directly after the reference element`,`in the DOM source order.`,`
|
|
204
204
|
|
|
205
205
|
`,`Using a wrapper <div> or <span> tag around the reference element`,`solves this by creating a new parentNode context.`,`
|
|
206
206
|
|
|
207
207
|
`,"Specifying `appendTo: document.body` silences this warning, but it",`assumes you are using a focus management solution to handle`,`keyboard navigation.`,`
|
|
208
208
|
|
|
209
|
-
`,`See: https://atomiks.github.io/tippyjs/v6/accessibility/#interactivity`].join(` `))}function ue(){return
|
|
209
|
+
`,`See: https://atomiks.github.io/tippyjs/v6/accessibility/#interactivity`].join(` `))}function ue(){return gv(x.querySelectorAll(`[data-tippy-root]`))}function de(e){y.clearDelayTimeouts(),e&&N(`onTrigger`,[y,e]),B();var t=j(!0),n=T(),i=n[0],a=n[1];Av.isTouch&&i===`hold`&&a&&(t=a),t?r=setTimeout(function(){y.show()},t):y.show()}function K(e){if(y.clearDelayTimeouts(),N(`onUntrigger`,[y,e]),!y.state.isVisible){V();return}if(!(y.props.trigger.indexOf(`mouseenter`)>=0&&y.props.trigger.indexOf(`click`)>=0&&[`mouseleave`,`mousemove`].indexOf(e.type)>=0&&o)){var t=j(!1);t?i=setTimeout(function(){y.state.isVisible&&y.hide()},t):a=requestAnimationFrame(function(){y.hide()})}}function fe(){y.state.isEnabled=!0}function pe(){y.hide(),y.state.isEnabled=!1}function me(){clearTimeout(r),clearTimeout(i),cancelAnimationFrame(a)}function he(t){if(process.env.NODE_ENV!==`production`&&Uv(y.state.isDestroyed,Lv(`setProps`)),!y.state.isDestroyed){N(`onBeforeUpdate`,[y,t]),H();var n=y.props,r=Qv(e,Object.assign({},n,_v(t),{ignoreAttributes:!0}));y.props=r,ie(),n.interactiveDebounce!==r.interactiveDebounce&&(I(),m=lv(U,r.interactiveDebounce)),n.triggerTarget&&!r.triggerTarget?fv(n.triggerTarget).forEach(function(e){e.removeAttribute(`aria-expanded`)}):r.triggerTarget&&e.removeAttribute(`aria-expanded`),F(),M(),S&&S(n,r),y.popperInstance&&(se(),ue().forEach(function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})),N(`onAfterUpdate`,[y,t])}}function ge(e){y.setProps({content:e})}function _e(){process.env.NODE_ENV!==`production`&&Uv(y.state.isDestroyed,Lv(`show`));var e=y.state.isVisible,t=y.state.isDestroyed,n=!y.state.isEnabled,r=Av.isTouch&&!y.props.touch,i=ov(y.props.duration,0,qv.duration);if(!(e||t||n||r)&&!O().hasAttribute(`disabled`)&&(N(`onShow`,[y],!1),y.props.onShow(y)!==!1)){if(y.state.isVisible=!0,D()&&(x.style.visibility=`visible`),M(),B(),y.state.isMounted||(x.style.transition=`none`),D()){var a=A(),o=a.box,s=a.content;wv([o,s],0)}f=function(){var e;if(y.state.isVisible&&!l){if(l=!0,x.offsetHeight,x.style.transition=y.props.moveTransition,D()&&y.props.animation){var t=A(),n=t.box,r=t.content;wv([n,r],i),Tv([n,r],`visible`)}P(),F(),pv(cy,y),(e=y.popperInstance)==null||e.forceUpdate(),N(`onMount`,[y]),y.props.animation&&D()&&te(i,function(){y.state.isShown=!0,N(`onShown`,[y])})}},le()}}function ve(){process.env.NODE_ENV!==`production`&&Uv(y.state.isDestroyed,Lv(`hide`));var e=!y.state.isVisible,t=y.state.isDestroyed,n=!y.state.isEnabled,r=ov(y.props.duration,1,qv.duration);if(!(e||t||n)&&(N(`onHide`,[y],!1),y.props.onHide(y)!==!1)){if(y.state.isVisible=!1,y.state.isShown=!1,l=!1,o=!1,D()&&(x.style.visibility=`hidden`),I(),V(),M(!0),D()){var i=A(),a=i.box,s=i.content;y.props.animation&&(wv([a,s],r),Tv([a,s],`hidden`))}P(),F(),y.props.animation?D()&&ee(r,y.unmount):y.unmount()}}function ye(e){process.env.NODE_ENV!==`production`&&Uv(y.state.isDestroyed,Lv(`hideWithInteractivity`)),k().addEventListener(`mousemove`,m),pv(sy,m),m(e)}function be(){process.env.NODE_ENV!==`production`&&Uv(y.state.isDestroyed,Lv(`unmount`)),y.state.isVisible&&y.hide(),y.state.isMounted&&(ce(),ue().forEach(function(e){e._tippy.unmount()}),x.parentNode&&x.parentNode.removeChild(x),cy=cy.filter(function(e){return e!==y}),y.state.isMounted=!1,N(`onHidden`,[y]))}function xe(){process.env.NODE_ENV!==`production`&&Uv(y.state.isDestroyed,Lv(`destroy`)),!y.state.isDestroyed&&(y.clearDelayTimeouts(),y.unmount(),H(),delete e._tippy,y.state.isDestroyed=!0,N(`onDestroy`,[y]))}}function uy(e,t){t===void 0&&(t={});var n=qv.plugins.concat(t.plugins||[]);process.env.NODE_ENV!==`production`&&(Gv(e),$v(t,n)),Fv();var r=Object.assign({},t,{plugins:n}),i=Cv(e);if(process.env.NODE_ENV!==`production`){var a=yv(r.content),o=i.length>1;Uv(a&&o,["tippy() was passed an Element as the `content` prop, but more than",`one tippy instance was created by this invocation. This means the`,`content element will only be appended to the last tippy instance.`,`
|
|
210
210
|
|
|
211
211
|
`,`Instead, pass the .innerHTML of the element, or use a function that`,`returns a cloned version of the element instead.`,`
|
|
212
212
|
|
|
213
213
|
`,`1) content: element.innerHTML
|
|
214
|
-
`,`2) content: () => element.cloneNode(true)`].join(` `))}var s=i.reduce(function(e,t){var n=t&&cy(t,r);return n&&e.push(n),e},[]);return vv(e)?s[0]:s}ly.defaultProps=Kv,ly.setDefaultProps=Jv,ly.currentInput=kv,Object.assign({},Eg,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:`0`,top:`0`,margin:`0`},arrow:{position:`absolute`},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}}),ly.setDefaultProps({render:iy});var uy=`#000000.#434343.#666666.#999999.#b7b7b7.#cccccc.#d9d9d9.#ffffff.#980000.#ff0000.#ff9900.#ffff00.#00ff00.#00ffff.#4a86e8.#0000ff.#9900ff.#ff00ff.#e6b8af.#f4cccc.#fce5cd.#fff2cc.#d9ead3.#d0e0e3.#c9daf8.#cfe2f3.#d9d2e9.#ead1dc`.split(`.`),dy=`notes-toolbar-recent-colors`,fy=8;function py(){try{return JSON.parse(localStorage.getItem(dy)||`[]`)}catch{return[]}}function my(e){let t=py().filter(t=>t!==e);t.unshift(e),t.length>fy&&(t=t.slice(0,fy)),localStorage.setItem(dy,JSON.stringify(t))}function hy(e={}){let t=document.createElement(`div`);return t.className=`notes-toolbar`,t.appendChild(by(e)),t.appendChild(xy(e)),t.appendChild(Sy(e)),t.appendChild(Ey(e)),t.appendChild(ky(e)),t.appendChild(Ay(e)),t.appendChild(My(e)),t}function gy(e,t){for(let[n,r]of Object.entries(t)){let t=e.querySelector(`[data-action="${n}"]`);t&&t.classList.toggle(`is-active`,r)}}function _y(e,t){let n=e.querySelector(`[data-action="heading"]`);n&&(n.value=t===!1?`0`:String(t))}function vy(){let e=document.createElement(`div`);return e.className=`notes-toolbar-group`,e}function yy(e,t,n,r){let i=document.createElement(`button`);return i.className=`notes-toolbar-btn`,i.dataset.action=e,i.title=n,i.type=`button`,i.innerHTML=t,r&&i.addEventListener(`click`,r),i}function by(e){let t=vy(),n=document.createElement(`select`);n.dataset.action=`heading`,n.title=`Text style`;for(let e of[{value:`0`,label:`Paragraph`},{value:`1`,label:`Heading 1`},{value:`2`,label:`Heading 2`},{value:`3`,label:`Heading 3`},{value:`4`,label:`Heading 4`},{value:`5`,label:`Heading 5`},{value:`6`,label:`Heading 6`}]){let t=document.createElement(`option`);t.value=e.value,t.textContent=e.label,n.appendChild(t)}return n.addEventListener(`change`,()=>{let t=parseInt(n.value,10);e.onHeading?.(t!==0&&t)}),t.appendChild(n),t}function xy(e){let t=vy();return t.appendChild(yy(`bold`,`<b>B</b>`,`Bold`,e.onBold)),t.appendChild(yy(`italic`,`<i>I</i>`,`Italic`,e.onItalic)),t.appendChild(yy(`underline`,`<u>U</u>`,`Underline`,e.onUnderline)),t.appendChild(yy(`strike`,`<s>S</s>`,`Strikethrough`,e.onStrike)),t}function Sy(e){let t=vy();return t.appendChild(Cy(`color`,`A`,`Text color`,`#000000`,t=>{my(t),e.onColor?.(t)})),t.appendChild(Cy(`background`,`A`,`Background color`,`#ffff00`,t=>{my(t),e.onBackground?.(t)})),t}function Cy(e,t,n,r,i){let a=document.createElement(`button`);a.className=`notes-toolbar-btn notes-toolbar-color-btn`,a.dataset.action=e,a.title=n,a.type=`button`;let o=document.createElement(`span`);o.className=`notes-toolbar-color-letter`,o.textContent=t,a.appendChild(o);let s=document.createElement(`span`);s.className=`notes-toolbar-color-bar`,s.style.backgroundColor=r,a.appendChild(s);let c;return a.addEventListener(`click`,()=>{if(c){c.destroy(),c=void 0;return}let e=wy(r,e=>{s.style.backgroundColor=e,i(e),c?.destroy(),c=void 0});c=ly(a,{content:e,theme:`light-border`,trigger:`manual`,interactive:!0,placement:`bottom-start`,onHidden:()=>{c?.destroy(),c=void 0}}),c.show()}),a}function wy(e,t){let n=document.createElement(`div`);n.className=`notes-color-panel`;let r=document.createElement(`div`);r.className=`notes-color-swatches`;for(let n of uy)r.appendChild(Ty(n,n===e,t));n.appendChild(r);let i=py();if(i.length){let r=document.createElement(`div`);r.className=`notes-color-section-label`,r.textContent=`Recent`,n.appendChild(r);let a=document.createElement(`div`);a.className=`notes-color-swatches`;for(let n of i)a.appendChild(Ty(n,n===e,t));n.appendChild(a)}let a=document.createElement(`div`);a.className=`notes-color-custom-row`;let o=document.createElement(`input`);o.type=`color`,o.value=e,o.className=`notes-color-custom-input`;let s=document.createElement(`label`);return s.className=`notes-color-custom-label`,s.textContent=`Custom...`,s.addEventListener(`click`,()=>o.click()),o.addEventListener(`input`,()=>t(o.value)),a.appendChild(o),a.appendChild(s),n.appendChild(a),n}function Ty(e,t,n){let r=document.createElement(`button`);return r.type=`button`,r.className=`notes-color-swatch`,t&&r.classList.add(`is-selected`),r.style.backgroundColor=e,(e===`#ffffff`||e===`#fff`)&&(r.style.border=`1px solid var(--chc-border-secondary)`),r.title=e,r.addEventListener(`click`,()=>n(e)),r}function Ey(e){let t=vy();return t.appendChild(yy(`orderedList`,Dy(16,16,`<path d="M3 2h12v2H3zm0 5h12v2H3zm0 5h12v2H3z" fill="currentColor"/><text x="0" y="4" font-size="3.5" fill="currentColor">1</text><text x="0" y="9" font-size="3.5" fill="currentColor">2</text><text x="0" y="14" font-size="3.5" fill="currentColor">3</text>`),`Ordered list`,e.onOrderedList)),t.appendChild(yy(`bulletList`,Dy(16,16,`<circle cx="1.5" cy="3" r="1.5" fill="currentColor"/><circle cx="1.5" cy="8" r="1.5" fill="currentColor"/><circle cx="1.5" cy="13" r="1.5" fill="currentColor"/><path d="M5 2h10v2H5zm0 5h10v2H5zm0 5h10v2H5z" fill="currentColor"/>`),`Bullet list`,e.onBulletList)),t}function Dy(e,t,n){return`<svg width="${e}" height="${t}" viewBox="0 0 ${e} ${t}" xmlns="http://www.w3.org/2000/svg">${n}</svg>`}var Oy={alignLeft:Dy(16,16,`<path d="M1 2h14v2H1zm0 4h9v2H1zm0 4h14v2H1zm0 4h9v2H1z" fill="currentColor"/>`),alignCenter:Dy(16,16,`<path d="M1 2h14v2H1zm3.5 4h7v2h-7zM1 10h14v2H1zm3.5 4h7v2h-7z" fill="currentColor"/>`),alignRight:Dy(16,16,`<path d="M1 2h14v2H1zm6 4h8v2H7zM1 10h14v2H1zm6 4h8v2H7z" fill="currentColor"/>`),alignJustify:Dy(16,16,`<path d="M1 2h14v2H1zm0 4h14v2H1zm0 4h14v2H1zm0 4h14v2H1z" fill="currentColor"/>`)};function ky(e){let t=vy();return t.appendChild(yy(`alignLeft`,Oy.alignLeft,`Align left`,()=>e.onAlign?.(`left`))),t.appendChild(yy(`alignCenter`,Oy.alignCenter,`Align center`,()=>e.onAlign?.(`center`))),t.appendChild(yy(`alignRight`,Oy.alignRight,`Align right`,()=>e.onAlign?.(`right`))),t.appendChild(yy(`alignJustify`,Oy.alignJustify,`Justify`,()=>e.onAlign?.(`justify`))),t}function Ay(e){let t=vy();t.appendChild(yy(`blockquote`,`“`,`Blockquote`,e.onBlockquote)),t.appendChild(yy(`codeBlock`,`</>`,`Code block`,e.onCodeBlock));let n=yy(`link`,`⇗`,`Insert link`);jy(n,`Enter URL`,`https://`,t=>e.onLink?.(t)),t.appendChild(n);let r=yy(`video`,`▷`,`Insert video`);return jy(r,`YouTube URL`,`https://youtube.com/...`,t=>e.onVideo?.(t)),t.appendChild(r),t}function jy(e,t,n,r){let i;e.addEventListener(`click`,()=>{if(i){i.destroy(),i=void 0;return}let a=document.createElement(`div`);a.className=`notes-url-panel`;let o=document.createElement(`div`);o.className=`notes-url-label`,o.textContent=t,a.appendChild(o);let s=document.createElement(`input`);s.type=`url`,s.className=`notes-url-input`,s.placeholder=n,a.appendChild(s);let c=document.createElement(`div`);c.className=`notes-url-actions`;let l=document.createElement(`button`);l.type=`button`,l.className=`button notes-url-cancel`,l.textContent=`Cancel`,l.addEventListener(`click`,()=>{i?.destroy(),i=void 0});let u=document.createElement(`button`);u.type=`button`,u.className=`button is-info notes-url-confirm`,u.textContent=`Insert`,u.addEventListener(`click`,()=>{let e=s.value.trim();e&&r(e),i?.destroy(),i=void 0}),c.appendChild(l),c.appendChild(u),a.appendChild(c),s.addEventListener(`keydown`,e=>{e.key===`Enter`?(e.preventDefault(),u.click()):e.key===`Escape`&&l.click()}),i=ly(e,{content:a,theme:`light-border`,trigger:`manual`,interactive:!0,placement:`bottom-start`,onShown:()=>setTimeout(()=>s.focus(),0),onHidden:()=>{i?.destroy(),i=void 0}}),i.show()})}function My(e){let t=vy();return t.appendChild(yy(`clearFormatting`,`⊘`,`Clear formatting`,e.onClearFormatting)),t}function Ny(e={}){let t=!1,l,u=document.createElement(`div`);u.className=`notes-editor-content`;let d={toolbar:void 0,editorElement:u,editor:void 0,getHtml:()=>d.editor&&!d.editor.isEmpty?d.editor.getHTML():``,isEmpty:()=>!d.editor||d.editor.isEmpty,destroy:()=>{t||(t=!0,l!==void 0&&cancelAnimationFrame(l),d.editor?.destroy(),d.editor=void 0)}};d.toolbar=hy({onHeading:e=>{d.editor&&(e===!1?d.editor.chain().focus().setParagraph().run():d.editor.chain().focus().toggleHeading({level:e}).run())},onBold:()=>d.editor?.chain().focus().toggleBold().run(),onItalic:()=>d.editor?.chain().focus().toggleItalic().run(),onUnderline:()=>d.editor?.chain().focus().toggleUnderline().run(),onStrike:()=>d.editor?.chain().focus().toggleStrike().run(),onColor:e=>d.editor?.chain().focus().setColor(e).run(),onBackground:e=>d.editor?.chain().focus().setHighlight({color:e}).run(),onBulletList:()=>d.editor?.chain().focus().toggleBulletList().run(),onOrderedList:()=>d.editor?.chain().focus().toggleOrderedList().run(),onAlign:e=>d.editor?.chain().focus().setTextAlign(e).run(),onBlockquote:()=>d.editor?.chain().focus().toggleBlockquote().run(),onCodeBlock:()=>d.editor?.chain().focus().toggleCodeBlock().run(),onLink:e=>d.editor?.chain().focus().setLink({href:e}).run(),onVideo:e=>d.editor?.commands.setYoutubeVideo({src:e}),onClearFormatting:()=>d.editor?.chain().focus().clearNodes().unsetAllMarks().run()});let f=()=>{if(d.editor){gy(d.toolbar,{bold:d.editor.isActive(`bold`),italic:d.editor.isActive(`italic`),underline:d.editor.isActive(`underline`),strike:d.editor.isActive(`strike`),orderedList:d.editor.isActive(`orderedList`),bulletList:d.editor.isActive(`bulletList`),blockquote:d.editor.isActive(`blockquote`),codeBlock:d.editor.isActive(`codeBlock`),alignLeft:d.editor.isActive({textAlign:`left`}),alignCenter:d.editor.isActive({textAlign:`center`}),alignRight:d.editor.isActive({textAlign:`right`}),alignJustify:d.editor.isActive({textAlign:`justify`})});for(let e=1;e<=6;e++)if(d.editor.isActive(`heading`,{level:e})){_y(d.toolbar,e);return}_y(d.toolbar,!1)}};return l=requestAnimationFrame(()=>{l=void 0,!t&&(d.editor=new c.Editor({element:u,extensions:[s.default,n.TextStyle,a.Color,i.default.configure({multicolor:!0}),r.default.configure({types:[`heading`,`paragraph`]}),o.default.configure({inline:!1})],content:e.initialHtml||``,onSelectionUpdate:f,onTransaction:f}))}),d}function Py(e,t,n){if(!e)return{};let r=document.createElement(`aside`);r.classList.add(`menu`);let i={},a=e=>n&&e.close!==!1?t=>{t.stopPropagation(),n(),e.onClick()}:t=>{t.stopPropagation(),e.onClick()},o=0,s=()=>(o+=1,o),c=e=>e?.heading||e?.text||e?.label||`Item ${s()}`,l=e=>{let t=document.createElement(`li`);if(t.className=`font-medium`,e.style&&(t.style.cssText=e.style),e.onClick){let n=e.fontSize||`1em`;if(e.divider){let e=document.createElement(`hr`);e.classList.add(`dropdown-divider`),t.appendChild(e)}else{let r=document.createElement(`a`),i=e.disabled?`0.4`:`1`;r.style.cssText=`text-decoration: none; opacity: ${i}; font-size: ${n}`,e.class&&r.classList.add(e.class),e.color&&(r.style.color=e.color),e.heading&&(r.style.fontWeight=`bold`),e.disabled||(r.onclick=a(e)),r.innerHTML=c(e),t.appendChild(r)}}else t.innerHTML=c(e),e.disabled||(t.onclick=e.onClick);return t},u;for(let e of t||[])if(!e.hide){if(e.items){if(e.text){let t=document.createElement(`p`);t.className=`menu-label font-medium`,t.innerHTML=e.text,r.appendChild(t)}let t=document.createElement(`ul`);t.className=`menu-list`;for(let n of e.items)n.hide||t.appendChild(l(n));r.appendChild(t)}else if(e.type===`input`){let{field:t,inputElement:n}=vn(e);e.focus&&(u=n),i[e.field]=n,r.appendChild(t)}else if(e.type===`divider`){let e=document.createElement(`hr`);e.classList.add(`dropdown-divider`),r.appendChild(e)}}return e.appendChild(r),{focusElement:u}}function Fy(e){return typeof e==`function`}var Iy;function Ly(e){Iy&&=(Iy?.destroy(!0),void 0),e?.remove&&e.remove()}function Ry(e){let{title:t,options:n,menuItems:r=[],coords:i,callback:a,config:o}=e,{target:s,items:c}=e;if(!n?.length&&!c?.length&&!r)return;Ly();let l=document.createElement(`div`),u;return s||=i?.evt?.target,s&&(Iy=ly(s,{content:()=>{c=c?.filter(e=>!e.hide&&!e.disabled).map(e=>({...e,onClick:()=>{Ly(l),Fy(e.onClick)&&e.onClick()}}))||n?.filter(e=>!e.hide&&!e.disabled).map(e=>({text:typeof e==`object`?e.option:e,style:e.style,onClick:()=>{e.subMenu?Iy.setContent(`IMPLEMENT SUB MENU`):Fy(e.onClick)?(Ly(l),e.onClick()):Fy(a)&&a&&(Ly(l),a(typeof e==`object`?{...e,coords:i}:e))}}));let e=[{text:t,items:c},...r];return u=Py(l,e).focusElement,l},theme:`light-border`,trigger:`click`,onShown:()=>{u&&setTimeout(()=>u?.focus(),0)},...o}),Iy.show(),Iy.setProps({interactive:!0})),Iy}var Y=`court-line`;function X(e,t){let n=document.createElementNS(`http://www.w3.org/2000/svg`,e);for(let[e,r]of Object.entries(t))n.setAttribute(e,r);return n}function zy(e,t){let n=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`);return n.setAttribute(`viewBox`,e),n.setAttribute(`class`,t),n.setAttribute(`fill`,`none`),n.style.width=`100%`,n.style.height=`auto`,n.style.display=`block`,n}function By(e){let t=zy(`0 0 360 780`,e);for(let e of[`M 0 0 L 360 0 L 360 780 L 0 780 Z`,`M 45 0 L 45 780`,`M 315 0 L 315 780`,`M 0 390 L 360 390`,`M 45 210 L 315 210`,`M 45 570 L 315 570`,`M 180 210 L 180 570`,`M 180 0 L 180 20`,`M 180 760 L 180 780`])t.appendChild(X(`path`,{d:e,class:Y}));return t}function Vy(e){let t=zy(`0 0 500 470`,e),n=[X(`rect`,{x:`0`,y:`0`,width:`500`,height:`470`,class:Y}),X(`circle`,{cx:`250`,cy:`470`,r:`60`,class:Y}),X(`line`,{x1:`0`,y1:`470`,x2:`500`,y2:`470`,class:Y}),X(`rect`,{x:`170`,y:`0`,width:`160`,height:`190`,class:Y}),X(`circle`,{cx:`250`,cy:`190`,r:`60`,class:Y}),X(`line`,{x1:`220`,y1:`40`,x2:`280`,y2:`40`,class:Y}),X(`circle`,{cx:`250`,cy:`52`,r:`12`,class:Y}),X(`path`,{d:`M 30 0 L 30 90 A 220 220 0 0 0 470 90 L 470 0`,class:Y})];for(let e of n)t.appendChild(e);return t}function Hy(e){let t=zy(`0 0 500 440`,e),n=[X(`path`,{d:`M 20 170 A 350 400 0 0 1 480 170`,class:Y}),X(`line`,{x1:`250`,y1:`400`,x2:`20`,y2:`170`,class:Y}),X(`line`,{x1:`250`,y1:`400`,x2:`480`,y2:`170`,class:Y}),X(`path`,{d:`M 250 400 L 314 336 L 250 273 L 186 336 Z`,class:Y}),X(`path`,{d:`M 340 355 A 100 100 0 0 1 160 355`,class:Y}),X(`line`,{x1:`340`,y1:`355`,x2:`265`,y2:`405`,class:Y}),X(`line`,{x1:`160`,y1:`355`,x2:`235`,y2:`405`,class:Y}),X(`path`,{d:`M 235 405 A 18 18 0 0 1 265 405`,class:Y}),X(`circle`,{cx:`250`,cy:`340`,r:`9`,class:Y}),X(`line`,{x1:`247`,y1:`339`,x2:`253`,y2:`339`,class:Y}),X(`path`,{d:`M 244 398 L 244 404 L 250 408 L 256 404 L 256 398 Z`,class:Y}),X(`rect`,{x:`310`,y:`332`,width:`8`,height:`8`,transform:`rotate(45 314 336)`,class:Y}),X(`rect`,{x:`246`,y:`269`,width:`8`,height:`8`,transform:`rotate(45 250 273)`,class:Y}),X(`rect`,{x:`182`,y:`332`,width:`8`,height:`8`,transform:`rotate(45 186 336)`,class:Y}),X(`rect`,{x:`230`,y:`393`,width:`8`,height:`18`,class:Y}),X(`rect`,{x:`262`,y:`393`,width:`8`,height:`18`,class:Y})];for(let e of n)t.appendChild(e);return t}function Uy(e){let t=zy(`0 0 850 2000`,e),n=[X(`rect`,{x:`0`,y:`0`,width:`850`,height:`2000`,rx:`280`,ry:`280`,class:Y}),X(`line`,{x1:`0`,y1:`1000`,x2:`850`,y2:`1000`,class:Y}),X(`circle`,{cx:`425`,cy:`1000`,r:`60`,class:Y}),X(`line`,{x1:`0`,y1:`650`,x2:`850`,y2:`650`,class:Y}),X(`line`,{x1:`0`,y1:`1350`,x2:`850`,y2:`1350`,class:Y}),X(`line`,{x1:`140`,y1:`300`,x2:`710`,y2:`300`,class:Y}),X(`line`,{x1:`140`,y1:`1700`,x2:`710`,y2:`1700`,class:Y}),X(`path`,{d:`M 395 300 A 40 40 0 0 1 455 300`,class:Y}),X(`path`,{d:`M 395 1700 A 40 40 0 0 0 455 1700`,class:Y}),X(`circle`,{cx:`270`,cy:`650`,r:`50`,class:Y}),X(`circle`,{cx:`580`,cy:`650`,r:`50`,class:Y}),X(`circle`,{cx:`270`,cy:`1350`,r:`50`,class:Y}),X(`circle`,{cx:`580`,cy:`1350`,r:`50`,class:Y})];for(let e of n)t.appendChild(e);return t}function Wy(e){let t=zy(`0 0 200 440`,e);for(let e of[`M 0 0 L 200 0 L 200 440 L 0 440 Z`,`M 0 220 L 200 220`,`M 0 150 L 200 150`,`M 0 290 L 200 290`,`M 100 0 L 100 150`,`M 100 290 L 100 440`])t.appendChild(X(`path`,{d:e,class:Y}));return t}function Gy(e){let t=zy(`0 0 200 440`,e);for(let e of[`M 0 0 L 200 0 L 200 440 L 0 440 Z`,`M 18 0 L 18 440`,`M 182 0 L 182 440`,`M 0 220 L 200 220`,`M 0 146 L 200 146`,`M 0 294 L 200 294`,`M 0 30 L 200 30`,`M 0 410 L 200 410`,`M 100 146 L 100 220`,`M 100 220 L 100 294`])t.appendChild(X(`path`,{d:e,class:Y}));return t}function Ky(e){let t=zy(`0 0 100 200`,e);for(let e of[`M 0 0 L 100 0 L 100 200 L 0 200 Z`,`M 0 100 L 100 100`,`M 0 69.5 L 100 69.5`,`M 0 130.5 L 100 130.5`,`M 50 69.5 L 50 67.5`,`M 50 130.5 L 50 132.5`])t.appendChild(X(`path`,{d:e,class:Y}));return t}var qy=`COURT_SVG`,Jy={tennis:By,basketball:Vy,baseball:Hy,hockey:Uy,pickleball:Wy,badminton:Gy,padel:Ky},Yy={TENNIS:`tennis`,PADEL:`padel`,PICKLEBALL:`pickleball`,BADMINTON:`badminton`},Xy={HAL:`basketball`,INN:`baseball`,PER:`hockey`};function Zy(e){if(e){for(let[t,n]of Object.entries(Xy))if(e.startsWith(t))return n;if(e.startsWith(`SET`)||e.startsWith(`T`))return e.includes(`@RALLY`)?`pickleball`:`tennis`}}function Qy(e){let t=e?.competitionFormat?.sport;return t&&Yy[t]?Yy[t]:Zy(e?.matchUpFormat)}function $y(e){let t=e.getAttribute(`viewBox`);if(!t)return e;let n=t.split(/\s+/).map(Number);if(n.length!==4)return e;let[r,i,a,o]=n;if(o<=a)return e;e.setAttribute(`viewBox`,`${r} ${i} ${o} ${a}`);let s=document.createElementNS(`http://www.w3.org/2000/svg`,`g`);for(s.setAttribute(`transform`,`translate(${o}, 0) rotate(90)`);e.firstChild;)s.appendChild(e.firstChild);return e.appendChild(s),e}function eb(e,t=``){let n=e?Jy[e]:void 0;if(n)return $y(n(t?`court--${e} ${t}`:`court--${e}`))}function tb(e){let t=[];return e.city&&t.push(e.city),(e.state||e.region)&&t.push(e.state||e.region),e.countryCode?t.push(e.countryCode):e.country&&t.push(e.country),t.join(`, `)}function nb(e){if(!e)return;let t=tb(e);return t.length?t:void 0}function rb(e){let t=e?.find(Boolean);if(!t)return;let n=t.addresses?.find(Boolean);return n?nb(n)??t.venueName:t.venueName}var ib=/^(\d{4})-(\d{2})-(\d{2})/,ab=864e5;function ob(e){if(!e)return null;let t=ib.exec(e);if(!t)return null;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);return!Number.isFinite(n)||!Number.isFinite(r)||!Number.isFinite(i)?null:{year:n,month:r,day:i}}function sb(e,t){if(!t)return new Date(e.year,e.month-1,e.day);let n=Date.UTC(e.year,e.month-1,e.day,0,0,0,0),r=new Intl.DateTimeFormat(`en-US`,{timeZone:t,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hourCycle:`h23`}),i=new Date(n);for(let e=0;e<2;e++){let e=r.formatToParts(i),t=t=>Number(e.find(e=>e.type===t)?.value??0),a=Date.UTC(t(`year`),t(`month`)-1,t(`day`),t(`hour`),t(`minute`),t(`second`))-i.getTime();i=new Date(n-a)}return i}function cb(e,t){if(!t)return new Date(e.year,e.month-1,e.day+1);let n=sb(e,t),r=new Date(n.getTime()+ab),i=new Intl.DateTimeFormat(`en-US`,{timeZone:t,year:`numeric`,month:`2-digit`,day:`2-digit`}).formatToParts(r),a=e=>Number(i.find(t=>t.type===e)?.value??0);return sb({year:a(`year`),month:a(`month`),day:a(`day`)},t)}function lb(e){if(!e)return null;let t=ob(e);if(t)return new Date(t.year,t.month-1,t.day);let n=new Date(e);return Number.isNaN(n.getTime())?null:n}function ub(e){return e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`})}function db(e){return e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`,year:`numeric`})}function fb(e,t){if(!e&&!t)return;let n=lb(e),r=lb(t),i=!!n&&!Number.isNaN(n.getTime()),a=!!r&&!Number.isNaN(r.getTime());if(i||a)return i&&a&&n.getTime()===r.getTime()?db(n):i&&a?n.getFullYear()===r.getFullYear()?`${ub(n)} – ${ub(r)}, ${r.getFullYear()}`:`${db(n)} – ${db(r)}`:db(i?n:r)}function pb(e){return e.slice().sort((e,t)=>{let n=e.courtOrder,r=t.courtOrder;return Number.isFinite(n)&&Number.isFinite(r)&&n!==r?n-r:Number.isFinite(n)&&!Number.isFinite(r)?-1:!Number.isFinite(n)&&Number.isFinite(r)?1:e.courtName.localeCompare(t.courtName,void 0,{numeric:!0})})}var jee=`URL`;function mb(e,t){if(!Array.isArray(e))return;let n=e.find(e=>e?.name===t&&e?.resourceType===jee);return n?.url??n?.identifier}function hb(e,t){if(Array.isArray(e))return e.find(e=>e?.resourceSubType===`COURT_SVG`&&(!t||e?.name===t))?.identifier}function gb(e){if(typeof e==`number`)return Number.isFinite(e)?e:void 0;if(typeof e==`string`){let t=e.trim();if(!t)return;let n=Number(t);return Number.isFinite(n)?n:void 0}}function _b(...e){for(let t of e){let e=gb(t);if(e!==void 0)return e}}function vb(e){let t=document.createElement(`div`);if(t.className=e.cardClass,t.setAttribute(`aria-busy`,`true`),e.showImage){let n=document.createElement(`div`);n.className=e.imageClass;let r=document.createElement(`div`);r.className=e.blockClass,n.appendChild(r),t.appendChild(n)}if(e.bodyLines>0){let n=document.createElement(`div`);n.className=e.bodyClass;for(let t=0;t<e.bodyLines;t++){let r=document.createElement(`div`);r.className=e.lineClass,r.style.width=t===0?`90%`:`${60+t*10}%`,n.appendChild(r)}t.appendChild(n)}if(e.showFooter){let n=document.createElement(`div`);n.className=e.footerClass;let r=document.createElement(`div`);r.className=e.lineClass,r.style.width=`40%`,n.appendChild(r),t.appendChild(n)}return t}var yb={showImage:!0,cornerBadges:[`status`],body:[`title`,`tier`,`location`,`dateRange`],footer:[`feeBadge`,`playerCount`]};function bb(e){return e?{showImage:e.showImage??yb.showImage,cornerBadges:e.cornerBadges??yb.cornerBadges,body:e.body??yb.body,footer:e.footer??yb.footer}:yb}var xb=()=>`chc-tc-card`,Sb=()=>`chc-tc-card--clickable`,Cb=()=>`chc-tc-card--offline`,wb=()=>`chc-tc-image`,Tb=()=>`chc-tc-image-img`,Eb=()=>`chc-tc-image-svg`,Db=()=>`chc-tc-image-placeholder`,Ob=()=>`chc-tc-corner-badges`,kb=()=>`chc-tc-status-pill`,Ab=()=>`chc-tc-offline-badge`,jb=()=>`chc-tc-body`,Mb=()=>`chc-tc-title`,Nb=()=>`chc-tc-location`,Pb=()=>`chc-tc-date-range`,Fb=()=>`chc-tc-organizer`,Ib=()=>`chc-tc-updated-at`,Lb=()=>`chc-tc-footer`,Rb=()=>`chc-tc-fee-badge`,zb=()=>`chc-tc-player-count`,Bb=()=>`chc-tc-event-count`,Vb=()=>`chc-tc-tier-badge`,Hb=()=>`chc-tc-card chc-tc-skeleton`,Ub=()=>`chc-tc-skeleton-line`,Wb=()=>`chc-tc-skeleton-block`;function Gb(e,t,n){let r=bb(t),i=document.createElement(`div`);return i.className=xb(),i.dataset.tournamentId=e.tournamentId,e.offline&&i.classList.add(Cb()),n?.onClick&&(i.classList.add(Sb()),i.tabIndex=0,i.addEventListener(`click`,t=>{t.stopPropagation(),n.onClick(e)}),i.addEventListener(`keydown`,t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),t.stopPropagation(),n.onClick(e))})),r.showImage!==!1&&i.appendChild(Kb(e,r)),r.body.length&&i.appendChild(Zb(e,r)),r.footer.length&&i.appendChild(ax(e,r)),i}function Kb(e,t){let n=document.createElement(`div`);if(n.className=wb(),e.tournamentImageURL){let t=document.createElement(`img`);t.className=Tb(),t.src=e.tournamentImageURL,t.alt=e.tournamentName||``,t.loading=`lazy`,t.addEventListener(`error`,()=>Jb(n,e)),n.appendChild(t)}else qb(n,e);if(t.cornerBadges.length){let r=Yb(e,t.cornerBadges);r&&n.appendChild(r)}return n}function qb(e,t){let n=eb(t.courtSvgSport,Eb());if(n){e.appendChild(n);return}let r=document.createElement(`div`);r.className=Db(),e.appendChild(r)}function Jb(e,t){e.querySelector(`.${Tb()}`)?.remove(),qb(e,t)}function Yb(e,t){let n=[];for(let r of t){let t=Xb(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=Ob();for(let e of n)r.appendChild(e);return r}function Xb(e,t){if(e===`status`){if(!t.status)return null;let e=document.createElement(`div`);return e.className=kb(),e.dataset.kind=t.status.kind,e.textContent=t.status.label,e}if(e===`offline`){if(!t.offline)return null;let e=document.createElement(`div`);return e.className=Ab(),e.textContent=`Offline`,e}return null}function Zb(e,t){let n=document.createElement(`div`);n.className=jb();for(let r of t.body){let t=Qb(r,e);t&&n.appendChild(t)}return n}function Qb(e,t){switch(e){case`title`:return $b(t);case`tier`:return ex(t);case`location`:return tx(t);case`dateRange`:return nx(t);case`organizerName`:return rx(t);case`updatedAt`:return ix(t);default:return null}}function $b(e){if(!e.tournamentName)return null;let t=document.createElement(`div`);return t.className=Mb(),t.textContent=e.tournamentName,t.title=e.tournamentName,t}function ex(e){let t=e.tournamentTier?.value;if(!t)return null;let n=document.createElement(`div`);return n.className=Vb(),n.textContent=t,n.title=e.tournamentTier?.system?`${e.tournamentTier.system}: ${t}`:t,n}function tx(e){if(!e.location)return null;let t=document.createElement(`div`);return t.className=Nb(),t.textContent=e.location,t.title=e.location,t}function nx(e){if(!e.dateRangeFormatted)return null;let t=document.createElement(`div`);return t.className=Pb(),t.textContent=e.dateRangeFormatted,t}function rx(e){if(!e.organizerName)return null;let t=document.createElement(`div`);return t.className=Fb(),t.textContent=e.organizerName,t}function ix(e){if(!e.updatedAt)return null;let t=document.createElement(`div`);t.className=Ib();let n=new Date(e.updatedAt);return t.textContent=Number.isNaN(n.getTime())?e.updatedAt:n.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`,year:`numeric`}),t}function ax(e,t){let n=document.createElement(`div`);n.className=Lb();for(let r of t.footer){let t=ox(r,e);t&&n.appendChild(t)}return n}function ox(e,t){switch(e){case`feeBadge`:return sx(t);case`playerCount`:return cx(t);case`eventCount`:return lx(t);default:return null}}function sx(e){if(!e.feeFormatted)return null;let t=document.createElement(`div`);return t.className=Rb(),t.textContent=e.feeFormatted,t}function cx(e){if(typeof e.participantCount!=`number`)return null;let t=document.createElement(`div`);return t.className=zb(),t.textContent=`${e.participantCount} ${e.participantCount===1?`player`:`players`}`,t}function lx(e){if(typeof e.eventCount!=`number`)return null;let t=document.createElement(`div`);return t.className=Bb(),t.textContent=`${e.eventCount} ${e.eventCount===1?`event`:`events`}`,t}function ux(e){let t=bb(e);return vb({showImage:t.showImage!==!1,bodyLines:t.body.length,showFooter:t.footer.length>0,cardClass:Hb(),imageClass:wb(),bodyClass:jb(),footerClass:Lb(),blockClass:Wb(),lineClass:Ub()})}var dx=6048e5;function fx(e){if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t}function px(e,t,n){return!t||!n?!1:t.getTime()<=e.getTime()&&e.getTime()<n.getTime()}function mx(e){return`Opens ${e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`})}`}function hx(e,t=new Date){let n=e.tournamentStatus?.toUpperCase();if(n===`CANCELLED`||n===`ABANDONDED`||n===`ABANDONED`)return{kind:`cancelled`,label:`Cancelled`};let r=e.timeZone,i=ob(e.endDate),a=i?cb(i,r):null;if(n===`COMPLETED`||a&&t.getTime()>=a.getTime())return{kind:`completed`,label:`Completed`};let o=ob(e.startDate);if(px(t,o?sb(o,r):null,a))return{kind:`live`,label:`Live`};let s=fx(e.entriesClose);if(s){let e=s.getTime()-t.getTime();if(e>0&&e<=dx)return{kind:`closing-soon`,label:`Closing Soon`}}let c=fx(e.entriesOpen);return c&&c.getTime()>t.getTime()?{kind:`registration-opens`,label:mx(c)}:null}var gx=`–`,_x={JPY:0,KRW:0,VND:0,CLP:0,ISK:0,KWD:3,BHD:3,OMR:3,JOD:3,TND:3};function vx({amount:e,currencyCode:t,unit:n}){return n===`MAJOR`?e:e/10**(_x[t]??2)}function yx(e,t){try{return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t}).format(e)}catch{return`${e.toFixed(2)} ${t}`}}function bx(e){let t=[];for(let n of e)typeof n?.amount!=`number`||Number.isNaN(n.amount)||n.currencyCode&&n.unit&&t.push({amount:n.amount,currencyCode:n.currencyCode,unit:n.unit});return t}function xx(e){if(!e?.length)return null;let t=bx(e);if(!t.length)return null;let n=new Map;for(let e of t){let t=`${e.currencyCode}/${e.unit}`,r=n.get(t);r?r.push(e):n.set(t,[e])}let r=[...n.values()].sort((e,t)=>t.length-e.length),i=r[0],a=i[0].currencyCode,o=i.map(vx).sort((e,t)=>e-t),s=o[0],c=o.at(-1)??s;return r.length>1?`From ${a} ${yx(s,a)}`:s===c?`${a} ${yx(s,a)}`:`${a} ${yx(s,a)} ${gx} ${yx(c,a)}`}var Sx=`tournamentImage`;function Cx(e){let t=e?.registrationProfile?.entryFees;return Array.isArray(t)?t.filter(e=>e&&typeof e.amount==`number`):[]}function wx(e,t){let n=e?.individualParticipantCount;return typeof n==`number`?n||void 0:t.filter(e=>(!e?.participantType||e.participantType===`INDIVIDUAL`)&&(!e?.participantRole||e.participantRole===`COMPETITOR`)).length||void 0}function Tx(e){let t=e?.timeItems;if(Array.isArray(t))return t.find(e=>e?.itemType===`TMX`)?.itemValue?.offline}function Ex(e){let{timeZone:n,error:r}=t.tournamentGovernor.getTournamentTimeZone({tournamentRecord:{localTimeZone:e?.localTimeZone||e?.timeZone,venues:Array.isArray(e?.venues)?e.venues:void 0}});return{tournamentStatus:e?.tournamentStatus,startDate:r?void 0:e?.startDate,endDate:r?void 0:e?.endDate,entriesOpen:e?.registrationProfile?.entriesOpen,entriesClose:e?.registrationProfile?.entriesClose,timeZone:n}}function Dx(e,t){let n=Array.isArray(e?.onlineResources)?e.onlineResources:void 0,r=Array.isArray(e?.venues)?e.venues:[],i=Array.isArray(e?.participants)?e.participants:[],a=Array.isArray(e?.events)?e.events:[],o=t?.statusOverride===void 0?hx(Ex(e),t?.now):t.statusOverride,s=e?.tournamentImageURL??mb(n,Sx),c=e?.courtSvgSport??hb(n);return{tournamentId:e?.tournamentId??``,tournamentName:e?.tournamentName??``,startDate:e?.startDate,endDate:e?.endDate,dateRangeFormatted:fb(e?.startDate,e?.endDate),location:rb(r),tournamentImageURL:s,courtSvgSport:c,participantCount:wx(e,i),eventCount:a.length||void 0,organizerName:e?.tournamentOrganizers?.find?.(Boolean)?.organizerName,status:o,feeFormatted:xx(Cx(e)),updatedAt:e?.updatedAt,offline:Tx(e),tournamentTier:Ox(e)}}function Ox(e){let t=e?.tournamentTier;if(!t||typeof t!=`object`||typeof t.system!=`string`||typeof t.value!=`string`)return;let n={system:t.system,value:t.value};return typeof t.numericRank==`number`&&Number.isFinite(t.numericRank)&&(n.numericRank=t.numericRank),n}var kx={showImage:!0,showMap:!0,cornerBadges:[`primaryBadge`],body:[`title`,`address`,`courtBreakdown`],footer:[`amenityRow`]};function Ax(e){return e?{showImage:e.showImage??kx.showImage,showMap:e.showMap??kx.showMap,cornerBadges:e.cornerBadges??kx.cornerBadges,body:e.body??kx.body,footer:e.footer??kx.footer}:kx}var jx=()=>`chc-vc-card`,Mx=()=>`chc-vc-card--clickable`,Nx=()=>`chc-vc-image`,Px=()=>`chc-vc-image-img`,Fx=()=>`chc-vc-image-svg`,Ix=()=>`chc-vc-image-map`,Lx=()=>`chc-vc-image-placeholder`,Rx=()=>`chc-vc-corner-badges`,zx=()=>`chc-vc-primary-badge`,Bx=()=>`chc-vc-body`,Vx=()=>`chc-vc-title`,Hx=()=>`chc-vc-address`,Ux=()=>`chc-vc-court-breakdown`,Wx=()=>`chc-vc-footer`,Gx=()=>`chc-vc-amenity-row`,Kx=()=>`chc-vc-amenity`,qx=()=>`chc-vc-card chc-vc-skeleton`,Jx=()=>`chc-vc-skeleton-line`,Yx=()=>`chc-vc-skeleton-block`;function Xx(e,t,n){let r=Ax(t),i=document.createElement(`div`);i.className=jx(),i.dataset.venueId=e.venueId;let a=null;r.showImage!==!1&&(a=eS(e,r,()=>f()),i.appendChild(a));let o=r.body.length?cS(e,r):null;o&&i.appendChild(o);let s=r.footer.length?fS(e,r):null;s&&i.appendChild(s);function c(){return!!a?.querySelector(`iframe`)}let l=new Map;function u(e,t){if(l.has(e))return;let n=e=>{e.stopPropagation(),t()},r=e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),e.stopPropagation(),t())};e.classList.add(Mx()),e.tabIndex=0,e.addEventListener(`click`,n),e.addEventListener(`keydown`,r),l.set(e,{click:n,keydown:r})}function d(e){let t=l.get(e);t&&(e.removeEventListener(`click`,t.click),e.removeEventListener(`keydown`,t.keydown),e.classList.remove(Mx()),e.removeAttribute(`tabindex`),l.delete(e))}function f(){if(!n?.onClick)return;let t=()=>n.onClick(e);c()?(d(i),o&&u(o,t),s&&u(s,t)):(o&&d(o),s&&d(s),u(i,t))}return f(),i}function Zx(e){return typeof e.latitude==`number`&&typeof e.longitude==`number`}function Qx(e){let t=e.latitude,n=e.longitude,r=.01,i=`https://www.openstreetmap.org/export/embed.html?bbox=${`${n-r},${t-r},${n+r},${t+r}`}&marker=${t},${n}&layer=mapnik`,a=document.createElement(`iframe`);return a.className=Ix(),a.src=i,a.loading=`lazy`,a.title=`Map of ${e.venueName}`,a}function $x(e,t){let n=eb(t.courtSvgSport,Fx());if(n){e.appendChild(n);return}let r=document.createElement(`div`);r.className=Lx(),e.appendChild(r)}function eS(e,t,n){let r=document.createElement(`div`);if(r.className=Nx(),e.venueImageURL){let i=document.createElement(`img`);i.className=Px(),i.src=e.venueImageURL,i.alt=e.venueName||``,i.loading=`lazy`,i.addEventListener(`error`,()=>{i.remove(),t.showMap!==!1&&Zx(e)?r.appendChild(Qx(e)):$x(r,e),n?.()}),r.appendChild(i)}else t.showMap!==!1&&Zx(e)?r.appendChild(Qx(e)):$x(r,e);if(t.cornerBadges.length){let n=nS(e,t.cornerBadges);n&&r.appendChild(n)}return r}function tS(e,t){if(e===`primaryBadge`){if(!t.isPrimary)return null;let e=document.createElement(`div`);return e.className=zx(),e.textContent=`Primary`,e}return null}function nS(e,t){let n=[];for(let r of t){let t=tS(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=Rx();for(let e of n)r.appendChild(e);return r}function rS(e){if(!e.venueName)return null;let t=document.createElement(`div`);return t.className=Vx(),t.textContent=e.venueName,t.title=e.notes?`${e.venueName}\n${e.notes}`:e.venueName,t}function iS(e){if(!e.addressFormatted)return null;let t=document.createElement(`div`);return t.className=Hx(),t.textContent=e.addressFormatted,t.title=e.addressFormatted,t}function aS(e){if(!e.courtBreakdown)return null;let t=document.createElement(`div`);return t.className=Ux(),t.textContent=e.courtBreakdown,t}function oS(e){if(!e.venueAbbreviation)return null;let t=document.createElement(`div`);return t.className=Ux(),t.textContent=e.venueAbbreviation,t}function sS(e,t){return e===`title`?rS(t):e===`address`?iS(t):e===`courtBreakdown`?aS(t):e===`venueAbbreviation`?oS(t):null}function cS(e,t){let n=document.createElement(`div`);n.className=Bx();for(let r of t.body){let t=sS(r,e);t&&n.appendChild(t)}return n}function lS(e){let t=document.createElement(`span`);return t.className=Kx(),t.textContent=e,t}function uS(e){let t=[];if(typeof e.courtCount==`number`&&t.push(lS(`${e.courtCount} ${e.courtCount===1?`court`:`courts`}`)),e.indoorCount&&t.push(lS(`${e.indoorCount} indoor`)),e.outdoorCount&&t.push(lS(`${e.outdoorCount} outdoor`)),e.floodlitCount&&t.push(lS(`${e.floodlitCount} lit`)),!t.length)return null;let n=document.createElement(`div`);n.className=Gx();for(let e of t)n.appendChild(e);return n}function dS(e,t){return e===`amenityRow`?uS(t):e===`address`?iS(t):e===`courtBreakdown`?aS(t):null}function fS(e,t){let n=document.createElement(`div`);n.className=Wx();for(let r of t.footer){let t=dS(r,e);t&&n.appendChild(t)}return n}function pS(e){let t=Ax(e);return vb({showImage:t.showImage!==!1,bodyLines:t.body.length,showFooter:t.footer.length>0,cardClass:qx(),imageClass:Nx(),bodyClass:Bx(),footerClass:Wx(),blockClass:Yx(),lineClass:Jx()})}var mS=`venueImage`;function hS(e){let t=[];return e.indoorOutdoor&&t.push(e.indoorOutdoor.toLowerCase()),e.surfaceCategory&&t.push(e.surfaceCategory.toLowerCase()),t.length?t.join(` `):`court`}function gS(e){if(!e.length)return;let t=new Map;for(let n of e){let e=hS(n);t.set(e,(t.get(e)??0)+1)}return[...t.entries()].sort((e,t)=>t[1]-e[1]).map(([e,t])=>`${t} ${e}`).join(`, `)}function _S(e,t){let n=0;for(let r of e)t(r)&&(n+=1);return n}function vS(e,t){let n=Array.isArray(e?.courts)?e.courts:[],r=Array.isArray(e?.onlineResources)?e.onlineResources:void 0,i=e?.addresses?.find(e=>e);return{venueId:e?.venueId??``,venueName:e?.venueName??``,venueAbbreviation:e?.venueAbbreviation,addressFormatted:nb(i),latitude:gb(i?.latitude),longitude:gb(i?.longitude),courtCount:n.length||void 0,courtBreakdown:gS(n),indoorCount:_S(n,e=>e.indoorOutdoor===`INDOOR`)||void 0,outdoorCount:_S(n,e=>e.indoorOutdoor===`OUTDOOR`)||void 0,floodlitCount:_S(n,e=>!!e.floodlit)||void 0,isPrimary:!!e?.isPrimary,venueImageURL:e?.venueImageURL??mb(r,mS),courtSvgSport:e?.courtSvgSport??hb(r)??t?.sport,notes:e?.notes}}var yS={showImage:!0,cornerBadges:[`indoorOutdoor`,`floodlit`],body:[`title`,`surface`],footer:[`amenityRow`]};function bS(e){return e?{showImage:e.showImage??yS.showImage,cornerBadges:e.cornerBadges??yS.cornerBadges,body:e.body??yS.body,footer:e.footer??yS.footer}:yS}var xS=()=>`chc-cc-card`,SS=()=>`chc-cc-card--clickable`,CS=()=>`chc-cc-image`,wS=()=>`chc-cc-image-svg`,TS=()=>`chc-cc-image-placeholder`,ES=()=>`chc-cc-corner-badges`,DS=()=>`chc-cc-indoor-badge`,OS=()=>`chc-cc-floodlit-badge`,kS=()=>`chc-cc-body`,AS=()=>`chc-cc-title`,jS=()=>`chc-cc-surface`,MS=()=>`chc-cc-availability`,NS=()=>`chc-cc-abbr`,PS=()=>`chc-cc-footer`,FS=()=>`chc-cc-amenity-row`,IS=()=>`chc-cc-card chc-cc-skeleton`,LS=()=>`chc-cc-skeleton-line`,RS=()=>`chc-cc-skeleton-block`;function zS(e,t,n){let r=bS(t),i=document.createElement(`div`);return i.className=xS(),i.dataset.courtId=e.courtId,n?.onClick&&(i.classList.add(SS()),i.tabIndex=0,i.addEventListener(`click`,t=>{t.stopPropagation(),n.onClick(e)}),i.addEventListener(`keydown`,t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),t.stopPropagation(),n.onClick(e))})),r.showImage!==!1&&i.appendChild(VS(e,r)),r.body.length&&i.appendChild(ZS(e,r)),r.footer.length&&i.appendChild(eC(e,r)),i}function BS(e,t){let n=eb(t.courtSvgSport,wS());if(n){e.appendChild(n);return}let r=document.createElement(`div`);r.className=TS(),e.appendChild(r)}function VS(e,t){let n=document.createElement(`div`);if(n.className=CS(),e.surfaceCategory&&(n.dataset.surface=e.surfaceCategory),BS(n,e),t.cornerBadges.length){let r=GS(e,t.cornerBadges);r&&n.appendChild(r)}return n}function HS(e){if(!e.indoorOutdoor)return null;let t=document.createElement(`div`);return t.className=DS(),t.dataset.kind=e.indoorOutdoor,t.textContent=e.indoorOutdoor===`INDOOR`?`Indoor`:`Outdoor`,t}function US(e){if(!e.floodlit)return null;let t=document.createElement(`div`);return t.className=OS(),t.textContent=`Lit`,t}function WS(e,t){return e===`indoorOutdoor`?HS(t):e===`floodlit`?US(t):null}function GS(e,t){let n=[];for(let r of t){let t=WS(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=ES();for(let e of n)r.appendChild(e);return r}function KS(e){if(!e.courtName)return null;let t=document.createElement(`div`);return t.className=AS(),t.textContent=e.courtName,t.title=e.notes?`${e.courtName}\n${e.notes}`:e.courtName,t}function qS(e){if(!e.surfaceLabel)return null;let t=document.createElement(`div`);return t.className=jS(),t.textContent=e.surfaceLabel,t}function JS(e){if(!e.availabilitySummary)return null;let t=document.createElement(`div`);return t.className=MS(),t.textContent=e.availabilitySummary,t}function YS(e){if(!e.courtAbbreviation)return null;let t=document.createElement(`div`);return t.className=NS(),t.textContent=e.courtAbbreviation,t}function XS(e,t){return e===`title`?KS(t):e===`surface`?qS(t):e===`availability`?JS(t):e===`abbreviation`?YS(t):null}function ZS(e,t){let n=document.createElement(`div`);n.className=kS();for(let r of t.body){let t=XS(r,e);t&&n.appendChild(t)}return n}function QS(e){let t=[];if(e.indoorOutdoor&&t.push(e.indoorOutdoor===`INDOOR`?`indoor`:`outdoor`),e.surfaceCategory&&t.push(e.surfaceCategory.toLowerCase()),e.floodlit&&t.push(`floodlit`),!t.length)return null;let n=document.createElement(`div`);return n.className=FS(),n.textContent=t.join(` · `),n}function $S(e,t){return e===`amenityRow`?QS(t):e===`availability`?JS(t):e===`surface`?qS(t):null}function eC(e,t){let n=document.createElement(`div`);n.className=PS();for(let r of t.footer){let t=$S(r,e);t&&n.appendChild(t)}return n}function tC(e){let t=bS(e);return vb({showImage:t.showImage!==!1,bodyLines:t.body.length,showFooter:t.footer.length>0,cardClass:IS(),imageClass:CS(),bodyClass:kS(),footerClass:PS(),blockClass:RS(),lineClass:LS()})}var nC=`INDOOR`,rC=`OUTDOOR`,iC=new Set([`HARD`,`CLAY`,`GRASS`,`ARTIFICIAL`,`CARPET`]);function aC(e){if(!e)return;let t=String(e).toUpperCase();if(t===nC)return nC;if(t===rC)return rC}function oC(e){let t=e?.surfaceCategory?String(e.surfaceCategory).toUpperCase():void 0;if(t&&iC.has(t))return t;let n=e?.surfaceType?String(e.surfaceType).toUpperCase():void 0;return n&&iC.has(n)?n:t}function sC(e,t){let n=[];return e&&n.push(e.charAt(0)+e.slice(1).toLowerCase()),t&&n.push(t.charAt(0)+t.slice(1).toLowerCase()),n.length?n.join(` · `):void 0}function cC(e,t){let n=aC(e?.indoorOutdoor),r=oC(e);return{courtId:e?.courtId??``,courtName:e?.courtName??``,courtAbbreviation:e?.courtAbbreviation,surfaceLabel:sC(n,r),indoorOutdoor:n,surfaceCategory:r,floodlit:!!e?.floodlit,courtSvgSport:t?.sport,notes:e?.notes}}var lC={grouping:`setting`,sport:`tennis`,showGroupHeadings:!0,showSummary:!0,minCardWidth:`11rem`,emptyMessage:`No courts recorded for this venue`};function uC(e){return e?{grouping:e.grouping??lC.grouping,sport:e.sport??lC.sport,showGroupHeadings:e.showGroupHeadings??lC.showGroupHeadings,showSummary:e.showSummary??lC.showSummary,minCardWidth:e.minCardWidth??lC.minCardWidth,emptyMessage:e.emptyMessage??lC.emptyMessage}:lC}var dC=()=>`chc-cl`,fC=()=>`chc-cl-summary`,pC=()=>`chc-cl-summary-count`,mC=()=>`chc-cl-group`,hC=()=>`chc-cl-group-heading`,gC=()=>`chc-cl-group-count`,_C=()=>`chc-cl-grid`,vC=()=>`chc-cl-empty`,yC=`Unspecified`,bC=`Unspecified surface`;function xC(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}function SC(e){let t=typeof e.indoorOutdoor==`string`?e.indoorOutdoor.trim():``;return t?xC(t):yC}function CC(e){let t=typeof e.surfaceCategory==`string`?e.surfaceCategory.trim():``;return t?xC(t):bC}function wC(e,t){let n=pb(e);if(t===`none`)return[{key:`all`,label:`All courts`,courts:n}];let r=e=>t===`setting`?SC(e):t===`surface`?CC(e):`${SC(e)} · ${CC(e)}`,i=new Map;for(let e of n){let t=r(e),n=i.get(t);n?n.courts.push(e):i.set(t,{key:t,label:t,courts:[e]})}return[...i.values()]}function TC(e){let t=new Map;for(let n of e){let e=SC(n),r=CC(n),i=`${e===yC?``:e.toLowerCase()} ${r===bC?``:r.toLowerCase()}`.trim()||`court`;t.set(i,(t.get(i)??0)+1)}return[...t.entries()].sort((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0])).map(([e,t])=>`${t} ${e}`).join(`, `)}function EC(e,t,n){let r=uC(t),i=e.courts??[],a=document.createElement(`div`);if(a.className=dC(),e.venueId&&(a.dataset.venueId=e.venueId),!i.length){let e=document.createElement(`div`);return e.className=vC(),e.textContent=r.emptyMessage,a.appendChild(e),a}r.showSummary&&a.appendChild(DC(i));for(let e of wC(i,r.grouping))a.appendChild(OC(e,r,n));return a}function DC(e){let t=document.createElement(`div`);t.className=fC();let n=document.createElement(`span`);n.className=pC(),n.textContent=`${e.length} ${e.length===1?`court`:`courts`}`;let r=document.createElement(`span`);return r.textContent=TC(e),t.append(n,r),t}function OC(e,t,n){let r=document.createElement(`div`);if(r.className=mC(),r.dataset.group=e.key,t.showGroupHeadings&&t.grouping!==`none`){let t=document.createElement(`div`);t.className=hC();let n=document.createElement(`span`);n.textContent=e.label;let i=document.createElement(`span`);i.className=gC(),i.textContent=String(e.courts.length),t.append(n,i),r.appendChild(t)}let i=document.createElement(`div`);i.className=_C(),i.style.setProperty(`--chc-cl-min-card`,t.minCardWidth);for(let r of e.courts)i.appendChild(AC(r,t,n));return r.appendChild(i),r}function kC(e){if(e===`setting`||e===`both`)return{cornerBadges:[`floodlit`]}}function AC(e,t,n){let r=cC(e,{sport:t.sport}),i=n?.onCourtClick?{onClick:()=>n.onCourtClick?.(e)}:void 0;return zS(r,kC(t.grouping),i)}var jC={tiles:{map:{tileLayer:`https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png`,attribution:`© <a href="https://openstreetmap.org">OpenStreetMap</a> Contributors`,maxZoom:18},satellite:{tileLayer:`https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}`,attribution:`Tiles © Esri`}},darkTileLayer:{tileLayer:`https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png`,attribution:`© <a href="https://openstreetmap.org">OpenStreetMap</a> Contributors © <a href="https://carto.com/attributions">CARTO</a>`,maxZoom:20},view:`map`,showViewToggle:!0,zoom:16,height:`320px`,courtsLayout:`side`,showHeader:!0,showPopup:!0,scrollWheelZoom:!1,darkTiles:`auto`};function MC(e){return e?{tiles:e.tiles??jC.tiles,darkTileLayer:e.darkTileLayer===void 0?jC.darkTileLayer:e.darkTileLayer,view:e.view??jC.view,showViewToggle:e.showViewToggle??jC.showViewToggle,zoom:e.zoom??jC.zoom,height:e.height??jC.height,courtsLayout:e.courtsLayout??jC.courtsLayout,showHeader:e.showHeader??jC.showHeader,showPopup:e.showPopup??jC.showPopup,scrollWheelZoom:e.scrollWheelZoom??jC.scrollWheelZoom,darkTiles:e.darkTiles??jC.darkTiles}:jC}var NC=()=>`chc-vl`,PC=()=>`chc-vl-header`,FC=()=>`chc-vl-title`,IC=()=>`chc-vl-address`,LC=()=>`chc-vl-notes`,RC=()=>`chc-vl-body`,zC=()=>`chc-vl-body--below`,BC=()=>`chc-vl-mapwrap`,VC=()=>`chc-vl-map`,HC=()=>`chc-vl-map--invertible`,UC=()=>`chc-vl-toggle`,WC=()=>`chc-vl-toggle-btn`,GC=()=>`chc-vl-fallback`,KC=()=>`chc-vl-fallback-icon`,qC=()=>`chc-vl-courts`,JC=()=>`chc-vl-courts-title`,YC=()=>`chc-vl-court-list`,XC=()=>`chc-vl-court`,ZC=()=>`chc-vl-court--clickable`,QC=()=>`chc-vl-court-name`,$C=()=>`chc-vl-court-meta`,ew=()=>`chc-vl-pip`,tw=()=>`chc-vl-marker`,nw=()=>`chc-vl-popup-title`,rw=()=>`chc-vl-popup-address`,iw=`No coordinates for this venue`,aw=`Map unavailable`,ow=new WeakMap;function sw(e){return Number.isFinite(e.latitude)&&Number.isFinite(e.longitude)}function cw(e){return pb(e)}function lw(e){let t=[];return e.indoorOutdoor&&t.push(e.indoorOutdoor.toLowerCase()),e.surfaceCategory&&t.push(e.surfaceCategory.toLowerCase()),t.join(` · `)}function uw(e,t,n){let r=MC(t),i=document.createElement(`div`);i.className=NC(),i.dataset.venueId=e.venueId;let a={disposed:!1,cleanup:()=>{}};ow.set(i,()=>{a.disposed=!0,a.cleanup()}),r.showHeader&&i.appendChild(fw(e));let o=document.createElement(`div`);o.className=r.courtsLayout===`side`?RC():`${RC()} ${zC()}`;let{wrap:s,mapEl:c}=mw(e,r,n);o.appendChild(s);let l=e.courts??[];return r.courtsLayout!==`none`&&l.length&&o.appendChild(_w(l,e,n)),i.appendChild(o),c&&sw(e)&&yw({root:i,mapEl:c,data:e,cfg:r,callbacks:n,lifetime:a}).catch(()=>void 0),i}function dw(e){let t=ow.get(e);t&&(t(),ow.delete(e))}function fw(e){let t=document.createElement(`div`);t.className=PC();let n=document.createElement(`div`);if(n.className=FC(),n.textContent=e.venueName,t.appendChild(n),e.addressFormatted){let n=document.createElement(`div`);n.className=IC(),n.textContent=e.addressFormatted,t.appendChild(n)}if(e.notes){let n=document.createElement(`div`);n.className=LC(),n.textContent=e.notes,t.appendChild(n)}return t}function pw(e){let t=document.createElement(`div`);t.className=GC();let n=document.createElement(`div`);n.className=KC(),n.textContent=`📍`,n.setAttribute(`aria-hidden`,`true`);let r=document.createElement(`div`);return r.textContent=e,t.append(n,r),t}function mw(e,t,n){let r=document.createElement(`div`);if(r.className=BC(),r.style.height=t.height,!sw(e))return r.appendChild(pw(iw)),{wrap:r,mapEl:null};let i=document.createElement(`div`);i.className=VC(),i.appendChild(pw(``)),r.appendChild(i);let a=Object.keys(t.tiles);return t.showViewToggle&&a.length>1&&r.appendChild(hw(a,t,n)),{wrap:r,mapEl:i}}function hw(e,t,n){let r=document.createElement(`div`);r.className=UC(),r.dataset.viewToggle=`true`;let i=[];for(let a of e){let e=document.createElement(`button`);e.type=`button`,e.className=WC(),e.dataset.view=a,e.textContent=a===`satellite`?`Satellite`:`Map`,e.setAttribute(`aria-pressed`,String(a===t.view)),e.addEventListener(`click`,()=>{for(let t of i)t.setAttribute(`aria-pressed`,String(t===e));n?.onViewChange?.(a)}),i.push(e),r.appendChild(e)}return r}function gw(e,t,n){let r=!!n?.onCourtClick,i=document.createElement(r?`button`:`div`);i.className=r?`${XC()} ${ZC()}`:XC(),i.dataset.courtId=e.courtId,r&&(i.type=`button`,i.addEventListener(`click`,()=>n?.onCourtClick?.(e,t)));let a=document.createElement(`span`);a.className=QC(),a.textContent=e.courtName;let o=document.createElement(`span`);o.className=$C();let s=lw(e);if(s&&o.append(document.createTextNode(s)),e.floodlit){let e=document.createElement(`span`);e.className=ew(),e.title=`floodlit`,o.appendChild(e)}return i.append(a,o),i}function _w(e,t,n){let r=document.createElement(`div`);r.className=qC();let i=document.createElement(`div`);i.className=JC(),i.textContent=`Courts (${e.length})`,r.appendChild(i);let a=document.createElement(`div`);a.className=YC();for(let r of cw(e))a.appendChild(gw(r,t,n));return r.appendChild(a),r}function vw(e){let t=e=>e.replace(/[&<>"]/g,e=>({"&":`&`,"<":`<`,">":`>`,'"':`"`})[e]),n=e.addressFormatted?`<div class="${rw()}">${t(e.addressFormatted)}</div>`:``;return`<div class="${nw()}">${t(e.venueName)}</div>${n}`}async function yw({root:e,mapEl:t,data:n,cfg:r,callbacks:i,lifetime:a}){let o;try{o=await import(`leaflet`)}catch(e){if(a.disposed)return;t.replaceChildren(pw(aw)),i?.onMapUnavailable?.(Error(`leaflet is an optional peerDependency of courthive-components and is not installed`,{cause:e}));return}if(a.disposed)return;let s=o.default??o;try{t.replaceChildren();let o=s.map(t,{scrollWheelZoom:r.scrollWheelZoom,attributionControl:!0}),c,l,u=!1;a.cleanup=()=>{u||(u=!0,c?.disconnect(),l?.disconnect(),o.remove())},o.setView([n.latitude,n.longitude],r.zoom);let d=r.view,f=Tw(s,o,r,d);Ew(t,r,d);let p=e=>{d=e,o.removeLayer(f),f=Tw(s,o,r,e),Ew(t,r,e)},m=s.divIcon({className:``,html:`<div class="${tw()}"></div>`,iconSize:[14,14]}),h=s.marker([n.latitude,n.longitude],{icon:m}).addTo(o);r.showPopup&&h.bindPopup(vw(n)),h.on(`click`,()=>i?.onVenueClick?.(n)),e.querySelector(`[data-view-toggle]`)?.addEventListener(`click`,e=>{let t=e.target?.closest(`button[data-view]`);t&&p(t.dataset.view)}),Sw(t),c=new ResizeObserver(()=>o.invalidateSize()),c.observe(t);let g=globalThis.document?.documentElement;if(g&&r.darkTiles!==`never`&&r.darkTileLayer){let e=Cw();l=new MutationObserver(()=>{let t=Cw();t!==e&&(e=t,d!==`satellite`&&p(d))}),l.observe(g,{attributes:!0,attributeFilter:[`data-theme`]})}}catch(e){if(a.cleanup(),a.disposed)return;t.replaceChildren(pw(aw)),i?.onMapUnavailable?.(Error(`Leaflet map failed to initialize`,{cause:e}))}}var bw=!1;function xw(e){return e?e!==`relative`&&e!==`absolute`:!1}function Sw(e){bw||xw(globalThis.getComputedStyle?.(e)?.position)&&(bw=!0,console.warn("[courthive-components] venue-locator: leaflet's stylesheet is missing — the map will render incorrectly. Add `import 'leaflet/dist/leaflet.css';` to the host application."))}function Cw(){return globalThis.document?.documentElement?.dataset.theme===`dark`}function ww(e,t,n){let r=e.tiles[t]??e.tiles.map;return t===`satellite`||e.darkTiles===`never`||!n?r:e.darkTileLayer??r}function Tw(e,t,n,r){let i=ww(n,r,Cw());return e.tileLayer(i.tileLayer,{attribution:i.attribution,maxZoom:i.maxZoom??19}).addTo(t)}function Ew(e,t,n){let r=t.darkTiles===`auto`&&n!==`satellite`&&!t.darkTileLayer;e.classList.toggle(HC(),r)}function Dw(...e){for(let t of e)if(typeof t==`number`&&Number.isFinite(t))return t}function Ow(e,t){let n=typeof e?.indoorOutdoor==`string`?e.indoorOutdoor.toUpperCase():void 0;return{courtId:e?.courtId??`court-${t+1}`,courtName:e?.courtName??`Court ${t+1}`,indoorOutdoor:n===`INDOOR`||n===`OUTDOOR`?n:void 0,surfaceCategory:e?.surfaceCategory,floodlit:e?.floodlit,courtOrder:Dw(e?.courtOrder),latitude:_b(e?.latitude),longitude:_b(e?.longitude)}}function kw(e){let t=Array.isArray(e?.courts)?e.courts:[],n=e?.addresses?.find(e=>e);return{venueId:e?.venueId??``,venueName:e?.venueName??e?.venueAbbreviation??``,venueAbbreviation:e?.venueAbbreviation,addressFormatted:nb(n),latitude:_b(e?.latitude,n?.latitude),longitude:_b(e?.longitude,n?.longitude),courts:t.map(Ow),notes:e?.notes}}var Aw=()=>`chc-team-card`,jw=()=>`chc-team-card--clickable`,Mw=()=>`chc-team-card__title-row`,Nw=()=>`chc-team-card__name`,Pw=()=>`chc-team-card__nickname`,Fw=()=>`chc-team-card__counts`,Iw=` · `;function Lw(e,t){let n=document.createElement(`div`);n.className=Aw(),e.teamId&&(n.dataset.teamId=e.teamId),t?.onClick&&(n.classList.add(jw()),n.tabIndex=0,n.setAttribute(`role`,`button`),n.addEventListener(`click`,n=>{n.stopPropagation(),t.onClick(e)}),n.addEventListener(`keydown`,n=>{(n.key===`Enter`||n.key===` `)&&(n.preventDefault(),n.stopPropagation(),t.onClick(e))})),n.appendChild(Rw(e));let r=(e.countSegments??[]).map(e=>(e??``).trim()).filter(Boolean);return r.length&&n.appendChild(zw(r)),n}function Rw(e){let t=document.createElement(`div`);t.className=Mw();let n=document.createElement(`span`);if(n.className=Nw(),n.textContent=e.teamName,t.appendChild(n),e.nickname){let n=document.createElement(`span`);n.className=Pw(),n.textContent=`"${e.nickname}"`,t.appendChild(n)}return t}function zw(e){let t=document.createElement(`div`);return t.className=Fw(),t.textContent=e.join(Iw),t}var Bw=[`COMPETITIVE`,`ROUTINE`,`DECISIVE`,`WALKOVER`],Vw=new Set([`WALKOVER`,`DOUBLE_WALKOVER`,`DEFAULTED`,`DOUBLE_DEFAULT`]);function Hw(){return{COMPETITIVE:0,ROUTINE:0,DECISIVE:0,WALKOVER:0}}function Uw(e){let t=Hw();if(!Array.isArray(e))return t;for(let n of e){let e=typeof n?.getData==`function`?n.getData():n;if(!e)continue;if(e.matchUpStatus&&Vw.has(e.matchUpStatus)){t.WALKOVER+=1;continue}let r=e.competitiveProfile?.competitiveness;r&&r!==`WALKOVER`&&Bw.includes(r)&&(t[r]+=1)}return t}function Ww(e){return Bw.reduce((t,n)=>t+e[n],0)}var Gw={COMPETITIVE:`Competitive`,ROUTINE:`Routine`,DECISIVE:`Decisive`,WALKOVER:`Walkover / Defaulted`};function Kw(e={}){let{onSegmentClick:t}=e,n=document.createElement(`div`);n.className=`chc-cb`;let r={};for(let e of Bw){let i=document.createElement(`div`);i.className=`chc-cb__seg`,i.dataset.bucket=e,t&&(i.classList.add(`is-clickable`),i.setAttribute(`role`,`button`),i.addEventListener(`click`,()=>t(e))),r[e]=i,n.appendChild(i)}return{element:n,update:e=>{let t=Ww(e);if(n.style.display=t>0?`flex`:`none`,t)for(let t of Bw){let n=r[t],i=e[t];i===0?(n.style.flex=`0 0 0`,n.style.padding=`0`,n.textContent=``,n.removeAttribute(`title`)):(n.style.flex=`${i} 1 0`,n.style.padding=`0 4px`,n.textContent=String(i),n.title=`${Gw[t]}: ${i}`)}},setActive:e=>{n.classList.toggle(`has-active`,!!e);for(let t of Bw)r[t].classList.toggle(`is-active`,t===e)}}}var qw={COMPETITIVE:`Competitive`,ROUTINE:`Routine`,DECISIVE:`Decisive`,WALKOVER:`Walkover / Defaulted`},Jw=`http://www.w3.org/2000/svg`,Yw=96,Xw=Yw/2,Zw=47,Qw=31;function $w(e,t){return{x:Xw+t*Math.cos(e),y:Xw+t*Math.sin(e)}}function eT(e,t){let n=$w(e,Zw),r=$w(t,Zw),i=$w(t,Qw),a=$w(e,Qw),o=+(t-e>Math.PI);return[`M ${n.x} ${n.y}`,`A ${Zw} ${Zw} 0 ${o} 1 ${r.x} ${r.y}`,`L ${i.x} ${i.y}`,`A ${Qw} ${Qw} 0 ${o} 0 ${a.x} ${a.y}`,`Z`].join(` `)}function tT(){let e=$w(-Math.PI/2,Zw),t=$w(Math.PI/2,Zw),n=$w(-Math.PI/2,Qw),r=$w(Math.PI/2,Qw);return[`M ${e.x} ${e.y}`,`A ${Zw} ${Zw} 0 1 1 ${t.x} ${t.y}`,`A ${Zw} ${Zw} 0 1 1 ${e.x} ${e.y}`,`L ${n.x} ${n.y}`,`A ${Qw} ${Qw} 0 1 0 ${r.x} ${r.y}`,`A ${Qw} ${Qw} 0 1 0 ${n.x} ${n.y}`,`Z`].join(` `)}function nT(){let e=document.createElement(`div`);e.className=`chc-cd`;let t=document.createElementNS(Jw,`svg`);t.setAttribute(`viewBox`,`0 0 ${Yw} ${Yw}`),t.setAttribute(`class`,`chc-cd__svg`),t.setAttribute(`role`,`img`);let n={};for(let e of Bw){let r=document.createElementNS(Jw,`path`);r.setAttribute(`class`,`chc-cd__arc`),r.setAttribute(`data-bucket`,e),t.appendChild(r);let i=document.createElementNS(Jw,`title`);r.appendChild(i),n[e]=r}let r=document.createElement(`div`);return r.className=`chc-cd__total`,e.appendChild(t),e.appendChild(r),{element:e,update:i=>{let a=Ww(i);if(e.style.display=a>0?`inline-flex`:`none`,!a)return;let o=Bw.filter(e=>i[e]>0),s=-Math.PI/2;for(let e of Bw){let t=i[e],r=n[e],c=r.querySelector(`title`);if(t===0){r.removeAttribute(`d`),c&&(c.textContent=``);continue}if(o.length===1)r.setAttribute(`d`,tT());else{let e=t/a,n=s+e*Math.PI*2;r.setAttribute(`d`,eT(s,n)),s=n}c&&(c.textContent=`${qw[e]}: ${t}`)}r.textContent=String(a),t.setAttribute(`aria-label`,`Competitiveness across ${a} matches`)}}}function rT(e){let{segments:t,onSegmentClick:n}=e,r=document.createElement(`div`);r.className=`chc-sb`;let i={},a={};for(let{key:e,label:o,color:s}of t){i[e]=o;let t=document.createElement(`div`);t.className=`chc-sb__seg`,t.dataset.key=e,t.style.setProperty(`--seg-bg`,s),n&&(t.classList.add(`is-clickable`),t.setAttribute(`role`,`button`),t.addEventListener(`click`,()=>n(e))),a[e]=t,r.appendChild(t)}return{element:r,update:e=>{let n=t.reduce((t,n)=>t+(e[n.key]||0),0);if(r.style.display=n>0?`flex`:`none`,n)for(let{key:n}of t){let t=a[n],r=e[n]||0;r===0?(t.style.flex=`0 0 0`,t.style.padding=`0`,t.textContent=``,t.removeAttribute(`title`)):(t.style.flex=`${r} 1 0`,t.style.padding=`0 4px`,t.textContent=String(r),t.title=`${i[n]}: ${r}`)}},setActive:e=>{r.classList.toggle(`has-active`,!!e);for(let{key:n}of t)a[n].classList.toggle(`is-active`,n===e)}}}var iT={cornerBadges:[`status`,`publishedBadge`,`embargoBadge`],body:[`title`,`drawTypeLabel`,`matchUpProgress`],footer:[`drawSize`,`entries`,`matchUpFormat`,`flightNumber`,`ratings`],showVisualization:!1};function aT(e){return e?{cornerBadges:e.cornerBadges??iT.cornerBadges,body:e.body??iT.body,footer:e.footer??iT.footer,showVisualization:e.showVisualization??iT.showVisualization}:iT}var oT=()=>`chc-dc-card`,sT=()=>`chc-dc-card--clickable`,cT=()=>`chc-dc-corner-badges`,lT=()=>`chc-dc-status-pill`,uT=()=>`chc-dc-secondary-badge`,dT=()=>`chc-dc-body`,fT=()=>`chc-dc-viz`,pT=()=>`chc-dc-title-row`,mT=()=>`chc-dc-title`,hT=()=>`chc-dc-draw-type`,gT=()=>`chc-dc-meta`,_T=()=>`chc-dc-footer`,vT=()=>`chc-dc-chip`,yT=()=>`chc-dc-progress`,bT=()=>`chc-dc-progress-bar`,xT=()=>`chc-dc-progress-fill`,ST=()=>`chc-dc-card chc-dc-skeleton`,CT=()=>`chc-dc-skeleton-line`;function wT(e,t,n){let r=aT(t),i=document.createElement(`div`);if(i.className=oT(),i.dataset.drawId=e.drawId,e.eventId&&(i.dataset.eventId=e.eventId),n?.onClick&&(i.classList.add(sT()),i.tabIndex=0,i.addEventListener(`click`,t=>{t.stopPropagation(),n.onClick(e)}),i.addEventListener(`keydown`,t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),t.stopPropagation(),n.onClick(e))})),r.showVisualization&&e.visualization){let t=document.createElement(`div`);t.className=fT(),t.appendChild(e.visualization),i.appendChild(t)}return(r.body.length||r.cornerBadges.length)&&i.appendChild(VT(e,r)),r.footer.length&&i.appendChild(HT(e,r)),i}function TT(e){if(!e.status)return null;let t=document.createElement(`div`);return t.className=lT(),t.dataset.kind=e.status.kind,t.textContent=e.status.label,t}function ET(e){if(!e.published)return null;let t=document.createElement(`div`);return t.className=uT(),t.dataset.kind=`published`,t.textContent=`Published`,t}function DT(e){if(!e.embargoActive)return null;let t=document.createElement(`div`);return t.className=uT(),t.dataset.kind=`embargo`,t.textContent=`Embargo`,t}function OT(e,t){return e===`status`?TT(t):e===`publishedBadge`?ET(t):e===`embargoBadge`?DT(t):null}function kT(e,t){let n=[];for(let r of t){let t=OT(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=cT();for(let e of n)r.appendChild(e);return r}function AT(e){if(!e.drawName)return null;let t=document.createElement(`div`);return t.className=mT(),t.textContent=e.drawName,t.title=e.drawName,t}function jT(e){if(!e.drawTypeLabel)return null;let t=document.createElement(`div`);return t.className=hT(),t.textContent=e.drawTypeLabel,t}function MT(e){let t=document.createElement(`span`);return t.className=vT(),t.textContent=e,t}function NT(e){return typeof e.drawSize==`number`?MT(`Size ${e.drawSize}`):null}function PT(e){return typeof e.entryCount==`number`?MT(`${e.entryCount} ${e.entryCount===1?`entry`:`entries`}`):null}function FT(e){return e.matchUpFormat?MT(e.matchUpFormat):null}function IT(e){return typeof e.flightNumber==`number`?MT(`Flight ${e.flightNumber}`):null}function LT(e){let t=[];if(typeof e.utrAvg==`number`&&t.push(`UTR ${e.utrAvg.toFixed(2)}`),typeof e.wtnAvg==`number`&&t.push(`WTN ${e.wtnAvg.toFixed(2)}`),!t.length)return null;let n=document.createElement(`div`);return n.className=gT(),n.textContent=t.join(` · `),n}function RT(e){if(!e.matchUpCounts||e.matchUpCounts.total===0)return null;let{total:t,completed:n}=e.matchUpCounts,r=Math.round(n/t*100),i=document.createElement(`div`);i.className=yT();let a=document.createElement(`div`);a.className=gT(),a.textContent=`${n}/${t} matches · ${r}%`,i.appendChild(a);let o=document.createElement(`div`);o.className=bT();let s=document.createElement(`div`);return s.className=xT(),s.style.right=`${100-r}%`,o.appendChild(s),i.appendChild(o),i}function zT(e,t){return e===`title`?AT(t):e===`drawTypeLabel`?jT(t):e===`drawSize`?NT(t):e===`entries`?PT(t):e===`matchUpFormat`?FT(t):e===`flightNumber`?IT(t):e===`ratings`?LT(t):e===`matchUpProgress`?RT(t):null}function BT(e,t){let n=document.createElement(`div`);n.className=pT();let r=AT(e);r&&n.appendChild(r);let i=kT(e,t);return i&&n.appendChild(i),n}function VT(e,t){let n=document.createElement(`div`);n.className=dT();let r=t.body.includes(`title`),i=t.cornerBadges.length>0;if(i&&!r){let r=kT(e,t.cornerBadges);r&&n.appendChild(r)}for(let r of t.body){if(r===`title`&&i){n.appendChild(BT(e,t.cornerBadges));continue}let a=zT(r,e);a&&n.appendChild(a)}return n}function HT(e,t){let n=document.createElement(`div`);n.className=_T();for(let r of t.footer){let t=zT(r,e);t&&n.appendChild(t)}return n}function UT(){let e=document.createElement(`div`);e.className=ST();let t=document.createElement(`div`);t.className=dT();for(let e of[`70%`,`40%`,`85%`]){let n=document.createElement(`div`);n.className=CT(),n.style.width=e,t.appendChild(n)}return e.appendChild(t),e}var WT={SINGLE_ELIMINATION:`Single Elimination`,DOUBLE_ELIMINATION:`Double Elimination`,ELIMINATION:`Elimination`,ROUND_ROBIN:`Round Robin`,ROUND_ROBIN_WITH_PLAYOFF:`Round Robin + Playoff`,COMPASS:`Compass`,FEED_IN_CHAMPIONSHIP:`Feed-In Championship`,FIRST_MATCH_LOSER_CONSOLATION:`First Match Loser Consolation`,FIRST_ROUND_LOSER_CONSOLATION:`First Round Loser Consolation`,PLAY_OFF:`Play-Off`,CURTIS_CONSOLATION:`Curtis Consolation`,AD_HOC:`Ad-Hoc`,OLYMPIC:`Olympic`,LUCKY_DRAW:`Lucky Draw`,STAGGERED_ENTRY:`Staggered Entry`};function GT(e){if(e)return WT[e]?WT[e]:e.toLowerCase().split(`_`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function KT(e){let{matchUps:n=[]}=t.tournamentEngine.getAllDrawMatchUps({drawDefinition:e}),r=0,i=0,a=0,o=0;for(let e of n)e?.matchUpStatus!==`BYE`&&e?.matchUpStatus!==`DOUBLE_BYE`&&(r+=1,e?.winningSide?i+=1:e?.schedule?.scheduledTime&&(a+=1),e?.matchUpStatus===`IN_PROGRESS`&&(o+=1));return{total:r,completed:i,scheduled:a,inProgress:o}}function qT(e){let t=e?.drawSize;if(typeof t==`number`)return t;let n=(e?.structures?.find(e=>e?.stage===`MAIN`))?.positionAssignments?.length;return typeof n==`number`?n:void 0}function JT(e){if(e.cancelled)return{kind:`cancelled`,label:`Cancelled`};if(!e.generated)return{kind:`ungenerated`,label:`Not generated`};let t=e.matchUpCounts;return!t||t.total===0?{kind:`ready`,label:`Ready`}:t.completed===t.total?{kind:`completed`,label:`Completed`}:t.inProgress>0||t.completed>0?{kind:`in-progress`,label:`In progress`}:{kind:`ready`,label:`Ready`}}function YT(e,t){let n=Array.isArray(e?.structures)&&e.structures.length>0,r=t?.matchUpStats??(t?.lightMode||!n?void 0:KT(e)),i=e?.drawStatus===`CANCELLED`,a=t?.statusOverride===void 0?JT({generated:n,cancelled:i,matchUpCounts:r}):t.statusOverride;return{drawId:e?.drawId??``,drawName:e?.drawName??``,drawType:e?.drawType,drawTypeLabel:GT(e?.drawType),drawSize:qT(e),entryCount:t?.entryCount,matchUpFormat:e?.matchUpFormat,flightNumber:e?.flightNumber,matchUpCounts:r,generated:n,published:t?.published,embargoActive:t?.embargoActive,utrAvg:t?.utrAvg,wtnAvg:t?.wtnAvg,status:a,eventId:t?.eventId}}var XT={showImage:!0,cornerBadges:[`status`,`eventTypeBadge`,`genderBadge`],body:[`title`,`categoryLabel`,`drawSummary`],footer:[`playerCount`,`matchUpProgress`]},ZT=15;function QT(e){return e?{showImage:e.showImage??XT.showImage,cornerBadges:e.cornerBadges??XT.cornerBadges,body:e.body??XT.body,footer:e.footer??XT.footer}:XT}var $T=()=>`chc-ec-card`,eE=()=>`chc-ec-card--clickable`,tE=()=>`chc-ec-image`,nE=()=>`chc-ec-image-img`,rE=()=>`chc-ec-image-svg`,iE=()=>`chc-ec-image-placeholder`,aE=()=>`chc-ec-corner-badges`,oE=()=>`chc-ec-status-pill`,sE=()=>`chc-ec-eventtype-badge`,cE=()=>`chc-ec-gender-badge`,lE=()=>`chc-ec-body`,uE=()=>`chc-ec-title`,dE=()=>`chc-ec-category`,fE=()=>`chc-ec-draw-summary`,pE=()=>`chc-ec-date-range`,mE=()=>`chc-ec-footer`,hE=()=>`chc-ec-player-count`,gE=()=>`chc-ec-progress`,_E=()=>`chc-ec-progress-meta`,vE=()=>`chc-ec-progress-bar`,yE=()=>`chc-ec-progress-fill`,bE=()=>`chc-ec-updated-at`,xE=()=>`chc-ec-card chc-ec-skeleton`,SE=()=>`chc-ec-skeleton-line`,CE=()=>`chc-ec-skeleton-block`;function wE(e,t,n){let r=QT(t),i=document.createElement(`div`);return i.className=$T(),i.dataset.eventId=e.eventId,n?.onClick&&(i.classList.add(eE()),i.tabIndex=0,i.addEventListener(`click`,t=>{t.stopPropagation(),n.onClick(e)}),i.addEventListener(`keydown`,t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),t.stopPropagation(),n.onClick(e))})),r.showImage!==!1&&i.appendChild(EE(e,r)),r.body.length&&i.appendChild(BE(e,r)),r.footer.length&&i.appendChild(VE(e,r)),i}function TE(e,t){let n=eb(t.courtSvgSport,rE());if(n){e.appendChild(n);return}let r=document.createElement(`div`);r.className=iE(),e.appendChild(r)}function EE(e,t){let n=document.createElement(`div`);if(n.className=tE(),e.eventImageURL){let t=document.createElement(`img`);t.className=nE(),t.src=e.eventImageURL,t.alt=e.eventName||``,t.loading=`lazy`,t.addEventListener(`error`,()=>{t.remove(),TE(n,e)}),n.appendChild(t)}else TE(n,e);if(t.cornerBadges.length){let r=jE(e,t.cornerBadges);r&&n.appendChild(r)}return n}function DE(e){if(!e.status)return null;let t=document.createElement(`div`);return t.className=oE(),t.dataset.kind=e.status.kind,t.textContent=e.status.label,t}function OE(e){if(!e.eventType)return null;let t=document.createElement(`div`);return t.className=sE(),t.dataset.kind=e.eventType,t.textContent=e.eventType,t}function kE(e){if(!e.gender)return null;let t=document.createElement(`div`);return t.className=cE(),t.dataset.kind=e.gender,t.textContent=e.gender===`MALE`?`M`:e.gender===`FEMALE`?`W`:`X`,t}function AE(e,t){return e===`status`?DE(t):e===`eventTypeBadge`?OE(t):e===`genderBadge`?kE(t):null}function jE(e,t){let n=[];for(let r of t){let t=AE(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=aE();for(let e of n)r.appendChild(e);return r}function ME(e){if(!e.eventName)return null;let t=document.createElement(`div`);return t.className=uE(),t.textContent=e.eventName,t.title=e.eventName,t}function NE(e){if(!e.categoryLabel)return null;let t=document.createElement(`div`);return t.className=dE(),t.textContent=e.categoryLabel,t}function PE(e){if(!e.drawSummary)return null;let t=document.createElement(`div`);return t.className=fE(),t.textContent=e.drawSummary,t}function FE(e){if(!e.dateRangeFormatted)return null;let t=document.createElement(`div`);return t.className=pE(),t.textContent=e.dateRangeFormatted,t}function IE(e){if(!e.updatedAt)return null;let t=document.createElement(`div`);t.className=bE();let n=new Date(e.updatedAt);return t.textContent=Number.isNaN(n.getTime())?e.updatedAt:n.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`,year:`numeric`}),t}function LE(e){if(typeof e.entryCount!=`number`)return null;let t=document.createElement(`div`);return t.className=hE(),t.textContent=`${e.entryCount} ${e.entryCount===1?`player`:`players`}`,t}function RE(e){if(!e.matchUpCounts||e.matchUpCounts.total===0)return null;let{total:t,completed:n}=e.matchUpCounts,r=Math.round(n/t*100),i=document.createElement(`div`);i.className=gE();let a=document.createElement(`div`);a.className=_E(),a.textContent=`${n}/${t} matches · ${r}%`,i.appendChild(a);let o=document.createElement(`div`);o.className=vE();let s=document.createElement(`div`);return s.className=yE(),s.style.right=`${100-r}%`,o.appendChild(s),i.appendChild(o),i}function zE(e,t){return e===`title`?ME(t):e===`categoryLabel`?NE(t):e===`drawSummary`?PE(t):e===`dateRange`?FE(t):e===`updatedAt`?IE(t):e===`playerCount`?LE(t):e===`matchUpProgress`?RE(t):null}function BE(e,t){let n=document.createElement(`div`);n.className=lE();for(let r of t.body){let t=zE(r,e);t&&n.appendChild(t)}return n}function VE(e,t){let n=document.createElement(`div`);n.className=mE();for(let r of t.footer){let t=zE(r,e);t&&n.appendChild(t)}return n}function HE(e){let t=QT(e);return vb({showImage:t.showImage!==!1,bodyLines:t.body.length,showFooter:t.footer.length>0,cardClass:xE(),imageClass:tE(),bodyClass:lE(),footerClass:mE(),blockClass:CE(),lineClass:SE()})}function UE(e){if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t}function WE(e,t,n){return!t||!n?!1:t.getTime()<=e.getTime()&&e.getTime()<=n.getTime()}function GE(e,t=new Date){if(e.allDrawsCancelled)return{kind:`cancelled`,label:`Cancelled`};let n=e.matchUpCounts;if(n&&n.total>0&&n.completed===n.total)return{kind:`completed`,label:`Completed`};let r=UE(e.startDate),i=UE(e.endDate);if(n&&(n.inProgress>0||WE(t,r,i)&&n.total>0))return{kind:`live`,label:`Live`};let a=e.drawCount??0;return a>0&&(e.hasDraftState||e.hasSeedsOnlyDraw)?{kind:`drawing`,label:`Drawing`}:a===0&&(e.entryCount??0)>0?{kind:`entries-open`,label:`Entries Open`}:r&&t.getTime()<r.getTime()?{kind:`upcoming`,label:`Upcoming`}:null}var KE=`eventImage`,qE=`DRAFT_STATE`;function JE(e){if(!e)return;let t=String(e).toUpperCase();if(t===`SINGLES`||t===`DOUBLES`||t===`TEAM`||t===`HYBRID`)return t}function YE(e){if(!e)return;let t=String(e).toUpperCase();if(t===`M`||t===`MALE`)return`MALE`;if(t===`F`||t===`FEMALE`)return`FEMALE`;if(t===`MIXED`||t===`X`)return`MIXED`}function XE(e){if(!e)return;let t=ZE(e.categoryName);if(t)return t;if(typeof e.ageMin==`number`&&typeof e.ageMax==`number`)return e.ageMin===e.ageMax?`Age ${e.ageMin}`:`Age ${e.ageMin}–${e.ageMax}`;let n=ZE(e.ageCategoryCode);if(n)return n;if(e.ratingMin&&e.ratingMax)return`Rating ${e.ratingMin}–${e.ratingMax}`}function ZE(e){if(typeof e!=`string`)return;let t=e.trim();if(t&&!/^[-—–_]+$/.test(t))return t}function QE(e){if(!e.length)return;let t=e.find(Boolean);if(!t)return;let n=[];return typeof t.drawSize==`number`&&n.push(String(t.drawSize)),t.drawType&&n.push(String(t.drawType)),e.length>1&&n.push(`+${e.length-1}`),n.length?n.join(` `):void 0}function $E(e){let{matchUps:n=[]}=t.tournamentEngine.allEventMatchUps({event:e,inContext:!1})??{},r=0,i=0,a=0,o=0;for(let e of n)e?.matchUpStatus!==`BYE`&&e?.matchUpStatus!==`DOUBLE_BYE`&&(r+=1,e?.winningSide?i+=1:e?.schedule?.scheduledTime&&(a+=1),e?.matchUpStatus===`IN_PROGRESS`&&(o+=1));return{total:r,completed:i,scheduled:a,inProgress:o}}function eD(e){if(e?.draftState!=null)return!0;let t=e?.extensions;return Array.isArray(t)?t.some(e=>e?.name===qE):!1}function tD(e){return e.some(e=>e?.automated?.seedsOnly===!0||eD(e))}function nD(e){return e.length!==0&&e.every(e=>e?.drawStatus===`CANCELLED`)}var rD=new Set([`DIRECT_ACCEPTANCE`,`DA`,`DIRECT_CONFIRMED`,`DC`,`ACCEPTED`,`A`,`ENTERED`,`PE`,`QUALIFIER`,`Q`,`WILDCARD`,`WC`]);function iD(e){if(!e.length)return 0;let t=0;for(let n of e)rD.has(String(n?.entryStatus))&&(t+=1);return t}function aD(e,t){let n=Array.isArray(e?.drawDefinitions)?e.drawDefinitions:[],r=Array.isArray(e?.entries)?e.entries:[],i=Array.isArray(e?.onlineResources)?e.onlineResources:void 0,a=t?.matchUpStats??(t?.lightMode?void 0:$E(e)),o=t?.statusOverride===void 0?GE({allDrawsCancelled:nD(n),drawCount:n.length,entryCount:iD(r),startDate:e?.startDate,endDate:e?.endDate,matchUpCounts:a,hasDraftState:n.some(eD),hasSeedsOnlyDraw:tD(n)},t?.now):t.statusOverride;return{eventId:e?.eventId??``,eventName:e?.eventName??``,eventAbbreviation:e?.eventAbbreviation,categoryLabel:XE(e?.category),eventType:JE(e?.eventType),gender:YE(e?.gender),drawCount:n.length||void 0,drawSummary:QE(n),entryCount:iD(r)||void 0,matchUpCounts:a,startDate:e?.startDate,endDate:e?.endDate,dateRangeFormatted:fb(e?.startDate,e?.endDate),status:o,eventImageURL:e?.eventImageURL??mb(i,KE),courtSvgSport:e?.courtSvgSport??hb(i)??t?.sport,updatedAt:e?.updatedAt}}var oD=()=>`chc-hil-container`,sD=()=>`chc-hil-form`,cD=()=>`chc-hil-header`,lD=()=>`chc-hil-title`,uD=()=>`chc-hil-tabs`,dD=()=>`chc-hil-tab`,fD=()=>`chc-hil-tab--active`,pD=()=>`chc-hil-field`,mD=()=>`chc-hil-label`,hD=()=>`chc-hil-input`,gD=()=>`chc-hil-row`,_D=()=>`chc-hil-submit`,vD=()=>`chc-hil-message`,yD=()=>`chc-hil-message--error`,bD=()=>`chc-hil-message--success`,xD=()=>`chc-hil-switch-mode`;function SD(e){return e.replace(/\/+$/,``)}async function CD(e,t,n,r=fetch){let i=SD(e)+t,a;try{a=await r(i,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(n)})}catch(e){throw{kind:`network`,cause:e}}let o=null;try{o=await a.json()}catch(e){if(a.ok)throw{kind:`parse`,cause:e}}if(!a.ok)throw{kind:`http`,status:a.status,body:o};return o}function wD(e,t,n){return CD(e,`/auth/hiveid/signup`,t,n)}function TD(e,t,n){return CD(e,`/auth/hiveid/verify-existing`,t,n)}function ED(e,t,n){return CD(e,`/auth/hiveid/magic-link`,t,n)}function DD(e,t,n){return CD(e,`/auth/hiveid/magic-link/consume`,t,n)}function OD(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.kind!==`http`||t.status!==409?!1:t.body?.code===`EXISTING_USER`}var kD=[{value:`M`,label:`Male`},{value:`F`,label:`Female`}],AD=`signup`,jD=`login`,MD=`magic-link`,ND=[AD,jD,MD],PD=`hiveid:authenticated`,FD={[AD]:`Sign up`,[jD]:`Log in`,[MD]:`Email link`},ID={[AD]:`Create your CourtHive identity`,[jD]:`Log in to CourtHive`,[MD]:`Email me a sign-in link`};function LD(e){if(!e?.cfsBaseUrl)throw Error(`buildHiveIDLogin: cfsBaseUrl is required`);let t=e.mode??`signup`,n=!1,r=document.createElement(`div`);r.className=oD(),r.dataset.hiveidLogin=`true`;let i=document.createElement(`div`);i.className=cD();let a=document.createElement(`h2`);a.className=lD(),i.appendChild(a);let o=document.createElement(`div`);o.className=uD(),i.appendChild(o);let s={};ND.forEach(e=>{let t=document.createElement(`button`);t.type=`button`,t.className=dD(),t.textContent=FD[e],t.dataset.mode=e,t.onclick=()=>w(e),o.appendChild(t),s[e]=t}),r.appendChild(i);let c=document.createElement(`form`);c.className=sD(),c.noValidate=!0,r.appendChild(c);let l=document.createElement(`div`);l.className=vD(),l.hidden=!0,r.appendChild(l);function u(e,t=`info`){l.textContent=e,l.className=vD(),t===`error`&&l.classList.add(yD()),t===`success`&&l.classList.add(bD()),l.hidden=!e}function d(){u(``)}function f(e,t,n=`text`,r=``){let i=document.createElement(`div`);i.className=pD();let a=document.createElement(`label`);a.className=mD(),a.textContent=t,a.htmlFor=`chc-hil-${e}`;let o=document.createElement(`input`);return o.id=`chc-hil-${e}`,o.name=e,o.type=n,o.value=r,o.className=hD(),o.required=!0,i.appendChild(a),i.appendChild(o),c.appendChild(i),o}function p(){let e=document.createElement(`div`);return e.className=gD(),c.appendChild(e),e}function m(e){let t=document.createElement(`button`);return t.type=`submit`,t.className=_D(),t.textContent=e,c.appendChild(t),t}function h(e,t,n){let r=document.createElement(`div`);r.className=xD();let i=document.createElement(`button`);i.type=`button`,i.textContent=n,i.onclick=()=>w(t),r.append(e+` `,i),c.appendChild(r)}function g(e){if(e.note){let t=document.createElement(`p`);t.className=mD(),t.textContent=e.note,c.appendChild(t)}let t=null;if(e.providers.length>1){let n=document.createElement(`div`);n.className=pD();let r=document.createElement(`label`);r.className=mD(),r.textContent=`Provider`,r.htmlFor=`chc-hil-fedProvider`;let i=document.createElement(`select`);i.id=`chc-hil-fedProvider`,i.className=hD(),e.providers.forEach(e=>{let t=document.createElement(`option`);t.value=e.value,t.textContent=e.label,i.appendChild(t)}),n.append(r,i),c.appendChild(n),t=i}let n=document.createElement(`div`);n.className=pD();let r=document.createElement(`label`);r.className=mD(),r.textContent=e.idLabel??`Player ID`,r.htmlFor=`chc-hil-federationId`;let i=document.createElement(`input`);i.id=`chc-hil-federationId`,i.type=`text`,i.className=hD(),n.append(r,i),c.appendChild(n);let a=e.providers[0]?.value??``;return()=>{let e=i.value.trim();if(!e)return null;let n=t?t.value:a;return n?{provider:n,externalId:e}:null}}function _(e){if(e.note){let t=document.createElement(`p`);t.className=mD(),t.textContent=e.note,c.appendChild(t)}let t=e.required!==!1,n=document.createElement(`div`);n.className=pD();let r=document.createElement(`label`);r.className=mD(),r.textContent=e.dobLabel??`Date of birth`,r.htmlFor=`chc-hil-birthDate`;let i=document.createElement(`input`);i.id=`chc-hil-birthDate`,i.type=`date`,i.required=t,i.className=hD(),n.append(r,i),c.appendChild(n);let a=document.createElement(`div`);a.className=pD();let o=document.createElement(`label`);o.className=mD(),o.textContent=e.sexLabel??`Sex`,o.htmlFor=`chc-hil-sex`;let s=document.createElement(`select`);s.id=`chc-hil-sex`,s.required=t,s.className=hD();let l=document.createElement(`option`);return l.value=``,l.textContent=`Select…`,s.appendChild(l),(e.sexOptions??kD).forEach(e=>{let t=document.createElement(`option`);t.value=e.value,t.textContent=e.label,s.appendChild(t)}),a.append(o,s),c.appendChild(a),()=>BD({birthDate:i.value,sex:s.value})}function v(e){r.dispatchEvent(new CustomEvent(PD,{detail:e,bubbles:!0}))}function y(e,t){return async r=>{if(r.preventDefault(),!n){n=!0,e.disabled=!0,d();try{await t()}finally{n=!1,e.disabled=!1}}}}async function b(t,n,r,i={}){let a=t.value.trim(),o=n.value.trim(),s=r.value.trim();if(!a||!o||!s){u(`Email, first name, and last name are required.`,`error`);return}let{federationIds:c,birthDate:l,sex:d,provider:f,requirePii:p}=i;if(p&&(!l||!d)){u(`Date of birth and sex are required.`,`error`);return}try{let t=await wD(e.cfsBaseUrl,{email:a,firstName:o,lastName:s,federationIds:c,birthDate:l,sex:d,provider:f},e.fetchImpl);if(t.status===`candidate`){u(`We found possible matches — please log in with your existing account.`,`info`),w(`login`);return}v({token:t.token,refreshToken:t.refreshToken,personId:t.personId,cached:t.cached}),u(`Welcome to CourtHive.`,`success`)}catch(e){if(OD(e)){u(`That email already has a CourtHive account — please verify your password.`,`info`),w(`login`);return}u(HD(e)??`Sign-up failed. Please try again.`,`error`)}}async function x(t,n){let r=t.value.trim(),i=n.value;if(!r||!i){u(`Email and password are required.`,`error`);return}try{let t=await TD(e.cfsBaseUrl,{email:r,password:i},e.fetchImpl);v({token:t.token,refreshToken:t.refreshToken,personId:t.personId,cached:t.cached??VD()}),u(`Signed in.`,`success`)}catch(e){u(HD(e)??`Sign-in failed. Please check your password.`,`error`)}}async function S(t){let n=t.value.trim();if(!n){u(`Email is required.`,`error`);return}try{await ED(e.cfsBaseUrl,{email:n},e.fetchImpl),u(`If ${n} is registered, a sign-in link is on its way.`,`success`)}catch(e){u(HD(e)??`Could not send link. Please try again.`,`error`)}}function C(){if(c.replaceChildren(),a.textContent=ID[t],ND.forEach(e=>{s[e].classList.toggle(fD(),e===t)}),t===`signup`){let t=p(),n=document.createElement(`input`);n.id=`chc-hil-firstName`,n.type=`text`,n.placeholder=`First name`,n.required=!0,n.className=hD();let r=document.createElement(`input`);r.id=`chc-hil-lastName`,r.type=`text`,r.placeholder=`Last name`,r.required=!0,r.className=hD();let i=document.createElement(`div`);i.className=pD();let a=document.createElement(`label`);a.textContent=`First name`,a.className=mD(),a.htmlFor=n.id,i.append(a,n);let o=document.createElement(`div`);o.className=pD();let s=document.createElement(`label`);s.textContent=`Last name`,s.className=mD(),s.htmlFor=r.id,o.append(s,r),t.append(i,o);let l=f(`email`,`Email`,`email`,e.defaultEmail??``),u=e.federationIdCapture?g(e.federationIdCapture):()=>null,d=e.dobSexCapture?_(e.dobSexCapture):()=>({}),v=!!e.dobSexCapture&&e.dobSexCapture.required!==!1,x=m(`Create account`);c.onsubmit=y(x,()=>b(l,n,r,{federationIds:zD(u(),e.federationIds),...d(),provider:e.provider,requirePii:v})),h(`Already have an account?`,`login`,`Log in`)}else if(t===`login`){let t=f(`email`,`Email`,`email`,e.defaultEmail??``),n=f(`password`,`Password`,`password`),r=m(`Log in`);c.onsubmit=y(r,()=>x(t,n)),h(`Forgot your password?`,`magic-link`,`Email me a link`)}else{let t=f(`email`,`Email`,`email`,e.defaultEmail??``),n=m(`Send link`);c.onsubmit=y(n,()=>S(t)),h(`Have a password?`,`login`,`Log in instead`)}}function w(e){e!==t&&(t=e,d(),C())}function T(){return t}function E(e){let t=t=>e(t.detail);return r.addEventListener(PD,t),()=>r.removeEventListener(PD,t)}return C(),{root:r,setMode:w,getMode:T,onAuthenticated:E}}async function RD(e,t,n){let r=await DD(e,{code:t},n);return{token:r.token,refreshToken:r.refreshToken,personId:r.personId,cached:r.cached??VD()}}function zD(e,t){let n=[],r=new Set,i=e=>{if(!e?.provider||!e?.externalId)return;let t=`${e.provider}::${e.externalId}`;r.has(t)||(r.add(t),n.push({provider:e.provider,externalId:e.externalId}))};return(t??[]).forEach(i),i(e),n.length?n:void 0}function BD(e){let t={},n=e.birthDate?.trim(),r=e.sex?.trim();return n&&(t.birthDate=n),r&&(t.sex=r),t}function VD(){return{standardFamilyName:null,standardGivenName:null,birthDate:null,sex:null,nationalityCode:null}}function HD(e){if(!e||typeof e!=`object`)return null;if(e.kind===`http`){let t=e.body;if(t?.message&&typeof t.message==`string`)return t.message;if(typeof t?.status==`string`&&t.status===`incomplete`)return`We need a bit more information to identify you.`}return e.kind===`network`?`Could not reach CourtHive. Check your connection.`:null}var UD={name:`courthive-components`,packageManager:`pnpm@12.14.0`,version:`6.12.1`,engines:{node:`>=24`},description:`Components for competitions projects`,files:[`dist`],main:`./dist/courthive-components.umd.js`,module:`./dist/courthive-components.es.js`,types:`./dist/index.d.ts`,exports:{".":{types:`./dist/index.d.ts`,import:`./dist/courthive-components.es.js`,require:`./dist/courthive-components.umd.js`},"./dist/*":`./dist/*`,"./courts":{types:`./dist/features-types/courts/index.d.ts`,import:`./dist/courts.mjs`},"./segmented-bar":{types:`./dist/features-types/segmentedBar/index.d.ts`,import:`./dist/segmented-bar.mjs`},"./features.css":`./dist/features.css`},repository:{type:`git`,url:`git+https://github.com/CourtHive/courthive-components.git`},keywords:[`tournament`,`match`,`score`,`vanillajs`,`bracket`],author:`Charles Allen`,license:`MIT`,bugs:{url:`https://github.com/CourtHive/courthive-components/issues`},homepage:`https://courthive.github.io/courthive-component`,scripts:{commits:`git log $(git describe --tags --abbrev=0)..HEAD --oneline --no-merges --pretty=format:'%s: %h' | sed '/courthive-components/d'`,release:`npm run release:patch`,test:`vitest run --project unit`,"test:stories":`vitest run --project storybook`,"test:watch":`vitest --project unit`,"test:ui":`vitest --ui --project unit`,dev:`vite`,build:`tsc && vite build && vite build --config vite.features.config.mts && node scripts/buildFeatureTypes.mjs`,"check-types":`tsc --noEmit`,prepublishOnly:`pnpm build`,preview:`vite preview`,storybook:`storybook dev -p 6006`,"build-storybook":`storybook build`,"deploy-storybook":`gh-pages -d storybook-static`,"pre-commit":`lint-staged`,predeploy:`pnpm build-storybook`,lint:`eslint src scripts/buildFeatureTypes.mjs scripts/verify/consumerBundle.mjs --cache --max-warnings 0`,"lint:fix":`eslint src --fix --cache`,"lint:report":`eslint src & eslint --cache src -f json > eslint-report.json`,format:`prettier --write src`,"format:check":`prettier --check src`,"release:major":`npm run commits && npm version $(semver $npm_package_version -i major) && git push && git push --tags`,"release:minor":`npm run commits && npm version $(semver $npm_package_version -i minor) && git push && git push --tags`,"release:patch":`npm run commits && npm version $(semver $npm_package_version -i patch) && git push && git push --tags`,"release:beta":`npm run commits && npm version $(semver $npm_package_version -i prerelease --preid beta) && git push && git push --tags`,"patch:beta":`npm run commits && npm version $(semver $npm_package_version -i prerelease --preid beta) && npm publish --tag beta`,"verify:consumer-bundle":`node scripts/verify/consumerBundle.mjs --self-test && node scripts/verify/consumerBundle.mjs`},"lint-staged":{"*.{js,ts}":`eslint --cache --fix`,"*":`prettier --ignore-unknown --write`},devDependencies:{"@chromatic-com/storybook":`^5.0.0`,"@commitlint/cli":`21.2.3`,"@commitlint/config-conventional":`21.2.3`,"@eslint/js":`^10.0.1`,"@fortawesome/fontawesome-free":`^7.2.0`,"@storybook/addon-docs":`^10.2.17`,"@storybook/addon-vitest":`^10.6.1`,"@storybook/html-vite":`^10.2.17`,"@types/d3":`^7.4.3`,"@types/leaflet":`^1.9.12`,"@types/vanillajs-datepicker":`^1.3.5`,"@typescript-eslint/eslint-plugin":`8.71.2`,"@typescript-eslint/parser":`8.71.2`,"@vitest/browser":`^5.0.3`,"@vitest/browser-playwright":`^5.0.3`,"@vitest/coverage-v8":`^5.0.0`,"@vitest/ui":`^5.0.0`,eslint:`10.13.0`,"eslint-plugin-sonarjs":`4.2.2`,"eslint-plugin-storybook":`^10.2.17`,"gh-pages":`6.3.0`,globals:`^17.3.0`,"happy-dom":`^21.0.0`,husky:`9.1.7`,leaflet:`1.9.4`,"lint-staged":`17.6.0`,playwright:`^1.57.0`,prettier:`^3.8.1`,semver:`7.8.5`,storybook:`^10.2.17`,"tabulator-tables":`6.6.1`,"tods-competition-factory":`7.20.0`,typescript:`^6.0.2`,vite:`8.3.4`,"vite-plugin-dts":`^5.0.0`,vitest:`^5.0.0`},dependencies:{"@tiptap/core":`^3.22.2`,"@tiptap/extension-color":`^3.22.2`,"@tiptap/extension-highlight":`^3.22.2`,"@tiptap/extension-text-align":`^3.22.2`,"@tiptap/extension-text-style":`^3.22.2`,"@tiptap/extension-youtube":`^3.22.2`,"@tiptap/starter-kit":`^3.22.2`,awesomplete:`1.1.7`,"class-variance-authority":`0.7.1`,classnames:`2.5.1`,d3:`^7.9.0`,dayjs:`1.11.23`,"focus-trap":`^8.0.0`,"timepicker-ui":`^4.1.2`,"tippy.js":`6.3.7`,"vanillajs-datepicker":`1.3.4`},peerDependencies:{"tods-competition-factory":`^7.6.0`,leaflet:`^1.9.4`},peerDependenciesMeta:{leaflet:{optional:!0}}};function WD(){return UD.version}var GD={SET3_S6_TB7:`SET3-S:6/TB7`,SET3_S6_TB7_F_TB10:`SET3-S:6/TB7-F:TB10`,SET3_S6_TB10:`SET3-S:6/TB10`,SET3_S6_F_TB10:`SET3-S:6-F:TB10`,SET3_S6_TB7_NOAD:`SET3-S:6/TB7NOAD`,SET3_S8_TB7:`SET3-S:8/TB7`,SET3_S8_TB7_AT7:`SET3-S:8/TB7@7`,SET3_S4_TB7:`SET3-S:4/TB7`,SET3_S4_TB7_F_TB10:`SET3-S:4/TB7-F:TB10`,SET3_S4_TB5_AT3_F_TB10:`SET3-S:4/TB5@3-F:TB10`,SET5_S6_TB7:`SET5-S:6/TB7`,SET5_S6_TB7_F_TB10:`SET5-S:6/TB7-F:TB10`,SET1_S6_TB7:`SET1-S:6/TB7`,SET1_S6_TB10:`SET1-S:6/TB10`,SET1_S6_TB7_AT5:`SET1-S:6/TB7@5`,SET1_S8_TB7:`SET1-S:8/TB7`,SET1_S4_TB7:`SET1-S:4/TB7`,SET1_S5_TB9_AT4:`SET1-S:5/TB9@4`,SET1_S_TB7:`SET1-S:T7`,SET1_S_TB10:`SET1-S:TB10`,SET1_S_TB21:`SET1-S:T21`,SET1_S8:`SET1-S:8`,SET1_S10:`SET1-S:10`,FAST4:`SET5-S:4/NOAD`,SET3X_T10A_TB1:`SET3XA-S:T10-F:TB1`,SET3X_T10A_TB1_NOAD:`SET3XA-S:T10-F:TB1NOAD`,SET4X_T10A_TB1:`SET4XA-S:T10-F:TB1`};function KD(e,t,n){if(!e)return{elements:{}};let r={};for(let i of t||[]){if(!i?.label||i.hide)continue;let t=document.createElement(`button`);i.id&&(r[i.id]=t,t.id=i.id),t.style.marginRight=`.5em`,t.className=`button font-medium`,i.intent&&t.classList.add(i.intent),t.innerHTML=i.label,i.disabled&&(t.disabled=!0),t.onclick=e=>{e.stopPropagation(),!e.target.disabled&&K(i.onClick)&&i.onClick(),n&&K(n)&&n()},e.appendChild(t)}return{elements:r}}var qD=(e,t)=>n=>n?.trim().length>=e&&(!t||n?.trim().length<=t);function JD(e){return t.tools.isConvertableInteger(e)&&parseInt(e.toString())>=0}var YD=(e,t)=>n=>JD(n)&&Number(n)>=e&&Number(n)<=t,XD=e=>/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?\d)(?=.*?[#?!@$%^&*-]).{8,12}$/.test(e);function ZD(e){return t.tools.dateTime.dateValidation.test(e)}var QD=(e,t)=>n=>{let r=(n||``).trim().split(` `).length;return r>=e&&(!t||r<=t)},$D=/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i,eO=e=>$D.exec(e),tO=_({dateValidator:()=>ZD,emailValidator:()=>eO,nameValidator:()=>qD,numericRange:()=>YD,numericValidator:()=>JD,passwordValidator:()=>XD,wordValidator:()=>QD});function nO(e){let n=t.tools.makeDeepCopy(e);return{getTournamentRecord:()=>n,mutate:(e,r,i)=>{let a=n.events?.find(e=>e.drawDefinitions?.some(e=>e.drawId===r.drawId)),o=a?.drawDefinitions?.find(e=>e.drawId===r.drawId),s={...r,tournamentRecord:n,drawDefinition:o,event:a},c=t.globalState.getProvider(),l=()=>{throw Error(`Standalone assignment cannot replace tournament state`)},u=()=>{},d={[n.tournamentId]:n};t.globalState.setStateProvider({...c,addNotice:u,callListener:u,deleteNotice:u,deleteNotices:u,disableNotifications:u,enableNotifications:u,setSubscriptions:l,cycleMutationStatus:()=>!1,getTopics:()=>({topics:[]}),getNotices:()=>[],getPayloads:()=>[],getNoticeBuffer:()=>[],setNoticeBuffer:u,getTournamentId:()=>n.tournamentId,getTournamentRecord:e=>d[e],getTournamentRecords:()=>d,setTournamentId:l,setTournamentRecord:l,setTournamentRecords:l,removeTournamentRecord:l});let f;try{f=e===`removeDrawPositionAssignment`?t.drawsGovernor.removeDrawPositionAssignment(s):t.drawsGovernor.assignDrawPosition({...s,bye:e===`assignDrawPositionBye`})}finally{t.globalState.setStateProvider(c)}i(f)}}}var rO=class{constructor({tournamentRecord:e,adapter:t,drawId:n,structureId:r,eventId:i}){if(!t&&!e)throw Error(`DrawStateManager requires a record or adapter`);this.adapter=t??nO(e),this.drawId=n,this.structureId=r,this.eventId=i}setRenderCallback(e){this.renderCallback=e}context(){let e=this.adapter.getTournamentRecord(),t=e?.events?.find(e=>this.eventId?e.eventId===this.eventId:e.drawDefinitions?.some(e=>e.drawId===this.drawId));return{tournamentRecord:e,drawDefinition:t?.drawDefinitions?.find(e=>e.drawId===this.drawId),event:t}}getAllParticipants(){let{tournamentRecord:e,drawDefinition:n,event:r}=this.context();if(!e||!r||!n)return[];let{flightProfile:i}=t.queryGovernor.getFlightProfile({event:r}),a=(i?.flights?.find(e=>e.drawId===this.drawId)?.drawEntries??n.entries??[]).map(e=>e.participantId).filter(e=>!!e);if(!a.length)return[];let{participants:o=[]}=t.queryGovernor.getParticipants({tournamentRecord:e,participantFilters:{participantIds:a}});return o}getAvailableParticipants(){let{drawDefinition:e}=this.context();if(!e)return[];let{assignedParticipantIds:n=[]}=t.queryGovernor.getAssignedParticipantIds({drawDefinition:e}),r=new Set(n);return this.getAllParticipants().filter(e=>!r.has(e.participantId))}request(e,t,n=!0){let r,i=!1;return this.adapter.mutate(e,{...t,drawId:this.drawId,structureId:this.structureId},a=>{i||(i=!0,r=a,a.success&&!a.error&&(e!==`removeDrawPositionAssignment`&&(this.focusDrawPosition=t.drawPosition+1),n&&this.renderCallback?.()))}),r??{pending:!0}}assignParticipant(e){return this.request(`assignDrawPosition`,e)}assignBye(e){return this.request(`assignDrawPositionBye`,e)}assignQualifier(e){return this.request(`assignDrawPosition`,{...e,qualifier:!0})}removeAssignment(e){let t=this.getMatchUps().some(t=>t.sides?.some(t=>t.drawPosition===e.drawPosition&&t.bye));return this.request(`removeDrawPositionAssignment`,e,t)}getAndClearFocusDrawPosition(){let e=this.focusDrawPosition;return this.focusDrawPosition=void 0,e}getMatchUps(){let{tournamentRecord:e,event:n}=this.context();if(!e||!n)return[];let{eventData:r}=t.queryGovernor.getEventData({tournamentRecord:e,event:n}),i=(r?.drawsData?.find(e=>e.drawId===this.drawId))?.structures?.find(e=>e.structureId===this.structureId);return i?.roundMatchUps?Object.values(i.roundMatchUps).flat():[]}getState(){let e=this.adapter.getTournamentRecord();return e&&t.tools.makeDeepCopy(e)}getContext(){return{drawId:this.drawId,structureId:this.structureId}}},iO=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="14" height="14" fill="currentColor"><path d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"/></svg>`,aO=new WeakMap;function oO(e,t){let n=document.createElement(`div`);n.style.cssText=`position: relative; flex: 1; display: flex; min-width: 0;`,e.style.paddingRight=`28px`,n.appendChild(e);let r=document.createElement(`button`);r.type=`button`,r.setAttribute(`aria-label`,`Clear search`),r.style.cssText=[`position: absolute`,`right: 8px`,`top: 50%`,`transform: translateY(-50%)`,`background: transparent`,`border: 0`,`padding: 2px`,`cursor: pointer`,`display: none`,`align-items: center`,`justify-content: center`,`line-height: 0`,`opacity: 0.55`,`color: currentColor`].join(`; `),r.innerHTML=iO,r.addEventListener(`mouseenter`,()=>r.style.opacity=`0.9`),r.addEventListener(`mouseleave`,()=>r.style.opacity=`0.55`),r.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),t(),i()});let i=()=>{r.style.display=e.value?`inline-flex`:`none`};return e.addEventListener(`keyup`,n=>{n.key===`Escape`&&e.value&&(t(),i())}),e.addEventListener(`input`,i),aO.set(n,i),n.appendChild(r),n}function sO(e){aO.get(e)?.()}function cO(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function lO(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function uO(e){let t,n,r;e.length===2?(t=e===cO||e===lO?e:dO,n=e,r=e):(t=cO,n=(t,n)=>cO(e(t),n),r=(t,n)=>e(t)-n);function i(e,r,i=0,a=e.length){if(i<a){if(t(r,r)!==0)return a;do{let t=i+a>>>1;n(e[t],r)<0?i=t+1:a=t}while(i<a)}return i}function a(e,r,i=0,a=e.length){if(i<a){if(t(r,r)!==0)return a;do{let t=i+a>>>1;n(e[t],r)<=0?i=t+1:a=t}while(i<a)}return i}function o(e,t,n=0,a=e.length){let o=i(e,t,n,a-1);return o>n&&r(e[o-1],t)>-r(e[o],t)?o-1:o}return{left:i,center:o,right:a}}function dO(){return 0}function fO(e){return e===null?NaN:+e}var pO=uO(cO),mO=pO.right;pO.left,uO(fO).center;function hO(e,t){let n,r;if(t===void 0)for(let t of e)t!=null&&(n===void 0?t>=t&&(n=r=t):(n>t&&(n=t),r<t&&(r=t)));else{let i=-1;for(let a of e)(a=t(a,++i,e))!=null&&(n===void 0?a>=a&&(n=r=a):(n>a&&(n=a),r<a&&(r=a)))}return[n,r]}var gO=class extends Map{constructor(e,t=bO){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),e!=null)for(let[t,n]of e)this.set(t,n)}get(e){return super.get(_O(this,e))}has(e){return super.has(_O(this,e))}set(e,t){return super.set(vO(this,e),t)}delete(e){return super.delete(yO(this,e))}};function _O({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):n}function vO({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function yO({_intern:e,_key:t},n){let r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function bO(e){return typeof e==`object`&&e?e.valueOf():e}var xO=Math.sqrt(50),SO=Math.sqrt(10),CO=Math.sqrt(2);function wO(e,t,n){let r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/10**i,o=a>=xO?10:a>=SO?5:a>=CO?2:1,s,c,l;return i<0?(l=10**-i/o,s=Math.round(e*l),c=Math.round(t*l),s/l<e&&++s,c/l>t&&--c,l=-l):(l=10**i*o,s=Math.round(e/l),c=Math.round(t/l),s*l<e&&++s,c*l>t&&--c),c<s&&.5<=n&&n<2?wO(e,t,n*2):[s,c,l]}function TO(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];let r=t<e,[i,a,o]=r?wO(t,e,n):wO(e,t,n);if(!(a>=i))return[];let s=a-i+1,c=Array(s);if(r){if(o<0)for(let e=0;e<s;++e)c[e]=(a-e)/-o;else for(let e=0;e<s;++e)c[e]=(a-e)*o}else if(o<0)for(let e=0;e<s;++e)c[e]=(i+e)/-o;else for(let e=0;e<s;++e)c[e]=(i+e)*o;return c}function EO(e,t,n){return t=+t,e=+e,n=+n,wO(e,t,n)[2]}function DO(e,t,n){t=+t,e=+e,n=+n;let r=t<e,i=r?EO(t,e,n):EO(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}function OO(e,t){let n;if(t===void 0)for(let t of e)t!=null&&(n<t||n===void 0&&t>=t)&&(n=t);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n<i||n===void 0&&i>=i)&&(n=i)}return n}function kO(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=Array(i);++r<i;)a[r]=e+r*n;return a}function AO(e){return e}var jO=1,MO=2,NO=3,PO=4,FO=1e-6;function IO(e){return`translate(`+e+`,0)`}function LO(e){return`translate(0,`+e+`)`}function RO(e){return t=>+e(t)}function zO(e,t){return t=Math.max(0,e.bandwidth()-t*2)/2,e.round()&&(t=Math.round(t)),n=>+e(n)+t}function BO(){return!this.__axis}function VO(e,t){var n=[],r=null,i=null,a=6,o=6,s=3,c=typeof window<`u`&&window.devicePixelRatio>1?0:.5,l=e===jO||e===PO?-1:1,u=e===PO||e===MO?`x`:`y`,d=e===jO||e===NO?IO:LO;function f(f){var p=r??(t.ticks?t.ticks.apply(t,n):t.domain()),m=i??(t.tickFormat?t.tickFormat.apply(t,n):AO),h=Math.max(a,0)+s,g=t.range(),_=+g[0]+c,v=+g[g.length-1]+c,y=(t.bandwidth?zO:RO)(t.copy(),c),b=f.selection?f.selection():f,x=b.selectAll(`.domain`).data([null]),S=b.selectAll(`.tick`).data(p,t).order(),C=S.exit(),w=S.enter().append(`g`).attr(`class`,`tick`),T=S.select(`line`),E=S.select(`text`);x=x.merge(x.enter().insert(`path`,`.tick`).attr(`class`,`domain`).attr(`stroke`,`currentColor`)),S=S.merge(w),T=T.merge(w.append(`line`).attr(`stroke`,`currentColor`).attr(u+`2`,l*a)),E=E.merge(w.append(`text`).attr(`fill`,`currentColor`).attr(u,l*h).attr(`dy`,e===jO?`0em`:e===NO?`0.71em`:`0.32em`)),f!==b&&(x=x.transition(f),S=S.transition(f),T=T.transition(f),E=E.transition(f),C=C.transition(f).attr(`opacity`,FO).attr(`transform`,function(e){return isFinite(e=y(e))?d(e+c):this.getAttribute(`transform`)}),w.attr(`opacity`,FO).attr(`transform`,function(e){var t=this.parentNode.__axis;return d((t&&isFinite(t=t(e))?t:y(e))+c)})),C.remove(),x.attr(`d`,e===PO||e===MO?o?`M`+l*o+`,`+_+`H`+c+`V`+v+`H`+l*o:`M`+c+`,`+_+`V`+v:o?`M`+_+`,`+l*o+`V`+c+`H`+v+`V`+l*o:`M`+_+`,`+c+`H`+v),S.attr(`opacity`,1).attr(`transform`,function(e){return d(y(e)+c)}),T.attr(u+`2`,l*a),E.attr(u,l*h).text(m),b.filter(BO).attr(`fill`,`none`).attr(`font-size`,10).attr(`font-family`,`sans-serif`).attr(`text-anchor`,e===MO?`start`:e===PO?`end`:`middle`),b.each(function(){this.__axis=y})}return f.scale=function(e){return arguments.length?(t=e,f):t},f.ticks=function(){return n=Array.from(arguments),f},f.tickArguments=function(e){return arguments.length?(n=e==null?[]:Array.from(e),f):n.slice()},f.tickValues=function(e){return arguments.length?(r=e==null?null:Array.from(e),f):r&&r.slice()},f.tickFormat=function(e){return arguments.length?(i=e,f):i},f.tickSize=function(e){return arguments.length?(a=o=+e,f):a},f.tickSizeInner=function(e){return arguments.length?(a=+e,f):a},f.tickSizeOuter=function(e){return arguments.length?(o=+e,f):o},f.tickPadding=function(e){return arguments.length?(s=+e,f):s},f.offset=function(e){return arguments.length?(c=+e,f):c},f}function HO(e){return VO(NO,e)}function UO(e){return VO(PO,e)}var WO={value:()=>{}};function GO(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+``)||r in n||/[\s.]/.test(r))throw Error(`illegal type: `+r);n[r]=[]}return new KO(n)}function KO(e){this._=e}function qO(e,t){return e.trim().split(/^|\s+/).map(function(e){var n=``,r=e.indexOf(`.`);if(r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}KO.prototype=GO.prototype={constructor:KO,on:function(e,t){var n=this._,r=qO(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=JO(n[i],e.name)))return i;return}if(t!=null&&typeof t!=`function`)throw Error(`invalid callback: `+t);for(;++a<o;)if(i=(e=r[a]).type)n[i]=YO(n[i],e.name,t);else if(t==null)for(i in n)n[i]=YO(n[i],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new KO(e)},call:function(e,t){if((i=arguments.length-2)>0)for(var n=Array(i),r=0,i,a;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(a=this._[e],r=0,i=a.length;r<i;++r)a[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(var r=this._[e],i=0,a=r.length;i<a;++i)r[i].value.apply(t,n)}};function JO(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function YO(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=WO,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var XO={svg:`http://www.w3.org/2000/svg`,xhtml:`http://www.w3.org/1999/xhtml`,xlink:`http://www.w3.org/1999/xlink`,xml:`http://www.w3.org/XML/1998/namespace`,xmlns:`http://www.w3.org/2000/xmlns/`};function ZO(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),XO.hasOwnProperty(t)?{space:XO[t],local:e}:e}function QO(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===`http://www.w3.org/1999/xhtml`&&t.documentElement.namespaceURI===`http://www.w3.org/1999/xhtml`?t.createElement(e):t.createElementNS(n,e)}}function $O(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function ek(e){var t=ZO(e);return(t.local?$O:QO)(t)}function tk(){}function nk(e){return e==null?tk:function(){return this.querySelector(e)}}function rk(e){typeof e!=`function`&&(e=nk(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=Array(o),c,l,u=0;u<o;++u)(c=a[u])&&(l=e.call(c,c.__data__,u,a))&&(`__data__`in c&&(l.__data__=c.__data__),s[u]=l);return new GA(r,this._parents)}function ik(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function ak(){return[]}function ok(e){return e==null?ak:function(){return this.querySelectorAll(e)}}function sk(e){return function(){return ik(e.apply(this,arguments))}}function ck(e){e=typeof e==`function`?sk(e):ok(e);for(var t=this._groups,n=t.length,r=[],i=[],a=0;a<n;++a)for(var o=t[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&(r.push(e.call(c,c.__data__,l,o)),i.push(c));return new GA(r,i)}function lk(e){return function(){return this.matches(e)}}function uk(e){return function(t){return t.matches(e)}}var dk=Array.prototype.find;function fk(e){return function(){return dk.call(this.children,e)}}function pk(){return this.firstElementChild}function mk(e){return this.select(e==null?pk:fk(typeof e==`function`?e:uk(e)))}var hk=Array.prototype.filter;function gk(){return Array.from(this.children)}function _k(e){return function(){return hk.call(this.children,e)}}function vk(e){return this.selectAll(e==null?gk:_k(typeof e==`function`?e:uk(e)))}function yk(e){typeof e!=`function`&&(e=lk(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new GA(r,this._parents)}function bk(e){return Array(e.length)}function xk(){return new GA(this._enter||this._groups.map(bk),this._parents)}function Sk(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Sk.prototype={constructor:Sk,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function Ck(e){return function(){return e}}function wk(e,t,n,r,i,a){for(var o=0,s,c=t.length,l=a.length;o<l;++o)(s=t[o])?(s.__data__=a[o],r[o]=s):n[o]=new Sk(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function Tk(e,t,n,r,i,a,o){var s,c,l=new Map,u=t.length,d=a.length,f=Array(u),p;for(s=0;s<u;++s)(c=t[s])&&(f[s]=p=o.call(c,c.__data__,s,t)+``,l.has(p)?i[s]=c:l.set(p,c));for(s=0;s<d;++s)p=o.call(e,a[s],s,a)+``,(c=l.get(p))?(r[s]=c,c.__data__=a[s],l.delete(p)):n[s]=new Sk(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function Ek(e){return e.__data__}function Dk(e,t){if(!arguments.length)return Array.from(this,Ek);var n=t?Tk:wk,r=this._parents,i=this._groups;typeof e!=`function`&&(e=Ck(e));for(var a=i.length,o=Array(a),s=Array(a),c=Array(a),l=0;l<a;++l){var u=r[l],d=i[l],f=d.length,p=Ok(e.call(u,u&&u.__data__,l,r)),m=p.length,h=s[l]=Array(m),g=o[l]=Array(m);n(u,d,h,g,c[l]=Array(f),p,t);for(var _=0,v=0,y,b;_<m;++_)if(y=h[_]){for(_>=v&&(v=_+1);!(b=g[v])&&++v<m;);y._next=b||null}}return o=new GA(o,r),o._enter=s,o._exit=c,o}function Ok(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function kk(){return new GA(this._exit||this._groups.map(bk),this._parents)}function Ak(e,t,n){var r=this.enter(),i=this,a=this.exit();return typeof e==`function`?(r=e(r),r&&=r.selection()):r=r.append(e+``),t!=null&&(i=t(i),i&&=i.selection()),n==null?a.remove():n(a),r&&i?r.merge(i).order():i}function jk(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,i=n.length,a=r.length,o=Math.min(i,a),s=Array(i),c=0;c<o;++c)for(var l=n[c],u=r[c],d=l.length,f=s[c]=Array(d),p,m=0;m<d;++m)(p=l[m]||u[m])&&(f[m]=p);for(;c<i;++c)s[c]=n[c];return new GA(s,this._parents)}function Mk(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],i=r.length-1,a=r[i],o;--i>=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function Nk(e){e||=Pk;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;a<r;++a){for(var o=n[a],s=o.length,c=i[a]=Array(s),l,u=0;u<s;++u)(l=o[u])&&(c[u]=l);c.sort(t)}return new GA(i,this._parents).order()}function Pk(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function Fk(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Ik(){return Array.from(this)}function Lk(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function Rk(){let e=0;for(let t of this)++e;return e}function zk(){return!this.node()}function Bk(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var i=t[n],a=0,o=i.length,s;a<o;++a)(s=i[a])&&e.call(s,s.__data__,a,i);return this}function Vk(e){return function(){this.removeAttribute(e)}}function Hk(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Uk(e,t){return function(){this.setAttribute(e,t)}}function Wk(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Gk(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function Kk(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function qk(e,t){var n=ZO(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?Hk:Vk:typeof t==`function`?n.local?Kk:Gk:n.local?Wk:Uk)(n,t))}function Jk(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Yk(e){return function(){this.style.removeProperty(e)}}function Xk(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Zk(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function Qk(e,t,n){return arguments.length>1?this.each((t==null?Yk:typeof t==`function`?Zk:Xk)(e,t,n??``)):$k(this.node(),e)}function $k(e,t){return e.style.getPropertyValue(t)||Jk(e).getComputedStyle(e,null).getPropertyValue(t)}function eA(e){return function(){delete this[e]}}function tA(e,t){return function(){this[e]=t}}function nA(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function rA(e,t){return arguments.length>1?this.each((t==null?eA:typeof t==`function`?nA:tA)(e,t)):this.node()[e]}function iA(e){return e.trim().split(/^|\s+/)}function aA(e){return e.classList||new oA(e)}function oA(e){this._node=e,this._names=iA(e.getAttribute(`class`)||``)}oA.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute(`class`,this._names.join(` `)))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute(`class`,this._names.join(` `)))},contains:function(e){return this._names.indexOf(e)>=0}};function sA(e,t){for(var n=aA(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function cA(e,t){for(var n=aA(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function lA(e){return function(){sA(this,e)}}function uA(e){return function(){cA(this,e)}}function dA(e,t){return function(){(t.apply(this,arguments)?sA:cA)(this,e)}}function fA(e,t){var n=iA(e+``);if(arguments.length<2){for(var r=aA(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?dA:t?lA:uA)(n,t))}function pA(){this.textContent=``}function mA(e){return function(){this.textContent=e}}function hA(e){return function(){var t=e.apply(this,arguments);this.textContent=t??``}}function gA(e){return arguments.length?this.each(e==null?pA:(typeof e==`function`?hA:mA)(e)):this.node().textContent}function _A(){this.innerHTML=``}function vA(e){return function(){this.innerHTML=e}}function yA(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??``}}function bA(e){return arguments.length?this.each(e==null?_A:(typeof e==`function`?yA:vA)(e)):this.node().innerHTML}function xA(){this.nextSibling&&this.parentNode.appendChild(this)}function SA(){return this.each(xA)}function CA(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function wA(){return this.each(CA)}function TA(e){var t=typeof e==`function`?e:ek(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function EA(){return null}function DA(e,t){var n=typeof e==`function`?e:ek(e),r=t==null?EA:typeof t==`function`?t:nk(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function OA(){var e=this.parentNode;e&&e.removeChild(this)}function kA(){return this.each(OA)}function AA(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function jA(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function MA(e){return this.select(e?jA:AA)}function NA(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function PA(e){return function(t){e.call(this,t,this.__data__)}}function FA(e){return e.trim().split(/^|\s+/).map(function(e){var t=``,n=e.indexOf(`.`);return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function IA(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n<i;++n)a=t[n],(!e.type||a.type===e.type)&&a.name===e.name?this.removeEventListener(a.type,a.listener,a.options):t[++r]=a;++r?t.length=r:delete this.__on}}}function LA(e,t,n){return function(){var r=this.__on,i,a=PA(t);if(r){for(var o=0,s=r.length;o<s;++o)if((i=r[o]).type===e.type&&i.name===e.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=n),i.value=t;return}}this.addEventListener(e.type,a,n),i={type:e.type,name:e.name,value:t,listener:a,options:n},r?r.push(i):this.__on=[i]}}function RA(e,t,n){var r=FA(e+``),i,a=r.length,o;if(arguments.length<2){var s=this.node().__on;if(s){for(var c=0,l=s.length,u;c<l;++c)for(i=0,u=s[c];i<a;++i)if((o=r[i]).type===u.type&&o.name===u.name)return u.value}return}for(s=t?LA:IA,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function zA(e,t,n){var r=Jk(e),i=r.CustomEvent;typeof i==`function`?i=new i(t,n):(i=r.document.createEvent(`Event`),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function BA(e,t){return function(){return zA(this,e,t)}}function VA(e,t){return function(){return zA(this,e,t.apply(this,arguments))}}function HA(e,t){return this.each((typeof t==`function`?VA:BA)(e,t))}function*UA(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length,o;i<a;++i)(o=r[i])&&(yield o)}var WA=[null];function GA(e,t){this._groups=e,this._parents=t}function KA(){return new GA([[document.documentElement]],WA)}function qA(){return this}GA.prototype=KA.prototype={constructor:GA,select:rk,selectAll:ck,selectChild:mk,selectChildren:vk,filter:yk,data:Dk,enter:xk,exit:kk,join:Ak,merge:jk,selection:qA,order:Mk,sort:Nk,call:Fk,nodes:Ik,node:Lk,size:Rk,empty:zk,each:Bk,attr:qk,style:Qk,property:rA,classed:fA,text:gA,html:bA,raise:SA,lower:wA,append:TA,insert:DA,remove:kA,clone:MA,datum:NA,on:RA,dispatch:HA,[Symbol.iterator]:UA};function JA(e){return typeof e==`string`?new GA([[document.querySelector(e)]],[document.documentElement]):new GA([[e]],WA)}function YA(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function XA(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function ZA(){}var QA=.7,$A=1/QA,ej=`\\s*([+-]?\\d+)\\s*`,tj=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,nj=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,Mee=/^#([0-9a-f]{3,8})$/,Nee=RegExp(`^rgb\\(${ej},${ej},${ej}\\)$`),Pee=RegExp(`^rgb\\(${nj},${nj},${nj}\\)$`),Fee=RegExp(`^rgba\\(${ej},${ej},${ej},${tj}\\)$`),Iee=RegExp(`^rgba\\(${nj},${nj},${nj},${tj}\\)$`),Lee=RegExp(`^hsl\\(${tj},${nj},${nj}\\)$`),Ree=RegExp(`^hsla\\(${tj},${nj},${nj},${tj}\\)$`),rj={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};YA(ZA,oj,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:ij,formatHex:ij,formatHex8:zee,formatHsl:Bee,formatRgb:aj,toString:aj});function ij(){return this.rgb().formatHex()}function zee(){return this.rgb().formatHex8()}function Bee(){return vj(this).formatHsl()}function aj(){return this.rgb().formatRgb()}function oj(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=Mee.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?sj(t):n===3?new uj(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?cj(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?cj(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Nee.exec(e))?new uj(t[1],t[2],t[3],1):(t=Pee.exec(e))?new uj(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Fee.exec(e))?cj(t[1],t[2],t[3],t[4]):(t=Iee.exec(e))?cj(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Lee.exec(e))?_j(t[1],t[2]/100,t[3]/100,1):(t=Ree.exec(e))?_j(t[1],t[2]/100,t[3]/100,t[4]):rj.hasOwnProperty(e)?sj(rj[e]):e===`transparent`?new uj(NaN,NaN,NaN,0):null}function sj(e){return new uj(e>>16&255,e>>8&255,e&255,1)}function cj(e,t,n,r){return r<=0&&(e=t=n=NaN),new uj(e,t,n,r)}function Vee(e){return e instanceof ZA||(e=oj(e)),e?(e=e.rgb(),new uj(e.r,e.g,e.b,e.opacity)):new uj}function lj(e,t,n,r){return arguments.length===1?Vee(e):new uj(e,t,n,r??1)}function uj(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}YA(uj,lj,XA(ZA,{brighter(e){return e=e==null?$A:$A**+e,new uj(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?QA:QA**+e,new uj(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new uj(hj(this.r),hj(this.g),hj(this.b),mj(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:dj,formatHex:dj,formatHex8:fj,formatRgb:pj,toString:pj}));function dj(){return`#${gj(this.r)}${gj(this.g)}${gj(this.b)}`}function fj(){return`#${gj(this.r)}${gj(this.g)}${gj(this.b)}${gj((isNaN(this.opacity)?1:this.opacity)*255)}`}function pj(){let e=mj(this.opacity);return`${e===1?`rgb(`:`rgba(`}${hj(this.r)}, ${hj(this.g)}, ${hj(this.b)}${e===1?`)`:`, ${e})`}`}function mj(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function hj(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function gj(e){return e=hj(e),(e<16?`0`:``)+e.toString(16)}function _j(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new bj(e,t,n,r)}function vj(e){if(e instanceof bj)return new bj(e.h,e.s,e.l,e.opacity);if(e instanceof ZA||(e=oj(e)),!e)return new bj;if(e instanceof bj)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n<r)*6:n===a?(r-t)/s+2:(t-n)/s+4,s/=c<.5?a+i:2-a-i,o*=60):s=c>0&&c<1?0:o,new bj(o,s,c,e.opacity)}function yj(e,t,n,r){return arguments.length===1?vj(e):new bj(e,t,n,r??1)}function bj(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}YA(bj,yj,XA(ZA,{brighter(e){return e=e==null?$A:$A**+e,new bj(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?QA:QA**+e,new bj(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new uj(Cj(e>=240?e-240:e+120,i,r),Cj(e,i,r),Cj(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new bj(xj(this.h),Sj(this.s),Sj(this.l),mj(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=mj(this.opacity);return`${e===1?`hsl(`:`hsla(`}${xj(this.h)}, ${Sj(this.s)*100}%, ${Sj(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function xj(e){return e=(e||0)%360,e<0?e+360:e}function Sj(e){return Math.max(0,Math.min(1,e||0))}function Cj(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var wj=e=>()=>e;function Tj(e,t){return function(n){return e+n*t}}function Ej(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function Dj(e){return(e=+e)==1?Oj:function(t,n){return n-t?Ej(t,n,e):wj(isNaN(t)?n:t)}}function Oj(e,t){var n=t-e;return n?Tj(e,n):wj(isNaN(e)?t:e)}var kj=(function e(t){var n=Dj(t);function r(e,t){var r=n((e=lj(e)).r,(t=lj(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=Oj(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function Aj(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function jj(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Mj(e,t){for(var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=Array(r),a=Array(n),o=0;o<r;++o)i[o]=Vj(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(e){for(o=0;o<r;++o)a[o]=i[o](e);return a}}function Nj(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Pj(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function Fj(e,t){var n={},r={},i;for(i in(typeof e!=`object`||!e)&&(e={}),(typeof t!=`object`||!t)&&(t={}),t)i in e?n[i]=Vj(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var Ij=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Lj=new RegExp(Ij.source,`g`);function Rj(e){return function(){return e}}function zj(e){return function(t){return e(t)+``}}function Bj(e,t){var n=Ij.lastIndex=Lj.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=Ij.exec(e))&&(i=Lj.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:Pj(r,i)})),n=Lj.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?zj(c[0].x):Rj(t):(t=c.length,function(e){for(var n=0,r;n<t;++n)s[(r=c[n]).i]=r.x(e);return s.join(``)})}function Vj(e,t){var n=typeof t,r;return t==null||n===`boolean`?wj(t):(n===`number`?Pj:n===`string`?(r=oj(t))?(t=r,kj):Bj:t instanceof oj?kj:t instanceof Date?Nj:jj(t)?Aj:Array.isArray(t)?Mj:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?Fj:Pj)(e,t)}function Hj(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var Uj=180/Math.PI,Wj={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Gj(e,t,n,r,i,a){var o,s,c;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),e*r<t*n&&(e=-e,t=-t,c=-c,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*Uj,skewX:Math.atan(c)*Uj,scaleX:o,scaleY:s}}var Kj;function qj(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?Wj:Gj(t.a,t.b,t.c,t.d,t.e,t.f)}function Jj(e){return e==null||(Kj||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),Kj.setAttribute(`transform`,e),!(e=Kj.transform.baseVal.consolidate()))?Wj:(e=e.matrix,Gj(e.a,e.b,e.c,e.d,e.e,e.f))}function Yj(e,t,n,r){function i(e){return e.length?e.pop()+` `:``}function a(e,r,i,a,o,s){if(e!==i||r!==a){var c=o.push(`translate(`,null,t,null,n);s.push({i:c-4,x:Pj(e,i)},{i:c-2,x:Pj(r,a)})}else(i||a)&&o.push(`translate(`+i+t+a+n)}function o(e,t,n,a){e===t?t&&n.push(i(n)+`rotate(`+t+r):(e-t>180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:Pj(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:Pj(e,t)})}function c(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:Pj(e,n)},{i:s-2,x:Pj(t,r)})}else(n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),c(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++t<n;)r[(a=i[t]).i]=a.x(e);return r.join(``)}}}var Xj=Yj(qj,`px, `,`px)`,`deg)`),Zj=Yj(Jj,`, `,`)`,`)`),Qj=0,$j=0,eM=0,tM=1e3,nM,rM,iM=0,aM=0,oM=0,sM=typeof performance==`object`&&performance.now?performance:Date,cM=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function lM(){return aM||=(cM(uM),sM.now()+oM)}function uM(){aM=0}function dM(){this._call=this._time=this._next=null}dM.prototype=fM.prototype={constructor:dM,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?lM():+n)+(t==null?0:+t),!this._next&&rM!==this&&(rM?rM._next=this:nM=this,rM=this),this._call=e,this._time=n,_M()},stop:function(){this._call&&(this._call=null,this._time=1/0,_M())}};function fM(e,t,n){var r=new dM;return r.restart(e,t,n),r}function pM(){lM(),++Qj;for(var e=nM,t;e;)(t=aM-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Qj}function mM(){aM=(iM=sM.now())+oM,Qj=$j=0;try{pM()}finally{Qj=0,gM(),aM=0}}function hM(){var e=sM.now(),t=e-iM;t>tM&&(oM-=t,iM=e)}function gM(){for(var e,t=nM,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:nM=n);rM=e,_M(r)}function _M(e){Qj||($j&&=clearTimeout($j),e-aM>24?(e<1/0&&($j=setTimeout(mM,e-sM.now()-oM)),eM&&=clearInterval(eM)):(eM||=(iM=sM.now(),setInterval(hM,tM)),Qj=1,cM(mM)))}function vM(e,t,n){var r=new dM;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var yM=GO(`start`,`end`,`cancel`,`interrupt`),bM=[];function xM(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;TM(e,n,{name:t,index:r,group:i,on:yM,tween:bM,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function SM(e,t){var n=wM(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function CM(e,t){var n=wM(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function wM(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function TM(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=fM(a,0,n.time);function a(e){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==1)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===3)return vM(o);f.state===4?(f.state=6,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l<t&&(f.state=6,f.timer.stop(),f.on.call(`cancel`,e,e.__data__,f.index,f.group),delete r[l])}if(vM(function(){n.state===3&&(n.state=4,n.timer.restart(s,n.delay,n.time),s(a))}),n.state=2,n.on.call(`start`,e,e.__data__,n.index,n.group),n.state===2){for(n.state=3,i=Array(d=n.tween.length),l=0,u=-1;l<d;++l)(f=n.tween[l].value.call(e,e.__data__,n.index,n.group))&&(i[++u]=f);i.length=u+1}}function s(t){for(var r=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(c),n.state=5,1),a=-1,o=i.length;++a<o;)i[a].call(e,r);n.state===5&&(n.on.call(`end`,e,e.__data__,n.index,n.group),c())}function c(){for(var i in n.state=6,n.timer.stop(),delete r[t],r)return;delete e.__transition}}function EM(e,t){var n=e.__transition,r,i,a=!0,o;if(n){for(o in t=t==null?null:t+``,n){if((r=n[o]).name!==t){a=!1;continue}i=r.state>2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function DM(e){return this.each(function(){EM(this,e)})}function OM(e,t){var n,r;return function(){var i=CM(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o<s;++o)if(r[o].name===t){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function kM(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=CM(this,e),o=a.tween;if(o!==r){i=(r=o).slice();for(var s={name:t,value:n},c=0,l=i.length;c<l;++c)if(i[c].name===t){i[c]=s;break}c===l&&i.push(s)}a.tween=i}}function AM(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=wM(this.node(),n).tween,i=0,a=r.length,o;i<a;++i)if((o=r[i]).name===e)return o.value;return null}return this.each((t==null?OM:kM)(n,e,t))}function jM(e,t,n){var r=e._id;return e.each(function(){var e=CM(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return wM(e,r).value[t]}}function MM(e,t){var n;return(typeof t==`number`?Pj:t instanceof oj?kj:(n=oj(t))?(t=n,kj):Bj)(e,t)}function NM(e){return function(){this.removeAttribute(e)}}function PM(e){return function(){this.removeAttributeNS(e.space,e.local)}}function FM(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttribute(e);return o===i?null:o===r?a:a=t(r=o,n)}}function IM(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttributeNS(e.space,e.local);return o===i?null:o===r?a:a=t(r=o,n)}}function LM(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttribute(e):(o=this.getAttribute(e),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function RM(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttributeNS(e.space,e.local):(o=this.getAttributeNS(e.space,e.local),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function zM(e,t){var n=ZO(e),r=n===`transform`?Zj:MM;return this.attrTween(e,typeof t==`function`?(n.local?RM:LM)(n,r,jM(this,`attr.`+e,t)):t==null?(n.local?PM:NM)(n):(n.local?IM:FM)(n,r,t))}function BM(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function VM(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function HM(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&VM(e,i)),n}return i._value=t,i}function UM(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&BM(e,i)),n}return i._value=t,i}function WM(e,t){var n=`attr.`+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!=`function`)throw Error();var r=ZO(e);return this.tween(n,(r.local?HM:UM)(r,t))}function GM(e,t){return function(){SM(this,e).delay=+t.apply(this,arguments)}}function KM(e,t){return t=+t,function(){SM(this,e).delay=t}}function qM(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?GM:KM)(t,e)):wM(this.node(),t).delay}function JM(e,t){return function(){CM(this,e).duration=+t.apply(this,arguments)}}function YM(e,t){return t=+t,function(){CM(this,e).duration=t}}function XM(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?JM:YM)(t,e)):wM(this.node(),t).duration}function ZM(e,t){if(typeof t!=`function`)throw Error();return function(){CM(this,e).ease=t}}function QM(e){var t=this._id;return arguments.length?this.each(ZM(t,e)):wM(this.node(),t).ease}function $M(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();CM(this,e).ease=n}}function eN(e){if(typeof e!=`function`)throw Error();return this.each($M(this._id,e))}function tN(e){typeof e!=`function`&&(e=lk(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new AN(r,this._parents,this._name,this._id)}function nN(e){if(e._id!==this._id)throw Error();for(var t=this._groups,n=e._groups,r=t.length,i=n.length,a=Math.min(r,i),o=Array(r),s=0;s<a;++s)for(var c=t[s],l=n[s],u=c.length,d=o[s]=Array(u),f,p=0;p<u;++p)(f=c[p]||l[p])&&(d[p]=f);for(;s<r;++s)o[s]=t[s];return new AN(o,this._parents,this._name,this._id)}function rN(e){return(e+``).trim().split(/^|\s+/).every(function(e){var t=e.indexOf(`.`);return t>=0&&(e=e.slice(0,t)),!e||e===`start`})}function iN(e,t,n){var r,i,a=rN(t)?SM:CM;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function aN(e,t){var n=this._id;return arguments.length<2?wM(this.node(),n).on.on(e):this.each(iN(n,e,t))}function oN(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function sN(){return this.on(`end.remove`,oN(this._id))}function cN(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=nk(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o<i;++o)for(var s=r[o],c=s.length,l=a[o]=Array(c),u,d,f=0;f<c;++f)(u=s[f])&&(d=e.call(u,u.__data__,f,s))&&(`__data__`in u&&(d.__data__=u.__data__),l[f]=d,xM(l[f],t,n,f,l,wM(u,n)));return new AN(a,this._parents,t,n)}function lN(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=ok(e));for(var r=this._groups,i=r.length,a=[],o=[],s=0;s<i;++s)for(var c=r[s],l=c.length,u,d=0;d<l;++d)if(u=c[d]){for(var f=e.call(u,u.__data__,d,c),p,m=wM(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&xM(p,t,n,h,f,m);a.push(f),o.push(u)}return new AN(a,o,t,n)}var uN=KA.prototype.constructor;function dN(){return new uN(this._groups,this._parents)}function fN(e,t){var n,r,i;return function(){var a=$k(this,e),o=(this.style.removeProperty(e),$k(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function pN(e){return function(){this.style.removeProperty(e)}}function mN(e,t,n){var r,i=n+``,a;return function(){var o=$k(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function hN(e,t,n){var r,i,a;return function(){var o=$k(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),$k(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function gN(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=CM(this,e),l=c.on,u=c.value[a]==null?s||=pN(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function _N(e,t,n){var r=(e+=``)==`transform`?Xj:MM;return t==null?this.styleTween(e,fN(e,r)).on(`end.style.`+e,pN(e)):typeof t==`function`?this.styleTween(e,hN(e,r,jM(this,`style.`+e,t))).each(gN(this._id,e)):this.styleTween(e,mN(e,r,t),n).on(`end.style.`+e,null)}function vN(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function yN(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&vN(e,a,n)),r}return a._value=t,a}function bN(e,t,n){var r=`style.`+(e+=``);if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!=`function`)throw Error();return this.tween(r,yN(e,t,n??``))}function xN(e){return function(){this.textContent=e}}function SN(e){return function(){var t=e(this);this.textContent=t??``}}function CN(e){return this.tween(`text`,typeof e==`function`?SN(jM(this,`text`,e)):xN(e==null?``:e+``))}function wN(e){return function(t){this.textContent=e.call(this,t)}}function TN(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&wN(r)),t}return r._value=e,r}function EN(e){var t=`text`;if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!=`function`)throw Error();return this.tween(t,TN(e))}function DN(){for(var e=this._name,t=this._id,n=jN(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)if(c=o[l]){var u=wM(c,t);xM(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new AN(r,this._parents,e,n)}function ON(){var e,t,n=this,r=n._id,i=n.size();return new Promise(function(a,o){var s={value:o},c={value:function(){--i===0&&a()}};n.each(function(){var n=CM(this,r),i=n.on;i!==e&&(t=(e=i).copy(),t._.cancel.push(s),t._.interrupt.push(s),t._.end.push(c)),n.on=t}),i===0&&a()})}var kN=0;function AN(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function jN(){return++kN}var MN=KA.prototype;AN.prototype={constructor:AN,select:cN,selectAll:lN,selectChild:MN.selectChild,selectChildren:MN.selectChildren,filter:tN,merge:nN,selection:dN,transition:DN,call:MN.call,nodes:MN.nodes,node:MN.node,size:MN.size,empty:MN.empty,each:MN.each,on:aN,attr:zM,attrTween:WM,style:_N,styleTween:bN,text:CN,textTween:EN,remove:sN,tween:AM,delay:qM,duration:XM,ease:QM,easeVarying:eN,end:ON,[Symbol.iterator]:MN[Symbol.iterator]};function NN(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var PN={time:null,delay:0,duration:250,ease:NN};function FN(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function IN(e){var t,n;e instanceof AN?(t=e._id,e=e._name):(t=jN(),(n=PN).time=lM(),e=e==null?null:e+``);for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&xM(c,e,t,l,o,n||FN(c,t));return new AN(r,this._parents,e,t)}KA.prototype.interrupt=DM,KA.prototype.transition=IN;var{abs:Hee,max:Uee,min:Wee}=Math;[`w`,`e`].map(LN),[`n`,`s`].map(LN),[`n`,`w`,`e`,`s`,`nw`,`ne`,`sw`,`se`].map(LN);function LN(e){return{type:e}}var RN=Math.PI,zN=2*RN,BN=1e-6,VN=zN-BN;function HN(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function UN(e){let t=Math.floor(e);if(!(t>=0))throw Error(`invalid digits: ${e}`);if(t>15)return HN;let n=10**t;return function(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=Math.round(arguments[t]*n)/n+e[t]}}var WN=class{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._=``,this._append=e==null?HN:UN(e)}moveTo(e,t){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,t){this._append`L${this._x1=+e},${this._y1=+t}`}quadraticCurveTo(e,t,n,r){this._append`Q${+e},${+t},${this._x1=+n},${this._y1=+r}`}bezierCurveTo(e,t,n,r,i,a){this._append`C${+e},${+t},${+n},${+r},${this._x1=+i},${this._y1=+a}`}arcTo(e,t,n,r,i){if(e=+e,t=+t,n=+n,r=+r,i=+i,i<0)throw Error(`negative radius: ${i}`);let a=this._x1,o=this._y1,s=n-e,c=r-t,l=a-e,u=o-t,d=l*l+u*u;if(this._x1===null)this._append`M${this._x1=e},${this._y1=t}`;else if(d>BN){if(!(Math.abs(u*s-c*l)>BN)||!i)this._append`L${this._x1=e},${this._y1=t}`;else{let f=n-a,p=r-o,m=s*s+c*c,h=f*f+p*p,g=Math.sqrt(m),_=Math.sqrt(d),v=i*Math.tan((RN-Math.acos((m+d-h)/(2*g*_)))/2),y=v/_,b=v/g;Math.abs(y-1)>BN&&this._append`L${e+y*l},${t+y*u}`,this._append`A${i},${i},0,0,${+(u*f>l*p)},${this._x1=e+b*s},${this._y1=t+b*c}`}}}arc(e,t,n,r,i,a){if(e=+e,t=+t,n=+n,a=!!a,n<0)throw Error(`negative radius: ${n}`);let o=n*Math.cos(r),s=n*Math.sin(r),c=e+o,l=t+s,u=1^a,d=a?r-i:i-r;this._x1===null?this._append`M${c},${l}`:(Math.abs(this._x1-c)>BN||Math.abs(this._y1-l)>BN)&&this._append`L${c},${l}`,n&&(d<0&&(d=d%zN+zN),d>VN?this._append`A${n},${n},0,1,${u},${e-o},${t-s}A${n},${n},0,1,${u},${this._x1=c},${this._y1=l}`:d>BN&&this._append`A${n},${n},0,${+(d>=RN)},${u},${this._x1=e+n*Math.cos(i)},${this._y1=t+n*Math.sin(i)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}};WN.prototype;function GN(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString(`en`).replace(/,/g,``):e.toString(10)}function KN(e,t){if(!isFinite(e)||e===0)return null;var n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf(`e`),r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function qN(e){return e=KN(Math.abs(e)),e?e[1]:NaN}function JN(e,t){return function(n,r){for(var i=n.length,a=[],o=0,s=e[0],c=0;i>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),a.push(n.substring(i-=s,i+s)),!((c+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function YN(e){return function(t){return t.replace(/[0-9]/g,function(t){return e[+t]})}}var XN=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function ZN(e){if(!(t=XN.exec(e)))throw Error(`invalid format: `+e);var t;return new QN({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}ZN.prototype=QN.prototype;function QN(e){this.fill=e.fill===void 0?` `:e.fill+``,this.align=e.align===void 0?`>`:e.align+``,this.sign=e.sign===void 0?`-`:e.sign+``,this.symbol=e.symbol===void 0?``:e.symbol+``,this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?``:e.type+``}QN.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?`0`:``)+(this.width===void 0?``:Math.max(1,this.width|0))+(this.comma?`,`:``)+(this.precision===void 0?``:`.`+Math.max(0,this.precision|0))+(this.trim?`~`:``)+this.type};function $N(e){out:for(var t=e.length,n=1,r=-1,i;n<t;++n)switch(e[n]){case`.`:r=i=n;break;case`0`:r===0&&(r=n),i=n;break;default:if(!+e[n])break out;r>0&&(r=0)}return r>0?e.slice(0,r)+e.slice(i+1):e}var eP;function tP(e,t){var n=KN(e,t);if(!n)return eP=void 0,e.toPrecision(t);var r=n[0],i=n[1],a=i-(eP=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+Array(a-o+1).join(`0`):a>0?r.slice(0,a)+`.`+r.slice(a):`0.`+Array(1-a).join(`0`)+KN(e,Math.max(0,t+a-1))[0]}function nP(e,t){var n=KN(e,t);if(!n)return e+``;var r=n[0],i=n[1];return i<0?`0.`+Array(-i).join(`0`)+r:r.length>i+1?r.slice(0,i+1)+`.`+r.slice(i+1):r+Array(i-r.length+2).join(`0`)}var rP={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+``,d:GN,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>nP(e*100,t),r:nP,s:tP,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function iP(e){return e}var aP=Array.prototype.map,oP=[`y`,`z`,`a`,`f`,`p`,`n`,`µ`,`m`,``,`k`,`M`,`G`,`T`,`P`,`E`,`Z`,`Y`];function sP(e){var t=e.grouping===void 0||e.thousands===void 0?iP:JN(aP.call(e.grouping,Number),e.thousands+``),n=e.currency===void 0?``:e.currency[0]+``,r=e.currency===void 0?``:e.currency[1]+``,i=e.decimal===void 0?`.`:e.decimal+``,a=e.numerals===void 0?iP:YN(aP.call(e.numerals,String)),o=e.percent===void 0?`%`:e.percent+``,s=e.minus===void 0?`−`:e.minus+``,c=e.nan===void 0?`NaN`:e.nan+``;function l(e,l){e=ZN(e);var u=e.fill,d=e.align,f=e.sign,p=e.symbol,m=e.zero,h=e.width,g=e.comma,_=e.precision,v=e.trim,y=e.type;y===`n`?(g=!0,y=`g`):rP[y]||(_===void 0&&(_=12),v=!0,y=`g`),(m||u===`0`&&d===`=`)&&(m=!0,u=`0`,d=`=`);var b=(l&&l.prefix!==void 0?l.prefix:``)+(p===`$`?n:p===`#`&&/[boxX]/.test(y)?`0`+y.toLowerCase():``),x=(p===`$`?r:/[%p]/.test(y)?o:``)+(l&&l.suffix!==void 0?l.suffix:``),S=rP[y],C=/[defgprs%]/.test(y);_=_===void 0?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_));function w(e){var n=b,r=x,o,l,p;if(y===`c`)r=S(e)+r,e=``;else{e=+e;var w=e<0||1/e<0;if(e=isNaN(e)?c:S(Math.abs(e),_),v&&(e=$N(e)),w&&+e==0&&f!==`+`&&(w=!1),n=(w?f===`(`?f:s:f===`-`||f===`(`?``:f)+n,r=(y===`s`&&!isNaN(e)&&eP!==void 0?oP[8+eP/3]:``)+r+(w&&f===`(`?`)`:``),C){for(o=-1,l=e.length;++o<l;)if(p=e.charCodeAt(o),48>p||p>57){r=(p===46?i+e.slice(o+1):e.slice(o))+r,e=e.slice(0,o);break}}}g&&!m&&(e=t(e,1/0));var T=n.length+e.length+r.length,E=T<h?Array(h-T+1).join(u):``;switch(g&&m&&(e=t(E+e,E.length?h-r.length:1/0),E=``),d){case`<`:e=n+e+r+E;break;case`=`:e=n+E+e+r;break;case`^`:e=E.slice(0,T=E.length>>1)+n+e+r+E.slice(T);break;default:e=E+n+e+r}return a(e)}return w.toString=function(){return e+``},w}function u(e,t){var n=Math.max(-8,Math.min(8,Math.floor(qN(t)/3)))*3,r=10**-n,i=l((e=ZN(e),e.type=`f`,e),{suffix:oP[8+n/3]});return function(e){return i(r*e)}}return{format:l,formatPrefix:u}}var cP,lP,uP;dP({thousands:`,`,grouping:[3],currency:[`$`,``]});function dP(e){return cP=sP(e),lP=cP.format,uP=cP.formatPrefix,cP}function fP(e){return Math.max(0,-qN(Math.abs(e)))}function pP(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(qN(t)/3)))*3-qN(Math.abs(e)))}function mP(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,qN(t)-qN(e))+1}function hP(e){var t=0,n=e.children,r=n&&n.length;if(!r)t=1;else for(;--r>=0;)t+=n[r].value;e.value=t}function gP(){return this.eachAfter(hP)}function _P(e,t){let n=-1;for(let r of this)e.call(t,r,++n,this);return this}function vP(e,t){for(var n=this,r=[n],i,a,o=-1;n=r.pop();)if(e.call(t,n,++o,this),i=n.children)for(a=i.length-1;a>=0;--a)r.push(i[a]);return this}function yP(e,t){for(var n=this,r=[n],i=[],a,o,s,c=-1;n=r.pop();)if(i.push(n),a=n.children)for(o=0,s=a.length;o<s;++o)r.push(a[o]);for(;n=i.pop();)e.call(t,n,++c,this);return this}function bP(e,t){let n=-1;for(let r of this)if(e.call(t,r,++n,this))return r}function xP(e){return this.eachAfter(function(t){for(var n=+e(t.data)||0,r=t.children,i=r&&r.length;--i>=0;)n+=r[i].value;t.value=n})}function SP(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}function CP(e){for(var t=this,n=wP(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var i=r.length;e!==n;)r.splice(i,0,e),e=e.parent;return r}function wP(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),i=null;for(e=n.pop(),t=r.pop();e===t;)i=e,e=n.pop(),t=r.pop();return i}function TP(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}function EP(){return Array.from(this)}function DP(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}function OP(){var e=this,t=[];return e.each(function(n){n!==e&&t.push({source:n.parent,target:n})}),t}function*kP(){var e=this,t,n=[e],r,i,a;do for(t=n.reverse(),n=[];e=t.pop();)if(yield e,r=e.children)for(i=0,a=r.length;i<a;++i)n.push(r[i]);while(n.length)}function AP(e,t){e instanceof Map?(e=[void 0,e],t===void 0&&(t=NP)):t===void 0&&(t=MP);for(var n=new IP(e),r,i=[n],a,o,s,c;r=i.pop();)if((o=t(r.data))&&(c=(o=Array.from(o)).length))for(r.children=o,s=c-1;s>=0;--s)i.push(a=o[s]=new IP(o[s])),a.parent=r,a.depth=r.depth+1;return n.eachBefore(FP)}function jP(){return AP(this).eachBefore(PP)}function MP(e){return e.children}function NP(e){return Array.isArray(e)?e[1]:null}function PP(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function FP(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function IP(e){this.data=e,this.depth=this.height=0,this.parent=null}IP.prototype=AP.prototype={constructor:IP,count:gP,each:_P,eachAfter:yP,eachBefore:vP,find:bP,sum:xP,sort:SP,path:CP,ancestors:TP,descendants:EP,leaves:DP,links:OP,copy:jP,[Symbol.iterator]:kP};function LP(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function RP(e,t,n,r,i){for(var a=e.children,o,s=-1,c=a.length,l=e.value&&(r-t)/e.value;++s<c;)o=a[s],o.y0=n,o.y1=i,o.x0=t,o.x1=t+=o.value*l}function zP(){var e=1,t=1,n=0,r=!1;function i(i){var o=i.height+1;return i.x0=i.y0=n,i.x1=e,i.y1=t/o,i.eachBefore(a(t,o)),r&&i.eachBefore(LP),i}function a(e,t){return function(r){r.children&&RP(r,r.x0,e*(r.depth+1)/t,r.x1,e*(r.depth+2)/t);var i=r.x0,a=r.y0,o=r.x1-n,s=r.y1-n;o<i&&(i=o=(i+o)/2),s<a&&(a=s=(a+s)/2),r.x0=i,r.y0=a,r.x1=o,r.y1=s}}return i.round=function(e){return arguments.length?(r=!!e,i):r},i.size=function(n){return arguments.length?(e=+n[0],t=+n[1],i):[e,t]},i.padding=function(e){return arguments.length?(n=+e,i):n},i}function BP(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}var VP=Symbol(`implicit`);function HP(){var e=new gO,t=[],n=[],r=VP;function i(i){let a=e.get(i);if(a===void 0){if(r!==VP)return r;e.set(i,a=t.push(i)-1)}return n[a%n.length]}return i.domain=function(n){if(!arguments.length)return t.slice();t=[],e=new gO;for(let r of n)e.has(r)||e.set(r,t.push(r)-1);return i},i.range=function(e){return arguments.length?(n=Array.from(e),i):n.slice()},i.unknown=function(e){return arguments.length?(r=e,i):r},i.copy=function(){return HP(t,n).unknown(r)},BP.apply(i,arguments),i}function UP(){var e=HP().unknown(void 0),t=e.domain,n=e.range,r=0,i=1,a,o,s=!1,c=0,l=0,u=.5;delete e.unknown;function d(){var e=t().length,d=i<r,f=d?i:r,p=d?r:i;a=(p-f)/Math.max(1,e-c+l*2),s&&(a=Math.floor(a)),f+=(p-f-a*(e-c))*u,o=a*(1-c),s&&(f=Math.round(f),o=Math.round(o));var m=kO(e).map(function(e){return f+a*e});return n(d?m.reverse():m)}return e.domain=function(e){return arguments.length?(t(e),d()):t()},e.range=function(e){return arguments.length?([r,i]=e,r=+r,i=+i,d()):[r,i]},e.rangeRound=function(e){return[r,i]=e,r=+r,i=+i,s=!0,d()},e.bandwidth=function(){return o},e.step=function(){return a},e.round=function(e){return arguments.length?(s=!!e,d()):s},e.padding=function(e){return arguments.length?(c=Math.min(1,l=+e),d()):c},e.paddingInner=function(e){return arguments.length?(c=Math.min(1,e),d()):c},e.paddingOuter=function(e){return arguments.length?(l=+e,d()):l},e.align=function(e){return arguments.length?(u=Math.max(0,Math.min(1,e)),d()):u},e.copy=function(){return UP(t(),[r,i]).round(s).paddingInner(c).paddingOuter(l).align(u)},BP.apply(d(),arguments)}function WP(e){var t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,delete e.paddingOuter,e.copy=function(){return WP(t())},e}function GP(){return WP(UP.apply(null,arguments).paddingInner(1))}function KP(e){return function(){return e}}function qP(e){return+e}var JP=[0,1];function YP(e){return e}function XP(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:KP(isNaN(t)?NaN:.5)}function ZP(e,t){var n;return e>t&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}function QP(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=XP(i,r),a=n(o,a)):(r=XP(r,i),a=n(a,o)),function(e){return a(r(e))}}function $P(e,t,n){var r=Math.min(e.length,t.length)-1,i=Array(r),a=Array(r),o=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<r;)i[o]=XP(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(t){var n=mO(e,t,1,r)-1;return a[n](i[n](t))}}function eF(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function tF(){var e=JP,t=JP,n=Vj,r,i,a,o=YP,s,c,l;function u(){var n=Math.min(e.length,t.length);return o!==YP&&(o=ZP(e[0],e[n-1])),s=n>2?$P:QP,c=l=null,d}function d(i){return i==null||isNaN(i=+i)?a:(c||=s(e.map(r),t,n))(r(o(i)))}return d.invert=function(n){return o(i((l||=s(t,e.map(r),Pj))(n)))},d.domain=function(t){return arguments.length?(e=Array.from(t,qP),u()):e.slice()},d.range=function(e){return arguments.length?(t=Array.from(e),u()):t.slice()},d.rangeRound=function(e){return t=Array.from(e),n=Hj,u()},d.clamp=function(e){return arguments.length?(o=e?!0:YP,u()):o!==YP},d.interpolate=function(e){return arguments.length?(n=e,u()):n},d.unknown=function(e){return arguments.length?(a=e,d):a},function(e,t){return r=e,i=t,u()}}function nF(){return tF()(YP,YP)}function rF(e,t,n,r){var i=DO(e,t,n),a;switch(r=ZN(r??`,f`),r.type){case`s`:var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=pP(i,o))&&(r.precision=a),uP(r,o);case``:case`e`:case`g`:case`p`:case`r`:r.precision==null&&!isNaN(a=mP(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type===`e`));break;case`f`:case`%`:r.precision==null&&!isNaN(a=fP(i))&&(r.precision=a-(r.type===`%`)*2)}return lP(r)}function iF(e){var t=e.domain;return e.ticks=function(e){var n=t();return TO(n[0],n[n.length-1],e??10)},e.tickFormat=function(e,n){var r=t();return rF(r[0],r[r.length-1],e??10,n)},e.nice=function(n){n??=10;var r=t(),i=0,a=r.length-1,o=r[i],s=r[a],c,l,u=10;for(s<o&&(l=o,o=s,s=l,l=i,i=a,a=l);u-->0;){if(l=EO(o,s,n),l===c)return r[i]=o,r[a]=s,t(r);if(l>0)o=Math.floor(o/l)*l,s=Math.ceil(s/l)*l;else if(l<0)o=Math.ceil(o*l)/l,s=Math.floor(s*l)/l;else break;c=l}return e},e}function aF(){var e=nF();return e.copy=function(){return eF(e,aF())},BP.apply(e,arguments),iF(e)}function oF(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],a=e[r],o;return a<i&&(o=n,n=r,r=o,o=i,i=a,a=o),e[n]=t.floor(i),e[r]=t.ceil(a),e}var sF=new Date,cF=new Date;function lF(e,t,n,r){function i(t){return e(t=arguments.length===0?new Date:new Date(+t)),t}return i.floor=t=>(e(t=new Date(+t)),t),i.ceil=n=>(e(n=new Date(n-1)),t(n,1),e(n),n),i.round=e=>{let t=i(e),n=i.ceil(e);return e-t<n-e?t:n},i.offset=(e,n)=>(t(e=new Date(+e),n==null?1:Math.floor(n)),e),i.range=(n,r,a)=>{let o=[];if(n=i.ceil(n),a=a==null?1:Math.floor(a),!(n<r)||!(a>0))return o;let s;do o.push(s=new Date(+n)),t(n,a),e(n);while(s<n&&n<r);return o},i.filter=n=>lF(t=>{if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)},(e,r)=>{if(e>=e){if(r<0)for(;++r<=0;)for(;t(e,-1),!n(e););else for(;--r>=0;)for(;t(e,1),!n(e););}}),n&&(i.count=(t,r)=>(sF.setTime(+t),cF.setTime(+r),e(sF),e(cF),Math.floor(n(sF,cF))),i.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?i.filter(r?t=>r(t)%e===0:t=>i.count(0,t)%e===0):i)),i}var uF=lF(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);uF.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?lF(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):uF),uF.range;var dF=1e3,fF=dF*60,pF=fF*60,mF=pF*24,hF=mF*7,gF=mF*30,_F=mF*365,vF=lF(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*dF)},(e,t)=>(t-e)/dF,e=>e.getUTCSeconds());vF.range;var yF=lF(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*dF)},(e,t)=>{e.setTime(+e+t*fF)},(e,t)=>(t-e)/fF,e=>e.getMinutes());yF.range;var bF=lF(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*fF)},(e,t)=>(t-e)/fF,e=>e.getUTCMinutes());bF.range;var xF=lF(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*dF-e.getMinutes()*fF)},(e,t)=>{e.setTime(+e+t*pF)},(e,t)=>(t-e)/pF,e=>e.getHours());xF.range;var SF=lF(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*pF)},(e,t)=>(t-e)/pF,e=>e.getUTCHours());SF.range;var CF=lF(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*fF)/mF,e=>e.getDate()-1);CF.range;var wF=lF(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/mF,e=>e.getUTCDate()-1);wF.range;var TF=lF(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/mF,e=>Math.floor(e/mF));TF.range;function EF(e){return lF(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(e,t)=>{e.setDate(e.getDate()+t*7)},(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*fF)/hF)}var DF=EF(0),OF=EF(1),kF=EF(2),AF=EF(3),jF=EF(4),MF=EF(5),NF=EF(6);DF.range,OF.range,kF.range,AF.range,jF.range,MF.range,NF.range;function PF(e){return lF(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t*7)},(e,t)=>(t-e)/hF)}var FF=PF(0),IF=PF(1),LF=PF(2),RF=PF(3),zF=PF(4),BF=PF(5),VF=PF(6);FF.range,IF.range,LF.range,RF.range,zF.range,BF.range,VF.range;var HF=lF(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());HF.range;var UF=lF(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());UF.range;var WF=lF(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());WF.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:lF(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)}),WF.range;var GF=lF(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());GF.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:lF(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)}),GF.range;function KF(e,t,n,r,i,a){let o=[[vF,1,dF],[vF,5,5*dF],[vF,15,15*dF],[vF,30,30*dF],[a,1,fF],[a,5,5*fF],[a,15,15*fF],[a,30,30*fF],[i,1,pF],[i,3,3*pF],[i,6,6*pF],[i,12,12*pF],[r,1,mF],[r,2,2*mF],[n,1,hF],[t,1,gF],[t,3,3*gF],[e,1,_F]];function s(e,t,n){let r=t<e;r&&([e,t]=[t,e]);let i=n&&typeof n.range==`function`?n:c(e,t,n),a=i?i.range(e,+t+1):[];return r?a.reverse():a}function c(t,n,r){let i=Math.abs(n-t)/r,a=uO(([,,e])=>e).right(o,i);if(a===o.length)return e.every(DO(t/_F,n/_F,r));if(a===0)return uF.every(Math.max(DO(t,n,r),1));let[s,c]=o[i/o[a-1][2]<o[a][2]/i?a-1:a];return s.every(c)}return[s,c]}var[Gee,Kee]=KF(GF,UF,FF,TF,SF,bF),[qF,JF]=KF(WF,HF,DF,CF,xF,yF);function YF(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function XF(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function ZF(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function QF(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,a=e.days,o=e.shortDays,s=e.months,c=e.shortMonths,l=iI(i),u=aI(i),d=iI(a),f=aI(a),p=iI(o),m=aI(o),h=iI(s),g=aI(s),_=iI(c),v=aI(c),y={a:N,A:P,b:F,B:I,c:null,d:EI,e:EI,f:jI,g:HI,G:WI,H:DI,I:OI,j:kI,L:AI,m:MI,M:NI,p:L,q:R,Q:pL,s:mL,S:PI,u:FI,U:II,V:RI,w:zI,W:BI,x:null,X:null,y:VI,Y:UI,Z:GI,"%":fL},b={a:z,A:B,b:V,B:ee,c:null,d:KI,e:KI,f:ZI,g:cL,G:uL,H:qI,I:JI,j:YI,L:XI,m:QI,M:$I,p:te,q:ne,Q:pL,s:mL,S:eL,u:tL,U:nL,V:iL,w:aL,W:oL,x:null,X:null,y:sL,Y:lL,Z:dL,"%":fL},x={a:E,A:D,b:O,B:k,c:A,d:gI,e:gI,f:SI,g:fI,G:dI,H:vI,I:vI,j:_I,L:xI,m:hI,M:yI,p:T,q:mI,Q:wI,s:TI,S:bI,u:sI,U:cI,V:lI,w:oI,W:uI,x:j,X:M,y:fI,Y:dI,Z:pI,"%":CI};y.x=S(n,y),y.X=S(r,y),y.c=S(t,y),b.x=S(n,b),b.X=S(r,b),b.c=S(t,b);function S(e,t){return function(n){var r=[],i=-1,a=0,o=e.length,s,c,l;for(n instanceof Date||(n=new Date(+n));++i<o;)e.charCodeAt(i)===37&&(r.push(e.slice(a,i)),(c=$F[s=e.charAt(++i)])==null?c=s===`e`?` `:`0`:s=e.charAt(++i),(l=t[s])&&(s=l(n,c)),r.push(s),a=i+1);return r.push(e.slice(a,i)),r.join(``)}}function C(e,t){return function(n){var r=ZF(1900,void 0,1),i=w(r,e,n+=``,0),a,o;if(i!=n.length)return null;if(`Q`in r)return new Date(r.Q);if(`s`in r)return new Date(r.s*1e3+(`L`in r?r.L:0));if(t&&!(`Z`in r)&&(r.Z=0),`p`in r&&(r.H=r.H%12+r.p*12),r.m===void 0&&(r.m=`q`in r?r.q:0),`V`in r){if(r.V<1||r.V>53)return null;`w`in r||(r.w=1),`Z`in r?(a=XF(ZF(r.y,0,1)),o=a.getUTCDay(),a=o>4||o===0?IF.ceil(a):IF(a),a=wF.offset(a,(r.V-1)*7),r.y=a.getUTCFullYear(),r.m=a.getUTCMonth(),r.d=a.getUTCDate()+(r.w+6)%7):(a=YF(ZF(r.y,0,1)),o=a.getDay(),a=o>4||o===0?OF.ceil(a):OF(a),a=CF.offset(a,(r.V-1)*7),r.y=a.getFullYear(),r.m=a.getMonth(),r.d=a.getDate()+(r.w+6)%7)}else(`W`in r||`U`in r)&&(`w`in r||(r.w=`u`in r?r.u%7:+(`W`in r)),o=`Z`in r?XF(ZF(r.y,0,1)).getUTCDay():YF(ZF(r.y,0,1)).getDay(),r.m=0,r.d=`W`in r?(r.w+6)%7+r.W*7-(o+5)%7:r.w+r.U*7-(o+6)%7);return`Z`in r?(r.H+=r.Z/100|0,r.M+=r.Z%100,XF(r)):YF(r)}}function w(e,t,n,r){for(var i=0,a=t.length,o=n.length,s,c;i<a;){if(r>=o)return-1;if(s=t.charCodeAt(i++),s===37){if(s=t.charAt(i++),c=x[s in $F?t.charAt(i++):s],!c||(r=c(e,n,r))<0)return-1}else if(s!=n.charCodeAt(r++))return-1}return r}function T(e,t,n){var r=l.exec(t.slice(n));return r?(e.p=u.get(r[0].toLowerCase()),n+r[0].length):-1}function E(e,t,n){var r=p.exec(t.slice(n));return r?(e.w=m.get(r[0].toLowerCase()),n+r[0].length):-1}function D(e,t,n){var r=d.exec(t.slice(n));return r?(e.w=f.get(r[0].toLowerCase()),n+r[0].length):-1}function O(e,t,n){var r=_.exec(t.slice(n));return r?(e.m=v.get(r[0].toLowerCase()),n+r[0].length):-1}function k(e,t,n){var r=h.exec(t.slice(n));return r?(e.m=g.get(r[0].toLowerCase()),n+r[0].length):-1}function A(e,n,r){return w(e,t,n,r)}function j(e,t,r){return w(e,n,t,r)}function M(e,t,n){return w(e,r,t,n)}function N(e){return o[e.getDay()]}function P(e){return a[e.getDay()]}function F(e){return c[e.getMonth()]}function I(e){return s[e.getMonth()]}function L(e){return i[+(e.getHours()>=12)]}function R(e){return 1+~~(e.getMonth()/3)}function z(e){return o[e.getUTCDay()]}function B(e){return a[e.getUTCDay()]}function V(e){return c[e.getUTCMonth()]}function ee(e){return s[e.getUTCMonth()]}function te(e){return i[+(e.getUTCHours()>=12)]}function ne(e){return 1+~~(e.getUTCMonth()/3)}return{format:function(e){var t=S(e+=``,y);return t.toString=function(){return e},t},parse:function(e){var t=C(e+=``,!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=S(e+=``,b);return t.toString=function(){return e},t},utcParse:function(e){var t=C(e+=``,!0);return t.toString=function(){return e},t}}}var $F={"-":``,_:` `,0:`0`},eI=/^\s*\d+/,tI=/^%/,nI=/[\\^$*+?|[\]().{}]/g;function Z(e,t,n){var r=e<0?`-`:``,i=(r?-e:e)+``,a=i.length;return r+(a<n?Array(n-a+1).join(t)+i:i)}function rI(e){return e.replace(nI,`\\$&`)}function iI(e){return RegExp(`^(?:`+e.map(rI).join(`|`)+`)`,`i`)}function aI(e){return new Map(e.map((e,t)=>[e.toLowerCase(),t]))}function oI(e,t,n){var r=eI.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function sI(e,t,n){var r=eI.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function cI(e,t,n){var r=eI.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function lI(e,t,n){var r=eI.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function uI(e,t,n){var r=eI.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function dI(e,t,n){var r=eI.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function fI(e,t,n){var r=eI.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function pI(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||`00`)),n+r[0].length):-1}function mI(e,t,n){var r=eI.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function hI(e,t,n){var r=eI.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function gI(e,t,n){var r=eI.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function _I(e,t,n){var r=eI.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function vI(e,t,n){var r=eI.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function yI(e,t,n){var r=eI.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function bI(e,t,n){var r=eI.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function xI(e,t,n){var r=eI.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function SI(e,t,n){var r=eI.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function CI(e,t,n){var r=tI.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function wI(e,t,n){var r=eI.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function TI(e,t,n){var r=eI.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function EI(e,t){return Z(e.getDate(),t,2)}function DI(e,t){return Z(e.getHours(),t,2)}function OI(e,t){return Z(e.getHours()%12||12,t,2)}function kI(e,t){return Z(1+CF.count(WF(e),e),t,3)}function AI(e,t){return Z(e.getMilliseconds(),t,3)}function jI(e,t){return AI(e,t)+`000`}function MI(e,t){return Z(e.getMonth()+1,t,2)}function NI(e,t){return Z(e.getMinutes(),t,2)}function PI(e,t){return Z(e.getSeconds(),t,2)}function FI(e){var t=e.getDay();return t===0?7:t}function II(e,t){return Z(DF.count(WF(e)-1,e),t,2)}function LI(e){var t=e.getDay();return t>=4||t===0?jF(e):jF.ceil(e)}function RI(e,t){return e=LI(e),Z(jF.count(WF(e),e)+(WF(e).getDay()===4),t,2)}function zI(e){return e.getDay()}function BI(e,t){return Z(OF.count(WF(e)-1,e),t,2)}function VI(e,t){return Z(e.getFullYear()%100,t,2)}function HI(e,t){return e=LI(e),Z(e.getFullYear()%100,t,2)}function UI(e,t){return Z(e.getFullYear()%1e4,t,4)}function WI(e,t){var n=e.getDay();return e=n>=4||n===0?jF(e):jF.ceil(e),Z(e.getFullYear()%1e4,t,4)}function GI(e){var t=e.getTimezoneOffset();return(t>0?`-`:(t*=-1,`+`))+Z(t/60|0,`0`,2)+Z(t%60,`0`,2)}function KI(e,t){return Z(e.getUTCDate(),t,2)}function qI(e,t){return Z(e.getUTCHours(),t,2)}function JI(e,t){return Z(e.getUTCHours()%12||12,t,2)}function YI(e,t){return Z(1+wF.count(GF(e),e),t,3)}function XI(e,t){return Z(e.getUTCMilliseconds(),t,3)}function ZI(e,t){return XI(e,t)+`000`}function QI(e,t){return Z(e.getUTCMonth()+1,t,2)}function $I(e,t){return Z(e.getUTCMinutes(),t,2)}function eL(e,t){return Z(e.getUTCSeconds(),t,2)}function tL(e){var t=e.getUTCDay();return t===0?7:t}function nL(e,t){return Z(FF.count(GF(e)-1,e),t,2)}function rL(e){var t=e.getUTCDay();return t>=4||t===0?zF(e):zF.ceil(e)}function iL(e,t){return e=rL(e),Z(zF.count(GF(e),e)+(GF(e).getUTCDay()===4),t,2)}function aL(e){return e.getUTCDay()}function oL(e,t){return Z(IF.count(GF(e)-1,e),t,2)}function sL(e,t){return Z(e.getUTCFullYear()%100,t,2)}function cL(e,t){return e=rL(e),Z(e.getUTCFullYear()%100,t,2)}function lL(e,t){return Z(e.getUTCFullYear()%1e4,t,4)}function uL(e,t){var n=e.getUTCDay();return e=n>=4||n===0?zF(e):zF.ceil(e),Z(e.getUTCFullYear()%1e4,t,4)}function dL(){return`+0000`}function fL(){return`%`}function pL(e){return+e}function mL(e){return Math.floor(e/1e3)}var hL,gL;_L({dateTime:`%x, %X`,date:`%-m/%-d/%Y`,time:`%-I:%M:%S %p`,periods:[`AM`,`PM`],days:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],shortDays:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],months:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],shortMonths:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`]});function _L(e){return hL=QF(e),gL=hL.format,hL.parse,hL.utcFormat,hL.utcParse,hL}function vL(e){return new Date(e)}function yL(e){return e instanceof Date?+e:+new Date(+e)}function bL(e,t,n,r,i,a,o,s,c,l){var u=nF(),d=u.invert,f=u.domain,p=l(`.%L`),m=l(`:%S`),h=l(`%I:%M`),g=l(`%I %p`),_=l(`%a %d`),v=l(`%b %d`),y=l(`%B`),b=l(`%Y`);function x(e){return(c(e)<e?p:s(e)<e?m:o(e)<e?h:a(e)<e?g:r(e)<e?i(e)<e?_:v:n(e)<e?y:b)(e)}return u.invert=function(e){return new Date(d(e))},u.domain=function(e){return arguments.length?f(Array.from(e,yL)):f().map(vL)},u.ticks=function(t){var n=f();return e(n[0],n[n.length-1],t??10)},u.tickFormat=function(e,t){return t==null?x:l(t)},u.nice=function(e){var n=f();return(!e||typeof e.range!=`function`)&&(e=t(n[0],n[n.length-1],e??10)),e?f(oF(n,e)):u},u.copy=function(){return eF(u,bL(e,t,n,r,i,a,o,s,c,l))},u}function xL(){return BP.apply(bL(qF,JF,WF,HF,DF,CF,xF,yF,vF,gL).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function SL(e){return function(){return e}}var CL=Math.abs,wL=Math.atan2,TL=Math.cos,EL=Math.max,DL=Math.min,OL=Math.sin,kL=Math.sqrt,AL=Math.PI,jL=AL/2,ML=2*AL;function NL(e){return e>1?0:e<-1?AL:Math.acos(e)}function PL(e){return e>=1?jL:e<=-1?-jL:Math.asin(e)}function FL(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{let e=Math.floor(n);if(!(e>=0))throw RangeError(`invalid digits: ${n}`);t=e}return e},()=>new WN(t)}function IL(e){return e.innerRadius}function LL(e){return e.outerRadius}function RL(e){return e.startAngle}function zL(e){return e.endAngle}function BL(e){return e&&e.padAngle}function VL(e,t,n,r,i,a,o,s){var c=n-e,l=r-t,u=o-i,d=s-a,f=d*c-u*l;if(!(f*f<1e-12))return f=(u*(t-a)-d*(e-i))/f,[e+f*c,t+f*l]}function HL(e,t,n,r,i,a,o){var s=e-n,c=t-r,l=(o?a:-a)/kL(s*s+c*c),u=l*c,d=-l*s,f=e+u,p=t+d,m=n+u,h=r+d,g=(f+m)/2,_=(p+h)/2,v=m-f,y=h-p,b=v*v+y*y,x=i-a,S=f*h-m*p,C=(y<0?-1:1)*kL(EL(0,x*x*b-S*S)),w=(S*y-v*C)/b,T=(-S*v-y*C)/b,E=(S*y+v*C)/b,D=(-S*v+y*C)/b,O=w-g,k=T-_,A=E-g,j=D-_;return O*O+k*k>A*A+j*j&&(w=E,T=D),{cx:w,cy:T,x01:-u,y01:-d,x11:w*(i/x-1),y11:T*(i/x-1)}}function UL(){var e=IL,t=LL,n=SL(0),r=null,i=RL,a=zL,o=BL,s=null,c=FL(l);function l(){var l,u,d=+e.apply(this,arguments),f=+t.apply(this,arguments),p=i.apply(this,arguments)-jL,m=a.apply(this,arguments)-jL,h=CL(m-p),g=m>p;if(s||=l=c(),f<d&&(u=f,f=d,d=u),!(f>1e-12))s.moveTo(0,0);else if(h>ML-1e-12)s.moveTo(f*TL(p),f*OL(p)),s.arc(0,0,f,p,m,!g),d>1e-12&&(s.moveTo(d*TL(m),d*OL(m)),s.arc(0,0,d,m,p,g));else{var _=p,v=m,y=p,b=m,x=h,S=h,C=o.apply(this,arguments)/2,w=C>1e-12&&(r?+r.apply(this,arguments):kL(d*d+f*f)),T=DL(CL(f-d)/2,+n.apply(this,arguments)),E=T,D=T,O,k;if(w>1e-12){var A=PL(w/d*OL(C)),j=PL(w/f*OL(C));(x-=A*2)>1e-12?(A*=g?1:-1,y+=A,b-=A):(x=0,y=b=(p+m)/2),(S-=j*2)>1e-12?(j*=g?1:-1,_+=j,v-=j):(S=0,_=v=(p+m)/2)}var M=f*TL(_),N=f*OL(_),P=d*TL(b),F=d*OL(b);if(T>1e-12){var I=f*TL(v),L=f*OL(v),R=d*TL(y),z=d*OL(y),B;if(h<AL){if(B=VL(M,N,R,z,I,L,P,F)){var V=M-B[0],ee=N-B[1],te=I-B[0],ne=L-B[1],re=1/OL(NL((V*te+ee*ne)/(kL(V*V+ee*ee)*kL(te*te+ne*ne)))/2),ie=kL(B[0]*B[0]+B[1]*B[1]);E=DL(T,(d-ie)/(re-1)),D=DL(T,(f-ie)/(re+1))}else E=D=0}}S>1e-12?D>1e-12?(O=HL(R,z,M,N,f,D,g),k=HL(I,L,P,F,f,D,g),s.moveTo(O.cx+O.x01,O.cy+O.y01),D<T?s.arc(O.cx,O.cy,D,wL(O.y01,O.x01),wL(k.y01,k.x01),!g):(s.arc(O.cx,O.cy,D,wL(O.y01,O.x01),wL(O.y11,O.x11),!g),s.arc(0,0,f,wL(O.cy+O.y11,O.cx+O.x11),wL(k.cy+k.y11,k.cx+k.x11),!g),s.arc(k.cx,k.cy,D,wL(k.y11,k.x11),wL(k.y01,k.x01),!g))):(s.moveTo(M,N),s.arc(0,0,f,_,v,!g)):s.moveTo(M,N),!(d>1e-12)||!(x>1e-12)?s.lineTo(P,F):E>1e-12?(O=HL(P,F,I,L,d,-E,g),k=HL(M,N,R,z,d,-E,g),s.lineTo(O.cx+O.x01,O.cy+O.y01),E<T?s.arc(O.cx,O.cy,E,wL(O.y01,O.x01),wL(k.y01,k.x01),!g):(s.arc(O.cx,O.cy,E,wL(O.y01,O.x01),wL(O.y11,O.x11),!g),s.arc(0,0,d,wL(O.cy+O.y11,O.cx+O.x11),wL(k.cy+k.y11,k.cx+k.x11),g),s.arc(k.cx,k.cy,E,wL(k.y11,k.x11),wL(k.y01,k.x01),!g))):s.arc(0,0,d,b,y,g)}if(s.closePath(),l)return s=null,l+``||null}return l.centroid=function(){var n=(+e.apply(this,arguments)+ +t.apply(this,arguments))/2,r=(+i.apply(this,arguments)+ +a.apply(this,arguments))/2-AL/2;return[TL(r)*n,OL(r)*n]},l.innerRadius=function(t){return arguments.length?(e=typeof t==`function`?t:SL(+t),l):e},l.outerRadius=function(e){return arguments.length?(t=typeof e==`function`?e:SL(+e),l):t},l.cornerRadius=function(e){return arguments.length?(n=typeof e==`function`?e:SL(+e),l):n},l.padRadius=function(e){return arguments.length?(r=e==null?null:typeof e==`function`?e:SL(+e),l):r},l.startAngle=function(e){return arguments.length?(i=typeof e==`function`?e:SL(+e),l):i},l.endAngle=function(e){return arguments.length?(a=typeof e==`function`?e:SL(+e),l):a},l.padAngle=function(e){return arguments.length?(o=typeof e==`function`?e:SL(+e),l):o},l.context=function(e){return arguments.length?(s=e??null,l):s},l}Array.prototype.slice;function WL(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function GL(e){this._context=e}GL.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t)}}};function KL(e){return new GL(e)}function qL(e){return e[0]}function JL(e){return e[1]}function YL(e,t){var n=SL(!0),r=null,i=KL,a=null,o=FL(s);e=typeof e==`function`?e:e===void 0?qL:SL(e),t=typeof t==`function`?t:t===void 0?JL:SL(t);function s(s){var c,l=(s=WL(s)).length,u,d=!1,f;for(r??(a=i(f=o())),c=0;c<=l;++c)!(c<l&&n(u=s[c],c,s))===d&&((d=!d)?a.lineStart():a.lineEnd()),d&&a.point(+e(u,c,s),+t(u,c,s));if(f)return a=null,f+``||null}return s.x=function(t){return arguments.length?(e=typeof t==`function`?t:SL(+t),s):e},s.y=function(e){return arguments.length?(t=typeof e==`function`?e:SL(+e),s):t},s.defined=function(e){return arguments.length?(n=typeof e==`function`?e:SL(!!e),s):n},s.curve=function(e){return arguments.length?(i=e,r!=null&&(a=i(r)),s):i},s.context=function(e){return arguments.length?(e==null?r=a=null:a=i(r=e),s):r},s}function XL(e,t,n){var r=null,i=SL(!0),a=null,o=KL,s=null,c=FL(l);e=typeof e==`function`?e:e===void 0?qL:SL(+e),t=typeof t==`function`?t:SL(t===void 0?0:+t),n=typeof n==`function`?n:n===void 0?JL:SL(+n);function l(l){var u,d,f,p=(l=WL(l)).length,m,h=!1,g,_=Array(p),v=Array(p);for(a??(s=o(g=c())),u=0;u<=p;++u){if(!(u<p&&i(m=l[u],u,l))===h){if(h=!h)d=u,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),f=u-1;f>=d;--f)s.point(_[f],v[f]);s.lineEnd(),s.areaEnd()}}h&&(_[u]=+e(m,u,l),v[u]=+t(m,u,l),s.point(r?+r(m,u,l):_[u],n?+n(m,u,l):v[u]))}if(g)return s=null,g+``||null}function u(){return YL().defined(i).curve(o).context(a)}return l.x=function(t){return arguments.length?(e=typeof t==`function`?t:SL(+t),r=null,l):e},l.x0=function(t){return arguments.length?(e=typeof t==`function`?t:SL(+t),l):e},l.x1=function(e){return arguments.length?(r=e==null?null:typeof e==`function`?e:SL(+e),l):r},l.y=function(e){return arguments.length?(t=typeof e==`function`?e:SL(+e),n=null,l):t},l.y0=function(e){return arguments.length?(t=typeof e==`function`?e:SL(+e),l):t},l.y1=function(e){return arguments.length?(n=e==null?null:typeof e==`function`?e:SL(+e),l):n},l.lineX0=l.lineY0=function(){return u().x(e).y(t)},l.lineY1=function(){return u().x(e).y(n)},l.lineX1=function(){return u().x(r).y(t)},l.defined=function(e){return arguments.length?(i=typeof e==`function`?e:SL(!!e),l):i},l.curve=function(e){return arguments.length?(o=e,a!=null&&(s=o(a)),l):o},l.context=function(e){return arguments.length?(e==null?a=s=null:s=o(a=e),l):a},l}function ZL(e){return e<0?-1:1}function QL(e,t,n){var r=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(r||i<0&&-0),o=(n-e._y1)/(i||r<0&&-0),s=(a*i+o*r)/(r+i);return(ZL(a)+ZL(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(s))||0}function $L(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function eR(e,t,n){var r=e._x0,i=e._y0,a=e._x1,o=e._y1,s=(a-r)/3;e._context.bezierCurveTo(r+s,i+s*t,a-s,o-s*n,a,o)}function tR(e){this._context=e}tR.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:eR(this,this._t0,$L(this,this._t0))}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,e!==this._x1||t!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,eR(this,$L(this,n=QL(this,e,t)),n);break;default:eR(this,this._t0,n=QL(this,e,t))}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}},Object.create(tR.prototype).point=function(e,t){tR.prototype.point.call(this,t,e)};function nR(e){return new tR(e)}function rR(e,t){this._context=e,this._t=t}rR.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}}this._x=e,this._y=t}};function iR(e){return new rR(e,1)}function aR(e,t,n){this.k=e,this.x=t,this.y=n}aR.prototype={constructor:aR,scale:function(e){return e===1?this:new aR(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new aR(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return`translate(`+this.x+`,`+this.y+`) scale(`+this.k+`)`}};var oR=new aR(1,0,0);sR.prototype=aR.prototype;function sR(e){for(;!e.__zoom;)if(!(e=e.parentNode))return oR;return e.__zoom}function cR(e,t=15){let n=e.split(` `),r=[],i=[],a=0;return n.forEach(e=>{a+e.length>t?(i.length&&r.push(i.join(` `)),i=[e],a=e.length):(i.push(e),a+=e.length+ +(i.length>0))}),i.length&&r.push(i.join(` `)),r}var lR={DECISIVE:20,ROUTINE:50},uR=new Set([`WALKOVER`,`DOUBLE_WALKOVER`,`DEFAULTED`,`DOUBLE_DEFAULT`]),dR={COMPETITIVE:`#16a34a`,ROUTINE:`#3b82f6`,DECISIVE:`#8e44ad`,WALKOVER:`#6b7280`},fR=`#cfd8dc`,pR=`COMPETITIVE`,mR=`ROUTINE`,hR=`DECISIVE`,gR=`WALKOVER`;function _R(e,t=lR){if(!e?.length)return;let n=[0,0],r=[0,0];for(let t of e)n[0]+=t.side1Score||0,n[1]+=t.side2Score||0,r[0]+=t.side1TiebreakScore||0,r[1]+=t.side2TiebreakScore||0;r[0]+r[1]&&(n[r[0]>r[1]?0:1]+=1);let i=Math.max(n[0],n[1]);if(i===0)return;let a=Math.round(Math.min(n[0],n[1])/i*100);return Number.isNaN(a)?gR:a<=t.DECISIVE?hR:a<=t.ROUTINE?mR:pR}function vR(e,n=lR){if(e)return _R(t.scoreGovernor.parseScoreString({scoreString:e}),n)}function yR({winningSide:e,matchUpStatus:t,sets:n,scoreString:r,bands:i}){if(t&&uR.has(t))return gR;if(e)return n?.length?_R(n,i):vR(r,i)}function bR(e,t){return e?t?.[e]??dR[e]:fR}var{WILDCARD:xR,QUALIFIER:SR,LUCKY_LOSER:CR}=t.entryStatusConstants,wR=`text-anchor`,TR=`dominant-baseline`,ER=`fill-opacity`,DR=Object.assign({},...t.fixtures.countries.filter(e=>e.ioc).map(e=>({[e.ioc]:e.iso2})),...t.fixtures.countries.filter(e=>e.iso).map(e=>({[e.iso]:e.iso2})));function OR(e){let t=Math.floor(e.length/2),n=e.slice(0,t),r=e.slice(t).reverse();return[...n,...r]}function kR(e){if(e)switch(e){case xR:return`WC`;case SR:return`Q`;case CR:return`LL`;default:return e}}function AR(e,t){let n=[];for(let r of e)for(let e of r.sides){let i=r.matchUpStatus===`BYE`&&!e.participantName;n.push({name:e.participantName||(i?`BYE`:``),participantName:e.participantName||(i?`BYE`:void 0),drawPosition:e.drawPosition,seedNumber:e.seedNumber,entryStatus:kR(e.entryStatus),nationalityCode:e.nationalityCode,matchUp:r,depth:t,value:1})}return n}function jR(e,t){let n=e.winningSide!==void 0&&e.winningSide!==null?e.sides.find(t=>t.sideNumber===e.winningSide):void 0;!n&&e.matchUpStatus===`BYE`&&(n=e.sides.find(e=>e.participantName));let r=n?.participantName,i=r?t.get(r):void 0;return{winnerName:r,winnerSide:n,winnerLookup:i}}function MR(e,t,n,r){return e.map((e,i)=>{let a=i*2,o=[t[a],t[a+1]].filter(Boolean),{winnerName:s,winnerSide:c,winnerLookup:l}=jR(e,r);return{name:s||``,participantName:s,drawPosition:l?.drawPosition??c?.drawPosition,seedNumber:c?.seedNumber??l?.seedNumber,entryStatus:kR(c?.entryStatus)??l?.entryStatus,nationalityCode:c?.nationalityCode??l?.nationalityCode,scoreString:e.scoreString,matchUpStatus:e.matchUpStatus,competitiveness:e.competitiveness,matchUp:e,depth:n,children:o.length>0?o:void 0}})}function NR(e){let{roundMatchUps:t}=e,n=Object.keys(t).map(Number).sort((e,t)=>e-t);if(n.length===0)throw Error(`No round data found in draw`);let r=t[n[0]],i=OR(AR(r,n.length)),a=new Map;for(let e of i)e.participantName&&e.participantName!==`BYE`&&a.set(e.participantName,e);let o=MR(OR(r),i,n.length-1,a);for(let e=1;e<n.length;e++)o=MR(OR(t[n[e]]),o,n.length-1-e,a);return o.length===1?o[0]:{name:`Tournament`,depth:0,children:o}}function PR(e,t){if(!e)return;let{seedNumber:n,entryStatus:r,drawPosition:i,participantName:a}=e,o;if(a?.trim().toUpperCase()===`BYE`)o=`#B0BEC5`;else if(n){let e=Number(n),t=aF().domain([1,32]).range([`0`,`1`]);o=aF().domain(kO(0,1,1/7)).range([`#81D4FA`,`#42A5F5`,`#1E88E5`,`#1565C0`,`#5C6BC0`,`#673AB7`,`#9C27B0`])(Number(t(e)))}else if(r?.toUpperCase()===`WC`)o=`red`;else if(r&&(r===`Q`||r===`LL`))o=aF().domain(kO(0,1,1/3)).range([`#FFF176`,`#FBC02D`,`#FF9800`])(t(i));else{let e=[`#C8E6C9`,`#81C784`,`#66BB6A`,`#4CAF50`,`#43A047`,`#388E3C`,`#2E7D32`,`#1B5E20`,`#A5D6A7`,`#90CAF9`,`#64B5F6`,`#42A5F5`,`#2196F3`,`#1E88E5`,`#1976D2`,`#1565C0`];o=aF().domain(kO(0,1,1/e.length)).range(e)(t(i))}e.color=o,e.children&&e.children.forEach(n=>{n.participantName===e.participantName&&(n.color=o),PR(n,t)})}function FR(e,t){e&&(e.competitivenessColor=e.children?.length&&e.competitiveness?bR(e.competitiveness,t):fR,e.children?.forEach(e=>FR(e,t)))}function IR(e,t){let n=[];return e.seedNumber?n.push(`Seed ${e.seedNumber}`):e.entryStatus&&n.push(e.entryStatus),t===7&&e.drawPosition&&n.push(`Draw ${e.drawPosition}`),n.length>0?n.join(` • `):void 0}function LR(e,t){let n=e.find(e=>e.data.participantName&&e.data.participantName!==t);return n?.data.participantName?n.data:void 0}function RR(e,t){let n=[e.participantName],r;if(t.children&&t.children.length>0)e.scoreString&&n.push(e.scoreString),r=LR(t.children,e.participantName),r&&n.push(r.participantName);else{let r=IR(e,t.depth);r&&n.push(r)}return{messageLines:n,opponentData:r}}function zR(e,t){return-(e*t/2)+t/2}function BR(e,t,n){let r=JA(e).append(`svg`).attr(`width`,t).attr(`height`,n).style(`display`,`block`),i=r.append(`g`).attr(`transform`,`translate(${t/2}, ${n/2})`);return{svg:r,g:i,flagsGroup:i.append(`g`).attr(`class`,`flags-group`),winningFlagsGroup:i.append(`g`).attr(`class`,`winning-flags-group`),losingFlagsGroup:i.append(`g`).attr(`class`,`losing-flags-group`)}}function VR(e,t,n,r,i){let a=e.append(`text`).attr(`x`,t/2).attr(`y`,n/2).attr(wR,`middle`).attr(TR,`middle`).attr(`font-size`,`${r}px`).attr(`font-weight`,`bold`).style(`fill`,`var(--chc-text-primary, #333)`).attr(`pointer-events`,`none`),o=r+i*.5;return{centerText:a,centerText2:e.append(`text`).attr(`x`,t/2).attr(`y`,n/2+o).attr(wR,`middle`).attr(TR,`middle`).attr(`font-size`,`${i}px`).style(`fill`,`var(--chc-text-secondary, #666)`).attr(`pointer-events`,`none`)}}function HR(e,t,n,r,i,a,o){n&&(i?(t.flagsGroup.selectAll(`text`).remove(),t.winningFlagsGroup.selectAll(`text`).remove(),t.losingFlagsGroup.selectAll(`text`).remove()):e.selectAll(`text`).remove(),e.append(`text`).attr(`font-size`,`${o}px`).attr(wR,`middle`).attr(TR,`middle`).attr(`transform`,`translate(0, ${r*a})`).text(KR(n)))}function UR(e,n,r,i={}){let a=i.width||800,o=i.height||800,s=Math.min(a,o)/800*(i.textScaleFactor??1),c=28*s,l=24*s,u=30*s,d=r||i.title||`Tournament`,f=Object.assign({},...t.fixtures.countries.filter(e=>e.label).map(e=>({[e.ioc]:e.label})));if(!Object.keys(n?.roundMatchUps??{}).length)return{highlightPlayer:()=>0,hide:()=>void 0,setColorMode:()=>void 0};let p=NR(n),m=AP(p,e=>e.children).sum(e=>e.value||0),h=Math.min(a,o)/2,g=h/2,_=e=>e*h/200;zP().size([2*Math.PI,h-g])(m),PR(p,aF().domain([0,n.drawSize||128]).range([0,1])),FR(p,i.competitivenessColors);let v=i.colorMode??`default`,y=e=>v===`competitiveness`?e.competitivenessColor||`#cfd8dc`:e.color||`#ccc`,b=m.descendants(),x=UL().startAngle(e=>e.x0).endAngle(e=>e.x1).innerRadius(e=>e.y0+g).outerRadius(e=>e.y1+g),{svg:S,g:C,flagsGroup:w,winningFlagsGroup:T,losingFlagsGroup:E}=BR(e,a,o),D=new Set,O=e=>{e.nationalityCode&&D.add(e.nationalityCode),e.children&&e.children.forEach(O)};O(p);let k=Array.from(D),{centerText:A,centerText2:j}=VR(S,a,o,c,l);function M(){let e=cR(d,15);A.text(``),A.selectAll(`tspan`).remove(),j.text(``),j.selectAll(`tspan`).remove(),A.selectAll(`tspan`).data(e).join(`tspan`).attr(`x`,a/2).attr(`dy`,(e,t)=>t===0?0:u).text(e=>e);let t=-(e.length*u/2)+u/2;A.attr(`y`,o/2+t),A.style(`display`,`block`),j.style(`display`,`none`)}function N(){if(w.selectAll(`text`).remove(),T.selectAll(`text`).remove(),E.selectAll(`text`).remove(),k.length===0)return;let e=aF().domain([0,k.length]).range([0,Math.PI*2]),t=_(20),n=g-t+10;w.selectAll(`text`).data(k).join(`text`).attr(`font-size`,`${t}px`).attr(wR,`middle`).attr(TR,`middle`).attr(`transform`,(t,r)=>{let i=e(r);return`translate(${Math.cos(i)*n}, ${Math.sin(i)*n})`}).text(e=>KR(e)).style(`cursor`,`pointer`).on(`mouseover`,function(e,t){let n=f[t]||t;A.selectAll(`tspan`).remove(),A.attr(`y`,o/2),A.text(n).style(`display`,`block`),j.selectAll(`tspan`).remove(),j.text(``).style(`display`,`none`),F||C.selectAll(`path`).attr(ER,e=>e.data.nationalityCode===t?.9:.3)}).on(`mouseout`,function(){F||C.selectAll(`path`).attr(ER,.8),M()})}N(),M();let P=i.eventHandlers?.clickCenter;P&&C.insert(`circle`,`:first-child`).attr(`r`,g).attr(`fill`,`transparent`).style(`cursor`,`pointer`).on(`click`,P);let F=!1,I;function L(e,t){let n=t.data;if(n.participantName){let{messageLines:e,opponentData:r}=RR(n,t);r&&(n.opponent=r),A.selectAll(`tspan`).remove(),A.text(``),A.selectAll(`tspan`).data(e).join(`tspan`).attr(`x`,a/2).attr(`dy`,(e,t)=>t===0?0:u).text(e=>e);let i=zR(e.length,u);A.attr(`y`,o/2+i),A.style(`display`,`block`),j.style(`display`,`none`)}F?n.participantName?.toLowerCase()!==I?.toLowerCase()&&JA(e.currentTarget).attr(ER,.9):C.selectAll(`path`).attr(ER,e=>e.data.participantName===t.data.participantName?.9:.3);let r=_(30),i=g-r-10,s={flagsGroup:w,winningFlagsGroup:T,losingFlagsGroup:E};HR(T,s,n.nationalityCode,-1,!0,i,r),n.opponent&&HR(E,s,n.opponent.nationalityCode,1,!1,i,r)}function R(e,t){if(F){let n=t.data.participantName?.toLowerCase()===I?.toLowerCase();JA(e.currentTarget).attr(ER,n?1:.2)}else C.selectAll(`path`).attr(ER,.8);N(),M()}let z=i.eventHandlers?.clickSegment;function B(e,t){if(!z)return;let n=t.data;z({participantName:n.participantName,drawPosition:n.drawPosition,seedNumber:n.seedNumber,entryStatus:n.entryStatus,nationalityCode:n.nationalityCode,scoreString:n.scoreString,matchUpStatus:n.matchUpStatus,competitiveness:n.competitiveness,roundName:n.roundName,depth:n.depth,matchUp:n.matchUp})}let V=C.selectAll(`path`).data(b).join(`path`).attr(`d`,e=>x(e)).attr(`fill`,e=>y(e.data)).attr(ER,.8).attr(`stroke`,`#fff`).attr(`stroke-width`,1).on(`mouseover`,L).on(`mouseout`,R);z&&V.style(`cursor`,`pointer`).on(`click`,B),V.append(`title`).text(e=>{let t=e.data;if(t.participantName){let e=[t.participantName,`Draw: ${t.drawPosition||`N/A`}`];return t.competitiveness&&e.push(`Competitiveness: ${t.competitiveness}`),e.join(`
|
|
215
|
-
`)}return`${t.name}\nDepth: ${e.depth}`});function ee(e){let t=0;return F=!!e,I=e,C.selectAll(`path`).attr(ER,n=>e?n.data.participantName?.toLowerCase()===e.toLowerCase()?(t+=1,1):.2:.8),t}function te(e){S.style(`display`,e?`none`:`block`)}function ne(e){v=e,C.selectAll(`path`).attr(`fill`,e=>y(e.data))}return{highlightPlayer:ee,hide:te,setColorMode:ne}}function WR(e={}){return{render:(t,n,r)=>UR(t,n,r,e)}}function GR(e){return e?.length===2?e&&String.fromCodePoint!==void 0?e.toUpperCase().replaceAll(/./g,e=>String.fromCodePoint((e.codePointAt(0)??0)+127397)):e:``}function KR(e){return GR(DR[e]||e)}var{LUCKY_LOSER:qR,WILDCARD:JR,QUALIFIER:YR}=t.entryStatusConstants,{WIN_RATIO:XR,ROUND_OUTCOME:ZR,MAIN:QR,CONTAINER:$R}=t.drawDefinitionConstants;function ez(e){return e?.finishingPosition===ZR&&e?.structureType!==$R}function tz(e){return e?.finishingPosition===XR||e?.structureType===$R}function nz(e){if(!e?.length)return;let t=e.filter(ez);if(t.length)return t.find(e=>e.stage===QR)??t[0]}function rz(e){if(tz(e))return{drawSize:0,roundMatchUps:{}};let t={};for(let[n,r]of Object.entries(e.roundMatchUps))t[Number(n)]=r.map(e=>({...e,winningSide:e.winningSide,drawPositions:e.drawPositions||[],competitiveness:yR({winningSide:e.winningSide,matchUpStatus:e.matchUpStatus,sets:e.score?.sets}),scoreString:e.winningSide===1?e.score?.scoreStringSide1:e.winningSide===2?e.score?.scoreStringSide2:void 0,sides:(e.sides||[]).map(e=>({sideNumber:e.sideNumber,drawPosition:e.drawPosition,participantName:e.participant?.participantName,nationalityCode:e.participant?.person?.nationalityCode,seedNumber:e.seedNumber,entryStatus:e.participant?.entryStatus}))}));return{drawSize:(t[1]?.length||0)*2,roundMatchUps:t,seedAssignments:e.seedAssignments}}var iz={LL:qR,WC:JR,Q:YR},az=[`R128`,`R64`,`R32`,`R16`,`QF`,`SF`,`F`];function oz(e){let t=sz(e);if(t.length===0)return{drawSize:0,roundMatchUps:{}};let n=t[0].data,r=n.length,i=cz(n),a=lz(t,e),o={};o[1]=dz(n,a,t);for(let e=1;e<t.length;e++)o[e+1]=fz(e,t,a,i);return{drawSize:r,roundMatchUps:o}}function sz(e){let t=[],n=!1;for(let r of az){let i=e[r];i&&i.length>0&&(n=!0),n&&i&&i.length>0&&t.push({key:r,data:i})}return t}function cz(e){let t=new Map;return e.forEach((e,n)=>{let r=pz(e.player);r&&r!==`BYE`&&t.set(r,{drawPosition:e.Draw??n+1,country:e.country,seed:e.seed,entry:e.entry})}),t}function lz(e,t){let n=new Map;for(let r=0;r<e.length;r++){let i=r+1<e.length?e[r+1].data:t.W||[],a=new Set;for(let e of i){let t=pz(e.player);t&&a.add(t)}n.set(e[r].key,a)}return n}function uz(e,t,n){if(e===`BYE`||t===`BYE`)return e===`BYE`?2:1;if(n.has(e))return 1;if(n.has(t))return 2}function dz(e,t,n){let r=[],i=t.get(n[0].key)||new Set;for(let t=0;t<e.length;t+=2){let a=e[t],o=e[t+1],s=pz(a?.player),c=pz(o?.player),l=s===`BYE`||c===`BYE`,u=uz(s,c,i),d;if(!l&&n.length>1){let e=n[1].data,t=u===1?s:c;d=e.find(e=>pz(e.player)===t)?.score}let f=l?`BYE`:u?`COMPLETED`:`TO_BE_PLAYED`;r.push({roundNumber:1,matchUpStatus:f,winningSide:u,drawPositions:[a?.Draw??t+1,o?.Draw??t+2],competitiveness:yR({winningSide:u,matchUpStatus:f,scoreString:d}),scoreString:d,sides:[hz(1,a,t+1),hz(2,o,t+2)]})}return r}function fz(e,t,n,r){let i=e+1,a=t[e].data,o=n.get(t[e].key)||new Set,s=[];for(let e=0;e<a.length;e+=2){let t=a[e],n=a[e+1],c=pz(t?.player),l=pz(n?.player),u=o.has(c)?1:o.has(l)?2:void 0,d=(u===1?t:u===2?n:void 0)?.score,f=u?`COMPLETED`:`TO_BE_PLAYED`;s.push({roundNumber:i,matchUpStatus:f,winningSide:u,drawPositions:[r.get(c)?.drawPosition??0,r.get(l)?.drawPosition??0],competitiveness:yR({winningSide:u,matchUpStatus:f,scoreString:d}),scoreString:d,sides:[gz(1,t,r),gz(2,n,r)]})}return s}function pz(e){if(!e)return``;let t=e.trim();return t.toUpperCase()===`BYE`?`BYE`:t}function mz(e){if(e)return iz[e.toUpperCase()]||e}function hz(e,t,n){if(!t)return{sideNumber:e,drawPosition:n};let r=pz(t.player);return{sideNumber:e,drawPosition:t.Draw??n,participantName:r||void 0,nationalityCode:t.country||void 0,seedNumber:t.seed?Number(t.seed):void 0,entryStatus:mz(t.entry)}}function gz(e,t,n){if(!t)return{sideNumber:e,drawPosition:0};let r=pz(t.player),i=n.get(r);return{sideNumber:e,drawPosition:i?.drawPosition??0,participantName:r||void 0,nationalityCode:t.country||i?.country||void 0,seedNumber:t.seed?Number(t.seed):i?.seed?Number(i.seed):void 0,entryStatus:mz(t.entry||i?.entry)}}var _z=480,vz=200,yz=280,bz={top:12,right:12,bottom:28,left:32},xz={top:12,right:12,bottom:12,left:12},Sz=.6,Cz=.9,wz=`http://www.w3.org/2000/svg`,Tz=`middle`,Ez=`text-anchor`,Dz=`dominant-baseline`,Oz=[`var(--chc-rating-low, #5b8ff9)`,`var(--chc-rating-high, #00b894)`];function kz(e,t,n){let r=document.createElementNS(wz,`svg`);return r.setAttribute(`width`,String(e)),r.setAttribute(`height`,String(t)),r.setAttribute(`viewBox`,`0 0 ${e} ${t}`),r.setAttribute(`class`,`chc-rating-distribution-chart`),n&&r.setAttribute(`aria-label`,n),r}function Az(e,t,n){return n<=1||t/(n-1)<.5?Oz[0]:Oz[1]}function jz(e,t,n,r){return r?r(e,t):Az(e,t,n)}function Mz(e){return`${e.binStart.toFixed(1)}–${e.binEnd.toFixed(1)}`}function Nz(e){let{stats:t,width:n,height:r,margin:i,showAxis:a,showCounts:o,showMean:s,binColor:c,ariaLabel:l}=e,u=kz(n,r,l),d=JA(u).append(`g`).attr(`class`,`chc-rdc-histogram`).attr(`transform`,`translate(${i.left}, ${i.top})`),f=Math.max(0,n-i.left-i.right),p=Math.max(0,r-i.top-i.bottom);if(t.histogram.length===0||f===0||p===0)return u;let m=UP().domain(t.histogram.map(Mz)).range([0,f]).padding(.12),h=aF().domain([0,OO(t.histogram,e=>e.count)??0]).nice().range([p,0]),g=t.histogram.length;if(d.selectAll(`rect.chc-rdc-bar`).data(t.histogram).enter().append(`rect`).attr(`class`,`chc-rdc-bar`).attr(`x`,e=>m(Mz(e))??0).attr(`y`,e=>h(e.count)).attr(`width`,m.bandwidth()).attr(`height`,e=>p-h(e.count)).attr(`fill`,(e,t)=>jz(e,t,g,c)).append(`title`).text(e=>`${Mz(e)}: ${e.count}`),o&&d.selectAll(`text.chc-rdc-count`).data(t.histogram).enter().append(`text`).attr(`class`,`chc-rdc-count`).attr(`x`,e=>(m(Mz(e))??0)+m.bandwidth()/2).attr(`y`,e=>h(e.count)-4).attr(Ez,Tz).attr(`font-size`,`11`).attr(`fill`,`var(--chc-rdc-count-color, var(--chc-text-primary, #111827))`).text(e=>e.count>0?String(e.count):``),a){let e=t.histogram.map(Mz),n=f/g>=55?e:[e[0],e.at(-1)].filter((e,t,n)=>n.indexOf(e)===t);d.append(`g`).attr(`class`,`chc-rdc-axis`).attr(`transform`,`translate(0, ${p})`).call(HO(m).tickValues(n).tickSize(0)).call(e=>e.select(`.domain`).remove()).call(e=>e.selectAll(`text`).attr(`font-size`,`10`).attr(`dy`,`0.9em`))}if(s&&Number.isFinite(t.mean)&&t.histogram.length>0){let e=t.histogram[0],n=t.histogram.at(-1),r=(t.mean-e.binStart)/(n.binEnd-e.binStart);if(r>=0&&r<=1){let e=r*f;d.append(`line`).attr(`class`,`chc-rdc-mean`).attr(`x1`,e).attr(`x2`,e).attr(`y1`,0).attr(`y2`,p).attr(`stroke`,`var(--chc-rating-mean, #d63031)`).attr(`stroke-dasharray`,`4 3`).attr(`stroke-width`,1.5)}}return u}function Pz(e,t,n,r){return[e+n*Math.sin(r),t-n*Math.cos(r)]}function Fz(e,t,n,r,i,a){let[o,s]=Pz(e,t,n,i),[c,l]=Pz(e,t,n,a),[u,d]=Pz(e,t,r,a),[f,p]=Pz(e,t,r,i),m=+(a-i>Math.PI);return[`M ${o} ${s}`,`A ${n} ${n} 0 ${m} 1 ${c} ${l}`,`L ${u} ${d}`,`A ${r} ${r} 0 ${m} 0 ${f} ${p}`,`Z`].join(` `)}function Iz(e){let{stats:t,size:n,margin:r,showCounts:i,binColor:a,ariaLabel:o}=e,s=kz(n,n,o);if(t.histogram.length===0||t.count===0)return s;let c=(n-Math.max(r.left+r.right,r.top+r.bottom))/2,l=n/2,u=n/2,d=c*Cz,f=c*Sz,p=0,m=t.histogram.length;for(let e=0;e<m;e++){let n=t.histogram[e];if(n.count===0)continue;let r=n.count/t.count*2*Math.PI,o=p,c=p+r,h=document.createElementNS(wz,`path`);if(h.setAttribute(`class`,`chc-rdc-slice`),h.setAttribute(`d`,Fz(l,u,d,f,o,c)),h.setAttribute(`fill`,jz(n,e,m,a)),s.appendChild(h),i){let e=o+r/2,[t,i]=Pz(l,u,(d+f)/2,e),a=document.createElementNS(wz,`text`);a.setAttribute(`class`,`chc-rdc-slice-label`),a.setAttribute(`x`,String(t)),a.setAttribute(`y`,String(i)),a.setAttribute(Ez,Tz),a.setAttribute(Dz,Tz),a.setAttribute(`font-size`,`11`),a.setAttribute(`fill`,`var(--chc-rating-label, #2d3436)`),a.textContent=String(n.count),s.appendChild(a)}p=c}let h=document.createElementNS(wz,`text`);return h.setAttribute(`class`,`chc-rdc-center-count`),h.setAttribute(`x`,String(l)),h.setAttribute(`y`,String(u)),h.setAttribute(Ez,Tz),h.setAttribute(Dz,Tz),h.setAttribute(`font-size`,`20`),h.setAttribute(`font-weight`,`600`),h.textContent=String(t.count),s.appendChild(h),s}function Lz(e,t={}){let n=t.mode??`HISTOGRAM`,r=t.ariaLabel??`Participant rating distribution`;return n===`DONUT`?Iz({stats:e,size:t.width??t.height??yz,margin:t.margin??xz,showCounts:t.showCounts??!0,binColor:t.binColor,ariaLabel:r}):Nz({stats:e,width:t.width??_z,height:t.height??vz,margin:t.margin??bz,showAxis:t.showAxis??!0,showCounts:t.showCounts??!0,showMean:t.showMean??!0,binColor:t.binColor,ariaLabel:r})}var Rz=`http://www.w3.org/2000/svg`,zz={top:36,right:16,bottom:28,left:56},Bz=600,Vz=260,Hz=6,Uz=8;function Wz(e,t){let n=document.createElementNS(Rz,`svg`);n.classList.add(`lc-svg`),e.appendChild(n);let r={container:e,svg:n,config:{...t},destroyed:!1};return Gz(r),{element:n,update(e){r.destroyed||(r.config={...r.config,...e},Gz(r))},destroy(){r.destroyed||(r.destroyed=!0,n.parentNode===e&&e.removeChild(n))}}}function Gz(e){let{svg:t,container:n,config:r}=e,i={...zz,...r.margins||{}},a=n.clientWidth||Bz,o=r.width??a,s=r.height??Vz;for(;t.firstChild;)t.removeChild(t.firstChild);t.setAttribute(`width`,String(o)),t.setAttribute(`height`,String(s)),t.setAttribute(`viewBox`,`0 0 ${o} ${s}`);let c=Math.max(0,o-i.left-i.right),l=Math.max(0,s-i.top-i.bottom),u=(r.data||[]).map(e=>({...e,_dateValue:e.date instanceof Date?e.date:new Date(e.date),_rung:Math.max(0,Math.min(r.rungs.length-1,e.rung))})).filter(e=>!Number.isNaN(e._dateValue.getTime())).sort((e,t)=>e._dateValue.getTime()-t._dateValue.getTime());if(r.title){let e=document.createElementNS(Rz,`text`);e.setAttribute(`class`,`lc-title`),e.setAttribute(`x`,String(i.left)),e.setAttribute(`y`,String(Math.max(16,i.top-12))),e.textContent=r.title,t.appendChild(e)}if(!u.length){let e=document.createElementNS(Rz,`text`);e.setAttribute(`class`,`lc-empty`),e.setAttribute(`x`,String(o/2)),e.setAttribute(`y`,String(s/2)),e.setAttribute(`text-anchor`,`middle`),e.textContent=`No data`,t.appendChild(e);return}let d=hO(u,e=>e._dateValue),f=Math.max(3,(d[1].getTime()-d[0].getTime())/864e5*.04),p=new Date(d[0].getTime()-f*864e5),m=new Date(d[1].getTime()+f*864e5),h=xL().domain([p,m]).range([0,c]),g=GP().domain([...r.rungs].reverse()).range([0,l]).padding(.5),_=document.createElementNS(Rz,`g`);_.setAttribute(`transform`,`translate(${i.left},${i.top})`),t.appendChild(_);let v=document.createElementNS(Rz,`g`);v.setAttribute(`class`,`lc-axis lc-axis-y`),_.appendChild(v),JA(v).call(UO(g).tickSize(-c).tickPadding(8));let y=document.createElementNS(Rz,`g`);y.setAttribute(`class`,`lc-axis lc-axis-x`),y.setAttribute(`transform`,`translate(0,${l})`),_.appendChild(y);let b=d[1].getFullYear()-d[0].getFullYear()>=1?`%Y`:`%b`,x=r.xTickFormat??b;if(JA(y).call(HO(h).ticks(r.xMaxTicks??Uz).tickFormat(gL(x))),r.showConnector!==!1&&u.length>1){let e=YL().x(e=>h(e._dateValue)).y(e=>g(r.rungs[e._rung])??0).curve(iR),t=document.createElementNS(Rz,`path`);t.setAttribute(`class`,`lc-connector`),t.setAttribute(`d`,e(u)||``),r.connectorColor&&(t.style.stroke=r.connectorColor),_.appendChild(t)}let S=document.createElementNS(Rz,`g`);S.setAttribute(`class`,`lc-marks`),_.appendChild(S);for(let e of u){let t=h(e._dateValue),n=g(r.rungs[e._rung])??0,i=e.radius??r.markRadius??Hz,a=document.createElementNS(Rz,`circle`);if(a.setAttribute(`class`,`lc-mark`),a.setAttribute(`cx`,String(t)),a.setAttribute(`cy`,String(n)),a.setAttribute(`r`,String(i)),(e.color||r.markColor)&&(a.style.fill=e.color??r.markColor),e.label){let t=[e.label,e.detail].filter(Boolean).join(` — `);a.setAttribute(`aria-label`,t);let n=document.createElementNS(Rz,`title`);n.textContent=t,a.appendChild(n)}r.onMarkClick&&(a.style.cursor=`pointer`,a.addEventListener(`click`,t=>r.onMarkClick(e,t))),r.onMarkHover&&(a.addEventListener(`mouseenter`,t=>r.onMarkHover(e,t)),a.addEventListener(`mouseleave`,e=>r.onMarkHover(null,e))),S.appendChild(a)}if(r.source){let e=document.createElementNS(Rz,`text`);e.setAttribute(`class`,`lc-source`),e.setAttribute(`x`,String(o-i.right)),e.setAttribute(`y`,String(s-6)),e.setAttribute(`text-anchor`,`end`),e.textContent=`Source: ${r.source}`,t.appendChild(e)}}var Kz=`http://www.w3.org/2000/svg`,qz=`text-anchor`,Jz=`dominant-baseline`,Yz=`class`,Xz=`middle`,Zz=520,Qz=240,$z={top:16,right:64,bottom:28,left:44},eB=5,tB=3;function nB(e,t,n){let r=n-t;if(n>=3){if(r===1)return`F`;if(r===2)return`SF`;if(r===3)return`QF`}return`R${t+1}`}function rB(e,t){let n=document.createElementNS(Kz,e);return t&&n.setAttribute(Yz,t),n}function iB(e){let t=Math.round(e);return t>0?`+${t}`:String(t)}function aB(e,t){if(t)return t;let n=[];for(let t of e)for(let e of[t.projected.expected,t.projected.low,t.projected.high,t.actual])e!=null&&n.push(e);if(!n.length)return[-100,100];let r=Math.max(Math.abs(Math.min(...n)),Math.abs(Math.max(...n)),50)*1.15;return[-r,r]}function oB(e,t){let n=t.width??Zz,r=t.height??Qz,i=t.margin??(t.spark?{top:6,right:6,bottom:6,left:6}:$z),a=Math.max(1,n-i.left-i.right),o=Math.max(1,r-i.top-i.bottom),s=aF().domain([0,Math.max(1,e.length-1)]).range([0,a]),c=aB(e,t.yDomain),l=aF().domain(c).range([o,0]);return{x:e=>s(e),y:e=>l(e),yDomain:c,innerWidth:a,innerHeight:o,margin:i}}function sB(e,t,n){let r=t.map((e,t)=>({point:e,index:t})).filter(({point:e})=>e.projected.low!==null&&e.projected.high!==null);if(r.length<2)return;let i=XL().x(({index:e})=>n.x(e)).y0(({point:e})=>n.y(e.projected.low)).y1(({point:e})=>n.y(e.projected.high)),a=rB(`path`,`chc-pc__band`);a.setAttribute(`d`,i(r)??``),e.appendChild(a)}function cB({group:e,points:t,geometry:n,className:r,accessor:i}){let a=t.map((e,t)=>({point:e,index:t})).filter(({point:e})=>i(e)!==null);if(a.length<2)return;let o=YL().x(({index:e})=>n.x(e)).y(({point:e})=>n.y(i(e))),s=rB(`path`,r);s.setAttribute(`d`,o(a)??``),e.appendChild(s)}function lB(e){return bR(e)}function uB({group:e,points:t,geometry:n,radius:r,onHover:i}){t.forEach((t,a)=>{if(t.actual===null)return;let o=rB(`circle`,t.won===!1?`chc-pc__marker chc-pc__marker--lost`:`chc-pc__marker`);o.setAttribute(`cx`,String(n.x(a))),o.setAttribute(`cy`,String(n.y(t.actual))),o.setAttribute(`r`,String(r)),o.setAttribute(`fill`,lB(t.competitiveness));let s=document.createElementNS(Kz,`title`);s.textContent=`Round ${t.roundNumber}: ${iB(t.actual)} · ${t.competitiveness??`unclassified`}`,o.appendChild(s),i&&(o.addEventListener(`mouseenter`,e=>i(t,a,e)),o.addEventListener(`mousemove`,e=>i(t,a,e))),e.appendChild(o)})}function dB({group:e,geometry:t}){let[n,r]=t.yDomain,i=fB(Math.max(Math.abs(n),Math.abs(r)));for(let a of[-i,i]){if(a<n||a>r)continue;let i=rB(`line`,`chc-pc__tick`);i.setAttribute(`x1`,`0`),i.setAttribute(`x2`,String(t.innerWidth)),i.setAttribute(`y1`,String(t.y(a))),i.setAttribute(`y2`,String(t.y(a))),e.appendChild(i);let o=rB(`text`,`chc-pc__tick-label`);o.setAttribute(`x`,`-6`),o.setAttribute(`y`,String(t.y(a))),o.setAttribute(qz,`end`),o.setAttribute(Jz,Xz),o.textContent=iB(a),e.appendChild(o)}}function fB(e){if(!Number.isFinite(e)||e<=0)return 1;let t=e/2,n=10**Math.floor(Math.log10(t)),r=t/n;return(r>=5&&5||r>=2&&2||1)*n}function pB({group:e,points:t,geometry:n,options:r}){let i=rB(`line`,`chc-pc__zero`);if(i.setAttribute(`x1`,`0`),i.setAttribute(`x2`,String(n.innerWidth)),i.setAttribute(`y1`,String(n.y(0))),i.setAttribute(`y2`,String(n.y(0))),e.appendChild(i),r.spark)return;dB({group:e,geometry:n});let a=rB(`text`,`chc-pc__axis-label`);a.setAttribute(`x`,String(n.innerWidth+6)),a.setAttribute(`y`,String(n.y(0))),a.setAttribute(Jz,Xz),a.textContent=`even`,e.appendChild(a);let o=r.roundLabels??nB;t.forEach((r,i)=>{let a=rB(`text`,`chc-pc__round-label`);if(a.setAttribute(`x`,String(n.x(i))),a.setAttribute(`y`,String(n.innerHeight+16)),a.setAttribute(qz,Xz),a.textContent=o(r.roundNumber,i,t.length),e.appendChild(a),r.bye){let t=rB(`text`,`chc-pc__bye`);t.setAttribute(`x`,String(n.x(i))),t.setAttribute(`y`,String(n.y(0)-8)),t.setAttribute(qz,Xz),t.textContent=`bye`,e.appendChild(t)}});let s=rB(`text`,`chc-pc__axis-label`);s.setAttribute(`x`,`0`),s.setAttribute(`y`,`-4`),s.textContent=r.scaleName?`opponent strength vs own (${r.scaleName}, ELO-equivalent)`:`opponent strength vs own`,e.appendChild(s)}function mB({group:e,points:t,geometry:n}){let r=[...t].reverse().find(e=>e.projected.expected!==null),i=[...t].reverse().find(e=>e.actual!==null);if(r){let i=t.indexOf(r),a=rB(`text`,`chc-pc__series-label`);a.setAttribute(`x`,String(n.x(i)+8)),a.setAttribute(`y`,String(n.y(r.projected.expected))),a.setAttribute(Jz,Xz),a.setAttribute(`fill`,`var(--chc-pc-projected)`),a.textContent=`projected`,e.appendChild(a)}if(i){let r=t.indexOf(i),a=r<t.length-1,o=rB(`text`,`chc-pc__series-label`);o.setAttribute(`x`,String(n.x(r)+8)),o.setAttribute(`y`,String(n.y(i.actual)+(a?-12:0))),o.setAttribute(Jz,Xz),o.textContent=`actual`,e.appendChild(o)}}function hB(){let e=document.createElement(`div`);e.className=`chc-pc__legend`;for(let[t,n]of[[`chc-pc__legend-swatch chc-pc__legend-swatch--band`,`possible opponents`],[`chc-pc__legend-swatch chc-pc__legend-swatch--projected`,`projected`],[`chc-pc__legend-swatch chc-pc__legend-swatch--line`,`actual`]]){let r=document.createElement(`span`);r.className=`chc-pc__legend-item`;let i=document.createElement(`span`);i.className=t,r.append(i,document.createTextNode(n)),e.appendChild(r)}for(let t of[`COMPETITIVE`,`ROUTINE`,`DECISIVE`]){let n=document.createElement(`span`);n.className=`chc-pc__legend-item`;let r=document.createElement(`span`);r.className=`chc-pc__legend-swatch`,r.style.background=bR(t),n.append(r,document.createTextNode(t.toLowerCase())),e.appendChild(n)}return e}function gB(){let e=document.createElement(`div`);return e.className=`chc-pc__tooltip`,e.dataset.visible=`false`,e}function _B(e,t){let n=document.createElement(`div`);n.className=`chc-pc__tooltip-row`;let r=document.createElement(`span`);r.textContent=e;let i=document.createElement(`span`);return i.textContent=t,n.append(r,i),n}function vB(e,t){e.replaceChildren();let n=document.createElement(`div`);n.className=`chc-pc__tooltip-title`,n.textContent=`Round ${t.roundNumber}`,e.appendChild(n),t.actual!==null&&e.appendChild(_B(`faced`,iB(t.actual))),t.competitiveness&&e.appendChild(_B(`scoreline`,t.competitiveness.toLowerCase())),t.won!==void 0&&e.appendChild(_B(`result`,t.won?`won`:`lost`)),t.projected.expected!==null&&e.appendChild(_B(`projected`,iB(t.projected.expected))),t.projected.low!==null&&t.projected.high!==null&&e.appendChild(_B(`range`,`${iB(t.projected.low)} … ${iB(t.projected.high)}`)),e.appendChild(_B(`reach`,`${Math.round(t.reachProbability*100)}%`))}function yB(e){let t=document.createElement(`div`);return t.className=`chc-pc__empty`,t.textContent=e,t}function bB(e,t,n={}){let r=document.createElement(`div`);r.className=`chc-pc`,e.appendChild(r);let i=gB();function a(e,t){r.replaceChildren();let n=e?.points??[];if(!e||!n.length||!e.rating){r.appendChild(yB(t.emptyMessage??`No rating data for this draw, so no pressure to plot.`));return}let a=t.width??Zz,o=t.height??Qz,s=oB(n,t),c=rB(`svg`,`chc-pc__svg`);c.setAttribute(`width`,String(a)),c.setAttribute(`height`,String(o)),c.setAttribute(`viewBox`,`0 0 ${a} ${o}`),c.setAttribute(`role`,`img`),c.setAttribute(`aria-label`,t.ariaLabel??`Projected and actual opponent difficulty by round for ${e.participantName??e.participantId}`);let l=rB(`g`);l.setAttribute(`transform`,`translate(${s.margin.left}, ${s.margin.top})`),c.appendChild(l),sB(l,n,s),pB({group:l,points:n,geometry:s,options:t}),cB({group:l,points:n,geometry:s,className:`chc-pc__projected-line`,accessor:e=>e.projected.expected}),cB({group:l,points:n,geometry:s,className:`chc-pc__actual-line`,accessor:e=>e.actual}),uB({group:l,points:n,geometry:s,radius:t.spark?tB:eB,onHover:t.spark?void 0:(e,t,n)=>{vB(i,e),i.dataset.visible=`true`,i.style.left=`${n.offsetX+12}px`,i.style.top=`${n.offsetY+12}px`}}),t.spark||mB({group:l,points:n,geometry:s}),r.appendChild(c),t.spark||(r.appendChild(i),t.showLegend!==!1&&r.appendChild(hB()),r.addEventListener(`mouseleave`,()=>{i.dataset.visible=`false`}))}return a(t,n),{element:r,update:(e,t)=>a(e,{...n,...t}),destroy:()=>{JA(r).remove()}}}var xB={NO_MATCHUPS:`NO_MATCHUPS`,NOT_ELIMINATION:`NOT_ELIMINATION`,NO_RATINGS:`NO_RATINGS`};function SB(e){return{participantId:e?.participant?.participantId??e?.participantId,participant:e?.participant,drawPosition:e?.drawPosition,bye:!!e?.bye}}function CB(e){let t=e?.roundNumber,n=e?.roundPosition;if(typeof t!=`number`||typeof n!=`number`)return null;let r=Array.isArray(e.sides)?e.sides:[],i=r.find(e=>e?.sideNumber===1)??r[0],a=r.find(e=>e?.sideNumber===2)??r[1];return{matchUpId:e.matchUpId,roundNumber:t,roundPosition:n,sides:[SB(i),SB(a)],winningSide:e.winningSide,matchUpStatus:e.matchUpStatus,raw:e}}function wB(e){if(!Array.isArray(e)||!e.length)return{unsupported:xB.NO_MATCHUPS};let t=new Map;for(let n of e){let e=CB(n);if(!e)continue;let r=t.get(e.roundNumber)??new Map;r.set(e.roundPosition,e),t.set(e.roundNumber,r)}let n=[...t.keys()].toSorted((e,t)=>e-t);if(!n.length)return{unsupported:xB.NOT_ELIMINATION};let r=n[0];for(let e=1;e<n.length;e+=1){let r=t.get(n[e-1])?.size??0,i=t.get(n[e])?.size??0;if(n[e]!==n[e-1]+1||i*2!==r)return{unsupported:xB.NOT_ELIMINATION}}return n.length===1&&(t.get(r)?.size??0)>1?{unsupported:xB.NOT_ELIMINATION}:{graph:{roundNumbers:n,byRound:t,firstRound:r}}}function TB(e){return[e*2-1,e*2]}function EB(e){return e.matchUpStatus===`BYE`||e.sides.some(e=>e.bye)}var{ELO:DB}=t.ratingConstants,OB=`SINGLES`,kB=`DOUBLES`;function AB(){return t.fixtures?.ratingsParameters??{}}function jB({value:e,sourceRange:t,targetRange:n}){if(!Array.isArray(t)||t.length!==2||!Array.isArray(n)||n.length!==2)return 0;let r=Math.min(...t),i=Math.max(...t),a=Math.min(...n),o=Math.max(...n);return i===r?a:(e-r)*(o-a)/(i-r)+a}function MB({scaleName:e,value:t}){if(typeof t!=`number`||Number.isNaN(t))return;if(e===DB)return t;let n=e?AB()[e]?.range:void 0;if(!n)return;let r=AB()[DB]?.range;if(r)return jB({value:n[0]>n[1]?n[0]-t:t,sourceRange:n,targetRange:r})}function NB(e){if(typeof e==`number`)return Number.isNaN(e)?void 0:e;if(typeof e!=`string`||!e.trim())return;let t=Number.parseFloat(e);return Number.isNaN(t)?void 0:t}function PB(e,t){let n=NB(t);if(n!==void 0)return n;if(!t||typeof t!=`object`)return;let r=AB()[e],i=[r?.accessor,...r?.accessors??[]].filter(Boolean);for(let e of i){let n=NB(t[e]);if(n!==void 0)return n}}function FB({participant:e,matchUpType:t,preferredScaleName:n}){let r=t===kB?kB:OB,i=e?.ratings?.[r];if(!Array.isArray(i)||!i.length)return null;let a=(n&&i.find(e=>e?.scaleName===n))??i.find(e=>typeof e?.scaleName==`string`);if(!a?.scaleName)return null;let o=PB(a.scaleName,a.scaleValue);if(o===void 0)return null;let s=MB({scaleName:a.scaleName,value:o});return s===void 0?null:{elo:s,scaleName:a.scaleName,sourceValue:o}}function IB(e){let t=new Map;for(let n of e)n&&t.set(n.scaleName,(t.get(n.scaleName)??0)+1);if(t.size)return[...t.entries()].toSorted((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0],`en`))[0][0]}function LB(e,t,n){let r=n?.divisor??400;return r?1/(1+10**((t-e)/r)):.5}function RB(e,t,n){return e===null||t===null?.5:LB(e,t,n)}function zB(e){return e.sides.map(e=>e.bye?void 0:e.participantId)}function BB(e,t){let n=new Map,[r,i]=zB(e);if(t.respectResults&&e.winningSide){let t=zB(e)[e.winningSide-1];return t&&n.set(t,1),n}if(r&&!i)n.set(r,1);else if(i&&!r)n.set(i,1);else if(r&&i){let e=RB(t.eloOf.get(r)??null,t.eloOf.get(i)??null,t.model);n.set(r,e),n.set(i,1-e)}return n}function VB(e,t,n){if(!t.size)return 1;let r=0;for(let[i,a]of t)r+=a*RB(n.eloOf.get(e)??null,n.eloOf.get(i)??null,n.model);return r}function HB(e,t,n){let r=new Map;if(!e.size)return new Map(t);if(!t.size)return new Map(e);for(let[i,a]of e)r.set(i,a*VB(i,t,n));for(let[i,a]of t)r.set(i,a*VB(i,e,n));return r}function UB(e,t,n){if(n.respectResults&&e.winningSide){let t=zB(e)[e.winningSide-1];if(t)return new Map([[t,1]])}return HB(t[0],t[1],n)}function WB(e,t){let n=new Map;for(let r of e.roundNumbers){let i=e.byRound.get(r),a=new Map;if(i){for(let[o,s]of i){if(r===e.firstRound){a.set(o,BB(s,t));continue}let i=n.get(r-1),[c,l]=TB(o),u=[i?.get(c)??new Map,i?.get(l)??new Map];a.set(o,UB(s,u,t))}n.set(r,a)}}return n}function GB({opponents:e,context:t,names:n,rangeThreshold:r}){let i=0,a=0,o=[],s=[];for(let[c,l]of e){let e=t.eloOf.get(c)??null;s.push({participantId:c,participantName:n.get(c),probability:l,elo:e}),e!==null&&(i+=l,a+=l*e,l>=r&&o.push(e))}return{expectedOpponentElo:i?a/i:null,opponentEloRange:o.length?[Math.min(...o),Math.max(...o)]:null,possibleOpponentCount:e.size,possibleOpponents:s.toSorted((e,t)=>t.probability-e.probability||e.participantId.localeCompare(t.participantId,`en`))}}function KB({graph:e,winners:t,roundNumber:n,feederPosition:r}){if(n===e.firstRound)return new Map;let i=r%2==1?r+1:r-1;return t.get(n-1)?.get(i)??new Map}function qB(e,t){let n=new Map;for(let r of e.sides)!r.bye&&r.participantId&&r.participantId!==t&&n.set(r.participantId,1);return n}function JB({participantId:e,entryMatchUp:t,graph:n,winners:r,context:i,ratings:a,names:o,rangeThreshold:s}){let c=a.get(e)??null,l=[],u=t.roundPosition,d=u,f=1;for(let t of n.roundNumbers){let a=n.byRound.get(t)?.get(u),p=t===n.firstRound&&!!a&&EB(a),m=GB({opponents:t===n.firstRound&&a?qB(a,e):KB({graph:n,winners:r,roundNumber:t,feederPosition:d}),context:i,names:o,rangeThreshold:s}),h=m.expectedOpponentElo!==null&&c?m.expectedOpponentElo-c.elo:null;l.push({roundNumber:t,reachProbability:f,expectedSignedDelta:h,resolved:m.possibleOpponentCount===1,bye:p,...m}),f=r.get(t)?.get(u)?.get(e)??0,d=u,u=Math.ceil(u/2)}return{participantId:e,participantName:t.sides.find(t=>t.participantId===e)?.participant?.participantName,drawPosition:t.sides.find(t=>t.participantId===e)?.drawPosition,rating:c,rounds:l,pathDifficulty:YB(l),slotDifficulty:XB(l),expectedMatchesPlayed:l.reduce((e,t)=>e+(t.bye?0:t.reachProbability),0)}}function YB(e){let t=0,n=0;for(let r of e)r.bye||r.expectedSignedDelta===null||(t+=r.reachProbability,n+=r.reachProbability*r.expectedSignedDelta);return t?n/t:null}function XB(e){let t=e.filter(e=>!e.bye&&e.expectedSignedDelta!==null).map(e=>e.expectedSignedDelta);return t.length?t.reduce((e,t)=>e+t,0)/t.length:null}function ZB(e){let t=new Map,n=e.byRound.get(e.firstRound);if(!n)return t;for(let e of n.values())for(let n of e.sides)!n.bye&&n.participantId&&t.set(n.participantId,e);return t}function QB(e){let{graph:t,unsupported:n}=wB(e.matchUps);if(!t)return{projections:[],unsupported:n,unratedCount:0};let r=ZB(t);if(!r.size)return{projections:[],unsupported:xB.NO_MATCHUPS,unratedCount:0};let i=new Map,a=new Map,o=new Map;for(let[t,n]of r){let r=n.sides.find(e=>e.participantId===t),s=FB({participant:r?.participant,matchUpType:e.matchUpType,preferredScaleName:e.scaleName});i.set(t,s),a.set(t,s?.elo??null),o.set(t,r?.participant?.participantName)}let s=[...i.values()].filter(e=>!e).length;if(s===i.size)return{projections:[],unsupported:xB.NO_RATINGS,unratedCount:s};let c={eloOf:a,model:e.model,respectResults:!!e.respectResults},l=WB(t,c),u=e.rangeThreshold??.01;return{projections:[...r.entries()].map(([e,n])=>JB({participantId:e,entryMatchUp:n,graph:t,winners:l,context:c,ratings:i,names:o,rangeThreshold:u})).toSorted((e,t)=>(e.drawPosition??0)-(t.drawPosition??0)),scaleName:IB([...i.values()]),unratedCount:s}}function $B(e){return e.raw?.competitiveProfile?.competitiveness||yR({winningSide:e.winningSide,matchUpStatus:e.matchUpStatus,sets:e.raw?.score?.sets,scoreString:e.raw?.score?.scoreStringSide1})}function eV(e,t){return FB({participant:e?.participant,matchUpType:t.matchUpType,preferredScaleName:t.scaleName})}function tV({matchUp:e,participantId:t,ownElo:n,params:r}){let i=e.sides.findIndex(e=>e.participantId===t),a=e.sides[1-i],o=EB(e),s=!!e.winningSide,c=(o||!s?null:eV(a,r))?.elo??null;return{roundNumber:e.roundNumber,matchUpId:e.matchUpId,opponentParticipantId:o?void 0:a?.participantId,opponentParticipantName:o?void 0:a?.participant?.participantName,opponentElo:c,signedDelta:c!==null&&n!==null?c-n:null,competitiveness:o||!s?void 0:$B(e),won:s?e.winningSide===i+1:void 0,bye:o}}function nV(e){let{graph:t}=wB(e.matchUps);if(!t)return[];let n=new Map,r=new Map;for(let i of t.byRound.values())for(let t of i.values())for(let i of t.sides){if(i.bye||!i.participantId)continue;let a=n.get(i.participantId)??[];a.push(t),n.set(i.participantId,a),r.has(i.participantId)||r.set(i.participantId,eV(i,e))}return[...n.entries()].map(([t,n])=>{let i=r.get(t)??null,a=n.toSorted((e,t)=>e.roundNumber-t.roundNumber).map(n=>tV({matchUp:n,participantId:t,ownElo:i?.elo??null,params:e})),o=a.filter(e=>!e.bye&&e.signedDelta!==null);return{participantId:t,rating:i,rounds:a,facedDifficulty:o.length?o.reduce((e,t)=>e+t.signedDelta,0)/o.length:null,matchesPlayed:a.filter(e=>!e.bye&&e.won!==void 0).length}})}function rV(e){let t=QB(e);if(!t.projections.length)return{series:[],projection:t,scaleName:t.scaleName,unratedCount:t.unratedCount};let n=new Map(nV({matchUps:e.matchUps,matchUpType:e.matchUpType,scaleName:e.scaleName}).map(e=>[e.participantId,e]));return{series:t.projections.map(e=>{let t=n.get(e.participantId),r=new Map((t?.rounds??[]).map(e=>[e.roundNumber,e])),i=e.rating?.elo??null,a=e.rounds.map(e=>{let t=r.get(e.roundNumber),n=e.opponentEloRange;return{roundNumber:e.roundNumber,projected:{expected:e.expectedSignedDelta,low:n&&i!==null?n[0]-i:null,high:n&&i!==null?n[1]-i:null},reachProbability:e.reachProbability,actual:t?.signedDelta??null,competitiveness:t?.competitiveness,won:t?.won,bye:e.bye||!!t?.bye,resolved:e.resolved}});return{participantId:e.participantId,participantName:e.participantName,drawPosition:e.drawPosition,rating:e.rating,pathDifficulty:e.pathDifficulty,slotDifficulty:e.slotDifficulty,facedDifficulty:t?.facedDifficulty??null,points:a}}),projection:t,scaleName:t.scaleName,unratedCount:t.unratedCount}}function iV(e){return e.toSorted((e,t)=>e.slotDifficulty===null&&t.slotDifficulty===null?(e.participantName??``).localeCompare(t.participantName??``,`en`,{numeric:!0}):e.slotDifficulty===null?1:t.slotDifficulty===null?-1:t.slotDifficulty-e.slotDifficulty)}var aV=150,oV=64;function sV(e){return aB(e.flatMap(e=>e.points))}function cV({series:e,options:t,chartOptions:n}){let r=document.createElement(`div`);r.className=`chc-psm__cell`,r.dataset.participantId=e.participantId;let i=document.createElement(`div`);return i.className=`chc-psm__label`,i.textContent=e.participantName??e.participantId,i.title=i.textContent,r.appendChild(i),bB(r,e,n),t.onSelect&&(r.classList.add(`is-clickable`),r.setAttribute(`role`,`button`),r.tabIndex=0,r.addEventListener(`click`,()=>t.onSelect?.(e)),r.addEventListener(`keydown`,n=>{(n.key===`Enter`||n.key===` `)&&(n.preventDefault(),t.onSelect?.(e))})),r}function lV(e,t=[],n={}){let r=document.createElement(`div`);r.className=`chc-psm`,e.appendChild(r);function i(e,t){r.replaceChildren();let n=iV(e).filter(e=>e.rating);if(!n.length){let e=document.createElement(`div`);e.className=`chc-pc__empty`,e.textContent=t.emptyMessage??`No rating data for this draw, so no pressure to plot.`,r.appendChild(e);return}let i=sV(n),a=document.createElement(`div`);a.className=`chc-psm__grid`;let o=t.limit?n.slice(0,t.limit):n;for(let e of o)a.appendChild(cV({series:e,options:t,chartOptions:{spark:!0,yDomain:i,width:t.cellWidth??aV,height:t.cellHeight??oV,scaleName:t.scaleName}}));r.appendChild(a);let s=document.createElement(`div`);s.className=`chc-psm__caption`;let c=e.length-n.length,l=[`hardest slot first · shared scale`];o.length<n.length&&l.push(`${n.length-o.length} of ${n.length} not shown`),c>0&&l.push(`${c} unrated omitted`),s.textContent=l.join(` · `),r.appendChild(s)}return i(t,n),{element:r,update:(e,t)=>i(e,{...n,...t})}}var uV=22,dV=460,fV=132,pV=3;function mV(e){if(e===null)return`—`;let t=Math.round(e);return t>0?`+${t}`:String(t)}function hV({series:e,options:t,scale:n,midpoint:r,barWidth:i}){let a=document.createElement(`div`);a.className=`chc-pdb__row`,a.dataset.participantId=e.participantId,a.style.height=`${t.rowHeight??uV}px`;let o=document.createElement(`span`);o.className=`chc-pdb__label`,o.style.width=`${t.labelWidth??fV}px`,o.textContent=e.participantName??e.participantId,o.title=o.textContent;let s=document.createElement(`span`);s.className=`chc-pdb__track`,s.style.width=`${i}px`;let c=document.createElement(`span`);if(c.className=`chc-pdb__zero`,c.style.left=`${r}px`,s.appendChild(c),e.slotDifficulty!==null){let t=n(e.slotDifficulty),i=document.createElement(`span`);i.className=e.slotDifficulty>=0?`chc-pdb__bar chc-pdb__bar--up`:`chc-pdb__bar chc-pdb__bar--down`,i.style.left=`${Math.min(r,t)}px`,i.style.width=`${Math.abs(t-r)}px`,i.style.borderRadius=e.slotDifficulty>=0?`0 ${pV}px ${pV}px 0`:`${pV}px 0 0 ${pV}px`,s.appendChild(i)}if(t.showActual&&e.facedDifficulty!==null){let t=document.createElement(`span`);t.className=`chc-pdb__actual`,t.style.left=`${n(e.facedDifficulty)}px`,t.title=`faced so far ${mV(e.facedDifficulty)}`,s.appendChild(t)}let l=document.createElement(`span`);return l.className=`chc-pdb__value`,l.textContent=mV(e.slotDifficulty),a.append(o,s,l),t.onSelect&&(a.classList.add(`is-clickable`),a.setAttribute(`role`,`button`),a.tabIndex=0,a.addEventListener(`click`,()=>t.onSelect?.(e)),a.addEventListener(`keydown`,n=>{(n.key===`Enter`||n.key===` `)&&(n.preventDefault(),t.onSelect?.(e))})),a}function gV(e,t=[],n={}){let r=document.createElement(`div`);r.className=`chc-pdb`,e.appendChild(r);function i(e,t){r.replaceChildren();let n=iV(e);if(!n.length){let e=document.createElement(`div`);e.className=`chc-pc__empty`,e.textContent=t.emptyMessage??`No rating data for this draw, so no path difficulty to rank.`,r.appendChild(e);return}let i=t.width??dV,a=t.labelWidth??fV,o=Math.max(40,i-a-52),s=o/2,c=n.flatMap(e=>[e.slotDifficulty,t.showActual?e.facedDifficulty:null]).filter(e=>e!==null),l=Math.max(...c.map(e=>Math.abs(e)),1),u=e=>s+e/l*(s-4),d=t.limit?n.slice(0,t.limit):n;for(let e of d)r.appendChild(hV({series:e,options:t,scale:u,midpoint:s,barWidth:o}));let f=document.createElement(`div`);f.className=`chc-pdb__caption`;let p=n.filter(e=>e.slotDifficulty===null).length,m=[`hardest slot first`];d.length<n.length&&m.push(`${n.length-d.length} of ${n.length} not shown`),p&&m.push(`${p} unrated`),f.textContent=m.join(` · `),r.appendChild(f)}return i(t,n),{element:r,update:(e,t)=>i(e,{...n,...t})}}var _V=[`Round`,`Projected`,`Range`,`Reach`,`Faced`,`Scoreline`,`Result`];function vV(e){if(e==null)return`—`;let t=Math.round(e);return t>0?`+${t}`:String(t)}function yV(e){return e.points.map(e=>{let t=e.projected.low!==null&&e.projected.high!==null?`${vV(e.projected.low)} … ${vV(e.projected.high)}`:`—`,n=`—`;return e.bye?n=`bye`:e.won!==void 0&&(n=e.won?`won`:`lost`),[`R${e.roundNumber}`,vV(e.projected.expected),t,`${Math.round(e.reachProbability*100)}%`,vV(e.actual),e.competitiveness?e.competitiveness.toLowerCase():`—`,n]})}function bV(e,t){let n=document.createElement(`table`);n.className=`chc-pc__table`;let r=document.createElement(`caption`);r.textContent=`Projected and actual opponent difficulty by round — ${t.participantName??t.participantId}`,n.appendChild(r);let i=document.createElement(`thead`),a=document.createElement(`tr`);for(let e of _V){let t=document.createElement(`th`);t.scope=`col`,t.textContent=e,a.appendChild(t)}i.appendChild(a),n.appendChild(i);let o=document.createElement(`tbody`);for(let e of yV(t)){let t=document.createElement(`tr`);e.forEach((e,n)=>{let r=document.createElement(n===0?`th`:`td`);n===0&&(r.scope=`row`),r.textContent=e,t.appendChild(r)}),o.appendChild(t)}return n.appendChild(o),e.appendChild(n),n}function xV(e){let t=e>>>0;return function(){t=t+1831565813>>>0;let e=t;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}}function SV(e,t){let n=xV(t),r=[...e];for(let e=r.length-1;e>0;e--){let t=Math.floor(n()*(e+1));[r[e],r[t]]=[r[t],r[e]]}return r}function CV(e,t){return t.filter((t,n)=>t===e[n]).length}function wV(e,t,n=32){if(e.length<2)return{items:[...e],seed:t,deranged:!1};let r;for(let i=0;i<n;i++){let n=t+i,a=SV(e,n),o=CV(e,a);if(o===0)return{items:a,seed:n,deranged:!0};(!r||o<r.fixed)&&(r={items:a,seed:n,fixed:o})}return r?{items:r.items,seed:r.seed,deranged:!1}:{items:SV(e,t),seed:t,deranged:!1}}function TV(e){let t=[];for(let n=2;n<e&&e%n===0;n*=2)t.push(n);return t}function EV(e){return e.toSorted((e,t)=>e.localeCompare(t,`en`)).join(`|`)}function DV(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(EV(e.slice(r,r+t)));return n}function OV(e,t,n){let r=new Set(DV(t,n));return DV(e,n).filter(e=>r.has(e)).length}function kV(e){return Math.floor(e*e/2)}function AV({guess:e,actual:t}){if(e.length!==t.length||new Set(e).size!==e.length)throw Error(`scoreDrawOrder: guess must be a permutation of actual`);let n=new Map(t.map((e,t)=>[e,t]));if(e.some(e=>!n.has(e)))throw Error(`scoreDrawOrder: guess contains a participantId absent from actual`);let r=t.length,i=e.map((e,t)=>{let r=n.get(e)??-1;return{slotIndex:t,participantId:e,actualIndex:r,correct:r===t}}),a=i.filter(e=>e.correct).length,o=i.reduce((e,t)=>e+Math.abs(t.slotIndex-t.actualIndex),0),s=kV(r),c=s>0?1-o/s:1,l=TV(r).map(n=>({blockSize:n,matched:OV(e,t,n),total:r/n})),u=l.reduce((e,t)=>e+t.matched,0),d=l.reduce((e,t)=>e+t.total,0);return{slots:r,exact:a,displacement:o,maxDisplacement:s,proximity:c,levels:l,blocksMatched:u,blocksTotal:d,structureScore:Math.round(d>0?100*u/d:100*c),structurePerfect:d>0&&u===d,perfect:a===r,slotResults:i}}function jV({actualOrder:e,seed:t}){let n=wV(e,t);return{actualOrder:[...e],order:n.items,seed:n.seed,deranged:n.deranged,revealed:!1,score:null,moves:0}}function MV(e,t){return Number.isInteger(t)&&t>=0&&t<e.order.length}function NV(e,t,n){if(e.revealed||t===n||!MV(e,t)||!MV(e,n))return e;let r=[...e.order],[i]=r.splice(t,1);return r.splice(n,0,i),{...e,order:r,moves:e.moves+1}}function PV(e,t,n){if(e.revealed||t===n||!MV(e,t)||!MV(e,n))return e;let r=[...e.order];return[r[t],r[n]]=[r[n],r[t]],{...e,order:r,moves:e.moves+1}}function FV(e){return e.revealed?e:{...e,revealed:!0,score:AV({guess:e.order,actual:e.actualOrder})}}function IV(e,t){return jV({actualOrder:e.actualOrder,seed:t})}var LV=[.25,.75];function RV(e,t){if(!e.length)return null;let n=e.reduce((e,t)=>e+t.weight,0);if(!(n>0))return e[0].value;let r=t*n,i=0;for(let t of e)if(i+=t.weight,i>=r)return t.value;return e[e.length-1].value}function zV(e,t=LV){let n=e.filter(e=>typeof e.elo==`number`).map(e=>({value:e.elo,weight:Math.max(0,e.probability)})).toSorted((e,t)=>e.value-t.value);if(!n.length)return null;let r=RV(n,t[0]),i=RV(n,t[1]);return r===null||i===null?null:{outerLow:n[0].value,outerHigh:n[n.length-1].value,innerLow:Math.min(r,i),innerHigh:Math.max(r,i)}}var BV={PROJECTED:`projected`,ACTUAL:`actual`},VV={HARD:`hard`,EASY:`easy`},HV=60;function UV(e,t){return t===BV.ACTUAL&&e.actual!==null&&e.actual!==void 0?{value:e.actual,fromActual:!0}:{value:e.projected.expected,fromActual:!1}}function WV({magnitude:e,bands:t=4,domainMax:n}){if(!(n>0)||!(e>0)||t<1)return{layers:[],clipped:!1};let r=n/t,i=[];for(let n=0;n<t;n++){let t=e-n*r;if(t<=0)break;i.push({bandIndex:n,fraction:Math.min(1,t/r)})}return{layers:i,clipped:e>n}}function GV(e,t){let n=e.flatMap(e=>e.points.map(e=>UV(e,t).value).filter(e=>e!==null).map(Math.abs));return n.length?Math.max(60,...n):60}function KV({point:e,ownElo:t,round:n}){if(t!==null&&n?.possibleOpponents?.length){let e=zV(n.possibleOpponents);if(e)return{outerLow:e.outerLow-t,outerHigh:e.outerHigh-t,innerLow:e.innerLow-t,innerHigh:e.innerHigh-t,weighted:!0}}let{low:r,high:i}=e.projected;return r===null||i===null?null:{outerLow:r,outerHigh:i,innerLow:r,innerHigh:i,weighted:!1}}function qV(e,t){return{roundNumber:e,value:null,direction:null,layers:[],clipped:!1,fromActual:!1,reachProbability:t?.reachProbability??0,bye:!!t?.bye,resolved:!!t?.resolved,spread:null}}function JV(e){return e>=0?VV.HARD:VV.EASY}function YV({roundNumber:e,point:t,source:n,bands:r,domainMax:i,ownElo:a,round:o}){if(!t||t.bye)return qV(e,t);let{value:s,fromActual:c}=UV(t,n);if(s===null)return qV(e,t);let{layers:l,clipped:u}=WV({magnitude:Math.abs(s),bands:r,domainMax:i});return{roundNumber:e,value:s,direction:JV(s),layers:l,clipped:u,fromActual:c,reachProbability:t.reachProbability,bye:!1,resolved:t.resolved,spread:KV({point:t,ownElo:a,round:o})}}function XV(e){let t=new Map;for(let n of e?.projections??[])t.set(n.participantId,new Map(n.rounds.map(e=>[e.roundNumber,e])));return t}function ZV({series:e,source:t=BV.PROJECTED,bands:n=4,domainMax:r,projection:i}){let a=[...new Set(e.flatMap(e=>e.points.map(e=>e.roundNumber)))].toSorted((e,t)=>e-t),o=r??GV(e,t),s=XV(i),c=e.map(e=>{let r=new Map(e.points.map(e=>[e.roundNumber,e])),i=s.get(e.participantId);return{participantId:e.participantId,participantName:e.participantName,drawPosition:e.drawPosition,cells:a.map(a=>YV({roundNumber:a,point:r.get(a),source:t,bands:n,domainMax:o,ownElo:e.rating?.elo??null,round:i?.get(a)}))}});return{rows:c,roundNumbers:a,domainMax:o,bands:n,clippedCells:c.flatMap(e=>e.cells).filter(e=>e.clipped).length}}var QV=`http://www.w3.org/2000/svg`,$V=`class`,eH=`path`,tH=0,nH=1.5;function rH(e,t){let n=document.createElementNS(QV,e);return t&&n.setAttribute($V,t),n}function iH(e){let t=Math.round(e);return t>0?`+${t}`:String(t)}function aH(e){let t=e.layers.at(-1);return!t||!e.direction?`chc-ph__stop--none`:`chc-ph__stop--${e.direction}-${t.bandIndex}`}function oH(e,t,n,r){let i=rH(`linearGradient`);if(i.setAttribute(`id`,r),i.setAttribute(`gradientUnits`,`userSpaceOnUse`),i.setAttribute(`x1`,`0`),i.setAttribute(`y1`,`0`),i.setAttribute(`x2`,String(n)),i.setAttribute(`y2`,`0`),e.forEach((e,r)=>{let a=rH(`stop`,aH(e));a.setAttribute(`offset`,String(n>0?t(r)/n:0)),i.appendChild(a)}),e.length===1){let t=rH(`stop`,aH(e[0]));t.setAttribute(`offset`,`1`),i.appendChild(t)}return i}function sH(e,t,n){if(e.bye)return`${t}: bye`;if(e.value===null)return`${t}: no rated opponent`;let r=n?` ${n}-equivalent`:``,i=e.fromActual?`faced`:`projected`,a=e.spread?` · likely ${iH(e.spread.innerLow)} to ${iH(e.spread.innerHigh)}${e.spread.weighted?``:` (unweighted range)`}`:``,o=e.clipped?` · capped at the top band`:``;return`${t}: ${i} ${iH(e.value)}${r}${a}${o}`}function cH(e,t){let{width:n,height:r,domainMax:i,bands:a=4,positionBands:o=2,describe:s=!1,roundLabels:c,scaleName:l,showZeroLine:u=!0}=t,d=Math.max(1,e.cells.length),f=n/d,p=e=>(e+.5)*f,m=r/2,h=Math.max(1,r/2-nH),g=Math.max(1e-9,i/Math.max(1,a)*o),_=e=>m-Math.max(-1,Math.min(1,e/g))*h,v=rH(`svg`,`chc-ph__svg`);v.setAttribute(`width`,String(n)),v.setAttribute(`height`,String(r)),v.setAttribute(`viewBox`,`0 0 ${n} ${r}`),v.setAttribute(`role`,`img`),v.setAttribute(`aria-label`,t.ariaLabel??`Projected round-by-round path for ${e.participantName??e.participantId}`),tH+=1;let y=`chc-ph-grad-${tH}`,b=rH(`defs`);if(b.appendChild(oH(e.cells,p,n,y)),v.appendChild(b),u){let e=rH(`line`,`chc-ph__zero`);e.setAttribute(`x1`,`0`),e.setAttribute(`x2`,String(n)),e.setAttribute(`y1`,String(m)),e.setAttribute(`y2`,String(m)),v.appendChild(e)}let x=e.cells.map((e,t)=>({cell:e,index:t})),S=`url(#${y})`;for(let[e,t]of[[`outer`,`chc-ph__fan chc-ph__fan--outer`],[`inner`,`chc-ph__fan chc-ph__fan--inner`]]){let n=XL().curve(nR).defined(e=>e.cell.spread!==null).x(e=>p(e.index)).y0(t=>_(e===`outer`?t.cell.spread?.outerLow??0:t.cell.spread?.innerLow??0)).y1(t=>_(e===`outer`?t.cell.spread?.outerHigh??0:t.cell.spread?.innerHigh??0))(x);if(!n)continue;let r=rH(eH,t);r.setAttribute(`d`,n),r.setAttribute(`fill`,S),v.appendChild(r)}let C=YL().curve(nR).defined(e=>e.cell.value!==null).x(e=>p(e.index)).y(e=>_(e.cell.value??0))(x);if(C){let e=rH(eH,`chc-ph__trace`);e.setAttribute(`d`,C),e.setAttribute(`stroke`,S),v.appendChild(e)}return s&&e.cells.forEach((e,t)=>{let n=rH(`rect`,`chc-ph__hit`);n.setAttribute(`x`,String(t*f)),n.setAttribute(`y`,`0`),n.setAttribute(`width`,String(f)),n.setAttribute(`height`,String(r));let i=c?.(e.roundNumber,t,d)??`R${t+1}`,a=rH(`title`);a.textContent=sH(e,i,l),n.appendChild(a),v.appendChild(n)}),v}var lH=`http://www.w3.org/2000/svg`,uH=`class`,dH=`rect`,fH=`chc-ph__wall`,pH=2,mH=5,hH=2,gH=2;function _H(e,t){let n=document.createElementNS(lH,e);return t&&n.setAttribute(uH,t),n}function vH(e){let t=Math.round(e);return t>0?`+${t}`:String(t)}function yH(e,t,n){if(e.bye)return`${t}: bye`;if(e.value===null)return`${t}: no rated opponent`;let r=e.fromActual?`faced`:`projected`,i=n?` ${n}-equivalent`:``,a=e.clipped?` (capped at the top band)`:``;return`${t}: ${r} ${vH(e.value)}${i}${a}`}function bH({group:e,cell:t,columnWidth:n,height:r}){if(!t.layers.length){let t=_H(dH,`${fH} ${fH}--none`);t.setAttribute(`x`,`0`),t.setAttribute(`y`,String((r-gH)/2)),t.setAttribute(`width`,String(n)),t.setAttribute(`height`,String(gH)),e.appendChild(t);return}let i=t.direction===VV.HARD;for(let a of t.layers){let o=Math.max(1,a.fraction*r),s=_H(dH,`${fH} ${fH}--${t.direction}-${a.bandIndex}`);s.setAttribute(`x`,`0`),s.setAttribute(`y`,String(i?r-o:0)),s.setAttribute(`width`,String(n)),s.setAttribute(`height`,String(o)),o>=mH&&s.setAttribute(`rx`,String(hH)),e.appendChild(s)}}function xH(e,t){let{width:n,height:r,gap:i=pH,describe:a=!1,roundLabels:o,scaleName:s}=t,c=Math.max(1,e.cells.length),l=Math.max(1,(n-i*(c-1))/c),u=_H(`svg`,`chc-ph__svg`);return u.setAttribute(`width`,String(n)),u.setAttribute(`height`,String(r)),u.setAttribute(`viewBox`,`0 0 ${n} ${r}`),u.setAttribute(`role`,`img`),u.setAttribute(`aria-label`,t.ariaLabel??`Projected round-by-round path for ${e.participantName??e.participantId}`),e.cells.forEach((e,t)=>{let n=_H(`g`,`chc-ph__column`);if(n.setAttribute(`transform`,`translate(${t*(l+i)},0)`),bH({group:n,cell:e,columnWidth:l,height:r}),a){let r=o?.(e.roundNumber,t,c)??`R${t+1}`,i=_H(`title`);i.textContent=yH(e,r,s),n.appendChild(i)}u.appendChild(n)}),u}var SH=`http://www.w3.org/2000/svg`,CH=12,wH=2,TH={walls:[`playing up — wall rises from the baseline`,`playing down — wall hangs from the top`],ribbon:[`playing up — trace above the centre line`,`playing down — trace below the centre line`]},EH=[VV.HARD,VV.EASY];function DH(e,t){let n=document.createElement(e);return t&&(n.className=t),n}function OH(e,t,n=!1){let r=CH*t+(t-1)*wH,i=document.createElementNS(SH,`svg`);i.setAttribute(`class`,`chc-ph__swatch`),i.setAttribute(`width`,String(r)),i.setAttribute(`height`,String(CH)),i.setAttribute(`viewBox`,`0 0 ${r} ${CH}`),i.setAttribute(`aria-hidden`,`true`);for(let r=0;r<t;r++){let a=CH*((r+1)/t),o=n?a/2:a,s=document.createElementNS(SH,`rect`);s.setAttribute(`class`,`chc-ph__wall chc-ph__wall--${e}-${r}`),s.setAttribute(`x`,String(r*14));let c=e===VV.HARD,l=CH/2;s.setAttribute(`y`,String(n?c?l-o:l:c?CH-o:0)),s.setAttribute(`width`,String(CH)),s.setAttribute(`height`,String(o)),i.appendChild(s)}return i}function kH(e,t){return e===`ribbon`?`The line is the expected opponent; the shading is who could actually arrive — solid for the likely middle, faint for the full range. Deeper colour means a larger ${t} gap.`:`Deeper, darker bands mean a larger ${t} gap. Rows share one domain.`}function AH({bands:e,scaleName:t,note:n,variant:r}){let i=DH(`div`,`chc-ph__legend`),a=r===`ribbon`,o=TH[a?`ribbon`:`walls`];for(let[t,n]of EH.entries()){let r=DH(`div`,`chc-ph__legend-item`);r.appendChild(OH(n,e,a));let s=DH(`span`,`chc-ph__legend-label`);s.textContent=o[t],r.appendChild(s),i.appendChild(r)}let s=t?`${t}-equivalent rating`:`rating`,c=DH(`div`,`chc-ph__legend-note`);return c.textContent=n??kH(r,s),i.appendChild(c),i}var jH=`chc-ph`,MH=`chc-ph__row`,NH=520,PH=132,FH={walls:16,ribbon:28},IH=2,LH={DRAW:`draw`,DIFFICULTY:`difficulty`},RH={WALLS:`walls`,RIBBON:`ribbon`};function zH(e,t){let n=document.createElement(e);return t&&(n.className=t),n}function BH(e,t){return t===LH.DIFFICULTY?iV(e):e.toSorted((e,t)=>(e.drawPosition??0)-(t.drawPosition??0))}function VH({roundNumbers:e,width:t,columnGap:n,labelWidth:r,roundLabels:i}){let a=zH(`div`,`chc-ph__head`),o=zH(`div`,`chc-ph__label`);o.style.width=`${r}px`,a.appendChild(o);let s=zH(`div`,`chc-ph__rounds`);s.style.width=`${t}px`,s.style.gap=`${n}px`;for(let[t,n]of e.entries()){let r=zH(`span`,`chc-ph__round-label`);r.textContent=i(n,t,e.length),s.appendChild(r)}return a.appendChild(s),a}function HH(e,t,n){e.classList.add(`is-clickable`),e.setAttribute(`role`,`button`),e.tabIndex=0,e.addEventListener(`click`,()=>n(t)),e.addEventListener(`keydown`,e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),n(t))})}function UH(e,{variant:t,width:n,rowHeight:r,columnGap:i,roundLabels:a,scaleName:o,domainMax:s,bands:c}){return t===RH.RIBBON?cH(e,{width:n,height:r,domainMax:s,bands:c,positionBands:IH,describe:!0,roundLabels:a,scaleName:o}):xH(e,{width:n,height:r,gap:i,describe:!0,roundLabels:a,scaleName:o})}function WH({shown:e,ordered:t,dropped:n,domainMax:r,bands:i,clippedCells:a,order:o,variant:s,unweightedFan:c}){let l=zH(`div`,`chc-ph__caption`),u=[`${e} paths · ${o===LH.DRAW?`draw order`:`hardest slot first`}`,`shared domain ±${Math.round(r)} · ${i} bands`];return s===RH.RIBBON&&u.push(`trace saturates past ${IH} of ${i} bands — colour carries the rest`),s===RH.RIBBON&&c&&u.push("fan is the unweighted 1%-threshold range — pass `projection` to weight it"),e<t&&u.push(`${t-e} of ${t} not shown`),n>0&&u.push(`${n} unrated omitted`),a>0&&u.push(`${a} walls capped at the top band`),l.textContent=u.join(` · `),l}function GH(e,t=[],n={}){let r=zH(`div`,jH);e.appendChild(r);function i(e,t){r.replaceChildren();let{width:n=NH,variant:i=RH.WALLS,rowHeight:a=FH[i],rowGap:o=2,columnGap:s=2,bands:c,source:l=BV.PROJECTED,domainMax:u,showLabels:d=!0,showLegend:f=!0,showRoundHeader:p=!0,order:m=LH.DRAW,limit:h,scaleName:g,onSelect:_,projection:v,roundLabels:y=nB}=t,b=e.filter(e=>e.rating);if(!b.length){let e=zH(`div`,`chc-ph__empty`);e.textContent=t.emptyMessage??`No rating data for this draw, so there is no pressure to plot.`,r.appendChild(e);return}let x=BH(b,m),S=h?x.slice(0,h):x,C=ZV({series:S,source:l,bands:c,domainMax:u,projection:v}),w=d?t.labelWidth??PH:0;p&&r.appendChild(VH({roundNumbers:C.roundNumbers,width:n,columnGap:s,labelWidth:w,roundLabels:y}));let T=zH(`div`,`chc-ph__rows`);T.style.gap=`${o}px`;for(let[e,t]of C.rows.entries()){let r=S[e],o=zH(`div`,MH);if(o.dataset.participantId=t.participantId,d){let e=zH(`div`,`chc-ph__label`);e.style.width=`${w}px`,e.textContent=`${t.drawPosition?`${t.drawPosition}. `:``}${t.participantName??t.participantId}`,e.title=e.textContent,o.appendChild(e)}o.appendChild(UH(t,{variant:i,width:n,rowHeight:a,columnGap:s,roundLabels:y,scaleName:g,domainMax:C.domainMax,bands:C.bands})),_&&HH(o,r,_),T.appendChild(o)}r.appendChild(T),f&&r.appendChild(AH({bands:C.bands,scaleName:g,variant:i})),r.appendChild(WH({shown:S.length,ordered:x.length,dropped:e.length-b.length,domainMax:C.domainMax,bands:C.bands,clippedCells:C.clippedCells,order:m,variant:i,unweightedFan:C.rows.some(e=>e.cells.some(e=>e.spread&&!e.spread.weighted))}))}return i(t,n),{element:r,update:(e,t)=>i(e,{...n,...t}),destroy:()=>r.remove()}}var KH=`chc-dog`,qH=`chc-dog__row`,JH=`application/x-chc-draw-slot`,YH=`button`,XH=`is-drop-target`,ZH=`New board dealt`,QH=460,$H={walls:20,ribbon:30},eU=20260831;function tU(e,t){let n=document.createElement(e);return t&&(n.className=t),n}function nU(e,t){let n=document.createElement(YH);return n.type=YH,n.className=`chc-dog__button`,n.textContent=e,n.addEventListener(`click`,t),n}function rU(e,t){return e===2?`first-round pairs`:e===t/2?`halves`:e===t/4?`quarters`:`groups of ${e}`}function iU(e){let t=tU(`div`,`chc-dog__score`),n=tU(`div`,`chc-dog__score-headline`);n.textContent=`${e.structureScore}%`,t.appendChild(n);let r=tU(`div`,`chc-dog__score-summary`);r.textContent=e.structurePerfect?`Every grouping in the real draw — you rebuilt the bracket.`:`${e.blocksMatched} of ${e.blocksTotal} real groupings recovered.`,t.appendChild(r);let i=tU(`ul`,`chc-dog__score-levels`);for(let t of e.levels){let n=tU(`li`);n.textContent=`${rU(t.blockSize,e.slots)}: ${t.matched}/${t.total}`,i.appendChild(n)}t.appendChild(i);let a=tU(`div`,`chc-dog__score-exact`);a.textContent=`${e.exact}/${e.slots} rows in the exact slot.`,t.appendChild(a);let o=tU(`div`,`chc-dog__score-note`);return o.textContent=`A draw sheet is mirror-symmetric — swapping two halves, two quarters or the two players in a pair gives the same bracket with different slot numbers. The headline counts groupings, which survive that; exact slots do not, so a low exact count beside a high headline means you had the draw right and the sheet flipped.`,t.appendChild(o),t}function aU(e,t=[],n={}){let r=tU(`div`,KH);e.appendChild(r);let{width:i=QH,rowHeight:a=$H[n.variant??RH.WALLS],rowGap:o=2,columnGap:s=2,bands:c,variant:l=RH.WALLS,projection:u,scaleName:d,limit:f,roundLabels:p=nB,onComplete:m}=n,h=t.filter(e=>e.rating&&e.drawPosition!==void 0),g=t.length-h.length,_=h.toSorted((e,t)=>(e.drawPosition??0)-(t.drawPosition??0)),v=f?_.slice(0,f):_,y=ZV({series:v,source:BV.PROJECTED,bands:c,projection:u}),b=new Map(y.rows.map(e=>[e.participantId,e])),x=new Map(v.map(e=>[e.participantId,e])),S=jV({actualOrder:v.map(e=>e.participantId),seed:n.seed??eU}),C=null,w=null,T=tU(`div`,`chc-dog__live`);T.setAttribute(`aria-live`,`polite`);function E(e){T.textContent=e}function D(e,t){let n=e!==S;S=e,F(),t&&n&&E(t),S.revealed&&S.score&&m?.(S.score,S)}function O(e,t){let n=b.get(e),r=tU(`div`,qH);r.dataset.slot=String(t),r.tabIndex=0,r.setAttribute(`role`,`listitem`),r.setAttribute(`aria-label`,`Slot ${t+1} of ${S.order.length}`);let o=tU(`div`,`chc-dog__slot`);if(o.textContent=String(t+1),r.appendChild(o),n){let e=l===RH.RIBBON?cH(n,{width:i,height:a,domainMax:y.domainMax,bands:y.bands,describe:!1,ariaLabel:`Path in slot ${t+1}`}):xH(n,{width:i,height:a,gap:s,describe:!1,ariaLabel:`Path in slot ${t+1}`});r.appendChild(e)}if(S.revealed){let n=x.get(e),i=S.score?.slotResults[t],a=tU(`div`,`chc-dog__reveal${i?.correct?` is-correct`:``}`),o=(i?.actualIndex??0)+1;a.textContent=`${n?.participantName??e} · really ${o}`,r.appendChild(a)}else r.draggable=!0,k(r,t),A(r,t);return r}function k(e,t){e.addEventListener(`dragstart`,n=>{C=t,e.classList.add(`is-dragging`),n.dataTransfer?.setData(JH,String(t)),n.dataTransfer&&(n.dataTransfer.effectAllowed=`move`)}),e.addEventListener(`dragend`,()=>{C=null,e.classList.remove(`is-dragging`)}),e.addEventListener(`dragover`,t=>{t.preventDefault(),t.dataTransfer&&(t.dataTransfer.dropEffect=`move`),e.classList.add(XH)}),e.addEventListener(`dragleave`,()=>e.classList.remove(XH)),e.addEventListener(`drop`,n=>{n.preventDefault(),e.classList.remove(XH);let r=n.dataTransfer?.getData(JH),i=r?Number.parseInt(r,10):C;i===null||Number.isNaN(i)||(w=t,D(NV(S,i,t),`Moved slot ${i+1} to slot ${t+1}`))})}function A(e,t){e.addEventListener(`keydown`,e=>{if(e.key!==`ArrowUp`&&e.key!==`ArrowDown`)return;let n=t+(e.key===`ArrowUp`?-1:1);n<0||n>=S.order.length||(e.preventDefault(),w=n,e.altKey||e.metaKey?D(PV(S,t,n),`Slot ${t+1} swapped with slot ${n+1}`):j(n))})}function j(e){r.querySelector(`.${qH}[data-slot="${e}"]`)?.focus()}function M(){let e=tU(`div`,`chc-dog__toolbar`);S.revealed?e.appendChild(nU(`Play again`,()=>D(IV(S,S.seed+1),ZH))):(e.appendChild(nU(`Check my order`,()=>D(FV(S)))),e.appendChild(nU(`Shuffle`,()=>D(IV(S,S.seed+1),ZH))));let t=tU(`span`,`chc-dog__meta`);return t.textContent=`puzzle #${S.seed} · ${S.order.length} paths · ${S.moves} moves`,e.appendChild(t),e}function N(){let e=tU(`p`,`chc-dog__instructions`);return e.textContent=`These are the projected paths of every player in one draw, shuffled and unnamed. Drag them into the real draw order — or focus a row and hold Alt with the arrow keys. Players who meet in a round are each other’s opponent in that column, so `+(l===RH.RIBBON?`two traces that mirror each other about the centre line in the same column are probably a pair.`:`a deep-hard row and a pale-easy row of the same size in the same column are probably a pair.`),e}function P(){let e=tU(`div`,`chc-dog__head`);e.appendChild(tU(`div`,`chc-dog__slot-spacer`));let t=tU(`div`,`chc-ph__rounds`);t.style.width=`${i}px`,t.style.gap=`${s}px`;for(let[e,n]of y.roundNumbers.entries()){let r=tU(`span`,`chc-ph__round-label`);r.textContent=p(n,e,y.roundNumbers.length),t.appendChild(r)}return e.appendChild(t),e}function F(){if(r.replaceChildren(),!v.length){let e=tU(`div`,`chc-ph__empty`);e.textContent=n.emptyMessage??`No rated draw to play — the game needs ratings and draw positions.`,r.appendChild(e);return}r.appendChild(N()),r.appendChild(M()),r.appendChild(P());let e=tU(`div`,`chc-dog__rows`);e.setAttribute(`role`,`list`),e.style.gap=`${o}px`;for(let[t,n]of S.order.entries())e.appendChild(O(n,t));r.appendChild(e),r.appendChild(AH({bands:y.bands,scaleName:d,variant:l,note:`Deeper, darker bands mean a larger rating gap. Every path is on the same domain — that is what makes two rows comparable.`})),S.revealed&&S.score&&r.appendChild(iU(S.score));let t=tU(`div`,`chc-ph__caption`),i=d?` ${d}-equivalent`:``,a=[`shared domain ±${Math.round(y.domainMax)}${i} · ${y.bands} bands`];S.deranged||a.push(`this deal left a row in its true slot`),g>0&&a.push(`${g} unrated omitted`),y.clippedCells>0&&a.push(`${y.clippedCells} walls capped at the top band`),t.textContent=a.join(` · `),r.appendChild(t),r.appendChild(T),w!==null&&(j(w),w=null)}return F(),{element:r,getState:()=>S,reshuffle:e=>D(IV(S,e??S.seed+1),ZH),reveal:()=>D(FV(S)),destroy:()=>r.remove()}}var oU=`right`,sU=`font-medium`;function cU({target:e,button:t,stateChange:n}){let r=0,i=()=>(r+=1,`Item${r}`),a=document.createElement(`div`);t.class&&a.classList.add(t.class),a.classList.add(`dropdown`),t.id&&(a.id=t.id),t.align===oU&&a.classList.add(`is-right`);let o=e=>e.classList.contains(`is-active`),s=()=>{o(a)&&a.classList.remove(`is-active`)},c=e=>o(e)?(e.classList.remove(`is-active`),!1):(e.classList.add(`is-active`),!0);a.onmouseleave=s,a.onclick=()=>c(a);let l=document.createElement(`div`);l.classList.add(`dropdown-trigger`);let u=document.createElement(`button`);u.className=`button font-medium`,t.intent&&u.classList.add(t.intent),u.setAttribute(`aria-haspopup`,`true`);let d=document.createElement(`span`);K(t.onClick)&&(d.onclick=t.onClick),d.style.cssText=`margin-right: 1em`,d.innerHTML=t.label,u.appendChild(d);let f=document.createElement(`span`);K(t.onClick)&&(f.onclick=t.onClick),f.innerHTML=`
|
|
214
|
+
`,`2) content: () => element.cloneNode(true)`].join(` `))}var s=i.reduce(function(e,t){var n=t&&ly(t,r);return n&&e.push(n),e},[]);return yv(e)?s[0]:s}uy.defaultProps=qv,uy.setDefaultProps=Yv,uy.currentInput=Av,Object.assign({},Dg,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:`0`,top:`0`,margin:`0`},arrow:{position:`absolute`},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}}),uy.setDefaultProps({render:ay});var dy=`#000000.#434343.#666666.#999999.#b7b7b7.#cccccc.#d9d9d9.#ffffff.#980000.#ff0000.#ff9900.#ffff00.#00ff00.#00ffff.#4a86e8.#0000ff.#9900ff.#ff00ff.#e6b8af.#f4cccc.#fce5cd.#fff2cc.#d9ead3.#d0e0e3.#c9daf8.#cfe2f3.#d9d2e9.#ead1dc`.split(`.`),fy=`notes-toolbar-recent-colors`,py=8;function my(){try{return JSON.parse(localStorage.getItem(fy)||`[]`)}catch{return[]}}function hy(e){let t=my().filter(t=>t!==e);t.unshift(e),t.length>py&&(t=t.slice(0,py)),localStorage.setItem(fy,JSON.stringify(t))}function gy(e={}){let t=document.createElement(`div`);return t.className=`notes-toolbar`,t.appendChild(xy(e)),t.appendChild(Sy(e)),t.appendChild(Cy(e)),t.appendChild(Dy(e)),t.appendChild(Ay(e)),t.appendChild(jy(e)),t.appendChild(Ny(e)),t}function _y(e,t){for(let[n,r]of Object.entries(t)){let t=e.querySelector(`[data-action="${n}"]`);t&&t.classList.toggle(`is-active`,r)}}function vy(e,t){let n=e.querySelector(`[data-action="heading"]`);n&&(n.value=t===!1?`0`:String(t))}function yy(){let e=document.createElement(`div`);return e.className=`notes-toolbar-group`,e}function by(e,t,n,r){let i=document.createElement(`button`);return i.className=`notes-toolbar-btn`,i.dataset.action=e,i.title=n,i.type=`button`,i.innerHTML=t,r&&i.addEventListener(`click`,r),i}function xy(e){let t=yy(),n=document.createElement(`select`);n.dataset.action=`heading`,n.title=`Text style`;for(let e of[{value:`0`,label:`Paragraph`},{value:`1`,label:`Heading 1`},{value:`2`,label:`Heading 2`},{value:`3`,label:`Heading 3`},{value:`4`,label:`Heading 4`},{value:`5`,label:`Heading 5`},{value:`6`,label:`Heading 6`}]){let t=document.createElement(`option`);t.value=e.value,t.textContent=e.label,n.appendChild(t)}return n.addEventListener(`change`,()=>{let t=parseInt(n.value,10);e.onHeading?.(t!==0&&t)}),t.appendChild(n),t}function Sy(e){let t=yy();return t.appendChild(by(`bold`,`<b>B</b>`,`Bold`,e.onBold)),t.appendChild(by(`italic`,`<i>I</i>`,`Italic`,e.onItalic)),t.appendChild(by(`underline`,`<u>U</u>`,`Underline`,e.onUnderline)),t.appendChild(by(`strike`,`<s>S</s>`,`Strikethrough`,e.onStrike)),t}function Cy(e){let t=yy();return t.appendChild(wy(`color`,`A`,`Text color`,`#000000`,t=>{hy(t),e.onColor?.(t)})),t.appendChild(wy(`background`,`A`,`Background color`,`#ffff00`,t=>{hy(t),e.onBackground?.(t)})),t}function wy(e,t,n,r,i){let a=document.createElement(`button`);a.className=`notes-toolbar-btn notes-toolbar-color-btn`,a.dataset.action=e,a.title=n,a.type=`button`;let o=document.createElement(`span`);o.className=`notes-toolbar-color-letter`,o.textContent=t,a.appendChild(o);let s=document.createElement(`span`);s.className=`notes-toolbar-color-bar`,s.style.backgroundColor=r,a.appendChild(s);let c;return a.addEventListener(`click`,()=>{if(c){c.destroy(),c=void 0;return}let e=Ty(r,e=>{s.style.backgroundColor=e,i(e),c?.destroy(),c=void 0});c=uy(a,{content:e,theme:`light-border`,trigger:`manual`,interactive:!0,placement:`bottom-start`,onHidden:()=>{c?.destroy(),c=void 0}}),c.show()}),a}function Ty(e,t){let n=document.createElement(`div`);n.className=`notes-color-panel`;let r=document.createElement(`div`);r.className=`notes-color-swatches`;for(let n of dy)r.appendChild(Ey(n,n===e,t));n.appendChild(r);let i=my();if(i.length){let r=document.createElement(`div`);r.className=`notes-color-section-label`,r.textContent=`Recent`,n.appendChild(r);let a=document.createElement(`div`);a.className=`notes-color-swatches`;for(let n of i)a.appendChild(Ey(n,n===e,t));n.appendChild(a)}let a=document.createElement(`div`);a.className=`notes-color-custom-row`;let o=document.createElement(`input`);o.type=`color`,o.value=e,o.className=`notes-color-custom-input`;let s=document.createElement(`label`);return s.className=`notes-color-custom-label`,s.textContent=`Custom...`,s.addEventListener(`click`,()=>o.click()),o.addEventListener(`input`,()=>t(o.value)),a.appendChild(o),a.appendChild(s),n.appendChild(a),n}function Ey(e,t,n){let r=document.createElement(`button`);return r.type=`button`,r.className=`notes-color-swatch`,t&&r.classList.add(`is-selected`),r.style.backgroundColor=e,(e===`#ffffff`||e===`#fff`)&&(r.style.border=`1px solid var(--chc-border-secondary)`),r.title=e,r.addEventListener(`click`,()=>n(e)),r}function Dy(e){let t=yy();return t.appendChild(by(`orderedList`,Oy(16,16,`<path d="M3 2h12v2H3zm0 5h12v2H3zm0 5h12v2H3z" fill="currentColor"/><text x="0" y="4" font-size="3.5" fill="currentColor">1</text><text x="0" y="9" font-size="3.5" fill="currentColor">2</text><text x="0" y="14" font-size="3.5" fill="currentColor">3</text>`),`Ordered list`,e.onOrderedList)),t.appendChild(by(`bulletList`,Oy(16,16,`<circle cx="1.5" cy="3" r="1.5" fill="currentColor"/><circle cx="1.5" cy="8" r="1.5" fill="currentColor"/><circle cx="1.5" cy="13" r="1.5" fill="currentColor"/><path d="M5 2h10v2H5zm0 5h10v2H5zm0 5h10v2H5z" fill="currentColor"/>`),`Bullet list`,e.onBulletList)),t}function Oy(e,t,n){return`<svg width="${e}" height="${t}" viewBox="0 0 ${e} ${t}" xmlns="http://www.w3.org/2000/svg">${n}</svg>`}var ky={alignLeft:Oy(16,16,`<path d="M1 2h14v2H1zm0 4h9v2H1zm0 4h14v2H1zm0 4h9v2H1z" fill="currentColor"/>`),alignCenter:Oy(16,16,`<path d="M1 2h14v2H1zm3.5 4h7v2h-7zM1 10h14v2H1zm3.5 4h7v2h-7z" fill="currentColor"/>`),alignRight:Oy(16,16,`<path d="M1 2h14v2H1zm6 4h8v2H7zM1 10h14v2H1zm6 4h8v2H7z" fill="currentColor"/>`),alignJustify:Oy(16,16,`<path d="M1 2h14v2H1zm0 4h14v2H1zm0 4h14v2H1zm0 4h14v2H1z" fill="currentColor"/>`)};function Ay(e){let t=yy();return t.appendChild(by(`alignLeft`,ky.alignLeft,`Align left`,()=>e.onAlign?.(`left`))),t.appendChild(by(`alignCenter`,ky.alignCenter,`Align center`,()=>e.onAlign?.(`center`))),t.appendChild(by(`alignRight`,ky.alignRight,`Align right`,()=>e.onAlign?.(`right`))),t.appendChild(by(`alignJustify`,ky.alignJustify,`Justify`,()=>e.onAlign?.(`justify`))),t}function jy(e){let t=yy();t.appendChild(by(`blockquote`,`“`,`Blockquote`,e.onBlockquote)),t.appendChild(by(`codeBlock`,`</>`,`Code block`,e.onCodeBlock));let n=by(`link`,`⇗`,`Insert link`);My(n,`Enter URL`,`https://`,t=>e.onLink?.(t)),t.appendChild(n);let r=by(`video`,`▷`,`Insert video`);return My(r,`YouTube URL`,`https://youtube.com/...`,t=>e.onVideo?.(t)),t.appendChild(r),t}function My(e,t,n,r){let i;e.addEventListener(`click`,()=>{if(i){i.destroy(),i=void 0;return}let a=document.createElement(`div`);a.className=`notes-url-panel`;let o=document.createElement(`div`);o.className=`notes-url-label`,o.textContent=t,a.appendChild(o);let s=document.createElement(`input`);s.type=`url`,s.className=`notes-url-input`,s.placeholder=n,a.appendChild(s);let c=document.createElement(`div`);c.className=`notes-url-actions`;let l=document.createElement(`button`);l.type=`button`,l.className=`button notes-url-cancel`,l.textContent=`Cancel`,l.addEventListener(`click`,()=>{i?.destroy(),i=void 0});let u=document.createElement(`button`);u.type=`button`,u.className=`button is-info notes-url-confirm`,u.textContent=`Insert`,u.addEventListener(`click`,()=>{let e=s.value.trim();e&&r(e),i?.destroy(),i=void 0}),c.appendChild(l),c.appendChild(u),a.appendChild(c),s.addEventListener(`keydown`,e=>{e.key===`Enter`?(e.preventDefault(),u.click()):e.key===`Escape`&&l.click()}),i=uy(e,{content:a,theme:`light-border`,trigger:`manual`,interactive:!0,placement:`bottom-start`,onShown:()=>setTimeout(()=>s.focus(),0),onHidden:()=>{i?.destroy(),i=void 0}}),i.show()})}function Ny(e){let t=yy();return t.appendChild(by(`clearFormatting`,`⊘`,`Clear formatting`,e.onClearFormatting)),t}function Py(e={}){let t=!1,l,u=document.createElement(`div`);u.className=`notes-editor-content`;let d={toolbar:void 0,editorElement:u,editor:void 0,getHtml:()=>d.editor&&!d.editor.isEmpty?d.editor.getHTML():``,isEmpty:()=>!d.editor||d.editor.isEmpty,destroy:()=>{t||(t=!0,l!==void 0&&cancelAnimationFrame(l),d.editor?.destroy(),d.editor=void 0)}};d.toolbar=gy({onHeading:e=>{d.editor&&(e===!1?d.editor.chain().focus().setParagraph().run():d.editor.chain().focus().toggleHeading({level:e}).run())},onBold:()=>d.editor?.chain().focus().toggleBold().run(),onItalic:()=>d.editor?.chain().focus().toggleItalic().run(),onUnderline:()=>d.editor?.chain().focus().toggleUnderline().run(),onStrike:()=>d.editor?.chain().focus().toggleStrike().run(),onColor:e=>d.editor?.chain().focus().setColor(e).run(),onBackground:e=>d.editor?.chain().focus().setHighlight({color:e}).run(),onBulletList:()=>d.editor?.chain().focus().toggleBulletList().run(),onOrderedList:()=>d.editor?.chain().focus().toggleOrderedList().run(),onAlign:e=>d.editor?.chain().focus().setTextAlign(e).run(),onBlockquote:()=>d.editor?.chain().focus().toggleBlockquote().run(),onCodeBlock:()=>d.editor?.chain().focus().toggleCodeBlock().run(),onLink:e=>d.editor?.chain().focus().setLink({href:e}).run(),onVideo:e=>d.editor?.commands.setYoutubeVideo({src:e}),onClearFormatting:()=>d.editor?.chain().focus().clearNodes().unsetAllMarks().run()});let f=()=>{if(d.editor){_y(d.toolbar,{bold:d.editor.isActive(`bold`),italic:d.editor.isActive(`italic`),underline:d.editor.isActive(`underline`),strike:d.editor.isActive(`strike`),orderedList:d.editor.isActive(`orderedList`),bulletList:d.editor.isActive(`bulletList`),blockquote:d.editor.isActive(`blockquote`),codeBlock:d.editor.isActive(`codeBlock`),alignLeft:d.editor.isActive({textAlign:`left`}),alignCenter:d.editor.isActive({textAlign:`center`}),alignRight:d.editor.isActive({textAlign:`right`}),alignJustify:d.editor.isActive({textAlign:`justify`})});for(let e=1;e<=6;e++)if(d.editor.isActive(`heading`,{level:e})){vy(d.toolbar,e);return}vy(d.toolbar,!1)}};return l=requestAnimationFrame(()=>{l=void 0,!t&&(d.editor=new c.Editor({element:u,extensions:[s.default,n.TextStyle,a.Color,i.default.configure({multicolor:!0}),r.default.configure({types:[`heading`,`paragraph`]}),o.default.configure({inline:!1})],content:e.initialHtml||``,onSelectionUpdate:f,onTransaction:f}))}),d}function Fy(e,t,n){if(!e)return{};let r=document.createElement(`aside`);r.classList.add(`menu`);let i={},a=e=>n&&e.close!==!1?t=>{t.stopPropagation(),n(),e.onClick()}:t=>{t.stopPropagation(),e.onClick()},o=0,s=()=>(o+=1,o),c=e=>e?.heading||e?.text||e?.label||`Item ${s()}`,l=e=>{let t=document.createElement(`li`);if(t.className=`font-medium`,e.style&&(t.style.cssText=e.style),e.onClick){let n=e.fontSize||`1em`;if(e.divider){let e=document.createElement(`hr`);e.classList.add(`dropdown-divider`),t.appendChild(e)}else{let r=document.createElement(`a`),i=e.disabled?`0.4`:`1`;r.style.cssText=`text-decoration: none; opacity: ${i}; font-size: ${n}`,e.class&&r.classList.add(e.class),e.color&&(r.style.color=e.color),e.heading&&(r.style.fontWeight=`bold`),e.disabled||(r.onclick=a(e)),r.innerHTML=c(e),t.appendChild(r)}}else t.innerHTML=c(e),e.disabled||(t.onclick=e.onClick);return t},u;for(let e of t||[])if(!e.hide){if(e.items){if(e.text){let t=document.createElement(`p`);t.className=`menu-label font-medium`,t.innerHTML=e.text,r.appendChild(t)}let t=document.createElement(`ul`);t.className=`menu-list`;for(let n of e.items)n.hide||t.appendChild(l(n));r.appendChild(t)}else if(e.type===`input`){let{field:t,inputElement:n}=vn(e);e.focus&&(u=n),i[e.field]=n,r.appendChild(t)}else if(e.type===`divider`){let e=document.createElement(`hr`);e.classList.add(`dropdown-divider`),r.appendChild(e)}}return e.appendChild(r),{focusElement:u}}function Iy(e){return typeof e==`function`}var Ly;function Ry(e){Ly&&=(Ly?.destroy(!0),void 0),e?.remove&&e.remove()}function zy(e){let{title:t,options:n,menuItems:r=[],coords:i,callback:a,config:o}=e,{target:s,items:c}=e;if(!n?.length&&!c?.length&&!r)return;Ry();let l=document.createElement(`div`),u;return s||=i?.evt?.target,s&&(Ly=uy(s,{content:()=>{c=c?.filter(e=>!e.hide&&!e.disabled).map(e=>({...e,onClick:()=>{Ry(l),Iy(e.onClick)&&e.onClick()}}))||n?.filter(e=>!e.hide&&!e.disabled).map(e=>({text:typeof e==`object`?e.option:e,style:e.style,onClick:()=>{e.subMenu?Ly.setContent(`IMPLEMENT SUB MENU`):Iy(e.onClick)?(Ry(l),e.onClick()):Iy(a)&&a&&(Ry(l),a(typeof e==`object`?{...e,coords:i}:e))}}));let e=[{text:t,items:c},...r];return u=Fy(l,e).focusElement,l},theme:`light-border`,trigger:`click`,onShown:()=>{u&&setTimeout(()=>u?.focus(),0)},...o}),Ly.show(),Ly.setProps({interactive:!0})),Ly}var Y=`court-line`;function X(e,t){let n=document.createElementNS(`http://www.w3.org/2000/svg`,e);for(let[e,r]of Object.entries(t))n.setAttribute(e,r);return n}function By(e,t){let n=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`);return n.setAttribute(`viewBox`,e),n.setAttribute(`class`,t),n.setAttribute(`fill`,`none`),n.style.width=`100%`,n.style.height=`auto`,n.style.display=`block`,n}function Vy(e){let t=By(`0 0 360 780`,e);for(let e of[`M 0 0 L 360 0 L 360 780 L 0 780 Z`,`M 45 0 L 45 780`,`M 315 0 L 315 780`,`M 0 390 L 360 390`,`M 45 210 L 315 210`,`M 45 570 L 315 570`,`M 180 210 L 180 570`,`M 180 0 L 180 20`,`M 180 760 L 180 780`])t.appendChild(X(`path`,{d:e,class:Y}));return t}function Hy(e){let t=By(`0 0 500 470`,e),n=[X(`rect`,{x:`0`,y:`0`,width:`500`,height:`470`,class:Y}),X(`circle`,{cx:`250`,cy:`470`,r:`60`,class:Y}),X(`line`,{x1:`0`,y1:`470`,x2:`500`,y2:`470`,class:Y}),X(`rect`,{x:`170`,y:`0`,width:`160`,height:`190`,class:Y}),X(`circle`,{cx:`250`,cy:`190`,r:`60`,class:Y}),X(`line`,{x1:`220`,y1:`40`,x2:`280`,y2:`40`,class:Y}),X(`circle`,{cx:`250`,cy:`52`,r:`12`,class:Y}),X(`path`,{d:`M 30 0 L 30 90 A 220 220 0 0 0 470 90 L 470 0`,class:Y})];for(let e of n)t.appendChild(e);return t}function Uy(e){let t=By(`0 0 500 440`,e),n=[X(`path`,{d:`M 20 170 A 350 400 0 0 1 480 170`,class:Y}),X(`line`,{x1:`250`,y1:`400`,x2:`20`,y2:`170`,class:Y}),X(`line`,{x1:`250`,y1:`400`,x2:`480`,y2:`170`,class:Y}),X(`path`,{d:`M 250 400 L 314 336 L 250 273 L 186 336 Z`,class:Y}),X(`path`,{d:`M 340 355 A 100 100 0 0 1 160 355`,class:Y}),X(`line`,{x1:`340`,y1:`355`,x2:`265`,y2:`405`,class:Y}),X(`line`,{x1:`160`,y1:`355`,x2:`235`,y2:`405`,class:Y}),X(`path`,{d:`M 235 405 A 18 18 0 0 1 265 405`,class:Y}),X(`circle`,{cx:`250`,cy:`340`,r:`9`,class:Y}),X(`line`,{x1:`247`,y1:`339`,x2:`253`,y2:`339`,class:Y}),X(`path`,{d:`M 244 398 L 244 404 L 250 408 L 256 404 L 256 398 Z`,class:Y}),X(`rect`,{x:`310`,y:`332`,width:`8`,height:`8`,transform:`rotate(45 314 336)`,class:Y}),X(`rect`,{x:`246`,y:`269`,width:`8`,height:`8`,transform:`rotate(45 250 273)`,class:Y}),X(`rect`,{x:`182`,y:`332`,width:`8`,height:`8`,transform:`rotate(45 186 336)`,class:Y}),X(`rect`,{x:`230`,y:`393`,width:`8`,height:`18`,class:Y}),X(`rect`,{x:`262`,y:`393`,width:`8`,height:`18`,class:Y})];for(let e of n)t.appendChild(e);return t}function Wy(e){let t=By(`0 0 850 2000`,e),n=[X(`rect`,{x:`0`,y:`0`,width:`850`,height:`2000`,rx:`280`,ry:`280`,class:Y}),X(`line`,{x1:`0`,y1:`1000`,x2:`850`,y2:`1000`,class:Y}),X(`circle`,{cx:`425`,cy:`1000`,r:`60`,class:Y}),X(`line`,{x1:`0`,y1:`650`,x2:`850`,y2:`650`,class:Y}),X(`line`,{x1:`0`,y1:`1350`,x2:`850`,y2:`1350`,class:Y}),X(`line`,{x1:`140`,y1:`300`,x2:`710`,y2:`300`,class:Y}),X(`line`,{x1:`140`,y1:`1700`,x2:`710`,y2:`1700`,class:Y}),X(`path`,{d:`M 395 300 A 40 40 0 0 1 455 300`,class:Y}),X(`path`,{d:`M 395 1700 A 40 40 0 0 0 455 1700`,class:Y}),X(`circle`,{cx:`270`,cy:`650`,r:`50`,class:Y}),X(`circle`,{cx:`580`,cy:`650`,r:`50`,class:Y}),X(`circle`,{cx:`270`,cy:`1350`,r:`50`,class:Y}),X(`circle`,{cx:`580`,cy:`1350`,r:`50`,class:Y})];for(let e of n)t.appendChild(e);return t}function Gy(e){let t=By(`0 0 200 440`,e);for(let e of[`M 0 0 L 200 0 L 200 440 L 0 440 Z`,`M 0 220 L 200 220`,`M 0 150 L 200 150`,`M 0 290 L 200 290`,`M 100 0 L 100 150`,`M 100 290 L 100 440`])t.appendChild(X(`path`,{d:e,class:Y}));return t}function Ky(e){let t=By(`0 0 200 440`,e);for(let e of[`M 0 0 L 200 0 L 200 440 L 0 440 Z`,`M 18 0 L 18 440`,`M 182 0 L 182 440`,`M 0 220 L 200 220`,`M 0 146 L 200 146`,`M 0 294 L 200 294`,`M 0 30 L 200 30`,`M 0 410 L 200 410`,`M 100 146 L 100 220`,`M 100 220 L 100 294`])t.appendChild(X(`path`,{d:e,class:Y}));return t}function qy(e){let t=By(`0 0 100 200`,e);for(let e of[`M 0 0 L 100 0 L 100 200 L 0 200 Z`,`M 0 100 L 100 100`,`M 0 69.5 L 100 69.5`,`M 0 130.5 L 100 130.5`,`M 50 69.5 L 50 67.5`,`M 50 130.5 L 50 132.5`])t.appendChild(X(`path`,{d:e,class:Y}));return t}var Jy=`COURT_SVG`,Yy={tennis:Vy,basketball:Hy,baseball:Uy,hockey:Wy,pickleball:Gy,badminton:Ky,padel:qy},Xy={TENNIS:`tennis`,PADEL:`padel`,PICKLEBALL:`pickleball`,BADMINTON:`badminton`},Zy={HAL:`basketball`,INN:`baseball`,PER:`hockey`};function Qy(e){if(e){for(let[t,n]of Object.entries(Zy))if(e.startsWith(t))return n;if(e.startsWith(`SET`)||e.startsWith(`T`))return e.includes(`@RALLY`)?`pickleball`:`tennis`}}function $y(e){let t=e?.competitionFormat?.sport;return t&&Xy[t]?Xy[t]:Qy(e?.matchUpFormat)}function eb(e){let t=e.getAttribute(`viewBox`);if(!t)return e;let n=t.split(/\s+/).map(Number);if(n.length!==4)return e;let[r,i,a,o]=n;if(o<=a)return e;e.setAttribute(`viewBox`,`${r} ${i} ${o} ${a}`);let s=document.createElementNS(`http://www.w3.org/2000/svg`,`g`);for(s.setAttribute(`transform`,`translate(${o}, 0) rotate(90)`);e.firstChild;)s.appendChild(e.firstChild);return e.appendChild(s),e}function tb(e,t=``){let n=e?Yy[e]:void 0;if(n)return eb(n(t?`court--${e} ${t}`:`court--${e}`))}function nb(e){let t=[];return e.city&&t.push(e.city),(e.state||e.region)&&t.push(e.state||e.region),e.countryCode?t.push(e.countryCode):e.country&&t.push(e.country),t.join(`, `)}function rb(e){if(!e)return;let t=nb(e);return t.length?t:void 0}function ib(e){let t=e?.find(Boolean);if(!t)return;let n=t.addresses?.find(Boolean);return n?rb(n)??t.venueName:t.venueName}var ab=/^(\d{4})-(\d{2})-(\d{2})/,ob=864e5;function sb(e){if(!e)return null;let t=ab.exec(e);if(!t)return null;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);return!Number.isFinite(n)||!Number.isFinite(r)||!Number.isFinite(i)?null:{year:n,month:r,day:i}}function cb(e,t){if(!t)return new Date(e.year,e.month-1,e.day);let n=Date.UTC(e.year,e.month-1,e.day,0,0,0,0),r=new Intl.DateTimeFormat(`en-US`,{timeZone:t,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hourCycle:`h23`}),i=new Date(n);for(let e=0;e<2;e++){let e=r.formatToParts(i),t=t=>Number(e.find(e=>e.type===t)?.value??0),a=Date.UTC(t(`year`),t(`month`)-1,t(`day`),t(`hour`),t(`minute`),t(`second`))-i.getTime();i=new Date(n-a)}return i}function lb(e,t){if(!t)return new Date(e.year,e.month-1,e.day+1);let n=cb(e,t),r=new Date(n.getTime()+ob),i=new Intl.DateTimeFormat(`en-US`,{timeZone:t,year:`numeric`,month:`2-digit`,day:`2-digit`}).formatToParts(r),a=e=>Number(i.find(t=>t.type===e)?.value??0);return cb({year:a(`year`),month:a(`month`),day:a(`day`)},t)}function ub(e){if(!e)return null;let t=sb(e);if(t)return new Date(t.year,t.month-1,t.day);let n=new Date(e);return Number.isNaN(n.getTime())?null:n}function db(e){return e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`})}function fb(e){return e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`,year:`numeric`})}function pb(e,t){if(!e&&!t)return;let n=ub(e),r=ub(t),i=!!n&&!Number.isNaN(n.getTime()),a=!!r&&!Number.isNaN(r.getTime());if(i||a)return i&&a&&n.getTime()===r.getTime()?fb(n):i&&a?n.getFullYear()===r.getFullYear()?`${db(n)} – ${db(r)}, ${r.getFullYear()}`:`${fb(n)} – ${fb(r)}`:fb(i?n:r)}function mb(e){return e.slice().sort((e,t)=>{let n=e.courtOrder,r=t.courtOrder;return Number.isFinite(n)&&Number.isFinite(r)&&n!==r?n-r:Number.isFinite(n)&&!Number.isFinite(r)?-1:!Number.isFinite(n)&&Number.isFinite(r)?1:e.courtName.localeCompare(t.courtName,void 0,{numeric:!0})})}var Aee=`URL`;function hb(e,t){if(!Array.isArray(e))return;let n=e.find(e=>e?.name===t&&e?.resourceType===Aee);return n?.url??n?.identifier}function gb(e,t){if(Array.isArray(e))return e.find(e=>e?.resourceSubType===`COURT_SVG`&&(!t||e?.name===t))?.identifier}function _b(e){if(typeof e==`number`)return Number.isFinite(e)?e:void 0;if(typeof e==`string`){let t=e.trim();if(!t)return;let n=Number(t);return Number.isFinite(n)?n:void 0}}function vb(...e){for(let t of e){let e=_b(t);if(e!==void 0)return e}}function yb(e){let t=document.createElement(`div`);if(t.className=e.cardClass,t.setAttribute(`aria-busy`,`true`),e.showImage){let n=document.createElement(`div`);n.className=e.imageClass;let r=document.createElement(`div`);r.className=e.blockClass,n.appendChild(r),t.appendChild(n)}if(e.bodyLines>0){let n=document.createElement(`div`);n.className=e.bodyClass;for(let t=0;t<e.bodyLines;t++){let r=document.createElement(`div`);r.className=e.lineClass,r.style.width=t===0?`90%`:`${60+t*10}%`,n.appendChild(r)}t.appendChild(n)}if(e.showFooter){let n=document.createElement(`div`);n.className=e.footerClass;let r=document.createElement(`div`);r.className=e.lineClass,r.style.width=`40%`,n.appendChild(r),t.appendChild(n)}return t}var bb={showImage:!0,cornerBadges:[`status`],body:[`title`,`tier`,`location`,`dateRange`],footer:[`feeBadge`,`playerCount`]};function xb(e){return e?{showImage:e.showImage??bb.showImage,cornerBadges:e.cornerBadges??bb.cornerBadges,body:e.body??bb.body,footer:e.footer??bb.footer}:bb}var Sb=()=>`chc-tc-card`,Cb=()=>`chc-tc-card--clickable`,wb=()=>`chc-tc-card--offline`,Tb=()=>`chc-tc-image`,Eb=()=>`chc-tc-image-img`,Db=()=>`chc-tc-image-svg`,Ob=()=>`chc-tc-image-placeholder`,kb=()=>`chc-tc-corner-badges`,Ab=()=>`chc-tc-status-pill`,jb=()=>`chc-tc-offline-badge`,Mb=()=>`chc-tc-body`,Nb=()=>`chc-tc-title`,Pb=()=>`chc-tc-location`,Fb=()=>`chc-tc-date-range`,Ib=()=>`chc-tc-organizer`,Lb=()=>`chc-tc-updated-at`,Rb=()=>`chc-tc-footer`,zb=()=>`chc-tc-fee-badge`,Bb=()=>`chc-tc-player-count`,Vb=()=>`chc-tc-event-count`,Hb=()=>`chc-tc-tier-badge`,Ub=()=>`chc-tc-card chc-tc-skeleton`,Wb=()=>`chc-tc-skeleton-line`,Gb=()=>`chc-tc-skeleton-block`;function Kb(e,t,n){let r=xb(t),i=document.createElement(`div`);return i.className=Sb(),i.dataset.tournamentId=e.tournamentId,e.offline&&i.classList.add(wb()),n?.onClick&&(i.classList.add(Cb()),i.tabIndex=0,i.addEventListener(`click`,t=>{t.stopPropagation(),n.onClick(e)}),i.addEventListener(`keydown`,t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),t.stopPropagation(),n.onClick(e))})),r.showImage!==!1&&i.appendChild(qb(e,r)),r.body.length&&i.appendChild(Qb(e,r)),r.footer.length&&i.appendChild(ox(e,r)),i}function qb(e,t){let n=document.createElement(`div`);if(n.className=Tb(),e.tournamentImageURL){let t=document.createElement(`img`);t.className=Eb(),t.src=e.tournamentImageURL,t.alt=e.tournamentName||``,t.loading=`lazy`,t.addEventListener(`error`,()=>Yb(n,e)),n.appendChild(t)}else Jb(n,e);if(t.cornerBadges.length){let r=Xb(e,t.cornerBadges);r&&n.appendChild(r)}return n}function Jb(e,t){let n=tb(t.courtSvgSport,Db());if(n){e.appendChild(n);return}let r=document.createElement(`div`);r.className=Ob(),e.appendChild(r)}function Yb(e,t){e.querySelector(`.${Eb()}`)?.remove(),Jb(e,t)}function Xb(e,t){let n=[];for(let r of t){let t=Zb(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=kb();for(let e of n)r.appendChild(e);return r}function Zb(e,t){if(e===`status`){if(!t.status)return null;let e=document.createElement(`div`);return e.className=Ab(),e.dataset.kind=t.status.kind,e.textContent=t.status.label,e}if(e===`offline`){if(!t.offline)return null;let e=document.createElement(`div`);return e.className=jb(),e.textContent=`Offline`,e}return null}function Qb(e,t){let n=document.createElement(`div`);n.className=Mb();for(let r of t.body){let t=$b(r,e);t&&n.appendChild(t)}return n}function $b(e,t){switch(e){case`title`:return ex(t);case`tier`:return tx(t);case`location`:return nx(t);case`dateRange`:return rx(t);case`organizerName`:return ix(t);case`updatedAt`:return ax(t);default:return null}}function ex(e){if(!e.tournamentName)return null;let t=document.createElement(`div`);return t.className=Nb(),t.textContent=e.tournamentName,t.title=e.tournamentName,t}function tx(e){let t=e.tournamentTier?.value;if(!t)return null;let n=document.createElement(`div`);return n.className=Hb(),n.textContent=t,n.title=e.tournamentTier?.system?`${e.tournamentTier.system}: ${t}`:t,n}function nx(e){if(!e.location)return null;let t=document.createElement(`div`);return t.className=Pb(),t.textContent=e.location,t.title=e.location,t}function rx(e){if(!e.dateRangeFormatted)return null;let t=document.createElement(`div`);return t.className=Fb(),t.textContent=e.dateRangeFormatted,t}function ix(e){if(!e.organizerName)return null;let t=document.createElement(`div`);return t.className=Ib(),t.textContent=e.organizerName,t}function ax(e){if(!e.updatedAt)return null;let t=document.createElement(`div`);t.className=Lb();let n=new Date(e.updatedAt);return t.textContent=Number.isNaN(n.getTime())?e.updatedAt:n.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`,year:`numeric`}),t}function ox(e,t){let n=document.createElement(`div`);n.className=Rb();for(let r of t.footer){let t=sx(r,e);t&&n.appendChild(t)}return n}function sx(e,t){switch(e){case`feeBadge`:return cx(t);case`playerCount`:return lx(t);case`eventCount`:return ux(t);default:return null}}function cx(e){if(!e.feeFormatted)return null;let t=document.createElement(`div`);return t.className=zb(),t.textContent=e.feeFormatted,t}function lx(e){if(typeof e.participantCount!=`number`)return null;let t=document.createElement(`div`);return t.className=Bb(),t.textContent=`${e.participantCount} ${e.participantCount===1?`player`:`players`}`,t}function ux(e){if(typeof e.eventCount!=`number`)return null;let t=document.createElement(`div`);return t.className=Vb(),t.textContent=`${e.eventCount} ${e.eventCount===1?`event`:`events`}`,t}function dx(e){let t=xb(e);return yb({showImage:t.showImage!==!1,bodyLines:t.body.length,showFooter:t.footer.length>0,cardClass:Ub(),imageClass:Tb(),bodyClass:Mb(),footerClass:Rb(),blockClass:Gb(),lineClass:Wb()})}var fx=6048e5;function px(e){if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t}function mx(e,t,n){return!t||!n?!1:t.getTime()<=e.getTime()&&e.getTime()<n.getTime()}function hx(e){return`Opens ${e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`})}`}function gx(e,t=new Date){let n=e.tournamentStatus?.toUpperCase();if(n===`CANCELLED`||n===`ABANDONDED`||n===`ABANDONED`)return{kind:`cancelled`,label:`Cancelled`};let r=e.timeZone,i=sb(e.endDate),a=i?lb(i,r):null;if(n===`COMPLETED`||a&&t.getTime()>=a.getTime())return{kind:`completed`,label:`Completed`};let o=sb(e.startDate);if(mx(t,o?cb(o,r):null,a))return{kind:`live`,label:`Live`};let s=px(e.entriesClose);if(s){let e=s.getTime()-t.getTime();if(e>0&&e<=fx)return{kind:`closing-soon`,label:`Closing Soon`}}let c=px(e.entriesOpen);return c&&c.getTime()>t.getTime()?{kind:`registration-opens`,label:hx(c)}:null}var _x=`–`,vx={JPY:0,KRW:0,VND:0,CLP:0,ISK:0,KWD:3,BHD:3,OMR:3,JOD:3,TND:3};function yx({amount:e,currencyCode:t,unit:n}){return n===`MAJOR`?e:e/10**(vx[t]??2)}function bx(e,t){try{return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t}).format(e)}catch{return`${e.toFixed(2)} ${t}`}}function xx(e){let t=[];for(let n of e)typeof n?.amount!=`number`||Number.isNaN(n.amount)||n.currencyCode&&n.unit&&t.push({amount:n.amount,currencyCode:n.currencyCode,unit:n.unit});return t}function Sx(e){if(!e?.length)return null;let t=xx(e);if(!t.length)return null;let n=new Map;for(let e of t){let t=`${e.currencyCode}/${e.unit}`,r=n.get(t);r?r.push(e):n.set(t,[e])}let r=[...n.values()].sort((e,t)=>t.length-e.length),i=r[0],a=i[0].currencyCode,o=i.map(yx).sort((e,t)=>e-t),s=o[0],c=o.at(-1)??s;return r.length>1?`From ${a} ${bx(s,a)}`:s===c?`${a} ${bx(s,a)}`:`${a} ${bx(s,a)} ${_x} ${bx(c,a)}`}var Cx=`tournamentImage`;function wx(e){let t=e?.registrationProfile?.entryFees;return Array.isArray(t)?t.filter(e=>e&&typeof e.amount==`number`):[]}function Tx(e,t){let n=e?.individualParticipantCount;return typeof n==`number`?n||void 0:t.filter(e=>(!e?.participantType||e.participantType===`INDIVIDUAL`)&&(!e?.participantRole||e.participantRole===`COMPETITOR`)).length||void 0}function Ex(e){let t=e?.timeItems;if(Array.isArray(t))return t.find(e=>e?.itemType===`TMX`)?.itemValue?.offline}function Dx(e){let{timeZone:n,error:r}=t.tournamentGovernor.getTournamentTimeZone({tournamentRecord:{localTimeZone:e?.localTimeZone||e?.timeZone,venues:Array.isArray(e?.venues)?e.venues:void 0}});return{tournamentStatus:e?.tournamentStatus,startDate:r?void 0:e?.startDate,endDate:r?void 0:e?.endDate,entriesOpen:e?.registrationProfile?.entriesOpen,entriesClose:e?.registrationProfile?.entriesClose,timeZone:n}}function Ox(e,t){let n=Array.isArray(e?.onlineResources)?e.onlineResources:void 0,r=Array.isArray(e?.venues)?e.venues:[],i=Array.isArray(e?.participants)?e.participants:[],a=Array.isArray(e?.events)?e.events:[],o=t?.statusOverride===void 0?gx(Dx(e),t?.now):t.statusOverride,s=e?.tournamentImageURL??hb(n,Cx),c=e?.courtSvgSport??gb(n);return{tournamentId:e?.tournamentId??``,tournamentName:e?.tournamentName??``,startDate:e?.startDate,endDate:e?.endDate,dateRangeFormatted:pb(e?.startDate,e?.endDate),location:ib(r),tournamentImageURL:s,courtSvgSport:c,participantCount:Tx(e,i),eventCount:a.length||void 0,organizerName:e?.tournamentOrganizers?.find?.(Boolean)?.organizerName,status:o,feeFormatted:Sx(wx(e)),updatedAt:e?.updatedAt,offline:Ex(e),tournamentTier:kx(e)}}function kx(e){let t=e?.tournamentTier;if(!t||typeof t!=`object`||typeof t.system!=`string`||typeof t.value!=`string`)return;let n={system:t.system,value:t.value};return typeof t.numericRank==`number`&&Number.isFinite(t.numericRank)&&(n.numericRank=t.numericRank),n}var Ax={showImage:!0,showMap:!0,cornerBadges:[`primaryBadge`],body:[`title`,`address`,`courtBreakdown`],footer:[`amenityRow`]};function jx(e){return e?{showImage:e.showImage??Ax.showImage,showMap:e.showMap??Ax.showMap,cornerBadges:e.cornerBadges??Ax.cornerBadges,body:e.body??Ax.body,footer:e.footer??Ax.footer}:Ax}var Mx=()=>`chc-vc-card`,Nx=()=>`chc-vc-card--clickable`,Px=()=>`chc-vc-image`,Fx=()=>`chc-vc-image-img`,Ix=()=>`chc-vc-image-svg`,Lx=()=>`chc-vc-image-map`,Rx=()=>`chc-vc-image-placeholder`,zx=()=>`chc-vc-corner-badges`,Bx=()=>`chc-vc-primary-badge`,Vx=()=>`chc-vc-body`,Hx=()=>`chc-vc-title`,Ux=()=>`chc-vc-address`,Wx=()=>`chc-vc-court-breakdown`,Gx=()=>`chc-vc-footer`,Kx=()=>`chc-vc-amenity-row`,qx=()=>`chc-vc-amenity`,Jx=()=>`chc-vc-card chc-vc-skeleton`,Yx=()=>`chc-vc-skeleton-line`,Xx=()=>`chc-vc-skeleton-block`;function Zx(e,t,n){let r=jx(t),i=document.createElement(`div`);i.className=Mx(),i.dataset.venueId=e.venueId;let a=null;r.showImage!==!1&&(a=tS(e,r,()=>f()),i.appendChild(a));let o=r.body.length?lS(e,r):null;o&&i.appendChild(o);let s=r.footer.length?pS(e,r):null;s&&i.appendChild(s);function c(){return!!a?.querySelector(`iframe`)}let l=new Map;function u(e,t){if(l.has(e))return;let n=e=>{e.stopPropagation(),t()},r=e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),e.stopPropagation(),t())};e.classList.add(Nx()),e.tabIndex=0,e.addEventListener(`click`,n),e.addEventListener(`keydown`,r),l.set(e,{click:n,keydown:r})}function d(e){let t=l.get(e);t&&(e.removeEventListener(`click`,t.click),e.removeEventListener(`keydown`,t.keydown),e.classList.remove(Nx()),e.removeAttribute(`tabindex`),l.delete(e))}function f(){if(!n?.onClick)return;let t=()=>n.onClick(e);c()?(d(i),o&&u(o,t),s&&u(s,t)):(o&&d(o),s&&d(s),u(i,t))}return f(),i}function Qx(e){return typeof e.latitude==`number`&&typeof e.longitude==`number`}function $x(e){let t=e.latitude,n=e.longitude,r=.01,i=`https://www.openstreetmap.org/export/embed.html?bbox=${`${n-r},${t-r},${n+r},${t+r}`}&marker=${t},${n}&layer=mapnik`,a=document.createElement(`iframe`);return a.className=Lx(),a.src=i,a.loading=`lazy`,a.title=`Map of ${e.venueName}`,a}function eS(e,t){let n=tb(t.courtSvgSport,Ix());if(n){e.appendChild(n);return}let r=document.createElement(`div`);r.className=Rx(),e.appendChild(r)}function tS(e,t,n){let r=document.createElement(`div`);if(r.className=Px(),e.venueImageURL){let i=document.createElement(`img`);i.className=Fx(),i.src=e.venueImageURL,i.alt=e.venueName||``,i.loading=`lazy`,i.addEventListener(`error`,()=>{i.remove(),t.showMap!==!1&&Qx(e)?r.appendChild($x(e)):eS(r,e),n?.()}),r.appendChild(i)}else t.showMap!==!1&&Qx(e)?r.appendChild($x(e)):eS(r,e);if(t.cornerBadges.length){let n=rS(e,t.cornerBadges);n&&r.appendChild(n)}return r}function nS(e,t){if(e===`primaryBadge`){if(!t.isPrimary)return null;let e=document.createElement(`div`);return e.className=Bx(),e.textContent=`Primary`,e}return null}function rS(e,t){let n=[];for(let r of t){let t=nS(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=zx();for(let e of n)r.appendChild(e);return r}function iS(e){if(!e.venueName)return null;let t=document.createElement(`div`);return t.className=Hx(),t.textContent=e.venueName,t.title=e.notes?`${e.venueName}\n${e.notes}`:e.venueName,t}function aS(e){if(!e.addressFormatted)return null;let t=document.createElement(`div`);return t.className=Ux(),t.textContent=e.addressFormatted,t.title=e.addressFormatted,t}function oS(e){if(!e.courtBreakdown)return null;let t=document.createElement(`div`);return t.className=Wx(),t.textContent=e.courtBreakdown,t}function sS(e){if(!e.venueAbbreviation)return null;let t=document.createElement(`div`);return t.className=Wx(),t.textContent=e.venueAbbreviation,t}function cS(e,t){return e===`title`?iS(t):e===`address`?aS(t):e===`courtBreakdown`?oS(t):e===`venueAbbreviation`?sS(t):null}function lS(e,t){let n=document.createElement(`div`);n.className=Vx();for(let r of t.body){let t=cS(r,e);t&&n.appendChild(t)}return n}function uS(e){let t=document.createElement(`span`);return t.className=qx(),t.textContent=e,t}function dS(e){let t=[];if(typeof e.courtCount==`number`&&t.push(uS(`${e.courtCount} ${e.courtCount===1?`court`:`courts`}`)),e.indoorCount&&t.push(uS(`${e.indoorCount} indoor`)),e.outdoorCount&&t.push(uS(`${e.outdoorCount} outdoor`)),e.floodlitCount&&t.push(uS(`${e.floodlitCount} lit`)),!t.length)return null;let n=document.createElement(`div`);n.className=Kx();for(let e of t)n.appendChild(e);return n}function fS(e,t){return e===`amenityRow`?dS(t):e===`address`?aS(t):e===`courtBreakdown`?oS(t):null}function pS(e,t){let n=document.createElement(`div`);n.className=Gx();for(let r of t.footer){let t=fS(r,e);t&&n.appendChild(t)}return n}function mS(e){let t=jx(e);return yb({showImage:t.showImage!==!1,bodyLines:t.body.length,showFooter:t.footer.length>0,cardClass:Jx(),imageClass:Px(),bodyClass:Vx(),footerClass:Gx(),blockClass:Xx(),lineClass:Yx()})}var hS=`venueImage`;function gS(e){let t=[];return e.indoorOutdoor&&t.push(e.indoorOutdoor.toLowerCase()),e.surfaceCategory&&t.push(e.surfaceCategory.toLowerCase()),t.length?t.join(` `):`court`}function _S(e){if(!e.length)return;let t=new Map;for(let n of e){let e=gS(n);t.set(e,(t.get(e)??0)+1)}return[...t.entries()].sort((e,t)=>t[1]-e[1]).map(([e,t])=>`${t} ${e}`).join(`, `)}function vS(e,t){let n=0;for(let r of e)t(r)&&(n+=1);return n}function yS(e,t){let n=Array.isArray(e?.courts)?e.courts:[],r=Array.isArray(e?.onlineResources)?e.onlineResources:void 0,i=e?.addresses?.find(e=>e);return{venueId:e?.venueId??``,venueName:e?.venueName??``,venueAbbreviation:e?.venueAbbreviation,addressFormatted:rb(i),latitude:_b(i?.latitude),longitude:_b(i?.longitude),courtCount:n.length||void 0,courtBreakdown:_S(n),indoorCount:vS(n,e=>e.indoorOutdoor===`INDOOR`)||void 0,outdoorCount:vS(n,e=>e.indoorOutdoor===`OUTDOOR`)||void 0,floodlitCount:vS(n,e=>!!e.floodlit)||void 0,isPrimary:!!e?.isPrimary,venueImageURL:e?.venueImageURL??hb(r,hS),courtSvgSport:e?.courtSvgSport??gb(r)??t?.sport,notes:e?.notes}}var bS={showImage:!0,cornerBadges:[`indoorOutdoor`,`floodlit`],body:[`title`,`surface`],footer:[`amenityRow`]};function xS(e){return e?{showImage:e.showImage??bS.showImage,cornerBadges:e.cornerBadges??bS.cornerBadges,body:e.body??bS.body,footer:e.footer??bS.footer}:bS}var SS=()=>`chc-cc-card`,CS=()=>`chc-cc-card--clickable`,wS=()=>`chc-cc-image`,TS=()=>`chc-cc-image-svg`,ES=()=>`chc-cc-image-placeholder`,DS=()=>`chc-cc-corner-badges`,OS=()=>`chc-cc-indoor-badge`,kS=()=>`chc-cc-floodlit-badge`,AS=()=>`chc-cc-body`,jS=()=>`chc-cc-title`,MS=()=>`chc-cc-surface`,NS=()=>`chc-cc-availability`,PS=()=>`chc-cc-abbr`,FS=()=>`chc-cc-footer`,IS=()=>`chc-cc-amenity-row`,LS=()=>`chc-cc-card chc-cc-skeleton`,RS=()=>`chc-cc-skeleton-line`,zS=()=>`chc-cc-skeleton-block`;function BS(e,t,n){let r=xS(t),i=document.createElement(`div`);return i.className=SS(),i.dataset.courtId=e.courtId,n?.onClick&&(i.classList.add(CS()),i.tabIndex=0,i.addEventListener(`click`,t=>{t.stopPropagation(),n.onClick(e)}),i.addEventListener(`keydown`,t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),t.stopPropagation(),n.onClick(e))})),r.showImage!==!1&&i.appendChild(HS(e,r)),r.body.length&&i.appendChild(QS(e,r)),r.footer.length&&i.appendChild(tC(e,r)),i}function VS(e,t){let n=tb(t.courtSvgSport,TS());if(n){e.appendChild(n);return}let r=document.createElement(`div`);r.className=ES(),e.appendChild(r)}function HS(e,t){let n=document.createElement(`div`);if(n.className=wS(),e.surfaceCategory&&(n.dataset.surface=e.surfaceCategory),VS(n,e),t.cornerBadges.length){let r=KS(e,t.cornerBadges);r&&n.appendChild(r)}return n}function US(e){if(!e.indoorOutdoor)return null;let t=document.createElement(`div`);return t.className=OS(),t.dataset.kind=e.indoorOutdoor,t.textContent=e.indoorOutdoor===`INDOOR`?`Indoor`:`Outdoor`,t}function WS(e){if(!e.floodlit)return null;let t=document.createElement(`div`);return t.className=kS(),t.textContent=`Lit`,t}function GS(e,t){return e===`indoorOutdoor`?US(t):e===`floodlit`?WS(t):null}function KS(e,t){let n=[];for(let r of t){let t=GS(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=DS();for(let e of n)r.appendChild(e);return r}function qS(e){if(!e.courtName)return null;let t=document.createElement(`div`);return t.className=jS(),t.textContent=e.courtName,t.title=e.notes?`${e.courtName}\n${e.notes}`:e.courtName,t}function JS(e){if(!e.surfaceLabel)return null;let t=document.createElement(`div`);return t.className=MS(),t.textContent=e.surfaceLabel,t}function YS(e){if(!e.availabilitySummary)return null;let t=document.createElement(`div`);return t.className=NS(),t.textContent=e.availabilitySummary,t}function XS(e){if(!e.courtAbbreviation)return null;let t=document.createElement(`div`);return t.className=PS(),t.textContent=e.courtAbbreviation,t}function ZS(e,t){return e===`title`?qS(t):e===`surface`?JS(t):e===`availability`?YS(t):e===`abbreviation`?XS(t):null}function QS(e,t){let n=document.createElement(`div`);n.className=AS();for(let r of t.body){let t=ZS(r,e);t&&n.appendChild(t)}return n}function $S(e){let t=[];if(e.indoorOutdoor&&t.push(e.indoorOutdoor===`INDOOR`?`indoor`:`outdoor`),e.surfaceCategory&&t.push(e.surfaceCategory.toLowerCase()),e.floodlit&&t.push(`floodlit`),!t.length)return null;let n=document.createElement(`div`);return n.className=IS(),n.textContent=t.join(` · `),n}function eC(e,t){return e===`amenityRow`?$S(t):e===`availability`?YS(t):e===`surface`?JS(t):null}function tC(e,t){let n=document.createElement(`div`);n.className=FS();for(let r of t.footer){let t=eC(r,e);t&&n.appendChild(t)}return n}function nC(e){let t=xS(e);return yb({showImage:t.showImage!==!1,bodyLines:t.body.length,showFooter:t.footer.length>0,cardClass:LS(),imageClass:wS(),bodyClass:AS(),footerClass:FS(),blockClass:zS(),lineClass:RS()})}var rC=`INDOOR`,iC=`OUTDOOR`,aC=new Set([`HARD`,`CLAY`,`GRASS`,`ARTIFICIAL`,`CARPET`]);function oC(e){if(!e)return;let t=String(e).toUpperCase();if(t===rC)return rC;if(t===iC)return iC}function sC(e){let t=e?.surfaceCategory?String(e.surfaceCategory).toUpperCase():void 0;if(t&&aC.has(t))return t;let n=e?.surfaceType?String(e.surfaceType).toUpperCase():void 0;return n&&aC.has(n)?n:t}function cC(e,t){let n=[];return e&&n.push(e.charAt(0)+e.slice(1).toLowerCase()),t&&n.push(t.charAt(0)+t.slice(1).toLowerCase()),n.length?n.join(` · `):void 0}function lC(e,t){let n=oC(e?.indoorOutdoor),r=sC(e);return{courtId:e?.courtId??``,courtName:e?.courtName??``,courtAbbreviation:e?.courtAbbreviation,surfaceLabel:cC(n,r),indoorOutdoor:n,surfaceCategory:r,floodlit:!!e?.floodlit,courtSvgSport:t?.sport,notes:e?.notes}}var uC={grouping:`setting`,sport:`tennis`,showGroupHeadings:!0,showSummary:!0,minCardWidth:`11rem`,emptyMessage:`No courts recorded for this venue`};function dC(e){return e?{grouping:e.grouping??uC.grouping,sport:e.sport??uC.sport,showGroupHeadings:e.showGroupHeadings??uC.showGroupHeadings,showSummary:e.showSummary??uC.showSummary,minCardWidth:e.minCardWidth??uC.minCardWidth,emptyMessage:e.emptyMessage??uC.emptyMessage}:uC}var fC=()=>`chc-cl`,pC=()=>`chc-cl-summary`,mC=()=>`chc-cl-summary-count`,hC=()=>`chc-cl-group`,gC=()=>`chc-cl-group-heading`,_C=()=>`chc-cl-group-count`,vC=()=>`chc-cl-grid`,yC=()=>`chc-cl-empty`,bC=`Unspecified`,xC=`Unspecified surface`;function SC(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}function CC(e){let t=typeof e.indoorOutdoor==`string`?e.indoorOutdoor.trim():``;return t?SC(t):bC}function wC(e){let t=typeof e.surfaceCategory==`string`?e.surfaceCategory.trim():``;return t?SC(t):xC}function TC(e,t){let n=mb(e);if(t===`none`)return[{key:`all`,label:`All courts`,courts:n}];let r=e=>t===`setting`?CC(e):t===`surface`?wC(e):`${CC(e)} · ${wC(e)}`,i=new Map;for(let e of n){let t=r(e),n=i.get(t);n?n.courts.push(e):i.set(t,{key:t,label:t,courts:[e]})}return[...i.values()]}function EC(e){let t=new Map;for(let n of e){let e=CC(n),r=wC(n),i=`${e===bC?``:e.toLowerCase()} ${r===xC?``:r.toLowerCase()}`.trim()||`court`;t.set(i,(t.get(i)??0)+1)}return[...t.entries()].sort((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0])).map(([e,t])=>`${t} ${e}`).join(`, `)}function DC(e,t,n){let r=dC(t),i=e.courts??[],a=document.createElement(`div`);if(a.className=fC(),e.venueId&&(a.dataset.venueId=e.venueId),!i.length){let e=document.createElement(`div`);return e.className=yC(),e.textContent=r.emptyMessage,a.appendChild(e),a}r.showSummary&&a.appendChild(OC(i));for(let e of TC(i,r.grouping))a.appendChild(kC(e,r,n));return a}function OC(e){let t=document.createElement(`div`);t.className=pC();let n=document.createElement(`span`);n.className=mC(),n.textContent=`${e.length} ${e.length===1?`court`:`courts`}`;let r=document.createElement(`span`);return r.textContent=EC(e),t.append(n,r),t}function kC(e,t,n){let r=document.createElement(`div`);if(r.className=hC(),r.dataset.group=e.key,t.showGroupHeadings&&t.grouping!==`none`){let t=document.createElement(`div`);t.className=gC();let n=document.createElement(`span`);n.textContent=e.label;let i=document.createElement(`span`);i.className=_C(),i.textContent=String(e.courts.length),t.append(n,i),r.appendChild(t)}let i=document.createElement(`div`);i.className=vC(),i.style.setProperty(`--chc-cl-min-card`,t.minCardWidth);for(let r of e.courts)i.appendChild(jC(r,t,n));return r.appendChild(i),r}function AC(e){if(e===`setting`||e===`both`)return{cornerBadges:[`floodlit`]}}function jC(e,t,n){let r=lC(e,{sport:t.sport}),i=n?.onCourtClick?{onClick:()=>n.onCourtClick?.(e)}:void 0;return BS(r,AC(t.grouping),i)}var MC={tiles:{map:{tileLayer:`https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png`,attribution:`© <a href="https://openstreetmap.org">OpenStreetMap</a> Contributors`,maxZoom:18},satellite:{tileLayer:`https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}`,attribution:`Tiles © Esri`}},darkTileLayer:{tileLayer:`https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png`,attribution:`© <a href="https://openstreetmap.org">OpenStreetMap</a> Contributors © <a href="https://carto.com/attributions">CARTO</a>`,maxZoom:20},view:`map`,showViewToggle:!0,zoom:16,height:`320px`,courtsLayout:`side`,showHeader:!0,showPopup:!0,scrollWheelZoom:!1,darkTiles:`auto`};function NC(e){return e?{tiles:e.tiles??MC.tiles,darkTileLayer:e.darkTileLayer===void 0?MC.darkTileLayer:e.darkTileLayer,view:e.view??MC.view,showViewToggle:e.showViewToggle??MC.showViewToggle,zoom:e.zoom??MC.zoom,height:e.height??MC.height,courtsLayout:e.courtsLayout??MC.courtsLayout,showHeader:e.showHeader??MC.showHeader,showPopup:e.showPopup??MC.showPopup,scrollWheelZoom:e.scrollWheelZoom??MC.scrollWheelZoom,darkTiles:e.darkTiles??MC.darkTiles}:MC}var PC=()=>`chc-vl`,FC=()=>`chc-vl-header`,IC=()=>`chc-vl-title`,LC=()=>`chc-vl-address`,RC=()=>`chc-vl-notes`,zC=()=>`chc-vl-body`,BC=()=>`chc-vl-body--below`,VC=()=>`chc-vl-mapwrap`,HC=()=>`chc-vl-map`,UC=()=>`chc-vl-map--invertible`,WC=()=>`chc-vl-toggle`,GC=()=>`chc-vl-toggle-btn`,KC=()=>`chc-vl-fallback`,qC=()=>`chc-vl-fallback-icon`,JC=()=>`chc-vl-courts`,YC=()=>`chc-vl-courts-title`,XC=()=>`chc-vl-court-list`,ZC=()=>`chc-vl-court`,QC=()=>`chc-vl-court--clickable`,$C=()=>`chc-vl-court-name`,ew=()=>`chc-vl-court-meta`,tw=()=>`chc-vl-pip`,nw=()=>`chc-vl-marker`,rw=()=>`chc-vl-popup-title`,iw=()=>`chc-vl-popup-address`,aw=`No coordinates for this venue`,ow=`Map unavailable`,sw=new WeakMap;function cw(e){return Number.isFinite(e.latitude)&&Number.isFinite(e.longitude)}function lw(e){return mb(e)}function uw(e){let t=[];return e.indoorOutdoor&&t.push(e.indoorOutdoor.toLowerCase()),e.surfaceCategory&&t.push(e.surfaceCategory.toLowerCase()),t.join(` · `)}function dw(e,t,n){let r=NC(t),i=document.createElement(`div`);i.className=PC(),i.dataset.venueId=e.venueId;let a={disposed:!1,cleanup:()=>{}};sw.set(i,()=>{a.disposed=!0,a.cleanup()}),r.showHeader&&i.appendChild(pw(e));let o=document.createElement(`div`);o.className=r.courtsLayout===`side`?zC():`${zC()} ${BC()}`;let{wrap:s,mapEl:c}=hw(e,r,n);o.appendChild(s);let l=e.courts??[];return r.courtsLayout!==`none`&&l.length&&o.appendChild(vw(l,e,n)),i.appendChild(o),c&&cw(e)&&bw({root:i,mapEl:c,data:e,cfg:r,callbacks:n,lifetime:a}).catch(()=>void 0),i}function fw(e){let t=sw.get(e);t&&(t(),sw.delete(e))}function pw(e){let t=document.createElement(`div`);t.className=FC();let n=document.createElement(`div`);if(n.className=IC(),n.textContent=e.venueName,t.appendChild(n),e.addressFormatted){let n=document.createElement(`div`);n.className=LC(),n.textContent=e.addressFormatted,t.appendChild(n)}if(e.notes){let n=document.createElement(`div`);n.className=RC(),n.textContent=e.notes,t.appendChild(n)}return t}function mw(e){let t=document.createElement(`div`);t.className=KC();let n=document.createElement(`div`);n.className=qC(),n.textContent=`📍`,n.setAttribute(`aria-hidden`,`true`);let r=document.createElement(`div`);return r.textContent=e,t.append(n,r),t}function hw(e,t,n){let r=document.createElement(`div`);if(r.className=VC(),r.style.height=t.height,!cw(e))return r.appendChild(mw(aw)),{wrap:r,mapEl:null};let i=document.createElement(`div`);i.className=HC(),i.appendChild(mw(``)),r.appendChild(i);let a=Object.keys(t.tiles);return t.showViewToggle&&a.length>1&&r.appendChild(gw(a,t,n)),{wrap:r,mapEl:i}}function gw(e,t,n){let r=document.createElement(`div`);r.className=WC(),r.dataset.viewToggle=`true`;let i=[];for(let a of e){let e=document.createElement(`button`);e.type=`button`,e.className=GC(),e.dataset.view=a,e.textContent=a===`satellite`?`Satellite`:`Map`,e.setAttribute(`aria-pressed`,String(a===t.view)),e.addEventListener(`click`,()=>{for(let t of i)t.setAttribute(`aria-pressed`,String(t===e));n?.onViewChange?.(a)}),i.push(e),r.appendChild(e)}return r}function _w(e,t,n){let r=!!n?.onCourtClick,i=document.createElement(r?`button`:`div`);i.className=r?`${ZC()} ${QC()}`:ZC(),i.dataset.courtId=e.courtId,r&&(i.type=`button`,i.addEventListener(`click`,()=>n?.onCourtClick?.(e,t)));let a=document.createElement(`span`);a.className=$C(),a.textContent=e.courtName;let o=document.createElement(`span`);o.className=ew();let s=uw(e);if(s&&o.append(document.createTextNode(s)),e.floodlit){let e=document.createElement(`span`);e.className=tw(),e.title=`floodlit`,o.appendChild(e)}return i.append(a,o),i}function vw(e,t,n){let r=document.createElement(`div`);r.className=JC();let i=document.createElement(`div`);i.className=YC(),i.textContent=`Courts (${e.length})`,r.appendChild(i);let a=document.createElement(`div`);a.className=XC();for(let r of lw(e))a.appendChild(_w(r,t,n));return r.appendChild(a),r}function yw(e){let t=e=>e.replace(/[&<>"]/g,e=>({"&":`&`,"<":`<`,">":`>`,'"':`"`})[e]),n=e.addressFormatted?`<div class="${iw()}">${t(e.addressFormatted)}</div>`:``;return`<div class="${rw()}">${t(e.venueName)}</div>${n}`}async function bw({root:e,mapEl:t,data:n,cfg:r,callbacks:i,lifetime:a}){let o;try{o=await import(`leaflet`)}catch(e){if(a.disposed)return;t.replaceChildren(mw(ow)),i?.onMapUnavailable?.(Error(`leaflet is an optional peerDependency of courthive-components and is not installed`,{cause:e}));return}if(a.disposed)return;let s=o.default??o;try{t.replaceChildren();let o=s.map(t,{scrollWheelZoom:r.scrollWheelZoom,attributionControl:!0}),c,l,u=!1;a.cleanup=()=>{u||(u=!0,c?.disconnect(),l?.disconnect(),o.remove())},o.setView([n.latitude,n.longitude],r.zoom);let d=r.view,f=Ew(s,o,r,d);Dw(t,r,d);let p=e=>{d=e,o.removeLayer(f),f=Ew(s,o,r,e),Dw(t,r,e)},m=s.divIcon({className:``,html:`<div class="${nw()}"></div>`,iconSize:[14,14]}),h=s.marker([n.latitude,n.longitude],{icon:m}).addTo(o);r.showPopup&&h.bindPopup(yw(n)),h.on(`click`,()=>i?.onVenueClick?.(n)),e.querySelector(`[data-view-toggle]`)?.addEventListener(`click`,e=>{let t=e.target?.closest(`button[data-view]`);t&&p(t.dataset.view)}),Cw(t),c=new ResizeObserver(()=>o.invalidateSize()),c.observe(t);let g=globalThis.document?.documentElement;if(g&&r.darkTiles!==`never`&&r.darkTileLayer){let e=ww();l=new MutationObserver(()=>{let t=ww();t!==e&&(e=t,d!==`satellite`&&p(d))}),l.observe(g,{attributes:!0,attributeFilter:[`data-theme`]})}}catch(e){if(a.cleanup(),a.disposed)return;t.replaceChildren(mw(ow)),i?.onMapUnavailable?.(Error(`Leaflet map failed to initialize`,{cause:e}))}}var xw=!1;function Sw(e){return e?e!==`relative`&&e!==`absolute`:!1}function Cw(e){xw||Sw(globalThis.getComputedStyle?.(e)?.position)&&(xw=!0,console.warn("[courthive-components] venue-locator: leaflet's stylesheet is missing — the map will render incorrectly. Add `import 'leaflet/dist/leaflet.css';` to the host application."))}function ww(){return globalThis.document?.documentElement?.dataset.theme===`dark`}function Tw(e,t,n){let r=e.tiles[t]??e.tiles.map;return t===`satellite`||e.darkTiles===`never`||!n?r:e.darkTileLayer??r}function Ew(e,t,n,r){let i=Tw(n,r,ww());return e.tileLayer(i.tileLayer,{attribution:i.attribution,maxZoom:i.maxZoom??19}).addTo(t)}function Dw(e,t,n){let r=t.darkTiles===`auto`&&n!==`satellite`&&!t.darkTileLayer;e.classList.toggle(UC(),r)}function Ow(...e){for(let t of e)if(typeof t==`number`&&Number.isFinite(t))return t}function kw(e,t){let n=typeof e?.indoorOutdoor==`string`?e.indoorOutdoor.toUpperCase():void 0;return{courtId:e?.courtId??`court-${t+1}`,courtName:e?.courtName??`Court ${t+1}`,indoorOutdoor:n===`INDOOR`||n===`OUTDOOR`?n:void 0,surfaceCategory:e?.surfaceCategory,floodlit:e?.floodlit,courtOrder:Ow(e?.courtOrder),latitude:vb(e?.latitude),longitude:vb(e?.longitude)}}function Aw(e){let t=Array.isArray(e?.courts)?e.courts:[],n=e?.addresses?.find(e=>e);return{venueId:e?.venueId??``,venueName:e?.venueName??e?.venueAbbreviation??``,venueAbbreviation:e?.venueAbbreviation,addressFormatted:rb(n),latitude:vb(e?.latitude,n?.latitude),longitude:vb(e?.longitude,n?.longitude),courts:t.map(kw),notes:e?.notes}}var jw=()=>`chc-team-card`,Mw=()=>`chc-team-card--clickable`,Nw=()=>`chc-team-card__title-row`,Pw=()=>`chc-team-card__name`,Fw=()=>`chc-team-card__nickname`,Iw=()=>`chc-team-card__counts`,Lw=` · `;function Rw(e,t){let n=document.createElement(`div`);n.className=jw(),e.teamId&&(n.dataset.teamId=e.teamId),t?.onClick&&(n.classList.add(Mw()),n.tabIndex=0,n.setAttribute(`role`,`button`),n.addEventListener(`click`,n=>{n.stopPropagation(),t.onClick(e)}),n.addEventListener(`keydown`,n=>{(n.key===`Enter`||n.key===` `)&&(n.preventDefault(),n.stopPropagation(),t.onClick(e))})),n.appendChild(zw(e));let r=(e.countSegments??[]).map(e=>(e??``).trim()).filter(Boolean);return r.length&&n.appendChild(Bw(r)),n}function zw(e){let t=document.createElement(`div`);t.className=Nw();let n=document.createElement(`span`);if(n.className=Pw(),n.textContent=e.teamName,t.appendChild(n),e.nickname){let n=document.createElement(`span`);n.className=Fw(),n.textContent=`"${e.nickname}"`,t.appendChild(n)}return t}function Bw(e){let t=document.createElement(`div`);return t.className=Iw(),t.textContent=e.join(Lw),t}var Vw=[`COMPETITIVE`,`ROUTINE`,`DECISIVE`,`WALKOVER`],Hw=new Set([`WALKOVER`,`DOUBLE_WALKOVER`,`DEFAULTED`,`DOUBLE_DEFAULT`]);function Uw(){return{COMPETITIVE:0,ROUTINE:0,DECISIVE:0,WALKOVER:0}}function Ww(e){let t=Uw();if(!Array.isArray(e))return t;for(let n of e){let e=typeof n?.getData==`function`?n.getData():n;if(!e)continue;if(e.matchUpStatus&&Hw.has(e.matchUpStatus)){t.WALKOVER+=1;continue}let r=e.competitiveProfile?.competitiveness;r&&r!==`WALKOVER`&&Vw.includes(r)&&(t[r]+=1)}return t}function Gw(e){return Vw.reduce((t,n)=>t+e[n],0)}var Kw={COMPETITIVE:`Competitive`,ROUTINE:`Routine`,DECISIVE:`Decisive`,WALKOVER:`Walkover / Defaulted`};function qw(e={}){let{onSegmentClick:t}=e,n=document.createElement(`div`);n.className=`chc-cb`;let r={};for(let e of Vw){let i=document.createElement(`div`);i.className=`chc-cb__seg`,i.dataset.bucket=e,t&&(i.classList.add(`is-clickable`),i.setAttribute(`role`,`button`),i.addEventListener(`click`,()=>t(e))),r[e]=i,n.appendChild(i)}return{element:n,update:e=>{let t=Gw(e);if(n.style.display=t>0?`flex`:`none`,t)for(let t of Vw){let n=r[t],i=e[t];i===0?(n.style.flex=`0 0 0`,n.style.padding=`0`,n.textContent=``,n.removeAttribute(`title`)):(n.style.flex=`${i} 1 0`,n.style.padding=`0 4px`,n.textContent=String(i),n.title=`${Kw[t]}: ${i}`)}},setActive:e=>{n.classList.toggle(`has-active`,!!e);for(let t of Vw)r[t].classList.toggle(`is-active`,t===e)}}}var Jw={COMPETITIVE:`Competitive`,ROUTINE:`Routine`,DECISIVE:`Decisive`,WALKOVER:`Walkover / Defaulted`},Yw=`http://www.w3.org/2000/svg`,Xw=96,Zw=Xw/2,Qw=47,$w=31;function eT(e,t){return{x:Zw+t*Math.cos(e),y:Zw+t*Math.sin(e)}}function tT(e,t){let n=eT(e,Qw),r=eT(t,Qw),i=eT(t,$w),a=eT(e,$w),o=+(t-e>Math.PI);return[`M ${n.x} ${n.y}`,`A ${Qw} ${Qw} 0 ${o} 1 ${r.x} ${r.y}`,`L ${i.x} ${i.y}`,`A ${$w} ${$w} 0 ${o} 0 ${a.x} ${a.y}`,`Z`].join(` `)}function nT(){let e=eT(-Math.PI/2,Qw),t=eT(Math.PI/2,Qw),n=eT(-Math.PI/2,$w),r=eT(Math.PI/2,$w);return[`M ${e.x} ${e.y}`,`A ${Qw} ${Qw} 0 1 1 ${t.x} ${t.y}`,`A ${Qw} ${Qw} 0 1 1 ${e.x} ${e.y}`,`L ${n.x} ${n.y}`,`A ${$w} ${$w} 0 1 0 ${r.x} ${r.y}`,`A ${$w} ${$w} 0 1 0 ${n.x} ${n.y}`,`Z`].join(` `)}function rT(){let e=document.createElement(`div`);e.className=`chc-cd`;let t=document.createElementNS(Yw,`svg`);t.setAttribute(`viewBox`,`0 0 ${Xw} ${Xw}`),t.setAttribute(`class`,`chc-cd__svg`),t.setAttribute(`role`,`img`);let n={};for(let e of Vw){let r=document.createElementNS(Yw,`path`);r.setAttribute(`class`,`chc-cd__arc`),r.setAttribute(`data-bucket`,e),t.appendChild(r);let i=document.createElementNS(Yw,`title`);r.appendChild(i),n[e]=r}let r=document.createElement(`div`);return r.className=`chc-cd__total`,e.appendChild(t),e.appendChild(r),{element:e,update:i=>{let a=Gw(i);if(e.style.display=a>0?`inline-flex`:`none`,!a)return;let o=Vw.filter(e=>i[e]>0),s=-Math.PI/2;for(let e of Vw){let t=i[e],r=n[e],c=r.querySelector(`title`);if(t===0){r.removeAttribute(`d`),c&&(c.textContent=``);continue}if(o.length===1)r.setAttribute(`d`,nT());else{let e=t/a,n=s+e*Math.PI*2;r.setAttribute(`d`,tT(s,n)),s=n}c&&(c.textContent=`${Jw[e]}: ${t}`)}r.textContent=String(a),t.setAttribute(`aria-label`,`Competitiveness across ${a} matches`)}}}function iT(e){let{segments:t,onSegmentClick:n}=e,r=document.createElement(`div`);r.className=`chc-sb`;let i={},a={};for(let{key:e,label:o,color:s}of t){i[e]=o;let t=document.createElement(`div`);t.className=`chc-sb__seg`,t.dataset.key=e,t.style.setProperty(`--seg-bg`,s),n&&(t.classList.add(`is-clickable`),t.setAttribute(`role`,`button`),t.addEventListener(`click`,()=>n(e))),a[e]=t,r.appendChild(t)}return{element:r,update:e=>{let n=t.reduce((t,n)=>t+(e[n.key]||0),0);if(r.style.display=n>0?`flex`:`none`,n)for(let{key:n}of t){let t=a[n],r=e[n]||0;r===0?(t.style.flex=`0 0 0`,t.style.padding=`0`,t.textContent=``,t.removeAttribute(`title`)):(t.style.flex=`${r} 1 0`,t.style.padding=`0 4px`,t.textContent=String(r),t.title=`${i[n]}: ${r}`)}},setActive:e=>{r.classList.toggle(`has-active`,!!e);for(let{key:n}of t)a[n].classList.toggle(`is-active`,n===e)}}}var aT={cornerBadges:[`status`,`publishedBadge`,`embargoBadge`],body:[`title`,`drawTypeLabel`,`matchUpProgress`],footer:[`drawSize`,`entries`,`matchUpFormat`,`flightNumber`,`ratings`],showVisualization:!1};function oT(e){return e?{cornerBadges:e.cornerBadges??aT.cornerBadges,body:e.body??aT.body,footer:e.footer??aT.footer,showVisualization:e.showVisualization??aT.showVisualization}:aT}var sT=()=>`chc-dc-card`,cT=()=>`chc-dc-card--clickable`,lT=()=>`chc-dc-corner-badges`,uT=()=>`chc-dc-status-pill`,dT=()=>`chc-dc-secondary-badge`,fT=()=>`chc-dc-body`,pT=()=>`chc-dc-viz`,mT=()=>`chc-dc-title-row`,hT=()=>`chc-dc-title`,gT=()=>`chc-dc-draw-type`,_T=()=>`chc-dc-meta`,vT=()=>`chc-dc-footer`,yT=()=>`chc-dc-chip`,bT=()=>`chc-dc-progress`,xT=()=>`chc-dc-progress-bar`,ST=()=>`chc-dc-progress-fill`,CT=()=>`chc-dc-card chc-dc-skeleton`,wT=()=>`chc-dc-skeleton-line`;function TT(e,t,n){let r=oT(t),i=document.createElement(`div`);if(i.className=sT(),i.dataset.drawId=e.drawId,e.eventId&&(i.dataset.eventId=e.eventId),n?.onClick&&(i.classList.add(cT()),i.tabIndex=0,i.addEventListener(`click`,t=>{t.stopPropagation(),n.onClick(e)}),i.addEventListener(`keydown`,t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),t.stopPropagation(),n.onClick(e))})),r.showVisualization&&e.visualization){let t=document.createElement(`div`);t.className=pT(),t.appendChild(e.visualization),i.appendChild(t)}return(r.body.length||r.cornerBadges.length)&&i.appendChild(HT(e,r)),r.footer.length&&i.appendChild(UT(e,r)),i}function ET(e){if(!e.status)return null;let t=document.createElement(`div`);return t.className=uT(),t.dataset.kind=e.status.kind,t.textContent=e.status.label,t}function DT(e){if(!e.published)return null;let t=document.createElement(`div`);return t.className=dT(),t.dataset.kind=`published`,t.textContent=`Published`,t}function OT(e){if(!e.embargoActive)return null;let t=document.createElement(`div`);return t.className=dT(),t.dataset.kind=`embargo`,t.textContent=`Embargo`,t}function kT(e,t){return e===`status`?ET(t):e===`publishedBadge`?DT(t):e===`embargoBadge`?OT(t):null}function AT(e,t){let n=[];for(let r of t){let t=kT(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=lT();for(let e of n)r.appendChild(e);return r}function jT(e){if(!e.drawName)return null;let t=document.createElement(`div`);return t.className=hT(),t.textContent=e.drawName,t.title=e.drawName,t}function MT(e){if(!e.drawTypeLabel)return null;let t=document.createElement(`div`);return t.className=gT(),t.textContent=e.drawTypeLabel,t}function NT(e){let t=document.createElement(`span`);return t.className=yT(),t.textContent=e,t}function PT(e){return typeof e.drawSize==`number`?NT(`Size ${e.drawSize}`):null}function FT(e){return typeof e.entryCount==`number`?NT(`${e.entryCount} ${e.entryCount===1?`entry`:`entries`}`):null}function IT(e){return e.matchUpFormat?NT(e.matchUpFormat):null}function LT(e){return typeof e.flightNumber==`number`?NT(`Flight ${e.flightNumber}`):null}function RT(e){let t=[];if(typeof e.utrAvg==`number`&&t.push(`UTR ${e.utrAvg.toFixed(2)}`),typeof e.wtnAvg==`number`&&t.push(`WTN ${e.wtnAvg.toFixed(2)}`),!t.length)return null;let n=document.createElement(`div`);return n.className=_T(),n.textContent=t.join(` · `),n}function zT(e){if(!e.matchUpCounts||e.matchUpCounts.total===0)return null;let{total:t,completed:n}=e.matchUpCounts,r=Math.round(n/t*100),i=document.createElement(`div`);i.className=bT();let a=document.createElement(`div`);a.className=_T(),a.textContent=`${n}/${t} matches · ${r}%`,i.appendChild(a);let o=document.createElement(`div`);o.className=xT();let s=document.createElement(`div`);return s.className=ST(),s.style.right=`${100-r}%`,o.appendChild(s),i.appendChild(o),i}function BT(e,t){return e===`title`?jT(t):e===`drawTypeLabel`?MT(t):e===`drawSize`?PT(t):e===`entries`?FT(t):e===`matchUpFormat`?IT(t):e===`flightNumber`?LT(t):e===`ratings`?RT(t):e===`matchUpProgress`?zT(t):null}function VT(e,t){let n=document.createElement(`div`);n.className=mT();let r=jT(e);r&&n.appendChild(r);let i=AT(e,t);return i&&n.appendChild(i),n}function HT(e,t){let n=document.createElement(`div`);n.className=fT();let r=t.body.includes(`title`),i=t.cornerBadges.length>0;if(i&&!r){let r=AT(e,t.cornerBadges);r&&n.appendChild(r)}for(let r of t.body){if(r===`title`&&i){n.appendChild(VT(e,t.cornerBadges));continue}let a=BT(r,e);a&&n.appendChild(a)}return n}function UT(e,t){let n=document.createElement(`div`);n.className=vT();for(let r of t.footer){let t=BT(r,e);t&&n.appendChild(t)}return n}function WT(){let e=document.createElement(`div`);e.className=CT();let t=document.createElement(`div`);t.className=fT();for(let e of[`70%`,`40%`,`85%`]){let n=document.createElement(`div`);n.className=wT(),n.style.width=e,t.appendChild(n)}return e.appendChild(t),e}var GT={SINGLE_ELIMINATION:`Single Elimination`,DOUBLE_ELIMINATION:`Double Elimination`,ELIMINATION:`Elimination`,ROUND_ROBIN:`Round Robin`,ROUND_ROBIN_WITH_PLAYOFF:`Round Robin + Playoff`,COMPASS:`Compass`,FEED_IN_CHAMPIONSHIP:`Feed-In Championship`,FIRST_MATCH_LOSER_CONSOLATION:`First Match Loser Consolation`,FIRST_ROUND_LOSER_CONSOLATION:`First Round Loser Consolation`,PLAY_OFF:`Play-Off`,CURTIS_CONSOLATION:`Curtis Consolation`,AD_HOC:`Ad-Hoc`,OLYMPIC:`Olympic`,LUCKY_DRAW:`Lucky Draw`,STAGGERED_ENTRY:`Staggered Entry`};function KT(e){if(e)return GT[e]?GT[e]:e.toLowerCase().split(`_`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function qT(e){let{matchUps:n=[]}=t.tournamentEngine.getAllDrawMatchUps({drawDefinition:e}),r=0,i=0,a=0,o=0;for(let e of n)e?.matchUpStatus!==`BYE`&&e?.matchUpStatus!==`DOUBLE_BYE`&&(r+=1,e?.winningSide?i+=1:e?.schedule?.scheduledTime&&(a+=1),e?.matchUpStatus===`IN_PROGRESS`&&(o+=1));return{total:r,completed:i,scheduled:a,inProgress:o}}function JT(e){let t=e?.drawSize;if(typeof t==`number`)return t;let n=(e?.structures?.find(e=>e?.stage===`MAIN`))?.positionAssignments?.length;return typeof n==`number`?n:void 0}function YT(e){if(e.cancelled)return{kind:`cancelled`,label:`Cancelled`};if(!e.generated)return{kind:`ungenerated`,label:`Not generated`};let t=e.matchUpCounts;return!t||t.total===0?{kind:`ready`,label:`Ready`}:t.completed===t.total?{kind:`completed`,label:`Completed`}:t.inProgress>0||t.completed>0?{kind:`in-progress`,label:`In progress`}:{kind:`ready`,label:`Ready`}}function XT(e,t){let n=Array.isArray(e?.structures)&&e.structures.length>0,r=t?.matchUpStats??(t?.lightMode||!n?void 0:qT(e)),i=e?.drawStatus===`CANCELLED`,a=t?.statusOverride===void 0?YT({generated:n,cancelled:i,matchUpCounts:r}):t.statusOverride;return{drawId:e?.drawId??``,drawName:e?.drawName??``,drawType:e?.drawType,drawTypeLabel:KT(e?.drawType),drawSize:JT(e),entryCount:t?.entryCount,matchUpFormat:e?.matchUpFormat,flightNumber:e?.flightNumber,matchUpCounts:r,generated:n,published:t?.published,embargoActive:t?.embargoActive,utrAvg:t?.utrAvg,wtnAvg:t?.wtnAvg,status:a,eventId:t?.eventId}}var ZT={showImage:!0,cornerBadges:[`status`,`eventTypeBadge`,`genderBadge`],body:[`title`,`categoryLabel`,`drawSummary`],footer:[`playerCount`,`matchUpProgress`]},QT=15;function $T(e){return e?{showImage:e.showImage??ZT.showImage,cornerBadges:e.cornerBadges??ZT.cornerBadges,body:e.body??ZT.body,footer:e.footer??ZT.footer}:ZT}var eE=()=>`chc-ec-card`,tE=()=>`chc-ec-card--clickable`,nE=()=>`chc-ec-image`,rE=()=>`chc-ec-image-img`,iE=()=>`chc-ec-image-svg`,aE=()=>`chc-ec-image-placeholder`,oE=()=>`chc-ec-corner-badges`,sE=()=>`chc-ec-status-pill`,cE=()=>`chc-ec-eventtype-badge`,lE=()=>`chc-ec-gender-badge`,uE=()=>`chc-ec-body`,dE=()=>`chc-ec-title`,fE=()=>`chc-ec-category`,pE=()=>`chc-ec-draw-summary`,mE=()=>`chc-ec-date-range`,hE=()=>`chc-ec-footer`,gE=()=>`chc-ec-player-count`,_E=()=>`chc-ec-progress`,vE=()=>`chc-ec-progress-meta`,yE=()=>`chc-ec-progress-bar`,bE=()=>`chc-ec-progress-fill`,xE=()=>`chc-ec-updated-at`,SE=()=>`chc-ec-card chc-ec-skeleton`,CE=()=>`chc-ec-skeleton-line`,wE=()=>`chc-ec-skeleton-block`;function TE(e,t,n){let r=$T(t),i=document.createElement(`div`);return i.className=eE(),i.dataset.eventId=e.eventId,n?.onClick&&(i.classList.add(tE()),i.tabIndex=0,i.addEventListener(`click`,t=>{t.stopPropagation(),n.onClick(e)}),i.addEventListener(`keydown`,t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),t.stopPropagation(),n.onClick(e))})),r.showImage!==!1&&i.appendChild(DE(e,r)),r.body.length&&i.appendChild(VE(e,r)),r.footer.length&&i.appendChild(HE(e,r)),i}function EE(e,t){let n=tb(t.courtSvgSport,iE());if(n){e.appendChild(n);return}let r=document.createElement(`div`);r.className=aE(),e.appendChild(r)}function DE(e,t){let n=document.createElement(`div`);if(n.className=nE(),e.eventImageURL){let t=document.createElement(`img`);t.className=rE(),t.src=e.eventImageURL,t.alt=e.eventName||``,t.loading=`lazy`,t.addEventListener(`error`,()=>{t.remove(),EE(n,e)}),n.appendChild(t)}else EE(n,e);if(t.cornerBadges.length){let r=ME(e,t.cornerBadges);r&&n.appendChild(r)}return n}function OE(e){if(!e.status)return null;let t=document.createElement(`div`);return t.className=sE(),t.dataset.kind=e.status.kind,t.textContent=e.status.label,t}function kE(e){if(!e.eventType)return null;let t=document.createElement(`div`);return t.className=cE(),t.dataset.kind=e.eventType,t.textContent=e.eventType,t}function AE(e){if(!e.gender)return null;let t=document.createElement(`div`);return t.className=lE(),t.dataset.kind=e.gender,t.textContent=e.gender===`MALE`?`M`:e.gender===`FEMALE`?`W`:`X`,t}function jE(e,t){return e===`status`?OE(t):e===`eventTypeBadge`?kE(t):e===`genderBadge`?AE(t):null}function ME(e,t){let n=[];for(let r of t){let t=jE(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=oE();for(let e of n)r.appendChild(e);return r}function NE(e){if(!e.eventName)return null;let t=document.createElement(`div`);return t.className=dE(),t.textContent=e.eventName,t.title=e.eventName,t}function PE(e){if(!e.categoryLabel)return null;let t=document.createElement(`div`);return t.className=fE(),t.textContent=e.categoryLabel,t}function FE(e){if(!e.drawSummary)return null;let t=document.createElement(`div`);return t.className=pE(),t.textContent=e.drawSummary,t}function IE(e){if(!e.dateRangeFormatted)return null;let t=document.createElement(`div`);return t.className=mE(),t.textContent=e.dateRangeFormatted,t}function LE(e){if(!e.updatedAt)return null;let t=document.createElement(`div`);t.className=xE();let n=new Date(e.updatedAt);return t.textContent=Number.isNaN(n.getTime())?e.updatedAt:n.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`,year:`numeric`}),t}function RE(e){if(typeof e.entryCount!=`number`)return null;let t=document.createElement(`div`);return t.className=gE(),t.textContent=`${e.entryCount} ${e.entryCount===1?`player`:`players`}`,t}function zE(e){if(!e.matchUpCounts||e.matchUpCounts.total===0)return null;let{total:t,completed:n}=e.matchUpCounts,r=Math.round(n/t*100),i=document.createElement(`div`);i.className=_E();let a=document.createElement(`div`);a.className=vE(),a.textContent=`${n}/${t} matches · ${r}%`,i.appendChild(a);let o=document.createElement(`div`);o.className=yE();let s=document.createElement(`div`);return s.className=bE(),s.style.right=`${100-r}%`,o.appendChild(s),i.appendChild(o),i}function BE(e,t){return e===`title`?NE(t):e===`categoryLabel`?PE(t):e===`drawSummary`?FE(t):e===`dateRange`?IE(t):e===`updatedAt`?LE(t):e===`playerCount`?RE(t):e===`matchUpProgress`?zE(t):null}function VE(e,t){let n=document.createElement(`div`);n.className=uE();for(let r of t.body){let t=BE(r,e);t&&n.appendChild(t)}return n}function HE(e,t){let n=document.createElement(`div`);n.className=hE();for(let r of t.footer){let t=BE(r,e);t&&n.appendChild(t)}return n}function UE(e){let t=$T(e);return yb({showImage:t.showImage!==!1,bodyLines:t.body.length,showFooter:t.footer.length>0,cardClass:SE(),imageClass:nE(),bodyClass:uE(),footerClass:hE(),blockClass:wE(),lineClass:CE()})}function WE(e){if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t}function GE(e,t,n){return!t||!n?!1:t.getTime()<=e.getTime()&&e.getTime()<=n.getTime()}function KE(e,t=new Date){if(e.allDrawsCancelled)return{kind:`cancelled`,label:`Cancelled`};let n=e.matchUpCounts;if(n&&n.total>0&&n.completed===n.total)return{kind:`completed`,label:`Completed`};let r=WE(e.startDate),i=WE(e.endDate);if(n&&(n.inProgress>0||GE(t,r,i)&&n.total>0))return{kind:`live`,label:`Live`};let a=e.drawCount??0;return a>0&&(e.hasDraftState||e.hasSeedsOnlyDraw)?{kind:`drawing`,label:`Drawing`}:a===0&&(e.entryCount??0)>0?{kind:`entries-open`,label:`Entries Open`}:r&&t.getTime()<r.getTime()?{kind:`upcoming`,label:`Upcoming`}:null}var qE=`eventImage`,JE=`DRAFT_STATE`;function YE(e){if(!e)return;let t=String(e).toUpperCase();if(t===`SINGLES`||t===`DOUBLES`||t===`TEAM`||t===`HYBRID`)return t}function XE(e){if(!e)return;let t=String(e).toUpperCase();if(t===`M`||t===`MALE`)return`MALE`;if(t===`F`||t===`FEMALE`)return`FEMALE`;if(t===`MIXED`||t===`X`)return`MIXED`}function ZE(e){if(!e)return;let t=QE(e.categoryName);if(t)return t;if(typeof e.ageMin==`number`&&typeof e.ageMax==`number`)return e.ageMin===e.ageMax?`Age ${e.ageMin}`:`Age ${e.ageMin}–${e.ageMax}`;let n=QE(e.ageCategoryCode);if(n)return n;if(e.ratingMin&&e.ratingMax)return`Rating ${e.ratingMin}–${e.ratingMax}`}function QE(e){if(typeof e!=`string`)return;let t=e.trim();if(t&&!/^[-—–_]+$/.test(t))return t}function $E(e){if(!e.length)return;let t=e.find(Boolean);if(!t)return;let n=[];return typeof t.drawSize==`number`&&n.push(String(t.drawSize)),t.drawType&&n.push(String(t.drawType)),e.length>1&&n.push(`+${e.length-1}`),n.length?n.join(` `):void 0}function eD(e){let{matchUps:n=[]}=t.tournamentEngine.allEventMatchUps({event:e,inContext:!1})??{},r=0,i=0,a=0,o=0;for(let e of n)e?.matchUpStatus!==`BYE`&&e?.matchUpStatus!==`DOUBLE_BYE`&&(r+=1,e?.winningSide?i+=1:e?.schedule?.scheduledTime&&(a+=1),e?.matchUpStatus===`IN_PROGRESS`&&(o+=1));return{total:r,completed:i,scheduled:a,inProgress:o}}function tD(e){if(e?.draftState!=null)return!0;let t=e?.extensions;return Array.isArray(t)?t.some(e=>e?.name===JE):!1}function nD(e){return e.some(e=>e?.automated?.seedsOnly===!0||tD(e))}function rD(e){return e.length!==0&&e.every(e=>e?.drawStatus===`CANCELLED`)}var iD=new Set([`DIRECT_ACCEPTANCE`,`DA`,`DIRECT_CONFIRMED`,`DC`,`ACCEPTED`,`A`,`ENTERED`,`PE`,`QUALIFIER`,`Q`,`WILDCARD`,`WC`]);function aD(e){if(!e.length)return 0;let t=0;for(let n of e)iD.has(String(n?.entryStatus))&&(t+=1);return t}function oD(e,t){let n=Array.isArray(e?.drawDefinitions)?e.drawDefinitions:[],r=Array.isArray(e?.entries)?e.entries:[],i=Array.isArray(e?.onlineResources)?e.onlineResources:void 0,a=t?.matchUpStats??(t?.lightMode?void 0:eD(e)),o=t?.statusOverride===void 0?KE({allDrawsCancelled:rD(n),drawCount:n.length,entryCount:aD(r),startDate:e?.startDate,endDate:e?.endDate,matchUpCounts:a,hasDraftState:n.some(tD),hasSeedsOnlyDraw:nD(n)},t?.now):t.statusOverride;return{eventId:e?.eventId??``,eventName:e?.eventName??``,eventAbbreviation:e?.eventAbbreviation,categoryLabel:ZE(e?.category),eventType:YE(e?.eventType),gender:XE(e?.gender),drawCount:n.length||void 0,drawSummary:$E(n),entryCount:aD(r)||void 0,matchUpCounts:a,startDate:e?.startDate,endDate:e?.endDate,dateRangeFormatted:pb(e?.startDate,e?.endDate),status:o,eventImageURL:e?.eventImageURL??hb(i,qE),courtSvgSport:e?.courtSvgSport??gb(i)??t?.sport,updatedAt:e?.updatedAt}}var sD=()=>`chc-hil-container`,cD=()=>`chc-hil-form`,lD=()=>`chc-hil-header`,uD=()=>`chc-hil-title`,dD=()=>`chc-hil-tabs`,fD=()=>`chc-hil-tab`,pD=()=>`chc-hil-tab--active`,mD=()=>`chc-hil-field`,hD=()=>`chc-hil-label`,gD=()=>`chc-hil-input`,_D=()=>`chc-hil-row`,vD=()=>`chc-hil-submit`,yD=()=>`chc-hil-message`,bD=()=>`chc-hil-message--error`,xD=()=>`chc-hil-message--success`,SD=()=>`chc-hil-switch-mode`;function CD(e){return e.replace(/\/+$/,``)}async function wD(e,t,n,r=fetch){let i=CD(e)+t,a;try{a=await r(i,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(n)})}catch(e){throw{kind:`network`,cause:e}}let o=null;try{o=await a.json()}catch(e){if(a.ok)throw{kind:`parse`,cause:e}}if(!a.ok)throw{kind:`http`,status:a.status,body:o};return o}function TD(e,t,n){return wD(e,`/auth/hiveid/signup`,t,n)}function ED(e,t,n){return wD(e,`/auth/hiveid/verify-existing`,t,n)}function DD(e,t,n){return wD(e,`/auth/hiveid/magic-link`,t,n)}function OD(e,t,n){return wD(e,`/auth/hiveid/magic-link/consume`,t,n)}function kD(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.kind!==`http`||t.status!==409?!1:t.body?.code===`EXISTING_USER`}var AD=[{value:`M`,label:`Male`},{value:`F`,label:`Female`}],jD=`signup`,MD=`login`,ND=`magic-link`,PD=[jD,MD,ND],FD=`hiveid:authenticated`,ID={[jD]:`Sign up`,[MD]:`Log in`,[ND]:`Email link`},LD={[jD]:`Create your CourtHive identity`,[MD]:`Log in to CourtHive`,[ND]:`Email me a sign-in link`};function RD(e){if(!e?.cfsBaseUrl)throw Error(`buildHiveIDLogin: cfsBaseUrl is required`);let t=e.mode??`signup`,n=!1,r=document.createElement(`div`);r.className=sD(),r.dataset.hiveidLogin=`true`;let i=document.createElement(`div`);i.className=lD();let a=document.createElement(`h2`);a.className=uD(),i.appendChild(a);let o=document.createElement(`div`);o.className=dD(),i.appendChild(o);let s={};PD.forEach(e=>{let t=document.createElement(`button`);t.type=`button`,t.className=fD(),t.textContent=ID[e],t.dataset.mode=e,t.onclick=()=>w(e),o.appendChild(t),s[e]=t}),r.appendChild(i);let c=document.createElement(`form`);c.className=cD(),c.noValidate=!0,r.appendChild(c);let l=document.createElement(`div`);l.className=yD(),l.hidden=!0,r.appendChild(l);function u(e,t=`info`){l.textContent=e,l.className=yD(),t===`error`&&l.classList.add(bD()),t===`success`&&l.classList.add(xD()),l.hidden=!e}function d(){u(``)}function f(e,t,n=`text`,r=``){let i=document.createElement(`div`);i.className=mD();let a=document.createElement(`label`);a.className=hD(),a.textContent=t,a.htmlFor=`chc-hil-${e}`;let o=document.createElement(`input`);return o.id=`chc-hil-${e}`,o.name=e,o.type=n,o.value=r,o.className=gD(),o.required=!0,i.appendChild(a),i.appendChild(o),c.appendChild(i),o}function p(){let e=document.createElement(`div`);return e.className=_D(),c.appendChild(e),e}function m(e){let t=document.createElement(`button`);return t.type=`submit`,t.className=vD(),t.textContent=e,c.appendChild(t),t}function h(e,t,n){let r=document.createElement(`div`);r.className=SD();let i=document.createElement(`button`);i.type=`button`,i.textContent=n,i.onclick=()=>w(t),r.append(e+` `,i),c.appendChild(r)}function g(e){if(e.note){let t=document.createElement(`p`);t.className=hD(),t.textContent=e.note,c.appendChild(t)}let t=null;if(e.providers.length>1){let n=document.createElement(`div`);n.className=mD();let r=document.createElement(`label`);r.className=hD(),r.textContent=`Provider`,r.htmlFor=`chc-hil-fedProvider`;let i=document.createElement(`select`);i.id=`chc-hil-fedProvider`,i.className=gD(),e.providers.forEach(e=>{let t=document.createElement(`option`);t.value=e.value,t.textContent=e.label,i.appendChild(t)}),n.append(r,i),c.appendChild(n),t=i}let n=document.createElement(`div`);n.className=mD();let r=document.createElement(`label`);r.className=hD(),r.textContent=e.idLabel??`Player ID`,r.htmlFor=`chc-hil-federationId`;let i=document.createElement(`input`);i.id=`chc-hil-federationId`,i.type=`text`,i.className=gD(),n.append(r,i),c.appendChild(n);let a=e.providers[0]?.value??``;return()=>{let e=i.value.trim();if(!e)return null;let n=t?t.value:a;return n?{provider:n,externalId:e}:null}}function _(e){if(e.note){let t=document.createElement(`p`);t.className=hD(),t.textContent=e.note,c.appendChild(t)}let t=e.required!==!1,n=document.createElement(`div`);n.className=mD();let r=document.createElement(`label`);r.className=hD(),r.textContent=e.dobLabel??`Date of birth`,r.htmlFor=`chc-hil-birthDate`;let i=document.createElement(`input`);i.id=`chc-hil-birthDate`,i.type=`date`,i.required=t,i.className=gD(),n.append(r,i),c.appendChild(n);let a=document.createElement(`div`);a.className=mD();let o=document.createElement(`label`);o.className=hD(),o.textContent=e.sexLabel??`Sex`,o.htmlFor=`chc-hil-sex`;let s=document.createElement(`select`);s.id=`chc-hil-sex`,s.required=t,s.className=gD();let l=document.createElement(`option`);return l.value=``,l.textContent=`Select…`,s.appendChild(l),(e.sexOptions??AD).forEach(e=>{let t=document.createElement(`option`);t.value=e.value,t.textContent=e.label,s.appendChild(t)}),a.append(o,s),c.appendChild(a),()=>VD({birthDate:i.value,sex:s.value})}function v(e){r.dispatchEvent(new CustomEvent(FD,{detail:e,bubbles:!0}))}function y(e,t){return async r=>{if(r.preventDefault(),!n){n=!0,e.disabled=!0,d();try{await t()}finally{n=!1,e.disabled=!1}}}}async function b(t,n,r,i={}){let a=t.value.trim(),o=n.value.trim(),s=r.value.trim();if(!a||!o||!s){u(`Email, first name, and last name are required.`,`error`);return}let{federationIds:c,birthDate:l,sex:d,provider:f,requirePii:p}=i;if(p&&(!l||!d)){u(`Date of birth and sex are required.`,`error`);return}try{let t=await TD(e.cfsBaseUrl,{email:a,firstName:o,lastName:s,federationIds:c,birthDate:l,sex:d,provider:f},e.fetchImpl);if(t.status===`candidate`){u(`We found possible matches — please log in with your existing account.`,`info`),w(`login`);return}v({token:t.token,refreshToken:t.refreshToken,personId:t.personId,cached:t.cached}),u(`Welcome to CourtHive.`,`success`)}catch(e){if(kD(e)){u(`That email already has a CourtHive account — please verify your password.`,`info`),w(`login`);return}u(UD(e)??`Sign-up failed. Please try again.`,`error`)}}async function x(t,n){let r=t.value.trim(),i=n.value;if(!r||!i){u(`Email and password are required.`,`error`);return}try{let t=await ED(e.cfsBaseUrl,{email:r,password:i},e.fetchImpl);v({token:t.token,refreshToken:t.refreshToken,personId:t.personId,cached:t.cached??HD()}),u(`Signed in.`,`success`)}catch(e){u(UD(e)??`Sign-in failed. Please check your password.`,`error`)}}async function S(t){let n=t.value.trim();if(!n){u(`Email is required.`,`error`);return}try{await DD(e.cfsBaseUrl,{email:n},e.fetchImpl),u(`If ${n} is registered, a sign-in link is on its way.`,`success`)}catch(e){u(UD(e)??`Could not send link. Please try again.`,`error`)}}function C(){if(c.replaceChildren(),a.textContent=LD[t],PD.forEach(e=>{s[e].classList.toggle(pD(),e===t)}),t===`signup`){let t=p(),n=document.createElement(`input`);n.id=`chc-hil-firstName`,n.type=`text`,n.placeholder=`First name`,n.required=!0,n.className=gD();let r=document.createElement(`input`);r.id=`chc-hil-lastName`,r.type=`text`,r.placeholder=`Last name`,r.required=!0,r.className=gD();let i=document.createElement(`div`);i.className=mD();let a=document.createElement(`label`);a.textContent=`First name`,a.className=hD(),a.htmlFor=n.id,i.append(a,n);let o=document.createElement(`div`);o.className=mD();let s=document.createElement(`label`);s.textContent=`Last name`,s.className=hD(),s.htmlFor=r.id,o.append(s,r),t.append(i,o);let l=f(`email`,`Email`,`email`,e.defaultEmail??``),u=e.federationIdCapture?g(e.federationIdCapture):()=>null,d=e.dobSexCapture?_(e.dobSexCapture):()=>({}),v=!!e.dobSexCapture&&e.dobSexCapture.required!==!1,x=m(`Create account`);c.onsubmit=y(x,()=>b(l,n,r,{federationIds:BD(u(),e.federationIds),...d(),provider:e.provider,requirePii:v})),h(`Already have an account?`,`login`,`Log in`)}else if(t===`login`){let t=f(`email`,`Email`,`email`,e.defaultEmail??``),n=f(`password`,`Password`,`password`),r=m(`Log in`);c.onsubmit=y(r,()=>x(t,n)),h(`Forgot your password?`,`magic-link`,`Email me a link`)}else{let t=f(`email`,`Email`,`email`,e.defaultEmail??``),n=m(`Send link`);c.onsubmit=y(n,()=>S(t)),h(`Have a password?`,`login`,`Log in instead`)}}function w(e){e!==t&&(t=e,d(),C())}function T(){return t}function E(e){let t=t=>e(t.detail);return r.addEventListener(FD,t),()=>r.removeEventListener(FD,t)}return C(),{root:r,setMode:w,getMode:T,onAuthenticated:E}}async function zD(e,t,n){let r=await OD(e,{code:t},n);return{token:r.token,refreshToken:r.refreshToken,personId:r.personId,cached:r.cached??HD()}}function BD(e,t){let n=[],r=new Set,i=e=>{if(!e?.provider||!e?.externalId)return;let t=`${e.provider}::${e.externalId}`;r.has(t)||(r.add(t),n.push({provider:e.provider,externalId:e.externalId}))};return(t??[]).forEach(i),i(e),n.length?n:void 0}function VD(e){let t={},n=e.birthDate?.trim(),r=e.sex?.trim();return n&&(t.birthDate=n),r&&(t.sex=r),t}function HD(){return{standardFamilyName:null,standardGivenName:null,birthDate:null,sex:null,nationalityCode:null}}function UD(e){if(!e||typeof e!=`object`)return null;if(e.kind===`http`){let t=e.body;if(t?.message&&typeof t.message==`string`)return t.message;if(typeof t?.status==`string`&&t.status===`incomplete`)return`We need a bit more information to identify you.`}return e.kind===`network`?`Could not reach CourtHive. Check your connection.`:null}var WD={name:`courthive-components`,packageManager:`pnpm@12.14.0`,version:`6.13.0`,engines:{node:`>=24`},description:`Components for competitions projects`,files:[`dist`],main:`./dist/courthive-components.umd.js`,module:`./dist/courthive-components.es.js`,types:`./dist/index.d.ts`,exports:{".":{types:`./dist/index.d.ts`,import:`./dist/courthive-components.es.js`,require:`./dist/courthive-components.umd.js`},"./dist/*":`./dist/*`,"./courts":{types:`./dist/features-types/courts/index.d.ts`,import:`./dist/courts.mjs`},"./segmented-bar":{types:`./dist/features-types/segmentedBar/index.d.ts`,import:`./dist/segmented-bar.mjs`},"./features.css":`./dist/features.css`},repository:{type:`git`,url:`git+https://github.com/CourtHive/courthive-components.git`},keywords:[`tournament`,`match`,`score`,`vanillajs`,`bracket`],author:`Charles Allen`,license:`MIT`,bugs:{url:`https://github.com/CourtHive/courthive-components/issues`},homepage:`https://courthive.github.io/courthive-component`,scripts:{commits:`git log $(git describe --tags --abbrev=0)..HEAD --oneline --no-merges --pretty=format:'%s: %h' | sed '/courthive-components/d'`,release:`npm run release:patch`,test:`vitest run --project unit`,"test:stories":`vitest run --project storybook`,"test:watch":`vitest --project unit`,"test:ui":`vitest --ui --project unit`,dev:`vite`,build:`tsc && vite build && vite build --config vite.features.config.mts && node scripts/buildFeatureTypes.mjs`,"check-types":`tsc --noEmit`,prepublishOnly:`pnpm build`,preview:`vite preview`,storybook:`storybook dev -p 6006`,"build-storybook":`storybook build`,"deploy-storybook":`gh-pages -d storybook-static`,"pre-commit":`lint-staged`,predeploy:`pnpm build-storybook`,lint:`eslint src scripts/buildFeatureTypes.mjs scripts/verify/consumerBundle.mjs --cache --max-warnings 0`,"lint:fix":`eslint src --fix --cache`,"lint:report":`eslint src & eslint --cache src -f json > eslint-report.json`,format:`prettier --write src`,"format:check":`prettier --check src`,"release:major":`npm run commits && npm version $(semver $npm_package_version -i major) && git push && git push --tags`,"release:minor":`npm run commits && npm version $(semver $npm_package_version -i minor) && git push && git push --tags`,"release:patch":`npm run commits && npm version $(semver $npm_package_version -i patch) && git push && git push --tags`,"release:beta":`npm run commits && npm version $(semver $npm_package_version -i prerelease --preid beta) && git push && git push --tags`,"patch:beta":`npm run commits && npm version $(semver $npm_package_version -i prerelease --preid beta) && npm publish --tag beta`,"verify:consumer-bundle":`node scripts/verify/consumerBundle.mjs --self-test && node scripts/verify/consumerBundle.mjs`},"lint-staged":{"*.{js,ts}":`eslint --cache --fix`,"*":`prettier --ignore-unknown --write`},devDependencies:{"@chromatic-com/storybook":`^5.0.0`,"@commitlint/cli":`21.2.3`,"@commitlint/config-conventional":`21.2.3`,"@eslint/js":`^10.0.1`,"@fortawesome/fontawesome-free":`^7.2.0`,"@storybook/addon-docs":`^10.2.17`,"@storybook/addon-vitest":`^10.6.1`,"@storybook/html-vite":`^10.2.17`,"@types/d3":`^7.4.3`,"@types/leaflet":`^1.9.12`,"@types/vanillajs-datepicker":`^1.3.5`,"@typescript-eslint/eslint-plugin":`8.71.2`,"@typescript-eslint/parser":`8.71.2`,"@vitest/browser":`^5.0.3`,"@vitest/browser-playwright":`^5.0.3`,"@vitest/coverage-v8":`^5.0.0`,"@vitest/ui":`^5.0.0`,eslint:`10.13.0`,"eslint-plugin-sonarjs":`4.2.2`,"eslint-plugin-storybook":`^10.2.17`,"gh-pages":`6.3.0`,globals:`^17.3.0`,"happy-dom":`^21.0.0`,husky:`9.1.7`,leaflet:`1.9.4`,"lint-staged":`17.6.0`,playwright:`^1.57.0`,prettier:`^3.8.1`,semver:`7.8.5`,storybook:`^10.2.17`,"tabulator-tables":`6.6.1`,"tods-competition-factory":`7.21.0`,typescript:`^6.0.2`,vite:`8.3.4`,"vite-plugin-dts":`^5.0.0`,vitest:`^5.0.0`},dependencies:{"@tiptap/core":`^3.22.2`,"@tiptap/extension-color":`^3.22.2`,"@tiptap/extension-highlight":`^3.22.2`,"@tiptap/extension-text-align":`^3.22.2`,"@tiptap/extension-text-style":`^3.22.2`,"@tiptap/extension-youtube":`^3.22.2`,"@tiptap/starter-kit":`^3.22.2`,awesomplete:`1.1.7`,"class-variance-authority":`0.7.1`,classnames:`2.5.1`,d3:`^7.9.0`,dayjs:`1.11.23`,"focus-trap":`^8.0.0`,"timepicker-ui":`^4.1.2`,"tippy.js":`6.3.7`,"vanillajs-datepicker":`1.3.4`},peerDependencies:{"tods-competition-factory":`^7.6.0`,leaflet:`^1.9.4`},peerDependenciesMeta:{leaflet:{optional:!0}}};function GD(){return WD.version}var KD={SET3_S6_TB7:`SET3-S:6/TB7`,SET3_S6_TB7_F_TB10:`SET3-S:6/TB7-F:TB10`,SET3_S6_TB10:`SET3-S:6/TB10`,SET3_S6_F_TB10:`SET3-S:6-F:TB10`,SET3_S6_TB7_NOAD:`SET3-S:6/TB7NOAD`,SET3_S8_TB7:`SET3-S:8/TB7`,SET3_S8_TB7_AT7:`SET3-S:8/TB7@7`,SET3_S4_TB7:`SET3-S:4/TB7`,SET3_S4_TB7_F_TB10:`SET3-S:4/TB7-F:TB10`,SET3_S4_TB5_AT3_F_TB10:`SET3-S:4/TB5@3-F:TB10`,SET5_S6_TB7:`SET5-S:6/TB7`,SET5_S6_TB7_F_TB10:`SET5-S:6/TB7-F:TB10`,SET1_S6_TB7:`SET1-S:6/TB7`,SET1_S6_TB10:`SET1-S:6/TB10`,SET1_S6_TB7_AT5:`SET1-S:6/TB7@5`,SET1_S8_TB7:`SET1-S:8/TB7`,SET1_S4_TB7:`SET1-S:4/TB7`,SET1_S5_TB9_AT4:`SET1-S:5/TB9@4`,SET1_S_TB7:`SET1-S:T7`,SET1_S_TB10:`SET1-S:TB10`,SET1_S_TB21:`SET1-S:T21`,SET1_S8:`SET1-S:8`,SET1_S10:`SET1-S:10`,FAST4:`SET5-S:4/NOAD`,SET3X_T10A_TB1:`SET3XA-S:T10-F:TB1`,SET3X_T10A_TB1_NOAD:`SET3XA-S:T10-F:TB1NOAD`,SET4X_T10A_TB1:`SET4XA-S:T10-F:TB1`};function qD(e,t,n){if(!e)return{elements:{}};let r={};for(let i of t||[]){if(!i?.label||i.hide)continue;let t=document.createElement(`button`);i.id&&(r[i.id]=t,t.id=i.id),t.style.marginRight=`.5em`,t.className=`button font-medium`,i.intent&&t.classList.add(i.intent),t.innerHTML=i.label,i.disabled&&(t.disabled=!0),t.onclick=e=>{e.stopPropagation(),!e.target.disabled&&K(i.onClick)&&i.onClick(),n&&K(n)&&n()},e.appendChild(t)}return{elements:r}}var JD=(e,t)=>n=>n?.trim().length>=e&&(!t||n?.trim().length<=t);function YD(e){return t.tools.isConvertableInteger(e)&&parseInt(e.toString())>=0}var XD=(e,t)=>n=>YD(n)&&Number(n)>=e&&Number(n)<=t,ZD=e=>/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?\d)(?=.*?[#?!@$%^&*-]).{8,12}$/.test(e);function QD(e){return t.tools.dateTime.dateValidation.test(e)}var $D=(e,t)=>n=>{let r=(n||``).trim().split(` `).length;return r>=e&&(!t||r<=t)},eO=/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i,tO=e=>eO.exec(e),nO=_({dateValidator:()=>QD,emailValidator:()=>tO,nameValidator:()=>JD,numericRange:()=>XD,numericValidator:()=>YD,passwordValidator:()=>ZD,wordValidator:()=>$D});function rO(e){let n=t.tools.makeDeepCopy(e);return{getTournamentRecord:()=>n,mutate:(e,r,i)=>{let a=n.events?.find(e=>e.drawDefinitions?.some(e=>e.drawId===r.drawId)),o=a?.drawDefinitions?.find(e=>e.drawId===r.drawId),s={...r,tournamentRecord:n,drawDefinition:o,event:a},c=t.globalState.getProvider(),l=()=>{throw Error(`Standalone assignment cannot replace tournament state`)},u=()=>{},d={[n.tournamentId]:n};t.globalState.setStateProvider({...c,addNotice:u,callListener:u,deleteNotice:u,deleteNotices:u,disableNotifications:u,enableNotifications:u,setSubscriptions:l,cycleMutationStatus:()=>!1,getTopics:()=>({topics:[]}),getNotices:()=>[],getPayloads:()=>[],getNoticeBuffer:()=>[],setNoticeBuffer:u,getTournamentId:()=>n.tournamentId,getTournamentRecord:e=>d[e],getTournamentRecords:()=>d,setTournamentId:l,setTournamentRecord:l,setTournamentRecords:l,removeTournamentRecord:l});let f;try{f=e===`removeDrawPositionAssignment`?t.drawsGovernor.removeDrawPositionAssignment(s):t.drawsGovernor.assignDrawPosition({...s,bye:e===`assignDrawPositionBye`})}finally{t.globalState.setStateProvider(c)}i(f)}}}var iO=class{constructor({tournamentRecord:e,adapter:t,drawId:n,structureId:r,eventId:i}){if(!t&&!e)throw Error(`DrawStateManager requires a record or adapter`);this.adapter=t??rO(e),this.drawId=n,this.structureId=r,this.eventId=i}setRenderCallback(e){this.renderCallback=e}context(){let e=this.adapter.getTournamentRecord(),t=e?.events?.find(e=>this.eventId?e.eventId===this.eventId:e.drawDefinitions?.some(e=>e.drawId===this.drawId));return{tournamentRecord:e,drawDefinition:t?.drawDefinitions?.find(e=>e.drawId===this.drawId),event:t}}getAllParticipants(){let{tournamentRecord:e,drawDefinition:n,event:r}=this.context();if(!e||!r||!n)return[];let{flightProfile:i}=t.queryGovernor.getFlightProfile({event:r}),a=(i?.flights?.find(e=>e.drawId===this.drawId)?.drawEntries??n.entries??[]).map(e=>e.participantId).filter(e=>!!e);if(!a.length)return[];let{participants:o=[]}=t.queryGovernor.getParticipants({tournamentRecord:e,participantFilters:{participantIds:a}});return o}getAvailableParticipants(){let{drawDefinition:e}=this.context();if(!e)return[];let{assignedParticipantIds:n=[]}=t.queryGovernor.getAssignedParticipantIds({drawDefinition:e}),r=new Set(n);return this.getAllParticipants().filter(e=>!r.has(e.participantId))}request(e,t,n=!0){let r,i=!1;return this.adapter.mutate(e,{...t,drawId:this.drawId,structureId:this.structureId},a=>{i||(i=!0,r=a,a.success&&!a.error&&(e!==`removeDrawPositionAssignment`&&(this.focusDrawPosition=t.drawPosition+1),n&&this.renderCallback?.()))}),r??{pending:!0}}assignParticipant(e){return this.request(`assignDrawPosition`,e)}assignBye(e){return this.request(`assignDrawPositionBye`,e)}assignQualifier(e){return this.request(`assignDrawPosition`,{...e,qualifier:!0})}removeAssignment(e){let t=this.getMatchUps().some(t=>t.sides?.some(t=>t.drawPosition===e.drawPosition&&t.bye));return this.request(`removeDrawPositionAssignment`,e,t)}getAndClearFocusDrawPosition(){let e=this.focusDrawPosition;return this.focusDrawPosition=void 0,e}getMatchUps(){let{tournamentRecord:e,event:n}=this.context();if(!e||!n)return[];let{eventData:r}=t.queryGovernor.getEventData({tournamentRecord:e,event:n}),i=(r?.drawsData?.find(e=>e.drawId===this.drawId))?.structures?.find(e=>e.structureId===this.structureId);return i?.roundMatchUps?Object.values(i.roundMatchUps).flat():[]}getState(){let e=this.adapter.getTournamentRecord();return e&&t.tools.makeDeepCopy(e)}getContext(){return{drawId:this.drawId,structureId:this.structureId}}},aO=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="14" height="14" fill="currentColor"><path d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"/></svg>`,oO=new WeakMap;function sO(e,t){let n=document.createElement(`div`);n.style.cssText=`position: relative; flex: 1; display: flex; min-width: 0;`,e.style.paddingRight=`28px`,n.appendChild(e);let r=document.createElement(`button`);r.type=`button`,r.setAttribute(`aria-label`,`Clear search`),r.style.cssText=[`position: absolute`,`right: 8px`,`top: 50%`,`transform: translateY(-50%)`,`background: transparent`,`border: 0`,`padding: 2px`,`cursor: pointer`,`display: none`,`align-items: center`,`justify-content: center`,`line-height: 0`,`opacity: 0.55`,`color: currentColor`].join(`; `),r.innerHTML=aO,r.addEventListener(`mouseenter`,()=>r.style.opacity=`0.9`),r.addEventListener(`mouseleave`,()=>r.style.opacity=`0.55`),r.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),t(),i()});let i=()=>{r.style.display=e.value?`inline-flex`:`none`};return e.addEventListener(`keyup`,n=>{n.key===`Escape`&&e.value&&(t(),i())}),e.addEventListener(`input`,i),oO.set(n,i),n.appendChild(r),n}function cO(e){oO.get(e)?.()}function lO(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function uO(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function dO(e){let t,n,r;e.length===2?(t=e===lO||e===uO?e:fO,n=e,r=e):(t=lO,n=(t,n)=>lO(e(t),n),r=(t,n)=>e(t)-n);function i(e,r,i=0,a=e.length){if(i<a){if(t(r,r)!==0)return a;do{let t=i+a>>>1;n(e[t],r)<0?i=t+1:a=t}while(i<a)}return i}function a(e,r,i=0,a=e.length){if(i<a){if(t(r,r)!==0)return a;do{let t=i+a>>>1;n(e[t],r)<=0?i=t+1:a=t}while(i<a)}return i}function o(e,t,n=0,a=e.length){let o=i(e,t,n,a-1);return o>n&&r(e[o-1],t)>-r(e[o],t)?o-1:o}return{left:i,center:o,right:a}}function fO(){return 0}function pO(e){return e===null?NaN:+e}var mO=dO(lO),hO=mO.right;mO.left,dO(pO).center;function gO(e,t){let n,r;if(t===void 0)for(let t of e)t!=null&&(n===void 0?t>=t&&(n=r=t):(n>t&&(n=t),r<t&&(r=t)));else{let i=-1;for(let a of e)(a=t(a,++i,e))!=null&&(n===void 0?a>=a&&(n=r=a):(n>a&&(n=a),r<a&&(r=a)))}return[n,r]}var _O=class extends Map{constructor(e,t=xO){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),e!=null)for(let[t,n]of e)this.set(t,n)}get(e){return super.get(vO(this,e))}has(e){return super.has(vO(this,e))}set(e,t){return super.set(yO(this,e),t)}delete(e){return super.delete(bO(this,e))}};function vO({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):n}function yO({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function bO({_intern:e,_key:t},n){let r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function xO(e){return typeof e==`object`&&e?e.valueOf():e}var SO=Math.sqrt(50),CO=Math.sqrt(10),wO=Math.sqrt(2);function TO(e,t,n){let r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/10**i,o=a>=SO?10:a>=CO?5:a>=wO?2:1,s,c,l;return i<0?(l=10**-i/o,s=Math.round(e*l),c=Math.round(t*l),s/l<e&&++s,c/l>t&&--c,l=-l):(l=10**i*o,s=Math.round(e/l),c=Math.round(t/l),s*l<e&&++s,c*l>t&&--c),c<s&&.5<=n&&n<2?TO(e,t,n*2):[s,c,l]}function EO(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];let r=t<e,[i,a,o]=r?TO(t,e,n):TO(e,t,n);if(!(a>=i))return[];let s=a-i+1,c=Array(s);if(r){if(o<0)for(let e=0;e<s;++e)c[e]=(a-e)/-o;else for(let e=0;e<s;++e)c[e]=(a-e)*o}else if(o<0)for(let e=0;e<s;++e)c[e]=(i+e)/-o;else for(let e=0;e<s;++e)c[e]=(i+e)*o;return c}function DO(e,t,n){return t=+t,e=+e,n=+n,TO(e,t,n)[2]}function OO(e,t,n){t=+t,e=+e,n=+n;let r=t<e,i=r?DO(t,e,n):DO(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}function kO(e,t){let n;if(t===void 0)for(let t of e)t!=null&&(n<t||n===void 0&&t>=t)&&(n=t);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n<i||n===void 0&&i>=i)&&(n=i)}return n}function AO(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=Array(i);++r<i;)a[r]=e+r*n;return a}function jO(e){return e}var MO=1,NO=2,PO=3,FO=4,IO=1e-6;function LO(e){return`translate(`+e+`,0)`}function RO(e){return`translate(0,`+e+`)`}function zO(e){return t=>+e(t)}function BO(e,t){return t=Math.max(0,e.bandwidth()-t*2)/2,e.round()&&(t=Math.round(t)),n=>+e(n)+t}function VO(){return!this.__axis}function HO(e,t){var n=[],r=null,i=null,a=6,o=6,s=3,c=typeof window<`u`&&window.devicePixelRatio>1?0:.5,l=e===MO||e===FO?-1:1,u=e===FO||e===NO?`x`:`y`,d=e===MO||e===PO?LO:RO;function f(f){var p=r??(t.ticks?t.ticks.apply(t,n):t.domain()),m=i??(t.tickFormat?t.tickFormat.apply(t,n):jO),h=Math.max(a,0)+s,g=t.range(),_=+g[0]+c,v=+g[g.length-1]+c,y=(t.bandwidth?BO:zO)(t.copy(),c),b=f.selection?f.selection():f,x=b.selectAll(`.domain`).data([null]),S=b.selectAll(`.tick`).data(p,t).order(),C=S.exit(),w=S.enter().append(`g`).attr(`class`,`tick`),T=S.select(`line`),E=S.select(`text`);x=x.merge(x.enter().insert(`path`,`.tick`).attr(`class`,`domain`).attr(`stroke`,`currentColor`)),S=S.merge(w),T=T.merge(w.append(`line`).attr(`stroke`,`currentColor`).attr(u+`2`,l*a)),E=E.merge(w.append(`text`).attr(`fill`,`currentColor`).attr(u,l*h).attr(`dy`,e===MO?`0em`:e===PO?`0.71em`:`0.32em`)),f!==b&&(x=x.transition(f),S=S.transition(f),T=T.transition(f),E=E.transition(f),C=C.transition(f).attr(`opacity`,IO).attr(`transform`,function(e){return isFinite(e=y(e))?d(e+c):this.getAttribute(`transform`)}),w.attr(`opacity`,IO).attr(`transform`,function(e){var t=this.parentNode.__axis;return d((t&&isFinite(t=t(e))?t:y(e))+c)})),C.remove(),x.attr(`d`,e===FO||e===NO?o?`M`+l*o+`,`+_+`H`+c+`V`+v+`H`+l*o:`M`+c+`,`+_+`V`+v:o?`M`+_+`,`+l*o+`V`+c+`H`+v+`V`+l*o:`M`+_+`,`+c+`H`+v),S.attr(`opacity`,1).attr(`transform`,function(e){return d(y(e)+c)}),T.attr(u+`2`,l*a),E.attr(u,l*h).text(m),b.filter(VO).attr(`fill`,`none`).attr(`font-size`,10).attr(`font-family`,`sans-serif`).attr(`text-anchor`,e===NO?`start`:e===FO?`end`:`middle`),b.each(function(){this.__axis=y})}return f.scale=function(e){return arguments.length?(t=e,f):t},f.ticks=function(){return n=Array.from(arguments),f},f.tickArguments=function(e){return arguments.length?(n=e==null?[]:Array.from(e),f):n.slice()},f.tickValues=function(e){return arguments.length?(r=e==null?null:Array.from(e),f):r&&r.slice()},f.tickFormat=function(e){return arguments.length?(i=e,f):i},f.tickSize=function(e){return arguments.length?(a=o=+e,f):a},f.tickSizeInner=function(e){return arguments.length?(a=+e,f):a},f.tickSizeOuter=function(e){return arguments.length?(o=+e,f):o},f.tickPadding=function(e){return arguments.length?(s=+e,f):s},f.offset=function(e){return arguments.length?(c=+e,f):c},f}function UO(e){return HO(PO,e)}function WO(e){return HO(FO,e)}var GO={value:()=>{}};function KO(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+``)||r in n||/[\s.]/.test(r))throw Error(`illegal type: `+r);n[r]=[]}return new qO(n)}function qO(e){this._=e}function JO(e,t){return e.trim().split(/^|\s+/).map(function(e){var n=``,r=e.indexOf(`.`);if(r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}qO.prototype=KO.prototype={constructor:qO,on:function(e,t){var n=this._,r=JO(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=YO(n[i],e.name)))return i;return}if(t!=null&&typeof t!=`function`)throw Error(`invalid callback: `+t);for(;++a<o;)if(i=(e=r[a]).type)n[i]=XO(n[i],e.name,t);else if(t==null)for(i in n)n[i]=XO(n[i],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new qO(e)},call:function(e,t){if((i=arguments.length-2)>0)for(var n=Array(i),r=0,i,a;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(a=this._[e],r=0,i=a.length;r<i;++r)a[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(var r=this._[e],i=0,a=r.length;i<a;++i)r[i].value.apply(t,n)}};function YO(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function XO(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=GO,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var ZO={svg:`http://www.w3.org/2000/svg`,xhtml:`http://www.w3.org/1999/xhtml`,xlink:`http://www.w3.org/1999/xlink`,xml:`http://www.w3.org/XML/1998/namespace`,xmlns:`http://www.w3.org/2000/xmlns/`};function QO(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),ZO.hasOwnProperty(t)?{space:ZO[t],local:e}:e}function $O(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===`http://www.w3.org/1999/xhtml`&&t.documentElement.namespaceURI===`http://www.w3.org/1999/xhtml`?t.createElement(e):t.createElementNS(n,e)}}function ek(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function tk(e){var t=QO(e);return(t.local?ek:$O)(t)}function nk(){}function rk(e){return e==null?nk:function(){return this.querySelector(e)}}function ik(e){typeof e!=`function`&&(e=rk(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=Array(o),c,l,u=0;u<o;++u)(c=a[u])&&(l=e.call(c,c.__data__,u,a))&&(`__data__`in c&&(l.__data__=c.__data__),s[u]=l);return new KA(r,this._parents)}function ak(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function ok(){return[]}function sk(e){return e==null?ok:function(){return this.querySelectorAll(e)}}function ck(e){return function(){return ak(e.apply(this,arguments))}}function lk(e){e=typeof e==`function`?ck(e):sk(e);for(var t=this._groups,n=t.length,r=[],i=[],a=0;a<n;++a)for(var o=t[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&(r.push(e.call(c,c.__data__,l,o)),i.push(c));return new KA(r,i)}function uk(e){return function(){return this.matches(e)}}function dk(e){return function(t){return t.matches(e)}}var fk=Array.prototype.find;function pk(e){return function(){return fk.call(this.children,e)}}function mk(){return this.firstElementChild}function hk(e){return this.select(e==null?mk:pk(typeof e==`function`?e:dk(e)))}var gk=Array.prototype.filter;function _k(){return Array.from(this.children)}function vk(e){return function(){return gk.call(this.children,e)}}function yk(e){return this.selectAll(e==null?_k:vk(typeof e==`function`?e:dk(e)))}function bk(e){typeof e!=`function`&&(e=uk(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new KA(r,this._parents)}function xk(e){return Array(e.length)}function Sk(){return new KA(this._enter||this._groups.map(xk),this._parents)}function Ck(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Ck.prototype={constructor:Ck,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function wk(e){return function(){return e}}function Tk(e,t,n,r,i,a){for(var o=0,s,c=t.length,l=a.length;o<l;++o)(s=t[o])?(s.__data__=a[o],r[o]=s):n[o]=new Ck(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function Ek(e,t,n,r,i,a,o){var s,c,l=new Map,u=t.length,d=a.length,f=Array(u),p;for(s=0;s<u;++s)(c=t[s])&&(f[s]=p=o.call(c,c.__data__,s,t)+``,l.has(p)?i[s]=c:l.set(p,c));for(s=0;s<d;++s)p=o.call(e,a[s],s,a)+``,(c=l.get(p))?(r[s]=c,c.__data__=a[s],l.delete(p)):n[s]=new Ck(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function Dk(e){return e.__data__}function Ok(e,t){if(!arguments.length)return Array.from(this,Dk);var n=t?Ek:Tk,r=this._parents,i=this._groups;typeof e!=`function`&&(e=wk(e));for(var a=i.length,o=Array(a),s=Array(a),c=Array(a),l=0;l<a;++l){var u=r[l],d=i[l],f=d.length,p=kk(e.call(u,u&&u.__data__,l,r)),m=p.length,h=s[l]=Array(m),g=o[l]=Array(m);n(u,d,h,g,c[l]=Array(f),p,t);for(var _=0,v=0,y,b;_<m;++_)if(y=h[_]){for(_>=v&&(v=_+1);!(b=g[v])&&++v<m;);y._next=b||null}}return o=new KA(o,r),o._enter=s,o._exit=c,o}function kk(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function Ak(){return new KA(this._exit||this._groups.map(xk),this._parents)}function jk(e,t,n){var r=this.enter(),i=this,a=this.exit();return typeof e==`function`?(r=e(r),r&&=r.selection()):r=r.append(e+``),t!=null&&(i=t(i),i&&=i.selection()),n==null?a.remove():n(a),r&&i?r.merge(i).order():i}function Mk(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,i=n.length,a=r.length,o=Math.min(i,a),s=Array(i),c=0;c<o;++c)for(var l=n[c],u=r[c],d=l.length,f=s[c]=Array(d),p,m=0;m<d;++m)(p=l[m]||u[m])&&(f[m]=p);for(;c<i;++c)s[c]=n[c];return new KA(s,this._parents)}function Nk(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],i=r.length-1,a=r[i],o;--i>=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function Pk(e){e||=Fk;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;a<r;++a){for(var o=n[a],s=o.length,c=i[a]=Array(s),l,u=0;u<s;++u)(l=o[u])&&(c[u]=l);c.sort(t)}return new KA(i,this._parents).order()}function Fk(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function Ik(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Lk(){return Array.from(this)}function Rk(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function zk(){let e=0;for(let t of this)++e;return e}function Bk(){return!this.node()}function Vk(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var i=t[n],a=0,o=i.length,s;a<o;++a)(s=i[a])&&e.call(s,s.__data__,a,i);return this}function Hk(e){return function(){this.removeAttribute(e)}}function Uk(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Wk(e,t){return function(){this.setAttribute(e,t)}}function Gk(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Kk(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function qk(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function Jk(e,t){var n=QO(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?Uk:Hk:typeof t==`function`?n.local?qk:Kk:n.local?Gk:Wk)(n,t))}function Yk(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Xk(e){return function(){this.style.removeProperty(e)}}function Zk(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Qk(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function $k(e,t,n){return arguments.length>1?this.each((t==null?Xk:typeof t==`function`?Qk:Zk)(e,t,n??``)):eA(this.node(),e)}function eA(e,t){return e.style.getPropertyValue(t)||Yk(e).getComputedStyle(e,null).getPropertyValue(t)}function tA(e){return function(){delete this[e]}}function nA(e,t){return function(){this[e]=t}}function rA(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function iA(e,t){return arguments.length>1?this.each((t==null?tA:typeof t==`function`?rA:nA)(e,t)):this.node()[e]}function aA(e){return e.trim().split(/^|\s+/)}function oA(e){return e.classList||new sA(e)}function sA(e){this._node=e,this._names=aA(e.getAttribute(`class`)||``)}sA.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute(`class`,this._names.join(` `)))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute(`class`,this._names.join(` `)))},contains:function(e){return this._names.indexOf(e)>=0}};function cA(e,t){for(var n=oA(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function lA(e,t){for(var n=oA(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function uA(e){return function(){cA(this,e)}}function dA(e){return function(){lA(this,e)}}function fA(e,t){return function(){(t.apply(this,arguments)?cA:lA)(this,e)}}function pA(e,t){var n=aA(e+``);if(arguments.length<2){for(var r=oA(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?fA:t?uA:dA)(n,t))}function mA(){this.textContent=``}function hA(e){return function(){this.textContent=e}}function gA(e){return function(){var t=e.apply(this,arguments);this.textContent=t??``}}function _A(e){return arguments.length?this.each(e==null?mA:(typeof e==`function`?gA:hA)(e)):this.node().textContent}function vA(){this.innerHTML=``}function yA(e){return function(){this.innerHTML=e}}function bA(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??``}}function xA(e){return arguments.length?this.each(e==null?vA:(typeof e==`function`?bA:yA)(e)):this.node().innerHTML}function SA(){this.nextSibling&&this.parentNode.appendChild(this)}function CA(){return this.each(SA)}function wA(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function TA(){return this.each(wA)}function EA(e){var t=typeof e==`function`?e:tk(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function DA(){return null}function OA(e,t){var n=typeof e==`function`?e:tk(e),r=t==null?DA:typeof t==`function`?t:rk(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function kA(){var e=this.parentNode;e&&e.removeChild(this)}function AA(){return this.each(kA)}function jA(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function MA(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function NA(e){return this.select(e?MA:jA)}function PA(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function FA(e){return function(t){e.call(this,t,this.__data__)}}function IA(e){return e.trim().split(/^|\s+/).map(function(e){var t=``,n=e.indexOf(`.`);return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function LA(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n<i;++n)a=t[n],(!e.type||a.type===e.type)&&a.name===e.name?this.removeEventListener(a.type,a.listener,a.options):t[++r]=a;++r?t.length=r:delete this.__on}}}function RA(e,t,n){return function(){var r=this.__on,i,a=FA(t);if(r){for(var o=0,s=r.length;o<s;++o)if((i=r[o]).type===e.type&&i.name===e.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=n),i.value=t;return}}this.addEventListener(e.type,a,n),i={type:e.type,name:e.name,value:t,listener:a,options:n},r?r.push(i):this.__on=[i]}}function zA(e,t,n){var r=IA(e+``),i,a=r.length,o;if(arguments.length<2){var s=this.node().__on;if(s){for(var c=0,l=s.length,u;c<l;++c)for(i=0,u=s[c];i<a;++i)if((o=r[i]).type===u.type&&o.name===u.name)return u.value}return}for(s=t?RA:LA,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function BA(e,t,n){var r=Yk(e),i=r.CustomEvent;typeof i==`function`?i=new i(t,n):(i=r.document.createEvent(`Event`),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function VA(e,t){return function(){return BA(this,e,t)}}function HA(e,t){return function(){return BA(this,e,t.apply(this,arguments))}}function UA(e,t){return this.each((typeof t==`function`?HA:VA)(e,t))}function*WA(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length,o;i<a;++i)(o=r[i])&&(yield o)}var GA=[null];function KA(e,t){this._groups=e,this._parents=t}function qA(){return new KA([[document.documentElement]],GA)}function JA(){return this}KA.prototype=qA.prototype={constructor:KA,select:ik,selectAll:lk,selectChild:hk,selectChildren:yk,filter:bk,data:Ok,enter:Sk,exit:Ak,join:jk,merge:Mk,selection:JA,order:Nk,sort:Pk,call:Ik,nodes:Lk,node:Rk,size:zk,empty:Bk,each:Vk,attr:Jk,style:$k,property:iA,classed:pA,text:_A,html:xA,raise:CA,lower:TA,append:EA,insert:OA,remove:AA,clone:NA,datum:PA,on:zA,dispatch:UA,[Symbol.iterator]:WA};function YA(e){return typeof e==`string`?new KA([[document.querySelector(e)]],[document.documentElement]):new KA([[e]],GA)}function XA(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function ZA(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function QA(){}var $A=.7,ej=1/$A,tj=`\\s*([+-]?\\d+)\\s*`,nj=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,rj=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,jee=/^#([0-9a-f]{3,8})$/,Mee=RegExp(`^rgb\\(${tj},${tj},${tj}\\)$`),Nee=RegExp(`^rgb\\(${rj},${rj},${rj}\\)$`),Pee=RegExp(`^rgba\\(${tj},${tj},${tj},${nj}\\)$`),Fee=RegExp(`^rgba\\(${rj},${rj},${rj},${nj}\\)$`),Iee=RegExp(`^hsl\\(${nj},${rj},${rj}\\)$`),Lee=RegExp(`^hsla\\(${nj},${rj},${rj},${nj}\\)$`),ij={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};XA(QA,sj,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:aj,formatHex:aj,formatHex8:Ree,formatHsl:zee,formatRgb:oj,toString:oj});function aj(){return this.rgb().formatHex()}function Ree(){return this.rgb().formatHex8()}function zee(){return yj(this).formatHsl()}function oj(){return this.rgb().formatRgb()}function sj(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=jee.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?cj(t):n===3?new dj(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?lj(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?lj(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Mee.exec(e))?new dj(t[1],t[2],t[3],1):(t=Nee.exec(e))?new dj(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Pee.exec(e))?lj(t[1],t[2],t[3],t[4]):(t=Fee.exec(e))?lj(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Iee.exec(e))?vj(t[1],t[2]/100,t[3]/100,1):(t=Lee.exec(e))?vj(t[1],t[2]/100,t[3]/100,t[4]):ij.hasOwnProperty(e)?cj(ij[e]):e===`transparent`?new dj(NaN,NaN,NaN,0):null}function cj(e){return new dj(e>>16&255,e>>8&255,e&255,1)}function lj(e,t,n,r){return r<=0&&(e=t=n=NaN),new dj(e,t,n,r)}function Bee(e){return e instanceof QA||(e=sj(e)),e?(e=e.rgb(),new dj(e.r,e.g,e.b,e.opacity)):new dj}function uj(e,t,n,r){return arguments.length===1?Bee(e):new dj(e,t,n,r??1)}function dj(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}XA(dj,uj,ZA(QA,{brighter(e){return e=e==null?ej:ej**+e,new dj(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?$A:$A**+e,new dj(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new dj(gj(this.r),gj(this.g),gj(this.b),hj(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:fj,formatHex:fj,formatHex8:pj,formatRgb:mj,toString:mj}));function fj(){return`#${_j(this.r)}${_j(this.g)}${_j(this.b)}`}function pj(){return`#${_j(this.r)}${_j(this.g)}${_j(this.b)}${_j((isNaN(this.opacity)?1:this.opacity)*255)}`}function mj(){let e=hj(this.opacity);return`${e===1?`rgb(`:`rgba(`}${gj(this.r)}, ${gj(this.g)}, ${gj(this.b)}${e===1?`)`:`, ${e})`}`}function hj(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function gj(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function _j(e){return e=gj(e),(e<16?`0`:``)+e.toString(16)}function vj(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new xj(e,t,n,r)}function yj(e){if(e instanceof xj)return new xj(e.h,e.s,e.l,e.opacity);if(e instanceof QA||(e=sj(e)),!e)return new xj;if(e instanceof xj)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n<r)*6:n===a?(r-t)/s+2:(t-n)/s+4,s/=c<.5?a+i:2-a-i,o*=60):s=c>0&&c<1?0:o,new xj(o,s,c,e.opacity)}function bj(e,t,n,r){return arguments.length===1?yj(e):new xj(e,t,n,r??1)}function xj(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}XA(xj,bj,ZA(QA,{brighter(e){return e=e==null?ej:ej**+e,new xj(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?$A:$A**+e,new xj(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new dj(wj(e>=240?e-240:e+120,i,r),wj(e,i,r),wj(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new xj(Sj(this.h),Cj(this.s),Cj(this.l),hj(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=hj(this.opacity);return`${e===1?`hsl(`:`hsla(`}${Sj(this.h)}, ${Cj(this.s)*100}%, ${Cj(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function Sj(e){return e=(e||0)%360,e<0?e+360:e}function Cj(e){return Math.max(0,Math.min(1,e||0))}function wj(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var Tj=e=>()=>e;function Ej(e,t){return function(n){return e+n*t}}function Dj(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function Oj(e){return(e=+e)==1?kj:function(t,n){return n-t?Dj(t,n,e):Tj(isNaN(t)?n:t)}}function kj(e,t){var n=t-e;return n?Ej(e,n):Tj(isNaN(e)?t:e)}var Aj=(function e(t){var n=Oj(t);function r(e,t){var r=n((e=uj(e)).r,(t=uj(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=kj(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function jj(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function Mj(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Nj(e,t){for(var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=Array(r),a=Array(n),o=0;o<r;++o)i[o]=Hj(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(e){for(o=0;o<r;++o)a[o]=i[o](e);return a}}function Pj(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Fj(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function Ij(e,t){var n={},r={},i;for(i in(typeof e!=`object`||!e)&&(e={}),(typeof t!=`object`||!t)&&(t={}),t)i in e?n[i]=Hj(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var Lj=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Rj=new RegExp(Lj.source,`g`);function zj(e){return function(){return e}}function Bj(e){return function(t){return e(t)+``}}function Vj(e,t){var n=Lj.lastIndex=Rj.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=Lj.exec(e))&&(i=Rj.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:Fj(r,i)})),n=Rj.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?Bj(c[0].x):zj(t):(t=c.length,function(e){for(var n=0,r;n<t;++n)s[(r=c[n]).i]=r.x(e);return s.join(``)})}function Hj(e,t){var n=typeof t,r;return t==null||n===`boolean`?Tj(t):(n===`number`?Fj:n===`string`?(r=sj(t))?(t=r,Aj):Vj:t instanceof sj?Aj:t instanceof Date?Pj:Mj(t)?jj:Array.isArray(t)?Nj:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?Ij:Fj)(e,t)}function Uj(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var Wj=180/Math.PI,Gj={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Kj(e,t,n,r,i,a){var o,s,c;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),e*r<t*n&&(e=-e,t=-t,c=-c,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*Wj,skewX:Math.atan(c)*Wj,scaleX:o,scaleY:s}}var qj;function Jj(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?Gj:Kj(t.a,t.b,t.c,t.d,t.e,t.f)}function Yj(e){return e==null||(qj||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),qj.setAttribute(`transform`,e),!(e=qj.transform.baseVal.consolidate()))?Gj:(e=e.matrix,Kj(e.a,e.b,e.c,e.d,e.e,e.f))}function Xj(e,t,n,r){function i(e){return e.length?e.pop()+` `:``}function a(e,r,i,a,o,s){if(e!==i||r!==a){var c=o.push(`translate(`,null,t,null,n);s.push({i:c-4,x:Fj(e,i)},{i:c-2,x:Fj(r,a)})}else(i||a)&&o.push(`translate(`+i+t+a+n)}function o(e,t,n,a){e===t?t&&n.push(i(n)+`rotate(`+t+r):(e-t>180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:Fj(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:Fj(e,t)})}function c(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:Fj(e,n)},{i:s-2,x:Fj(t,r)})}else(n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),c(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++t<n;)r[(a=i[t]).i]=a.x(e);return r.join(``)}}}var Zj=Xj(Jj,`px, `,`px)`,`deg)`),Qj=Xj(Yj,`, `,`)`,`)`),$j=0,eM=0,tM=0,nM=1e3,rM,iM,aM=0,oM=0,sM=0,cM=typeof performance==`object`&&performance.now?performance:Date,lM=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function uM(){return oM||=(lM(dM),cM.now()+sM)}function dM(){oM=0}function fM(){this._call=this._time=this._next=null}fM.prototype=pM.prototype={constructor:fM,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?uM():+n)+(t==null?0:+t),!this._next&&iM!==this&&(iM?iM._next=this:rM=this,iM=this),this._call=e,this._time=n,vM()},stop:function(){this._call&&(this._call=null,this._time=1/0,vM())}};function pM(e,t,n){var r=new fM;return r.restart(e,t,n),r}function mM(){uM(),++$j;for(var e=rM,t;e;)(t=oM-e._time)>=0&&e._call.call(void 0,t),e=e._next;--$j}function hM(){oM=(aM=cM.now())+sM,$j=eM=0;try{mM()}finally{$j=0,_M(),oM=0}}function gM(){var e=cM.now(),t=e-aM;t>nM&&(sM-=t,aM=e)}function _M(){for(var e,t=rM,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:rM=n);iM=e,vM(r)}function vM(e){$j||(eM&&=clearTimeout(eM),e-oM>24?(e<1/0&&(eM=setTimeout(hM,e-cM.now()-sM)),tM&&=clearInterval(tM)):(tM||=(aM=cM.now(),setInterval(gM,nM)),$j=1,lM(hM)))}function yM(e,t,n){var r=new fM;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var bM=KO(`start`,`end`,`cancel`,`interrupt`),xM=[];function SM(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;EM(e,n,{name:t,index:r,group:i,on:bM,tween:xM,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function CM(e,t){var n=TM(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function wM(e,t){var n=TM(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function TM(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function EM(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=pM(a,0,n.time);function a(e){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==1)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===3)return yM(o);f.state===4?(f.state=6,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l<t&&(f.state=6,f.timer.stop(),f.on.call(`cancel`,e,e.__data__,f.index,f.group),delete r[l])}if(yM(function(){n.state===3&&(n.state=4,n.timer.restart(s,n.delay,n.time),s(a))}),n.state=2,n.on.call(`start`,e,e.__data__,n.index,n.group),n.state===2){for(n.state=3,i=Array(d=n.tween.length),l=0,u=-1;l<d;++l)(f=n.tween[l].value.call(e,e.__data__,n.index,n.group))&&(i[++u]=f);i.length=u+1}}function s(t){for(var r=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(c),n.state=5,1),a=-1,o=i.length;++a<o;)i[a].call(e,r);n.state===5&&(n.on.call(`end`,e,e.__data__,n.index,n.group),c())}function c(){for(var i in n.state=6,n.timer.stop(),delete r[t],r)return;delete e.__transition}}function DM(e,t){var n=e.__transition,r,i,a=!0,o;if(n){for(o in t=t==null?null:t+``,n){if((r=n[o]).name!==t){a=!1;continue}i=r.state>2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function OM(e){return this.each(function(){DM(this,e)})}function kM(e,t){var n,r;return function(){var i=wM(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o<s;++o)if(r[o].name===t){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function AM(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=wM(this,e),o=a.tween;if(o!==r){i=(r=o).slice();for(var s={name:t,value:n},c=0,l=i.length;c<l;++c)if(i[c].name===t){i[c]=s;break}c===l&&i.push(s)}a.tween=i}}function jM(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=TM(this.node(),n).tween,i=0,a=r.length,o;i<a;++i)if((o=r[i]).name===e)return o.value;return null}return this.each((t==null?kM:AM)(n,e,t))}function MM(e,t,n){var r=e._id;return e.each(function(){var e=wM(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return TM(e,r).value[t]}}function NM(e,t){var n;return(typeof t==`number`?Fj:t instanceof sj?Aj:(n=sj(t))?(t=n,Aj):Vj)(e,t)}function PM(e){return function(){this.removeAttribute(e)}}function FM(e){return function(){this.removeAttributeNS(e.space,e.local)}}function IM(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttribute(e);return o===i?null:o===r?a:a=t(r=o,n)}}function LM(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttributeNS(e.space,e.local);return o===i?null:o===r?a:a=t(r=o,n)}}function RM(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttribute(e):(o=this.getAttribute(e),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function zM(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttributeNS(e.space,e.local):(o=this.getAttributeNS(e.space,e.local),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function BM(e,t){var n=QO(e),r=n===`transform`?Qj:NM;return this.attrTween(e,typeof t==`function`?(n.local?zM:RM)(n,r,MM(this,`attr.`+e,t)):t==null?(n.local?FM:PM)(n):(n.local?LM:IM)(n,r,t))}function VM(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function HM(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function UM(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&HM(e,i)),n}return i._value=t,i}function WM(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&VM(e,i)),n}return i._value=t,i}function GM(e,t){var n=`attr.`+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!=`function`)throw Error();var r=QO(e);return this.tween(n,(r.local?UM:WM)(r,t))}function KM(e,t){return function(){CM(this,e).delay=+t.apply(this,arguments)}}function qM(e,t){return t=+t,function(){CM(this,e).delay=t}}function JM(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?KM:qM)(t,e)):TM(this.node(),t).delay}function YM(e,t){return function(){wM(this,e).duration=+t.apply(this,arguments)}}function XM(e,t){return t=+t,function(){wM(this,e).duration=t}}function ZM(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?YM:XM)(t,e)):TM(this.node(),t).duration}function QM(e,t){if(typeof t!=`function`)throw Error();return function(){wM(this,e).ease=t}}function $M(e){var t=this._id;return arguments.length?this.each(QM(t,e)):TM(this.node(),t).ease}function eN(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();wM(this,e).ease=n}}function tN(e){if(typeof e!=`function`)throw Error();return this.each(eN(this._id,e))}function nN(e){typeof e!=`function`&&(e=uk(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new jN(r,this._parents,this._name,this._id)}function rN(e){if(e._id!==this._id)throw Error();for(var t=this._groups,n=e._groups,r=t.length,i=n.length,a=Math.min(r,i),o=Array(r),s=0;s<a;++s)for(var c=t[s],l=n[s],u=c.length,d=o[s]=Array(u),f,p=0;p<u;++p)(f=c[p]||l[p])&&(d[p]=f);for(;s<r;++s)o[s]=t[s];return new jN(o,this._parents,this._name,this._id)}function iN(e){return(e+``).trim().split(/^|\s+/).every(function(e){var t=e.indexOf(`.`);return t>=0&&(e=e.slice(0,t)),!e||e===`start`})}function aN(e,t,n){var r,i,a=iN(t)?CM:wM;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function oN(e,t){var n=this._id;return arguments.length<2?TM(this.node(),n).on.on(e):this.each(aN(n,e,t))}function sN(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function cN(){return this.on(`end.remove`,sN(this._id))}function lN(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=rk(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o<i;++o)for(var s=r[o],c=s.length,l=a[o]=Array(c),u,d,f=0;f<c;++f)(u=s[f])&&(d=e.call(u,u.__data__,f,s))&&(`__data__`in u&&(d.__data__=u.__data__),l[f]=d,SM(l[f],t,n,f,l,TM(u,n)));return new jN(a,this._parents,t,n)}function uN(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=sk(e));for(var r=this._groups,i=r.length,a=[],o=[],s=0;s<i;++s)for(var c=r[s],l=c.length,u,d=0;d<l;++d)if(u=c[d]){for(var f=e.call(u,u.__data__,d,c),p,m=TM(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&SM(p,t,n,h,f,m);a.push(f),o.push(u)}return new jN(a,o,t,n)}var dN=qA.prototype.constructor;function fN(){return new dN(this._groups,this._parents)}function pN(e,t){var n,r,i;return function(){var a=eA(this,e),o=(this.style.removeProperty(e),eA(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function mN(e){return function(){this.style.removeProperty(e)}}function hN(e,t,n){var r,i=n+``,a;return function(){var o=eA(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function gN(e,t,n){var r,i,a;return function(){var o=eA(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),eA(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function _N(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=wM(this,e),l=c.on,u=c.value[a]==null?s||=mN(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function vN(e,t,n){var r=(e+=``)==`transform`?Zj:NM;return t==null?this.styleTween(e,pN(e,r)).on(`end.style.`+e,mN(e)):typeof t==`function`?this.styleTween(e,gN(e,r,MM(this,`style.`+e,t))).each(_N(this._id,e)):this.styleTween(e,hN(e,r,t),n).on(`end.style.`+e,null)}function yN(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function bN(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&yN(e,a,n)),r}return a._value=t,a}function xN(e,t,n){var r=`style.`+(e+=``);if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!=`function`)throw Error();return this.tween(r,bN(e,t,n??``))}function SN(e){return function(){this.textContent=e}}function CN(e){return function(){var t=e(this);this.textContent=t??``}}function wN(e){return this.tween(`text`,typeof e==`function`?CN(MM(this,`text`,e)):SN(e==null?``:e+``))}function TN(e){return function(t){this.textContent=e.call(this,t)}}function EN(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&TN(r)),t}return r._value=e,r}function DN(e){var t=`text`;if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!=`function`)throw Error();return this.tween(t,EN(e))}function ON(){for(var e=this._name,t=this._id,n=MN(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)if(c=o[l]){var u=TM(c,t);SM(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new jN(r,this._parents,e,n)}function kN(){var e,t,n=this,r=n._id,i=n.size();return new Promise(function(a,o){var s={value:o},c={value:function(){--i===0&&a()}};n.each(function(){var n=wM(this,r),i=n.on;i!==e&&(t=(e=i).copy(),t._.cancel.push(s),t._.interrupt.push(s),t._.end.push(c)),n.on=t}),i===0&&a()})}var AN=0;function jN(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function MN(){return++AN}var NN=qA.prototype;jN.prototype={constructor:jN,select:lN,selectAll:uN,selectChild:NN.selectChild,selectChildren:NN.selectChildren,filter:nN,merge:rN,selection:fN,transition:ON,call:NN.call,nodes:NN.nodes,node:NN.node,size:NN.size,empty:NN.empty,each:NN.each,on:oN,attr:BM,attrTween:GM,style:vN,styleTween:xN,text:wN,textTween:DN,remove:cN,tween:jM,delay:JM,duration:ZM,ease:$M,easeVarying:tN,end:kN,[Symbol.iterator]:NN[Symbol.iterator]};function PN(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var FN={time:null,delay:0,duration:250,ease:PN};function IN(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function LN(e){var t,n;e instanceof jN?(t=e._id,e=e._name):(t=MN(),(n=FN).time=uM(),e=e==null?null:e+``);for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&SM(c,e,t,l,o,n||IN(c,t));return new jN(r,this._parents,e,t)}qA.prototype.interrupt=OM,qA.prototype.transition=LN;var{abs:Vee,max:Hee,min:Uee}=Math;[`w`,`e`].map(RN),[`n`,`s`].map(RN),[`n`,`w`,`e`,`s`,`nw`,`ne`,`sw`,`se`].map(RN);function RN(e){return{type:e}}var zN=Math.PI,BN=2*zN,VN=1e-6,HN=BN-VN;function UN(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function WN(e){let t=Math.floor(e);if(!(t>=0))throw Error(`invalid digits: ${e}`);if(t>15)return UN;let n=10**t;return function(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=Math.round(arguments[t]*n)/n+e[t]}}var GN=class{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._=``,this._append=e==null?UN:WN(e)}moveTo(e,t){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,t){this._append`L${this._x1=+e},${this._y1=+t}`}quadraticCurveTo(e,t,n,r){this._append`Q${+e},${+t},${this._x1=+n},${this._y1=+r}`}bezierCurveTo(e,t,n,r,i,a){this._append`C${+e},${+t},${+n},${+r},${this._x1=+i},${this._y1=+a}`}arcTo(e,t,n,r,i){if(e=+e,t=+t,n=+n,r=+r,i=+i,i<0)throw Error(`negative radius: ${i}`);let a=this._x1,o=this._y1,s=n-e,c=r-t,l=a-e,u=o-t,d=l*l+u*u;if(this._x1===null)this._append`M${this._x1=e},${this._y1=t}`;else if(d>VN){if(!(Math.abs(u*s-c*l)>VN)||!i)this._append`L${this._x1=e},${this._y1=t}`;else{let f=n-a,p=r-o,m=s*s+c*c,h=f*f+p*p,g=Math.sqrt(m),_=Math.sqrt(d),v=i*Math.tan((zN-Math.acos((m+d-h)/(2*g*_)))/2),y=v/_,b=v/g;Math.abs(y-1)>VN&&this._append`L${e+y*l},${t+y*u}`,this._append`A${i},${i},0,0,${+(u*f>l*p)},${this._x1=e+b*s},${this._y1=t+b*c}`}}}arc(e,t,n,r,i,a){if(e=+e,t=+t,n=+n,a=!!a,n<0)throw Error(`negative radius: ${n}`);let o=n*Math.cos(r),s=n*Math.sin(r),c=e+o,l=t+s,u=1^a,d=a?r-i:i-r;this._x1===null?this._append`M${c},${l}`:(Math.abs(this._x1-c)>VN||Math.abs(this._y1-l)>VN)&&this._append`L${c},${l}`,n&&(d<0&&(d=d%BN+BN),d>HN?this._append`A${n},${n},0,1,${u},${e-o},${t-s}A${n},${n},0,1,${u},${this._x1=c},${this._y1=l}`:d>VN&&this._append`A${n},${n},0,${+(d>=zN)},${u},${this._x1=e+n*Math.cos(i)},${this._y1=t+n*Math.sin(i)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}};GN.prototype;function KN(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString(`en`).replace(/,/g,``):e.toString(10)}function qN(e,t){if(!isFinite(e)||e===0)return null;var n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf(`e`),r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function JN(e){return e=qN(Math.abs(e)),e?e[1]:NaN}function YN(e,t){return function(n,r){for(var i=n.length,a=[],o=0,s=e[0],c=0;i>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),a.push(n.substring(i-=s,i+s)),!((c+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function XN(e){return function(t){return t.replace(/[0-9]/g,function(t){return e[+t]})}}var ZN=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function QN(e){if(!(t=ZN.exec(e)))throw Error(`invalid format: `+e);var t;return new $N({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}QN.prototype=$N.prototype;function $N(e){this.fill=e.fill===void 0?` `:e.fill+``,this.align=e.align===void 0?`>`:e.align+``,this.sign=e.sign===void 0?`-`:e.sign+``,this.symbol=e.symbol===void 0?``:e.symbol+``,this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?``:e.type+``}$N.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?`0`:``)+(this.width===void 0?``:Math.max(1,this.width|0))+(this.comma?`,`:``)+(this.precision===void 0?``:`.`+Math.max(0,this.precision|0))+(this.trim?`~`:``)+this.type};function eP(e){out:for(var t=e.length,n=1,r=-1,i;n<t;++n)switch(e[n]){case`.`:r=i=n;break;case`0`:r===0&&(r=n),i=n;break;default:if(!+e[n])break out;r>0&&(r=0)}return r>0?e.slice(0,r)+e.slice(i+1):e}var tP;function nP(e,t){var n=qN(e,t);if(!n)return tP=void 0,e.toPrecision(t);var r=n[0],i=n[1],a=i-(tP=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+Array(a-o+1).join(`0`):a>0?r.slice(0,a)+`.`+r.slice(a):`0.`+Array(1-a).join(`0`)+qN(e,Math.max(0,t+a-1))[0]}function rP(e,t){var n=qN(e,t);if(!n)return e+``;var r=n[0],i=n[1];return i<0?`0.`+Array(-i).join(`0`)+r:r.length>i+1?r.slice(0,i+1)+`.`+r.slice(i+1):r+Array(i-r.length+2).join(`0`)}var iP={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+``,d:KN,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>rP(e*100,t),r:rP,s:nP,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function aP(e){return e}var oP=Array.prototype.map,sP=[`y`,`z`,`a`,`f`,`p`,`n`,`µ`,`m`,``,`k`,`M`,`G`,`T`,`P`,`E`,`Z`,`Y`];function cP(e){var t=e.grouping===void 0||e.thousands===void 0?aP:YN(oP.call(e.grouping,Number),e.thousands+``),n=e.currency===void 0?``:e.currency[0]+``,r=e.currency===void 0?``:e.currency[1]+``,i=e.decimal===void 0?`.`:e.decimal+``,a=e.numerals===void 0?aP:XN(oP.call(e.numerals,String)),o=e.percent===void 0?`%`:e.percent+``,s=e.minus===void 0?`−`:e.minus+``,c=e.nan===void 0?`NaN`:e.nan+``;function l(e,l){e=QN(e);var u=e.fill,d=e.align,f=e.sign,p=e.symbol,m=e.zero,h=e.width,g=e.comma,_=e.precision,v=e.trim,y=e.type;y===`n`?(g=!0,y=`g`):iP[y]||(_===void 0&&(_=12),v=!0,y=`g`),(m||u===`0`&&d===`=`)&&(m=!0,u=`0`,d=`=`);var b=(l&&l.prefix!==void 0?l.prefix:``)+(p===`$`?n:p===`#`&&/[boxX]/.test(y)?`0`+y.toLowerCase():``),x=(p===`$`?r:/[%p]/.test(y)?o:``)+(l&&l.suffix!==void 0?l.suffix:``),S=iP[y],C=/[defgprs%]/.test(y);_=_===void 0?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_));function w(e){var n=b,r=x,o,l,p;if(y===`c`)r=S(e)+r,e=``;else{e=+e;var w=e<0||1/e<0;if(e=isNaN(e)?c:S(Math.abs(e),_),v&&(e=eP(e)),w&&+e==0&&f!==`+`&&(w=!1),n=(w?f===`(`?f:s:f===`-`||f===`(`?``:f)+n,r=(y===`s`&&!isNaN(e)&&tP!==void 0?sP[8+tP/3]:``)+r+(w&&f===`(`?`)`:``),C){for(o=-1,l=e.length;++o<l;)if(p=e.charCodeAt(o),48>p||p>57){r=(p===46?i+e.slice(o+1):e.slice(o))+r,e=e.slice(0,o);break}}}g&&!m&&(e=t(e,1/0));var T=n.length+e.length+r.length,E=T<h?Array(h-T+1).join(u):``;switch(g&&m&&(e=t(E+e,E.length?h-r.length:1/0),E=``),d){case`<`:e=n+e+r+E;break;case`=`:e=n+E+e+r;break;case`^`:e=E.slice(0,T=E.length>>1)+n+e+r+E.slice(T);break;default:e=E+n+e+r}return a(e)}return w.toString=function(){return e+``},w}function u(e,t){var n=Math.max(-8,Math.min(8,Math.floor(JN(t)/3)))*3,r=10**-n,i=l((e=QN(e),e.type=`f`,e),{suffix:sP[8+n/3]});return function(e){return i(r*e)}}return{format:l,formatPrefix:u}}var lP,uP,dP;fP({thousands:`,`,grouping:[3],currency:[`$`,``]});function fP(e){return lP=cP(e),uP=lP.format,dP=lP.formatPrefix,lP}function pP(e){return Math.max(0,-JN(Math.abs(e)))}function mP(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(JN(t)/3)))*3-JN(Math.abs(e)))}function hP(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,JN(t)-JN(e))+1}function gP(e){var t=0,n=e.children,r=n&&n.length;if(!r)t=1;else for(;--r>=0;)t+=n[r].value;e.value=t}function _P(){return this.eachAfter(gP)}function vP(e,t){let n=-1;for(let r of this)e.call(t,r,++n,this);return this}function yP(e,t){for(var n=this,r=[n],i,a,o=-1;n=r.pop();)if(e.call(t,n,++o,this),i=n.children)for(a=i.length-1;a>=0;--a)r.push(i[a]);return this}function bP(e,t){for(var n=this,r=[n],i=[],a,o,s,c=-1;n=r.pop();)if(i.push(n),a=n.children)for(o=0,s=a.length;o<s;++o)r.push(a[o]);for(;n=i.pop();)e.call(t,n,++c,this);return this}function xP(e,t){let n=-1;for(let r of this)if(e.call(t,r,++n,this))return r}function SP(e){return this.eachAfter(function(t){for(var n=+e(t.data)||0,r=t.children,i=r&&r.length;--i>=0;)n+=r[i].value;t.value=n})}function CP(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}function wP(e){for(var t=this,n=TP(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var i=r.length;e!==n;)r.splice(i,0,e),e=e.parent;return r}function TP(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),i=null;for(e=n.pop(),t=r.pop();e===t;)i=e,e=n.pop(),t=r.pop();return i}function EP(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}function DP(){return Array.from(this)}function OP(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}function kP(){var e=this,t=[];return e.each(function(n){n!==e&&t.push({source:n.parent,target:n})}),t}function*AP(){var e=this,t,n=[e],r,i,a;do for(t=n.reverse(),n=[];e=t.pop();)if(yield e,r=e.children)for(i=0,a=r.length;i<a;++i)n.push(r[i]);while(n.length)}function jP(e,t){e instanceof Map?(e=[void 0,e],t===void 0&&(t=PP)):t===void 0&&(t=NP);for(var n=new LP(e),r,i=[n],a,o,s,c;r=i.pop();)if((o=t(r.data))&&(c=(o=Array.from(o)).length))for(r.children=o,s=c-1;s>=0;--s)i.push(a=o[s]=new LP(o[s])),a.parent=r,a.depth=r.depth+1;return n.eachBefore(IP)}function MP(){return jP(this).eachBefore(FP)}function NP(e){return e.children}function PP(e){return Array.isArray(e)?e[1]:null}function FP(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function IP(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function LP(e){this.data=e,this.depth=this.height=0,this.parent=null}LP.prototype=jP.prototype={constructor:LP,count:_P,each:vP,eachAfter:bP,eachBefore:yP,find:xP,sum:SP,sort:CP,path:wP,ancestors:EP,descendants:DP,leaves:OP,links:kP,copy:MP,[Symbol.iterator]:AP};function RP(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function zP(e,t,n,r,i){for(var a=e.children,o,s=-1,c=a.length,l=e.value&&(r-t)/e.value;++s<c;)o=a[s],o.y0=n,o.y1=i,o.x0=t,o.x1=t+=o.value*l}function BP(){var e=1,t=1,n=0,r=!1;function i(i){var o=i.height+1;return i.x0=i.y0=n,i.x1=e,i.y1=t/o,i.eachBefore(a(t,o)),r&&i.eachBefore(RP),i}function a(e,t){return function(r){r.children&&zP(r,r.x0,e*(r.depth+1)/t,r.x1,e*(r.depth+2)/t);var i=r.x0,a=r.y0,o=r.x1-n,s=r.y1-n;o<i&&(i=o=(i+o)/2),s<a&&(a=s=(a+s)/2),r.x0=i,r.y0=a,r.x1=o,r.y1=s}}return i.round=function(e){return arguments.length?(r=!!e,i):r},i.size=function(n){return arguments.length?(e=+n[0],t=+n[1],i):[e,t]},i.padding=function(e){return arguments.length?(n=+e,i):n},i}function VP(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}var HP=Symbol(`implicit`);function UP(){var e=new _O,t=[],n=[],r=HP;function i(i){let a=e.get(i);if(a===void 0){if(r!==HP)return r;e.set(i,a=t.push(i)-1)}return n[a%n.length]}return i.domain=function(n){if(!arguments.length)return t.slice();t=[],e=new _O;for(let r of n)e.has(r)||e.set(r,t.push(r)-1);return i},i.range=function(e){return arguments.length?(n=Array.from(e),i):n.slice()},i.unknown=function(e){return arguments.length?(r=e,i):r},i.copy=function(){return UP(t,n).unknown(r)},VP.apply(i,arguments),i}function WP(){var e=UP().unknown(void 0),t=e.domain,n=e.range,r=0,i=1,a,o,s=!1,c=0,l=0,u=.5;delete e.unknown;function d(){var e=t().length,d=i<r,f=d?i:r,p=d?r:i;a=(p-f)/Math.max(1,e-c+l*2),s&&(a=Math.floor(a)),f+=(p-f-a*(e-c))*u,o=a*(1-c),s&&(f=Math.round(f),o=Math.round(o));var m=AO(e).map(function(e){return f+a*e});return n(d?m.reverse():m)}return e.domain=function(e){return arguments.length?(t(e),d()):t()},e.range=function(e){return arguments.length?([r,i]=e,r=+r,i=+i,d()):[r,i]},e.rangeRound=function(e){return[r,i]=e,r=+r,i=+i,s=!0,d()},e.bandwidth=function(){return o},e.step=function(){return a},e.round=function(e){return arguments.length?(s=!!e,d()):s},e.padding=function(e){return arguments.length?(c=Math.min(1,l=+e),d()):c},e.paddingInner=function(e){return arguments.length?(c=Math.min(1,e),d()):c},e.paddingOuter=function(e){return arguments.length?(l=+e,d()):l},e.align=function(e){return arguments.length?(u=Math.max(0,Math.min(1,e)),d()):u},e.copy=function(){return WP(t(),[r,i]).round(s).paddingInner(c).paddingOuter(l).align(u)},VP.apply(d(),arguments)}function GP(e){var t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,delete e.paddingOuter,e.copy=function(){return GP(t())},e}function KP(){return GP(WP.apply(null,arguments).paddingInner(1))}function qP(e){return function(){return e}}function JP(e){return+e}var YP=[0,1];function XP(e){return e}function ZP(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:qP(isNaN(t)?NaN:.5)}function QP(e,t){var n;return e>t&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}function $P(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=ZP(i,r),a=n(o,a)):(r=ZP(r,i),a=n(a,o)),function(e){return a(r(e))}}function eF(e,t,n){var r=Math.min(e.length,t.length)-1,i=Array(r),a=Array(r),o=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<r;)i[o]=ZP(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(t){var n=hO(e,t,1,r)-1;return a[n](i[n](t))}}function tF(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function nF(){var e=YP,t=YP,n=Hj,r,i,a,o=XP,s,c,l;function u(){var n=Math.min(e.length,t.length);return o!==XP&&(o=QP(e[0],e[n-1])),s=n>2?eF:$P,c=l=null,d}function d(i){return i==null||isNaN(i=+i)?a:(c||=s(e.map(r),t,n))(r(o(i)))}return d.invert=function(n){return o(i((l||=s(t,e.map(r),Fj))(n)))},d.domain=function(t){return arguments.length?(e=Array.from(t,JP),u()):e.slice()},d.range=function(e){return arguments.length?(t=Array.from(e),u()):t.slice()},d.rangeRound=function(e){return t=Array.from(e),n=Uj,u()},d.clamp=function(e){return arguments.length?(o=e?!0:XP,u()):o!==XP},d.interpolate=function(e){return arguments.length?(n=e,u()):n},d.unknown=function(e){return arguments.length?(a=e,d):a},function(e,t){return r=e,i=t,u()}}function rF(){return nF()(XP,XP)}function iF(e,t,n,r){var i=OO(e,t,n),a;switch(r=QN(r??`,f`),r.type){case`s`:var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=mP(i,o))&&(r.precision=a),dP(r,o);case``:case`e`:case`g`:case`p`:case`r`:r.precision==null&&!isNaN(a=hP(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type===`e`));break;case`f`:case`%`:r.precision==null&&!isNaN(a=pP(i))&&(r.precision=a-(r.type===`%`)*2)}return uP(r)}function aF(e){var t=e.domain;return e.ticks=function(e){var n=t();return EO(n[0],n[n.length-1],e??10)},e.tickFormat=function(e,n){var r=t();return iF(r[0],r[r.length-1],e??10,n)},e.nice=function(n){n??=10;var r=t(),i=0,a=r.length-1,o=r[i],s=r[a],c,l,u=10;for(s<o&&(l=o,o=s,s=l,l=i,i=a,a=l);u-->0;){if(l=DO(o,s,n),l===c)return r[i]=o,r[a]=s,t(r);if(l>0)o=Math.floor(o/l)*l,s=Math.ceil(s/l)*l;else if(l<0)o=Math.ceil(o*l)/l,s=Math.floor(s*l)/l;else break;c=l}return e},e}function oF(){var e=rF();return e.copy=function(){return tF(e,oF())},VP.apply(e,arguments),aF(e)}function sF(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],a=e[r],o;return a<i&&(o=n,n=r,r=o,o=i,i=a,a=o),e[n]=t.floor(i),e[r]=t.ceil(a),e}var cF=new Date,lF=new Date;function uF(e,t,n,r){function i(t){return e(t=arguments.length===0?new Date:new Date(+t)),t}return i.floor=t=>(e(t=new Date(+t)),t),i.ceil=n=>(e(n=new Date(n-1)),t(n,1),e(n),n),i.round=e=>{let t=i(e),n=i.ceil(e);return e-t<n-e?t:n},i.offset=(e,n)=>(t(e=new Date(+e),n==null?1:Math.floor(n)),e),i.range=(n,r,a)=>{let o=[];if(n=i.ceil(n),a=a==null?1:Math.floor(a),!(n<r)||!(a>0))return o;let s;do o.push(s=new Date(+n)),t(n,a),e(n);while(s<n&&n<r);return o},i.filter=n=>uF(t=>{if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)},(e,r)=>{if(e>=e){if(r<0)for(;++r<=0;)for(;t(e,-1),!n(e););else for(;--r>=0;)for(;t(e,1),!n(e););}}),n&&(i.count=(t,r)=>(cF.setTime(+t),lF.setTime(+r),e(cF),e(lF),Math.floor(n(cF,lF))),i.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?i.filter(r?t=>r(t)%e===0:t=>i.count(0,t)%e===0):i)),i}var dF=uF(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);dF.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?uF(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):dF),dF.range;var fF=1e3,pF=fF*60,mF=pF*60,hF=mF*24,gF=hF*7,_F=hF*30,vF=hF*365,yF=uF(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*fF)},(e,t)=>(t-e)/fF,e=>e.getUTCSeconds());yF.range;var bF=uF(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*fF)},(e,t)=>{e.setTime(+e+t*pF)},(e,t)=>(t-e)/pF,e=>e.getMinutes());bF.range;var xF=uF(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*pF)},(e,t)=>(t-e)/pF,e=>e.getUTCMinutes());xF.range;var SF=uF(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*fF-e.getMinutes()*pF)},(e,t)=>{e.setTime(+e+t*mF)},(e,t)=>(t-e)/mF,e=>e.getHours());SF.range;var CF=uF(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*mF)},(e,t)=>(t-e)/mF,e=>e.getUTCHours());CF.range;var wF=uF(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*pF)/hF,e=>e.getDate()-1);wF.range;var TF=uF(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/hF,e=>e.getUTCDate()-1);TF.range;var EF=uF(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/hF,e=>Math.floor(e/hF));EF.range;function DF(e){return uF(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(e,t)=>{e.setDate(e.getDate()+t*7)},(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*pF)/gF)}var OF=DF(0),kF=DF(1),AF=DF(2),jF=DF(3),MF=DF(4),NF=DF(5),PF=DF(6);OF.range,kF.range,AF.range,jF.range,MF.range,NF.range,PF.range;function FF(e){return uF(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t*7)},(e,t)=>(t-e)/gF)}var IF=FF(0),LF=FF(1),RF=FF(2),zF=FF(3),BF=FF(4),VF=FF(5),HF=FF(6);IF.range,LF.range,RF.range,zF.range,BF.range,VF.range,HF.range;var UF=uF(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());UF.range;var WF=uF(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());WF.range;var GF=uF(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());GF.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:uF(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)}),GF.range;var KF=uF(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());KF.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:uF(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)}),KF.range;function qF(e,t,n,r,i,a){let o=[[yF,1,fF],[yF,5,5*fF],[yF,15,15*fF],[yF,30,30*fF],[a,1,pF],[a,5,5*pF],[a,15,15*pF],[a,30,30*pF],[i,1,mF],[i,3,3*mF],[i,6,6*mF],[i,12,12*mF],[r,1,hF],[r,2,2*hF],[n,1,gF],[t,1,_F],[t,3,3*_F],[e,1,vF]];function s(e,t,n){let r=t<e;r&&([e,t]=[t,e]);let i=n&&typeof n.range==`function`?n:c(e,t,n),a=i?i.range(e,+t+1):[];return r?a.reverse():a}function c(t,n,r){let i=Math.abs(n-t)/r,a=dO(([,,e])=>e).right(o,i);if(a===o.length)return e.every(OO(t/vF,n/vF,r));if(a===0)return dF.every(Math.max(OO(t,n,r),1));let[s,c]=o[i/o[a-1][2]<o[a][2]/i?a-1:a];return s.every(c)}return[s,c]}var[Wee,Gee]=qF(KF,WF,IF,EF,CF,xF),[JF,YF]=qF(GF,UF,OF,wF,SF,bF);function XF(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function ZF(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function QF(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function $F(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,a=e.days,o=e.shortDays,s=e.months,c=e.shortMonths,l=aI(i),u=oI(i),d=aI(a),f=oI(a),p=aI(o),m=oI(o),h=aI(s),g=oI(s),_=aI(c),v=oI(c),y={a:N,A:P,b:F,B:I,c:null,d:DI,e:DI,f:MI,g:UI,G:GI,H:OI,I:kI,j:AI,L:jI,m:NI,M:PI,p:L,q:R,Q:mL,s:hL,S:FI,u:II,U:LI,V:zI,w:BI,W:VI,x:null,X:null,y:HI,Y:WI,Z:KI,"%":pL},b={a:z,A:B,b:V,B:ee,c:null,d:qI,e:qI,f:QI,g:lL,G:dL,H:JI,I:YI,j:XI,L:ZI,m:$I,M:eL,p:te,q:ne,Q:mL,s:hL,S:tL,u:nL,U:rL,V:aL,w:oL,W:sL,x:null,X:null,y:cL,Y:uL,Z:fL,"%":pL},x={a:E,A:D,b:O,B:k,c:A,d:_I,e:_I,f:CI,g:pI,G:fI,H:yI,I:yI,j:vI,L:SI,m:gI,M:bI,p:T,q:hI,Q:TI,s:EI,S:xI,u:cI,U:lI,V:uI,w:sI,W:dI,x:j,X:M,y:pI,Y:fI,Z:mI,"%":wI};y.x=S(n,y),y.X=S(r,y),y.c=S(t,y),b.x=S(n,b),b.X=S(r,b),b.c=S(t,b);function S(e,t){return function(n){var r=[],i=-1,a=0,o=e.length,s,c,l;for(n instanceof Date||(n=new Date(+n));++i<o;)e.charCodeAt(i)===37&&(r.push(e.slice(a,i)),(c=eI[s=e.charAt(++i)])==null?c=s===`e`?` `:`0`:s=e.charAt(++i),(l=t[s])&&(s=l(n,c)),r.push(s),a=i+1);return r.push(e.slice(a,i)),r.join(``)}}function C(e,t){return function(n){var r=QF(1900,void 0,1),i=w(r,e,n+=``,0),a,o;if(i!=n.length)return null;if(`Q`in r)return new Date(r.Q);if(`s`in r)return new Date(r.s*1e3+(`L`in r?r.L:0));if(t&&!(`Z`in r)&&(r.Z=0),`p`in r&&(r.H=r.H%12+r.p*12),r.m===void 0&&(r.m=`q`in r?r.q:0),`V`in r){if(r.V<1||r.V>53)return null;`w`in r||(r.w=1),`Z`in r?(a=ZF(QF(r.y,0,1)),o=a.getUTCDay(),a=o>4||o===0?LF.ceil(a):LF(a),a=TF.offset(a,(r.V-1)*7),r.y=a.getUTCFullYear(),r.m=a.getUTCMonth(),r.d=a.getUTCDate()+(r.w+6)%7):(a=XF(QF(r.y,0,1)),o=a.getDay(),a=o>4||o===0?kF.ceil(a):kF(a),a=wF.offset(a,(r.V-1)*7),r.y=a.getFullYear(),r.m=a.getMonth(),r.d=a.getDate()+(r.w+6)%7)}else(`W`in r||`U`in r)&&(`w`in r||(r.w=`u`in r?r.u%7:+(`W`in r)),o=`Z`in r?ZF(QF(r.y,0,1)).getUTCDay():XF(QF(r.y,0,1)).getDay(),r.m=0,r.d=`W`in r?(r.w+6)%7+r.W*7-(o+5)%7:r.w+r.U*7-(o+6)%7);return`Z`in r?(r.H+=r.Z/100|0,r.M+=r.Z%100,ZF(r)):XF(r)}}function w(e,t,n,r){for(var i=0,a=t.length,o=n.length,s,c;i<a;){if(r>=o)return-1;if(s=t.charCodeAt(i++),s===37){if(s=t.charAt(i++),c=x[s in eI?t.charAt(i++):s],!c||(r=c(e,n,r))<0)return-1}else if(s!=n.charCodeAt(r++))return-1}return r}function T(e,t,n){var r=l.exec(t.slice(n));return r?(e.p=u.get(r[0].toLowerCase()),n+r[0].length):-1}function E(e,t,n){var r=p.exec(t.slice(n));return r?(e.w=m.get(r[0].toLowerCase()),n+r[0].length):-1}function D(e,t,n){var r=d.exec(t.slice(n));return r?(e.w=f.get(r[0].toLowerCase()),n+r[0].length):-1}function O(e,t,n){var r=_.exec(t.slice(n));return r?(e.m=v.get(r[0].toLowerCase()),n+r[0].length):-1}function k(e,t,n){var r=h.exec(t.slice(n));return r?(e.m=g.get(r[0].toLowerCase()),n+r[0].length):-1}function A(e,n,r){return w(e,t,n,r)}function j(e,t,r){return w(e,n,t,r)}function M(e,t,n){return w(e,r,t,n)}function N(e){return o[e.getDay()]}function P(e){return a[e.getDay()]}function F(e){return c[e.getMonth()]}function I(e){return s[e.getMonth()]}function L(e){return i[+(e.getHours()>=12)]}function R(e){return 1+~~(e.getMonth()/3)}function z(e){return o[e.getUTCDay()]}function B(e){return a[e.getUTCDay()]}function V(e){return c[e.getUTCMonth()]}function ee(e){return s[e.getUTCMonth()]}function te(e){return i[+(e.getUTCHours()>=12)]}function ne(e){return 1+~~(e.getUTCMonth()/3)}return{format:function(e){var t=S(e+=``,y);return t.toString=function(){return e},t},parse:function(e){var t=C(e+=``,!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=S(e+=``,b);return t.toString=function(){return e},t},utcParse:function(e){var t=C(e+=``,!0);return t.toString=function(){return e},t}}}var eI={"-":``,_:` `,0:`0`},tI=/^\s*\d+/,nI=/^%/,rI=/[\\^$*+?|[\]().{}]/g;function Z(e,t,n){var r=e<0?`-`:``,i=(r?-e:e)+``,a=i.length;return r+(a<n?Array(n-a+1).join(t)+i:i)}function iI(e){return e.replace(rI,`\\$&`)}function aI(e){return RegExp(`^(?:`+e.map(iI).join(`|`)+`)`,`i`)}function oI(e){return new Map(e.map((e,t)=>[e.toLowerCase(),t]))}function sI(e,t,n){var r=tI.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function cI(e,t,n){var r=tI.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function lI(e,t,n){var r=tI.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function uI(e,t,n){var r=tI.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function dI(e,t,n){var r=tI.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function fI(e,t,n){var r=tI.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function pI(e,t,n){var r=tI.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function mI(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||`00`)),n+r[0].length):-1}function hI(e,t,n){var r=tI.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function gI(e,t,n){var r=tI.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function _I(e,t,n){var r=tI.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function vI(e,t,n){var r=tI.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function yI(e,t,n){var r=tI.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function bI(e,t,n){var r=tI.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function xI(e,t,n){var r=tI.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function SI(e,t,n){var r=tI.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function CI(e,t,n){var r=tI.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function wI(e,t,n){var r=nI.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function TI(e,t,n){var r=tI.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function EI(e,t,n){var r=tI.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function DI(e,t){return Z(e.getDate(),t,2)}function OI(e,t){return Z(e.getHours(),t,2)}function kI(e,t){return Z(e.getHours()%12||12,t,2)}function AI(e,t){return Z(1+wF.count(GF(e),e),t,3)}function jI(e,t){return Z(e.getMilliseconds(),t,3)}function MI(e,t){return jI(e,t)+`000`}function NI(e,t){return Z(e.getMonth()+1,t,2)}function PI(e,t){return Z(e.getMinutes(),t,2)}function FI(e,t){return Z(e.getSeconds(),t,2)}function II(e){var t=e.getDay();return t===0?7:t}function LI(e,t){return Z(OF.count(GF(e)-1,e),t,2)}function RI(e){var t=e.getDay();return t>=4||t===0?MF(e):MF.ceil(e)}function zI(e,t){return e=RI(e),Z(MF.count(GF(e),e)+(GF(e).getDay()===4),t,2)}function BI(e){return e.getDay()}function VI(e,t){return Z(kF.count(GF(e)-1,e),t,2)}function HI(e,t){return Z(e.getFullYear()%100,t,2)}function UI(e,t){return e=RI(e),Z(e.getFullYear()%100,t,2)}function WI(e,t){return Z(e.getFullYear()%1e4,t,4)}function GI(e,t){var n=e.getDay();return e=n>=4||n===0?MF(e):MF.ceil(e),Z(e.getFullYear()%1e4,t,4)}function KI(e){var t=e.getTimezoneOffset();return(t>0?`-`:(t*=-1,`+`))+Z(t/60|0,`0`,2)+Z(t%60,`0`,2)}function qI(e,t){return Z(e.getUTCDate(),t,2)}function JI(e,t){return Z(e.getUTCHours(),t,2)}function YI(e,t){return Z(e.getUTCHours()%12||12,t,2)}function XI(e,t){return Z(1+TF.count(KF(e),e),t,3)}function ZI(e,t){return Z(e.getUTCMilliseconds(),t,3)}function QI(e,t){return ZI(e,t)+`000`}function $I(e,t){return Z(e.getUTCMonth()+1,t,2)}function eL(e,t){return Z(e.getUTCMinutes(),t,2)}function tL(e,t){return Z(e.getUTCSeconds(),t,2)}function nL(e){var t=e.getUTCDay();return t===0?7:t}function rL(e,t){return Z(IF.count(KF(e)-1,e),t,2)}function iL(e){var t=e.getUTCDay();return t>=4||t===0?BF(e):BF.ceil(e)}function aL(e,t){return e=iL(e),Z(BF.count(KF(e),e)+(KF(e).getUTCDay()===4),t,2)}function oL(e){return e.getUTCDay()}function sL(e,t){return Z(LF.count(KF(e)-1,e),t,2)}function cL(e,t){return Z(e.getUTCFullYear()%100,t,2)}function lL(e,t){return e=iL(e),Z(e.getUTCFullYear()%100,t,2)}function uL(e,t){return Z(e.getUTCFullYear()%1e4,t,4)}function dL(e,t){var n=e.getUTCDay();return e=n>=4||n===0?BF(e):BF.ceil(e),Z(e.getUTCFullYear()%1e4,t,4)}function fL(){return`+0000`}function pL(){return`%`}function mL(e){return+e}function hL(e){return Math.floor(e/1e3)}var gL,_L;vL({dateTime:`%x, %X`,date:`%-m/%-d/%Y`,time:`%-I:%M:%S %p`,periods:[`AM`,`PM`],days:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],shortDays:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],months:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],shortMonths:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`]});function vL(e){return gL=$F(e),_L=gL.format,gL.parse,gL.utcFormat,gL.utcParse,gL}function yL(e){return new Date(e)}function bL(e){return e instanceof Date?+e:+new Date(+e)}function xL(e,t,n,r,i,a,o,s,c,l){var u=rF(),d=u.invert,f=u.domain,p=l(`.%L`),m=l(`:%S`),h=l(`%I:%M`),g=l(`%I %p`),_=l(`%a %d`),v=l(`%b %d`),y=l(`%B`),b=l(`%Y`);function x(e){return(c(e)<e?p:s(e)<e?m:o(e)<e?h:a(e)<e?g:r(e)<e?i(e)<e?_:v:n(e)<e?y:b)(e)}return u.invert=function(e){return new Date(d(e))},u.domain=function(e){return arguments.length?f(Array.from(e,bL)):f().map(yL)},u.ticks=function(t){var n=f();return e(n[0],n[n.length-1],t??10)},u.tickFormat=function(e,t){return t==null?x:l(t)},u.nice=function(e){var n=f();return(!e||typeof e.range!=`function`)&&(e=t(n[0],n[n.length-1],e??10)),e?f(sF(n,e)):u},u.copy=function(){return tF(u,xL(e,t,n,r,i,a,o,s,c,l))},u}function SL(){return VP.apply(xL(JF,YF,GF,UF,OF,wF,SF,bF,yF,_L).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function CL(e){return function(){return e}}var wL=Math.abs,TL=Math.atan2,EL=Math.cos,DL=Math.max,OL=Math.min,kL=Math.sin,AL=Math.sqrt,jL=Math.PI,ML=jL/2,NL=2*jL;function PL(e){return e>1?0:e<-1?jL:Math.acos(e)}function FL(e){return e>=1?ML:e<=-1?-ML:Math.asin(e)}function IL(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{let e=Math.floor(n);if(!(e>=0))throw RangeError(`invalid digits: ${n}`);t=e}return e},()=>new GN(t)}function LL(e){return e.innerRadius}function RL(e){return e.outerRadius}function zL(e){return e.startAngle}function BL(e){return e.endAngle}function VL(e){return e&&e.padAngle}function HL(e,t,n,r,i,a,o,s){var c=n-e,l=r-t,u=o-i,d=s-a,f=d*c-u*l;if(!(f*f<1e-12))return f=(u*(t-a)-d*(e-i))/f,[e+f*c,t+f*l]}function UL(e,t,n,r,i,a,o){var s=e-n,c=t-r,l=(o?a:-a)/AL(s*s+c*c),u=l*c,d=-l*s,f=e+u,p=t+d,m=n+u,h=r+d,g=(f+m)/2,_=(p+h)/2,v=m-f,y=h-p,b=v*v+y*y,x=i-a,S=f*h-m*p,C=(y<0?-1:1)*AL(DL(0,x*x*b-S*S)),w=(S*y-v*C)/b,T=(-S*v-y*C)/b,E=(S*y+v*C)/b,D=(-S*v+y*C)/b,O=w-g,k=T-_,A=E-g,j=D-_;return O*O+k*k>A*A+j*j&&(w=E,T=D),{cx:w,cy:T,x01:-u,y01:-d,x11:w*(i/x-1),y11:T*(i/x-1)}}function WL(){var e=LL,t=RL,n=CL(0),r=null,i=zL,a=BL,o=VL,s=null,c=IL(l);function l(){var l,u,d=+e.apply(this,arguments),f=+t.apply(this,arguments),p=i.apply(this,arguments)-ML,m=a.apply(this,arguments)-ML,h=wL(m-p),g=m>p;if(s||=l=c(),f<d&&(u=f,f=d,d=u),!(f>1e-12))s.moveTo(0,0);else if(h>NL-1e-12)s.moveTo(f*EL(p),f*kL(p)),s.arc(0,0,f,p,m,!g),d>1e-12&&(s.moveTo(d*EL(m),d*kL(m)),s.arc(0,0,d,m,p,g));else{var _=p,v=m,y=p,b=m,x=h,S=h,C=o.apply(this,arguments)/2,w=C>1e-12&&(r?+r.apply(this,arguments):AL(d*d+f*f)),T=OL(wL(f-d)/2,+n.apply(this,arguments)),E=T,D=T,O,k;if(w>1e-12){var A=FL(w/d*kL(C)),j=FL(w/f*kL(C));(x-=A*2)>1e-12?(A*=g?1:-1,y+=A,b-=A):(x=0,y=b=(p+m)/2),(S-=j*2)>1e-12?(j*=g?1:-1,_+=j,v-=j):(S=0,_=v=(p+m)/2)}var M=f*EL(_),N=f*kL(_),P=d*EL(b),F=d*kL(b);if(T>1e-12){var I=f*EL(v),L=f*kL(v),R=d*EL(y),z=d*kL(y),B;if(h<jL){if(B=HL(M,N,R,z,I,L,P,F)){var V=M-B[0],ee=N-B[1],te=I-B[0],ne=L-B[1],re=1/kL(PL((V*te+ee*ne)/(AL(V*V+ee*ee)*AL(te*te+ne*ne)))/2),ie=AL(B[0]*B[0]+B[1]*B[1]);E=OL(T,(d-ie)/(re-1)),D=OL(T,(f-ie)/(re+1))}else E=D=0}}S>1e-12?D>1e-12?(O=UL(R,z,M,N,f,D,g),k=UL(I,L,P,F,f,D,g),s.moveTo(O.cx+O.x01,O.cy+O.y01),D<T?s.arc(O.cx,O.cy,D,TL(O.y01,O.x01),TL(k.y01,k.x01),!g):(s.arc(O.cx,O.cy,D,TL(O.y01,O.x01),TL(O.y11,O.x11),!g),s.arc(0,0,f,TL(O.cy+O.y11,O.cx+O.x11),TL(k.cy+k.y11,k.cx+k.x11),!g),s.arc(k.cx,k.cy,D,TL(k.y11,k.x11),TL(k.y01,k.x01),!g))):(s.moveTo(M,N),s.arc(0,0,f,_,v,!g)):s.moveTo(M,N),!(d>1e-12)||!(x>1e-12)?s.lineTo(P,F):E>1e-12?(O=UL(P,F,I,L,d,-E,g),k=UL(M,N,R,z,d,-E,g),s.lineTo(O.cx+O.x01,O.cy+O.y01),E<T?s.arc(O.cx,O.cy,E,TL(O.y01,O.x01),TL(k.y01,k.x01),!g):(s.arc(O.cx,O.cy,E,TL(O.y01,O.x01),TL(O.y11,O.x11),!g),s.arc(0,0,d,TL(O.cy+O.y11,O.cx+O.x11),TL(k.cy+k.y11,k.cx+k.x11),g),s.arc(k.cx,k.cy,E,TL(k.y11,k.x11),TL(k.y01,k.x01),!g))):s.arc(0,0,d,b,y,g)}if(s.closePath(),l)return s=null,l+``||null}return l.centroid=function(){var n=(+e.apply(this,arguments)+ +t.apply(this,arguments))/2,r=(+i.apply(this,arguments)+ +a.apply(this,arguments))/2-jL/2;return[EL(r)*n,kL(r)*n]},l.innerRadius=function(t){return arguments.length?(e=typeof t==`function`?t:CL(+t),l):e},l.outerRadius=function(e){return arguments.length?(t=typeof e==`function`?e:CL(+e),l):t},l.cornerRadius=function(e){return arguments.length?(n=typeof e==`function`?e:CL(+e),l):n},l.padRadius=function(e){return arguments.length?(r=e==null?null:typeof e==`function`?e:CL(+e),l):r},l.startAngle=function(e){return arguments.length?(i=typeof e==`function`?e:CL(+e),l):i},l.endAngle=function(e){return arguments.length?(a=typeof e==`function`?e:CL(+e),l):a},l.padAngle=function(e){return arguments.length?(o=typeof e==`function`?e:CL(+e),l):o},l.context=function(e){return arguments.length?(s=e??null,l):s},l}Array.prototype.slice;function GL(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function KL(e){this._context=e}KL.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t)}}};function qL(e){return new KL(e)}function JL(e){return e[0]}function YL(e){return e[1]}function XL(e,t){var n=CL(!0),r=null,i=qL,a=null,o=IL(s);e=typeof e==`function`?e:e===void 0?JL:CL(e),t=typeof t==`function`?t:t===void 0?YL:CL(t);function s(s){var c,l=(s=GL(s)).length,u,d=!1,f;for(r??(a=i(f=o())),c=0;c<=l;++c)!(c<l&&n(u=s[c],c,s))===d&&((d=!d)?a.lineStart():a.lineEnd()),d&&a.point(+e(u,c,s),+t(u,c,s));if(f)return a=null,f+``||null}return s.x=function(t){return arguments.length?(e=typeof t==`function`?t:CL(+t),s):e},s.y=function(e){return arguments.length?(t=typeof e==`function`?e:CL(+e),s):t},s.defined=function(e){return arguments.length?(n=typeof e==`function`?e:CL(!!e),s):n},s.curve=function(e){return arguments.length?(i=e,r!=null&&(a=i(r)),s):i},s.context=function(e){return arguments.length?(e==null?r=a=null:a=i(r=e),s):r},s}function ZL(e,t,n){var r=null,i=CL(!0),a=null,o=qL,s=null,c=IL(l);e=typeof e==`function`?e:e===void 0?JL:CL(+e),t=typeof t==`function`?t:CL(t===void 0?0:+t),n=typeof n==`function`?n:n===void 0?YL:CL(+n);function l(l){var u,d,f,p=(l=GL(l)).length,m,h=!1,g,_=Array(p),v=Array(p);for(a??(s=o(g=c())),u=0;u<=p;++u){if(!(u<p&&i(m=l[u],u,l))===h){if(h=!h)d=u,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),f=u-1;f>=d;--f)s.point(_[f],v[f]);s.lineEnd(),s.areaEnd()}}h&&(_[u]=+e(m,u,l),v[u]=+t(m,u,l),s.point(r?+r(m,u,l):_[u],n?+n(m,u,l):v[u]))}if(g)return s=null,g+``||null}function u(){return XL().defined(i).curve(o).context(a)}return l.x=function(t){return arguments.length?(e=typeof t==`function`?t:CL(+t),r=null,l):e},l.x0=function(t){return arguments.length?(e=typeof t==`function`?t:CL(+t),l):e},l.x1=function(e){return arguments.length?(r=e==null?null:typeof e==`function`?e:CL(+e),l):r},l.y=function(e){return arguments.length?(t=typeof e==`function`?e:CL(+e),n=null,l):t},l.y0=function(e){return arguments.length?(t=typeof e==`function`?e:CL(+e),l):t},l.y1=function(e){return arguments.length?(n=e==null?null:typeof e==`function`?e:CL(+e),l):n},l.lineX0=l.lineY0=function(){return u().x(e).y(t)},l.lineY1=function(){return u().x(e).y(n)},l.lineX1=function(){return u().x(r).y(t)},l.defined=function(e){return arguments.length?(i=typeof e==`function`?e:CL(!!e),l):i},l.curve=function(e){return arguments.length?(o=e,a!=null&&(s=o(a)),l):o},l.context=function(e){return arguments.length?(e==null?a=s=null:s=o(a=e),l):a},l}function QL(e){return e<0?-1:1}function $L(e,t,n){var r=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(r||i<0&&-0),o=(n-e._y1)/(i||r<0&&-0),s=(a*i+o*r)/(r+i);return(QL(a)+QL(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(s))||0}function eR(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function tR(e,t,n){var r=e._x0,i=e._y0,a=e._x1,o=e._y1,s=(a-r)/3;e._context.bezierCurveTo(r+s,i+s*t,a-s,o-s*n,a,o)}function nR(e){this._context=e}nR.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:tR(this,this._t0,eR(this,this._t0))}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,e!==this._x1||t!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,tR(this,eR(this,n=$L(this,e,t)),n);break;default:tR(this,this._t0,n=$L(this,e,t))}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}},Object.create(nR.prototype).point=function(e,t){nR.prototype.point.call(this,t,e)};function rR(e){return new nR(e)}function iR(e,t){this._context=e,this._t=t}iR.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}}this._x=e,this._y=t}};function aR(e){return new iR(e,1)}function oR(e,t,n){this.k=e,this.x=t,this.y=n}oR.prototype={constructor:oR,scale:function(e){return e===1?this:new oR(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new oR(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return`translate(`+this.x+`,`+this.y+`) scale(`+this.k+`)`}};var sR=new oR(1,0,0);cR.prototype=oR.prototype;function cR(e){for(;!e.__zoom;)if(!(e=e.parentNode))return sR;return e.__zoom}function lR(e,t=15){let n=e.split(` `),r=[],i=[],a=0;return n.forEach(e=>{a+e.length>t?(i.length&&r.push(i.join(` `)),i=[e],a=e.length):(i.push(e),a+=e.length+ +(i.length>0))}),i.length&&r.push(i.join(` `)),r}var uR={DECISIVE:20,ROUTINE:50},dR=new Set([`WALKOVER`,`DOUBLE_WALKOVER`,`DEFAULTED`,`DOUBLE_DEFAULT`]),fR={COMPETITIVE:`#16a34a`,ROUTINE:`#3b82f6`,DECISIVE:`#8e44ad`,WALKOVER:`#6b7280`},pR=`#cfd8dc`,mR=`COMPETITIVE`,hR=`ROUTINE`,gR=`DECISIVE`,_R=`WALKOVER`;function vR(e,t=uR){if(!e?.length)return;let n=[0,0],r=[0,0];for(let t of e)n[0]+=t.side1Score||0,n[1]+=t.side2Score||0,r[0]+=t.side1TiebreakScore||0,r[1]+=t.side2TiebreakScore||0;r[0]+r[1]&&(n[r[0]>r[1]?0:1]+=1);let i=Math.max(n[0],n[1]);if(i===0)return;let a=Math.round(Math.min(n[0],n[1])/i*100);return Number.isNaN(a)?_R:a<=t.DECISIVE?gR:a<=t.ROUTINE?hR:mR}function yR(e,n=uR){if(e)return vR(t.scoreGovernor.parseScoreString({scoreString:e}),n)}function bR({winningSide:e,matchUpStatus:t,sets:n,scoreString:r,bands:i}){if(t&&dR.has(t))return _R;if(e)return n?.length?vR(n,i):yR(r,i)}function xR(e,t){return e?t?.[e]??fR[e]:pR}var{WILDCARD:SR,QUALIFIER:CR,LUCKY_LOSER:wR}=t.entryStatusConstants,TR=`text-anchor`,ER=`dominant-baseline`,DR=`fill-opacity`,OR=Object.assign({},...t.fixtures.countries.filter(e=>e.ioc).map(e=>({[e.ioc]:e.iso2})),...t.fixtures.countries.filter(e=>e.iso).map(e=>({[e.iso]:e.iso2})));function kR(e){let t=Math.floor(e.length/2),n=e.slice(0,t),r=e.slice(t).reverse();return[...n,...r]}function AR(e){if(e)switch(e){case SR:return`WC`;case CR:return`Q`;case wR:return`LL`;default:return e}}function jR(e,t){let n=[];for(let r of e)for(let e of r.sides){let i=r.matchUpStatus===`BYE`&&!e.participantName;n.push({name:e.participantName||(i?`BYE`:``),participantName:e.participantName||(i?`BYE`:void 0),drawPosition:e.drawPosition,seedNumber:e.seedNumber,entryStatus:AR(e.entryStatus),nationalityCode:e.nationalityCode,matchUp:r,depth:t,value:1})}return n}function MR(e,t){let n=e.winningSide!==void 0&&e.winningSide!==null?e.sides.find(t=>t.sideNumber===e.winningSide):void 0;!n&&e.matchUpStatus===`BYE`&&(n=e.sides.find(e=>e.participantName));let r=n?.participantName,i=r?t.get(r):void 0;return{winnerName:r,winnerSide:n,winnerLookup:i}}function NR(e,t,n,r){return e.map((e,i)=>{let a=i*2,o=[t[a],t[a+1]].filter(Boolean),{winnerName:s,winnerSide:c,winnerLookup:l}=MR(e,r);return{name:s||``,participantName:s,drawPosition:l?.drawPosition??c?.drawPosition,seedNumber:c?.seedNumber??l?.seedNumber,entryStatus:AR(c?.entryStatus)??l?.entryStatus,nationalityCode:c?.nationalityCode??l?.nationalityCode,scoreString:e.scoreString,matchUpStatus:e.matchUpStatus,competitiveness:e.competitiveness,matchUp:e,depth:n,children:o.length>0?o:void 0}})}function PR(e){let{roundMatchUps:t}=e,n=Object.keys(t).map(Number).sort((e,t)=>e-t);if(n.length===0)throw Error(`No round data found in draw`);let r=t[n[0]],i=kR(jR(r,n.length)),a=new Map;for(let e of i)e.participantName&&e.participantName!==`BYE`&&a.set(e.participantName,e);let o=NR(kR(r),i,n.length-1,a);for(let e=1;e<n.length;e++)o=NR(kR(t[n[e]]),o,n.length-1-e,a);return o.length===1?o[0]:{name:`Tournament`,depth:0,children:o}}function FR(e,t){if(!e)return;let{seedNumber:n,entryStatus:r,drawPosition:i,participantName:a}=e,o;if(a?.trim().toUpperCase()===`BYE`)o=`#B0BEC5`;else if(n){let e=Number(n),t=oF().domain([1,32]).range([`0`,`1`]);o=oF().domain(AO(0,1,1/7)).range([`#81D4FA`,`#42A5F5`,`#1E88E5`,`#1565C0`,`#5C6BC0`,`#673AB7`,`#9C27B0`])(Number(t(e)))}else if(r?.toUpperCase()===`WC`)o=`red`;else if(r&&(r===`Q`||r===`LL`))o=oF().domain(AO(0,1,1/3)).range([`#FFF176`,`#FBC02D`,`#FF9800`])(t(i));else{let e=[`#C8E6C9`,`#81C784`,`#66BB6A`,`#4CAF50`,`#43A047`,`#388E3C`,`#2E7D32`,`#1B5E20`,`#A5D6A7`,`#90CAF9`,`#64B5F6`,`#42A5F5`,`#2196F3`,`#1E88E5`,`#1976D2`,`#1565C0`];o=oF().domain(AO(0,1,1/e.length)).range(e)(t(i))}e.color=o,e.children&&e.children.forEach(n=>{n.participantName===e.participantName&&(n.color=o),FR(n,t)})}function IR(e,t){e&&(e.competitivenessColor=e.children?.length&&e.competitiveness?xR(e.competitiveness,t):pR,e.children?.forEach(e=>IR(e,t)))}function LR(e,t){let n=[];return e.seedNumber?n.push(`Seed ${e.seedNumber}`):e.entryStatus&&n.push(e.entryStatus),t===7&&e.drawPosition&&n.push(`Draw ${e.drawPosition}`),n.length>0?n.join(` • `):void 0}function RR(e,t){let n=e.find(e=>e.data.participantName&&e.data.participantName!==t);return n?.data.participantName?n.data:void 0}function zR(e,t){let n=[e.participantName],r;if(t.children&&t.children.length>0)e.scoreString&&n.push(e.scoreString),r=RR(t.children,e.participantName),r&&n.push(r.participantName);else{let r=LR(e,t.depth);r&&n.push(r)}return{messageLines:n,opponentData:r}}function BR(e,t){return-(e*t/2)+t/2}function VR(e,t,n){let r=YA(e).append(`svg`).attr(`width`,t).attr(`height`,n).style(`display`,`block`),i=r.append(`g`).attr(`transform`,`translate(${t/2}, ${n/2})`);return{svg:r,g:i,flagsGroup:i.append(`g`).attr(`class`,`flags-group`),winningFlagsGroup:i.append(`g`).attr(`class`,`winning-flags-group`),losingFlagsGroup:i.append(`g`).attr(`class`,`losing-flags-group`)}}function HR(e,t,n,r,i){let a=e.append(`text`).attr(`x`,t/2).attr(`y`,n/2).attr(TR,`middle`).attr(ER,`middle`).attr(`font-size`,`${r}px`).attr(`font-weight`,`bold`).style(`fill`,`var(--chc-text-primary, #333)`).attr(`pointer-events`,`none`),o=r+i*.5;return{centerText:a,centerText2:e.append(`text`).attr(`x`,t/2).attr(`y`,n/2+o).attr(TR,`middle`).attr(ER,`middle`).attr(`font-size`,`${i}px`).style(`fill`,`var(--chc-text-secondary, #666)`).attr(`pointer-events`,`none`)}}function UR(e,t,n,r,i,a,o){n&&(i?(t.flagsGroup.selectAll(`text`).remove(),t.winningFlagsGroup.selectAll(`text`).remove(),t.losingFlagsGroup.selectAll(`text`).remove()):e.selectAll(`text`).remove(),e.append(`text`).attr(`font-size`,`${o}px`).attr(TR,`middle`).attr(ER,`middle`).attr(`transform`,`translate(0, ${r*a})`).text(qR(n)))}function WR(e,n,r,i={}){let a=i.width||800,o=i.height||800,s=Math.min(a,o)/800*(i.textScaleFactor??1),c=28*s,l=24*s,u=30*s,d=r||i.title||`Tournament`,f=Object.assign({},...t.fixtures.countries.filter(e=>e.label).map(e=>({[e.ioc]:e.label})));if(!Object.keys(n?.roundMatchUps??{}).length)return{highlightPlayer:()=>0,hide:()=>void 0,setColorMode:()=>void 0};let p=PR(n),m=jP(p,e=>e.children).sum(e=>e.value||0),h=Math.min(a,o)/2,g=h/2,_=e=>e*h/200;BP().size([2*Math.PI,h-g])(m),FR(p,oF().domain([0,n.drawSize||128]).range([0,1])),IR(p,i.competitivenessColors);let v=i.colorMode??`default`,y=e=>v===`competitiveness`?e.competitivenessColor||`#cfd8dc`:e.color||`#ccc`,b=m.descendants(),x=WL().startAngle(e=>e.x0).endAngle(e=>e.x1).innerRadius(e=>e.y0+g).outerRadius(e=>e.y1+g),{svg:S,g:C,flagsGroup:w,winningFlagsGroup:T,losingFlagsGroup:E}=VR(e,a,o),D=new Set,O=e=>{e.nationalityCode&&D.add(e.nationalityCode),e.children&&e.children.forEach(O)};O(p);let k=Array.from(D),{centerText:A,centerText2:j}=HR(S,a,o,c,l);function M(){let e=lR(d,15);A.text(``),A.selectAll(`tspan`).remove(),j.text(``),j.selectAll(`tspan`).remove(),A.selectAll(`tspan`).data(e).join(`tspan`).attr(`x`,a/2).attr(`dy`,(e,t)=>t===0?0:u).text(e=>e);let t=-(e.length*u/2)+u/2;A.attr(`y`,o/2+t),A.style(`display`,`block`),j.style(`display`,`none`)}function N(){if(w.selectAll(`text`).remove(),T.selectAll(`text`).remove(),E.selectAll(`text`).remove(),k.length===0)return;let e=oF().domain([0,k.length]).range([0,Math.PI*2]),t=_(20),n=g-t+10;w.selectAll(`text`).data(k).join(`text`).attr(`font-size`,`${t}px`).attr(TR,`middle`).attr(ER,`middle`).attr(`transform`,(t,r)=>{let i=e(r);return`translate(${Math.cos(i)*n}, ${Math.sin(i)*n})`}).text(e=>qR(e)).style(`cursor`,`pointer`).on(`mouseover`,function(e,t){let n=f[t]||t;A.selectAll(`tspan`).remove(),A.attr(`y`,o/2),A.text(n).style(`display`,`block`),j.selectAll(`tspan`).remove(),j.text(``).style(`display`,`none`),F||C.selectAll(`path`).attr(DR,e=>e.data.nationalityCode===t?.9:.3)}).on(`mouseout`,function(){F||C.selectAll(`path`).attr(DR,.8),M()})}N(),M();let P=i.eventHandlers?.clickCenter;P&&C.insert(`circle`,`:first-child`).attr(`r`,g).attr(`fill`,`transparent`).style(`cursor`,`pointer`).on(`click`,P);let F=!1,I;function L(e,t){let n=t.data;if(n.participantName){let{messageLines:e,opponentData:r}=zR(n,t);r&&(n.opponent=r),A.selectAll(`tspan`).remove(),A.text(``),A.selectAll(`tspan`).data(e).join(`tspan`).attr(`x`,a/2).attr(`dy`,(e,t)=>t===0?0:u).text(e=>e);let i=BR(e.length,u);A.attr(`y`,o/2+i),A.style(`display`,`block`),j.style(`display`,`none`)}F?n.participantName?.toLowerCase()!==I?.toLowerCase()&&YA(e.currentTarget).attr(DR,.9):C.selectAll(`path`).attr(DR,e=>e.data.participantName===t.data.participantName?.9:.3);let r=_(30),i=g-r-10,s={flagsGroup:w,winningFlagsGroup:T,losingFlagsGroup:E};UR(T,s,n.nationalityCode,-1,!0,i,r),n.opponent&&UR(E,s,n.opponent.nationalityCode,1,!1,i,r)}function R(e,t){if(F){let n=t.data.participantName?.toLowerCase()===I?.toLowerCase();YA(e.currentTarget).attr(DR,n?1:.2)}else C.selectAll(`path`).attr(DR,.8);N(),M()}let z=i.eventHandlers?.clickSegment;function B(e,t){if(!z)return;let n=t.data;z({participantName:n.participantName,drawPosition:n.drawPosition,seedNumber:n.seedNumber,entryStatus:n.entryStatus,nationalityCode:n.nationalityCode,scoreString:n.scoreString,matchUpStatus:n.matchUpStatus,competitiveness:n.competitiveness,roundName:n.roundName,depth:n.depth,matchUp:n.matchUp})}let V=C.selectAll(`path`).data(b).join(`path`).attr(`d`,e=>x(e)).attr(`fill`,e=>y(e.data)).attr(DR,.8).attr(`stroke`,`#fff`).attr(`stroke-width`,1).on(`mouseover`,L).on(`mouseout`,R);z&&V.style(`cursor`,`pointer`).on(`click`,B),V.append(`title`).text(e=>{let t=e.data;if(t.participantName){let e=[t.participantName,`Draw: ${t.drawPosition||`N/A`}`];return t.competitiveness&&e.push(`Competitiveness: ${t.competitiveness}`),e.join(`
|
|
215
|
+
`)}return`${t.name}\nDepth: ${e.depth}`});function ee(e){let t=0;return F=!!e,I=e,C.selectAll(`path`).attr(DR,n=>e?n.data.participantName?.toLowerCase()===e.toLowerCase()?(t+=1,1):.2:.8),t}function te(e){S.style(`display`,e?`none`:`block`)}function ne(e){v=e,C.selectAll(`path`).attr(`fill`,e=>y(e.data))}return{highlightPlayer:ee,hide:te,setColorMode:ne}}function GR(e={}){return{render:(t,n,r)=>WR(t,n,r,e)}}function KR(e){return e?.length===2?e&&String.fromCodePoint!==void 0?e.toUpperCase().replaceAll(/./g,e=>String.fromCodePoint((e.codePointAt(0)??0)+127397)):e:``}function qR(e){return KR(OR[e]||e)}var{LUCKY_LOSER:JR,WILDCARD:YR,QUALIFIER:XR}=t.entryStatusConstants,{WIN_RATIO:ZR,ROUND_OUTCOME:QR,MAIN:$R,CONTAINER:ez}=t.drawDefinitionConstants;function tz(e){return e?.finishingPosition===QR&&e?.structureType!==ez}function nz(e){return e?.finishingPosition===ZR||e?.structureType===ez}function rz(e){if(!e?.length)return;let t=e.filter(tz);if(t.length)return t.find(e=>e.stage===$R)??t[0]}function iz(e){if(nz(e))return{drawSize:0,roundMatchUps:{}};let t={};for(let[n,r]of Object.entries(e.roundMatchUps))t[Number(n)]=r.map(e=>({...e,winningSide:e.winningSide,drawPositions:e.drawPositions||[],competitiveness:bR({winningSide:e.winningSide,matchUpStatus:e.matchUpStatus,sets:e.score?.sets}),scoreString:e.winningSide===1?e.score?.scoreStringSide1:e.winningSide===2?e.score?.scoreStringSide2:void 0,sides:(e.sides||[]).map(e=>({sideNumber:e.sideNumber,drawPosition:e.drawPosition,participantName:e.participant?.participantName,nationalityCode:e.participant?.person?.nationalityCode,seedNumber:e.seedNumber,entryStatus:e.participant?.entryStatus}))}));return{drawSize:(t[1]?.length||0)*2,roundMatchUps:t,seedAssignments:e.seedAssignments}}var az={LL:JR,WC:YR,Q:XR},oz=[`R128`,`R64`,`R32`,`R16`,`QF`,`SF`,`F`];function sz(e){let t=cz(e);if(t.length===0)return{drawSize:0,roundMatchUps:{}};let n=t[0].data,r=n.length,i=lz(n),a=uz(t,e),o={};o[1]=fz(n,a,t);for(let e=1;e<t.length;e++)o[e+1]=pz(e,t,a,i);return{drawSize:r,roundMatchUps:o}}function cz(e){let t=[],n=!1;for(let r of oz){let i=e[r];i&&i.length>0&&(n=!0),n&&i&&i.length>0&&t.push({key:r,data:i})}return t}function lz(e){let t=new Map;return e.forEach((e,n)=>{let r=mz(e.player);r&&r!==`BYE`&&t.set(r,{drawPosition:e.Draw??n+1,country:e.country,seed:e.seed,entry:e.entry})}),t}function uz(e,t){let n=new Map;for(let r=0;r<e.length;r++){let i=r+1<e.length?e[r+1].data:t.W||[],a=new Set;for(let e of i){let t=mz(e.player);t&&a.add(t)}n.set(e[r].key,a)}return n}function dz(e,t,n){if(e===`BYE`||t===`BYE`)return e===`BYE`?2:1;if(n.has(e))return 1;if(n.has(t))return 2}function fz(e,t,n){let r=[],i=t.get(n[0].key)||new Set;for(let t=0;t<e.length;t+=2){let a=e[t],o=e[t+1],s=mz(a?.player),c=mz(o?.player),l=s===`BYE`||c===`BYE`,u=dz(s,c,i),d;if(!l&&n.length>1){let e=n[1].data,t=u===1?s:c;d=e.find(e=>mz(e.player)===t)?.score}let f=l?`BYE`:u?`COMPLETED`:`TO_BE_PLAYED`;r.push({roundNumber:1,matchUpStatus:f,winningSide:u,drawPositions:[a?.Draw??t+1,o?.Draw??t+2],competitiveness:bR({winningSide:u,matchUpStatus:f,scoreString:d}),scoreString:d,sides:[gz(1,a,t+1),gz(2,o,t+2)]})}return r}function pz(e,t,n,r){let i=e+1,a=t[e].data,o=n.get(t[e].key)||new Set,s=[];for(let e=0;e<a.length;e+=2){let t=a[e],n=a[e+1],c=mz(t?.player),l=mz(n?.player),u=o.has(c)?1:o.has(l)?2:void 0,d=(u===1?t:u===2?n:void 0)?.score,f=u?`COMPLETED`:`TO_BE_PLAYED`;s.push({roundNumber:i,matchUpStatus:f,winningSide:u,drawPositions:[r.get(c)?.drawPosition??0,r.get(l)?.drawPosition??0],competitiveness:bR({winningSide:u,matchUpStatus:f,scoreString:d}),scoreString:d,sides:[_z(1,t,r),_z(2,n,r)]})}return s}function mz(e){if(!e)return``;let t=e.trim();return t.toUpperCase()===`BYE`?`BYE`:t}function hz(e){if(e)return az[e.toUpperCase()]||e}function gz(e,t,n){if(!t)return{sideNumber:e,drawPosition:n};let r=mz(t.player);return{sideNumber:e,drawPosition:t.Draw??n,participantName:r||void 0,nationalityCode:t.country||void 0,seedNumber:t.seed?Number(t.seed):void 0,entryStatus:hz(t.entry)}}function _z(e,t,n){if(!t)return{sideNumber:e,drawPosition:0};let r=mz(t.player),i=n.get(r);return{sideNumber:e,drawPosition:i?.drawPosition??0,participantName:r||void 0,nationalityCode:t.country||i?.country||void 0,seedNumber:t.seed?Number(t.seed):i?.seed?Number(i.seed):void 0,entryStatus:hz(t.entry||i?.entry)}}var vz=480,yz=200,bz=280,xz={top:12,right:12,bottom:28,left:32},Sz={top:12,right:12,bottom:12,left:12},Cz=.6,wz=.9,Tz=`http://www.w3.org/2000/svg`,Ez=`middle`,Dz=`text-anchor`,Oz=`dominant-baseline`,kz=[`var(--chc-rating-low, #5b8ff9)`,`var(--chc-rating-high, #00b894)`];function Az(e,t,n){let r=document.createElementNS(Tz,`svg`);return r.setAttribute(`width`,String(e)),r.setAttribute(`height`,String(t)),r.setAttribute(`viewBox`,`0 0 ${e} ${t}`),r.setAttribute(`class`,`chc-rating-distribution-chart`),n&&r.setAttribute(`aria-label`,n),r}function jz(e,t,n){return n<=1||t/(n-1)<.5?kz[0]:kz[1]}function Mz(e,t,n,r){return r?r(e,t):jz(e,t,n)}function Nz(e){return`${e.binStart.toFixed(1)}–${e.binEnd.toFixed(1)}`}function Pz(e){let{stats:t,width:n,height:r,margin:i,showAxis:a,showCounts:o,showMean:s,binColor:c,ariaLabel:l}=e,u=Az(n,r,l),d=YA(u).append(`g`).attr(`class`,`chc-rdc-histogram`).attr(`transform`,`translate(${i.left}, ${i.top})`),f=Math.max(0,n-i.left-i.right),p=Math.max(0,r-i.top-i.bottom);if(t.histogram.length===0||f===0||p===0)return u;let m=WP().domain(t.histogram.map(Nz)).range([0,f]).padding(.12),h=oF().domain([0,kO(t.histogram,e=>e.count)??0]).nice().range([p,0]),g=t.histogram.length;if(d.selectAll(`rect.chc-rdc-bar`).data(t.histogram).enter().append(`rect`).attr(`class`,`chc-rdc-bar`).attr(`x`,e=>m(Nz(e))??0).attr(`y`,e=>h(e.count)).attr(`width`,m.bandwidth()).attr(`height`,e=>p-h(e.count)).attr(`fill`,(e,t)=>Mz(e,t,g,c)).append(`title`).text(e=>`${Nz(e)}: ${e.count}`),o&&d.selectAll(`text.chc-rdc-count`).data(t.histogram).enter().append(`text`).attr(`class`,`chc-rdc-count`).attr(`x`,e=>(m(Nz(e))??0)+m.bandwidth()/2).attr(`y`,e=>h(e.count)-4).attr(Dz,Ez).attr(`font-size`,`11`).attr(`fill`,`var(--chc-rdc-count-color, var(--chc-text-primary, #111827))`).text(e=>e.count>0?String(e.count):``),a){let e=t.histogram.map(Nz),n=f/g>=55?e:[e[0],e.at(-1)].filter((e,t,n)=>n.indexOf(e)===t);d.append(`g`).attr(`class`,`chc-rdc-axis`).attr(`transform`,`translate(0, ${p})`).call(UO(m).tickValues(n).tickSize(0)).call(e=>e.select(`.domain`).remove()).call(e=>e.selectAll(`text`).attr(`font-size`,`10`).attr(`dy`,`0.9em`))}if(s&&Number.isFinite(t.mean)&&t.histogram.length>0){let e=t.histogram[0],n=t.histogram.at(-1),r=(t.mean-e.binStart)/(n.binEnd-e.binStart);if(r>=0&&r<=1){let e=r*f;d.append(`line`).attr(`class`,`chc-rdc-mean`).attr(`x1`,e).attr(`x2`,e).attr(`y1`,0).attr(`y2`,p).attr(`stroke`,`var(--chc-rating-mean, #d63031)`).attr(`stroke-dasharray`,`4 3`).attr(`stroke-width`,1.5)}}return u}function Fz(e,t,n,r){return[e+n*Math.sin(r),t-n*Math.cos(r)]}function Iz(e,t,n,r,i,a){let[o,s]=Fz(e,t,n,i),[c,l]=Fz(e,t,n,a),[u,d]=Fz(e,t,r,a),[f,p]=Fz(e,t,r,i),m=+(a-i>Math.PI);return[`M ${o} ${s}`,`A ${n} ${n} 0 ${m} 1 ${c} ${l}`,`L ${u} ${d}`,`A ${r} ${r} 0 ${m} 0 ${f} ${p}`,`Z`].join(` `)}function Lz(e){let{stats:t,size:n,margin:r,showCounts:i,binColor:a,ariaLabel:o}=e,s=Az(n,n,o);if(t.histogram.length===0||t.count===0)return s;let c=(n-Math.max(r.left+r.right,r.top+r.bottom))/2,l=n/2,u=n/2,d=c*wz,f=c*Cz,p=0,m=t.histogram.length;for(let e=0;e<m;e++){let n=t.histogram[e];if(n.count===0)continue;let r=n.count/t.count*2*Math.PI,o=p,c=p+r,h=document.createElementNS(Tz,`path`);if(h.setAttribute(`class`,`chc-rdc-slice`),h.setAttribute(`d`,Iz(l,u,d,f,o,c)),h.setAttribute(`fill`,Mz(n,e,m,a)),s.appendChild(h),i){let e=o+r/2,[t,i]=Fz(l,u,(d+f)/2,e),a=document.createElementNS(Tz,`text`);a.setAttribute(`class`,`chc-rdc-slice-label`),a.setAttribute(`x`,String(t)),a.setAttribute(`y`,String(i)),a.setAttribute(Dz,Ez),a.setAttribute(Oz,Ez),a.setAttribute(`font-size`,`11`),a.setAttribute(`fill`,`var(--chc-rating-label, #2d3436)`),a.textContent=String(n.count),s.appendChild(a)}p=c}let h=document.createElementNS(Tz,`text`);return h.setAttribute(`class`,`chc-rdc-center-count`),h.setAttribute(`x`,String(l)),h.setAttribute(`y`,String(u)),h.setAttribute(Dz,Ez),h.setAttribute(Oz,Ez),h.setAttribute(`font-size`,`20`),h.setAttribute(`font-weight`,`600`),h.textContent=String(t.count),s.appendChild(h),s}function Rz(e,t={}){let n=t.mode??`HISTOGRAM`,r=t.ariaLabel??`Participant rating distribution`;return n===`DONUT`?Lz({stats:e,size:t.width??t.height??bz,margin:t.margin??Sz,showCounts:t.showCounts??!0,binColor:t.binColor,ariaLabel:r}):Pz({stats:e,width:t.width??vz,height:t.height??yz,margin:t.margin??xz,showAxis:t.showAxis??!0,showCounts:t.showCounts??!0,showMean:t.showMean??!0,binColor:t.binColor,ariaLabel:r})}var zz=`http://www.w3.org/2000/svg`,Bz={top:36,right:16,bottom:28,left:56},Vz=600,Hz=260,Uz=6,Wz=8;function Gz(e,t){let n=document.createElementNS(zz,`svg`);n.classList.add(`lc-svg`),e.appendChild(n);let r={container:e,svg:n,config:{...t},destroyed:!1};return Kz(r),{element:n,update(e){r.destroyed||(r.config={...r.config,...e},Kz(r))},destroy(){r.destroyed||(r.destroyed=!0,n.parentNode===e&&e.removeChild(n))}}}function Kz(e){let{svg:t,container:n,config:r}=e,i={...Bz,...r.margins||{}},a=n.clientWidth||Vz,o=r.width??a,s=r.height??Hz;for(;t.firstChild;)t.removeChild(t.firstChild);t.setAttribute(`width`,String(o)),t.setAttribute(`height`,String(s)),t.setAttribute(`viewBox`,`0 0 ${o} ${s}`);let c=Math.max(0,o-i.left-i.right),l=Math.max(0,s-i.top-i.bottom),u=(r.data||[]).map(e=>({...e,_dateValue:e.date instanceof Date?e.date:new Date(e.date),_rung:Math.max(0,Math.min(r.rungs.length-1,e.rung))})).filter(e=>!Number.isNaN(e._dateValue.getTime())).sort((e,t)=>e._dateValue.getTime()-t._dateValue.getTime());if(r.title){let e=document.createElementNS(zz,`text`);e.setAttribute(`class`,`lc-title`),e.setAttribute(`x`,String(i.left)),e.setAttribute(`y`,String(Math.max(16,i.top-12))),e.textContent=r.title,t.appendChild(e)}if(!u.length){let e=document.createElementNS(zz,`text`);e.setAttribute(`class`,`lc-empty`),e.setAttribute(`x`,String(o/2)),e.setAttribute(`y`,String(s/2)),e.setAttribute(`text-anchor`,`middle`),e.textContent=`No data`,t.appendChild(e);return}let d=gO(u,e=>e._dateValue),f=Math.max(3,(d[1].getTime()-d[0].getTime())/864e5*.04),p=new Date(d[0].getTime()-f*864e5),m=new Date(d[1].getTime()+f*864e5),h=SL().domain([p,m]).range([0,c]),g=KP().domain([...r.rungs].reverse()).range([0,l]).padding(.5),_=document.createElementNS(zz,`g`);_.setAttribute(`transform`,`translate(${i.left},${i.top})`),t.appendChild(_);let v=document.createElementNS(zz,`g`);v.setAttribute(`class`,`lc-axis lc-axis-y`),_.appendChild(v),YA(v).call(WO(g).tickSize(-c).tickPadding(8));let y=document.createElementNS(zz,`g`);y.setAttribute(`class`,`lc-axis lc-axis-x`),y.setAttribute(`transform`,`translate(0,${l})`),_.appendChild(y);let b=d[1].getFullYear()-d[0].getFullYear()>=1?`%Y`:`%b`,x=r.xTickFormat??b;if(YA(y).call(UO(h).ticks(r.xMaxTicks??Wz).tickFormat(_L(x))),r.showConnector!==!1&&u.length>1){let e=XL().x(e=>h(e._dateValue)).y(e=>g(r.rungs[e._rung])??0).curve(aR),t=document.createElementNS(zz,`path`);t.setAttribute(`class`,`lc-connector`),t.setAttribute(`d`,e(u)||``),r.connectorColor&&(t.style.stroke=r.connectorColor),_.appendChild(t)}let S=document.createElementNS(zz,`g`);S.setAttribute(`class`,`lc-marks`),_.appendChild(S);for(let e of u){let t=h(e._dateValue),n=g(r.rungs[e._rung])??0,i=e.radius??r.markRadius??Uz,a=document.createElementNS(zz,`circle`);if(a.setAttribute(`class`,`lc-mark`),a.setAttribute(`cx`,String(t)),a.setAttribute(`cy`,String(n)),a.setAttribute(`r`,String(i)),(e.color||r.markColor)&&(a.style.fill=e.color??r.markColor),e.label){let t=[e.label,e.detail].filter(Boolean).join(` — `);a.setAttribute(`aria-label`,t);let n=document.createElementNS(zz,`title`);n.textContent=t,a.appendChild(n)}r.onMarkClick&&(a.style.cursor=`pointer`,a.addEventListener(`click`,t=>r.onMarkClick(e,t))),r.onMarkHover&&(a.addEventListener(`mouseenter`,t=>r.onMarkHover(e,t)),a.addEventListener(`mouseleave`,e=>r.onMarkHover(null,e))),S.appendChild(a)}if(r.source){let e=document.createElementNS(zz,`text`);e.setAttribute(`class`,`lc-source`),e.setAttribute(`x`,String(o-i.right)),e.setAttribute(`y`,String(s-6)),e.setAttribute(`text-anchor`,`end`),e.textContent=`Source: ${r.source}`,t.appendChild(e)}}var qz=`http://www.w3.org/2000/svg`,Jz=`text-anchor`,Yz=`dominant-baseline`,Xz=`class`,Zz=`middle`,Qz=520,$z=240,eB={top:16,right:64,bottom:28,left:44},tB=5,nB=3;function rB(e,t,n){let r=n-t;if(n>=3){if(r===1)return`F`;if(r===2)return`SF`;if(r===3)return`QF`}return`R${t+1}`}function iB(e,t){let n=document.createElementNS(qz,e);return t&&n.setAttribute(Xz,t),n}function aB(e){let t=Math.round(e);return t>0?`+${t}`:String(t)}function oB(e,t){if(t)return t;let n=[];for(let t of e)for(let e of[t.projected.expected,t.projected.low,t.projected.high,t.actual])e!=null&&n.push(e);if(!n.length)return[-100,100];let r=Math.max(Math.abs(Math.min(...n)),Math.abs(Math.max(...n)),50)*1.15;return[-r,r]}function sB(e,t){let n=t.width??Qz,r=t.height??$z,i=t.margin??(t.spark?{top:6,right:6,bottom:6,left:6}:eB),a=Math.max(1,n-i.left-i.right),o=Math.max(1,r-i.top-i.bottom),s=oF().domain([0,Math.max(1,e.length-1)]).range([0,a]),c=oB(e,t.yDomain),l=oF().domain(c).range([o,0]);return{x:e=>s(e),y:e=>l(e),yDomain:c,innerWidth:a,innerHeight:o,margin:i}}function cB(e,t,n){let r=t.map((e,t)=>({point:e,index:t})).filter(({point:e})=>e.projected.low!==null&&e.projected.high!==null);if(r.length<2)return;let i=ZL().x(({index:e})=>n.x(e)).y0(({point:e})=>n.y(e.projected.low)).y1(({point:e})=>n.y(e.projected.high)),a=iB(`path`,`chc-pc__band`);a.setAttribute(`d`,i(r)??``),e.appendChild(a)}function lB({group:e,points:t,geometry:n,className:r,accessor:i}){let a=t.map((e,t)=>({point:e,index:t})).filter(({point:e})=>i(e)!==null);if(a.length<2)return;let o=XL().x(({index:e})=>n.x(e)).y(({point:e})=>n.y(i(e))),s=iB(`path`,r);s.setAttribute(`d`,o(a)??``),e.appendChild(s)}function uB(e){return xR(e)}function dB({group:e,points:t,geometry:n,radius:r,onHover:i}){t.forEach((t,a)=>{if(t.actual===null)return;let o=iB(`circle`,t.won===!1?`chc-pc__marker chc-pc__marker--lost`:`chc-pc__marker`);o.setAttribute(`cx`,String(n.x(a))),o.setAttribute(`cy`,String(n.y(t.actual))),o.setAttribute(`r`,String(r)),o.setAttribute(`fill`,uB(t.competitiveness));let s=document.createElementNS(qz,`title`);s.textContent=`Round ${t.roundNumber}: ${aB(t.actual)} · ${t.competitiveness??`unclassified`}`,o.appendChild(s),i&&(o.addEventListener(`mouseenter`,e=>i(t,a,e)),o.addEventListener(`mousemove`,e=>i(t,a,e))),e.appendChild(o)})}function fB({group:e,geometry:t}){let[n,r]=t.yDomain,i=pB(Math.max(Math.abs(n),Math.abs(r)));for(let a of[-i,i]){if(a<n||a>r)continue;let i=iB(`line`,`chc-pc__tick`);i.setAttribute(`x1`,`0`),i.setAttribute(`x2`,String(t.innerWidth)),i.setAttribute(`y1`,String(t.y(a))),i.setAttribute(`y2`,String(t.y(a))),e.appendChild(i);let o=iB(`text`,`chc-pc__tick-label`);o.setAttribute(`x`,`-6`),o.setAttribute(`y`,String(t.y(a))),o.setAttribute(Jz,`end`),o.setAttribute(Yz,Zz),o.textContent=aB(a),e.appendChild(o)}}function pB(e){if(!Number.isFinite(e)||e<=0)return 1;let t=e/2,n=10**Math.floor(Math.log10(t)),r=t/n;return(r>=5&&5||r>=2&&2||1)*n}function mB({group:e,points:t,geometry:n,options:r}){let i=iB(`line`,`chc-pc__zero`);if(i.setAttribute(`x1`,`0`),i.setAttribute(`x2`,String(n.innerWidth)),i.setAttribute(`y1`,String(n.y(0))),i.setAttribute(`y2`,String(n.y(0))),e.appendChild(i),r.spark)return;fB({group:e,geometry:n});let a=iB(`text`,`chc-pc__axis-label`);a.setAttribute(`x`,String(n.innerWidth+6)),a.setAttribute(`y`,String(n.y(0))),a.setAttribute(Yz,Zz),a.textContent=`even`,e.appendChild(a);let o=r.roundLabels??rB;t.forEach((r,i)=>{let a=iB(`text`,`chc-pc__round-label`);if(a.setAttribute(`x`,String(n.x(i))),a.setAttribute(`y`,String(n.innerHeight+16)),a.setAttribute(Jz,Zz),a.textContent=o(r.roundNumber,i,t.length),e.appendChild(a),r.bye){let t=iB(`text`,`chc-pc__bye`);t.setAttribute(`x`,String(n.x(i))),t.setAttribute(`y`,String(n.y(0)-8)),t.setAttribute(Jz,Zz),t.textContent=`bye`,e.appendChild(t)}});let s=iB(`text`,`chc-pc__axis-label`);s.setAttribute(`x`,`0`),s.setAttribute(`y`,`-4`),s.textContent=r.scaleName?`opponent strength vs own (${r.scaleName}, ELO-equivalent)`:`opponent strength vs own`,e.appendChild(s)}function hB({group:e,points:t,geometry:n}){let r=[...t].reverse().find(e=>e.projected.expected!==null),i=[...t].reverse().find(e=>e.actual!==null);if(r){let i=t.indexOf(r),a=iB(`text`,`chc-pc__series-label`);a.setAttribute(`x`,String(n.x(i)+8)),a.setAttribute(`y`,String(n.y(r.projected.expected))),a.setAttribute(Yz,Zz),a.setAttribute(`fill`,`var(--chc-pc-projected)`),a.textContent=`projected`,e.appendChild(a)}if(i){let r=t.indexOf(i),a=r<t.length-1,o=iB(`text`,`chc-pc__series-label`);o.setAttribute(`x`,String(n.x(r)+8)),o.setAttribute(`y`,String(n.y(i.actual)+(a?-12:0))),o.setAttribute(Yz,Zz),o.textContent=`actual`,e.appendChild(o)}}function gB(){let e=document.createElement(`div`);e.className=`chc-pc__legend`;for(let[t,n]of[[`chc-pc__legend-swatch chc-pc__legend-swatch--band`,`possible opponents`],[`chc-pc__legend-swatch chc-pc__legend-swatch--projected`,`projected`],[`chc-pc__legend-swatch chc-pc__legend-swatch--line`,`actual`]]){let r=document.createElement(`span`);r.className=`chc-pc__legend-item`;let i=document.createElement(`span`);i.className=t,r.append(i,document.createTextNode(n)),e.appendChild(r)}for(let t of[`COMPETITIVE`,`ROUTINE`,`DECISIVE`]){let n=document.createElement(`span`);n.className=`chc-pc__legend-item`;let r=document.createElement(`span`);r.className=`chc-pc__legend-swatch`,r.style.background=xR(t),n.append(r,document.createTextNode(t.toLowerCase())),e.appendChild(n)}return e}function _B(){let e=document.createElement(`div`);return e.className=`chc-pc__tooltip`,e.dataset.visible=`false`,e}function vB(e,t){let n=document.createElement(`div`);n.className=`chc-pc__tooltip-row`;let r=document.createElement(`span`);r.textContent=e;let i=document.createElement(`span`);return i.textContent=t,n.append(r,i),n}function yB(e,t){e.replaceChildren();let n=document.createElement(`div`);n.className=`chc-pc__tooltip-title`,n.textContent=`Round ${t.roundNumber}`,e.appendChild(n),t.actual!==null&&e.appendChild(vB(`faced`,aB(t.actual))),t.competitiveness&&e.appendChild(vB(`scoreline`,t.competitiveness.toLowerCase())),t.won!==void 0&&e.appendChild(vB(`result`,t.won?`won`:`lost`)),t.projected.expected!==null&&e.appendChild(vB(`projected`,aB(t.projected.expected))),t.projected.low!==null&&t.projected.high!==null&&e.appendChild(vB(`range`,`${aB(t.projected.low)} … ${aB(t.projected.high)}`)),e.appendChild(vB(`reach`,`${Math.round(t.reachProbability*100)}%`))}function bB(e){let t=document.createElement(`div`);return t.className=`chc-pc__empty`,t.textContent=e,t}function xB(e,t,n={}){let r=document.createElement(`div`);r.className=`chc-pc`,e.appendChild(r);let i=_B();function a(e,t){r.replaceChildren();let n=e?.points??[];if(!e||!n.length||!e.rating){r.appendChild(bB(t.emptyMessage??`No rating data for this draw, so no pressure to plot.`));return}let a=t.width??Qz,o=t.height??$z,s=sB(n,t),c=iB(`svg`,`chc-pc__svg`);c.setAttribute(`width`,String(a)),c.setAttribute(`height`,String(o)),c.setAttribute(`viewBox`,`0 0 ${a} ${o}`),c.setAttribute(`role`,`img`),c.setAttribute(`aria-label`,t.ariaLabel??`Projected and actual opponent difficulty by round for ${e.participantName??e.participantId}`);let l=iB(`g`);l.setAttribute(`transform`,`translate(${s.margin.left}, ${s.margin.top})`),c.appendChild(l),cB(l,n,s),mB({group:l,points:n,geometry:s,options:t}),lB({group:l,points:n,geometry:s,className:`chc-pc__projected-line`,accessor:e=>e.projected.expected}),lB({group:l,points:n,geometry:s,className:`chc-pc__actual-line`,accessor:e=>e.actual}),dB({group:l,points:n,geometry:s,radius:t.spark?nB:tB,onHover:t.spark?void 0:(e,t,n)=>{yB(i,e),i.dataset.visible=`true`,i.style.left=`${n.offsetX+12}px`,i.style.top=`${n.offsetY+12}px`}}),t.spark||hB({group:l,points:n,geometry:s}),r.appendChild(c),t.spark||(r.appendChild(i),t.showLegend!==!1&&r.appendChild(gB()),r.addEventListener(`mouseleave`,()=>{i.dataset.visible=`false`}))}return a(t,n),{element:r,update:(e,t)=>a(e,{...n,...t}),destroy:()=>{YA(r).remove()}}}var SB={NO_MATCHUPS:`NO_MATCHUPS`,NOT_ELIMINATION:`NOT_ELIMINATION`,NO_RATINGS:`NO_RATINGS`};function CB(e){return{participantId:e?.participant?.participantId??e?.participantId,participant:e?.participant,drawPosition:e?.drawPosition,bye:!!e?.bye}}function wB(e){let t=e?.roundNumber,n=e?.roundPosition;if(typeof t!=`number`||typeof n!=`number`)return null;let r=Array.isArray(e.sides)?e.sides:[],i=r.find(e=>e?.sideNumber===1)??r[0],a=r.find(e=>e?.sideNumber===2)??r[1];return{matchUpId:e.matchUpId,roundNumber:t,roundPosition:n,sides:[CB(i),CB(a)],winningSide:e.winningSide,matchUpStatus:e.matchUpStatus,raw:e}}function TB(e){if(!Array.isArray(e)||!e.length)return{unsupported:SB.NO_MATCHUPS};let t=new Map;for(let n of e){let e=wB(n);if(!e)continue;let r=t.get(e.roundNumber)??new Map;r.set(e.roundPosition,e),t.set(e.roundNumber,r)}let n=[...t.keys()].toSorted((e,t)=>e-t);if(!n.length)return{unsupported:SB.NOT_ELIMINATION};let r=n[0];for(let e=1;e<n.length;e+=1){let r=t.get(n[e-1])?.size??0,i=t.get(n[e])?.size??0;if(n[e]!==n[e-1]+1||i*2!==r)return{unsupported:SB.NOT_ELIMINATION}}return n.length===1&&(t.get(r)?.size??0)>1?{unsupported:SB.NOT_ELIMINATION}:{graph:{roundNumbers:n,byRound:t,firstRound:r}}}function EB(e){return[e*2-1,e*2]}function DB(e){return e.matchUpStatus===`BYE`||e.sides.some(e=>e.bye)}var{ELO:OB}=t.ratingConstants,kB=`SINGLES`,AB=`DOUBLES`;function jB(){return t.fixtures?.ratingsParameters??{}}function MB({value:e,sourceRange:t,targetRange:n}){if(!Array.isArray(t)||t.length!==2||!Array.isArray(n)||n.length!==2)return 0;let r=Math.min(...t),i=Math.max(...t),a=Math.min(...n),o=Math.max(...n);return i===r?a:(e-r)*(o-a)/(i-r)+a}function NB({scaleName:e,value:t}){if(typeof t!=`number`||Number.isNaN(t))return;if(e===OB)return t;let n=e?jB()[e]?.range:void 0;if(!n)return;let r=jB()[OB]?.range;if(r)return MB({value:n[0]>n[1]?n[0]-t:t,sourceRange:n,targetRange:r})}function PB(e){if(typeof e==`number`)return Number.isNaN(e)?void 0:e;if(typeof e!=`string`||!e.trim())return;let t=Number.parseFloat(e);return Number.isNaN(t)?void 0:t}function FB(e,t){let n=PB(t);if(n!==void 0)return n;if(!t||typeof t!=`object`)return;let r=jB()[e],i=[r?.accessor,...r?.accessors??[]].filter(Boolean);for(let e of i){let n=PB(t[e]);if(n!==void 0)return n}}function IB({participant:e,matchUpType:t,preferredScaleName:n}){let r=t===AB?AB:kB,i=e?.ratings?.[r];if(!Array.isArray(i)||!i.length)return null;let a=(n&&i.find(e=>e?.scaleName===n))??i.find(e=>typeof e?.scaleName==`string`);if(!a?.scaleName)return null;let o=FB(a.scaleName,a.scaleValue);if(o===void 0)return null;let s=NB({scaleName:a.scaleName,value:o});return s===void 0?null:{elo:s,scaleName:a.scaleName,sourceValue:o}}function LB(e){let t=new Map;for(let n of e)n&&t.set(n.scaleName,(t.get(n.scaleName)??0)+1);if(t.size)return[...t.entries()].toSorted((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0],`en`))[0][0]}function RB(e,t,n){let r=n?.divisor??400;return r?1/(1+10**((t-e)/r)):.5}function zB(e,t,n){return e===null||t===null?.5:RB(e,t,n)}function BB(e){return e.sides.map(e=>e.bye?void 0:e.participantId)}function VB(e,t){let n=new Map,[r,i]=BB(e);if(t.respectResults&&e.winningSide){let t=BB(e)[e.winningSide-1];return t&&n.set(t,1),n}if(r&&!i)n.set(r,1);else if(i&&!r)n.set(i,1);else if(r&&i){let e=zB(t.eloOf.get(r)??null,t.eloOf.get(i)??null,t.model);n.set(r,e),n.set(i,1-e)}return n}function HB(e,t,n){if(!t.size)return 1;let r=0;for(let[i,a]of t)r+=a*zB(n.eloOf.get(e)??null,n.eloOf.get(i)??null,n.model);return r}function UB(e,t,n){let r=new Map;if(!e.size)return new Map(t);if(!t.size)return new Map(e);for(let[i,a]of e)r.set(i,a*HB(i,t,n));for(let[i,a]of t)r.set(i,a*HB(i,e,n));return r}function WB(e,t,n){if(n.respectResults&&e.winningSide){let t=BB(e)[e.winningSide-1];if(t)return new Map([[t,1]])}return UB(t[0],t[1],n)}function GB(e,t){let n=new Map;for(let r of e.roundNumbers){let i=e.byRound.get(r),a=new Map;if(i){for(let[o,s]of i){if(r===e.firstRound){a.set(o,VB(s,t));continue}let i=n.get(r-1),[c,l]=EB(o),u=[i?.get(c)??new Map,i?.get(l)??new Map];a.set(o,WB(s,u,t))}n.set(r,a)}}return n}function KB({opponents:e,context:t,names:n,rangeThreshold:r}){let i=0,a=0,o=[],s=[];for(let[c,l]of e){let e=t.eloOf.get(c)??null;s.push({participantId:c,participantName:n.get(c),probability:l,elo:e}),e!==null&&(i+=l,a+=l*e,l>=r&&o.push(e))}return{expectedOpponentElo:i?a/i:null,opponentEloRange:o.length?[Math.min(...o),Math.max(...o)]:null,possibleOpponentCount:e.size,possibleOpponents:s.toSorted((e,t)=>t.probability-e.probability||e.participantId.localeCompare(t.participantId,`en`))}}function qB({graph:e,winners:t,roundNumber:n,feederPosition:r}){if(n===e.firstRound)return new Map;let i=r%2==1?r+1:r-1;return t.get(n-1)?.get(i)??new Map}function JB(e,t){let n=new Map;for(let r of e.sides)!r.bye&&r.participantId&&r.participantId!==t&&n.set(r.participantId,1);return n}function YB({participantId:e,entryMatchUp:t,graph:n,winners:r,context:i,ratings:a,names:o,rangeThreshold:s}){let c=a.get(e)??null,l=[],u=t.roundPosition,d=u,f=1;for(let t of n.roundNumbers){let a=n.byRound.get(t)?.get(u),p=t===n.firstRound&&!!a&&DB(a),m=KB({opponents:t===n.firstRound&&a?JB(a,e):qB({graph:n,winners:r,roundNumber:t,feederPosition:d}),context:i,names:o,rangeThreshold:s}),h=m.expectedOpponentElo!==null&&c?m.expectedOpponentElo-c.elo:null;l.push({roundNumber:t,reachProbability:f,expectedSignedDelta:h,resolved:m.possibleOpponentCount===1,bye:p,...m}),f=r.get(t)?.get(u)?.get(e)??0,d=u,u=Math.ceil(u/2)}return{participantId:e,participantName:t.sides.find(t=>t.participantId===e)?.participant?.participantName,drawPosition:t.sides.find(t=>t.participantId===e)?.drawPosition,rating:c,rounds:l,pathDifficulty:XB(l),slotDifficulty:ZB(l),expectedMatchesPlayed:l.reduce((e,t)=>e+(t.bye?0:t.reachProbability),0)}}function XB(e){let t=0,n=0;for(let r of e)r.bye||r.expectedSignedDelta===null||(t+=r.reachProbability,n+=r.reachProbability*r.expectedSignedDelta);return t?n/t:null}function ZB(e){let t=e.filter(e=>!e.bye&&e.expectedSignedDelta!==null).map(e=>e.expectedSignedDelta);return t.length?t.reduce((e,t)=>e+t,0)/t.length:null}function QB(e){let t=new Map,n=e.byRound.get(e.firstRound);if(!n)return t;for(let e of n.values())for(let n of e.sides)!n.bye&&n.participantId&&t.set(n.participantId,e);return t}function $B(e){let{graph:t,unsupported:n}=TB(e.matchUps);if(!t)return{projections:[],unsupported:n,unratedCount:0};let r=QB(t);if(!r.size)return{projections:[],unsupported:SB.NO_MATCHUPS,unratedCount:0};let i=new Map,a=new Map,o=new Map;for(let[t,n]of r){let r=n.sides.find(e=>e.participantId===t),s=IB({participant:r?.participant,matchUpType:e.matchUpType,preferredScaleName:e.scaleName});i.set(t,s),a.set(t,s?.elo??null),o.set(t,r?.participant?.participantName)}let s=[...i.values()].filter(e=>!e).length;if(s===i.size)return{projections:[],unsupported:SB.NO_RATINGS,unratedCount:s};let c={eloOf:a,model:e.model,respectResults:!!e.respectResults},l=GB(t,c),u=e.rangeThreshold??.01;return{projections:[...r.entries()].map(([e,n])=>YB({participantId:e,entryMatchUp:n,graph:t,winners:l,context:c,ratings:i,names:o,rangeThreshold:u})).toSorted((e,t)=>(e.drawPosition??0)-(t.drawPosition??0)),scaleName:LB([...i.values()]),unratedCount:s}}function eV(e){return e.raw?.competitiveProfile?.competitiveness||bR({winningSide:e.winningSide,matchUpStatus:e.matchUpStatus,sets:e.raw?.score?.sets,scoreString:e.raw?.score?.scoreStringSide1})}function tV(e,t){return IB({participant:e?.participant,matchUpType:t.matchUpType,preferredScaleName:t.scaleName})}function nV({matchUp:e,participantId:t,ownElo:n,params:r}){let i=e.sides.findIndex(e=>e.participantId===t),a=e.sides[1-i],o=DB(e),s=!!e.winningSide,c=(o||!s?null:tV(a,r))?.elo??null;return{roundNumber:e.roundNumber,matchUpId:e.matchUpId,opponentParticipantId:o?void 0:a?.participantId,opponentParticipantName:o?void 0:a?.participant?.participantName,opponentElo:c,signedDelta:c!==null&&n!==null?c-n:null,competitiveness:o||!s?void 0:eV(e),won:s?e.winningSide===i+1:void 0,bye:o}}function rV(e){let{graph:t}=TB(e.matchUps);if(!t)return[];let n=new Map,r=new Map;for(let i of t.byRound.values())for(let t of i.values())for(let i of t.sides){if(i.bye||!i.participantId)continue;let a=n.get(i.participantId)??[];a.push(t),n.set(i.participantId,a),r.has(i.participantId)||r.set(i.participantId,tV(i,e))}return[...n.entries()].map(([t,n])=>{let i=r.get(t)??null,a=n.toSorted((e,t)=>e.roundNumber-t.roundNumber).map(n=>nV({matchUp:n,participantId:t,ownElo:i?.elo??null,params:e})),o=a.filter(e=>!e.bye&&e.signedDelta!==null);return{participantId:t,rating:i,rounds:a,facedDifficulty:o.length?o.reduce((e,t)=>e+t.signedDelta,0)/o.length:null,matchesPlayed:a.filter(e=>!e.bye&&e.won!==void 0).length}})}function iV(e){let t=$B(e);if(!t.projections.length)return{series:[],projection:t,scaleName:t.scaleName,unratedCount:t.unratedCount};let n=new Map(rV({matchUps:e.matchUps,matchUpType:e.matchUpType,scaleName:e.scaleName}).map(e=>[e.participantId,e]));return{series:t.projections.map(e=>{let t=n.get(e.participantId),r=new Map((t?.rounds??[]).map(e=>[e.roundNumber,e])),i=e.rating?.elo??null,a=e.rounds.map(e=>{let t=r.get(e.roundNumber),n=e.opponentEloRange;return{roundNumber:e.roundNumber,projected:{expected:e.expectedSignedDelta,low:n&&i!==null?n[0]-i:null,high:n&&i!==null?n[1]-i:null},reachProbability:e.reachProbability,actual:t?.signedDelta??null,competitiveness:t?.competitiveness,won:t?.won,bye:e.bye||!!t?.bye,resolved:e.resolved}});return{participantId:e.participantId,participantName:e.participantName,drawPosition:e.drawPosition,rating:e.rating,pathDifficulty:e.pathDifficulty,slotDifficulty:e.slotDifficulty,facedDifficulty:t?.facedDifficulty??null,points:a}}),projection:t,scaleName:t.scaleName,unratedCount:t.unratedCount}}function aV(e){return e.toSorted((e,t)=>e.slotDifficulty===null&&t.slotDifficulty===null?(e.participantName??``).localeCompare(t.participantName??``,`en`,{numeric:!0}):e.slotDifficulty===null?1:t.slotDifficulty===null?-1:t.slotDifficulty-e.slotDifficulty)}var oV=150,sV=64;function cV(e){return oB(e.flatMap(e=>e.points))}function lV({series:e,options:t,chartOptions:n}){let r=document.createElement(`div`);r.className=`chc-psm__cell`,r.dataset.participantId=e.participantId;let i=document.createElement(`div`);return i.className=`chc-psm__label`,i.textContent=e.participantName??e.participantId,i.title=i.textContent,r.appendChild(i),xB(r,e,n),t.onSelect&&(r.classList.add(`is-clickable`),r.setAttribute(`role`,`button`),r.tabIndex=0,r.addEventListener(`click`,()=>t.onSelect?.(e)),r.addEventListener(`keydown`,n=>{(n.key===`Enter`||n.key===` `)&&(n.preventDefault(),t.onSelect?.(e))})),r}function uV(e,t=[],n={}){let r=document.createElement(`div`);r.className=`chc-psm`,e.appendChild(r);function i(e,t){r.replaceChildren();let n=aV(e).filter(e=>e.rating);if(!n.length){let e=document.createElement(`div`);e.className=`chc-pc__empty`,e.textContent=t.emptyMessage??`No rating data for this draw, so no pressure to plot.`,r.appendChild(e);return}let i=cV(n),a=document.createElement(`div`);a.className=`chc-psm__grid`;let o=t.limit?n.slice(0,t.limit):n;for(let e of o)a.appendChild(lV({series:e,options:t,chartOptions:{spark:!0,yDomain:i,width:t.cellWidth??oV,height:t.cellHeight??sV,scaleName:t.scaleName}}));r.appendChild(a);let s=document.createElement(`div`);s.className=`chc-psm__caption`;let c=e.length-n.length,l=[`hardest slot first · shared scale`];o.length<n.length&&l.push(`${n.length-o.length} of ${n.length} not shown`),c>0&&l.push(`${c} unrated omitted`),s.textContent=l.join(` · `),r.appendChild(s)}return i(t,n),{element:r,update:(e,t)=>i(e,{...n,...t})}}var dV=22,fV=460,pV=132,mV=3;function hV(e){if(e===null)return`—`;let t=Math.round(e);return t>0?`+${t}`:String(t)}function gV({series:e,options:t,scale:n,midpoint:r,barWidth:i}){let a=document.createElement(`div`);a.className=`chc-pdb__row`,a.dataset.participantId=e.participantId,a.style.height=`${t.rowHeight??dV}px`;let o=document.createElement(`span`);o.className=`chc-pdb__label`,o.style.width=`${t.labelWidth??pV}px`,o.textContent=e.participantName??e.participantId,o.title=o.textContent;let s=document.createElement(`span`);s.className=`chc-pdb__track`,s.style.width=`${i}px`;let c=document.createElement(`span`);if(c.className=`chc-pdb__zero`,c.style.left=`${r}px`,s.appendChild(c),e.slotDifficulty!==null){let t=n(e.slotDifficulty),i=document.createElement(`span`);i.className=e.slotDifficulty>=0?`chc-pdb__bar chc-pdb__bar--up`:`chc-pdb__bar chc-pdb__bar--down`,i.style.left=`${Math.min(r,t)}px`,i.style.width=`${Math.abs(t-r)}px`,i.style.borderRadius=e.slotDifficulty>=0?`0 ${mV}px ${mV}px 0`:`${mV}px 0 0 ${mV}px`,s.appendChild(i)}if(t.showActual&&e.facedDifficulty!==null){let t=document.createElement(`span`);t.className=`chc-pdb__actual`,t.style.left=`${n(e.facedDifficulty)}px`,t.title=`faced so far ${hV(e.facedDifficulty)}`,s.appendChild(t)}let l=document.createElement(`span`);return l.className=`chc-pdb__value`,l.textContent=hV(e.slotDifficulty),a.append(o,s,l),t.onSelect&&(a.classList.add(`is-clickable`),a.setAttribute(`role`,`button`),a.tabIndex=0,a.addEventListener(`click`,()=>t.onSelect?.(e)),a.addEventListener(`keydown`,n=>{(n.key===`Enter`||n.key===` `)&&(n.preventDefault(),t.onSelect?.(e))})),a}function _V(e,t=[],n={}){let r=document.createElement(`div`);r.className=`chc-pdb`,e.appendChild(r);function i(e,t){r.replaceChildren();let n=aV(e);if(!n.length){let e=document.createElement(`div`);e.className=`chc-pc__empty`,e.textContent=t.emptyMessage??`No rating data for this draw, so no path difficulty to rank.`,r.appendChild(e);return}let i=t.width??fV,a=t.labelWidth??pV,o=Math.max(40,i-a-52),s=o/2,c=n.flatMap(e=>[e.slotDifficulty,t.showActual?e.facedDifficulty:null]).filter(e=>e!==null),l=Math.max(...c.map(e=>Math.abs(e)),1),u=e=>s+e/l*(s-4),d=t.limit?n.slice(0,t.limit):n;for(let e of d)r.appendChild(gV({series:e,options:t,scale:u,midpoint:s,barWidth:o}));let f=document.createElement(`div`);f.className=`chc-pdb__caption`;let p=n.filter(e=>e.slotDifficulty===null).length,m=[`hardest slot first`];d.length<n.length&&m.push(`${n.length-d.length} of ${n.length} not shown`),p&&m.push(`${p} unrated`),f.textContent=m.join(` · `),r.appendChild(f)}return i(t,n),{element:r,update:(e,t)=>i(e,{...n,...t})}}var vV=[`Round`,`Projected`,`Range`,`Reach`,`Faced`,`Scoreline`,`Result`];function yV(e){if(e==null)return`—`;let t=Math.round(e);return t>0?`+${t}`:String(t)}function bV(e){return e.points.map(e=>{let t=e.projected.low!==null&&e.projected.high!==null?`${yV(e.projected.low)} … ${yV(e.projected.high)}`:`—`,n=`—`;return e.bye?n=`bye`:e.won!==void 0&&(n=e.won?`won`:`lost`),[`R${e.roundNumber}`,yV(e.projected.expected),t,`${Math.round(e.reachProbability*100)}%`,yV(e.actual),e.competitiveness?e.competitiveness.toLowerCase():`—`,n]})}function xV(e,t){let n=document.createElement(`table`);n.className=`chc-pc__table`;let r=document.createElement(`caption`);r.textContent=`Projected and actual opponent difficulty by round — ${t.participantName??t.participantId}`,n.appendChild(r);let i=document.createElement(`thead`),a=document.createElement(`tr`);for(let e of vV){let t=document.createElement(`th`);t.scope=`col`,t.textContent=e,a.appendChild(t)}i.appendChild(a),n.appendChild(i);let o=document.createElement(`tbody`);for(let e of bV(t)){let t=document.createElement(`tr`);e.forEach((e,n)=>{let r=document.createElement(n===0?`th`:`td`);n===0&&(r.scope=`row`),r.textContent=e,t.appendChild(r)}),o.appendChild(t)}return n.appendChild(o),e.appendChild(n),n}function SV(e){let t=e>>>0;return function(){t=t+1831565813>>>0;let e=t;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}}function CV(e,t){let n=SV(t),r=[...e];for(let e=r.length-1;e>0;e--){let t=Math.floor(n()*(e+1));[r[e],r[t]]=[r[t],r[e]]}return r}function wV(e,t){return t.filter((t,n)=>t===e[n]).length}function TV(e,t,n=32){if(e.length<2)return{items:[...e],seed:t,deranged:!1};let r;for(let i=0;i<n;i++){let n=t+i,a=CV(e,n),o=wV(e,a);if(o===0)return{items:a,seed:n,deranged:!0};(!r||o<r.fixed)&&(r={items:a,seed:n,fixed:o})}return r?{items:r.items,seed:r.seed,deranged:!1}:{items:CV(e,t),seed:t,deranged:!1}}function EV(e){let t=[];for(let n=2;n<e&&e%n===0;n*=2)t.push(n);return t}function DV(e){return e.toSorted((e,t)=>e.localeCompare(t,`en`)).join(`|`)}function OV(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(DV(e.slice(r,r+t)));return n}function kV(e,t,n){let r=new Set(OV(t,n));return OV(e,n).filter(e=>r.has(e)).length}function AV(e){return Math.floor(e*e/2)}function jV({guess:e,actual:t}){if(e.length!==t.length||new Set(e).size!==e.length)throw Error(`scoreDrawOrder: guess must be a permutation of actual`);let n=new Map(t.map((e,t)=>[e,t]));if(e.some(e=>!n.has(e)))throw Error(`scoreDrawOrder: guess contains a participantId absent from actual`);let r=t.length,i=e.map((e,t)=>{let r=n.get(e)??-1;return{slotIndex:t,participantId:e,actualIndex:r,correct:r===t}}),a=i.filter(e=>e.correct).length,o=i.reduce((e,t)=>e+Math.abs(t.slotIndex-t.actualIndex),0),s=AV(r),c=s>0?1-o/s:1,l=EV(r).map(n=>({blockSize:n,matched:kV(e,t,n),total:r/n})),u=l.reduce((e,t)=>e+t.matched,0),d=l.reduce((e,t)=>e+t.total,0);return{slots:r,exact:a,displacement:o,maxDisplacement:s,proximity:c,levels:l,blocksMatched:u,blocksTotal:d,structureScore:Math.round(d>0?100*u/d:100*c),structurePerfect:d>0&&u===d,perfect:a===r,slotResults:i}}function MV({actualOrder:e,seed:t}){let n=TV(e,t);return{actualOrder:[...e],order:n.items,seed:n.seed,deranged:n.deranged,revealed:!1,score:null,moves:0}}function NV(e,t){return Number.isInteger(t)&&t>=0&&t<e.order.length}function PV(e,t,n){if(e.revealed||t===n||!NV(e,t)||!NV(e,n))return e;let r=[...e.order],[i]=r.splice(t,1);return r.splice(n,0,i),{...e,order:r,moves:e.moves+1}}function FV(e,t,n){if(e.revealed||t===n||!NV(e,t)||!NV(e,n))return e;let r=[...e.order];return[r[t],r[n]]=[r[n],r[t]],{...e,order:r,moves:e.moves+1}}function IV(e){return e.revealed?e:{...e,revealed:!0,score:jV({guess:e.order,actual:e.actualOrder})}}function LV(e,t){return MV({actualOrder:e.actualOrder,seed:t})}var RV=[.25,.75];function zV(e,t){if(!e.length)return null;let n=e.reduce((e,t)=>e+t.weight,0);if(!(n>0))return e[0].value;let r=t*n,i=0;for(let t of e)if(i+=t.weight,i>=r)return t.value;return e[e.length-1].value}function BV(e,t=RV){let n=e.filter(e=>typeof e.elo==`number`).map(e=>({value:e.elo,weight:Math.max(0,e.probability)})).toSorted((e,t)=>e.value-t.value);if(!n.length)return null;let r=zV(n,t[0]),i=zV(n,t[1]);return r===null||i===null?null:{outerLow:n[0].value,outerHigh:n[n.length-1].value,innerLow:Math.min(r,i),innerHigh:Math.max(r,i)}}var VV={PROJECTED:`projected`,ACTUAL:`actual`},HV={HARD:`hard`,EASY:`easy`},UV=60;function WV(e,t){return t===VV.ACTUAL&&e.actual!==null&&e.actual!==void 0?{value:e.actual,fromActual:!0}:{value:e.projected.expected,fromActual:!1}}function GV({magnitude:e,bands:t=4,domainMax:n}){if(!(n>0)||!(e>0)||t<1)return{layers:[],clipped:!1};let r=n/t,i=[];for(let n=0;n<t;n++){let t=e-n*r;if(t<=0)break;i.push({bandIndex:n,fraction:Math.min(1,t/r)})}return{layers:i,clipped:e>n}}function KV(e,t){let n=e.flatMap(e=>e.points.map(e=>WV(e,t).value).filter(e=>e!==null).map(Math.abs));return n.length?Math.max(60,...n):60}function qV({point:e,ownElo:t,round:n}){if(t!==null&&n?.possibleOpponents?.length){let e=BV(n.possibleOpponents);if(e)return{outerLow:e.outerLow-t,outerHigh:e.outerHigh-t,innerLow:e.innerLow-t,innerHigh:e.innerHigh-t,weighted:!0}}let{low:r,high:i}=e.projected;return r===null||i===null?null:{outerLow:r,outerHigh:i,innerLow:r,innerHigh:i,weighted:!1}}function JV(e,t){return{roundNumber:e,value:null,direction:null,layers:[],clipped:!1,fromActual:!1,reachProbability:t?.reachProbability??0,bye:!!t?.bye,resolved:!!t?.resolved,spread:null}}function YV(e){return e>=0?HV.HARD:HV.EASY}function XV({roundNumber:e,point:t,source:n,bands:r,domainMax:i,ownElo:a,round:o}){if(!t||t.bye)return JV(e,t);let{value:s,fromActual:c}=WV(t,n);if(s===null)return JV(e,t);let{layers:l,clipped:u}=GV({magnitude:Math.abs(s),bands:r,domainMax:i});return{roundNumber:e,value:s,direction:YV(s),layers:l,clipped:u,fromActual:c,reachProbability:t.reachProbability,bye:!1,resolved:t.resolved,spread:qV({point:t,ownElo:a,round:o})}}function ZV(e){let t=new Map;for(let n of e?.projections??[])t.set(n.participantId,new Map(n.rounds.map(e=>[e.roundNumber,e])));return t}function QV({series:e,source:t=VV.PROJECTED,bands:n=4,domainMax:r,projection:i}){let a=[...new Set(e.flatMap(e=>e.points.map(e=>e.roundNumber)))].toSorted((e,t)=>e-t),o=r??KV(e,t),s=ZV(i),c=e.map(e=>{let r=new Map(e.points.map(e=>[e.roundNumber,e])),i=s.get(e.participantId);return{participantId:e.participantId,participantName:e.participantName,drawPosition:e.drawPosition,cells:a.map(a=>XV({roundNumber:a,point:r.get(a),source:t,bands:n,domainMax:o,ownElo:e.rating?.elo??null,round:i?.get(a)}))}});return{rows:c,roundNumbers:a,domainMax:o,bands:n,clippedCells:c.flatMap(e=>e.cells).filter(e=>e.clipped).length}}var $V=`http://www.w3.org/2000/svg`,eH=`class`,tH=`path`,nH=0,rH=1.5;function iH(e,t){let n=document.createElementNS($V,e);return t&&n.setAttribute(eH,t),n}function aH(e){let t=Math.round(e);return t>0?`+${t}`:String(t)}function oH(e){let t=e.layers.at(-1);return!t||!e.direction?`chc-ph__stop--none`:`chc-ph__stop--${e.direction}-${t.bandIndex}`}function sH(e,t,n,r){let i=iH(`linearGradient`);if(i.setAttribute(`id`,r),i.setAttribute(`gradientUnits`,`userSpaceOnUse`),i.setAttribute(`x1`,`0`),i.setAttribute(`y1`,`0`),i.setAttribute(`x2`,String(n)),i.setAttribute(`y2`,`0`),e.forEach((e,r)=>{let a=iH(`stop`,oH(e));a.setAttribute(`offset`,String(n>0?t(r)/n:0)),i.appendChild(a)}),e.length===1){let t=iH(`stop`,oH(e[0]));t.setAttribute(`offset`,`1`),i.appendChild(t)}return i}function cH(e,t,n){if(e.bye)return`${t}: bye`;if(e.value===null)return`${t}: no rated opponent`;let r=n?` ${n}-equivalent`:``,i=e.fromActual?`faced`:`projected`,a=e.spread?` · likely ${aH(e.spread.innerLow)} to ${aH(e.spread.innerHigh)}${e.spread.weighted?``:` (unweighted range)`}`:``,o=e.clipped?` · capped at the top band`:``;return`${t}: ${i} ${aH(e.value)}${r}${a}${o}`}function lH(e,t){let{width:n,height:r,domainMax:i,bands:a=4,positionBands:o=2,describe:s=!1,roundLabels:c,scaleName:l,showZeroLine:u=!0}=t,d=Math.max(1,e.cells.length),f=n/d,p=e=>(e+.5)*f,m=r/2,h=Math.max(1,r/2-rH),g=Math.max(1e-9,i/Math.max(1,a)*o),_=e=>m-Math.max(-1,Math.min(1,e/g))*h,v=iH(`svg`,`chc-ph__svg`);v.setAttribute(`width`,String(n)),v.setAttribute(`height`,String(r)),v.setAttribute(`viewBox`,`0 0 ${n} ${r}`),v.setAttribute(`role`,`img`),v.setAttribute(`aria-label`,t.ariaLabel??`Projected round-by-round path for ${e.participantName??e.participantId}`),nH+=1;let y=`chc-ph-grad-${nH}`,b=iH(`defs`);if(b.appendChild(sH(e.cells,p,n,y)),v.appendChild(b),u){let e=iH(`line`,`chc-ph__zero`);e.setAttribute(`x1`,`0`),e.setAttribute(`x2`,String(n)),e.setAttribute(`y1`,String(m)),e.setAttribute(`y2`,String(m)),v.appendChild(e)}let x=e.cells.map((e,t)=>({cell:e,index:t})),S=`url(#${y})`;for(let[e,t]of[[`outer`,`chc-ph__fan chc-ph__fan--outer`],[`inner`,`chc-ph__fan chc-ph__fan--inner`]]){let n=ZL().curve(rR).defined(e=>e.cell.spread!==null).x(e=>p(e.index)).y0(t=>_(e===`outer`?t.cell.spread?.outerLow??0:t.cell.spread?.innerLow??0)).y1(t=>_(e===`outer`?t.cell.spread?.outerHigh??0:t.cell.spread?.innerHigh??0))(x);if(!n)continue;let r=iH(tH,t);r.setAttribute(`d`,n),r.setAttribute(`fill`,S),v.appendChild(r)}let C=XL().curve(rR).defined(e=>e.cell.value!==null).x(e=>p(e.index)).y(e=>_(e.cell.value??0))(x);if(C){let e=iH(tH,`chc-ph__trace`);e.setAttribute(`d`,C),e.setAttribute(`stroke`,S),v.appendChild(e)}return s&&e.cells.forEach((e,t)=>{let n=iH(`rect`,`chc-ph__hit`);n.setAttribute(`x`,String(t*f)),n.setAttribute(`y`,`0`),n.setAttribute(`width`,String(f)),n.setAttribute(`height`,String(r));let i=c?.(e.roundNumber,t,d)??`R${t+1}`,a=iH(`title`);a.textContent=cH(e,i,l),n.appendChild(a),v.appendChild(n)}),v}var uH=`http://www.w3.org/2000/svg`,dH=`class`,fH=`rect`,pH=`chc-ph__wall`,mH=2,hH=5,gH=2,_H=2;function vH(e,t){let n=document.createElementNS(uH,e);return t&&n.setAttribute(dH,t),n}function yH(e){let t=Math.round(e);return t>0?`+${t}`:String(t)}function bH(e,t,n){if(e.bye)return`${t}: bye`;if(e.value===null)return`${t}: no rated opponent`;let r=e.fromActual?`faced`:`projected`,i=n?` ${n}-equivalent`:``,a=e.clipped?` (capped at the top band)`:``;return`${t}: ${r} ${yH(e.value)}${i}${a}`}function xH({group:e,cell:t,columnWidth:n,height:r}){if(!t.layers.length){let t=vH(fH,`${pH} ${pH}--none`);t.setAttribute(`x`,`0`),t.setAttribute(`y`,String((r-_H)/2)),t.setAttribute(`width`,String(n)),t.setAttribute(`height`,String(_H)),e.appendChild(t);return}let i=t.direction===HV.HARD;for(let a of t.layers){let o=Math.max(1,a.fraction*r),s=vH(fH,`${pH} ${pH}--${t.direction}-${a.bandIndex}`);s.setAttribute(`x`,`0`),s.setAttribute(`y`,String(i?r-o:0)),s.setAttribute(`width`,String(n)),s.setAttribute(`height`,String(o)),o>=hH&&s.setAttribute(`rx`,String(gH)),e.appendChild(s)}}function SH(e,t){let{width:n,height:r,gap:i=mH,describe:a=!1,roundLabels:o,scaleName:s}=t,c=Math.max(1,e.cells.length),l=Math.max(1,(n-i*(c-1))/c),u=vH(`svg`,`chc-ph__svg`);return u.setAttribute(`width`,String(n)),u.setAttribute(`height`,String(r)),u.setAttribute(`viewBox`,`0 0 ${n} ${r}`),u.setAttribute(`role`,`img`),u.setAttribute(`aria-label`,t.ariaLabel??`Projected round-by-round path for ${e.participantName??e.participantId}`),e.cells.forEach((e,t)=>{let n=vH(`g`,`chc-ph__column`);if(n.setAttribute(`transform`,`translate(${t*(l+i)},0)`),xH({group:n,cell:e,columnWidth:l,height:r}),a){let r=o?.(e.roundNumber,t,c)??`R${t+1}`,i=vH(`title`);i.textContent=bH(e,r,s),n.appendChild(i)}u.appendChild(n)}),u}var CH=`http://www.w3.org/2000/svg`,wH=12,TH=2,EH={walls:[`playing up — wall rises from the baseline`,`playing down — wall hangs from the top`],ribbon:[`playing up — trace above the centre line`,`playing down — trace below the centre line`]},DH=[HV.HARD,HV.EASY];function OH(e,t){let n=document.createElement(e);return t&&(n.className=t),n}function kH(e,t,n=!1){let r=wH*t+(t-1)*TH,i=document.createElementNS(CH,`svg`);i.setAttribute(`class`,`chc-ph__swatch`),i.setAttribute(`width`,String(r)),i.setAttribute(`height`,String(wH)),i.setAttribute(`viewBox`,`0 0 ${r} ${wH}`),i.setAttribute(`aria-hidden`,`true`);for(let r=0;r<t;r++){let a=wH*((r+1)/t),o=n?a/2:a,s=document.createElementNS(CH,`rect`);s.setAttribute(`class`,`chc-ph__wall chc-ph__wall--${e}-${r}`),s.setAttribute(`x`,String(r*14));let c=e===HV.HARD,l=wH/2;s.setAttribute(`y`,String(n?c?l-o:l:c?wH-o:0)),s.setAttribute(`width`,String(wH)),s.setAttribute(`height`,String(o)),i.appendChild(s)}return i}function AH(e,t){return e===`ribbon`?`The line is the expected opponent; the shading is who could actually arrive — solid for the likely middle, faint for the full range. Deeper colour means a larger ${t} gap.`:`Deeper, darker bands mean a larger ${t} gap. Rows share one domain.`}function jH({bands:e,scaleName:t,note:n,variant:r}){let i=OH(`div`,`chc-ph__legend`),a=r===`ribbon`,o=EH[a?`ribbon`:`walls`];for(let[t,n]of DH.entries()){let r=OH(`div`,`chc-ph__legend-item`);r.appendChild(kH(n,e,a));let s=OH(`span`,`chc-ph__legend-label`);s.textContent=o[t],r.appendChild(s),i.appendChild(r)}let s=t?`${t}-equivalent rating`:`rating`,c=OH(`div`,`chc-ph__legend-note`);return c.textContent=n??AH(r,s),i.appendChild(c),i}var MH=`chc-ph`,NH=`chc-ph__row`,PH=520,FH=132,IH={walls:16,ribbon:28},LH=2,RH={DRAW:`draw`,DIFFICULTY:`difficulty`},zH={WALLS:`walls`,RIBBON:`ribbon`};function BH(e,t){let n=document.createElement(e);return t&&(n.className=t),n}function VH(e,t){return t===RH.DIFFICULTY?aV(e):e.toSorted((e,t)=>(e.drawPosition??0)-(t.drawPosition??0))}function HH({roundNumbers:e,width:t,columnGap:n,labelWidth:r,roundLabels:i}){let a=BH(`div`,`chc-ph__head`),o=BH(`div`,`chc-ph__label`);o.style.width=`${r}px`,a.appendChild(o);let s=BH(`div`,`chc-ph__rounds`);s.style.width=`${t}px`,s.style.gap=`${n}px`;for(let[t,n]of e.entries()){let r=BH(`span`,`chc-ph__round-label`);r.textContent=i(n,t,e.length),s.appendChild(r)}return a.appendChild(s),a}function UH(e,t,n){e.classList.add(`is-clickable`),e.setAttribute(`role`,`button`),e.tabIndex=0,e.addEventListener(`click`,()=>n(t)),e.addEventListener(`keydown`,e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),n(t))})}function WH(e,{variant:t,width:n,rowHeight:r,columnGap:i,roundLabels:a,scaleName:o,domainMax:s,bands:c}){return t===zH.RIBBON?lH(e,{width:n,height:r,domainMax:s,bands:c,positionBands:LH,describe:!0,roundLabels:a,scaleName:o}):SH(e,{width:n,height:r,gap:i,describe:!0,roundLabels:a,scaleName:o})}function GH({shown:e,ordered:t,dropped:n,domainMax:r,bands:i,clippedCells:a,order:o,variant:s,unweightedFan:c}){let l=BH(`div`,`chc-ph__caption`),u=[`${e} paths · ${o===RH.DRAW?`draw order`:`hardest slot first`}`,`shared domain ±${Math.round(r)} · ${i} bands`];return s===zH.RIBBON&&u.push(`trace saturates past ${LH} of ${i} bands — colour carries the rest`),s===zH.RIBBON&&c&&u.push("fan is the unweighted 1%-threshold range — pass `projection` to weight it"),e<t&&u.push(`${t-e} of ${t} not shown`),n>0&&u.push(`${n} unrated omitted`),a>0&&u.push(`${a} walls capped at the top band`),l.textContent=u.join(` · `),l}function KH(e,t=[],n={}){let r=BH(`div`,MH);e.appendChild(r);function i(e,t){r.replaceChildren();let{width:n=PH,variant:i=zH.WALLS,rowHeight:a=IH[i],rowGap:o=2,columnGap:s=2,bands:c,source:l=VV.PROJECTED,domainMax:u,showLabels:d=!0,showLegend:f=!0,showRoundHeader:p=!0,order:m=RH.DRAW,limit:h,scaleName:g,onSelect:_,projection:v,roundLabels:y=rB}=t,b=e.filter(e=>e.rating);if(!b.length){let e=BH(`div`,`chc-ph__empty`);e.textContent=t.emptyMessage??`No rating data for this draw, so there is no pressure to plot.`,r.appendChild(e);return}let x=VH(b,m),S=h?x.slice(0,h):x,C=QV({series:S,source:l,bands:c,domainMax:u,projection:v}),w=d?t.labelWidth??FH:0;p&&r.appendChild(HH({roundNumbers:C.roundNumbers,width:n,columnGap:s,labelWidth:w,roundLabels:y}));let T=BH(`div`,`chc-ph__rows`);T.style.gap=`${o}px`;for(let[e,t]of C.rows.entries()){let r=S[e],o=BH(`div`,NH);if(o.dataset.participantId=t.participantId,d){let e=BH(`div`,`chc-ph__label`);e.style.width=`${w}px`,e.textContent=`${t.drawPosition?`${t.drawPosition}. `:``}${t.participantName??t.participantId}`,e.title=e.textContent,o.appendChild(e)}o.appendChild(WH(t,{variant:i,width:n,rowHeight:a,columnGap:s,roundLabels:y,scaleName:g,domainMax:C.domainMax,bands:C.bands})),_&&UH(o,r,_),T.appendChild(o)}r.appendChild(T),f&&r.appendChild(jH({bands:C.bands,scaleName:g,variant:i})),r.appendChild(GH({shown:S.length,ordered:x.length,dropped:e.length-b.length,domainMax:C.domainMax,bands:C.bands,clippedCells:C.clippedCells,order:m,variant:i,unweightedFan:C.rows.some(e=>e.cells.some(e=>e.spread&&!e.spread.weighted))}))}return i(t,n),{element:r,update:(e,t)=>i(e,{...n,...t}),destroy:()=>r.remove()}}var qH=`chc-dog`,JH=`chc-dog__row`,YH=`application/x-chc-draw-slot`,XH=`button`,ZH=`is-drop-target`,QH=`New board dealt`,$H=460,eU={walls:20,ribbon:30},tU=20260831;function nU(e,t){let n=document.createElement(e);return t&&(n.className=t),n}function rU(e,t){let n=document.createElement(XH);return n.type=XH,n.className=`chc-dog__button`,n.textContent=e,n.addEventListener(`click`,t),n}function iU(e,t){return e===2?`first-round pairs`:e===t/2?`halves`:e===t/4?`quarters`:`groups of ${e}`}function aU(e){let t=nU(`div`,`chc-dog__score`),n=nU(`div`,`chc-dog__score-headline`);n.textContent=`${e.structureScore}%`,t.appendChild(n);let r=nU(`div`,`chc-dog__score-summary`);r.textContent=e.structurePerfect?`Every grouping in the real draw — you rebuilt the bracket.`:`${e.blocksMatched} of ${e.blocksTotal} real groupings recovered.`,t.appendChild(r);let i=nU(`ul`,`chc-dog__score-levels`);for(let t of e.levels){let n=nU(`li`);n.textContent=`${iU(t.blockSize,e.slots)}: ${t.matched}/${t.total}`,i.appendChild(n)}t.appendChild(i);let a=nU(`div`,`chc-dog__score-exact`);a.textContent=`${e.exact}/${e.slots} rows in the exact slot.`,t.appendChild(a);let o=nU(`div`,`chc-dog__score-note`);return o.textContent=`A draw sheet is mirror-symmetric — swapping two halves, two quarters or the two players in a pair gives the same bracket with different slot numbers. The headline counts groupings, which survive that; exact slots do not, so a low exact count beside a high headline means you had the draw right and the sheet flipped.`,t.appendChild(o),t}function oU(e,t=[],n={}){let r=nU(`div`,qH);e.appendChild(r);let{width:i=$H,rowHeight:a=eU[n.variant??zH.WALLS],rowGap:o=2,columnGap:s=2,bands:c,variant:l=zH.WALLS,projection:u,scaleName:d,limit:f,roundLabels:p=rB,onComplete:m}=n,h=t.filter(e=>e.rating&&e.drawPosition!==void 0),g=t.length-h.length,_=h.toSorted((e,t)=>(e.drawPosition??0)-(t.drawPosition??0)),v=f?_.slice(0,f):_,y=QV({series:v,source:VV.PROJECTED,bands:c,projection:u}),b=new Map(y.rows.map(e=>[e.participantId,e])),x=new Map(v.map(e=>[e.participantId,e])),S=MV({actualOrder:v.map(e=>e.participantId),seed:n.seed??tU}),C=null,w=null,T=nU(`div`,`chc-dog__live`);T.setAttribute(`aria-live`,`polite`);function E(e){T.textContent=e}function D(e,t){let n=e!==S;S=e,F(),t&&n&&E(t),S.revealed&&S.score&&m?.(S.score,S)}function O(e,t){let n=b.get(e),r=nU(`div`,JH);r.dataset.slot=String(t),r.tabIndex=0,r.setAttribute(`role`,`listitem`),r.setAttribute(`aria-label`,`Slot ${t+1} of ${S.order.length}`);let o=nU(`div`,`chc-dog__slot`);if(o.textContent=String(t+1),r.appendChild(o),n){let e=l===zH.RIBBON?lH(n,{width:i,height:a,domainMax:y.domainMax,bands:y.bands,describe:!1,ariaLabel:`Path in slot ${t+1}`}):SH(n,{width:i,height:a,gap:s,describe:!1,ariaLabel:`Path in slot ${t+1}`});r.appendChild(e)}if(S.revealed){let n=x.get(e),i=S.score?.slotResults[t],a=nU(`div`,`chc-dog__reveal${i?.correct?` is-correct`:``}`),o=(i?.actualIndex??0)+1;a.textContent=`${n?.participantName??e} · really ${o}`,r.appendChild(a)}else r.draggable=!0,k(r,t),A(r,t);return r}function k(e,t){e.addEventListener(`dragstart`,n=>{C=t,e.classList.add(`is-dragging`),n.dataTransfer?.setData(YH,String(t)),n.dataTransfer&&(n.dataTransfer.effectAllowed=`move`)}),e.addEventListener(`dragend`,()=>{C=null,e.classList.remove(`is-dragging`)}),e.addEventListener(`dragover`,t=>{t.preventDefault(),t.dataTransfer&&(t.dataTransfer.dropEffect=`move`),e.classList.add(ZH)}),e.addEventListener(`dragleave`,()=>e.classList.remove(ZH)),e.addEventListener(`drop`,n=>{n.preventDefault(),e.classList.remove(ZH);let r=n.dataTransfer?.getData(YH),i=r?Number.parseInt(r,10):C;i===null||Number.isNaN(i)||(w=t,D(PV(S,i,t),`Moved slot ${i+1} to slot ${t+1}`))})}function A(e,t){e.addEventListener(`keydown`,e=>{if(e.key!==`ArrowUp`&&e.key!==`ArrowDown`)return;let n=t+(e.key===`ArrowUp`?-1:1);n<0||n>=S.order.length||(e.preventDefault(),w=n,e.altKey||e.metaKey?D(FV(S,t,n),`Slot ${t+1} swapped with slot ${n+1}`):j(n))})}function j(e){r.querySelector(`.${JH}[data-slot="${e}"]`)?.focus()}function M(){let e=nU(`div`,`chc-dog__toolbar`);S.revealed?e.appendChild(rU(`Play again`,()=>D(LV(S,S.seed+1),QH))):(e.appendChild(rU(`Check my order`,()=>D(IV(S)))),e.appendChild(rU(`Shuffle`,()=>D(LV(S,S.seed+1),QH))));let t=nU(`span`,`chc-dog__meta`);return t.textContent=`puzzle #${S.seed} · ${S.order.length} paths · ${S.moves} moves`,e.appendChild(t),e}function N(){let e=nU(`p`,`chc-dog__instructions`);return e.textContent=`These are the projected paths of every player in one draw, shuffled and unnamed. Drag them into the real draw order — or focus a row and hold Alt with the arrow keys. Players who meet in a round are each other’s opponent in that column, so `+(l===zH.RIBBON?`two traces that mirror each other about the centre line in the same column are probably a pair.`:`a deep-hard row and a pale-easy row of the same size in the same column are probably a pair.`),e}function P(){let e=nU(`div`,`chc-dog__head`);e.appendChild(nU(`div`,`chc-dog__slot-spacer`));let t=nU(`div`,`chc-ph__rounds`);t.style.width=`${i}px`,t.style.gap=`${s}px`;for(let[e,n]of y.roundNumbers.entries()){let r=nU(`span`,`chc-ph__round-label`);r.textContent=p(n,e,y.roundNumbers.length),t.appendChild(r)}return e.appendChild(t),e}function F(){if(r.replaceChildren(),!v.length){let e=nU(`div`,`chc-ph__empty`);e.textContent=n.emptyMessage??`No rated draw to play — the game needs ratings and draw positions.`,r.appendChild(e);return}r.appendChild(N()),r.appendChild(M()),r.appendChild(P());let e=nU(`div`,`chc-dog__rows`);e.setAttribute(`role`,`list`),e.style.gap=`${o}px`;for(let[t,n]of S.order.entries())e.appendChild(O(n,t));r.appendChild(e),r.appendChild(jH({bands:y.bands,scaleName:d,variant:l,note:`Deeper, darker bands mean a larger rating gap. Every path is on the same domain — that is what makes two rows comparable.`})),S.revealed&&S.score&&r.appendChild(aU(S.score));let t=nU(`div`,`chc-ph__caption`),i=d?` ${d}-equivalent`:``,a=[`shared domain ±${Math.round(y.domainMax)}${i} · ${y.bands} bands`];S.deranged||a.push(`this deal left a row in its true slot`),g>0&&a.push(`${g} unrated omitted`),y.clippedCells>0&&a.push(`${y.clippedCells} walls capped at the top band`),t.textContent=a.join(` · `),r.appendChild(t),r.appendChild(T),w!==null&&(j(w),w=null)}return F(),{element:r,getState:()=>S,reshuffle:e=>D(LV(S,e??S.seed+1),QH),reveal:()=>D(IV(S)),destroy:()=>r.remove()}}var sU=`right`,cU=`font-medium`;function lU({target:e,button:t,stateChange:n}){let r=0,i=()=>(r+=1,`Item${r}`),a=document.createElement(`div`);t.class&&a.classList.add(t.class),a.classList.add(`dropdown`),t.id&&(a.id=t.id),t.align===sU&&a.classList.add(`is-right`);let o=e=>e.classList.contains(`is-active`),s=()=>{o(a)&&a.classList.remove(`is-active`)},c=e=>o(e)?(e.classList.remove(`is-active`),!1):(e.classList.add(`is-active`),!0);a.onmouseleave=s,a.onclick=()=>c(a);let l=document.createElement(`div`);l.classList.add(`dropdown-trigger`);let u=document.createElement(`button`);u.className=`button font-medium`,t.intent&&u.classList.add(t.intent),u.setAttribute(`aria-haspopup`,`true`);let d=document.createElement(`span`);K(t.onClick)&&(d.onclick=t.onClick),d.style.cssText=`margin-right: 1em`,d.innerHTML=t.label,u.appendChild(d);let f=document.createElement(`span`);K(t.onClick)&&(f.onclick=t.onClick),f.innerHTML=`
|
|
216
216
|
<span class="icon is-small font-medium">
|
|
217
217
|
<i class="fas fa-angle-down font-medium" aria-hidden="true"></i>
|
|
218
218
|
</span>
|
|
219
|
-
`,u.appendChild(f),l.appendChild(u),a.appendChild(l);let p=document.createElement(`div`);p.classList.add(`dropdown-menu`),p.setAttribute(`z-index`,`99998`);let m=document.createElement(`div`);m.classList.add(`dropdown-content`);let h=()=>{let e=p.querySelectorAll(`.dropdown-item`);for(let t of Array.from(e))t.classList.remove(`is-active`)},g=e=>{let r=document.createElement(`a`);r.className=
|
|
219
|
+
`,u.appendChild(f),l.appendChild(u),a.appendChild(l);let p=document.createElement(`div`);p.classList.add(`dropdown-menu`),p.setAttribute(`z-index`,`99998`);let m=document.createElement(`div`);m.classList.add(`dropdown-content`);let h=()=>{let e=p.querySelectorAll(`.dropdown-item`);for(let t of Array.from(e))t.classList.remove(`is-active`)},g=e=>{let r=document.createElement(`a`);r.className=cU;let l=e.disabled?`0.4`:`1`;return r.style.cssText=`text-decoration: none; opacity: ${l};`,e.color&&(r.style.color=e.color),r.classList.add(`dropdown-item`),e.isActive&&r.classList.add(`is-active`),e.value&&(r.value=e.value),e.class&&r.classList.add(e.class),r.onclick=l=>{if(e.disabled)return;e.value&&(u.value=e.value,a.value=e.value),l.stopPropagation(),K(e.onClick)&&(K(n)&&n(),e.onClick(l)),e.close&&s();let f=o(r);h(),f?d.innerHTML=t.label:(t.selection&&c(r),t.modifyLabel&&e.modifyLabel!==!1&&(d.innerHTML=`${t.append?t.label+`: `:``}${e?.label||i()}`))},r.innerHTML=e?.label||i(),r};for(let e of t.options||[])if(e.heading){let t=document.createElement(`div`);t.style.cssText=`font-weight: bold`,t.classList.add(`dropdown-item`,cU),t.innerHTML=e.heading,m.appendChild(t)}else if(e.divider){let e=document.createElement(`hr`);e.classList.add(`dropdown-divider`,cU),m.appendChild(e)}else e.hide||m.appendChild(g(e));return t.options?.length&&(t.options[0].value&&(a.value=t.options[0].value),p.appendChild(m)),a.appendChild(p),e&&e.appendChild(a),a}var uU=`left`;function dU(e){let{title:t,placeholder:n,options:r,selectionLimit:i,createTable:a,createFilter:o}=e,s=`selectionControl`,c=`selectionTable`,l,u,d=[{label:`Cancel`,intent:`none`,close:!0}],f=()=>{u?u():l?.destroy&&l.destroy(),l=void 0},p=`
|
|
220
220
|
<div style='min-height: 420px'>
|
|
221
221
|
<div id='${s}'></div>
|
|
222
222
|
<div id='${c}'></div>
|
|
223
223
|
</div>
|
|
224
|
-
`;se.open({title:t,content:p,buttons:d,onClose:f});let m=e=>{e?.[0]?.onClick&&(e[0].onClick(),se.close())};if(a){let e=a({anchorId:c,data:r,selectionLimit:i,onSelected:m});l=e.table,u=e.destroy;let t=o?o(l):()=>{},d=[{onKeyDown:e=>e.keyCode===8&&e.target.value.length===1&&t(``),onChange:e=>t(e.target.value),onKeyUp:e=>t(e.target.value),clearSearch:()=>t(``),placeholder:n||`Search`,location:lU,search:!0}],f=document.getElementById(s)||void 0;jU({table:l,target:f,items:d})}else{let e=document.getElementById(c);if(e){dU({container:e,options:r,onSelected:m});let t=t=>{let n=e.querySelectorAll(`[data-select-item]`),r=t.toLowerCase();n.forEach(e=>{let n=e.textContent?.toLowerCase()||``;e.style.display=!t||n.includes(r)?``:`none`})},i=[{onKeyUp:e=>t(e.target.value),clearSearch:()=>t(``),placeholder:n||`Search`,location:lU,search:!0}];jU({target:document.getElementById(s)||void 0,items:i})}}}function dU({container:e,options:t,onSelected:n}){let r=document.createElement(`div`);r.style.cssText=`max-height: 380px; overflow-y: auto; padding: 0.5em 0;`;for(let e of t){let t=document.createElement(`a`);t.setAttribute(`data-select-item`,``),t.className=`panel-block font-medium`,t.style.cssText=`cursor: pointer; padding: 0.5em 1em; display: block; text-decoration: none; color: inherit;`,t.innerHTML=e.label,t.onmouseenter=()=>t.style.backgroundColor=`#f5f5f5`,t.onmouseleave=()=>t.style.backgroundColor=``,t.onclick=t=>{t.stopPropagation(),n([e])},r.appendChild(t)}e.appendChild(r)}var fU=`none`;function pU(e){let t=document.createElement(`button`);return t.className=`button font-medium`,e.disabled&&(t.disabled=!0),e.class&&t.classList.add(e.class),e.id&&(t.id=e.id),e.intent&&t.classList.add(e.intent),e.toolTip?.content&&ly(t,e.toolTip),t.innerHTML=e.label,e.visible===!1&&(t.style.display=fU),t}var mU=`center`,hU=``,gU=`flex`,_U=`left`,vU=`none`,yU=`overlay`,bU=`right`,xU=({target:e})=>(t=[])=>{e.style.backgroundColor=t?.length?`var(--chc-hover-bg)`:hU;let n=(n,r,i)=>{let a=e.getElementsByClassName(`options_${n}`)[0];a&&(a.style.display=t?.length?r:i)};n(yU,gU,vU),n(_U,vU,gU),n(mU,vU,gU),n(bU,vU,gU)},SU=`center`,CU=`header`,wU=``,TU=`left`,EU=`none`,DU=`overlay`,OU=`right`,kU=`buttonBar`,AU=`top`;function jU(e){let{table:t,targetClassName:n,items:r=[],onSelection:i,selectItemFn:a}=e,{target:o}=e,s=!!o;if(!o&&n&&(o=document.getElementsByClassName(n)?.[0]),!o)return{elements:{},inputs:{}};let c=0,l=0,u={},d={},f;if(s){G(o);let e=zU();Object.assign(u,e.elements),o.appendChild(e.anchor)}let p=Object.assign({},...[DU,TU,SU,OU,CU].map(e=>{let t=o.getElementsByClassName(`options_${e}`)?.[0];return G(t),{[e]:t}}).filter(Boolean)),m=xU({table:t,target:o}),h=(e,n)=>{K(n.onClick)&&(e.stopPropagation(),n.disabled||n.onClick(e,t),n.stateChange&&m())},g={onClick:()=>{},location:OU};for(let e of r){let t={...g};fe(e)&&Object.assign(t,e);let n=p[t.location];if(!n){console.log(t.location,p);continue}t.location===DU&&(c+=1),t.location===CU&&(MU(t,o),l+=1);let r=NU(e,t,n,m,h,a,u,d);r?.focus&&(f=r.focus)}let _=o.getElementsByClassName(`panelHeader`)[0];_&&(_.style.display=l?wU:EU),t?._controlBarSelectionHandler&&t.off(`rowSelectionChanged`,t._controlBarSelectionHandler);let v=(e,t)=>{K(i)&&i(t),c&&m(t)};t&&(t._controlBarSelectionHandler=v),t?.on(`rowSelectionChanged`,v);let y=()=>m(t?.getSelectedRows?.()??[]);return!t||t.initialized?y():t.on(`tableBuilt`,y),f&&setTimeout(()=>f.focus(),200),{elements:u,inputs:d}}function MU(e,t){if(K(e.headerClick)){let n=t.getElementsByClassName(`panelHeader`)[0];n&&(n.onclick=e.headerClick)}}function NU(e,t,n,r,i,a,o,s){if(!t.hide&&(t.input||t.placeholder||t.search)){let r=PU(e,t);return t.id&&(s[t.id]=r.input),t.id&&(o[t.id]=r.elem,r.elem.id=t.id),n?.appendChild(r.elem),t.focus?{focus:r.input}:void 0}if(!t.hide&&t.text){let e=document.createElement(`div`);e.className=`font-medium`,t.id&&(o[t.id]=e,e.id=t.id),e.innerHTML=t.text,e.onclick=e=>i(e,t),n?.appendChild(e);return}(t.id||t?.label&&!t.hide)&&(IU(t,n,r,i,a,o),(!(t?.label||t.tabs)||t.hide)&&o[t.id]&&(o[t.id].style.display=EU))}function PU(e,t){let n=document.createElement(`p`);n.className=`control ${t.search?`has-icons-left has-icons-right`:``}`;let r=document.createElement(`input`);if(r.className=`input font-medium`,r.setAttribute(`type`,`text`),r.setAttribute(`autocomplete`,`off`),r.setAttribute(`placeholder`,e.placeholder||wU),t.id&&r.setAttribute(`id`,t.id),t.onKeyDown&&r.addEventListener(`keydown`,e=>t.onKeyDown(e,t)),t.onChange&&r.addEventListener(`change`,e=>t.onChange(e,t)),t.onKeyUp&&r.addEventListener(`keyup`,e=>{t.clearSearch&&e.key===`Escape`&&(e.stopPropagation(),r.value=``,t.clearSearch()),t.onKeyUp(e,t)}),t.class&&r.classList.add(t.class),t.visible===!1&&(n.style.display=EU),t.value&&(r.value=t.value),n.appendChild(r),t.search&&FU(n,r,t),e.validator){let t=document.createElement(`p`);t.className=`help font-medium`,n.appendChild(t),r.addEventListener(`input`,n=>mn(e,n,r,t,e.validator))}return{elem:n,input:r}}function FU(e,t,n){let r=document.createElement(`span`);if(r.className=`icon is-small is-left font-medium`,r.innerHTML=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="16" height="16" fill="currentColor"><path d="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"/></svg>`,e.appendChild(r),K(n.clearSearch)){let r=document.createElement(`span`);r.className=`icon is-small is-right font-medium`,r.style.pointerEvents=`all`,r.style.cursor=`pointer`,r.innerHTML=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="16" height="16" fill="#dddada"><path d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"/></svg>`,r.onclick=e=>{e.stopPropagation(),t.value=``,n.clearSearch(),i()};let i=()=>{r.style.display=t.value?``:`none`};t.addEventListener(`input`,i),i(),e.appendChild(r)}}function IU(e,t,n,r,i,a){if(e.options){let r=cU({target:t,button:e,stateChange:n});e.visible===!1&&(r.style.display=EU),e.id&&(a[e.id]=r)}else if(fe(e.selection))LU(e,t,n,i,a);else if(e.tabs)RU(e,t,a);else{let n=pU(e);n.onclick=t=>r(t,e),e.id&&(a[e.id]=n),t?.appendChild(n)}}function LU(e,t,n,r,i){let{selection:{options:a,actions:o},actionPlacement:s,threshold:c=8,...l}=e;if(a?.length<c){a.length&&(s===AU?a.unshift({divider:!0}):a.push({divider:!0})),o.forEach(e=>{let{label:t,...n}=e,r={...n,label:`<p style="font-weight: bold">${t}</p>`};s===AU?a.unshift(r):a.push(r)});let r={...l,options:a},c=cU({target:t,button:r,stateChange:n});r.visible===!1&&(c.style.display=EU),r.id&&(i[e.id]=c)}else{let n=pU(e),o=r||uU;n.onclick=t=>{t.stopPropagation(),o({title:e.selectionTitle||`Select`,options:a})},e.id&&(i[e.id]=n),t?.appendChild(n)}}function RU(e,t,n){let r=document.createElement(`div`);r.className=`tabs is-toggle is-toggle-rounded`;let i=document.createElement(`ul`);r.appendChild(i),e.tabs.forEach(t=>{let n=document.createElement(`li`);t.active&&n.classList.add(`is-active`);let r=document.createElement(`a`);n.appendChild(r),r.onclick=r=>{i.querySelectorAll(`li`).forEach(e=>e.classList.remove(`is-active`)),n.classList.add(`is-active`),K(t.onClick)&&t.onClick(r,e)};let a=document.createElement(`span`);a.innerHTML=t.label,r.appendChild(a),i.appendChild(n)}),e.id&&(n[e.id]=r),t.appendChild(r)}function zU(){let e=document.createElement(`div`);e.className=`panel_container flexcol flexcenter`;let t=document.createElement(`div`);t.className=`panelHeader options_header`,t.style.display=EU,e.appendChild(t);let n=document.createElement(`div`);n.className=kU;let r={optionsOverlay:document.createElement(`div`),optionsLeft:document.createElement(`div`),optionsCenter:document.createElement(`div`),optionsRight:document.createElement(`div`)};r.optionsOverlay.className=`options_overlay`,r.optionsCenter.className=`options_center`,r.optionsRight.className=`options_right`,r.optionsLeft.className=`options_left`;for(let e of Object.values(r))n.appendChild(e);return e.appendChild(n),{elements:r,anchor:e,header:t}}var BU=()=>`sp-layout`,VU=()=>`sp-column`,HU=()=>`sp-panel`,UU=()=>`sp-panel-header`,WU=()=>`sp-panel-title`,GU=()=>`sp-panel-meta`,KU=()=>`sp-panel-actions`,qU=()=>`sp-panel-leading`,JU=()=>`sp-date-strip`,YU=()=>`sp-date-chip`,XU=()=>`sp-badges`,ZU=()=>`sp-badge`,QU=()=>`sp-chips`,$U=()=>`sp-chip`,eW=()=>`sp-board`,tW=()=>`sp-venue`,nW=()=>`sp-venue-header`,rW=()=>`sp-venue-title`,iW=()=>`sp-venue-sub`,aW=()=>`sp-dropzone`,oW=()=>`sp-card`,sW=()=>`sp-card-title`,cW=()=>`sp-card-meta`,lW=()=>`sp-issues`,uW=()=>`sp-issue`,dW=()=>`sp-issue-code`,fW=()=>`sp-issue-msg`,pW=()=>`sp-issue-actions`,mW=()=>`sp-btn sp-btn--sm`,hW=()=>`sp-catalog`,gW=()=>`sp-catalog-toolbar`,_W=()=>`sp-input`,vW=()=>`sp-select`,yW=()=>`sp-group`,bW=()=>`sp-group-header`,xW=()=>`sp-group-body`,SW=()=>`sp-catalog-item`,CW=()=>`sp-small`,wW=()=>`sp-popover-item`,TW=()=>`sp-popover-delete`,EW=()=>`sp-popover-divider`,DW=()=>`sp-insertion-line`,OW=()=>`sp-group-chevron`;function kW(e,t){let n=!!t?.hideLeft,r=t?.catalogSide===`left`,i=document.createElement(`div`);if(i.className=BU(),n)r?i.classList.add(`sp-catalog-left`):i.classList.add(`sp-no-left`);else{let t=document.createElement(`div`);t.className=VU(),t.appendChild(e.dateStrip.element),e.issuesPanel.element.style.flex=`1`,e.issuesPanel.element.style.minHeight=`0`,t.appendChild(e.issuesPanel.element),i.appendChild(t)}let a=document.createElement(`div`);a.className=VU(),e.venueBoard.element.style.flex=`1`,e.venueBoard.element.style.minHeight=`0`,a.appendChild(e.venueBoard.element);let o=document.createElement(`div`);o.className=VU(),e.roundCatalog.element.style.flex=`1 1 0`,e.roundCatalog.element.style.minHeight=`0`,o.appendChild(e.roundCatalog.element),r&&n?(i.appendChild(o),i.appendChild(a)):(i.appendChild(a),i.appendChild(o));function s(t){n||(e.dateStrip.update(t),e.issuesPanel.update(t)),e.venueBoard.update(t),e.roundCatalog.update(t)}return{element:i,update:s}}function AW(e){let t=null,n=null;function r(e){return`${e.date}|${e.venueId}|${e.index}`}function i(){t&&(t.destroy(),t=null,n=null)}function a(t){let n=document.createElement(`div`);n.style.cssText=`font-family:sans-serif; font-size:13px; min-width:150px;`;let r=document.createElement(`div`);r.className=wW(),r.textContent=`Set Not Before Time`,r.addEventListener(`click`,()=>{i(),e.onSetNotBeforeTime(t)}),n.appendChild(r);let a=document.createElement(`div`);a.className=EW(),n.appendChild(a);let o=document.createElement(`div`);return o.className=TW(),o.textContent=`Remove Round`,o.addEventListener(`click`,()=>{i(),e.onDelete(t)}),n.appendChild(o),n}return{show(e,o){let s=r(o);if(n===s){i();return}i();let c=ly(e,{content:a(o),allowHTML:!0,interactive:!0,trigger:`manual`,placement:`bottom`,appendTo:document.body,onHidden:()=>{t=null,n=null}});t=c,n=s,c.show()},destroy(){i()},isActiveFor(e){return n===r(e)}}}function jW(e){return structuredClone(e)}function MW(e,t,n){return Math.max(t,Math.min(n,e))}function NW(e){return`${e.tournamentId}|${e.eventId}|${e.drawId}|${e.structureId}|${e.roundNumber}`}function PW(e){return`${e.eventName?`${e.eventName} \u2013 `:``}${e.roundName??`Round ${e.roundNumber}`}${e.roundSegment?` (seg ${e.roundSegment.segmentNumber}/${e.roundSegment.segmentsCount})`:``}`}function FW(e,t){return!e||!t?!1:e.date===t.date&&e.venueId===t.venueId&&e.index===t.index}function IW(e){return{tournamentId:e.tournamentId,eventId:e.eventId,drawId:e.drawId,structureId:e.structureId,roundNumber:e.roundNumber}}function LW(e,t){return`${e}|${t.segmentNumber}/${t.segmentsCount}`}function RW(e){let t=new Map;for(let n of e)for(let e of n.venues)for(let r=0;r<e.rounds.length;r++){let i=e.rounds[r],a=NW(i),o=i.roundSegment,s=o?LW(a,o):a,c={locator:{date:n.scheduleDate,venueId:e.venueId,index:r,roundKey:IW(i),roundSegment:o},date:n.scheduleDate,venueId:e.venueId,roundSegment:o},l=t.get(s);l?l.push(c):t.set(s,[c])}return t}function zW(e){let t=new Map;for(let n of e)for(let e of n.venues)for(let n of e.rounds){if(!n.roundSegment)continue;let e=NW(n),r=t.get(e)??0;n.roundSegment.segmentsCount>r&&t.set(e,n.roundSegment.segmentsCount)}return t}function BW(e,t,n,r=`dim`){let i=t.toLowerCase().trim();return e.filter(e=>r===`hide`&&n.has(NW(e))?!1:!i||`${e.eventName} ${e.drawName??``} ${e.roundName??``} ${e.drawId}`.toLowerCase().includes(i)).map(e=>({...e,isPlanned:n.has(NW(e))}))}function VW(e,t){let n=new Map,r=e=>t===`draw`?`${e.eventName} \u2014 ${e.drawName??e.drawId}`:t===`round`?e.roundName??`Round ${e.roundNumber}`:e.eventName;for(let t of e){let e=r(t),i=n.get(e);i?i.push(t):n.set(e,[t])}return new Map([...n.entries()].sort((e,t)=>e[0].localeCompare(t[0],void 0,{numeric:!0})))}function HW(e){let t=new Set;for(let n of e)for(let e of n.venues)for(let n of e.rounds)n.roundSegment||t.add(NW(n));return t}function UW(e){let t=new Set;for(let n of e)for(let e of n.venues)for(let n of e.rounds)if(n.roundSegment){let e=NW(n);t.add(LW(e,n.roundSegment))}return t}var WW=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function GW(e){return WW.test(e)}function KW(e){let t=document.createElement(`div`);t.className=HU(),t.style.overflowY=`auto`,t.style.scrollbarWidth=`thin`,t.style.scrollbarColor=`var(--sp-scrollbar) transparent`;let n=new Set,r=new Map,i=null,a=document.createElement(`div`);a.className=UU();let o=document.createElement(`div`);o.className=WU(),o.textContent=`Round Catalog`;let s=document.createElement(`div`);s.className=GU(),a.appendChild(o),a.appendChild(s),t.appendChild(a);let c=document.createElement(`div`);c.className=gW();let l=document.createElement(`input`);l.type=`text`,l.placeholder=`Search rounds...`,l.className=_W(),l.addEventListener(`input`,()=>e.onSearchChange(l.value));let u=oO(l,()=>{l.value=``,e.onSearchChange(``),l.focus()}),d=document.createElement(`select`);d.className=vW();for(let[e,t]of[[`event`,`By Event`],[`draw`,`By Draw`],[`round`,`By Round`]]){let n=document.createElement(`option`);n.value=e,n.textContent=t,d.appendChild(n)}d.addEventListener(`change`,()=>e.onGroupByChange(d.value)),c.appendChild(u),c.appendChild(d),t.appendChild(c);let f=document.createElement(`div`);f.className=hW(),t.appendChild(f),f.addEventListener(`dragover`,e=>{e.preventDefault(),f.classList.add(`over`),e.dataTransfer.dropEffect=`move`}),f.addEventListener(`dragleave`,e=>{f.contains(e.relatedTarget)||f.classList.remove(`over`)}),f.addEventListener(`drop`,t=>{if(f.classList.remove(`over`),t.preventDefault(),!e.onDropRemove)return;let n;try{n=JSON.parse(t.dataTransfer.getData(`application/json`))}catch{return}n.type===`PLANNED_ROUND`&&e.onDropRemove(n.locator)});function p(t,n,i,a,o,s){let c=document.createElement(`div`);c.className=SW(),i&&c.classList.add(`segment`),t.isPlanned?(c.classList.add(n===`navigate`?`navigate`:`dimmed`),c.draggable=!1,n===`navigate`&&c.addEventListener(`click`,()=>{e.onNavigateToPlanned?.(t)})):(c.draggable=!0,c.addEventListener(`dragstart`,e=>{e.stopPropagation(),e.dataTransfer.setDragImage(c,c.offsetWidth/2,20);let n={type:`CATALOG_ROUND`,roundRef:t};i&&(n.roundSegment=i),e.dataTransfer.setData(`application/json`,JSON.stringify(n)),e.dataTransfer.effectAllowed=`copyMove`}));let l=document.createElement(`div`);l.className=sW();let u=t.roundName&&!t.roundName.startsWith(`rn=`)?t.roundName:`Round `+t.roundNumber,d=i?` \u00b7 Seg ${i.segmentNumber}/${i.segmentsCount}`:``;l.textContent=`${t.eventName} \u2014 ${u}${d}`;let f=document.createElement(`div`);f.className=cW();let p=i&&t.matchCountEstimate?Math.round(t.matchCountEstimate/i.segmentsCount):t.matchCountEstimate,m=p?` · `+p+` matches`:``,h=t.drawName&&!GW(t.drawName)?t.drawName:``;if(f.textContent=h?`${h}${m}`:m.replace(` · `,``)||``,c.appendChild(l),c.appendChild(f),o.length&&n!==`navigate`&&(c.appendChild(qW(o,s)),e.onDropRemove&&c.appendChild(YW(o,e.onDropRemove))),!(t.isPlanned&&n!==`navigate`)&&!t.isPlanned){let e=document.createElement(`div`);e.className=`sp-split-ctl`;let n=NW(t);if(i){let t=document.createElement(`button`);t.type=`button`,t.className=`sp-split-chip sp-split-collapse`,t.title=`Collapse to whole round`,t.textContent=`×`,t.addEventListener(`click`,e=>{e.stopPropagation(),r.delete(n),a()}),e.appendChild(t)}else for(let[t,i,o]of[[`½`,2,`Split into halves`],[`¼`,4,`Split into quarters`]]){let s=document.createElement(`button`);s.type=`button`,s.className=`sp-split-chip`,s.title=o,s.textContent=t,s.addEventListener(`click`,e=>{e.stopPropagation(),r.set(n,i),a()}),e.appendChild(s)}c.appendChild(e)}return c}function m(e){i=e;let t=e.plannedRoundBehavior,a=HW(e.profileDraft),o=UW(e.profileDraft),c=RW(e.profileDraft),h=zW(e.profileDraft),g=new Map(e.venues.map(e=>[e.venueId,e.name])),_=BW(e.roundCatalog,e.catalogSearchQuery,a,t),v=VW(_,e.catalogGroupBy),y=()=>i&&m(i);s.textContent=`${_.length} rounds`,l.value!==e.catalogSearchQuery&&(l.value=e.catalogSearchQuery,sO(u)),d.value!==e.catalogGroupBy&&(d.value=e.catalogGroupBy),f.innerHTML=``;for(let[e,a]of v){let s=document.createElement(`div`);s.className=yW();let l=n.has(e),u=document.createElement(`div`);u.className=bW();let d=document.createElement(`span`);d.className=OW(),d.textContent=l?`▶`:`▼`;let _=document.createElement(`span`);_.textContent=e,u.appendChild(d),u.appendChild(_),u.addEventListener(`click`,()=>{n.has(e)?n.delete(e):n.add(e),i&&m(i)});let v=document.createElement(`div`);v.className=xW(),l&&(v.style.display=`none`);for(let e of a){let n=NW(e),i=r.get(n)??h.get(n);if(!i){let r=c.get(n)??[];v.appendChild(p(e,t,void 0,y,r,g));continue}for(let r=1;r<=i;r++){let a={segmentNumber:r,segmentsCount:i},s=e.isPlanned||o.has(LW(n,a));if(s&&t===`hide`)continue;let l=c.get(LW(n,a))??[];v.appendChild(p({...e,isPlanned:s},t,a,y,l,g))}}s.appendChild(u),s.appendChild(v),f.appendChild(s)}}return{element:t,update:m}}function qW(e,t){let n=document.createElement(`div`);n.className=`sp-catalog-placements`;for(let r of e)n.appendChild(JW(r,t));return n}function JW(e,t){let n=document.createElement(`div`);n.className=`sp-catalog-placement`;let r=document.createElement(`span`);r.className=`sp-catalog-placement-icon`,n.appendChild(r);let i=document.createElement(`span`);i.className=`sp-catalog-placement-label`;let a=t.get(e.venueId)||e.venueId,o=e.roundSegment?` · Seg ${e.roundSegment.segmentNumber}/${e.roundSegment.segmentsCount}`:``;return i.textContent=`${XW(e.date)} · ${a}${o}`,n.appendChild(i),n}function YW(e,t){let n=document.createElement(`div`);n.className=`sp-split-ctl sp-split-ctl-stack`;for(let r of e){let e=document.createElement(`button`);e.type=`button`,e.className=`sp-split-chip sp-split-collapse`,e.title=`Remove this placement`,e.textContent=`×`,e.addEventListener(`click`,e=>{e.stopPropagation(),t(r.locator)}),n.appendChild(e)}return n}function XW(e){try{let t=new Date(`${e}T12:00:00`);return Number.isNaN(t.getTime())?e:`${t.toLocaleDateString(void 0,{weekday:`short`})} ${t.toLocaleDateString(void 0,{month:`short`})} ${t.getDate()}`}catch{return e}}function ZW(e){let t=document.createElement(`div`);t.className=HU();let n=document.createElement(`div`);n.className=UU();let r=document.createElement(`div`);r.className=WU(),r.textContent=`Issues`;let i=document.createElement(`div`);i.className=GU(),n.appendChild(r),n.appendChild(i),t.appendChild(n);let a=document.createElement(`div`);a.className=lW(),t.appendChild(a);function o(t){let n=t.issueIndex.all;if(i.textContent=`${n.length} total (${t.issueIndex.bySeverity.ERROR.length} errors)`,a.innerHTML=``,!n.length){let e=document.createElement(`div`);e.className=CW(),e.textContent=`No issues. Drag rounds into the board to build a profile.`,a.appendChild(e);return}for(let t of n.slice(0,30)){let n=document.createElement(`div`);n.className=uW(),t.severity===`ERROR`?n.classList.add(`error`):t.severity===`WARN`?n.classList.add(`warn`):n.classList.add(`info`);let r=document.createElement(`div`);r.className=dW(),r.textContent=`${t.severity} \u00b7 ${t.code}`;let i=document.createElement(`div`);if(i.className=fW(),i.textContent=t.message,n.appendChild(r),n.appendChild(i),t.fixActions?.length){let r=document.createElement(`div`);r.className=pW();for(let n of t.fixActions){let t=document.createElement(`button`);t.className=mW(),t.textContent=n.label??n.kind,t.addEventListener(`click`,()=>e.onFixAction(n)),r.appendChild(t)}n.appendChild(r)}a.appendChild(n)}}return{element:t,update:o}}var{ROUND_ROBIN:QW,ROUND_ROBIN_WITH_PLAYOFF:$W}=t.drawDefinitionConstants,eG=`Jump to prerequisite`;function tG({profile:e,availability:t,demand:n,dependencies:r,venueOrder:i}){let a=[];if(t?.isDateAvailable)for(let n of e){let e=t.isDateAvailable(n.scheduleDate);e.ok||a.push({code:`DATE_UNAVAILABLE`,severity:`ERROR`,message:`Can't schedule on ${n.scheduleDate} \u2014 day is unavailable${e.reason?`: `+e.reason:``}.`,context:{date:n.scheduleDate},fixActions:[{kind:`OPEN_AVAILABILITY_GRID`,date:n.scheduleDate,label:`Tune availability`}]})}a.push(...nG(e,t,n));let o=uG(e);for(let e of o){let t=e.round.roundSegment;t&&(Number.isInteger(t.segmentNumber)&&Number.isInteger(t.segmentsCount)&&t.segmentsCount>=2&&t.segmentNumber>=1&&t.segmentNumber<=t.segmentsCount||a.push({code:`INVALID_SEGMENT_CONFIG`,severity:`ERROR`,message:`Invalid segment configuration for ${PW(e.round)}.`,context:{locator:e.locator,date:e.locator.date,venueId:e.locator.venueId}}))}let s=new Map,c=new Map;for(let e of o){let t=e.round,n=NW(t);if(!t.roundSegment)s.has(n)?a.push({code:`DUPLICATE_ROUND`,severity:`ERROR`,message:`Round is planned more than once: ${PW(t)}.`,context:{scope:`${t.drawId}|${t.structureId}`,locator:e.locator,date:e.locator.date,venueId:e.locator.venueId},fixActions:[{kind:`JUMP_TO_ITEM`,locator:s.get(n),label:`Jump to existing`}]}):s.set(n,e.locator);else{let r=`${n}|${t.roundSegment.segmentNumber}/${t.roundSegment.segmentsCount}`;c.has(r)?a.push({code:`DUPLICATE_SEGMENT`,severity:`ERROR`,message:`Segment planned more than once: ${PW(t)}.`,context:{scope:`${t.drawId}|${t.structureId}`,locator:e.locator,date:e.locator.date,venueId:e.locator.venueId},fixActions:[{kind:`JUMP_TO_ITEM`,locator:c.get(r),label:`Jump to existing`}]}):c.set(r,e.locator)}}return a.push(...iG({profile:e,venueOrder:i})),r?.getRoundDependencies&&a.push(...cG(o,r)),a}function nG(e,t,n){if(!t?.getDayCapacityMinutes||!n?.estimateDayDemandMinutes)return[];let r=[];for(let i of e){let a=t.getDayCapacityMinutes(i.scheduleDate),o=n.estimateDayDemandMinutes(i.scheduleDate,e);if(a>0&&o>a){let e=Math.round((o-a)/60*10)/10;r.push({code:`DAY_OVERLOAD`,severity:`WARN`,message:`${i.scheduleDate} is overloaded by ~${e}h (${Math.round(o/60)}h planned vs ${Math.round(a/60)}h available).`,context:{date:i.scheduleDate},fixActions:[{kind:`OPEN_AVAILABILITY_GRID`,date:i.scheduleDate,label:`Tune availability`}]})}}return r}var rG=new Set([QW,$W]);function iG({profile:e}){let t=uG(e),n=aG(t),r=oG(t);return fG([...n,...r])}function aG(e){let t=[],n=dG(e,e=>`${e.round.structureId}|${e.locator.date}|${e.locator.venueId}`);for(let[e,r]of n.entries()){let n=r[0]?.round.structureType;if(!(n&&rG.has(n))){r.sort((e,t)=>e.locator.index-t.locator.index);for(let n=0;n<r.length;n++){let i=r[n],a=null;for(let e=n-1;e>=0;e--)if(r[e].round.roundNumber>i.round.roundNumber){a=r[e];break}if(!a)continue;let o=lG(r,n,a);t.push({code:`ROUND_ORDER_VIOLATION`,severity:`ERROR`,message:`Cannot place ${PW(i.round)} before ${PW(a.round)} in this venue.`,context:{scope:e,drawId:i.round.drawId,structureId:i.round.structureId,date:i.locator.date,venueId:i.locator.venueId,locator:i.locator,prerequisite:a.locator},fixActions:[{kind:`JUMP_TO_ITEM`,locator:a.locator,label:eG},...o.moveOffenderAfter?[{kind:`MOVE_ITEM_AFTER`,locator:i.locator,after:o.moveOffenderAfter,label:`Move offending round after prerequisite set`}]:[],...o.movePrereqBefore?[{kind:`MOVE_ITEM_BEFORE`,locator:a.locator,before:o.movePrereqBefore,label:`Move prerequisite before offending round`}]:[]]})}}}return t}function oG(e){let t=[],n=dG(e,e=>e.round.structureId);for(let[e,r]of n.entries()){let n=r[0]?.round.structureType;if(n&&rG.has(n))continue;let i=new Map;for(let e of r){let t=e.locator.date,n=i.get(t);n?n.push(e):i.set(t,[e])}let a=[...i.keys()].sort();if(a.length<2)continue;let o=-1/0,s=null;for(let n of a){let r=i.get(n);for(let i of r)i.round.roundNumber<o&&s&&t.push({code:`ROUND_ORDER_VIOLATION`,severity:`ERROR`,message:`${PW(s.round)} is scheduled on ${s.locator.date} but its prerequisite ${PW(i.round)} is on the later date ${n}.`,context:{scope:`cross-date|${e}`,drawId:s.round.drawId,structureId:e,date:s.locator.date,venueId:s.locator.venueId,locator:s.locator,prerequisite:i.locator,reason:`cross-date`},fixActions:[{kind:`JUMP_TO_ITEM`,locator:i.locator,label:eG}]});for(let e of r)e.round.roundNumber>o&&(o=e.round.roundNumber,s=e)}}return t}function sG(e,t){if(e.round.structureId!==t.round.structureId||e.locator.date!==t.locator.date||e.locator.venueId!==t.locator.venueId){if(e.locator.date<t.locator.date)return{code:`DEPENDENCY_VIOLATION`,severity:`ERROR`,message:`${PW(e.round)} is scheduled on ${e.locator.date} but depends on ${PW(t.round)} which is on the later date ${t.locator.date}.`,context:{date:e.locator.date,venueId:e.locator.venueId,locator:e.locator,prerequisite:t.locator,reason:`cross-date`},fixActions:[{kind:`JUMP_TO_ITEM`,locator:t.locator,label:eG}]};if(e.locator.date===t.locator.date&&e.locator.venueId===t.locator.venueId&&e.locator.index<t.locator.index)return{code:`DEPENDENCY_VIOLATION`,severity:`ERROR`,message:`${PW(e.round)} is listed before its prerequisite ${PW(t.round)} in the same venue on ${e.locator.date}.`,context:{date:e.locator.date,venueId:e.locator.venueId,locator:e.locator,prerequisite:t.locator,reason:`cross-structure-same-day`},fixActions:[{kind:`JUMP_TO_ITEM`,locator:t.locator,label:eG},{kind:`MOVE_ITEM_AFTER`,locator:e.locator,after:t.locator,label:`Move after prerequisite`},{kind:`MOVE_ITEM_BEFORE`,locator:t.locator,before:e.locator,label:`Move prerequisite before`}]}}}function cG(e,t){let n=[],r=dG(e,e=>NW(e.round));for(let[e,i]of r.entries()){let a=t.getRoundDependencies(e);if(a.length)for(let e of a){let t=r.get(e);if(t)for(let e of i)for(let r of t){let t=sG(e,r);t&&n.push(t)}}}return fG(n)}function lG(e,t,n){let r=e[t],i=e.indexOf(n);for(let t=i+1;t<e.length;t++)e[t].round.roundNumber>=n.round.roundNumber&&(i=t);return{moveOffenderAfter:e[i].locator,movePrereqBefore:r.locator}}function uG(e){let t=[];for(let n of e)for(let e of n.venues)for(let r=0;r<e.rounds.length;r++){let i=e.rounds[r];t.push({round:i,locator:{date:n.scheduleDate,venueId:e.venueId,index:r,roundKey:IW(i),roundSegment:i.roundSegment}})}return t}function dG(e,t){let n=new Map;for(let r of e){let e=t(r),i=n.get(e);i?i.push(r):n.set(e,[r])}return n}function fG(e){let t=new Set,n=[];for(let r of e){let e=r.code+`|`+r.message+`|`+(r.context?.scope??``)+`|`+JSON.stringify(r.context?.locator??{});t.has(e)||(t.add(e),n.push(r))}return n}function pG(e){let t={ERROR:[],WARN:[],INFO:[]},n={},r={},i={},a={total:e.length,ERROR:0,WARN:0,INFO:0,byDate:{},byVenue:{},byDraw:{}},o=e=>e===`ERROR`?0:e===`WARN`?1:2,s=(e,t)=>o(e.severity)-o(t.severity)||e.code.localeCompare(t.code)||e.message.localeCompare(t.message);for(let o of e){t[o.severity].push(o),a[o.severity]++;let e=o.context?.date??o.context?.locator?.date,s=o.context?.venueId??o.context?.locator?.venueId,c=o.context?.scope??(o.context?.drawId&&o.context?.structureId?`${o.context.drawId}|${o.context.structureId}`:void 0);e&&(n[e]??=[]).push(o),s&&(r[s]??=[]).push(o),c&&(i[c]??=[]).push(o),mG(a.byDate,e,o.severity),mG(a.byVenue,s,o.severity),mG(a.byDraw,c,o.severity)}for(let e of Object.keys(t))t[e].sort(s);for(let e of[n,r,i])for(let t of Object.keys(e))e[t].sort(s);return{all:e,bySeverity:t,byDate:n,byVenue:r,byDraw:i,counts:a}}function mG(e,t,n){if(!t)return;let r=e[t]??={total:0,ERROR:0,WARN:0,INFO:0};r.total++,r[n]++}function hG(e,t,n){let r=jW(e),{date:i,venueId:a}=n,o=_G(gG(r,i),a);if(t.type===`CATALOG_ROUND`){let e={tournamentId:t.roundRef.tournamentId,eventId:t.roundRef.eventId,eventName:t.roundRef.eventName,drawId:t.roundRef.drawId,drawName:t.roundRef.drawName,structureId:t.roundRef.structureId,structureType:t.roundRef.structureType,roundNumber:t.roundRef.roundNumber,roundName:t.roundRef.roundName};t.roundSegment&&(e.roundSegment=t.roundSegment);let i=MW(n.index,0,o.rounds.length);return o.rounds.splice(i,0,e),vG(o.rounds),{ok:!0,profile:r}}if(t.type===`PLANNED_ROUND`){let{locator:e}=t,s=_G(gG(r,e.date),e.venueId),[c]=s.rounds.splice(e.index,1);vG(s.rounds);let l=n.index;return e.date===i&&e.venueId===a&&e.index<l&&--l,l=MW(l,0,o.rounds.length),o.rounds.splice(l,0,c),vG(o.rounds),{ok:!0,profile:r}}return{ok:!1,profile:e}}function gG(e,t){let n=e.find(e=>e.scheduleDate===t);return n||(n={scheduleDate:t,venues:[]},e.push(n),e.sort((e,t)=>e.scheduleDate.localeCompare(t.scheduleDate))),n}function _G(e,t){let n=e.venues.find(e=>e.venueId===t);return n||(n={venueId:t,rounds:[]},e.venues.push(n)),n}function vG(e){for(let t=0;t<e.length;t++)e[t].sortOrder=t+1}function yG(e,t,n){return e.find(e=>e.scheduleDate===t)?.venues?.find(e=>e.venueId===n)?.rounds??[]}function bG(e,t){return(e.find(e=>e.scheduleDate===t.date)?.venues?.find(e=>e.venueId===t.venueId))?.rounds?.[t.index]??null}function xG(e,t){return e.filter(e=>SG(e.context?.locator,t)||SG(e.context?.prerequisite,t))}function SG(e,t){return!!e&&e.date===t.date&&e.venueId===t.venueId&&e.index===t.index}function CG(e){return e.length?e.some(e=>e.severity===`ERROR`)?`ERROR`:e.some(e=>e.severity===`WARN`)?`WARN`:`INFO`:null}function wG(e,t){let n=NW(t);for(let t of e)for(let e of t.venues)for(let r=0;r<e.rounds.length;r++){let i=e.rounds[r];if(NW(IW(i))===n)return{date:t.scheduleDate,venueId:e.venueId,index:r,roundKey:IW(i),roundSegment:i.roundSegment}}return null}var TG=class{constructor(e){this.listeners=new Set,this.config=e;let t={all:[],bySeverity:{ERROR:[],WARN:[],INFO:[]},byDate:{},byVenue:{},byDraw:{},counts:{total:0,ERROR:0,WARN:0,INFO:0,byDate:{},byVenue:{},byDraw:{}}};this.state={profileDraft:jW(e.initialProfile??[]),venues:e.venues,roundCatalog:e.roundCatalog,schedulableDates:e.schedulableDates,activeDates:e.activeDates,selectedDate:e.selectedDate??e.schedulableDates[0]??null,selectedLocator:null,ruleResults:[],issueIndex:t,catalogSearchQuery:``,catalogGroupBy:`event`,plannedRoundBehavior:e.plannedRoundBehavior??`dim`},this.revalidate()}getState(){return this.state}getSchedulingProfile(){return jW(this.state.profileDraft)}selectDate(e){this.state.selectedDate!==e&&this.setState({selectedDate:e,selectedLocator:null})}selectCard(e){this.setState({selectedLocator:e})}setCatalogSearch(e){this.setState({catalogSearchQuery:e})}setCatalogGroupBy(e){this.setState({catalogGroupBy:e})}navigateToRound(e){let t=wG(this.state.profileDraft,{tournamentId:e.tournamentId,eventId:e.eventId,drawId:e.drawId,structureId:e.structureId,roundNumber:e.roundNumber});t&&this.setState({selectedDate:t.date,selectedLocator:t})}dropRound(e,t){try{let n=hG(this.state.profileDraft,e,t);if(!n.ok)return{ok:!1,errorMessage:`Invalid drop operation`};let r=new Set(this.state.ruleResults.filter(e=>e.severity===`ERROR`).map(EG)),i=tG({profile:n.profile,availability:this.config.availabilityAdapter,demand:this.config.demandAdapter,dependencies:this.config.dependencyAdapter,venueOrder:this.config.venueOrder}).filter(e=>e.severity===`ERROR`).filter(e=>!r.has(EG(e)));return i.length?(this.addRejectionNotice(i[0].message),{ok:!1,errorMessage:i[0].message}):(this.commitProfile(n.profile),{ok:!0})}catch(e){return{ok:!1,errorMessage:String(e)}}}removeRound(e){let t=jW(this.state.profileDraft),n=t.find(t=>t.scheduleDate===e.date);if(!n)return;let r=n.venues.find(t=>t.venueId===e.venueId);if(r&&!(e.index<0||e.index>=r.rounds.length)){r.rounds.splice(e.index,1);for(let e=0;e<r.rounds.length;e++)r.rounds[e].sortOrder=e+1;this.commitProfile(t),this.state.selectedLocator?.date===e.date&&this.state.selectedLocator?.venueId===e.venueId&&this.state.selectedLocator?.index===e.index&&this.setState({selectedLocator:null})}}setNotBeforeTime(e,t){let n=jW(this.state.profileDraft),r=n.find(t=>t.scheduleDate===e.date);if(!r)return;let i=r.venues.find(t=>t.venueId===e.venueId);if(!i)return;let a=i.rounds[e.index];a&&(t?a.notBeforeTime=t:delete a.notBeforeTime,this.commitProfile(n))}applyFixAction(e){if(e.kind===`JUMP_TO_ITEM`&&e.locator){this.setState({selectedDate:e.locator.date,selectedLocator:e.locator});return}if(e.kind===`OPEN_AVAILABILITY_GRID`){this.config.onFixAction?.(e);return}if(e.kind===`MOVE_ITEM_AFTER`&&e.locator&&e.after){let t=DG(this.state.profileDraft,e.locator,e.after);this.commitProfile(t);return}if(e.kind===`MOVE_ITEM_BEFORE`&&e.locator&&e.before){let t=OG(this.state.profileDraft,e.locator,e.before);this.commitProfile(t);return}this.config.onFixAction?.(e)}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setState(e){this.state={...this.state,...e},this.emit()}commitProfile(e){this.state={...this.state,profileDraft:e},this.revalidate(),this.config.onProfileChanged?.(jW(e))}addRejectionNotice(e){let t={code:`DROP_REJECTED`,severity:`WARN`,message:`Drop rejected: ${e}`,context:{}},n=[...this.state.ruleResults.filter(e=>e.code!==`DROP_REJECTED`),t],r=pG(n);this.state={...this.state,ruleResults:n,issueIndex:r},this.emit()}revalidate(){let e=tG({profile:this.state.profileDraft,availability:this.config.availabilityAdapter,demand:this.config.demandAdapter,dependencies:this.config.dependencyAdapter,venueOrder:this.config.venueOrder}),t=pG(e);this.state={...this.state,ruleResults:e,issueIndex:t},this.emit()}emit(){for(let e of this.listeners)e(this.state)}};function EG(e){return`${e.code}|${e.context?.scope??``}|${e.context?.structureId??``}|${e.context?.date??``}`}function DG(e,t,n){let r=jW(e),i=kG(r,t);if(!i)return e;let a=AG(r,n.date,n.venueId),o=Math.min(a.length,n.index+1);return a.splice(o,0,i),r}function OG(e,t,n){let r=jW(e),i=kG(r,t);if(!i)return e;let a=AG(r,n.date,n.venueId),o=Math.max(0,Math.min(a.length,n.index));return a.splice(o,0,i),r}function kG(e,t){let n=e.find(e=>e.scheduleDate===t.date);if(!n)return null;let r=n.venues.find(e=>e.venueId===t.venueId);return!r||t.index<0||t.index>=r.rounds.length?null:r.rounds.splice(t.index,1)[0]}function AG(e,t,n){let r=e.find(e=>e.scheduleDate===t);r||(r={scheduleDate:t,venues:[]},e.push(r));let i=r.venues.find(e=>e.venueId===n);return i||(i={venueId:n,rounds:[]},r.venues.push(i)),i.rounds}function jG(e,t){let{round:n,locator:r,isSelected:i,severity:a}=e,o=document.createElement(`div`);o.className=oW(),i&&o.classList.add(`selected`),a===`ERROR`?o.classList.add(`error`):a===`WARN`&&o.classList.add(`warn`),o.draggable=!0,o.addEventListener(`dragstart`,e=>{e.stopPropagation(),e.dataTransfer.setDragImage(o,o.offsetWidth/2,20),e.dataTransfer.setData(`application/json`,JSON.stringify({type:`PLANNED_ROUND`,locator:r})),e.dataTransfer.effectAllowed=`copyMove`}),o.addEventListener(`click`,e=>{e.stopPropagation(),t.onClick(r)}),t.onContextMenu&&o.addEventListener(`contextmenu`,e=>{e.preventDefault(),e.stopPropagation(),t.onContextMenu(r,o)});let s=document.createElement(`div`);s.className=sW();let c=n.roundName&&!n.roundName.startsWith(`rn=`)?n.roundName:`Round `+n.roundNumber;s.textContent=(n.eventName?n.eventName+` — `:``)+c,o.appendChild(s);let l=document.createElement(`div`);l.className=cW(),l.textContent=[n.drawName||``,n.matchCountEstimate?`${n.matchCountEstimate} matches`:``].filter(Boolean).join(` · `),o.appendChild(l);let u=document.createElement(`div`);return u.className=QU(),n.roundSegment&&u.appendChild(MG(`Seg ${n.roundSegment.segmentNumber}/${n.roundSegment.segmentsCount}`,`seg`)),n.notBeforeTime&&u.appendChild(MG(`NB ${n.notBeforeTime}`,`nb`)),a===`ERROR`?u.appendChild(MG(`Error`,`err`)):a===`WARN`&&u.appendChild(MG(`Warn`,`warn`)),u.children.length&&o.appendChild(u),o}function MG(e,t){let n=document.createElement(`div`);return n.className=$U()+` `+t,n.textContent=e,n}function NG(e,t){let n=document.createElement(`div`);n.className=HU();let r=document.createElement(`div`);r.className=UU();let i=t?.titleLeadingActions,a=document.createElement(`div`);if(a.className=WU(),a.textContent=`Day Plan`,i){let e=document.createElement(`div`);e.className=qU();let t=Array.isArray(i)?i:[i];for(let n of t)e.appendChild(n);e.appendChild(a),r.appendChild(e)}else r.appendChild(a);let o=t?.headerActions;if(o){let e=document.createElement(`div`);e.className=KU();let t=Array.isArray(o)?o:[o];for(let n of t)e.appendChild(n);r.appendChild(e)}n.appendChild(r);let s=document.createElement(`div`);s.className=eW(),n.appendChild(s);function c(t){let n=t.selectedDate;s.innerHTML=``;let r=Math.max(1,t.venues.length);r>4?(s.classList.add(`sp-board-scroll`),s.style.gridTemplateColumns=``):(s.classList.remove(`sp-board-scroll`),s.style.gridTemplateColumns=`repeat(${r}, 1fr)`);for(let r of t.venues){let i=document.createElement(`div`);i.className=tW();let a=document.createElement(`div`);a.className=nW();let o=document.createElement(`div`),c=document.createElement(`div`);c.className=rW(),c.textContent=r.name;let l=document.createElement(`div`);l.className=iW(),l.textContent=``,o.appendChild(c),o.appendChild(l);let u=t.issueIndex.counts.byVenue[r.venueId],d=document.createElement(`div`);d.className=ZU(),u?.ERROR?(d.classList.add(`err`),d.textContent=`${u.ERROR} err`):u?.WARN?(d.classList.add(`warn`),d.textContent=`${u.WARN} warn`):(d.classList.add(`ok`),d.textContent=`OK`),a.appendChild(o),a.appendChild(d);let f=document.createElement(`div`);if(f.className=aW(),f.dataset.venue=r.venueId,n){let i=yG(t.profileDraft,n,r.venueId);if(!i.length){let e=document.createElement(`div`);e.className=CW(),e.textContent=`Drop rounds here.`,f.appendChild(e)}i.forEach((i,a)=>{let o={date:n,venueId:r.venueId,index:a,roundKey:IW(i),roundSegment:i.roundSegment},s=CG(xG(t.ruleResults,o)),c=jG({round:i,locator:o,isSelected:FW(t.selectedLocator,o),severity:s},{onClick:e.onCardClick,onContextMenu:e.onCardContextMenu});f.appendChild(c)})}else{let e=document.createElement(`div`);e.className=CW(),e.textContent=`Select a date to plan.`,f.appendChild(e)}let p=document.createElement(`div`);p.className=DW(),p.style.display=`none`,f.addEventListener(`dragover`,e=>{if(!n)return;e.preventDefault(),f.classList.add(`over`),e.dataTransfer.dropEffect=`move`;let t=FG(f,e.clientY,p),r=PG(f,p);p.style.display=``,t<r.length?f.insertBefore(p,r[t]):f.appendChild(p)}),f.addEventListener(`dragleave`,e=>{f.contains(e.relatedTarget)||(f.classList.remove(`over`),p.style.display=`none`)}),f.addEventListener(`drop`,t=>{if(f.classList.remove(`over`),p.style.display=`none`,t.preventDefault(),!n)return;let i;try{i=JSON.parse(t.dataTransfer.getData(`application/json`))}catch{return}let a=FG(f,t.clientY,p),o={date:n,venueId:r.venueId,index:a};e.onDrop(i,o)}),i.appendChild(a),i.appendChild(f),s.appendChild(i)}}return{element:n,update:c}}function PG(e,t){return Array.from(e.querySelectorAll(`[draggable="true"]`)).filter(e=>e!==t)}function FG(e,t,n){let r=PG(e,n);for(let e=0;e<r.length;e++){let n=r[e].getBoundingClientRect();if(t<n.top+n.height/2)return e}return r.length}function IG(e){let t=document.createElement(`div`);t.className=HU();let n=document.createElement(`div`);n.className=UU();let r=document.createElement(`div`);r.className=WU(),r.textContent=`Dates`;let i=document.createElement(`div`);i.className=GU(),n.appendChild(r),n.appendChild(i),t.appendChild(n);let a=document.createElement(`div`);a.className=JU(),t.appendChild(a);function o(t){i.textContent=`${t.schedulableDates.length} schedulable`,a.innerHTML=``;let n=t.activeDates?new Set(t.activeDates):null;for(let r of t.schedulableDates){let i=!n||n.has(r),o=t.issueIndex.counts.byDate[r],s=document.createElement(`div`);s.className=YU(),r===t.selectedDate&&s.classList.add(`selected`),i||s.classList.add(`inactive`),s.setAttribute(`data-date`,r);let c=document.createElement(`div`),l=document.createElement(`div`);l.style.cssText=`font-weight:800;font-size:12px`,l.textContent=r;let u=document.createElement(`div`);u.style.cssText=`font-size:11px;color:var(--sp-muted)`,u.textContent=i?`Active`:`Inactive`,c.appendChild(l),c.appendChild(u);let d=document.createElement(`div`);d.className=XU(),o?.ERROR&&d.appendChild(LG(`${o.ERROR} err`,`err`)),o?.WARN&&d.appendChild(LG(`${o.WARN} warn`,`warn`)),!o?.ERROR&&!o?.WARN&&d.appendChild(LG(`OK`,`ok`)),s.appendChild(c),s.appendChild(d),s.addEventListener(`click`,()=>e.onDateSelected(r)),a.appendChild(s)}}return{element:t,update:o}}function LG(e,t){let n=document.createElement(`div`);return n.className=ZU()+` `+t,n.textContent=e,n}var RG=class{constructor(e){this.container=null,this.store=new TG(e),this.popover=AW({onDelete:e=>{this.store.removeRound(e)},onSetNotBeforeTime:e=>{let t=prompt(`Enter not-before time (HH:MM):`,`10:00`);t!==null&&this.store.setNotBeforeTime(e,t||void 0)}});let t=IG({onDateSelected:e=>this.store.selectDate(e)}),n=ZW({onFixAction:e=>this.store.applyFixAction(e)}),r=NG({onDrop:(e,t)=>{this.store.dropRound(e,t)},onCardClick:e=>this.store.selectCard(e),onCardContextMenu:(e,t)=>{this.popover.show(t,e)}},{headerActions:e.headerActions,titleLeadingActions:e.titleLeadingActions}),i=KW({onSearchChange:e=>this.store.setCatalogSearch(e),onGroupByChange:e=>this.store.setCatalogGroupBy(e),onDropRemove:e=>this.store.removeRound(e),onNavigateToPlanned:e=>this.store.navigateToRound(e)});this.layout=kW({dateStrip:t,issuesPanel:n,venueBoard:r,roundCatalog:i},{hideLeft:e.hideLeft,catalogSide:e.catalogSide}),this.unsubscribe=this.store.subscribe(e=>{this.layout.update(e)}),this.layout.update(this.store.getState())}render(e){this.container=e,e.appendChild(this.layout.element)}destroy(){this.unsubscribe(),this.popover.destroy(),this.container&&this.layout.element.parentNode===this.container&&this.layout.element.remove(),this.container=null}getProfile(){return this.store.getSchedulingProfile()}getStore(){return this.store}};function zG(e,t){let n=new RG(e);return n.render(t),n}var BG=class{constructor(){this.selectedDay=null,this.selectedVenue=null,this.selectedCourt=null,this.layerVisibility=new Map,this.listeners=new Set}setSelectedDay(e){this.selectedDay!==e&&(this.selectedDay=e,this.emit({selectedDay:e}))}getSelectedDay(){return this.selectedDay}setSelectedVenue(e){this.selectedVenue!==e&&(this.selectedVenue=e,this.emit({selectedVenue:e}))}getSelectedVenue(){return this.selectedVenue}setSelectedCourt(e){this.selectedCourt!==e&&(this.selectedCourt=e,this.emit({selectedCourt:e}))}getSelectedCourt(){return this.selectedCourt}setLayerVisibility(e,t){this.layerVisibility.set(e,t),this.emit({layerVisibility:new Map(this.layerVisibility)})}getLayerVisibility(){return new Map(this.layerVisibility)}isLayerVisible(e){return this.layerVisibility.get(e)??!0}getSnapshot(){return{selectedDay:this.selectedDay,selectedVenue:this.selectedVenue,selectedCourt:this.selectedCourt,layerVisibility:new Map(this.layerVisibility)}}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}emit(e){let t={type:`VIEW_CHANGED`,payload:e};for(let e of this.listeners)e(t)}},VG=_({EventEmitter:()=>XY,PluginRegistry:()=>mq,TimepickerUI:()=>iX,default:()=>aX});function HG(e){let t={};return Object.entries(e).forEach(([e,n])=>{t[e]=n?{...n}:void 0}),FK.forEach(e=>LK(e,t,!1)),IK.forEach(e=>LK(e,t,!0)),[...FK,...IK].forEach(([e,n])=>delete t[e]?.[n]),t.clock&&zK(t.clock),t.ui&&BK(t.ui,t),t}function UG(e,t={}){let n=HG(t);return{...e,clock:{...e.clock,...n.clock},ui:{...e.ui,...n.ui},labels:{...e.labels,...n.labels},behavior:{...e.behavior,...n.behavior},callbacks:{...e.callbacks,...n.callbacks},timezone:{...e.timezone,...n.timezone},range:{...e.range,...n.range},wheel:{...e.wheel,...n.wheel},clearBehavior:{...e.clearBehavior,...n.clearBehavior}}}function WG(e={}){return UG(VK,e)}function GG(e){return e.clock.type===`24h`?`24h`:`12h`}function KG(e){return{clockType:GG(e),showSeconds:!!e.clock.showSeconds}}function qG(e){let t=e.ui.mode;return t===`wheel`||t===`compact-wheel`}function JG(e){return e.ui.mode===`compact-wheel`}function YG(e){return JG(e)&&!!e.wheel?.placement}function XG(e){return!!e.ui.inline?.enabled}function ZG(e){return!!e.ui.inline?.enabled&&!!e.ui.inline.embedded}function QG(e){return Pq.includes(window.getComputedStyle(e).overflowY)}function $G(e){let{style:t}=e,n=e.clientWidth,r=parseFloat(window.getComputedStyle(e).paddingRight)||0;Lq.push({element:e,overflowY:t.overflowY,paddingRight:t.paddingRight}),t.overflowY=`hidden`;let i=Math.max(0,e.clientWidth-n);return i>0&&(t.paddingRight=`${r+i}px`),i}function eK(){if(Iq===0){let{body:e,documentElement:t}=document,n=QG(e)?$G(e):0,r=$G(t);Rq=t.style.getPropertyValue(Nq),t.style.setProperty(Nq,`${Math.max(n,r)}px`)}Iq+=1}function tK(){if(Iq!==0&&(--Iq,Iq===0)){Lq.forEach(({element:e,overflowY:t,paddingRight:n})=>{e.style.overflowY=t,e.style.paddingRight=n});let e=document.documentElement;Rq?e.style.setProperty(Nq,Rq):e.style.removeProperty(Nq),Lq=[],Rq=``}}function nK(e,t){let n=e.trim().match(t.clockType===`12h`?Bq:Vq);if(!n)return null;let r={hour:Uq(n[1]),minutes:Uq(n[2])};return t.showSeconds&&(r.seconds=Uq(n[3]??`0`)),t.clockType===`12h`&&(r.type=n[4].toUpperCase()),r}function rK(e){return Hq.test(e)}function iK(e,t){let n=`${Uq(e.hour)}:${Uq(e.minutes)}`,r=t.showSeconds?`${n}:${Uq(e.seconds??`0`)}`:n;return t.clockType===`12h`&&e.type?`${r} ${e.type}`:r}function aK(e,t,n){return n===`24h`?{hour:Uq(e),...t,type:void 0}:{hour:Uq(e%12||12),...t,type:e>=12?`PM`:`AM`}}function oK(e,t,n){let r=Wq(parseInt(e.hour,10),e.type,t),i=n.showSeconds?Uq(e.seconds??`0`):void 0;return aK(r,{minutes:e.minutes,seconds:i},n.clockType)}function sK(e,t){let n=parseInt(e.hour,10);return Number.isNaN(n)?0:Wq(n,e.type,t)*3600}function cK(e,t){let n=parseInt(e.hour,10),r=parseInt(e.minutes,10),i=parseInt(e.seconds??`0`,10);return Number.isNaN(n)||Number.isNaN(r)||Number.isNaN(i)?0:Wq(n,e.type,t)*3600+r*60+i}function lK(e){return{degreesHours:Number(e.hour)*30,degreesMinutes:Number(e.minutes)*6}}function uK(e,t){let n=`${t}|${e}`,r=Qq.get(n);if(r!==void 0)return r;let i=e.split(`-`).map(e=>e.trim()),a=null;if(i.length===2){let n=nK(i[0],{clockType:t,showSeconds:!0}),r=nK(i[1],{clockType:t,showSeconds:!0});if(n&&r){let o=rK(i[1])?0:59;a={start:cK(n,t),end:cK(r,t)+o,source:e}}}return $q(n,a)}function dK(e,t){let n=rJ(e,t);for(let e=0;e<n.length;e++)for(let t=e+1;t<n.length;t++)if(n[e].start<=n[t].end&&n[t].start<=n[e].end)return[n[e].source,n[t].source];return null}function fK(e,t){return e?aJ(e.hours,t.hour)||aJ(e.minutes,t.minutes)||aJ(e.seconds,t.seconds)?!0:!e.intervals?.length&&!e.predicate?!1:oJ(e,rJ(e.intervals,e.clockType),cK(t,e.clockType)):!1}function pK(e,t,n){if(!e)return!1;if(aJ(e.hours,t.hour)||aJ(e.minutes,t.minutes))return!0;let r=cK(t,e.clockType),i=r-r%60;return sJ(e,rJ(e.intervals,e.clockType),i,n)}function mK(e,t,n){if(!e)return!1;if(aJ(e.hours,t.hour))return!0;if(!e.intervals?.length&&!e.predicate)return!1;let r=rJ(e.intervals,e.clockType),i=sK(t,e.clockType);for(let t=0;t<60;t++){let a=i+t*60;if(!aJ(e.minutes,t)&&!sJ(e,r,a,n))return!1}return!0}function hK(e,t,n,r){return t===`hour`?mK(e,n,r):t===`minutes`?pK(e,n,r):fK(e,n)}function gK(e,t,n,r){let i=n-t+1;for(let n=0;n<=i/2;n++)for(let a of[e+n,e-n]){let e=t+((a-t)%i+i)%i;if(!r(e))return e}return e}function _K(e){let t={hour:e.getHour()?.value,minutes:e.getMinutes()?.value,type:e.getActiveType()};return e.options.clock.showSeconds&&(t.seconds=e.getSeconds()?.value??`00`),t}function vK(e){queueMicrotask(()=>{throw e})}function yK(e){let t=new Map;return Object.assign(n=>{let r=t.get(n);if(r!==void 0)return r;let i=BJ(e,n);return t.set(n,i),i},{clear:()=>t.clear()})}function bK(e,t,n,r){e.on(n,r),t.push(()=>e.off(n,r))}function xK(e){e.splice(0).forEach(e=>e())}function SK(e){try{e.emit(`show`,{})}finally{e.emit(`open:request`,{})}}function CK(e,t){for(let[n,r]of qY)t.on(r,t=>{let r=e.options.callbacks[n];typeof r==`function`&&r(t)})}function wK(e){return{error:`${e} is not registered. Import and register it: PluginRegistry.register(${e})`}}function TK(e,t){for(let n of JY)n.needed(e.options)&&!mq.has(n.name)&&t.emit(`error`,wK(n.plugin))}function EK(e,t){let n=KG(e.options),r=nK(t,n);if(r){let e=n.showSeconds||rK(t)?iK(r,n):t;return{parsed:eX(r),inputText:e}}let i=$Y[n.clockType],a=nK(t,{...n,clockType:i});if(!a)return null;let o=oK(a,i,n);return{parsed:eX(o),inputText:iK(o,n)}}function DK(e){return{error:QY[GG(e.options)]}}function OK(e,t){tX(e.getHour(),t.hour)&&e.setDegreesHours(Number(t.hour)*30),tX(e.getMinutes(),t.minutes)&&e.setDegreesMinutes(Number(t.minutes)*6),tX(e.getSeconds(),t.seconds)&&e.setDegreesSeconds(Number(t.seconds)*6)}function kK(e,t){e.setDegreesHours(Number(t.hour)*30),e.setDegreesMinutes(Number(t.minutes)*6),t.seconds!==void 0&&e.setDegreesSeconds(Number(t.seconds)*6)}function AK(e,t){e.options.clock.type!==`24h`&&YK(e.getAM(),e.getPM(),t===`AM`?`AM`:`PM`)}function jK(e,t,n){if(qG(e.options)){t.getPlugin(`wheel`)?.scrollToValue?.(n.hour,n.minutes,n.type,n.seconds);return}let r=GG(e.options)===`24h`?void 0:n.type;if(t.clock.syncClockValue(n.hour,n.minutes,r,n.seconds))return;let i=e.getClockHand();i&&(i.style.transform=`rotateZ(${e.degreesHours||0}deg)`)}var MK,NK,PK,FK,IK,LK,RK,zK,BK,VK,HK,UK,WK,GK,KK,qK,JK,YK,XK,ZK,QK,$K,eq,tq,nq,rq,iq,aq,oq,sq,cq,lq,uq,dq,fq,pq,mq,hq,gq,_q,vq,yq,bq,xq,Sq,Cq,wq,Tq,Eq,Dq,Oq,kq,Aq,jq,Mq,Nq,Pq,Fq,Iq,Lq,Rq,zq,Bq,Vq,Hq,Uq,Wq,Gq,Kq,qq,Jq,Yq,Xq,Zq,Qq,$q,eJ,tJ,nJ,rJ,iJ,aJ,oJ,sJ,cJ,lJ,uJ,dJ,fJ,pJ,mJ,hJ,gJ,_J,vJ,yJ,bJ,xJ,SJ,CJ,wJ,TJ,EJ,DJ,OJ,kJ,AJ,jJ,MJ,NJ,PJ,FJ,IJ,LJ,RJ,zJ,BJ,VJ,HJ,UJ,WJ,GJ,KJ,qJ,JJ,YJ,XJ,ZJ,QJ,$J,eY,tY,nY,rY,iY,aY,oY,sY,cY,lY,uY,dY,fY,pY,mY,hY,gY,_Y,vY,yY,bY,xY,SY,CY,wY,TY,EY,DY,OY,kY,AY,jY,MY,NY,PY,FY,IY,LY,RY,zY,BY,VY,HY,UY,WY,GY,KY,qY,JY,YY,XY,ZY,QY,$Y,eX,tX,nX,rX,iX,aX,oX=h((()=>{MK=()=>typeof window>`u`,NK=()=>typeof document<`u`,PK=()=>new Intl.DateTimeFormat(void 0,{hour:`numeric`}).resolvedOptions().hour12?`12h`:`24h`,FK=[[`ui`,`viewSwitch`,`ui`,`enableSwitchIcon`],[`ui`,`allowPageScroll`,`ui`,`enableScrollbar`],[`ui`,`keyboardIcon`,`ui`,`iconTemplate`],[`ui`,`clockIcon`,`ui`,`iconTemplateMobile`],[`behavior`,`returnFocus`,`behavior`,`focusInputAfterClose`],[`timezone`,`list`,`timezone`,`whitelist`],[`labels`,`clockTitle`,`labels`,`time`],[`labels`,`keyboardTitle`,`labels`,`mobileTime`],[`labels`,`clock`,`labels`,`clockLabel`],[`labels`,`period`,`labels`,`periodLabel`],[`labels`,`timeFields`,`labels`,`timeLabel`],[`labels`,`range`,`labels`,`rangeSelectionLabel`],[`labels`,`switchToKeyboard`,`labels`,`switchToKeyboardLabel`],[`labels`,`switchToClock`,`labels`,`switchToClockLabel`],[`labels`,`rangeFrom`,`range`,`fromLabel`],[`labels`,`rangeTo`,`range`,`toLabel`],[`labels`,`timezone`,`timezone`,`label`]],IK=[[`labels`,`hour`,`labels`,`mobileHour`],[`labels`,`hour`,`labels`,`hourLabel`],[`labels`,`hour`,`labels`,`announceHour`],[`labels`,`minute`,`labels`,`mobileMinute`],[`labels`,`minute`,`labels`,`minuteLabel`],[`labels`,`minute`,`labels`,`announceMinute`],[`ui`,`appendModalSelector`,`ui`,`appendTo`]],LK=(e,t,n)=>{let[r,i,a,o]=e,s=t[r];if(!s||!(i in s))return;let c=t[a]??={};n&&o in c||(c[o]=s[i])},RK=e=>{if(e===`now`)return!0;if(e)return{time:e.time===`now`?void 0:e.time,updateInput:e.updateInput}},zK=e=>{`defaultTime`in e&&(e.currentTime=RK(e.defaultTime),delete e.defaultTime),`discreteHourJump`in e&&(e.smoothHourSnap=!e.discreteHourJump,delete e.discreteHourJump),e.type===`auto`&&(e.type=PK());let t=e.disabledTime;if(t&&`ranges`in t){let{ranges:n,...r}=t;e.disabledTime={...r,interval:n}}},BK=(e,t)=>{if(`initialView`in e&&(e.mobile=e.initialView===`keyboard`,delete e.initialView),!e.clearButton||typeof e.clearButton!=`object`)return;let{clearInput:n}=e.clearButton;e.clearButton=!0,n!==void 0&&((t.clearBehavior??={}).clearInput=n)},VK={clock:{type:`12h`,incrementHours:1,incrementMinutes:1,autoSwitchToMinutes:!0,showSeconds:!1,incrementSeconds:1,autoSwitchToSeconds:!0,disabledTime:void 0,currentTime:void 0},ui:{mode:`clock`,theme:`basic`,animation:!0,backdrop:!0,mobile:!1,enableSwitchIcon:!1,editable:!1,enableScrollbar:!1,cssClass:void 0,appendTo:``,iconTemplate:``,iconTemplateMobile:``,inline:void 0,clearButton:!1},labels:{am:`AM`,pm:`PM`,ok:`OK`,cancel:`Cancel`,time:`Select time`,mobileTime:`Enter Time`,mobileHour:`Hour`,mobileMinute:`Minute`,second:`Second`,clear:`Clear`,hourLabel:`Hour`,minuteLabel:`Minute`,clockLabel:`Clock`,periodLabel:`Period`,timeLabel:`Time`,format24Label:`24-hour`,rangeSelectionLabel:`Range selection`,switchToKeyboardLabel:`Switch to keyboard input`,switchToClockLabel:`Switch to clock`,toggleLabel:`Toggle`,timezoneSelectorLabel:`Timezone`,announceHour:`Hour`,announceMinute:`Minutes`,announceAmSelected:`AM selected`,announcePmSelected:`PM selected`,invalidTimeFormat:`Invalid time format`,announceCleared:`Time cleared`},behavior:{focusInputAfterClose:!1,focusTrap:!0,delayHandler:0,id:void 0},callbacks:{onOpen:void 0,onShow:void 0,onCancel:void 0,onConfirm:void 0,onUpdate:void 0,onSelectHour:void 0,onSelectMinute:void 0,onSelectSecond:void 0,onSelectAM:void 0,onSelectPM:void 0,onSelectPeriod:void 0,onSwitchView:void 0,onSwitchFace:void 0,onError:void 0,onTimezoneChange:void 0,onRangeConfirm:void 0,onRangeSwitch:void 0,onRangeValidation:void 0,onWheelScrollStart:void 0,onWheelScrollEnd:void 0,onClear:void 0},timezone:{enabled:!1,default:void 0,whitelist:void 0,label:`Timezone`},range:{enabled:!1,minDuration:void 0,maxDuration:void 0,linked:!0,fromLabel:`From`,toLabel:`To`},wheel:{placement:void 0,hideFooter:void 0,commitOnScroll:void 0,hideDisabled:void 0,ignoreOutsideClick:void 0},clearBehavior:{clearInput:!0}},HK=class{_degreesHours=null;_degreesMinutes=null;_degreesSeconds=null;_options;_isMobileView=!1;_isTouchMouseMove=!1;_disabledTime=null;_timePredicate=null;_cloned=null;_isModalRemove=!0;_isOpen=!1;_isInitialized=!1;_eventHandlersRegistered=!1;_isDestroyed=!1;_modalElement=null;element;instanceId;customId;constructor(e,t,n,r){this.element=e,this.instanceId=n,this.customId=r,this._options=t}get degreesHours(){return this._degreesHours}get degreesMinutes(){return this._degreesMinutes}get degreesSeconds(){return this._degreesSeconds}get options(){return this._options}get isMobileView(){return this._isMobileView}get isTouchMouseMove(){return this._isTouchMouseMove}get disabledTime(){return this._disabledTime}get timePredicate(){return this._timePredicate}get cloned(){return this._cloned}get isModalRemove(){return this._isModalRemove}get isOpen(){return this._isOpen}get isInitialized(){return this._isInitialized}get eventHandlersRegistered(){return this._eventHandlersRegistered}get isDestroyed(){return this._isDestroyed}setDegreesHours(e){this._degreesHours=e}setDegreesMinutes(e){this._degreesMinutes=e}setDegreesSeconds(e){this._degreesSeconds=e}setOptions(e){this._options=e}setIsMobileView(e){this._isMobileView=e}setIsTouchMouseMove(e){this._isTouchMouseMove=e}setDisabledTime(e){this._disabledTime=e}setTimePredicate(e){this._timePredicate=e}setCloned(e){this._cloned=e}setIsModalRemove(e){this._isModalRemove=e}setIsOpen(e){this._isOpen=e}setIsInitialized(e){this._isInitialized=e}setEventHandlersRegistered(e){this._eventHandlersRegistered=e}setIsDestroyed(e){this._isDestroyed=e}updateOptions(e){this._options=UG(this._options,e)}reset(){this._degreesHours=null,this._degreesMinutes=null,this._degreesSeconds=null,this._isTouchMouseMove=!1,this._disabledTime=null,this._timePredicate=null,this._cloned=null,this._isModalRemove=!0,this._isOpen=!1,this._isInitialized=!1,this._isDestroyed=!0,this._eventHandlersRegistered=!1,this._modalElement=null}q(e){return this.getModalElement()?.querySelector(e)??null}qMobile(e,t){return this._isMobileView?this.q(e):this.q(t)}getModalElement(){if(NK()===!1)return null;let e=this._modalElement;if(e?.isConnected&&e.dataset.ownerId===this.instanceId)return e;let t=document.querySelectorAll(`[data-owner-id]`);for(let e=0;e<t.length;e++)if(t[e].dataset.ownerId===this.instanceId)return this._modalElement=t[e],this._modalElement;return this._modalElement=null,null}getInput(){return this.element?.querySelector(`input`)}getClockFace(){return this.qMobile(`.tp-ui-clock-face.mobile`,`.tp-ui-clock-face:not(.mobile)`)??this.q(`.tp-ui-clock-face`)}getClockHand(){return this.qMobile(`.tp-ui-mobile-clock-wrapper .tp-ui-clock-hand`,`.tp-ui-clock-hand:not(.mobile)`)}getCircle(){return this.qMobile(`.tp-ui-mobile-clock-wrapper .tp-ui-circle-hand`,`.tp-ui-circle-hand:not(.mobile)`)}getTipsWrapper(){return this.qMobile(`.tp-ui-mobile-clock-wrapper .tp-ui-tips-wrapper`,`.tp-ui-tips-wrapper:not(.mobile)`)}getTipsWrapperFor24h(){return this.qMobile(`.tp-ui-mobile-clock-wrapper .tp-ui-tips-wrapper-24h`,`.tp-ui-tips-wrapper-24h:not(.mobile)`)}getMinutes(){return this.q(`.tp-ui-minutes`)}getSeconds(){return this.q(`.tp-ui-seconds`)}getHour(){return this.q(`.tp-ui-hour`)}getAM(){return this.q(`.tp-ui-am`)}getPM(){return this.q(`.tp-ui-pm`)}getHourText(){return this.q(`.tp-ui-hour-text`)}getMinutesText(){return this.q(`.tp-ui-minute-text`)}getSecondsText(){return this.q(`.tp-ui-second-text`)}getHeader(){return this.q(`.tp-ui-header`)}getInputWrappers(){return this.getModalElement()?.querySelectorAll(`.tp-ui-input-wrapper`)||null}getDots(){return this.q(`.tp-ui-dots`)}getMinutesTips(){return this.q(`.tp-ui-minutes-time`)}getHourTips(){return this.q(`.tp-ui-hour-time-12`)}getAllValueTips(){let e=this.getModalElement();return e?[...e.querySelectorAll(`.tp-ui-value-tips`),...e.querySelectorAll(`.tp-ui-value-tips-24h`)]:[]}getOpenElementData(){let e=this.element?.querySelectorAll(`[data-open]`);if(e?.length>0){let t=[];return e.forEach(({dataset:e})=>t.push(e.open??``)),[...new Set(t)]}return null}getOpenElement(){let e=Array.from(this.element.querySelectorAll(`[data-open]`));if(e.length===0){let e=this.getInput();return e?.setAttribute(`data-open`,`tp-ui-input`),[e]}let t=e[0].dataset.open;return e.filter(e=>e.dataset.open===t)}getCancelButton(){return this.q(`.tp-ui-cancel-btn`)}getOkButton(){return this.q(`.tp-ui-ok-btn`)}getActiveTypeMode(){return this.q(`.tp-ui-type-mode.active`)}getActiveType(){let e=this.getActiveTypeMode()?.dataset.type;return e===`AM`||e===`PM`?e:void 0}getKeyboardClockIcon(){return this.q(`.tp-ui-keyboard-icon`)}getFooter(){return this.q(`.tp-ui-footer`)}getWrapper(){return this.q(`.tp-ui-wrapper`)}},UK={MODAL_EXIT:150,TIPS_ANIMATION:401,MOBILE_TOGGLE:450,CLOCK_SCALE_DELAY:150,WRAPPER_TRANSITION:400,DROPDOWN_CLICK_DELAY:10,ANNOUNCE_DELAY:100,COMMIT_ON_SCROLL_DELAY:400},WK=(e,t)=>{if(!e)return;let n=e.querySelector(`.timepicker-announcer`);n&&(n.textContent=``,setTimeout(()=>{n.textContent=t},UK.ANNOUNCE_DELAY))},GK=(e,t,n)=>{e?.classList.toggle(t,n)},KK=(e,t,n)=>{n?e.getAttribute(t)!==n&&e.setAttribute(t,n):e.removeAttribute(t)},qK=(e,t)=>{e&&KK(e,`aria-pressed`,String(t))},JK=(e,t)=>{GK(e,`active`,t),qK(e,t)},YK=(e,t,n)=>{JK(e,n===`AM`),JK(t,n===`PM`)},XK=[`aria-label`,`aria-valuemin`,`aria-valuemax`,`aria-valuenow`,`aria-valuetext`],ZK=e=>{if(!e)return;let t=e.querySelector(`.tp-ui-clock-face`);if(!t)return;let n=e.querySelector(`input.active`)??e.querySelector(`.tp-ui-hour`);XK.forEach(e=>KK(t,e,n?.getAttribute(e)))},QK=(e,t)=>{if(!e)return;e.value=t;let n=parseInt(t,10),r=!Number.isNaN(n);KK(e,`aria-valuenow`,r&&String(n)),KK(e,`aria-valuetext`,r&&t),ZK(e.closest(`.tp-ui-modal`))},$K=e=>e.getAttribute(`aria-disabled`)===`true`||e.classList.contains(`disabled`),eq=(e,t)=>{e&&(GK(e,`disabled`,t),KK(e,`aria-disabled`,String(t)))},tq=`[role="button"], [tabindex], input, select, textarea`,nq=`button, a[href], summary, input[type="button"], input[type="submit"], input[type="reset"], input[type="image"]`,rq=e=>e.matches(tq)&&!e.matches(nq),iq=e=>e===`Enter`||e===` `,aq=(e,t)=>{if(!e)return()=>{};let n=n=>{$K(e)||t(n)},r=n=>{iq(n.key)&&rq(e)&&(n.key!==`Enter`&&n.preventDefault(),!$K(e)&&t(n))};return e.addEventListener(`click`,n),e.addEventListener(`keydown`,r),()=>{e.removeEventListener(`click`,n),e.removeEventListener(`keydown`,r)}},oq=`tp-ui-pointer`,sq=[`Shift`,`Control`,`Alt`,`Meta`],cq=e=>{let t=e.ownerDocument,n=()=>GK(e,oq,!0),r=t=>{sq.includes(t.key)||GK(e,oq,!1)};return e.addEventListener(`pointerdown`,n,!0),t.addEventListener(`keydown`,r,!0),()=>{e.removeEventListener(`pointerdown`,n,!0),t.removeEventListener(`keydown`,r,!0)}},lq=()=>typeof window>`u`||typeof window.matchMedia!=`function`?!1:window.matchMedia(`(prefers-reduced-motion: reduce)`).matches,uq=class{core;emitter;timeouts=[];constructor(e,t){this.core=e,this.emitter=t,this.setupEventListeners()}setupEventListeners(){this.emitter.on(`animation:clock`,()=>{this.handleAnimationSwitchTipsMode()})}clearAllTimeouts(){this.timeouts.forEach(clearTimeout),this.timeouts=[]}setAnimationToOpen(e=!1){let t=this.core.getModalElement();t&&(!e&&this.core.options.ui.animation&&t.offsetHeight,t.classList.add(`show`))}removeAnimationToClose(){return this.clearAllTimeouts(),this.core.getModalElement()?.classList.remove(`show`),this.core.options.ui.animation&&!lq()?UK.MODAL_EXIT:0}handleAnimationSwitchTipsMode(){let e=this.core.getClockHand();if(!e||!this.core.options.ui.animation||lq())return;this.emitter.emit(`animation:start`,{}),e.classList.add(`tp-ui-tips-animation`);let t=setTimeout(()=>{this.core.getClockHand()?.classList.remove(`tp-ui-tips-animation`),this.emitter.emit(`animation:end`,{})},UK.TIPS_ANIMATION);this.timeouts.push(t)}destroy(){this.clearAllTimeouts()}},dq=`<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="M160-200q-33 0-56.5-23.5T80-280v-400q0-33 23.5-56.5T160-760h640q33 0 56.5 23.5T880-680v400q0 33-23.5 56.5T800-200H160Zm0-80h640v-400H160v400Zm160-40h320v-80H320v80ZM200-440h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80ZM200-560h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80ZM160-280v-400 400Z"/></svg>`,fq=`<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="m612-292 56-56-148-148v-184h-80v216l172 172ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-400Zm0 320q133 0 226.5-93.5T800-480q0-133-93.5-226.5T480-800q-133 0-226.5 93.5T160-480q0 133 93.5 226.5T480-160Z"/></svg>`,pq=class{plugins=new Map;register(e){this.plugins.has(e.name)||this.plugins.set(e.name,e)}getAll(){return Array.from(this.plugins.values())}has(e){return this.plugins.has(e)}get(e){return this.plugins.get(e)}getTemplateProvider(e){return this.plugins.get(e)?.templateProvider}getClearHandler(e){return this.plugins.get(e)?.clearHandler}},mq=new pq,hq={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`},gq=e=>String(e??``).replace(/[&<>"']/g,e=>hq[e]),_q=[`00`,`13`,`14`,`15`,`16`,`17`,`18`,`19`,`20`,`21`,`22`,`23`],vq=[`12`,`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`,`10`,`11`],yq=[`00`,`05`,`10`,`15`,`20`,`25`,`30`,`35`,`40`,`45`,`50`,`55`],bq=(e,t,n)=>{let{timezone:{enabled:r,label:i}}=e;if(!r||!mq.has(`timezone`))return``;let a=gq(i??VK.timezone.label),o=gq(n);return`<div class="tp-ui-timezone ${t}">
|
|
224
|
+
`;se.open({title:t,content:p,buttons:d,onClose:f});let m=e=>{e?.[0]?.onClick&&(e[0].onClick(),se.close())};if(a){let e=a({anchorId:c,data:r,selectionLimit:i,onSelected:m});l=e.table,u=e.destroy;let t=o?o(l):()=>{},d=[{onKeyDown:e=>e.keyCode===8&&e.target.value.length===1&&t(``),onChange:e=>t(e.target.value),onKeyUp:e=>t(e.target.value),clearSearch:()=>t(``),placeholder:n||`Search`,location:uU,search:!0}],f=document.getElementById(s)||void 0;MU({table:l,target:f,items:d})}else{let e=document.getElementById(c);if(e){fU({container:e,options:r,onSelected:m});let t=t=>{let n=e.querySelectorAll(`[data-select-item]`),r=t.toLowerCase();n.forEach(e=>{let n=e.textContent?.toLowerCase()||``;e.style.display=!t||n.includes(r)?``:`none`})},i=[{onKeyUp:e=>t(e.target.value),clearSearch:()=>t(``),placeholder:n||`Search`,location:uU,search:!0}];MU({target:document.getElementById(s)||void 0,items:i})}}}function fU({container:e,options:t,onSelected:n}){let r=document.createElement(`div`);r.style.cssText=`max-height: 380px; overflow-y: auto; padding: 0.5em 0;`;for(let e of t){let t=document.createElement(`a`);t.setAttribute(`data-select-item`,``),t.className=`panel-block font-medium`,t.style.cssText=`cursor: pointer; padding: 0.5em 1em; display: block; text-decoration: none; color: inherit;`,t.innerHTML=e.label,t.onmouseenter=()=>t.style.backgroundColor=`#f5f5f5`,t.onmouseleave=()=>t.style.backgroundColor=``,t.onclick=t=>{t.stopPropagation(),n([e])},r.appendChild(t)}e.appendChild(r)}var pU=`none`;function mU(e){let t=document.createElement(`button`);return t.className=`button font-medium`,e.disabled&&(t.disabled=!0),e.class&&t.classList.add(e.class),e.id&&(t.id=e.id),e.intent&&t.classList.add(e.intent),e.toolTip?.content&&uy(t,e.toolTip),t.innerHTML=e.label,e.visible===!1&&(t.style.display=pU),t}var hU=`center`,gU=``,_U=`flex`,vU=`left`,yU=`none`,bU=`overlay`,xU=`right`,SU=({target:e})=>(t=[])=>{e.style.backgroundColor=t?.length?`var(--chc-hover-bg)`:gU;let n=(n,r,i)=>{let a=e.getElementsByClassName(`options_${n}`)[0];a&&(a.style.display=t?.length?r:i)};n(bU,_U,yU),n(vU,yU,_U),n(hU,yU,_U),n(xU,yU,_U)},CU=`center`,wU=`header`,TU=``,EU=`left`,DU=`none`,OU=`overlay`,kU=`right`,AU=`buttonBar`,jU=`top`;function MU(e){let{table:t,targetClassName:n,items:r=[],onSelection:i,selectItemFn:a}=e,{target:o}=e,s=!!o;if(!o&&n&&(o=document.getElementsByClassName(n)?.[0]),!o)return{elements:{},inputs:{}};let c=0,l=0,u={},d={},f;if(s){G(o);let e=BU();Object.assign(u,e.elements),o.appendChild(e.anchor)}let p=Object.assign({},...[OU,EU,CU,kU,wU].map(e=>{let t=o.getElementsByClassName(`options_${e}`)?.[0];return G(t),{[e]:t}}).filter(Boolean)),m=SU({table:t,target:o}),h=(e,n)=>{K(n.onClick)&&(e.stopPropagation(),n.disabled||n.onClick(e,t),n.stateChange&&m())},g={onClick:()=>{},location:kU};for(let e of r){let t={...g};fe(e)&&Object.assign(t,e);let n=p[t.location];if(!n){console.log(t.location,p);continue}t.location===OU&&(c+=1),t.location===wU&&(NU(t,o),l+=1);let r=PU(e,t,n,m,h,a,u,d);r?.focus&&(f=r.focus)}let _=o.getElementsByClassName(`panelHeader`)[0];_&&(_.style.display=l?TU:DU),t?._controlBarSelectionHandler&&t.off(`rowSelectionChanged`,t._controlBarSelectionHandler);let v=(e,t)=>{K(i)&&i(t),c&&m(t)};t&&(t._controlBarSelectionHandler=v),t?.on(`rowSelectionChanged`,v);let y=()=>m(t?.getSelectedRows?.()??[]);return!t||t.initialized?y():t.on(`tableBuilt`,y),f&&setTimeout(()=>f.focus(),200),{elements:u,inputs:d}}function NU(e,t){if(K(e.headerClick)){let n=t.getElementsByClassName(`panelHeader`)[0];n&&(n.onclick=e.headerClick)}}function PU(e,t,n,r,i,a,o,s){if(!t.hide&&(t.input||t.placeholder||t.search)){let r=FU(e,t);return t.id&&(s[t.id]=r.input),t.id&&(o[t.id]=r.elem,r.elem.id=t.id),n?.appendChild(r.elem),t.focus?{focus:r.input}:void 0}if(!t.hide&&t.text){let e=document.createElement(`div`);e.className=`font-medium`,t.id&&(o[t.id]=e,e.id=t.id),e.innerHTML=t.text,e.onclick=e=>i(e,t),n?.appendChild(e);return}(t.id||t?.label&&!t.hide)&&(LU(t,n,r,i,a,o),(!(t?.label||t.tabs)||t.hide)&&o[t.id]&&(o[t.id].style.display=DU))}function FU(e,t){let n=document.createElement(`p`);n.className=`control ${t.search?`has-icons-left has-icons-right`:``}`;let r=document.createElement(`input`);if(r.className=`input font-medium`,r.setAttribute(`type`,`text`),r.setAttribute(`autocomplete`,`off`),r.setAttribute(`placeholder`,e.placeholder||TU),t.id&&r.setAttribute(`id`,t.id),t.onKeyDown&&r.addEventListener(`keydown`,e=>t.onKeyDown(e,t)),t.onChange&&r.addEventListener(`change`,e=>t.onChange(e,t)),t.onKeyUp&&r.addEventListener(`keyup`,e=>{t.clearSearch&&e.key===`Escape`&&(e.stopPropagation(),r.value=``,t.clearSearch()),t.onKeyUp(e,t)}),t.class&&r.classList.add(t.class),t.visible===!1&&(n.style.display=DU),t.value&&(r.value=t.value),n.appendChild(r),t.search&&IU(n,r,t),e.validator){let t=document.createElement(`p`);t.className=`help font-medium`,n.appendChild(t),r.addEventListener(`input`,n=>mn(e,n,r,t,e.validator))}return{elem:n,input:r}}function IU(e,t,n){let r=document.createElement(`span`);if(r.className=`icon is-small is-left font-medium`,r.innerHTML=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="16" height="16" fill="currentColor"><path d="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"/></svg>`,e.appendChild(r),K(n.clearSearch)){let r=document.createElement(`span`);r.className=`icon is-small is-right font-medium`,r.style.pointerEvents=`all`,r.style.cursor=`pointer`,r.innerHTML=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="16" height="16" fill="#dddada"><path d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"/></svg>`,r.onclick=e=>{e.stopPropagation(),t.value=``,n.clearSearch(),i()};let i=()=>{r.style.display=t.value?``:`none`};t.addEventListener(`input`,i),i(),e.appendChild(r)}}function LU(e,t,n,r,i,a){if(e.options){let r=lU({target:t,button:e,stateChange:n});e.visible===!1&&(r.style.display=DU),e.id&&(a[e.id]=r)}else if(fe(e.selection))RU(e,t,n,i,a);else if(e.tabs)zU(e,t,a);else{let n=mU(e);n.onclick=t=>r(t,e),e.id&&(a[e.id]=n),t?.appendChild(n)}}function RU(e,t,n,r,i){let{selection:{options:a,actions:o},actionPlacement:s,threshold:c=8,...l}=e;if(a?.length<c){a.length&&(s===jU?a.unshift({divider:!0}):a.push({divider:!0})),o.forEach(e=>{let{label:t,...n}=e,r={...n,label:`<p style="font-weight: bold">${t}</p>`};s===jU?a.unshift(r):a.push(r)});let r={...l,options:a},c=lU({target:t,button:r,stateChange:n});r.visible===!1&&(c.style.display=DU),r.id&&(i[e.id]=c)}else{let n=mU(e),o=r||dU;n.onclick=t=>{t.stopPropagation(),o({title:e.selectionTitle||`Select`,options:a})},e.id&&(i[e.id]=n),t?.appendChild(n)}}function zU(e,t,n){let r=document.createElement(`div`);r.className=`tabs is-toggle is-toggle-rounded`;let i=document.createElement(`ul`);r.appendChild(i),e.tabs.forEach(t=>{let n=document.createElement(`li`);t.active&&n.classList.add(`is-active`);let r=document.createElement(`a`);n.appendChild(r),r.onclick=r=>{i.querySelectorAll(`li`).forEach(e=>e.classList.remove(`is-active`)),n.classList.add(`is-active`),K(t.onClick)&&t.onClick(r,e)};let a=document.createElement(`span`);a.innerHTML=t.label,r.appendChild(a),i.appendChild(n)}),e.id&&(n[e.id]=r),t.appendChild(r)}function BU(){let e=document.createElement(`div`);e.className=`panel_container flexcol flexcenter`;let t=document.createElement(`div`);t.className=`panelHeader options_header`,t.style.display=DU,e.appendChild(t);let n=document.createElement(`div`);n.className=AU;let r={optionsOverlay:document.createElement(`div`),optionsLeft:document.createElement(`div`),optionsCenter:document.createElement(`div`),optionsRight:document.createElement(`div`)};r.optionsOverlay.className=`options_overlay`,r.optionsCenter.className=`options_center`,r.optionsRight.className=`options_right`,r.optionsLeft.className=`options_left`;for(let e of Object.values(r))n.appendChild(e);return e.appendChild(n),{elements:r,anchor:e,header:t}}var VU=()=>`sp-layout`,HU=()=>`sp-column`,UU=()=>`sp-panel`,WU=()=>`sp-panel-header`,GU=()=>`sp-panel-title`,KU=()=>`sp-panel-meta`,qU=()=>`sp-panel-actions`,JU=()=>`sp-panel-leading`,YU=()=>`sp-date-strip`,XU=()=>`sp-date-chip`,ZU=()=>`sp-badges`,QU=()=>`sp-badge`,$U=()=>`sp-chips`,eW=()=>`sp-chip`,tW=()=>`sp-board`,nW=()=>`sp-venue`,rW=()=>`sp-venue-header`,iW=()=>`sp-venue-title`,aW=()=>`sp-venue-sub`,oW=()=>`sp-dropzone`,sW=()=>`sp-card`,cW=()=>`sp-card-title`,lW=()=>`sp-card-meta`,uW=()=>`sp-issues`,dW=()=>`sp-issue`,fW=()=>`sp-issue-code`,pW=()=>`sp-issue-msg`,mW=()=>`sp-issue-actions`,hW=()=>`sp-btn sp-btn--sm`,gW=()=>`sp-catalog`,_W=()=>`sp-catalog-toolbar`,vW=()=>`sp-input`,yW=()=>`sp-select`,bW=()=>`sp-group`,xW=()=>`sp-group-header`,SW=()=>`sp-group-body`,CW=()=>`sp-catalog-item`,wW=()=>`sp-small`,TW=()=>`sp-popover-item`,EW=()=>`sp-popover-delete`,DW=()=>`sp-popover-divider`,OW=()=>`sp-insertion-line`,kW=()=>`sp-group-chevron`;function AW(e,t){let n=!!t?.hideLeft,r=t?.catalogSide===`left`,i=document.createElement(`div`);if(i.className=VU(),n)r?i.classList.add(`sp-catalog-left`):i.classList.add(`sp-no-left`);else{let t=document.createElement(`div`);t.className=HU(),t.appendChild(e.dateStrip.element),e.issuesPanel.element.style.flex=`1`,e.issuesPanel.element.style.minHeight=`0`,t.appendChild(e.issuesPanel.element),i.appendChild(t)}let a=document.createElement(`div`);a.className=HU(),e.venueBoard.element.style.flex=`1`,e.venueBoard.element.style.minHeight=`0`,a.appendChild(e.venueBoard.element);let o=document.createElement(`div`);o.className=HU(),e.roundCatalog.element.style.flex=`1 1 0`,e.roundCatalog.element.style.minHeight=`0`,o.appendChild(e.roundCatalog.element),r&&n?(i.appendChild(o),i.appendChild(a)):(i.appendChild(a),i.appendChild(o));function s(t){n||(e.dateStrip.update(t),e.issuesPanel.update(t)),e.venueBoard.update(t),e.roundCatalog.update(t)}return{element:i,update:s}}function jW(e){let t=null,n=null;function r(e){return`${e.date}|${e.venueId}|${e.index}`}function i(){t&&(t.destroy(),t=null,n=null)}function a(t){let n=document.createElement(`div`);n.style.cssText=`font-family:sans-serif; font-size:13px; min-width:150px;`;let r=document.createElement(`div`);r.className=TW(),r.textContent=`Set Not Before Time`,r.addEventListener(`click`,()=>{i(),e.onSetNotBeforeTime(t)}),n.appendChild(r);let a=document.createElement(`div`);a.className=DW(),n.appendChild(a);let o=document.createElement(`div`);return o.className=EW(),o.textContent=`Remove Round`,o.addEventListener(`click`,()=>{i(),e.onDelete(t)}),n.appendChild(o),n}return{show(e,o){let s=r(o);if(n===s){i();return}i();let c=uy(e,{content:a(o),allowHTML:!0,interactive:!0,trigger:`manual`,placement:`bottom`,appendTo:document.body,onHidden:()=>{t=null,n=null}});t=c,n=s,c.show()},destroy(){i()},isActiveFor(e){return n===r(e)}}}function MW(e){return structuredClone(e)}function NW(e,t,n){return Math.max(t,Math.min(n,e))}function PW(e){return`${e.tournamentId}|${e.eventId}|${e.drawId}|${e.structureId}|${e.roundNumber}`}function FW(e){return`${e.eventName?`${e.eventName} \u2013 `:``}${e.roundName??`Round ${e.roundNumber}`}${e.roundSegment?` (seg ${e.roundSegment.segmentNumber}/${e.roundSegment.segmentsCount})`:``}`}function IW(e,t){return!e||!t?!1:e.date===t.date&&e.venueId===t.venueId&&e.index===t.index}function LW(e){return{tournamentId:e.tournamentId,eventId:e.eventId,drawId:e.drawId,structureId:e.structureId,roundNumber:e.roundNumber}}function RW(e,t){return`${e}|${t.segmentNumber}/${t.segmentsCount}`}function zW(e){let t=new Map;for(let n of e)for(let e of n.venues)for(let r=0;r<e.rounds.length;r++){let i=e.rounds[r],a=PW(i),o=i.roundSegment,s=o?RW(a,o):a,c={locator:{date:n.scheduleDate,venueId:e.venueId,index:r,roundKey:LW(i),roundSegment:o},date:n.scheduleDate,venueId:e.venueId,roundSegment:o},l=t.get(s);l?l.push(c):t.set(s,[c])}return t}function BW(e){let t=new Map;for(let n of e)for(let e of n.venues)for(let n of e.rounds){if(!n.roundSegment)continue;let e=PW(n),r=t.get(e)??0;n.roundSegment.segmentsCount>r&&t.set(e,n.roundSegment.segmentsCount)}return t}function VW(e,t,n,r=`dim`){let i=t.toLowerCase().trim();return e.filter(e=>r===`hide`&&n.has(PW(e))?!1:!i||`${e.eventName} ${e.drawName??``} ${e.roundName??``} ${e.drawId}`.toLowerCase().includes(i)).map(e=>({...e,isPlanned:n.has(PW(e))}))}function HW(e,t){let n=new Map,r=e=>t===`draw`?`${e.eventName} \u2014 ${e.drawName??e.drawId}`:t===`round`?e.roundName??`Round ${e.roundNumber}`:e.eventName;for(let t of e){let e=r(t),i=n.get(e);i?i.push(t):n.set(e,[t])}return new Map([...n.entries()].sort((e,t)=>e[0].localeCompare(t[0],void 0,{numeric:!0})))}function UW(e){let t=new Set;for(let n of e)for(let e of n.venues)for(let n of e.rounds)n.roundSegment||t.add(PW(n));return t}function WW(e){let t=new Set;for(let n of e)for(let e of n.venues)for(let n of e.rounds)if(n.roundSegment){let e=PW(n);t.add(RW(e,n.roundSegment))}return t}var GW=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function KW(e){return GW.test(e)}function qW(e){let t=document.createElement(`div`);t.className=UU(),t.style.overflowY=`auto`,t.style.scrollbarWidth=`thin`,t.style.scrollbarColor=`var(--sp-scrollbar) transparent`;let n=new Set,r=new Map,i=null,a=document.createElement(`div`);a.className=WU();let o=document.createElement(`div`);o.className=GU(),o.textContent=`Round Catalog`;let s=document.createElement(`div`);s.className=KU(),a.appendChild(o),a.appendChild(s),t.appendChild(a);let c=document.createElement(`div`);c.className=_W();let l=document.createElement(`input`);l.type=`text`,l.placeholder=`Search rounds...`,l.className=vW(),l.addEventListener(`input`,()=>e.onSearchChange(l.value));let u=sO(l,()=>{l.value=``,e.onSearchChange(``),l.focus()}),d=document.createElement(`select`);d.className=yW();for(let[e,t]of[[`event`,`By Event`],[`draw`,`By Draw`],[`round`,`By Round`]]){let n=document.createElement(`option`);n.value=e,n.textContent=t,d.appendChild(n)}d.addEventListener(`change`,()=>e.onGroupByChange(d.value)),c.appendChild(u),c.appendChild(d),t.appendChild(c);let f=document.createElement(`div`);f.className=gW(),t.appendChild(f),f.addEventListener(`dragover`,e=>{e.preventDefault(),f.classList.add(`over`),e.dataTransfer.dropEffect=`move`}),f.addEventListener(`dragleave`,e=>{f.contains(e.relatedTarget)||f.classList.remove(`over`)}),f.addEventListener(`drop`,t=>{if(f.classList.remove(`over`),t.preventDefault(),!e.onDropRemove)return;let n;try{n=JSON.parse(t.dataTransfer.getData(`application/json`))}catch{return}n.type===`PLANNED_ROUND`&&e.onDropRemove(n.locator)});function p(t,n,i,a,o,s){let c=document.createElement(`div`);c.className=CW(),i&&c.classList.add(`segment`),t.isPlanned?(c.classList.add(n===`navigate`?`navigate`:`dimmed`),c.draggable=!1,n===`navigate`&&c.addEventListener(`click`,()=>{e.onNavigateToPlanned?.(t)})):(c.draggable=!0,c.addEventListener(`dragstart`,e=>{e.stopPropagation(),e.dataTransfer.setDragImage(c,c.offsetWidth/2,20);let n={type:`CATALOG_ROUND`,roundRef:t};i&&(n.roundSegment=i),e.dataTransfer.setData(`application/json`,JSON.stringify(n)),e.dataTransfer.effectAllowed=`copyMove`}));let l=document.createElement(`div`);l.className=cW();let u=t.roundName&&!t.roundName.startsWith(`rn=`)?t.roundName:`Round `+t.roundNumber,d=i?` \u00b7 Seg ${i.segmentNumber}/${i.segmentsCount}`:``;l.textContent=`${t.eventName} \u2014 ${u}${d}`;let f=document.createElement(`div`);f.className=lW();let p=i&&t.matchCountEstimate?Math.round(t.matchCountEstimate/i.segmentsCount):t.matchCountEstimate,m=p?` · `+p+` matches`:``,h=t.drawName&&!KW(t.drawName)?t.drawName:``;if(f.textContent=h?`${h}${m}`:m.replace(` · `,``)||``,c.appendChild(l),c.appendChild(f),o.length&&n!==`navigate`&&(c.appendChild(JW(o,s)),e.onDropRemove&&c.appendChild(XW(o,e.onDropRemove))),!(t.isPlanned&&n!==`navigate`)&&!t.isPlanned){let e=document.createElement(`div`);e.className=`sp-split-ctl`;let n=PW(t);if(i){let t=document.createElement(`button`);t.type=`button`,t.className=`sp-split-chip sp-split-collapse`,t.title=`Collapse to whole round`,t.textContent=`×`,t.addEventListener(`click`,e=>{e.stopPropagation(),r.delete(n),a()}),e.appendChild(t)}else for(let[t,i,o]of[[`½`,2,`Split into halves`],[`¼`,4,`Split into quarters`]]){let s=document.createElement(`button`);s.type=`button`,s.className=`sp-split-chip`,s.title=o,s.textContent=t,s.addEventListener(`click`,e=>{e.stopPropagation(),r.set(n,i),a()}),e.appendChild(s)}c.appendChild(e)}return c}function m(e){i=e;let t=e.plannedRoundBehavior,a=UW(e.profileDraft),o=WW(e.profileDraft),c=zW(e.profileDraft),h=BW(e.profileDraft),g=new Map(e.venues.map(e=>[e.venueId,e.name])),_=VW(e.roundCatalog,e.catalogSearchQuery,a,t),v=HW(_,e.catalogGroupBy),y=()=>i&&m(i);s.textContent=`${_.length} rounds`,l.value!==e.catalogSearchQuery&&(l.value=e.catalogSearchQuery,cO(u)),d.value!==e.catalogGroupBy&&(d.value=e.catalogGroupBy),f.innerHTML=``;for(let[e,a]of v){let s=document.createElement(`div`);s.className=bW();let l=n.has(e),u=document.createElement(`div`);u.className=xW();let d=document.createElement(`span`);d.className=kW(),d.textContent=l?`▶`:`▼`;let _=document.createElement(`span`);_.textContent=e,u.appendChild(d),u.appendChild(_),u.addEventListener(`click`,()=>{n.has(e)?n.delete(e):n.add(e),i&&m(i)});let v=document.createElement(`div`);v.className=SW(),l&&(v.style.display=`none`);for(let e of a){let n=PW(e),i=r.get(n)??h.get(n);if(!i){let r=c.get(n)??[];v.appendChild(p(e,t,void 0,y,r,g));continue}for(let r=1;r<=i;r++){let a={segmentNumber:r,segmentsCount:i},s=e.isPlanned||o.has(RW(n,a));if(s&&t===`hide`)continue;let l=c.get(RW(n,a))??[];v.appendChild(p({...e,isPlanned:s},t,a,y,l,g))}}s.appendChild(u),s.appendChild(v),f.appendChild(s)}}return{element:t,update:m}}function JW(e,t){let n=document.createElement(`div`);n.className=`sp-catalog-placements`;for(let r of e)n.appendChild(YW(r,t));return n}function YW(e,t){let n=document.createElement(`div`);n.className=`sp-catalog-placement`;let r=document.createElement(`span`);r.className=`sp-catalog-placement-icon`,n.appendChild(r);let i=document.createElement(`span`);i.className=`sp-catalog-placement-label`;let a=t.get(e.venueId)||e.venueId,o=e.roundSegment?` · Seg ${e.roundSegment.segmentNumber}/${e.roundSegment.segmentsCount}`:``;return i.textContent=`${ZW(e.date)} · ${a}${o}`,n.appendChild(i),n}function XW(e,t){let n=document.createElement(`div`);n.className=`sp-split-ctl sp-split-ctl-stack`;for(let r of e){let e=document.createElement(`button`);e.type=`button`,e.className=`sp-split-chip sp-split-collapse`,e.title=`Remove this placement`,e.textContent=`×`,e.addEventListener(`click`,e=>{e.stopPropagation(),t(r.locator)}),n.appendChild(e)}return n}function ZW(e){try{let t=new Date(`${e}T12:00:00`);return Number.isNaN(t.getTime())?e:`${t.toLocaleDateString(void 0,{weekday:`short`})} ${t.toLocaleDateString(void 0,{month:`short`})} ${t.getDate()}`}catch{return e}}function QW(e){let t=document.createElement(`div`);t.className=UU();let n=document.createElement(`div`);n.className=WU();let r=document.createElement(`div`);r.className=GU(),r.textContent=`Issues`;let i=document.createElement(`div`);i.className=KU(),n.appendChild(r),n.appendChild(i),t.appendChild(n);let a=document.createElement(`div`);a.className=uW(),t.appendChild(a);function o(t){let n=t.issueIndex.all;if(i.textContent=`${n.length} total (${t.issueIndex.bySeverity.ERROR.length} errors)`,a.innerHTML=``,!n.length){let e=document.createElement(`div`);e.className=wW(),e.textContent=`No issues. Drag rounds into the board to build a profile.`,a.appendChild(e);return}for(let t of n.slice(0,30)){let n=document.createElement(`div`);n.className=dW(),t.severity===`ERROR`?n.classList.add(`error`):t.severity===`WARN`?n.classList.add(`warn`):n.classList.add(`info`);let r=document.createElement(`div`);r.className=fW(),r.textContent=`${t.severity} \u00b7 ${t.code}`;let i=document.createElement(`div`);if(i.className=pW(),i.textContent=t.message,n.appendChild(r),n.appendChild(i),t.fixActions?.length){let r=document.createElement(`div`);r.className=mW();for(let n of t.fixActions){let t=document.createElement(`button`);t.className=hW(),t.textContent=n.label??n.kind,t.addEventListener(`click`,()=>e.onFixAction(n)),r.appendChild(t)}n.appendChild(r)}a.appendChild(n)}}return{element:t,update:o}}var{ROUND_ROBIN:$W,ROUND_ROBIN_WITH_PLAYOFF:eG}=t.drawDefinitionConstants,tG=`Jump to prerequisite`;function nG({profile:e,availability:t,demand:n,dependencies:r,venueOrder:i}){let a=[];if(t?.isDateAvailable)for(let n of e){let e=t.isDateAvailable(n.scheduleDate);e.ok||a.push({code:`DATE_UNAVAILABLE`,severity:`ERROR`,message:`Can't schedule on ${n.scheduleDate} \u2014 day is unavailable${e.reason?`: `+e.reason:``}.`,context:{date:n.scheduleDate},fixActions:[{kind:`OPEN_AVAILABILITY_GRID`,date:n.scheduleDate,label:`Tune availability`}]})}a.push(...rG(e,t,n));let o=dG(e);for(let e of o){let t=e.round.roundSegment;t&&(Number.isInteger(t.segmentNumber)&&Number.isInteger(t.segmentsCount)&&t.segmentsCount>=2&&t.segmentNumber>=1&&t.segmentNumber<=t.segmentsCount||a.push({code:`INVALID_SEGMENT_CONFIG`,severity:`ERROR`,message:`Invalid segment configuration for ${FW(e.round)}.`,context:{locator:e.locator,date:e.locator.date,venueId:e.locator.venueId}}))}let s=new Map,c=new Map;for(let e of o){let t=e.round,n=PW(t);if(!t.roundSegment)s.has(n)?a.push({code:`DUPLICATE_ROUND`,severity:`ERROR`,message:`Round is planned more than once: ${FW(t)}.`,context:{scope:`${t.drawId}|${t.structureId}`,locator:e.locator,date:e.locator.date,venueId:e.locator.venueId},fixActions:[{kind:`JUMP_TO_ITEM`,locator:s.get(n),label:`Jump to existing`}]}):s.set(n,e.locator);else{let r=`${n}|${t.roundSegment.segmentNumber}/${t.roundSegment.segmentsCount}`;c.has(r)?a.push({code:`DUPLICATE_SEGMENT`,severity:`ERROR`,message:`Segment planned more than once: ${FW(t)}.`,context:{scope:`${t.drawId}|${t.structureId}`,locator:e.locator,date:e.locator.date,venueId:e.locator.venueId},fixActions:[{kind:`JUMP_TO_ITEM`,locator:c.get(r),label:`Jump to existing`}]}):c.set(r,e.locator)}}return a.push(...aG({profile:e,venueOrder:i})),r?.getRoundDependencies&&a.push(...lG(o,r)),a}function rG(e,t,n){if(!t?.getDayCapacityMinutes||!n?.estimateDayDemandMinutes)return[];let r=[];for(let i of e){let a=t.getDayCapacityMinutes(i.scheduleDate),o=n.estimateDayDemandMinutes(i.scheduleDate,e);if(a>0&&o>a){let e=Math.round((o-a)/60*10)/10;r.push({code:`DAY_OVERLOAD`,severity:`WARN`,message:`${i.scheduleDate} is overloaded by ~${e}h (${Math.round(o/60)}h planned vs ${Math.round(a/60)}h available).`,context:{date:i.scheduleDate},fixActions:[{kind:`OPEN_AVAILABILITY_GRID`,date:i.scheduleDate,label:`Tune availability`}]})}}return r}var iG=new Set([$W,eG]);function aG({profile:e}){let t=dG(e),n=oG(t),r=sG(t);return pG([...n,...r])}function oG(e){let t=[],n=fG(e,e=>`${e.round.structureId}|${e.locator.date}|${e.locator.venueId}`);for(let[e,r]of n.entries()){let n=r[0]?.round.structureType;if(!(n&&iG.has(n))){r.sort((e,t)=>e.locator.index-t.locator.index);for(let n=0;n<r.length;n++){let i=r[n],a=null;for(let e=n-1;e>=0;e--)if(r[e].round.roundNumber>i.round.roundNumber){a=r[e];break}if(!a)continue;let o=uG(r,n,a);t.push({code:`ROUND_ORDER_VIOLATION`,severity:`ERROR`,message:`Cannot place ${FW(i.round)} before ${FW(a.round)} in this venue.`,context:{scope:e,drawId:i.round.drawId,structureId:i.round.structureId,date:i.locator.date,venueId:i.locator.venueId,locator:i.locator,prerequisite:a.locator},fixActions:[{kind:`JUMP_TO_ITEM`,locator:a.locator,label:tG},...o.moveOffenderAfter?[{kind:`MOVE_ITEM_AFTER`,locator:i.locator,after:o.moveOffenderAfter,label:`Move offending round after prerequisite set`}]:[],...o.movePrereqBefore?[{kind:`MOVE_ITEM_BEFORE`,locator:a.locator,before:o.movePrereqBefore,label:`Move prerequisite before offending round`}]:[]]})}}}return t}function sG(e){let t=[],n=fG(e,e=>e.round.structureId);for(let[e,r]of n.entries()){let n=r[0]?.round.structureType;if(n&&iG.has(n))continue;let i=new Map;for(let e of r){let t=e.locator.date,n=i.get(t);n?n.push(e):i.set(t,[e])}let a=[...i.keys()].sort();if(a.length<2)continue;let o=-1/0,s=null;for(let n of a){let r=i.get(n);for(let i of r)i.round.roundNumber<o&&s&&t.push({code:`ROUND_ORDER_VIOLATION`,severity:`ERROR`,message:`${FW(s.round)} is scheduled on ${s.locator.date} but its prerequisite ${FW(i.round)} is on the later date ${n}.`,context:{scope:`cross-date|${e}`,drawId:s.round.drawId,structureId:e,date:s.locator.date,venueId:s.locator.venueId,locator:s.locator,prerequisite:i.locator,reason:`cross-date`},fixActions:[{kind:`JUMP_TO_ITEM`,locator:i.locator,label:tG}]});for(let e of r)e.round.roundNumber>o&&(o=e.round.roundNumber,s=e)}}return t}function cG(e,t){if(e.round.structureId!==t.round.structureId||e.locator.date!==t.locator.date||e.locator.venueId!==t.locator.venueId){if(e.locator.date<t.locator.date)return{code:`DEPENDENCY_VIOLATION`,severity:`ERROR`,message:`${FW(e.round)} is scheduled on ${e.locator.date} but depends on ${FW(t.round)} which is on the later date ${t.locator.date}.`,context:{date:e.locator.date,venueId:e.locator.venueId,locator:e.locator,prerequisite:t.locator,reason:`cross-date`},fixActions:[{kind:`JUMP_TO_ITEM`,locator:t.locator,label:tG}]};if(e.locator.date===t.locator.date&&e.locator.venueId===t.locator.venueId&&e.locator.index<t.locator.index)return{code:`DEPENDENCY_VIOLATION`,severity:`ERROR`,message:`${FW(e.round)} is listed before its prerequisite ${FW(t.round)} in the same venue on ${e.locator.date}.`,context:{date:e.locator.date,venueId:e.locator.venueId,locator:e.locator,prerequisite:t.locator,reason:`cross-structure-same-day`},fixActions:[{kind:`JUMP_TO_ITEM`,locator:t.locator,label:tG},{kind:`MOVE_ITEM_AFTER`,locator:e.locator,after:t.locator,label:`Move after prerequisite`},{kind:`MOVE_ITEM_BEFORE`,locator:t.locator,before:e.locator,label:`Move prerequisite before`}]}}}function lG(e,t){let n=[],r=fG(e,e=>PW(e.round));for(let[e,i]of r.entries()){let a=t.getRoundDependencies(e);if(a.length)for(let e of a){let t=r.get(e);if(t)for(let e of i)for(let r of t){let t=cG(e,r);t&&n.push(t)}}}return pG(n)}function uG(e,t,n){let r=e[t],i=e.indexOf(n);for(let t=i+1;t<e.length;t++)e[t].round.roundNumber>=n.round.roundNumber&&(i=t);return{moveOffenderAfter:e[i].locator,movePrereqBefore:r.locator}}function dG(e){let t=[];for(let n of e)for(let e of n.venues)for(let r=0;r<e.rounds.length;r++){let i=e.rounds[r];t.push({round:i,locator:{date:n.scheduleDate,venueId:e.venueId,index:r,roundKey:LW(i),roundSegment:i.roundSegment}})}return t}function fG(e,t){let n=new Map;for(let r of e){let e=t(r),i=n.get(e);i?i.push(r):n.set(e,[r])}return n}function pG(e){let t=new Set,n=[];for(let r of e){let e=r.code+`|`+r.message+`|`+(r.context?.scope??``)+`|`+JSON.stringify(r.context?.locator??{});t.has(e)||(t.add(e),n.push(r))}return n}function mG(e){let t={ERROR:[],WARN:[],INFO:[]},n={},r={},i={},a={total:e.length,ERROR:0,WARN:0,INFO:0,byDate:{},byVenue:{},byDraw:{}},o=e=>e===`ERROR`?0:e===`WARN`?1:2,s=(e,t)=>o(e.severity)-o(t.severity)||e.code.localeCompare(t.code)||e.message.localeCompare(t.message);for(let o of e){t[o.severity].push(o),a[o.severity]++;let e=o.context?.date??o.context?.locator?.date,s=o.context?.venueId??o.context?.locator?.venueId,c=o.context?.scope??(o.context?.drawId&&o.context?.structureId?`${o.context.drawId}|${o.context.structureId}`:void 0);e&&(n[e]??=[]).push(o),s&&(r[s]??=[]).push(o),c&&(i[c]??=[]).push(o),hG(a.byDate,e,o.severity),hG(a.byVenue,s,o.severity),hG(a.byDraw,c,o.severity)}for(let e of Object.keys(t))t[e].sort(s);for(let e of[n,r,i])for(let t of Object.keys(e))e[t].sort(s);return{all:e,bySeverity:t,byDate:n,byVenue:r,byDraw:i,counts:a}}function hG(e,t,n){if(!t)return;let r=e[t]??={total:0,ERROR:0,WARN:0,INFO:0};r.total++,r[n]++}function gG(e,t,n){let r=MW(e),{date:i,venueId:a}=n,o=vG(_G(r,i),a);if(t.type===`CATALOG_ROUND`){let e={tournamentId:t.roundRef.tournamentId,eventId:t.roundRef.eventId,eventName:t.roundRef.eventName,drawId:t.roundRef.drawId,drawName:t.roundRef.drawName,structureId:t.roundRef.structureId,structureType:t.roundRef.structureType,roundNumber:t.roundRef.roundNumber,roundName:t.roundRef.roundName};t.roundSegment&&(e.roundSegment=t.roundSegment);let i=NW(n.index,0,o.rounds.length);return o.rounds.splice(i,0,e),yG(o.rounds),{ok:!0,profile:r}}if(t.type===`PLANNED_ROUND`){let{locator:e}=t,s=vG(_G(r,e.date),e.venueId),[c]=s.rounds.splice(e.index,1);yG(s.rounds);let l=n.index;return e.date===i&&e.venueId===a&&e.index<l&&--l,l=NW(l,0,o.rounds.length),o.rounds.splice(l,0,c),yG(o.rounds),{ok:!0,profile:r}}return{ok:!1,profile:e}}function _G(e,t){let n=e.find(e=>e.scheduleDate===t);return n||(n={scheduleDate:t,venues:[]},e.push(n),e.sort((e,t)=>e.scheduleDate.localeCompare(t.scheduleDate))),n}function vG(e,t){let n=e.venues.find(e=>e.venueId===t);return n||(n={venueId:t,rounds:[]},e.venues.push(n)),n}function yG(e){for(let t=0;t<e.length;t++)e[t].sortOrder=t+1}function bG(e,t,n){return e.find(e=>e.scheduleDate===t)?.venues?.find(e=>e.venueId===n)?.rounds??[]}function xG(e,t){return(e.find(e=>e.scheduleDate===t.date)?.venues?.find(e=>e.venueId===t.venueId))?.rounds?.[t.index]??null}function SG(e,t){return e.filter(e=>CG(e.context?.locator,t)||CG(e.context?.prerequisite,t))}function CG(e,t){return!!e&&e.date===t.date&&e.venueId===t.venueId&&e.index===t.index}function wG(e){return e.length?e.some(e=>e.severity===`ERROR`)?`ERROR`:e.some(e=>e.severity===`WARN`)?`WARN`:`INFO`:null}function TG(e,t){let n=PW(t);for(let t of e)for(let e of t.venues)for(let r=0;r<e.rounds.length;r++){let i=e.rounds[r];if(PW(LW(i))===n)return{date:t.scheduleDate,venueId:e.venueId,index:r,roundKey:LW(i),roundSegment:i.roundSegment}}return null}var EG=class{constructor(e){this.listeners=new Set,this.config=e;let t={all:[],bySeverity:{ERROR:[],WARN:[],INFO:[]},byDate:{},byVenue:{},byDraw:{},counts:{total:0,ERROR:0,WARN:0,INFO:0,byDate:{},byVenue:{},byDraw:{}}};this.state={profileDraft:MW(e.initialProfile??[]),venues:e.venues,roundCatalog:e.roundCatalog,schedulableDates:e.schedulableDates,activeDates:e.activeDates,selectedDate:e.selectedDate??e.schedulableDates[0]??null,selectedLocator:null,ruleResults:[],issueIndex:t,catalogSearchQuery:``,catalogGroupBy:`event`,plannedRoundBehavior:e.plannedRoundBehavior??`dim`},this.revalidate()}getState(){return this.state}getSchedulingProfile(){return MW(this.state.profileDraft)}selectDate(e){this.state.selectedDate!==e&&this.setState({selectedDate:e,selectedLocator:null})}selectCard(e){this.setState({selectedLocator:e})}setCatalogSearch(e){this.setState({catalogSearchQuery:e})}setCatalogGroupBy(e){this.setState({catalogGroupBy:e})}navigateToRound(e){let t=TG(this.state.profileDraft,{tournamentId:e.tournamentId,eventId:e.eventId,drawId:e.drawId,structureId:e.structureId,roundNumber:e.roundNumber});t&&this.setState({selectedDate:t.date,selectedLocator:t})}dropRound(e,t){try{let n=gG(this.state.profileDraft,e,t);if(!n.ok)return{ok:!1,errorMessage:`Invalid drop operation`};let r=new Set(this.state.ruleResults.filter(e=>e.severity===`ERROR`).map(DG)),i=nG({profile:n.profile,availability:this.config.availabilityAdapter,demand:this.config.demandAdapter,dependencies:this.config.dependencyAdapter,venueOrder:this.config.venueOrder}).filter(e=>e.severity===`ERROR`).filter(e=>!r.has(DG(e)));return i.length?(this.addRejectionNotice(i[0].message),{ok:!1,errorMessage:i[0].message}):(this.commitProfile(n.profile),{ok:!0})}catch(e){return{ok:!1,errorMessage:String(e)}}}removeRound(e){let t=MW(this.state.profileDraft),n=t.find(t=>t.scheduleDate===e.date);if(!n)return;let r=n.venues.find(t=>t.venueId===e.venueId);if(r&&!(e.index<0||e.index>=r.rounds.length)){r.rounds.splice(e.index,1);for(let e=0;e<r.rounds.length;e++)r.rounds[e].sortOrder=e+1;this.commitProfile(t),this.state.selectedLocator?.date===e.date&&this.state.selectedLocator?.venueId===e.venueId&&this.state.selectedLocator?.index===e.index&&this.setState({selectedLocator:null})}}setNotBeforeTime(e,t){let n=MW(this.state.profileDraft),r=n.find(t=>t.scheduleDate===e.date);if(!r)return;let i=r.venues.find(t=>t.venueId===e.venueId);if(!i)return;let a=i.rounds[e.index];a&&(t?a.notBeforeTime=t:delete a.notBeforeTime,this.commitProfile(n))}applyFixAction(e){if(e.kind===`JUMP_TO_ITEM`&&e.locator){this.setState({selectedDate:e.locator.date,selectedLocator:e.locator});return}if(e.kind===`OPEN_AVAILABILITY_GRID`){this.config.onFixAction?.(e);return}if(e.kind===`MOVE_ITEM_AFTER`&&e.locator&&e.after){let t=OG(this.state.profileDraft,e.locator,e.after);this.commitProfile(t);return}if(e.kind===`MOVE_ITEM_BEFORE`&&e.locator&&e.before){let t=kG(this.state.profileDraft,e.locator,e.before);this.commitProfile(t);return}this.config.onFixAction?.(e)}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setState(e){this.state={...this.state,...e},this.emit()}commitProfile(e){this.state={...this.state,profileDraft:e},this.revalidate(),this.config.onProfileChanged?.(MW(e))}addRejectionNotice(e){let t={code:`DROP_REJECTED`,severity:`WARN`,message:`Drop rejected: ${e}`,context:{}},n=[...this.state.ruleResults.filter(e=>e.code!==`DROP_REJECTED`),t],r=mG(n);this.state={...this.state,ruleResults:n,issueIndex:r},this.emit()}revalidate(){let e=nG({profile:this.state.profileDraft,availability:this.config.availabilityAdapter,demand:this.config.demandAdapter,dependencies:this.config.dependencyAdapter,venueOrder:this.config.venueOrder}),t=mG(e);this.state={...this.state,ruleResults:e,issueIndex:t},this.emit()}emit(){for(let e of this.listeners)e(this.state)}};function DG(e){return`${e.code}|${e.context?.scope??``}|${e.context?.structureId??``}|${e.context?.date??``}`}function OG(e,t,n){let r=MW(e),i=AG(r,t);if(!i)return e;let a=jG(r,n.date,n.venueId),o=Math.min(a.length,n.index+1);return a.splice(o,0,i),r}function kG(e,t,n){let r=MW(e),i=AG(r,t);if(!i)return e;let a=jG(r,n.date,n.venueId),o=Math.max(0,Math.min(a.length,n.index));return a.splice(o,0,i),r}function AG(e,t){let n=e.find(e=>e.scheduleDate===t.date);if(!n)return null;let r=n.venues.find(e=>e.venueId===t.venueId);return!r||t.index<0||t.index>=r.rounds.length?null:r.rounds.splice(t.index,1)[0]}function jG(e,t,n){let r=e.find(e=>e.scheduleDate===t);r||(r={scheduleDate:t,venues:[]},e.push(r));let i=r.venues.find(e=>e.venueId===n);return i||(i={venueId:n,rounds:[]},r.venues.push(i)),i.rounds}function MG(e,t){let{round:n,locator:r,isSelected:i,severity:a}=e,o=document.createElement(`div`);o.className=sW(),i&&o.classList.add(`selected`),a===`ERROR`?o.classList.add(`error`):a===`WARN`&&o.classList.add(`warn`),o.draggable=!0,o.addEventListener(`dragstart`,e=>{e.stopPropagation(),e.dataTransfer.setDragImage(o,o.offsetWidth/2,20),e.dataTransfer.setData(`application/json`,JSON.stringify({type:`PLANNED_ROUND`,locator:r})),e.dataTransfer.effectAllowed=`copyMove`}),o.addEventListener(`click`,e=>{e.stopPropagation(),t.onClick(r)}),t.onContextMenu&&o.addEventListener(`contextmenu`,e=>{e.preventDefault(),e.stopPropagation(),t.onContextMenu(r,o)});let s=document.createElement(`div`);s.className=cW();let c=n.roundName&&!n.roundName.startsWith(`rn=`)?n.roundName:`Round `+n.roundNumber;s.textContent=(n.eventName?n.eventName+` — `:``)+c,o.appendChild(s);let l=document.createElement(`div`);l.className=lW(),l.textContent=[n.drawName||``,n.matchCountEstimate?`${n.matchCountEstimate} matches`:``].filter(Boolean).join(` · `),o.appendChild(l);let u=document.createElement(`div`);return u.className=$U(),n.roundSegment&&u.appendChild(NG(`Seg ${n.roundSegment.segmentNumber}/${n.roundSegment.segmentsCount}`,`seg`)),n.notBeforeTime&&u.appendChild(NG(`NB ${n.notBeforeTime}`,`nb`)),a===`ERROR`?u.appendChild(NG(`Error`,`err`)):a===`WARN`&&u.appendChild(NG(`Warn`,`warn`)),u.children.length&&o.appendChild(u),o}function NG(e,t){let n=document.createElement(`div`);return n.className=eW()+` `+t,n.textContent=e,n}function PG(e,t){let n=document.createElement(`div`);n.className=UU();let r=document.createElement(`div`);r.className=WU();let i=t?.titleLeadingActions,a=document.createElement(`div`);if(a.className=GU(),a.textContent=`Day Plan`,i){let e=document.createElement(`div`);e.className=JU();let t=Array.isArray(i)?i:[i];for(let n of t)e.appendChild(n);e.appendChild(a),r.appendChild(e)}else r.appendChild(a);let o=t?.headerActions;if(o){let e=document.createElement(`div`);e.className=qU();let t=Array.isArray(o)?o:[o];for(let n of t)e.appendChild(n);r.appendChild(e)}n.appendChild(r);let s=document.createElement(`div`);s.className=tW(),n.appendChild(s);function c(t){let n=t.selectedDate;s.innerHTML=``;let r=Math.max(1,t.venues.length);r>4?(s.classList.add(`sp-board-scroll`),s.style.gridTemplateColumns=``):(s.classList.remove(`sp-board-scroll`),s.style.gridTemplateColumns=`repeat(${r}, 1fr)`);for(let r of t.venues){let i=document.createElement(`div`);i.className=nW();let a=document.createElement(`div`);a.className=rW();let o=document.createElement(`div`),c=document.createElement(`div`);c.className=iW(),c.textContent=r.name;let l=document.createElement(`div`);l.className=aW(),l.textContent=``,o.appendChild(c),o.appendChild(l);let u=t.issueIndex.counts.byVenue[r.venueId],d=document.createElement(`div`);d.className=QU(),u?.ERROR?(d.classList.add(`err`),d.textContent=`${u.ERROR} err`):u?.WARN?(d.classList.add(`warn`),d.textContent=`${u.WARN} warn`):(d.classList.add(`ok`),d.textContent=`OK`),a.appendChild(o),a.appendChild(d);let f=document.createElement(`div`);if(f.className=oW(),f.dataset.venue=r.venueId,n){let i=bG(t.profileDraft,n,r.venueId);if(!i.length){let e=document.createElement(`div`);e.className=wW(),e.textContent=`Drop rounds here.`,f.appendChild(e)}i.forEach((i,a)=>{let o={date:n,venueId:r.venueId,index:a,roundKey:LW(i),roundSegment:i.roundSegment},s=wG(SG(t.ruleResults,o)),c=MG({round:i,locator:o,isSelected:IW(t.selectedLocator,o),severity:s},{onClick:e.onCardClick,onContextMenu:e.onCardContextMenu});f.appendChild(c)})}else{let e=document.createElement(`div`);e.className=wW(),e.textContent=`Select a date to plan.`,f.appendChild(e)}let p=document.createElement(`div`);p.className=OW(),p.style.display=`none`,f.addEventListener(`dragover`,e=>{if(!n)return;e.preventDefault(),f.classList.add(`over`),e.dataTransfer.dropEffect=`move`;let t=IG(f,e.clientY,p),r=FG(f,p);p.style.display=``,t<r.length?f.insertBefore(p,r[t]):f.appendChild(p)}),f.addEventListener(`dragleave`,e=>{f.contains(e.relatedTarget)||(f.classList.remove(`over`),p.style.display=`none`)}),f.addEventListener(`drop`,t=>{if(f.classList.remove(`over`),p.style.display=`none`,t.preventDefault(),!n)return;let i;try{i=JSON.parse(t.dataTransfer.getData(`application/json`))}catch{return}let a=IG(f,t.clientY,p),o={date:n,venueId:r.venueId,index:a};e.onDrop(i,o)}),i.appendChild(a),i.appendChild(f),s.appendChild(i)}}return{element:n,update:c}}function FG(e,t){return Array.from(e.querySelectorAll(`[draggable="true"]`)).filter(e=>e!==t)}function IG(e,t,n){let r=FG(e,n);for(let e=0;e<r.length;e++){let n=r[e].getBoundingClientRect();if(t<n.top+n.height/2)return e}return r.length}function LG(e){let t=document.createElement(`div`);t.className=UU();let n=document.createElement(`div`);n.className=WU();let r=document.createElement(`div`);r.className=GU(),r.textContent=`Dates`;let i=document.createElement(`div`);i.className=KU(),n.appendChild(r),n.appendChild(i),t.appendChild(n);let a=document.createElement(`div`);a.className=YU(),t.appendChild(a);function o(t){i.textContent=`${t.schedulableDates.length} schedulable`,a.innerHTML=``;let n=t.activeDates?new Set(t.activeDates):null;for(let r of t.schedulableDates){let i=!n||n.has(r),o=t.issueIndex.counts.byDate[r],s=document.createElement(`div`);s.className=XU(),r===t.selectedDate&&s.classList.add(`selected`),i||s.classList.add(`inactive`),s.setAttribute(`data-date`,r);let c=document.createElement(`div`),l=document.createElement(`div`);l.style.cssText=`font-weight:800;font-size:12px`,l.textContent=r;let u=document.createElement(`div`);u.style.cssText=`font-size:11px;color:var(--sp-muted)`,u.textContent=i?`Active`:`Inactive`,c.appendChild(l),c.appendChild(u);let d=document.createElement(`div`);d.className=ZU(),o?.ERROR&&d.appendChild(RG(`${o.ERROR} err`,`err`)),o?.WARN&&d.appendChild(RG(`${o.WARN} warn`,`warn`)),!o?.ERROR&&!o?.WARN&&d.appendChild(RG(`OK`,`ok`)),s.appendChild(c),s.appendChild(d),s.addEventListener(`click`,()=>e.onDateSelected(r)),a.appendChild(s)}}return{element:t,update:o}}function RG(e,t){let n=document.createElement(`div`);return n.className=QU()+` `+t,n.textContent=e,n}var zG=class{constructor(e){this.container=null,this.store=new EG(e),this.popover=jW({onDelete:e=>{this.store.removeRound(e)},onSetNotBeforeTime:e=>{let t=prompt(`Enter not-before time (HH:MM):`,`10:00`);t!==null&&this.store.setNotBeforeTime(e,t||void 0)}});let t=LG({onDateSelected:e=>this.store.selectDate(e)}),n=QW({onFixAction:e=>this.store.applyFixAction(e)}),r=PG({onDrop:(e,t)=>{this.store.dropRound(e,t)},onCardClick:e=>this.store.selectCard(e),onCardContextMenu:(e,t)=>{this.popover.show(t,e)}},{headerActions:e.headerActions,titleLeadingActions:e.titleLeadingActions}),i=qW({onSearchChange:e=>this.store.setCatalogSearch(e),onGroupByChange:e=>this.store.setCatalogGroupBy(e),onDropRemove:e=>this.store.removeRound(e),onNavigateToPlanned:e=>this.store.navigateToRound(e)});this.layout=AW({dateStrip:t,issuesPanel:n,venueBoard:r,roundCatalog:i},{hideLeft:e.hideLeft,catalogSide:e.catalogSide}),this.unsubscribe=this.store.subscribe(e=>{this.layout.update(e)}),this.layout.update(this.store.getState())}render(e){this.container=e,e.appendChild(this.layout.element)}destroy(){this.unsubscribe(),this.popover.destroy(),this.container&&this.layout.element.parentNode===this.container&&this.layout.element.remove(),this.container=null}getProfile(){return this.store.getSchedulingProfile()}getStore(){return this.store}};function BG(e,t){let n=new zG(e);return n.render(t),n}var VG=class{constructor(){this.selectedDay=null,this.selectedVenue=null,this.selectedCourt=null,this.layerVisibility=new Map,this.listeners=new Set}setSelectedDay(e){this.selectedDay!==e&&(this.selectedDay=e,this.emit({selectedDay:e}))}getSelectedDay(){return this.selectedDay}setSelectedVenue(e){this.selectedVenue!==e&&(this.selectedVenue=e,this.emit({selectedVenue:e}))}getSelectedVenue(){return this.selectedVenue}setSelectedCourt(e){this.selectedCourt!==e&&(this.selectedCourt=e,this.emit({selectedCourt:e}))}getSelectedCourt(){return this.selectedCourt}setLayerVisibility(e,t){this.layerVisibility.set(e,t),this.emit({layerVisibility:new Map(this.layerVisibility)})}getLayerVisibility(){return new Map(this.layerVisibility)}isLayerVisible(e){return this.layerVisibility.get(e)??!0}getSnapshot(){return{selectedDay:this.selectedDay,selectedVenue:this.selectedVenue,selectedCourt:this.selectedCourt,layerVisibility:new Map(this.layerVisibility)}}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}emit(e){let t={type:`VIEW_CHANGED`,payload:e};for(let e of this.listeners)e(t)}},HG=_({EventEmitter:()=>ZY,PluginRegistry:()=>hq,TimepickerUI:()=>aX,default:()=>oX});function UG(e){let t={};return Object.entries(e).forEach(([e,n])=>{t[e]=n?{...n}:void 0}),IK.forEach(e=>RK(e,t,!1)),LK.forEach(e=>RK(e,t,!0)),[...IK,...LK].forEach(([e,n])=>delete t[e]?.[n]),t.clock&&BK(t.clock),t.ui&&VK(t.ui,t),t}function WG(e,t={}){let n=UG(t);return{...e,clock:{...e.clock,...n.clock},ui:{...e.ui,...n.ui},labels:{...e.labels,...n.labels},behavior:{...e.behavior,...n.behavior},callbacks:{...e.callbacks,...n.callbacks},timezone:{...e.timezone,...n.timezone},range:{...e.range,...n.range},wheel:{...e.wheel,...n.wheel},clearBehavior:{...e.clearBehavior,...n.clearBehavior}}}function GG(e={}){return WG(HK,e)}function KG(e){return e.clock.type===`24h`?`24h`:`12h`}function qG(e){return{clockType:KG(e),showSeconds:!!e.clock.showSeconds}}function JG(e){let t=e.ui.mode;return t===`wheel`||t===`compact-wheel`}function YG(e){return e.ui.mode===`compact-wheel`}function XG(e){return YG(e)&&!!e.wheel?.placement}function ZG(e){return!!e.ui.inline?.enabled}function QG(e){return!!e.ui.inline?.enabled&&!!e.ui.inline.embedded}function $G(e){return Fq.includes(window.getComputedStyle(e).overflowY)}function eK(e){let{style:t}=e,n=e.clientWidth,r=parseFloat(window.getComputedStyle(e).paddingRight)||0;Rq.push({element:e,overflowY:t.overflowY,paddingRight:t.paddingRight}),t.overflowY=`hidden`;let i=Math.max(0,e.clientWidth-n);return i>0&&(t.paddingRight=`${r+i}px`),i}function tK(){if(Lq===0){let{body:e,documentElement:t}=document,n=$G(e)?eK(e):0,r=eK(t);zq=t.style.getPropertyValue(Pq),t.style.setProperty(Pq,`${Math.max(n,r)}px`)}Lq+=1}function nK(){if(Lq!==0&&(--Lq,Lq===0)){Rq.forEach(({element:e,overflowY:t,paddingRight:n})=>{e.style.overflowY=t,e.style.paddingRight=n});let e=document.documentElement;zq?e.style.setProperty(Pq,zq):e.style.removeProperty(Pq),Rq=[],zq=``}}function rK(e,t){let n=e.trim().match(t.clockType===`12h`?Vq:Hq);if(!n)return null;let r={hour:Wq(n[1]),minutes:Wq(n[2])};return t.showSeconds&&(r.seconds=Wq(n[3]??`0`)),t.clockType===`12h`&&(r.type=n[4].toUpperCase()),r}function iK(e){return Uq.test(e)}function aK(e,t){let n=`${Wq(e.hour)}:${Wq(e.minutes)}`,r=t.showSeconds?`${n}:${Wq(e.seconds??`0`)}`:n;return t.clockType===`12h`&&e.type?`${r} ${e.type}`:r}function oK(e,t,n){return n===`24h`?{hour:Wq(e),...t,type:void 0}:{hour:Wq(e%12||12),...t,type:e>=12?`PM`:`AM`}}function sK(e,t,n){let r=Gq(parseInt(e.hour,10),e.type,t),i=n.showSeconds?Wq(e.seconds??`0`):void 0;return oK(r,{minutes:e.minutes,seconds:i},n.clockType)}function cK(e,t){let n=parseInt(e.hour,10);return Number.isNaN(n)?0:Gq(n,e.type,t)*3600}function lK(e,t){let n=parseInt(e.hour,10),r=parseInt(e.minutes,10),i=parseInt(e.seconds??`0`,10);return Number.isNaN(n)||Number.isNaN(r)||Number.isNaN(i)?0:Gq(n,e.type,t)*3600+r*60+i}function uK(e){return{degreesHours:Number(e.hour)*30,degreesMinutes:Number(e.minutes)*6}}function dK(e,t){let n=`${t}|${e}`,r=$q.get(n);if(r!==void 0)return r;let i=e.split(`-`).map(e=>e.trim()),a=null;if(i.length===2){let n=rK(i[0],{clockType:t,showSeconds:!0}),r=rK(i[1],{clockType:t,showSeconds:!0});if(n&&r){let o=iK(i[1])?0:59;a={start:lK(n,t),end:lK(r,t)+o,source:e}}}return eJ(n,a)}function fK(e,t){let n=iJ(e,t);for(let e=0;e<n.length;e++)for(let t=e+1;t<n.length;t++)if(n[e].start<=n[t].end&&n[t].start<=n[e].end)return[n[e].source,n[t].source];return null}function pK(e,t){return e?oJ(e.hours,t.hour)||oJ(e.minutes,t.minutes)||oJ(e.seconds,t.seconds)?!0:!e.intervals?.length&&!e.predicate?!1:sJ(e,iJ(e.intervals,e.clockType),lK(t,e.clockType)):!1}function mK(e,t,n){if(!e)return!1;if(oJ(e.hours,t.hour)||oJ(e.minutes,t.minutes))return!0;let r=lK(t,e.clockType),i=r-r%60;return cJ(e,iJ(e.intervals,e.clockType),i,n)}function hK(e,t,n){if(!e)return!1;if(oJ(e.hours,t.hour))return!0;if(!e.intervals?.length&&!e.predicate)return!1;let r=iJ(e.intervals,e.clockType),i=cK(t,e.clockType);for(let t=0;t<60;t++){let a=i+t*60;if(!oJ(e.minutes,t)&&!cJ(e,r,a,n))return!1}return!0}function gK(e,t,n,r){return t===`hour`?hK(e,n,r):t===`minutes`?mK(e,n,r):pK(e,n)}function _K(e,t,n,r){let i=n-t+1;for(let n=0;n<=i/2;n++)for(let a of[e+n,e-n]){let e=t+((a-t)%i+i)%i;if(!r(e))return e}return e}function vK(e){let t={hour:e.getHour()?.value,minutes:e.getMinutes()?.value,type:e.getActiveType()};return e.options.clock.showSeconds&&(t.seconds=e.getSeconds()?.value??`00`),t}function yK(e){queueMicrotask(()=>{throw e})}function bK(e){let t=new Map;return Object.assign(n=>{let r=t.get(n);if(r!==void 0)return r;let i=VJ(e,n);return t.set(n,i),i},{clear:()=>t.clear()})}function xK(e,t,n,r){e.on(n,r),t.push(()=>e.off(n,r))}function SK(e){e.splice(0).forEach(e=>e())}function CK(e){try{e.emit(`show`,{})}finally{e.emit(`open:request`,{})}}function wK(e,t){for(let[n,r]of JY)t.on(r,t=>{let r=e.options.callbacks[n];typeof r==`function`&&r(t)})}function TK(e){return{error:`${e} is not registered. Import and register it: PluginRegistry.register(${e})`}}function EK(e,t){for(let n of YY)n.needed(e.options)&&!hq.has(n.name)&&t.emit(`error`,TK(n.plugin))}function DK(e,t){let n=qG(e.options),r=rK(t,n);if(r){let e=n.showSeconds||iK(t)?aK(r,n):t;return{parsed:tX(r),inputText:e}}let i=eX[n.clockType],a=rK(t,{...n,clockType:i});if(!a)return null;let o=sK(a,i,n);return{parsed:tX(o),inputText:aK(o,n)}}function OK(e){return{error:$Y[KG(e.options)]}}function kK(e,t){nX(e.getHour(),t.hour)&&e.setDegreesHours(Number(t.hour)*30),nX(e.getMinutes(),t.minutes)&&e.setDegreesMinutes(Number(t.minutes)*6),nX(e.getSeconds(),t.seconds)&&e.setDegreesSeconds(Number(t.seconds)*6)}function AK(e,t){e.setDegreesHours(Number(t.hour)*30),e.setDegreesMinutes(Number(t.minutes)*6),t.seconds!==void 0&&e.setDegreesSeconds(Number(t.seconds)*6)}function jK(e,t){e.options.clock.type!==`24h`&&XK(e.getAM(),e.getPM(),t===`AM`?`AM`:`PM`)}function MK(e,t,n){if(JG(e.options)){t.getPlugin(`wheel`)?.scrollToValue?.(n.hour,n.minutes,n.type,n.seconds);return}let r=KG(e.options)===`24h`?void 0:n.type;if(t.clock.syncClockValue(n.hour,n.minutes,r,n.seconds))return;let i=e.getClockHand();i&&(i.style.transform=`rotateZ(${e.degreesHours||0}deg)`)}var NK,PK,FK,IK,LK,RK,zK,BK,VK,HK,UK,WK,GK,KK,qK,JK,YK,XK,ZK,QK,$K,eq,tq,nq,rq,iq,aq,oq,sq,cq,lq,uq,dq,fq,pq,mq,hq,gq,_q,vq,yq,bq,xq,Sq,Cq,wq,Tq,Eq,Dq,Oq,kq,Aq,jq,Mq,Nq,Pq,Fq,Iq,Lq,Rq,zq,Bq,Vq,Hq,Uq,Wq,Gq,Kq,qq,Jq,Yq,Xq,Zq,Qq,$q,eJ,tJ,nJ,rJ,iJ,aJ,oJ,sJ,cJ,lJ,uJ,dJ,fJ,pJ,mJ,hJ,gJ,_J,vJ,yJ,bJ,xJ,SJ,CJ,wJ,TJ,EJ,DJ,OJ,kJ,AJ,jJ,MJ,NJ,PJ,FJ,IJ,LJ,RJ,zJ,BJ,VJ,HJ,UJ,WJ,GJ,KJ,qJ,JJ,YJ,XJ,ZJ,QJ,$J,eY,tY,nY,rY,iY,aY,oY,sY,cY,lY,uY,dY,fY,pY,mY,hY,gY,_Y,vY,yY,bY,xY,SY,CY,wY,TY,EY,DY,OY,kY,AY,jY,MY,NY,PY,FY,IY,LY,RY,zY,BY,VY,HY,UY,WY,GY,KY,qY,JY,YY,XY,ZY,QY,$Y,eX,tX,nX,rX,iX,aX,oX,sX=h((()=>{NK=()=>typeof window>`u`,PK=()=>typeof document<`u`,FK=()=>new Intl.DateTimeFormat(void 0,{hour:`numeric`}).resolvedOptions().hour12?`12h`:`24h`,IK=[[`ui`,`viewSwitch`,`ui`,`enableSwitchIcon`],[`ui`,`allowPageScroll`,`ui`,`enableScrollbar`],[`ui`,`keyboardIcon`,`ui`,`iconTemplate`],[`ui`,`clockIcon`,`ui`,`iconTemplateMobile`],[`behavior`,`returnFocus`,`behavior`,`focusInputAfterClose`],[`timezone`,`list`,`timezone`,`whitelist`],[`labels`,`clockTitle`,`labels`,`time`],[`labels`,`keyboardTitle`,`labels`,`mobileTime`],[`labels`,`clock`,`labels`,`clockLabel`],[`labels`,`period`,`labels`,`periodLabel`],[`labels`,`timeFields`,`labels`,`timeLabel`],[`labels`,`range`,`labels`,`rangeSelectionLabel`],[`labels`,`switchToKeyboard`,`labels`,`switchToKeyboardLabel`],[`labels`,`switchToClock`,`labels`,`switchToClockLabel`],[`labels`,`rangeFrom`,`range`,`fromLabel`],[`labels`,`rangeTo`,`range`,`toLabel`],[`labels`,`timezone`,`timezone`,`label`]],LK=[[`labels`,`hour`,`labels`,`mobileHour`],[`labels`,`hour`,`labels`,`hourLabel`],[`labels`,`hour`,`labels`,`announceHour`],[`labels`,`minute`,`labels`,`mobileMinute`],[`labels`,`minute`,`labels`,`minuteLabel`],[`labels`,`minute`,`labels`,`announceMinute`],[`ui`,`appendModalSelector`,`ui`,`appendTo`]],RK=(e,t,n)=>{let[r,i,a,o]=e,s=t[r];if(!s||!(i in s))return;let c=t[a]??={};n&&o in c||(c[o]=s[i])},zK=e=>{if(e===`now`)return!0;if(e)return{time:e.time===`now`?void 0:e.time,updateInput:e.updateInput}},BK=e=>{`defaultTime`in e&&(e.currentTime=zK(e.defaultTime),delete e.defaultTime),`discreteHourJump`in e&&(e.smoothHourSnap=!e.discreteHourJump,delete e.discreteHourJump),e.type===`auto`&&(e.type=FK());let t=e.disabledTime;if(t&&`ranges`in t){let{ranges:n,...r}=t;e.disabledTime={...r,interval:n}}},VK=(e,t)=>{if(`initialView`in e&&(e.mobile=e.initialView===`keyboard`,delete e.initialView),!e.clearButton||typeof e.clearButton!=`object`)return;let{clearInput:n}=e.clearButton;e.clearButton=!0,n!==void 0&&((t.clearBehavior??={}).clearInput=n)},HK={clock:{type:`12h`,incrementHours:1,incrementMinutes:1,autoSwitchToMinutes:!0,showSeconds:!1,incrementSeconds:1,autoSwitchToSeconds:!0,disabledTime:void 0,currentTime:void 0},ui:{mode:`clock`,theme:`basic`,animation:!0,backdrop:!0,mobile:!1,enableSwitchIcon:!1,editable:!1,enableScrollbar:!1,cssClass:void 0,appendTo:``,iconTemplate:``,iconTemplateMobile:``,inline:void 0,clearButton:!1},labels:{am:`AM`,pm:`PM`,ok:`OK`,cancel:`Cancel`,time:`Select time`,mobileTime:`Enter Time`,mobileHour:`Hour`,mobileMinute:`Minute`,second:`Second`,clear:`Clear`,hourLabel:`Hour`,minuteLabel:`Minute`,clockLabel:`Clock`,periodLabel:`Period`,timeLabel:`Time`,format24Label:`24-hour`,rangeSelectionLabel:`Range selection`,switchToKeyboardLabel:`Switch to keyboard input`,switchToClockLabel:`Switch to clock`,toggleLabel:`Toggle`,timezoneSelectorLabel:`Timezone`,announceHour:`Hour`,announceMinute:`Minutes`,announceAmSelected:`AM selected`,announcePmSelected:`PM selected`,invalidTimeFormat:`Invalid time format`,announceCleared:`Time cleared`},behavior:{focusInputAfterClose:!1,focusTrap:!0,delayHandler:0,id:void 0},callbacks:{onOpen:void 0,onShow:void 0,onCancel:void 0,onConfirm:void 0,onUpdate:void 0,onSelectHour:void 0,onSelectMinute:void 0,onSelectSecond:void 0,onSelectAM:void 0,onSelectPM:void 0,onSelectPeriod:void 0,onSwitchView:void 0,onSwitchFace:void 0,onError:void 0,onTimezoneChange:void 0,onRangeConfirm:void 0,onRangeSwitch:void 0,onRangeValidation:void 0,onWheelScrollStart:void 0,onWheelScrollEnd:void 0,onClear:void 0},timezone:{enabled:!1,default:void 0,whitelist:void 0,label:`Timezone`},range:{enabled:!1,minDuration:void 0,maxDuration:void 0,linked:!0,fromLabel:`From`,toLabel:`To`},wheel:{placement:void 0,hideFooter:void 0,commitOnScroll:void 0,hideDisabled:void 0,ignoreOutsideClick:void 0},clearBehavior:{clearInput:!0}},UK=class{_degreesHours=null;_degreesMinutes=null;_degreesSeconds=null;_options;_isMobileView=!1;_isTouchMouseMove=!1;_disabledTime=null;_timePredicate=null;_cloned=null;_isModalRemove=!0;_isOpen=!1;_isInitialized=!1;_eventHandlersRegistered=!1;_isDestroyed=!1;_modalElement=null;element;instanceId;customId;constructor(e,t,n,r){this.element=e,this.instanceId=n,this.customId=r,this._options=t}get degreesHours(){return this._degreesHours}get degreesMinutes(){return this._degreesMinutes}get degreesSeconds(){return this._degreesSeconds}get options(){return this._options}get isMobileView(){return this._isMobileView}get isTouchMouseMove(){return this._isTouchMouseMove}get disabledTime(){return this._disabledTime}get timePredicate(){return this._timePredicate}get cloned(){return this._cloned}get isModalRemove(){return this._isModalRemove}get isOpen(){return this._isOpen}get isInitialized(){return this._isInitialized}get eventHandlersRegistered(){return this._eventHandlersRegistered}get isDestroyed(){return this._isDestroyed}setDegreesHours(e){this._degreesHours=e}setDegreesMinutes(e){this._degreesMinutes=e}setDegreesSeconds(e){this._degreesSeconds=e}setOptions(e){this._options=e}setIsMobileView(e){this._isMobileView=e}setIsTouchMouseMove(e){this._isTouchMouseMove=e}setDisabledTime(e){this._disabledTime=e}setTimePredicate(e){this._timePredicate=e}setCloned(e){this._cloned=e}setIsModalRemove(e){this._isModalRemove=e}setIsOpen(e){this._isOpen=e}setIsInitialized(e){this._isInitialized=e}setEventHandlersRegistered(e){this._eventHandlersRegistered=e}setIsDestroyed(e){this._isDestroyed=e}updateOptions(e){this._options=WG(this._options,e)}reset(){this._degreesHours=null,this._degreesMinutes=null,this._degreesSeconds=null,this._isTouchMouseMove=!1,this._disabledTime=null,this._timePredicate=null,this._cloned=null,this._isModalRemove=!0,this._isOpen=!1,this._isInitialized=!1,this._isDestroyed=!0,this._eventHandlersRegistered=!1,this._modalElement=null}q(e){return this.getModalElement()?.querySelector(e)??null}qMobile(e,t){return this._isMobileView?this.q(e):this.q(t)}getModalElement(){if(PK()===!1)return null;let e=this._modalElement;if(e?.isConnected&&e.dataset.ownerId===this.instanceId)return e;let t=document.querySelectorAll(`[data-owner-id]`);for(let e=0;e<t.length;e++)if(t[e].dataset.ownerId===this.instanceId)return this._modalElement=t[e],this._modalElement;return this._modalElement=null,null}getInput(){return this.element?.querySelector(`input`)}getClockFace(){return this.qMobile(`.tp-ui-clock-face.mobile`,`.tp-ui-clock-face:not(.mobile)`)??this.q(`.tp-ui-clock-face`)}getClockHand(){return this.qMobile(`.tp-ui-mobile-clock-wrapper .tp-ui-clock-hand`,`.tp-ui-clock-hand:not(.mobile)`)}getCircle(){return this.qMobile(`.tp-ui-mobile-clock-wrapper .tp-ui-circle-hand`,`.tp-ui-circle-hand:not(.mobile)`)}getTipsWrapper(){return this.qMobile(`.tp-ui-mobile-clock-wrapper .tp-ui-tips-wrapper`,`.tp-ui-tips-wrapper:not(.mobile)`)}getTipsWrapperFor24h(){return this.qMobile(`.tp-ui-mobile-clock-wrapper .tp-ui-tips-wrapper-24h`,`.tp-ui-tips-wrapper-24h:not(.mobile)`)}getMinutes(){return this.q(`.tp-ui-minutes`)}getSeconds(){return this.q(`.tp-ui-seconds`)}getHour(){return this.q(`.tp-ui-hour`)}getAM(){return this.q(`.tp-ui-am`)}getPM(){return this.q(`.tp-ui-pm`)}getHourText(){return this.q(`.tp-ui-hour-text`)}getMinutesText(){return this.q(`.tp-ui-minute-text`)}getSecondsText(){return this.q(`.tp-ui-second-text`)}getHeader(){return this.q(`.tp-ui-header`)}getInputWrappers(){return this.getModalElement()?.querySelectorAll(`.tp-ui-input-wrapper`)||null}getDots(){return this.q(`.tp-ui-dots`)}getMinutesTips(){return this.q(`.tp-ui-minutes-time`)}getHourTips(){return this.q(`.tp-ui-hour-time-12`)}getAllValueTips(){let e=this.getModalElement();return e?[...e.querySelectorAll(`.tp-ui-value-tips`),...e.querySelectorAll(`.tp-ui-value-tips-24h`)]:[]}getOpenElementData(){let e=this.element?.querySelectorAll(`[data-open]`);if(e?.length>0){let t=[];return e.forEach(({dataset:e})=>t.push(e.open??``)),[...new Set(t)]}return null}getOpenElement(){let e=Array.from(this.element.querySelectorAll(`[data-open]`));if(e.length===0){let e=this.getInput();return e?.setAttribute(`data-open`,`tp-ui-input`),[e]}let t=e[0].dataset.open;return e.filter(e=>e.dataset.open===t)}getCancelButton(){return this.q(`.tp-ui-cancel-btn`)}getOkButton(){return this.q(`.tp-ui-ok-btn`)}getActiveTypeMode(){return this.q(`.tp-ui-type-mode.active`)}getActiveType(){let e=this.getActiveTypeMode()?.dataset.type;return e===`AM`||e===`PM`?e:void 0}getKeyboardClockIcon(){return this.q(`.tp-ui-keyboard-icon`)}getFooter(){return this.q(`.tp-ui-footer`)}getWrapper(){return this.q(`.tp-ui-wrapper`)}},WK={MODAL_EXIT:150,TIPS_ANIMATION:401,MOBILE_TOGGLE:450,CLOCK_SCALE_DELAY:150,WRAPPER_TRANSITION:400,DROPDOWN_CLICK_DELAY:10,ANNOUNCE_DELAY:100,COMMIT_ON_SCROLL_DELAY:400},GK=(e,t)=>{if(!e)return;let n=e.querySelector(`.timepicker-announcer`);n&&(n.textContent=``,setTimeout(()=>{n.textContent=t},WK.ANNOUNCE_DELAY))},KK=(e,t,n)=>{e?.classList.toggle(t,n)},qK=(e,t,n)=>{n?e.getAttribute(t)!==n&&e.setAttribute(t,n):e.removeAttribute(t)},JK=(e,t)=>{e&&qK(e,`aria-pressed`,String(t))},YK=(e,t)=>{KK(e,`active`,t),JK(e,t)},XK=(e,t,n)=>{YK(e,n===`AM`),YK(t,n===`PM`)},ZK=[`aria-label`,`aria-valuemin`,`aria-valuemax`,`aria-valuenow`,`aria-valuetext`],QK=e=>{if(!e)return;let t=e.querySelector(`.tp-ui-clock-face`);if(!t)return;let n=e.querySelector(`input.active`)??e.querySelector(`.tp-ui-hour`);ZK.forEach(e=>qK(t,e,n?.getAttribute(e)))},$K=(e,t)=>{if(!e)return;e.value=t;let n=parseInt(t,10),r=!Number.isNaN(n);qK(e,`aria-valuenow`,r&&String(n)),qK(e,`aria-valuetext`,r&&t),QK(e.closest(`.tp-ui-modal`))},eq=e=>e.getAttribute(`aria-disabled`)===`true`||e.classList.contains(`disabled`),tq=(e,t)=>{e&&(KK(e,`disabled`,t),qK(e,`aria-disabled`,String(t)))},nq=`[role="button"], [tabindex], input, select, textarea`,rq=`button, a[href], summary, input[type="button"], input[type="submit"], input[type="reset"], input[type="image"]`,iq=e=>e.matches(nq)&&!e.matches(rq),aq=e=>e===`Enter`||e===` `,oq=(e,t)=>{if(!e)return()=>{};let n=n=>{eq(e)||t(n)},r=n=>{aq(n.key)&&iq(e)&&(n.key!==`Enter`&&n.preventDefault(),!eq(e)&&t(n))};return e.addEventListener(`click`,n),e.addEventListener(`keydown`,r),()=>{e.removeEventListener(`click`,n),e.removeEventListener(`keydown`,r)}},sq=`tp-ui-pointer`,cq=[`Shift`,`Control`,`Alt`,`Meta`],lq=e=>{let t=e.ownerDocument,n=()=>KK(e,sq,!0),r=t=>{cq.includes(t.key)||KK(e,sq,!1)};return e.addEventListener(`pointerdown`,n,!0),t.addEventListener(`keydown`,r,!0),()=>{e.removeEventListener(`pointerdown`,n,!0),t.removeEventListener(`keydown`,r,!0)}},uq=()=>typeof window>`u`||typeof window.matchMedia!=`function`?!1:window.matchMedia(`(prefers-reduced-motion: reduce)`).matches,dq=class{core;emitter;timeouts=[];constructor(e,t){this.core=e,this.emitter=t,this.setupEventListeners()}setupEventListeners(){this.emitter.on(`animation:clock`,()=>{this.handleAnimationSwitchTipsMode()})}clearAllTimeouts(){this.timeouts.forEach(clearTimeout),this.timeouts=[]}setAnimationToOpen(e=!1){let t=this.core.getModalElement();t&&(!e&&this.core.options.ui.animation&&t.offsetHeight,t.classList.add(`show`))}removeAnimationToClose(){return this.clearAllTimeouts(),this.core.getModalElement()?.classList.remove(`show`),this.core.options.ui.animation&&!uq()?WK.MODAL_EXIT:0}handleAnimationSwitchTipsMode(){let e=this.core.getClockHand();if(!e||!this.core.options.ui.animation||uq())return;this.emitter.emit(`animation:start`,{}),e.classList.add(`tp-ui-tips-animation`);let t=setTimeout(()=>{this.core.getClockHand()?.classList.remove(`tp-ui-tips-animation`),this.emitter.emit(`animation:end`,{})},WK.TIPS_ANIMATION);this.timeouts.push(t)}destroy(){this.clearAllTimeouts()}},fq=`<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="M160-200q-33 0-56.5-23.5T80-280v-400q0-33 23.5-56.5T160-760h640q33 0 56.5 23.5T880-680v400q0 33-23.5 56.5T800-200H160Zm0-80h640v-400H160v400Zm160-40h320v-80H320v80ZM200-440h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80ZM200-560h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80ZM160-280v-400 400Z"/></svg>`,pq=`<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="m612-292 56-56-148-148v-184h-80v216l172 172ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-400Zm0 320q133 0 226.5-93.5T800-480q0-133-93.5-226.5T480-800q-133 0-226.5 93.5T160-480q0 133 93.5 226.5T480-160Z"/></svg>`,mq=class{plugins=new Map;register(e){this.plugins.has(e.name)||this.plugins.set(e.name,e)}getAll(){return Array.from(this.plugins.values())}has(e){return this.plugins.has(e)}get(e){return this.plugins.get(e)}getTemplateProvider(e){return this.plugins.get(e)?.templateProvider}getClearHandler(e){return this.plugins.get(e)?.clearHandler}},hq=new mq,gq={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`},_q=e=>String(e??``).replace(/[&<>"']/g,e=>gq[e]),vq=[`00`,`13`,`14`,`15`,`16`,`17`,`18`,`19`,`20`,`21`,`22`,`23`],yq=[`12`,`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`,`10`,`11`],bq=[`00`,`05`,`10`,`15`,`20`,`25`,`30`,`35`,`40`,`45`,`50`,`55`],xq=(e,t,n)=>{let{timezone:{enabled:r,label:i}}=e;if(!r||!hq.has(`timezone`))return``;let a=_q(i??HK.timezone.label),o=_q(n);return`<div class="tp-ui-timezone ${t}">
|
|
225
225
|
<span class="tp-ui-timezone-label" id="tp-tz-label-${o}">${a}</span>
|
|
226
226
|
<div class="tp-ui-timezone-dropdown" role="combobox" aria-expanded="false" aria-haspopup="listbox" aria-labelledby="tp-tz-label-${o}" tabindex="0" data-tz-id="${o}">
|
|
227
227
|
<div class="tp-ui-timezone-selected" data-md3-ripple data-placeholder="${a}...">${a}...</div>
|
|
228
228
|
<svg class="tp-ui-timezone-arrow" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
|
|
229
229
|
<div class="tp-ui-timezone-menu" role="listbox" aria-labelledby="tp-tz-label-${o}"></div>
|
|
230
230
|
</div>
|
|
231
|
-
</div>`},xq=e=>{let{range:{enabled:t,fromLabel:n,toLabel:r},labels:{rangeSelectionLabel:i}}=e;return!t||!mq.has(`range`)?``:`<div class="tp-ui-range-header" role="tablist" aria-label="${gq(i)}"><button type="button" class="tp-ui-range-tab tp-ui-range-from active" data-md3-ripple role="tab" tabindex="0" aria-selected="true"><span class="tp-ui-range-tab-label">${gq(n)}</span><span class="tp-ui-range-tab-value tp-ui-range-from-time" aria-hidden="true">--:--</span></button><button type="button" class="tp-ui-range-tab tp-ui-range-to" data-md3-ripple role="tab" tabindex="-1" aria-selected="false"><span class="tp-ui-range-tab-label">${gq(r)}</span><span class="tp-ui-range-tab-value tp-ui-range-to-time" aria-hidden="true">--:--</span></button></div>`},Sq=(e,t)=>{let{ui:{clearButton:n},labels:{clear:r}}=e;if(!n)return``;let i=gq(r);return`<div class="tp-ui-clear-btn ${t} disabled" data-md3-ripple tabindex="0" role="button" aria-label="${i}" aria-disabled="true">${i}</div>`},Cq=(e,t,n)=>{if(e.isWheelMode){let t=mq.getTemplateProvider(`wheel`);return t?`<div class="tp-ui-mobile-clock-wrapper ${e.mobileClass}">${t(n,e.instanceId)}</div>`:`<div class="tp-ui-mobile-clock-wrapper ${e.mobileClass}"></div>`}let{clockLabel:r}=n.labels;return`<div class="tp-ui-mobile-clock-wrapper ${e.mobileClass}"><div class="tp-ui-body ${e.mobileClass}" role="group" aria-label="${gq(r)}"><div class="tp-ui-clock-face ${e.mobileClass}" role="slider" tabindex="0"><div class="tp-ui-dot ${e.mobileClass}" aria-hidden="true"></div><div class="tp-ui-clock-hand ${e.mobileClass}" aria-hidden="true"><div class="tp-ui-circle-hand ${e.mobileClass}"></div></div><div class="tp-ui-tips-wrapper ${e.mobileClass}" aria-hidden="true"></div>${e.clockType===`24h`?`<div class="tp-ui-tips-wrapper-24h ${e.mobileClass}" aria-hidden="true"></div>`:``}</div></div></div>`},wq={min:`0`,max:`59`,valueNow:`0`,valueText:`00`},Tq=e=>`<div class="tp-ui-dots ${e}" aria-hidden="true"><span></span><span></span></div>`,Eq=(e,t,n)=>{let r=gq(e.mobileLabel),i=t?r:gq(e.label);return`<div class="tp-ui-input-wrapper ${t}"><div class="tp-ui-input-ripple-wrapper ${t}" data-md3-ripple><input name="${e.name}" ${n?`readonly`:``} class="${e.inputClass} ${t}" tabindex="0" type="number" min="${e.min}" max="${e.max}" aria-label="${i}" role="spinbutton" aria-valuemin="${e.min}" aria-valuemax="${e.max}" aria-valuenow="${e.valueNow}" aria-valuetext="${e.valueText}"></div><div class="${e.textClass} ${t}">${r}</div></div>`},Dq=(e,t)=>{let{labels:n,ui:{editable:r},clock:{showSeconds:i}}=e,{mobileClass:a,clockType:o,instanceId:s}=t,c=gq(a?n.mobileTime:n.time),l=gq(n.timeLabel),u=gq(n.am),d=gq(n.pm),f=gq(n.periodLabel),p=o===`12h`,m=p?`12`:`0`,h=[{name:`hour`,inputClass:`tp-ui-hour`,textClass:`tp-ui-hour-text`,min:p?`1`:`0`,max:p?`12`:`23`,valueNow:m,valueText:m,label:n.hourLabel,mobileLabel:n.mobileHour},{name:`minutes`,inputClass:`tp-ui-minutes`,textClass:`tp-ui-minute-text`,...wq,label:n.minuteLabel,mobileLabel:n.mobileMinute}];i&&h.push({name:`seconds`,inputClass:`tp-ui-seconds`,textClass:`tp-ui-second-text`,...wq,label:n.second,mobileLabel:n.second});let g=!r&&!a,_=h.map(e=>Eq(e,a,g)).join(Tq(a)),v=o===`24h`?``:`<div class="tp-ui-wrapper-type-time ${a}" role="group" aria-label="${f}"><div class="tp-ui-type-mode tp-ui-am ${a}" data-md3-ripple tabindex="0" role="button" aria-label="${u}" aria-pressed="false" data-type="AM">${u}</div><div class="tp-ui-type-mode tp-ui-pm ${a}" data-md3-ripple tabindex="0" role="button" aria-label="${d}" aria-pressed="false" data-type="PM">${d}</div></div>`;return`<div class="tp-ui-select-time ${a}" id="tp-ui-label-${gq(s)}">${c}</div><div class="tp-ui-header ${a}"><div class="tp-ui-wrapper-time ${a} ${o===`24h`?`tp-ui-wrapper-time-24h`:``}" role="group" aria-label="${l}">${_}</div>${v}</div>`},Oq=(e,t)=>`<button aria-label="${gq(e)}" type="button" class="tp-ui-keyboard-icon">${t}</button>`,kq=(e,t)=>{let{ui:{enableSwitchIcon:n,iconTemplate:r,iconTemplateMobile:i},labels:a}=e,o=gq(a.cancel),s=gq(a.ok),c=t?Oq(a.switchToClockLabel,i||fq):Oq(a.switchToKeyboardLabel,r||dq),l=n?`<div class="tp-ui-keyboard-icon-wrapper ${t}" data-md3-ripple data-view="desktop">${c}</div>`:``,u=Sq(e,t);return`<div class="tp-ui-footer ${t}" ${t?`data-view="mobile"`:``}>${l}<div class="tp-ui-wrapper-btn ${t}">${u}<div class="tp-ui-cancel-btn ${t}" data-md3-ripple tabindex="0" role="button" aria-label="${o}">${o}</div><div class="tp-ui-ok-btn ${t}" data-md3-ripple tabindex="0" role="button" aria-label="${s}">${s}</div></div></div>`},Aq=(e,t)=>{let{ui:{mode:n,animation:r,theme:i,mobile:a},clock:{incrementMinutes:o,showSeconds:s}}=e,c=a?`mobile`:``,l=n===`compact-wheel`&&mq.has(`wheel`),u=(n===`wheel`||l)&&mq.has(`wheel`),d=!!e.range?.enabled&&mq.has(`range`),f=!!e.timezone?.enabled&&mq.has(`timezone`),p={mobileClass:c,clockType:e.clock.type||`12h`,instanceId:t,isWheelMode:u,isCompactWheel:l,isRangeMode:d},m=xq(e),h=bq(e,c,t),g=l?``:Dq(e,p),_=Cq(p,o??1,e),v=l&&e.wheel?.hideFooter===!0?``:kq(e,c),y;y=l?` tp-ui-compact-wheel-mode`:u?` tp-ui-wheel-mode`:``;let b=gq(t),x=l?`aria-label="${gq(e.labels.time)}"`:`aria-labelledby="tp-ui-label-${b}"`,S=ZG(e)?`role="group" ${x}`:`role="dialog" aria-modal="true" aria-labelledby="tp-ui-label-${b}"`;return`<div class="tp-ui-modal normalize ${c}${d?` tp-ui-range-mode`:``}${f?` tp-ui-tz-mode`:``}${y}${s?` tp-ui-has-seconds`:``}" data-theme="${gq(i)}" ${S} data-owner-id="${b}"${r?``:` style="transition:none"`}><div class="tp-ui-wrapper ${c}" tabindex="0">${m}${g}${h}${_}${v}</div><div class="timepicker-announcer sr-only" role="status" aria-live="polite" aria-atomic="true"></div></div>`},jq=e=>!e||!NK()?null:typeof e==`string`?document.querySelector(e):e,Mq=e=>e?e.container?jq(e.container):!e.containerId||!NK()?null:document.getElementById(e.containerId):null,Nq=`--tp-scrollbar-gap`,Pq=[`auto`,`scroll`],Fq=/^tp-ui-[\w-]+$/,Iq=0,Lq=[],Rq=``,zq=class{core;scrollLocked=!1;constructor(e,t){this.core=e}clearExistingModal(){if(NK()===!1)return;let e=this.core.getModalElement();e&&e.remove()}setModalTemplate(){if(NK()===!1)return;this.clearExistingModal();let e=Aq(this.core.options,this.core.instanceId);if(this.core.options.ui.inline?.enabled){let t=Mq(this.core.options.ui.inline);if(!t)return;t.innerHTML=``,t.insertAdjacentHTML(`beforeend`,e);let n=t.querySelector(`.tp-ui-modal`);if(n){n.classList.add(`tp-ui--inline`),ZG(this.core.options)&&n.classList.add(`tp-ui--embedded`);let{showButtons:e}=this.core.options.ui.inline;(e===!1||e===void 0)&&(n.querySelectorAll(`.tp-ui-wrapper-btn, .tp-ui-wrapper-btn.mobile`).forEach(e=>e.style.display=`none`),n.querySelectorAll(`.tp-ui-footer`).forEach(e=>{e.querySelector(`.tp-ui-keyboard-icon-wrapper`)||(e.style.display=`none`)}))}return}let{appendTo:t}=this.core.options.ui;(t?jq(t):document.body)?.insertAdjacentHTML(`beforeend`,e)}lockScroll(){NK()!==!1&&(this.core.options.ui.inline?.enabled||YG(this.core.options)||this.core.options.ui.enableScrollbar||this.scrollLocked||(this.scrollLocked=!0,eK()))}unlockScroll(){NK()!==!1&&this.scrollLocked&&(this.scrollLocked=!1,tK())}setScrollbarOrNot(){this.core.options.ui.enableScrollbar?this.unlockScroll():this.lockScroll()}removeBackdrop(){if(this.core.options.ui.inline?.enabled||this.core.options.ui.backdrop)return;let e=this.core.getModalElement(),t=this.core.getOpenElement();e?.classList.add(`removed`),t.forEach(e=>e?.classList.add(`disabled`))}setNormalizeClass(){let e=this.core.getModalElement();e&&(e.classList.add(`tp-ui-normalize`),e.querySelectorAll(`:scope > div`).forEach(e=>e.classList.add(`tp-ui-normalize`)))}setInitialFocus(){let{options:e}=this.core;!e.behavior.focusTrap||typeof requestAnimationFrame>`u`||ZG(e)||!e.ui.backdrop&&!e.ui.inline?.enabled&&!YG(e)||requestAnimationFrame(()=>this.focusWrapperUnlessInside())}focusWrapperUnlessInside(){let e=this.core.getWrapper();e&&!e.contains(e.ownerDocument.activeElement)&&e.focus()}getFocusedControlSelector(){let e=this.core.getModalElement(),t=e?.ownerDocument.activeElement;return!e||!t||!e.contains(t)?null:Array.from(t.classList).filter(e=>Fq.test(e)).map(e=>`.${e}`).join(``)}restoreFocus(e){e&&this.core.getWrapper()?.querySelector(e)?.focus(),this.focusWrapperUnlessInside()}setFlexEndToFooterIfNoKeyboardIcon(){let e=this.core.getFooter();!this.core.options.ui.enableSwitchIcon&&e&&(e.style.justifyContent=`flex-end`)}destroy(){this.unlockScroll(),this.clearExistingModal()}},Bq=/^(0?[1-9]|1[0-2]):([0-5]?\d)(?::([0-5]?\d))?\s*(AM|PM)$/i,Vq=/^([01]?\d|2[0-3]):([0-5]?\d)(?::([0-5]?\d))?$/,Hq=/^\s*\d{1,2}:\d{1,2}:\d{1,2}/,Uq=e=>String(e).padStart(2,`0`),Wq=(e,t,n)=>{if(n!==`12h`||!t)return e;let r=t.toUpperCase();return r===`PM`&&e!==12?e+12:r===`AM`&&e===12?0:e},Gq=8,Kq=11,qq=({hour:e,minutes:t,seconds:n,type:r})=>n===void 0?{hour:e,minutes:t,type:r}:{hour:e,minutes:t,seconds:n,type:r},Jq=(e,t,n)=>{let r=Uq(e.getMinutes()),i=n?Uq(e.getSeconds()):void 0;return qq(aK(e.getHours(),{minutes:r,seconds:i},t===`24h`?`24h`:`12h`))},Yq=(e,t,n,r,i=!1)=>{let a=qq({hour:`12`,minutes:`00`,seconds:i?`00`:void 0,type:t===`24h`?void 0:`PM`});if(!e)return a;let o=e.value.trim();if(!n&&!o)return a;if(typeof n==`boolean`&&n)return Jq(new Date,t,i);if(typeof n==`object`){let{time:e,preventClockType:a}=n,o=new Date(e??new Date);return a&&r?Jq(o,PK(),i):Jq(o,t,i)}let s=nK(o,{clockType:t===`24h`?`24h`:`12h`,showSeconds:i});if(s)return qq(s);let[c,l]=o.split(` `),[u=``,d=``,f=``]=c.split(`:`),p=u.replace(/\D/g,``),m=d.replace(/\D/g,``),h=i?f.replace(/\D/g,``):``,g={hour:p.padStart(2,`0`),minutes:m.padStart(2,`0`),type:t===`12h`?l:void 0};if(i&&(g.seconds=h.padStart(2,`0`)),p.length>2||m.length>2||h.length>2)return{...g,error:`Invalid input: too many digits.`,currentHour:u,currentMin:d,...i?{currentSec:f}:{}};if(/[a-z]/i.test(c))return{...g,error:`Input contains invalid letters.`};if(o.includes(` `)){let e=i?Kq:Gq;if(!l||o.length>e||l!==`AM`&&l!==`PM`)return{...g,error:`Invalid AM/PM format or length.`,currentLength:o.length,currentType:l}}let _=Number(p),v=Number(m),y=Number(h),b=v>=0&&v<=59&&y>=0&&y<=59,x=i?{currentSec:y}:{};if(t===`12h`){if(_<1||_>12||!b||l!==`AM`&&l!==`PM`)return{...g,error:`Invalid 12h time.`,currentHour:_,currentMin:v,...x,currentType:l}}else if(_<0||_>23||!b)return{...g,error:`Invalid 24h time.`,currentHour:_,currentMin:v,...x};return g},Xq=(e,t,n)=>{let r=Number(e);if(Number.isNaN(r))return!1;switch(t){case`hour`:return n===`24h`?r>=0&&r<=23:r>0&&r<=12;case`minutes`:return r>=0&&r<=59;default:return}},Zq=256,Qq=new Map,$q=(e,t)=>(Qq.size>=Zq&&Qq.clear(),Qq.set(e,t),t),eJ=[],tJ=new WeakMap,nJ=(e,t,n)=>{if(e.clockType!==n||e.sources.length!==t.length)return!1;for(let n=0;n<t.length;n++)if(e.sources[n]!==t[n])return!1;return!0},rJ=(e,t)=>{if(!e?.length)return eJ;let n=tJ.get(e);if(n&&nJ(n,e,t))return n.ranges;let r=e.map(e=>uK(e,t)).filter(e=>e!==null);return tJ.set(e,{clockType:t,sources:[...e],ranges:r}),r},iJ=(e,t)=>{for(let n=0;n<e.length;n++)if(t>=e[n].start&&t<=e[n].end)return!0;return!1},aJ=(e,t)=>{if(!e||t===void 0)return!1;let n=Number(t);for(let t=0;t<e.length;t++)if(Number(e[t])===n)return!0;return!1},oJ=(e,t,n)=>iJ(t,n)||e.predicate!==void 0&&e.predicate(n),sJ=(e,t,n,r)=>{if(!r)return oJ(e,t,n);for(let r=0;r<60;r++)if(!aJ(e.seconds,r)&&!oJ(e,t,n+r))return!1;return!0},cJ=(e,t)=>e%12%t==0,lJ={hour:{input:`getHour`,event:`select:hour`,announce:`announceHour`},minutes:{input:`getMinutes`,event:`select:minute`,announce:`announceMinute`},seconds:{input:`getSeconds`,event:`select:second`,announce:`second`}},uJ=[`hour`,`minutes`,`seconds`],dJ=(e,t)=>e[lJ[t].input](),fJ=(e,t,n)=>{e.emit(lJ[t].event,{[t]:n})},pJ=e=>uJ.find(t=>dJ(e,t)?.classList.contains(`active`))??`hour`,mJ=(e,t)=>{uJ.forEach(n=>GK(dJ(e,n),`active`,n===t)),ZK(e.getModalElement())},hJ=(e,t)=>{let n=dJ(e,t);if(!n)return;let r=e.options.labels[lJ[t].announce];WK(e.getModalElement(),`${r}: ${n.value}`)},gJ=(e,t)=>t===`hour`?e.options.clock.type===`12h`?[1,12]:[0,23]:[0,59],_J=(e,t,n)=>{let r=e.disabledTime?.value;return hK(r?{...r,clockType:GG(e.options)}:null,t,n,!!e.options.clock.showSeconds)},vJ=(e,t)=>{let n=_K(e);return r=>_J(e,t,{...n,[t]:Uq(r)})},yJ=e=>{let t=_K(e),n=e.options.clock.showSeconds?`seconds`:`minutes`;return!!t.hour&&!!t.minutes&&_J(e,n,t)},bJ=` - `,xJ=2,SJ=e=>e!==null,CJ=class{core;emitter;constructor(e,t){this.core=e,this.emitter=t}isCurrentTimeEnabled(e){let t=this.core.options.clock.currentTime;return typeof t==`boolean`?t:!!t?.[e]}preventClockTypeByCurrentTime(){if(!this.isCurrentTimeEnabled(`preventClockType`))return;let e=this.core.getInput();if(!e)return;let{currentTime:t,type:n}=this.core.options.clock,{type:r}=Yq(e,n,t,!0);this.core.updateOptions({clock:{type:r?`12h`:`24h`}})}updateInputValueWithCurrentTimeOnStart(){if(!this.isCurrentTimeEnabled(`updateInput`))return;let e=this.core.getInput();if(!e)return;let{clock:t}=this.core.options,n=KG(this.core.options);e.value=iK(Yq(e,t.type,t.currentTime,void 0,n.showSeconds),n)}syncInputFormat(e){let t=KG(e),n=KG(this.core.options);if(t.clockType===n.clockType&&t.showSeconds===n.showSeconds)return;let r=this.core.getInput();if(!r)return;let i=r.value.split(bJ).map(e=>nK(e,t));i.length>xJ||!i.every(SJ)||(r.value=i.map(e=>iK(oK(e,t.clockType,n),n)).join(bJ))}getInputValueOnOpenAndSet(e=!0){let t=this.core.getInput();if(!t)return;let{clock:n}=this.core.options,r=KG(this.core.options),i=t.value.trim()?void 0:n.currentTime,a=Yq(t,n.type,i,void 0,r.showSeconds);uJ.forEach(e=>{let t=a[e];t!==void 0&&QK(dJ(this.core,e),t)}),r.clockType===`12h`&&this.activatePeriod(a.type??`AM`),e&&this.emitter.emit(`open`,{...a,type:this.core.getActiveType(),...lK(a)})}activatePeriod(e){if(e!==`AM`&&e!==`PM`)return;let t=this.core.getModalElement(),n=e=>t?.querySelector(`[data-type='${e}']`);YK(n(`AM`),n(`PM`),e)}destroy(){}},wJ=`(orientation: landscape) and (max-height: 480px)`,TJ=`tp-ui-view-switching`,EJ=[`select-time`,`keyboard-icon-wrapper`,`hour`,`minutes`,`seconds`,`hour-text`,`minute-text`,`second-text`,`header`,`wrapper-type-time`,`am`,`pm`,`input-wrapper`,`input-ripple-wrapper`].map(e=>`.tp-ui-${e}`).join(`,`),DJ=[[`.tp-ui-hour`,`hourLabel`,`mobileHour`],[`.tp-ui-minutes`,`minuteLabel`,`mobileMinute`],[`.tp-ui-seconds`,`second`,`second`]],OJ=e=>{if(typeof requestAnimationFrame>`u`){e();return}requestAnimationFrame(()=>e())},kJ=e=>{e?.classList.remove(`mobile`),e?.classList.add(`expanded`)},AJ=class{core;emitter;animatingModal=null;constructor(e,t){this.core=e,this.emitter=t,this.setupEventListeners()}setupEventListeners(){this.emitter.on(`switch:view`,()=>{this.toggleMobileClockFace()})}checkMobileOption(){this.core.setIsMobileView(!!this.core.options.ui.mobile)}toggleMobileClockFace(){let e=this.core.getModalElement();if(!e||this.animatingModal===e)return;let t=e.querySelector(`.tp-ui-wrapper`);if(!t)return;let n={modal:e,wrapper:t,clockWrapper:e.querySelector(`.tp-ui-mobile-clock-wrapper`),heading:e.querySelector(`.tp-ui-select-time`),clockFace:this.core.getClockFace(),switchButton:this.core.getKeyboardClockIcon(),allElements:e.querySelectorAll(`*`),isOriginallyMobile:this.core.isMobileView};this.animatingModal=e;let r=t.classList.contains(`expanded`);this.isLandscape()?this.switchLandscape(n,r):r?OJ(()=>this.collapsePortrait(n)):this.expandPortrait(n)}switchLandscape(e,t){let{modal:n,wrapper:r,clockWrapper:i,clockFace:a}=e,o=this.core.options.ui.animation&&!lq();if(o&&n.classList.add(TJ),t?(a?.classList.remove(`scale-in`),i?.classList.add(`mobile`),this.finishCollapse(e)):(this.showClockView(e),kJ(r),kJ(i),a?.classList.add(`scale-in`)),!o){this.release(e);return}setTimeout(()=>{n.classList.remove(TJ),this.release(e)},UK.WRAPPER_TRANSITION)}collapsePortrait(e){e.clockFace?.classList.toggle(`scale-in`,!e.isOriginallyMobile),e.clockWrapper?.classList.remove(`expanded`),e.isOriginallyMobile&&e.clockWrapper?.classList.add(`mobile`),OJ(()=>{this.finishCollapse(e),setTimeout(()=>this.release(e),UK.MOBILE_TOGGLE)})}finishCollapse(e){let{wrapper:t,clockWrapper:n,isOriginallyMobile:r}=e;t.classList.remove(`expanded`),t.classList.add(`mobile`),n?.classList.remove(`expanded`),r&&n?.classList.add(`mobile`),e.allElements.forEach(e=>{e===t||e===n||(e.classList.remove(`expanded`),r&&e.classList.add(`mobile`))}),this.switchView(e,!0)}showClockView(e){let{wrapper:t,clockWrapper:n}=e;this.selectActiveField(),e.allElements.forEach(e=>{e!==t&&e!==n&&kJ(e)}),this.switchView(e,!1)}expandPortrait(e){let{wrapper:t,clockWrapper:n,clockFace:r}=e;this.showClockView(e),OJ(()=>{kJ(t),OJ(()=>{kJ(n),r?.classList.remove(`scale-in`),setTimeout(()=>r?.classList.add(`scale-in`),UK.CLOCK_SCALE_DELAY),setTimeout(()=>this.release(e),UK.MOBILE_TOGGLE)})})}selectActiveField(){let e=pJ(this.core),t=dJ(this.core,e);t&&fJ(this.emitter,e,t.value)}switchView(e,t){let{modal:n,heading:r}=e,{labels:i,ui:a}=this.core.options,o=!t&&!a.editable;n.querySelectorAll(EJ).forEach(e=>e.classList.toggle(`mobile`,t)),DJ.forEach(([e,r,a])=>{let s=n.querySelector(e);s&&(s.toggleAttribute(`readonly`,o),KK(s,`aria-label`,i[t?a:r]))}),ZK(n);let s=t?i.mobileTime:i.time;r&&s&&(r.textContent=s),!r&&s&&ZG(this.core.options)&&n.setAttribute(`aria-label`,s),this.setClockFaceHidden(e.clockFace,t),this.renderSwitchButton(e.switchButton,t)}renderSwitchButton(e,t){if(!e)return;let{iconTemplate:n,iconTemplateMobile:r}=this.core.options.ui,{switchToKeyboardLabel:i,switchToClockLabel:a}=this.core.options.labels;t?(e.innerHTML=r||fq,e.setAttribute(`aria-label`,a??``)):(e.innerHTML=n||dq,e.setAttribute(`aria-label`,i??``))}updateClockFaceAccessibility(e){this.setClockFaceHidden(this.core.getClockFace(),e)}setClockFaceHidden(e,t){e&&(e.tabIndex=t?-1:0,KK(e,`aria-hidden`,t&&`true`))}isLandscape(){return typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(wJ).matches}release(e){this.animatingModal===e.modal&&(this.animatingModal=null)}destroy(){this.animatingModal=null}},jJ=(e,t)=>e?e.classList.contains(t):!1,MJ=(e,t)=>{e.forEach(e=>{if(!uK(e,t))throw Error(`Invalid ${t} format: "${e}"`)});let n=dK(e,t);if(n)throw Error(`Overlapping intervals: "${n[0]}" and "${n[1]}"`);return!1},NJ=()=>typeof window<`u`&&window.crypto&&typeof window.crypto.randomUUID==`function`?window.crypto.randomUUID():`xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`.replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e===`x`?t:t&3|8).toString(16)}),PJ=(e,t)=>(e?.forEach(e=>{if(Number(e)>59)throw Error(`The disabled ${t} value has to be less than 60`)}),e?.map(e=>Uq(Number(e)))),FJ=e=>{if(!e)return;let{disabledTime:t,type:n}=e.clock;if(!t||!Object.keys(t).length)return;let{hours:r,minutes:i,seconds:a,interval:o}=t;if(o){let t=Array.isArray(o)?o:[o];if(!n)throw Error(`clockType required for interval`);return MJ(t,GG(e)),{value:{isInterval:!0,clockType:n,intervals:t}}}r?.forEach(e=>{if(n===`12h`&&Number(e)>12)throw Error(`The disabled hours value has to be less than 13`);if(n===`24h`&&Number(e)>23)throw Error(`The disabled hours value has to be less than 24`)});let s=PJ(i,`minutes`),c=PJ(a,`seconds`);return{value:{hours:r?.map(e=>e===`00`||Number(e)===0?`0${Number(e)}`:`${Number(e)}`),minutes:s,seconds:c}}},IJ=(e,t,n,r)=>{if(e){if(Array.isArray(e))return!e.map(e=>Xq(e,t,n)).some(e=>e===!1);if(typeof e==`string`||typeof e==`number`){let i=Xq(e,t,n),a=r?.map(Number).includes(Number(e));return!(!i||a)}}},LJ=3600,RJ=24,zJ=e=>({hour:Math.floor(e/LJ)%RJ,minutes:Math.floor(e/60)%60,seconds:e%60}),BJ=(e,t)=>{try{return!!e(zJ(t))}catch(e){return vK(e),!1}},VJ=class{core;constructor(e){this.core=e}getDisableTime(){let e=FJ(this.core.options)||null,t=this.buildPredicate();if(this.core.setTimePredicate(t),!t){this.core.setDisabledTime(e);return}this.core.setDisabledTime({value:{...e?.value,predicate:t}})}clearPredicateCache(){this.core.timePredicate?.clear()}buildPredicate(){let{isTimeDisabled:e}=this.core.options.clock;return typeof e==`function`?yK(e):null}destroy(){}},HJ=class{inputValueHandler;mobileViewHandler;disabledTimeHandler;constructor(e,t){this.inputValueHandler=new CJ(e,t),this.mobileViewHandler=new AJ(e,t),this.disabledTimeHandler=new VJ(e)}preventClockTypeByCurrentTime(){this.inputValueHandler.preventClockTypeByCurrentTime()}updateInputValueWithCurrentTimeOnStart(){this.inputValueHandler.updateInputValueWithCurrentTimeOnStart()}getInputValueOnOpenAndSet(e=!0){this.inputValueHandler.getInputValueOnOpenAndSet(e)}syncInputFormat(e){this.inputValueHandler.syncInputFormat(e)}checkMobileOption(){this.mobileViewHandler.checkMobileOption()}updateClockFaceAccessibility(e){this.mobileViewHandler.updateClockFaceAccessibility(e)}getDisableTime(){this.disabledTimeHandler.getDisableTime()}clearPredicateCache(){this.disabledTimeHandler.clearPredicateCache()}destroy(){this.inputValueHandler.destroy(),this.mobileViewHandler.destroy(),this.disabledTimeHandler.destroy()}},UJ=`tp-ui`,WJ=`active`,GJ=class{core;constructor(e,t){this.core=e}setInputClassToInputElement(){let e=this.core.getInput();e&&(jJ(e,`tp-ui-input`)||e.classList.add(`tp-ui-input`))}setDataOpenToInputIfDoesntExistInWrapper(){let e=this.core.getOpenElementData(),t=this.core.getInput();e===null&&t&&t.setAttribute(`data-open`,`tp-ui-input`)}setClassTopOpenElement(){let e=this.core.getOpenElement();for(let t of e)t&&t.classList.add(`tp-ui-open-element`)}setTimepickerClassToElement(){let e=this.core.element;if(!e)return;e.classList.add(UJ);let t=this.core.options.ui.cssClass;t&&t!==UJ&&e.classList.add(t)}destroy(){let e=this.core.getModalElement();e&&e.removeAttribute(`data-theme`)}},KJ=class e extends Error{constructor(t,n){super(`[TimepickerUI] ${t}`),this.code=n,this.name=`TimepickerError`,Object.setPrototypeOf(this,e.prototype)}},qJ={INVALID_PARAMETER:`INVALID_PARAMETER`},JJ=class{core;emitter;constructor(e,t){this.core=e,this.emitter=t}setErrorHandler(){let e=this.core.getInput();if(!e||(this.removeErrorHandler(),this.core.options.range?.enabled))return!0;let{clock:t}=this.core.options,{error:n,currentHour:r,currentMin:i,currentSec:a,currentType:o,currentLength:s}=Yq(e,t.type,void 0,void 0,!!t.showSeconds);if(n){if(NK()===!1)return!1;let t=this.core.options.labels.invalidTimeFormat,c=this.getErrorId(),l=document.createElement(`div`);l.id=c,l.classList.add(`tp-ui-invalid-text`),l.setAttribute(`role`,`alert`);let u=document.createElement(`b`);u.textContent=t,l.appendChild(u),e.classList.add(`tp-ui-invalid-format`),e.nextElementSibling?.classList.contains(`tp-ui-invalid-text`)||e.after(l),this.linkErrorMessage(e,c),this.announceInModal(t);let d={error:n,rejectedHour:void 0,rejectedMinute:void 0,inputHour:r,inputMinute:i,inputType:o,inputLength:s};return a!==void 0&&(d.inputSecond=a),this.emitter.emit(`error`,d),!1}return!0}removeErrorHandler(){let e=this.core.getInput();if(!e)return;GK(e,`tp-ui-invalid-format`,!1),this.unlinkErrorMessage(e);let t=e.nextElementSibling;t?.classList.contains(`tp-ui-invalid-text`)&&t.remove()}getErrorId(){return`tp-ui-invalid-text-${this.core.instanceId}`}getDescribedByIds(e){return(e.getAttribute(`aria-describedby`)??``).split(/\s+/).filter(Boolean)}linkErrorMessage(e,t){let n=this.getDescribedByIds(e).filter(e=>e!==t);e.setAttribute(`aria-describedby`,[...n,t].join(` `)),e.setAttribute(`aria-invalid`,`true`)}unlinkErrorMessage(e){let t=this.getErrorId(),n=this.getDescribedByIds(e);n.includes(t)&&(KK(e,`aria-describedby`,n.filter(e=>e!==t).join(` `)),e.removeAttribute(`aria-invalid`))}announceInModal(e){let t=this.core.getModalElement();if(t){if(!this.core.options.behavior.focusTrap){WK(t,e);return}t.addEventListener(`focusin`,()=>WK(t,e),{once:!0})}}checkDisabledValuesOnStart(){let{isTimeDisabled:e}=this.core.options.clock;if(e&&typeof e!=`function`)throw new KJ(`clock.isTimeDisabled must be a function`,qJ.INVALID_PARAMETER);if(!this.core.options.clock.disabledTime)return;let{disabledTime:t,type:n}=this.core.options.clock,r=GG(this.core.options);if(t.interval){if(!n)throw new KJ(`clockType is required when using disabledTime.interval`,qJ.INVALID_PARAMETER);let e=Array.isArray(t.interval)?t.interval:[t.interval];try{MJ(e,r)}catch(e){throw new KJ(`Invalid disabledTime.interval: ${e.message}`,qJ.INVALID_PARAMETER)}return}let{hours:i,minutes:a,seconds:o}=t,s=!i||IJ(i,`hour`,r),c=!a||IJ(a,`minutes`,r),l=!o||IJ(o,`minutes`,r);if(!s||!c)throw new KJ(`Invalid hours or minutes in disabledTime option`,qJ.INVALID_PARAMETER);if(!l)throw new KJ(`Invalid seconds in disabledTime option`,qJ.INVALID_PARAMETER)}destroy(){this.removeErrorHandler()}},YJ=class{core;emitter;cleanupHandlers=[];persistentCleanups=[];okBlocked=!1;syncOk=null;constructor(e,t){this.core=e,this.emitter=t}handleOpenOnClick(){let e=this.core.getOpenElement();if(!e)return;let t=()=>{this.core.isDestroyed||SK(this.emitter)};e.forEach(e=>{this.persistentCleanups.push(aq(e,t))})}handleCancelButton(){let e=this.core.getCancelButton();e&&this.cleanupHandlers.push(aq(e,()=>{this.core.isDestroyed||this.emitter.emit(`cancel`,{})}))}handleOkButton(){let e=this.core.getOkButton();e&&(this.cleanupHandlers.push(aq(e,()=>{if(this.core.isDestroyed||e.getAttribute(`aria-disabled`)===`true`)return;if(this.core.getHour()&&this.core.getMinutes()){this.emitter.emit(`confirm`,_K(this.core));return}let t=this.core.getModalElement();t&&this.emitter.emit(`confirm`,this.readWheelCenter(t))})),this.blockOkOnDisabledTime(e))}blockOkOnDisabledTime(e){if(this.core.options.range?.enabled)return;let t=()=>{let t=yJ(this.core);!t&&!this.okBlocked||(this.okBlocked=t,eq(e,t))};this.syncOk=t,t(),bK(this.emitter,this.cleanupHandlers,`update`,({hour:e})=>{e&&t()})}readWheelCenter(e){let t=t=>e.querySelector(`.tp-ui-wheel-${t} .tp-ui-wheel-item.is-center`)?.getAttribute(`data-value`)??void 0,n={hour:t(`hours`),minutes:t(`minutes`),type:t(`ampm`)};return this.core.options.clock.showSeconds&&(n.seconds=t(`seconds`)),n}handleAmClick(){let e=this.core.getAM();e&&this.cleanupHandlers.push(aq(e,()=>{this.core.isDestroyed||(YK(e,this.core.getPM(),`AM`),WK(this.core.getModalElement(),this.core.options.labels.announceAmSelected),this.emitter.emit(`select:am`,{}),this.emitter.emit(`update`,{..._K(this.core),type:`AM`}))}))}handlePmClick(){let e=this.core.getPM();e&&this.cleanupHandlers.push(aq(e,()=>{this.core.isDestroyed||(YK(this.core.getAM(),e,`PM`),WK(this.core.getModalElement(),this.core.options.labels.announcePmSelected),this.emitter.emit(`select:pm`,{}),this.emitter.emit(`update`,{..._K(this.core),type:`PM`}))}))}handleSwitchViewButton(){let e=this.core.getKeyboardClockIcon();e&&this.cleanupHandlers.push(aq(e,()=>{this.core.isDestroyed||this.emitter.emit(`switch:view`,{})}))}syncOkButton(){this.syncOk?.()}detach(){xK(this.cleanupHandlers),this.syncOk=null}destroy(){this.detach(),xK(this.persistentCleanups)}},XJ=(e,t,n)=>Math.max(t,Math.min(n,e)),ZJ=(e,t)=>{if(e===``)return``;let n=parseInt(e,10);return Number.isNaN(n)?``:XJ(n,+!!t,t?12:23).toString().padStart(2,`0`)},QJ=e=>{if(e===``)return``;let t=parseInt(e,10);return Number.isNaN(t)?``:XJ(t,0,59).toString().padStart(2,`0`)},$J={hour:ZJ,minutes:QJ,seconds:QJ},eY=class{core;emitter;cleanupHandlers=[];constructor(e,t){this.core=e,this.emitter=t}handleHourEvents(){this.bindTimeField(`hour`)}handleMinutesEvents(){this.bindTimeField(`minutes`)}handleSecondsEvents(){this.bindTimeField(`seconds`)}bindTimeField(e){let t=dJ(this.core,e);if(!t)return;let n=()=>{this.core.isDestroyed||(mJ(this.core,e),fJ(this.emitter,e,t.value),this.emitter.emit(`update`,_K(this.core)))};t.addEventListener(`click`,n),this.cleanupHandlers.push(()=>t.removeEventListener(`click`,n));let r=t.value,i=()=>{if(this.core.isDestroyed||t.hasAttribute(`readonly`))return;let n=$J[e](t.value,this.core.options.clock.type===`12h`);QK(t,n&&this.nearestEnabled(e,Number(n))),t.value!==r&&(r=t.value,this.emitter.emit(`animation:clock`,{}),fJ(this.emitter,e,t.value),this.emitter.emit(`update`,_K(this.core)))};t.addEventListener(`blur`,i),this.cleanupHandlers.push(()=>t.removeEventListener(`blur`,i))}nearestEnabled(e,t){let[n,r]=gJ(this.core,e);return Uq(gK(t,n,r,vJ(this.core,e)))}detach(){xK(this.cleanupHandlers)}destroy(){this.detach()}},tY=[1,!0,(e,{step:t})=>Math.floor(e/t)*t+t],nY=[-1,!0,(e,{step:t})=>Math.ceil(e/t)*t-t],rY={ArrowUp:tY,ArrowDown:nY,Home:[1,!1,(e,{min:t})=>t],End:[-1,!1,(e,{last:t})=>t],PageUp:[1,!1,(e,{last:t,step:n,pageSteps:r})=>Math.min(t,Math.floor(e/n)*n+n*r)],PageDown:[-1,!1,(e,{min:t,step:n,pageSteps:r})=>Math.max(t,Math.ceil(e/n)*n-n*r)]},iY={...rY,ArrowRight:tY,ArrowLeft:nY},aY=([e,t,n],r,i,a)=>{let{min:o,last:s,step:c}=i,l=n(r,i);for(let n=(s-o)/c;n>=0;n--){if(l<o||l>s){if(!t)return null;l=l<o?s:o}if(!a(l))return l;l+=e*c}return null},oY=class{core;emitter;cleanupHandlers=[];persistentCleanups=[];constructor(e,t){this.core=e,this.emitter=t}handleOpenOnEnterFocus(){this.onKeydown(this.core.getInput(),e=>{e.key===`Enter`&&!this.core.isOpen&&this.core.isModalRemove&&SK(this.emitter)},this.persistentCleanups)}handleEscClick(){NK()!==!1&&this.onKeydown(document,e=>{this.core.isOpen&&e.key===`Escape`&&this.emitter.emit(`cancel`,{})})}handleKeyboardInput(){uJ.forEach(e=>this.onKeydown(dJ(this.core,e),t=>this.stepField(e,rY[t.key],t,!0))),this.onKeydown(this.core.getClockFace(),e=>{let t=pJ(this.core);iq(e.key)?(e.preventDefault(),this.advanceFace(t)):this.stepField(t,iY[e.key],e,!1)}),ZK(this.core.getModalElement())}advanceFace(e){let t=uJ[uJ.indexOf(e)+1],n=t===`minutes`?`autoSwitchToMinutes`:`autoSwitchToSeconds`;!t||this.core.options.clock[n]===!1||(dJ(this.core,t)?.click(),hJ(this.core,t))}onKeydown(e,t,n=this.cleanupHandlers){if(!e)return;let r=e=>{this.core.isDestroyed||t(e)};e.addEventListener(`keydown`,r),n.push(()=>e.removeEventListener(`keydown`,r))}spinRange(e){let[t,n]=gJ(this.core,e),{incrementHours:r,incrementMinutes:i,incrementSeconds:a}=this.core.options.clock,o={hour:r,minutes:i,seconds:a}[e]||1;return{min:Math.ceil(t/o)*o,last:Math.floor(n/o)*o,step:o,pageSteps:e===`hour`?3:5}}stepField(e,t,n,r){let i=dJ(this.core,e);if(!t||!i)return;n.preventDefault();let a=aY(t,parseInt(i.value)||0,this.spinRange(e),vJ(this.core,e));if(a===null)return;let o=Uq(a);mJ(this.core,e),QK(i,o),r&&hJ(this.core,e),fJ(this.emitter,e,o),this.emitter.emit(`update`,_K(this.core))}focusTrapHandler(){let e=this.core.getWrapper();e&&this.onKeydown(e,t=>{if(t.key!==`Tab`)return;let n=e.querySelectorAll(`button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])`),r=[];if(n.forEach(e=>{e.getAttribute(`aria-disabled`)!==`true`&&(e.hasAttribute(`disabled`)||e.hidden||e.getAttribute(`aria-hidden`)!==`true`&&(e.offsetParent===null&&e.getClientRects().length===0||r.push(e)))}),r.length===0)return;let i=r[0],a=r[r.length-1];t.shiftKey&&document.activeElement===i?(a?.focus(),t.preventDefault()):!t.shiftKey&&document.activeElement===a&&(i?.focus(),t.preventDefault())})}detach(){xK(this.cleanupHandlers)}destroy(){this.detach(),xK(this.persistentCleanups)}},sY=class{core;emitter;cleanupHandlers=[];constructor(e,t){this.core=e,this.emitter=t}handleBackdropClick(){let e=this.core.getModalElement();if(!e)return;let t=!1,n=n=>{t=n.target!==e},r=n=>{t||=n.target!==e},i=n=>{!this.core.isDestroyed&&n.target===e&&!t&&this.emitter.emit(`cancel`,{})};e.addEventListener(`pointerdown`,n),e.addEventListener(`pointerup`,r),e.addEventListener(`click`,i),this.cleanupHandlers.push(()=>{e.removeEventListener(`pointerdown`,n),e.removeEventListener(`pointerup`,r),e.removeEventListener(`click`,i)})}handlePointerModality(){let e=this.core.getModalElement();e&&this.cleanupHandlers.push(cq(e))}detach(){xK(this.cleanupHandlers)}destroy(){this.detach()}},cY=class{buttonHandlers;inputHandlers;keyboardHandlers;modalHandlers;constructor(e,t){this.buttonHandlers=new YJ(e,t),this.inputHandlers=new eY(e,t),this.keyboardHandlers=new oY(e,t),this.modalHandlers=new sY(e,t)}handleOpenOnClick(){this.buttonHandlers.handleOpenOnClick()}handleOpenOnEnterFocus(){this.keyboardHandlers.handleOpenOnEnterFocus()}handleCancelButton(){this.buttonHandlers.handleCancelButton()}handleOkButton(){this.buttonHandlers.handleOkButton()}syncOkButton(){this.buttonHandlers.syncOkButton()}handleBackdropClick(){this.modalHandlers.handleBackdropClick()}handlePointerModality(){this.modalHandlers.handlePointerModality()}handleEscClick(){this.keyboardHandlers.handleEscClick()}handleAmClick(){this.buttonHandlers.handleAmClick()}handlePmClick(){this.buttonHandlers.handlePmClick()}handleHourEvents(){this.inputHandlers.handleHourEvents()}handleMinutesEvents(){this.inputHandlers.handleMinutesEvents()}handleSecondsEvents(){this.inputHandlers.handleSecondsEvents()}handleKeyboardInput(){this.keyboardHandlers.handleKeyboardInput()}focusTrapHandler(){this.keyboardHandlers.focusTrapHandler()}handleSwitchViewButton(){this.buttonHandlers.handleSwitchViewButton()}detach(){this.buttonHandlers.detach(),this.inputHandlers.detach(),this.keyboardHandlers.detach(),this.modalHandlers.detach()}destroy(){this.buttonHandlers.destroy(),this.inputHandlers.destroy(),this.keyboardHandlers.destroy(),this.modalHandlers.destroy()}},lY=(e=[])=>{let t=e[e.length-1];return t===void 0?void 0:parseInt(t,10)+1},uY=class{emitter;getClockSystem;setHoursToClock;setMinutesToClock;setSecondsToClock;updateAmPm;convertDisabledTime;constructor(e,t,n,r,i,a,o){this.emitter=e,this.getClockSystem=t,this.setHoursToClock=n,this.setMinutesToClock=r,this.setSecondsToClock=o,this.updateAmPm=i,this.convertDisabledTime=a}setup(){this.emitter.on(`select:hour`,({hour:e})=>{this.showFace(`hours`,e,this.setHoursToClock)}),this.emitter.on(`select:minute`,({minutes:e})=>{this.showFace(`minutes`,e,this.setMinutesToClock)}),this.emitter.on(`select:second`,({seconds:e})=>{this.showFace(`seconds`,e,this.setSecondsToClock)}),this.emitter.on(`select:am`,()=>{this.updateAmPm()}),this.emitter.on(`select:pm`,()=>{this.updateAmPm()}),this.emitter.on(`animation:start`,()=>{this.getClockSystem()?.blockInteractions()}),this.emitter.on(`animation:end`,()=>{this.getClockSystem()?.unblockInteractions()}),this.emitter.on(`range:switch`,e=>{this.refreshDisabledTimeForRange(e.disabledTime)})}showFace(e,t,n){t&&this.getClockSystem()?.setValueIfShown(e,t)||(this.emitter.emit(`animation:clock`,{}),n?.(t||null),this.emitter.emit(`switch:face`,{face:e}))}refreshDisabledTimeForRange(e){let t=this.getClockSystem();if(!t)return;let n=this.convertDisabledTime();if(!e){t.updateDisabledTime(n);return}t.updateDisabledTime({...n,rangeFromType:e.fromType,rangeFromHour:e.fromHour,rangeFromMinute:e.fromMinute??lY(e.minutes),rangeFromSecond:lY(e.seconds)})}},dY=new WeakMap,fY=(e,t)=>{let n=e.clockType??t,r=dY.get(e);if(r&&r.clockType===n&&r.predicate===e.predicate)return r;let i={hours:e.hours,minutes:e.minutes,seconds:e.seconds,intervals:e.isInterval?e.intervals:void 0,clockType:n,predicate:e.predicate};return dY.set(e,i),i},pY=12,mY=59,hY=59,gY=(e,t,n)=>n===`24h`?e:t===`AM`?e%pY:t===`PM`?e%pY+pY:null,_Y=(e,t,n,r,i)=>{let a=gY(e,r,i);return a===null?null:(a*60+t)*60+n},vY=(e,t,n,r,i,a)=>{let{rangeFromHour:o,rangeFromMinute:s=0,rangeFromSecond:c=0,rangeFromType:l}=i;if(o===void 0)return!1;let u=_Y(o,s,c,l,a),d=_Y(e,t,n,r,a);return u!==null&&d!==null&&d<u},yY=(e,t,n,r)=>vY(parseInt(e,10),mY,hY,t,n,r),bY=(e,t,n,r,i)=>vY(parseInt(t,10),parseInt(e,10),hY,n,r,i),xY=(e,t,n,r,i,a)=>vY(parseInt(n,10),parseInt(t,10),parseInt(e,10),r,i,a),SY=class{static angleToIndex(e,t,n){let r=Math.round(e/30)%12;if(t===`24h`){if(n){let e=r+12;return e===12?0:e}return r===0?12:r}return r===0?12:r}static indexToValue(e,t){if(t===`24h`)return e.toString().padStart(2,`0`);let n=e;return n===0&&(n=12),n>12&&(n-=12),n.toString().padStart(2,`0`)}static indexToAngle(e,t){return t===`24h`?e>=12?(e-12)%12*30:e%12*30:(e===0?12:e)%12*30}static isDisabled(e,t,n,r,i=!1){return n?yY(e,t,n,r)||mK(fY(n,r),{hour:e,type:t||void 0},i):!1}static findNearestValid(e,t,n,r,i=!1,a=1){let o=t===`24h`?23:12;for(let s=0;s<=o;s++){let c=s===0?[e]:[e+s,e-s];for(let e of c){let s=e;s<0&&(s+=o+1),s>o&&(s%=o+1);let c=this.indexToValue(s,t);if(cJ(s,a)&&!this.isDisabled(c,n,r,t,i))return s}}return e}},CY=class{static angleToIndex(e){return Math.round(e/6)%60}static indexToValue(e){return e.toString().padStart(2,`0`)}static indexToAngle(e){return e%60*6}static isDisabled(e,t,n,r,i,a=!1){return r?bY(e,t,n,r,i)||pK(fY(r,i),{hour:t,minutes:e,type:n||void 0},a):!1}static isUnitDisabled(e,t,n){let{hour:r,minute:i,amPm:a,disabledTime:o,clockType:s,showSeconds:c}=n;return e===`minutes`?this.isDisabled(t,r,a,o,s,c):o?xY(t,i,r,a,o,s)||fK(fY(o,s),{hour:r,minutes:i,seconds:t,type:a||void 0}):!1}static findNearestValidIndex(e,t,n){for(let r=0;r<60;r++){let i=r===0?[e]:[e+r,e-r];for(let e of i){let r=e;if(r<0&&(r+=60),r>=60&&(r%=60),!this.isUnitDisabled(t,this.indexToValue(r),n))return r}}return e}},wY=class{static normalizeAngle(e){let t=e%360;return t<0&&(t+=360),t}static calculateRawAngle(e,t){let n=e.x-t.x,r=e.y-t.y,i=Math.atan2(r,n)*180/Math.PI+90;return this.normalizeAngle(i)}static snapToIncrement(e,t){let n=Math.round(e/t)*t;return this.normalizeAngle(n)}static calculateDistance(e,t){let n=e.x-t.x,r=e.y-t.y;return Math.sqrt(n*n+r*r)}static isInnerCircle(e,t){return e<t*.75}static calculateShortestPath(e,t){let n=this.normalizeAngle(e),r=this.normalizeAngle(t)-n,i=r>=0?r:r+360,a=r<=0?r:r-360;return e+(Math.abs(i)<Math.abs(a)?i:a)}},TY=class{config;currentAngle=0;tipsCache=new Map;cachedDimensions=new Map;snapTimeout=null;sweep=null;constructor(e){this.config=e}getCachedDimensions(e){let t=this.cachedDimensions.get(e);if(!t){let n=(e.offsetWidth-32)/2;t={width:n,height:(e.offsetHeight-32)/2,radius:n-9},this.cachedDimensions.set(e,t)}return t}setHandAngle(e){this.cancelSweep();let t=wY.calculateShortestPath(this.currentAngle,e);Math.abs(this.currentAngle-t)<.01||(this.currentAngle=t,this.config.clockHand.style.transform=`rotateZ(${t}deg)`)}animateToAngle(e){let t=wY.calculateShortestPath(this.currentAngle,e);if(this.currentAngle=t,lq()){this.config.clockHand.style.transform=`rotateZ(${t}deg)`;return}this.clearSnapTimeout(),this.config.clockHand.classList.add(`tp-ui-tips-animation`),this.config.clockHand.style.transform=`rotateZ(${t}deg)`,this.snapTimeout=setTimeout(()=>{this.snapTimeout=null,this.config.clockHand.classList.remove(`tp-ui-tips-animation`)},UK.TIPS_ANIMATION)}clearSnapTimeout(){this.snapTimeout!==null&&(clearTimeout(this.snapTimeout),this.snapTimeout=null)}setActiveValue(e){let t=Number(e);[this.config.tipsWrapper,this.config.tipsWrapperFor24h].forEach(n=>{n?.querySelectorAll(`.tp-ui-value-tips, .tp-ui-value-tips-24h`).forEach(n=>{GK(n,`active`,n.textContent===e||Number(n.textContent)===t)})})}followHand(e,t){this.cancelSweep();let n=this.config.clockHand;if(lq()||!n.classList.contains(`tp-ui-tips-animation`)){this.setActiveValue(t);return}let r=0,i=()=>{let{a:t,b:a}=new DOMMatrix(getComputedStyle(n).transform);this.setActiveValue(e(Math.atan2(a,t)*180/Math.PI)),r=requestAnimationFrame(i)},a=setTimeout(()=>{this.cancelSweep(),this.setActiveValue(t)},UK.TIPS_ANIMATION);this.sweep=()=>{cancelAnimationFrame(r),clearTimeout(a)},r=requestAnimationFrame(i)}cancelSweep(){this.sweep?.(),this.sweep=null}renderTips(e,t,n,r,i,a=!0,o,s=``,c=`12`,l=`00`){if(NK()===!1)return;let u=o||this.config.tipsWrapper,d={hour:c,minute:l,amPm:s,disabledTime:r,clockType:i,showSeconds:this.config.showSeconds};a&&(u.innerHTML=``,this.tipsCache.clear());let{width:f,height:p,radius:m}=this.getCachedDimensions(u),h=document.createDocumentFragment(),g=`${t}-${this.config.theme||`default`}`;e.forEach((r,a)=>{let o=`${g}-${r}`,s=this.tipsCache.get(o);s||(s=this.createTip(r,t,i),this.tipsCache.set(o,s));let{wrapper:c,tip:l}=s;this.updateTipState(c,l,r,n,d);let u=a*(360/e.length)*(Math.PI/180);c.style.left=`${f+Math.sin(u)*m}px`,c.style.bottom=`${p+Math.cos(u)*m}px`,h.appendChild(c)}),u.appendChild(h)}createTip(e,t,n){if(NK()===!1){let e={};return{wrapper:e,tip:e}}let r=document.createElement(`span`),i=document.createElement(`span`);i.textContent=e,i.tabIndex=-1;let a=n===`24h`&&t.includes(`24`)?`tp-ui-value-tips-24h`:`tp-ui-value-tips`;return i.classList.add(a),r.classList.add(t),r.appendChild(i),{wrapper:r,tip:i}}updateTipState(e,t,n,r,i){let a=this.checkIfDisabled(n,r,i);GK(e,`tp-ui-tips-disabled`,a),GK(t,`tp-ui-tips-disabled`,a)}checkIfDisabled(e,t,n){let{amPm:r,disabledTime:i,clockType:a,showSeconds:o}=n;return i?t===`hours`?SY.isDisabled(e,r,i,a,o):CY.isUnitDisabled(t,e,n):!1}setCircle24hMode(e){GK(this.config.circle,`tp-ui-circle-hand-24h`,e),GK(this.config.clockHand,`tp-ui-clock-hand-24h`,e)}destroy(){this.cancelSweep(),this.clearSnapTimeout(),this.tipsCache.clear(),this.cachedDimensions.clear()}},EY=class{static processPointerInput(e){let t=wY.calculateRawAngle(e.pointerPosition,e.clockCenter);return e.mode===`hours`?this.processHours(t,e):this.processSixty(t,e,e.mode)}static processHours(e,t){let n=wY.snapToIncrement(e,t.incrementHours*30),r=wY.calculateDistance(t.pointerPosition,t.clockCenter),i=t.clockType===`24h`&&wY.isInnerCircle(r,t.clockRadius),a=SY.angleToIndex(n,t.clockType,i),o=SY.indexToValue(a,t.clockType),s=SY.isDisabled(o,t.amPm,t.disabledTime,t.clockType,t.showSeconds);return s&&(a=SY.findNearestValid(a,t.clockType,t.amPm,t.disabledTime,t.showSeconds,t.incrementHours)),{angle:t.smoothHourSnap===!1?SY.indexToAngle(a,t.clockType):e,value:SY.indexToValue(a,t.clockType),index:a,isValid:!s,isInnerCircle:t.clockType===`24h`?i:void 0}}static processSixty(e,t,n){let r=n===`seconds`?t.incrementSeconds??1:t.incrementMinutes,i=wY.snapToIncrement(e,r*6),a=CY.angleToIndex(i),o={hour:t.currentHour||`00`,minute:t.currentMinute||`00`,amPm:t.amPm,disabledTime:t.disabledTime,clockType:t.clockType,showSeconds:t.showSeconds},s=CY.isUnitDisabled(n,CY.indexToValue(a),o);return s&&(a=CY.findNearestValidIndex(a,n,o)),{angle:CY.indexToAngle(a),value:CY.indexToValue(a),index:a,isValid:!s}}static valueToAngle(e,t,n){let r=parseInt(e,10);return t===`hours`?SY.indexToAngle(r,n):CY.indexToAngle(r)}},DY=class{state;renderer;clockType;disabledTime;incrementHours;incrementMinutes;incrementSeconds;smoothHourSnap;showSeconds;isDragging=!1;callbacks;lastProcessedX=null;lastProcessedY=null;appliedInDrag=!1;sixtyUnits={minutes:{value:`minute`,angle:`minuteAngle`,notify:()=>this.callbacks.onMinuteChange},seconds:{value:`second`,angle:`secondAngle`,notify:()=>this.callbacks.onSecondChange}};constructor(e,t,n,r,i=1,a=1,o=!0,s={},c=1,l=!1){this.renderer=e,this.state={...t},this.clockType=n,this.disabledTime=r,this.incrementHours=i,this.incrementMinutes=a,this.incrementSeconds=c,this.smoothHourSnap=o,this.showSeconds=l,this.callbacks=s}handlePointerMove(e,t,n){if(this.isDragging=!0,this.lastProcessedX===e.x&&this.lastProcessedY===e.y)return this.appliedInDrag;this.lastProcessedX=e.x,this.lastProcessedY=e.y;let r=this.state.mode,i={pointerPosition:e,clockCenter:t,clockRadius:n,mode:r,clockType:this.clockType,amPm:this.state.amPm,disabledTime:this.disabledTime,incrementHours:this.incrementHours,incrementMinutes:this.incrementMinutes,incrementSeconds:this.incrementSeconds,smoothHourSnap:this.smoothHourSnap,currentHour:this.state.hour,currentMinute:this.state.minute,showSeconds:this.showSeconds},a=EY.processPointerInput(i);if(!a.isValid)return!1;if(r===`hours`){let e=this.state.hour;this.state.hour=a.value,this.state.hourAngle=a.angle,this.clockType===`24h`&&a.isInnerCircle!==void 0&&this.renderer.setCircle24hMode(a.isInnerCircle),this.callbacks.onHourChange&&e!==a.value&&this.callbacks.onHourChange(a.value)}else{let e=this.writeSixty(r,a.value,a.angle),t=this.sixtyUnits[r].notify();t&&e!==a.value&&t(a.value)}return this.renderer.setHandAngle(a.angle),this.renderer.setActiveValue(a.value),this.appliedInDrag=!0,!0}handlePointerUp(){this.isDragging=!1,this.appliedInDrag=!1,this.lastProcessedX=null,this.lastProcessedY=null}snapToNearestHour(){if(this.state.mode!==`hours`)return;let e=EY.valueToAngle(this.state.hour,`hours`,this.clockType);this.state.hourAngle=e,this.renderer.animateToAngle(e)}switchMode(e){this.state.mode=e,this.renderer.setCircle24hMode(this.isInnerFace(e,this.getValue(e))),this.renderer.setHandAngle(this.getAngle(e))}followHand(e){let t=this.getValue(e),n=this.isInnerFace(e,t);this.renderer.followHand(t=>{let r=wY.snapToIncrement(t,30);return e===`hours`?SY.indexToValue(SY.angleToIndex(r,this.clockType,n),this.clockType):CY.indexToValue(CY.angleToIndex(r))},t)}setValue(e,t){let n=EY.valueToAngle(t,e,this.clockType);e===`hours`?(this.state.hour=t,this.state.hourAngle=n):this.writeSixty(e,t,n),this.state.mode===e&&(this.renderer.setCircle24hMode(this.isInnerFace(e,t)),this.renderer.setHandAngle(n),this.renderer.setActiveValue(t))}setAmPm(e){this.state.amPm=e}getState(){return{...this.state}}getValue(e){return e===`hours`?this.state.hour:this.state[this.sixtyUnits[e].value]}getHour(){return this.state.hour}getMinute(){return this.state.minute}getSecond(){return this.state.second}getAmPm(){return this.state.amPm}updateDisabledTime(e){this.disabledTime=e}destroy(){this.renderer.destroy()}getAngle(e){return e===`hours`?this.state.hourAngle:this.state[this.sixtyUnits[e].angle]}writeSixty(e,t,n){let r=this.sixtyUnits[e],i=this.state[r.value];return this.state[r.value]=t,this.state[r.angle]=n,i}isInnerFace(e,t){if(e!==`hours`||this.clockType!==`24h`)return!1;let n=parseInt(t,10);return n===0||n>=13}},OY=class{controller;clockFace;isActive=!1;isBlocked=!1;config;cachedRect=null;cachedCenter=null;cachedRadius=null;rafId=null;hadValidSelection=!1;constructor(e,t,n={}){this.controller=e,this.clockFace=t,this.config=n}attach(){this.clockFace.addEventListener(`mousedown`,this.handlePointerDown),this.clockFace.addEventListener(`touchstart`,this.handlePointerDown,{passive:!1})}detach(){this.clockFace.removeEventListener(`mousedown`,this.handlePointerDown),this.clockFace.removeEventListener(`touchstart`,this.handlePointerDown),this.removeGlobalListeners(),this.cancelPendingFrame(),this.isActive=!1}block(){this.isBlocked=!0}unblock(){this.isBlocked=!1}handlePointerDown=e=>{MK()||this.isBlocked||this.isDisabledTarget(e.target)||(e.preventDefault(),this.isActive=!0,this.hadValidSelection=!1,this.cachedRect=this.clockFace.getBoundingClientRect(),this.cachedCenter=this.getClockCenter(),this.cachedRadius=this.getClockRadius(),this.processPointerEvent(e),document.addEventListener(`mousemove`,this.handlePointerMove),document.addEventListener(`touchmove`,this.handlePointerMove,{passive:!1}),document.addEventListener(`mouseup`,this.handlePointerUp),document.addEventListener(`touchend`,this.handlePointerUp))};handlePointerMove=e=>{!this.isActive||this.isBlocked||this.isDisabledTarget(this.getTargetElement(e))||(e.preventDefault(),this.rafId===null&&(this.rafId=requestAnimationFrame(()=>{this.rafId=null,this.processPointerEvent(e)})))};handlePointerUp=()=>{if(!this.isActive)return;this.cancelPendingFrame(),this.isActive=!1,this.cachedRect=null,this.cachedCenter=null,this.cachedRadius=null,this.controller.handlePointerUp();let{autoSwitchToMinutes:e,autoSwitchToSeconds:t,isMobileView:n,smoothHourSnap:r,hourElement:i,minutesElement:a,secondsElement:o}=this.config;r&&i?.classList.contains(`active`)&&this.controller.snapToNearestHour(),this.removeGlobalListeners(),this.hadValidSelection&&(e&&i?.classList.contains(`active`)&&!n?this.activate(i,a):a?.classList.contains(`active`)&&o?t!==!1&&!n&&this.activate(a,o):this.isLastUnitActive()&&this.config.onMinuteCommit&&this.config.onMinuteCommit())};activate(e,t){t?.click(),t?.focus(),e.blur()}isLastUnitActive(){let{minutesElement:e,secondsElement:t}=this.config;return!!(t??e)?.classList.contains(`active`)}processPointerEvent(e){let t=this.getPointerPosition(e),n=this.cachedCenter||this.getClockCenter(),r=this.cachedRadius||this.getClockRadius();this.controller.handlePointerMove(t,n,r)!==!1&&(this.hadValidSelection=!0)}isDisabledTarget(e){return!!e?.closest?.(`.tp-ui-tips-disabled`)}getPointerPosition(e){let t=this.cachedRect||this.clockFace.getBoundingClientRect();if(`touches`in e){let n=e.touches[0]||e.changedTouches[0];return{x:n.clientX-t.left,y:n.clientY-t.top}}return{x:e.clientX-t.left,y:e.clientY-t.top}}getTargetElement(e){if(`touches`in e){let t=e.touches[0]||e.changedTouches[0];if(t&&!MK())return document.elementFromPoint(t.clientX,t.clientY)}return e.target}getClockCenter(){let e=this.clockFace.offsetWidth,t=this.clockFace.offsetHeight;return{x:e/2,y:t/2}}getClockRadius(){return this.clockFace.offsetWidth/2}cancelPendingFrame(){this.rafId!==null&&(cancelAnimationFrame(this.rafId),this.rafId=null)}removeGlobalListeners(){NK()!==!1&&(document.removeEventListener(`mousemove`,this.handlePointerMove),document.removeEventListener(`touchmove`,this.handlePointerMove),document.removeEventListener(`mouseup`,this.handlePointerUp),document.removeEventListener(`touchend`,this.handlePointerUp))}},kY=class{renderer;controller;dragHandlers;clockType;disabledTime;tipsWrapper;tipsWrapperFor24h;constructor(e){this.clockType=e.clockType,this.disabledTime=e.disabledTime,this.tipsWrapper=e.tipsWrapper,this.tipsWrapperFor24h=e.tipsWrapperFor24h;let t={clockFace:e.clockFace,tipsWrapper:e.tipsWrapper,tipsWrapperFor24h:e.tipsWrapperFor24h,clockHand:e.clockHand,circle:e.circle,theme:e.theme,showSeconds:e.showSeconds};this.renderer=new TY(t);let n=e.initialSecond||`00`,r={hour:e.initialHour,minute:e.initialMinute,second:n,amPm:e.initialAmPm,hourAngle:EY.valueToAngle(e.initialHour,`hours`,e.clockType),minuteAngle:EY.valueToAngle(e.initialMinute,`minutes`,e.clockType),secondAngle:EY.valueToAngle(n,`seconds`,e.clockType),mode:`hours`},i={onHourChange:e.onHourChange,onMinuteChange:e.onMinuteChange,onSecondChange:e.onSecondChange};this.controller=new DY(this.renderer,r,e.clockType,e.disabledTime,e.incrementHours||1,e.incrementMinutes||1,e.smoothHourSnap??!0,i,e.incrementSeconds||1,e.showSeconds??!1),this.dragHandlers=new OY(this.controller,e.clockFace,e.dragConfig||{})}initialize(){this.dragHandlers.attach(),this.switchToHours()}switchToHours(){this.controller.switchMode(`hours`),this.clockType===`24h`&&this.tipsWrapperFor24h&&this.tipsWrapperFor24h.classList.remove(`none`),this.renderHourTips(),this.controller.followHand(`hours`)}switchToMinutes(){this.switchToSixty(`minutes`)}switchToSeconds(){this.switchToSixty(`seconds`)}setHour(e){this.controller.setValue(`hours`,e)}setMinute(e){this.controller.setValue(`minutes`,e)}setSecond(e){this.controller.setValue(`seconds`,e)}setValueIfShown(e,t){let n=this.controller.getState().mode===e;return n&&this.controller.setValue(e,t),n}setAmPm(e){this.controller.setAmPm(e),this.refreshFace()}syncValue(e){this.controller.setValue(`hours`,e.hour),this.controller.setValue(`minutes`,e.minute),e.second&&this.controller.setValue(`seconds`,e.second),e.amPm&&this.clockType===`12h`&&this.controller.setAmPm(e.amPm),this.refreshFace()}refreshFace(){let{mode:e}=this.controller.getState();e===`hours`?this.switchToHours():this.switchToSixty(e)}getHour(){return this.controller.getHour()}getMinute(){return this.controller.getMinute()}getSecond(){return this.controller.getSecond()}getAmPm(){return this.controller.getAmPm()}updateDisabledTime(e){this.disabledTime=e,this.controller.updateDisabledTime(e),this.renderCurrentTips()}refreshDisabledTime(){this.controller.followHand(this.renderCurrentTips())}renderCurrentTips(){let{mode:e}=this.controller.getState();return e===`hours`?this.renderHourTips():this.renderSixtyTips(e),e}switchToSixty(e){this.controller.switchMode(e),this.tipsWrapperFor24h&&this.tipsWrapperFor24h.classList.add(`none`),this.renderSixtyTips(e),this.controller.followHand(e)}renderHourTips(){let e=this.controller.getState().amPm;this.clockType===`24h`?(this.renderer.renderTips(vq,`tp-ui-hour-time-12`,`hours`,this.disabledTime,this.clockType,!0,this.tipsWrapper,e),this.tipsWrapperFor24h&&this.renderer.renderTips(_q,`tp-ui-hour-time-24`,`hours`,this.disabledTime,this.clockType,!0,this.tipsWrapperFor24h,e)):this.renderer.renderTips(vq,`tp-ui-hour-time-12`,`hours`,this.disabledTime,this.clockType,!0,void 0,e)}renderSixtyTips(e){let{amPm:t,hour:n,minute:r}=this.controller.getState();this.renderer.renderTips(yq,`tp-ui-minutes-time`,e,this.disabledTime,this.clockType,!0,void 0,t,n,r)}destroy(){this.dragHandlers.detach(),this.controller.destroy()}blockInteractions(){this.dragHandlers.block()}unblockInteractions(){this.dragHandlers.unblock()}},AY=class{core;emitter;clockSystem=null;constructor(e,t){this.core=e,this.emitter=t}getClockSystem(){return this.clockSystem}initialize(){this.destroy();let e=this.core.getClockFace(),t=this.core.getClockHand(),n=this.core.getCircle();if(!e||!t||!n)return;let{clock:r}=this.core.options,i=r.type===`24h`,a=this.core.getTipsWrapper();if(!a)return;let o=r.showSeconds===!0,s=this.core.getHour(),c=this.core.getMinutes(),l=o?this.core.getSeconds():null,u={clockFace:e,tipsWrapper:a,tipsWrapperFor24h:i&&this.core.getTipsWrapperFor24h()||void 0,clockHand:t,circle:n,clockType:r.type||`12h`,disabledTime:this.convertDisabledTime(),initialHour:s?.value||`12`,initialMinute:c?.value||`00`,initialSecond:l?.value||`00`,initialAmPm:this.getAmPmValue(),theme:this.core.options.ui.theme,incrementHours:r.incrementHours||1,incrementMinutes:r.incrementMinutes||1,incrementSeconds:r.incrementSeconds||1,smoothHourSnap:r.smoothHourSnap??!0,showSeconds:o,timepicker:null,dragConfig:{autoSwitchToMinutes:r.autoSwitchToMinutes,autoSwitchToSeconds:r.autoSwitchToSeconds,isMobileView:this.core.isMobileView,smoothHourSnap:r.smoothHourSnap??!0,hourElement:s,minutesElement:c,secondsElement:l,onMinuteCommit:()=>{let e=_K(this.core);this.emitter.emit(`range:minute:commit`,{...e,hour:e.hour??`12`,minutes:e.minutes??`00`})}},onHourChange:e=>this.reflectClockValue(`hour`,e),onMinuteChange:e=>this.reflectClockValue(`minutes`,e),onSecondChange:e=>this.reflectClockValue(`seconds`,e)};this.clockSystem=new kY(u),this.clockSystem.initialize()}convertDisabledTime(){let e=this.core.disabledTime?.value;if(!e)return null;let t;return e.intervals&&(t=Array.isArray(e.intervals)?e.intervals:[e.intervals]),{hours:e.hours,minutes:e.minutes,seconds:e.seconds,isInterval:e.isInterval,intervals:t,clockType:e.clockType,predicate:e.predicate}}getAmPmValue(){if(this.core.options.clock.type===`24h`)return``;let e=this.core.getActiveType();if(e)return e;let t=this.core.getAM();return this.core.options.range?.enabled===!0?t?.classList.contains(`active`)?`AM`:``:t?.classList.contains(`active`)?`AM`:`PM`}reflectClockValue(e,t){QK(dJ(this.core,e),t),hJ(this.core,e),this.emitter.emit(`update`,_K(this.core))}destroy(){this.clockSystem&&=(this.clockSystem.destroy(),null)}},jY=class{core;constructor(e){this.core=e}setOnStartCSSClassesIfClockType24h(){if(this.core.options.clock.type!==`24h`)return;let e=this.core.getInput()?.value.split(`:`)[0];if(!e)return;let t=Number(e);(t>12||t===0)&&(this.core.getCircle()?.classList.add(`tp-ui-circle-hand-24h`),this.core.getClockHand()?.classList.add(`tp-ui-clock-hand-24h`))}setClassActiveToHourOnOpen(){this.core.options.ui.mobile||this.core.isMobileView||this.core.getHour()?.classList.add(WJ)}},MY={minutes:{set:`setMinute`,show:`switchToMinutes`},seconds:{set:`setSecond`,show:`switchToSeconds`}},NY=class{getClockSystem;getAmPmValue;getClockType;constructor(e,t,n){this.getClockSystem=e,this.getAmPmValue=t,this.getClockType=n}setMinutesToClock(e){this.setSixtyToClock(`minutes`,e)}setSecondsToClock(e){this.setSixtyToClock(`seconds`,e)}setHoursToClock(e){let t=this.getClockSystem();t&&(e&&t.setHour(e),t.switchToHours())}updateAmPm(){let e=this.getClockSystem();if(!e||this.getClockType()===`24h`)return;let t=this.getAmPmValue();t!==``&&e.setAmPm(t)}setSixtyToClock(e,t){let n=this.getClockSystem();if(!n)return;let r=MY[e];t&&n[r.set](t),n[r.show]()}},PY=class{systemInitializer;styleHandler;timeHandler;eventHandler;constructor(e,t){this.systemInitializer=new AY(e,t),this.styleHandler=new jY(e),this.timeHandler=new NY(()=>this.systemInitializer.getClockSystem(),()=>this.systemInitializer.getAmPmValue(),()=>e.options.clock.type||`12h`),this.eventHandler=new uY(t,()=>this.systemInitializer.getClockSystem(),e=>this.timeHandler.setHoursToClock(e),e=>this.timeHandler.setMinutesToClock(e),()=>this.timeHandler.updateAmPm(),()=>this.systemInitializer.convertDisabledTime(),e=>this.timeHandler.setSecondsToClock(e)),this.eventHandler.setup()}initializeClockSystem(){this.systemInitializer.initialize()}destroyClockSystem(){this.systemInitializer.destroy()}setOnStartCSSClassesIfClockType24h(){this.styleHandler.setOnStartCSSClassesIfClockType24h()}setClassActiveToHourOnOpen=()=>{this.styleHandler.setClassActiveToHourOnOpen()};syncClockValue(e,t,n,r){let i=this.systemInitializer.getClockSystem();if(!i)return!1;let a=n===`AM`||n===`PM`?n:``;return i.syncValue({hour:e,minute:t,second:r,amPm:a}),!0}refreshDisabledTime(){this.systemInitializer.getClockSystem()?.refreshDisabledTime()}destroy(){this.destroyClockSystem()}},FY={hour:`12`,minutes:`00`,seconds:`00`},IY=class{core;emitter;cleanupHandlers=[];wasCleared=!1;constructor(e,t){this.core=e,this.emitter=t}init(){if(!this.core.options.ui.clearButton)return;let e=this.getClearButton();e&&(this.cleanupHandlers.push(aq(e,()=>{this.core.isDestroyed||this.handleClearClick()})),this.setupInternalEventListeners(),this.updateClearButtonState())}setupInternalEventListeners(){let e=()=>this.updateClearButtonState();bK(this.emitter,this.cleanupHandlers,`update`,e),bK(this.emitter,this.cleanupHandlers,`open`,e),uJ.forEach(t=>{bK(this.emitter,this.cleanupHandlers,lJ[t].event,()=>{e(),this.reenableConfirmIfCleared()})})}handleClearClick(){let e=this.core.getInput()?.value||null;this.clearTimeValue(),this.resetClockToNeutral(),eq(this.core.getOkButton(),!0),this.wasCleared=!0,WK(this.core.getModalElement(),this.core.options.labels.announceCleared),this.emitter.emit(`clear`,{previousValue:e}),this.emitter.emit(`update`,{hour:void 0,minutes:void 0,type:void 0})}clearTimeValue(){let e=this.core.options.clearBehavior?.clearInput!==!1,t=this.core.getInput();t&&e&&(t.value=``),this.core.setDegreesHours(null),this.core.setDegreesMinutes(null),this.core.setDegreesSeconds(null)}resetClockToNeutral(){let e=this.core.options.clock.type===`12h`?`PM`:void 0;uJ.forEach(e=>{QK(dJ(this.core,e),FY[e])});let t=this.core.getClockHand();if(t){let e=t.style.transition;t.style.transition=`none`,t.style.transform=`rotateZ(0deg)`,t.offsetHeight,requestAnimationFrame(()=>{t.style.transition=e})}this.removeActiveStates(),this.core.getHour()?.click(),e&&YK(this.core.getAM(),this.core.getPM(),e),this.emitter.emit(`animation:clock`,{})}removeActiveStates(){this.core.getAllValueTips().forEach(e=>GK(e,`active`,!1))}updateClearButtonState(){let e=this.getClearButton();if(!e)return;let t=!!this.core.getInput()?.value.trim(),n=this.core.options.clock.type,r=this.core.getHour()?.value||``,i=this.core.getMinutes()?.value||``,a=this.core.getSeconds()?.value||``,o=this.core.getActiveType()??``,s=r!==``||i!==``||a!==``,c=r===FY.hour&&i===FY.minutes&&(a===``||a===FY.seconds)&&(n!==`12h`||o===`PM`);eq(e,!(t||s&&!c))}reenableConfirmIfCleared(){if(!this.wasCleared)return;let e=this.core.getOkButton();e&&(eq(e,!1),this.wasCleared=!1)}getClearButton(){return this.core.getModalElement()?.querySelector(`.tp-ui-clear-btn`)||null}detach(){xK(this.cleanupHandlers)}destroy(){this.detach()}},LY=class{animation;modal;config;theme;validation;events;clock;clearButton;plugins=new Map;constructor(e,t){this.animation=new uq(e,t),this.modal=new zq(e,t),this.config=new HJ(e,t),this.theme=new GJ(e,t),this.validation=new JJ(e,t),this.events=new cY(e,t),this.clock=new PY(e,t),this.clearButton=new IY(e,t),mq.getAll().forEach(n=>{let r=n.factory(e,t);this.plugins.set(n.name,r)})}getPlugin(e){return this.plugins.get(e)}destroy(){this.animation.destroy(),this.modal.destroy(),this.config.destroy(),this.theme.destroy(),this.validation.destroy(),this.events.destroy(),this.clock.destroy(),this.clearButton.destroy(),this.plugins.forEach(e=>e.destroy()),this.plugins.clear()}},RY=`is-pressed`,zY=`is-rippling`,BY=new WeakSet,VY=e=>e instanceof Element?e.closest(`[data-md3-ripple]`):null,HY=e=>{VY(e.target)?.classList.remove(RY)},UY=e=>{e.animationName===`tp-ripple-fade`&&VY(e.target)?.classList.remove(zY)},WY=e=>{let{pointerType:t,button:n,clientX:r,clientY:i}=e,a=VY(e.target);if(!a||$K(a)||t===`mouse`&&n!==0)return;a.classList.remove(zY);let{left:o,top:s,width:c,height:l}=a.getBoundingClientRect();a.style.setProperty(`--ripple-x`,`${r-o}px`),a.style.setProperty(`--ripple-y`,`${i-s}px`),a.style.setProperty(`--ripple-size`,`${Math.max(c,l)*2}px`),a.classList.add(RY),a.addEventListener(`pointerleave`,HY,{once:!0}),lq()||requestAnimationFrame(()=>a.classList.add(zY))},GY=[[`pointerdown`,WY],[`pointerup`,HY],[`pointercancel`,HY],[`animationend`,UY]],KY=e=>{if(BY.has(e))return()=>{};BY.add(e),GY.forEach(([t,n])=>e.addEventListener(t,n));let t=!0;return()=>{t&&(t=!1,BY.delete(e),GY.forEach(([t,n])=>e.removeEventListener(t,n)))}},qY=[[`onOpen`,`open`],[`onShow`,`show`],[`onCancel`,`cancel`],[`onConfirm`,`confirm`],[`onUpdate`,`update`],[`onSelectHour`,`select:hour`],[`onSelectMinute`,`select:minute`],[`onSelectSecond`,`select:second`],[`onSelectAM`,`select:am`],[`onSelectPM`,`select:pm`],[`onSelectPeriod`,`select:period`],[`onSwitchView`,`switch:view`],[`onSwitchFace`,`switch:face`],[`onError`,`error`],[`onTimezoneChange`,`timezone:change`],[`onRangeConfirm`,`range:confirm`],[`onRangeSwitch`,`range:switch`],[`onRangeValidation`,`range:validation`],[`onWheelScrollStart`,`wheel:scroll:start`],[`onWheelScrollEnd`,`wheel:scroll:end`],[`onClear`,`clear`]],JY=[{needed:qG,name:`wheel`,plugin:`WheelPlugin`},{needed:e=>!!e.range?.enabled,name:`range`,plugin:`RangePlugin`},{needed:e=>!!e.timezone?.enabled,name:`timezone`,plugin:`TimezonePlugin`}],YY=class{core;managers;emitter;unmountTimeouts=[];rippleCleanup=()=>{};isCommitting=!1;isRendering=!1;isRerenderPending=!1;constructor(e,t,n){this.core=e,this.managers=t,this.emitter=n}init(){if(!this.core.isDestroyed&&!this.core.isInitialized){CK(this.core,this.emitter);try{this.managers.config.updateInputValueWithCurrentTimeOnStart(),this.managers.validation.checkDisabledValuesOnStart()}catch(e){this.core.setIsDestroyed(!0),this.reportError(e);return}this.managers.theme.setTimepickerClassToElement(),this.managers.theme.setInputClassToInputElement(),this.managers.theme.setDataOpenToInputIfDoesntExistInWrapper(),this.managers.theme.setClassTopOpenElement(),this.managers.config.getDisableTime(),XG(this.core.options)||this.managers.events.handleOpenOnClick(),this.managers.events.handleOpenOnEnterFocus(),this.core.setIsInitialized(!0)}}applyOptions(e){let t=this.core.options;this.core.updateOptions(e);try{this.managers.validation.checkDisabledValuesOnStart(),this.managers.config.getDisableTime()}catch(e){return this.core.setOptions(t),this.reportError(e),!1}return this.managers.config.checkMobileOption(),this.managers.config.syncInputFormat(t),!0}refreshDisabledTime(){this.managers.config.clearPredicateCache(),this.core.isOpen&&(qG(this.core.options)&&mq.has(`wheel`)?this.managers.getPlugin(`wheel`)?.updateDisabledItems?.():this.managers.clock.refreshDisabledTime(),this.managers.events.syncOkButton())}reportError(e){this.emitter.emit(`error`,{error:e instanceof Error?e.message:String(e)})}mount(){this.core.isDestroyed||this.core.isOpen||(this.core.isInitialized||this.init(),this.eventsBundle())}rerender(){if(this.isRendering){this.isRerenderPending=!0;return}let e=this.managers.modal.getFocusedControlSelector();this.core.setIsOpen(!1),this.releaseOpenView(),this.core.setIsModalRemove(!0),this.eventsBundle(!0),e!==null&&this.managers.modal.restoreFocus(e)}discardSelection(){if(XG(this.core.options)){this.rerender(),this.core.getCancelButton()?.focus();return}this.unmount()}closeUnlessInline(){XG(this.core.options)||this.unmount()}unmount(e,t=!1){if(this.isCommitting)return;t&&this.commitSelection(),this.deactivate();let n=()=>{this.closeModal(),e&&e()},{delayHandler:r}=this.core.options.behavior;r?this.unmountTimeouts.push(setTimeout(n,r)):n()}deactivate(){this.core.setIsOpen(!1),this.releaseOpenView()}releaseOpenView(){this.detachOpenHandlers(),this.managers.clock.destroyClockSystem(),this.managers.getPlugin(`wheel`)?.detachPopover?.()}commitSelection(){this.core.isOpen&&(this.isCommitting=!0,this.core.getOkButton()?.click(),this.isCommitting=!1)}closeModal(){this.core.setIsMobileView(!!this.core.options.ui.mobile),this.core.setIsTouchMouseMove(!1),this.unmountTimeouts.push(setTimeout(()=>{this.managers.modal.unlockScroll(),this.core.options.behavior.focusInputAfterClose&&this.core.getInput()?.focus(),this.releaseRipple(),this.core.getModalElement()?.remove(),this.core.setIsModalRemove(!0),this.core.getOpenElement().forEach(e=>e?.classList.remove(`disabled`))},this.managers.animation.removeAnimationToClose()))}destroy(e){if(this.core.isDestroyed)return;this.clearUnmountTimeouts();let{keepInputValue:t=!1,callback:n}=typeof e==`function`?{callback:e}:e||{},r=this.core.getInput(),i=t?r?.value:null;this.releaseRipple(),this.core.getModalElement()?.remove(),this.core.getOpenElement()?.forEach(e=>{e&&e.classList.remove(`disabled`,`tp-ui-open-element`)}),r&&(r.classList.remove(`tp-ui-invalid-format`,`tp-ui-input`),r.removeAttribute(`data-open`),r.removeAttribute(`data-owner-id`),t&&i&&(r.value=i));let a=this.core.element;a&&(a.removeAttribute(`data-owner-id`),a.removeAttribute(`data-open`),this.core.options.ui.cssClass&&a.classList.remove(this.core.options.ui.cssClass)),a?.querySelectorAll(`.tp-ui-invalid-text`)?.forEach(e=>e.remove()),this.core.reset(),this.managers.destroy(),this.emitter.clear(),this.managers.modal.unlockScroll(),n&&n()}eventsBundle(e=!1){if(this.core.isDestroyed||!this.core.isModalRemove)return;this.isRendering=!0,this.clearUnmountTimeouts(),this.detachOpenHandlers(),this.core.setIsOpen(!0),this.core.setIsModalRemove(!1),this.disableOpenElements(),this.setupModal(),this.setupValidation(),this.applyExpandedState(),this.managers.modal.setFlexEndToFooterIfNoKeyboardIcon(),this.applyWrapperCssClass(),e&&this.managers.animation.setAnimationToOpen(!0),this.managers.config.getInputValueOnOpenAndSet(!e);let t=qG(this.core.options)&&mq.has(`wheel`);TK(this.core,this.emitter),this.revealClockFace(t,e),this.initClockOrWheel(t),this.initOptionalPlugins(t),this.bindEventHandlers(t),this.initRipple(),YG(this.core.options)&&this.managers.getPlugin(`wheel`)?.attachPopover?.(),e||(this.managers.animation.setAnimationToOpen(),this.managers.modal.setInitialFocus()),this.isRendering=!1,this.runPendingRerender(e)}runPendingRerender(e){let t=this.isRerenderPending;this.isRerenderPending=!1,t&&!e&&this.core.isOpen&&this.rerender()}setupValidation(){this.managers.validation.setErrorHandler()}detachOpenHandlers(){this.managers.events.detach(),this.managers.clearButton.detach()}disableOpenElements(){XG(this.core.options)||(this.core.getOpenElement().forEach(e=>e?.classList.add(`disabled`)),YG(this.core.options)||this.core.getInput()?.blur())}setupModal(){this.managers.modal.setScrollbarOrNot(),this.managers.modal.setModalTemplate(),this.managers.modal.setNormalizeClass(),this.managers.modal.removeBackdrop()}applyExpandedState(){if(this.core.isMobileView){this.managers.config.updateClockFaceAccessibility(!0);return}this.core.getModalElement()?.querySelectorAll(`*`).forEach(e=>{e.classList.contains(`tp-ui-select-time`)||e.classList.add(`expanded`)})}applyWrapperCssClass(){let{cssClass:e}=this.core.options.ui;e&&this.core.getWrapper()?.classList.add(e)}initClockOrWheel(e){if(e){let e=this.managers.getPlugin(`wheel`);e&&e.init()}else this.managers.clock.initializeClockSystem(),this.managers.clock.setOnStartCSSClassesIfClockType24h(),this.managers.clock.setClassActiveToHourOnOpen()}initOptionalPlugins(e){let t=this.managers.getPlugin(`timezone`);t&&t.init();let n=this.managers.getPlugin(`range`);n&&!e&&n.init()}bindEventHandlers(e){this.managers.events.handleCancelButton(),this.managers.events.handleOkButton(),this.managers.clearButton.init(),e||(this.managers.events.handleHourEvents(),this.managers.events.handleMinutesEvents(),this.core.options.clock.showSeconds&&this.managers.events.handleSecondsEvents()),this.managers.events.handleKeyboardInput(),this.managers.events.handlePointerModality(),this.core.options.ui.enableSwitchIcon&&!e&&this.managers.events.handleSwitchViewButton(),this.core.options.clock.type!==`24h`&&!JG(this.core.options)&&(this.managers.events.handleAmClick(),this.managers.events.handlePmClick()),this.core.options.behavior.focusTrap&&!ZG(this.core.options)&&this.managers.events.focusTrapHandler(),XG(this.core.options)||(this.managers.events.handleEscClick(),YG(this.core.options)||e&&this.core.options.wheel?.ignoreOutsideClick||this.managers.events.handleBackdropClick())}initRipple(){let e=this.core.getModalElement();e&&(this.rippleCleanup(),this.rippleCleanup=KY(e))}revealClockFace(e,t){let n=e?null:this.core.getClockFace();n&&(t?n.classList.add(`scale-in`):typeof requestAnimationFrame<`u`&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{n.classList.add(`scale-in`)})}))}releaseRipple(){this.rippleCleanup(),this.rippleCleanup=()=>{}}clearUnmountTimeouts(){this.unmountTimeouts.forEach(clearTimeout),this.unmountTimeouts=[]}},XY=class{events=new Map;on(e,t){this.events.has(e)||this.events.set(e,new Set);let n=t;return this.events.get(e).add(n),()=>{this.events.get(e)?.delete(n)}}once(e,t){let n=(r=>{t(r),this.events.get(e)?.delete(n)});return n.__originalHandler=t,this.on(e,n)}off(e,t){if(!t){this.events.delete(e);return}let n=this.events.get(e);n&&n.forEach(e=>{(e===t||e.__originalHandler===t)&&n.delete(e)})}emit(e,t){let n=this.events.get(e);n&&[...n].forEach(e=>{e(t)})}clear(){this.events.clear()}hasListeners(e){return(this.events.get(e)?.size??0)>0}},ZY=e=>e.replace(/[^0-9:APMapm\s]/g,``),QY={"12h":`Invalid 12h format. Expected HH:MM AM/PM`,"24h":`Invalid 24h format. Expected HH:MM`},$Y={"12h":`24h`,"24h":`12h`},eX=e=>({...e,type:e.type??`AM`}),tX=(e,t)=>!e||t===void 0?!1:(QK(e,t),!0),nX=new Map,rX=class{core;managers;lifecycle;emitter;constructor(e,t){if(MK())throw Error(`TimepickerUI requires browser environment`);let n=this.resolveRootElement(e);if(!n)throw Error(`Input element not found`);let r=t?.behavior?.id,i=r||`tp-ui-${NJ()}`,a=WG(t||{});if((ZG(a)||a.ui.inline?.enabled&&typeof t?.behavior?.focusTrap>`u`)&&(a.behavior.focusTrap=!1),a.ui.inline?.enabled){let{container:e,containerId:t}=a.ui.inline;if(!e&&!t)throw Error(`inline.container is required when inline mode is enabled`);if(!Mq(a.ui.inline))throw Error(`Inline container not found`)}this.emitter=new XY,this.core=new HK(n,a,i,r);let o=this.core.getInput();if(o){let{type:e,showSeconds:t}=a.clock;kK(this.core,Yq(o,e,void 0,void 0,!!t))}this.managers=new LY(this.core,this.emitter),this.lifecycle=new YY(this.core,this.managers,this.emitter),this.managers.config.checkMobileOption(),this.managers.config.preventClockTypeByCurrentTime(),this.setupInternalEventListeners(),nX.set(this.core.instanceId,this)}setupInternalEventListeners(){this.emitter.on(`open:request`,()=>{this.core.isDestroyed||this.lifecycle.mount()}),this.emitter.on(`cancel`,()=>{this.core.isDestroyed||this.lifecycle.discardSelection()}),this.emitter.on(`confirm`,e=>{if(!this.core.isDestroyed){if(this.core.options.range?.enabled)return;this.writeInputValue(e),e.autoCommit||this.lifecycle.closeUnlessInline()}}),this.emitter.on(`update`,e=>{if(this.core.isDestroyed||this.core.options.range?.enabled)return;let{inline:t}=this.core.options.ui;!t?.enabled||!t.autoUpdate||this.writeInputValue(e)}),this.emitter.on(`range:confirm`,e=>{if(this.core.isDestroyed)return;let t=this.core.getInput();t&&(t.value=`${e.from} - ${e.to}`),this.lifecycle.closeUnlessInline()}),this.emitter.on(`select:am`,()=>this.emitter.emit(`select:period`,{type:`AM`})),this.emitter.on(`select:pm`,()=>this.emitter.emit(`select:period`,{type:`PM`}))}writeInputValue(e){!e.hour||!e.minutes||this.setInputText(iK(e,KG(this.core.options)))}setInputText(e){let t=this.core.getInput();t&&(t.value=e,this.managers.validation.removeErrorHandler())}create(){this.lifecycle.init(),this.core.options.ui.inline?.enabled&&this.lifecycle.mount()}open(e){this.lifecycle.mount(),e&&e()}close(e,t){if(e){this.lifecycle.unmount(t,!0);return}this.lifecycle.unmount(),t&&t()}destroy(e){nX.delete(this.core.instanceId),this.lifecycle.destroy(e)}update(e,t){this.core.isDestroyed||this.lifecycle.applyOptions(e.options)&&(this.core.isOpen&&this.lifecycle.rerender(),e.create&&this.create(),t&&t())}setOptions(e){this.update({options:e})}getValue(){if(this.core.isDestroyed)return{hour:``,minutes:``,type:void 0,time:``,degreesHours:null,degreesMinutes:null};let e=KG(this.core.options),t={hour:`12`,minutes:`00`,seconds:e.showSeconds?`00`:void 0,type:e.clockType===`24h`?void 0:`AM`},n=this.core.getModalElement(),r=this.core.getInput(),i=t;n&&this.core.isOpen?i=this.readOpenValue(e.clockType,t):r&&(i=Yq(r,this.core.options.clock.type,void 0,void 0,e.showSeconds));let{degreesHours:a,degreesMinutes:o}=n||r?lK(i):{degreesHours:null,degreesMinutes:null},s={hour:i.hour,minutes:i.minutes,type:i.type,time:iK(i,e),degreesHours:a,degreesMinutes:o};return e.showSeconds&&(s.seconds=i.seconds??t.seconds),s}readOpenValue(e,t){let n=t=>{if(e!==`24h`)return t??`AM`};if(JG(this.core.options)){let e=this.managers.getPlugin(`wheel`)?.getSelection?.();return e?{hour:e.hour,minutes:e.minutes,seconds:e.seconds??t.seconds,type:n(e.type)}:t}return{hour:this.core.getHour()?.value||t.hour,minutes:this.core.getMinutes()?.value||t.minutes,seconds:this.core.getSeconds()?.value||t.seconds,type:n(this.core.getActiveType())}}setValue(e,t=!0){if(this.core.isDestroyed||typeof e!=`string`||!e.trim()||!this.core.isInitialized&&(this.create(),this.core.isDestroyed))return;let n=EK(this.core,ZY(e.trim()));if(!n){this.emitter.emit(`error`,DK(this.core));return}let{parsed:r,inputText:i}=n;OK(this.core,r),AK(this.core,r.type),t&&this.setInputText(i),jK(this.core,this.managers,r)}resolveRangeApi(){return mq.has(`range`)?this.core.options.range?.enabled?this.managers.getPlugin(`range`)||(this.emitter.emit(`error`,wK(`RangePlugin`)),null):(this.emitter.emit(`error`,{error:`range.enabled is false: enable range mode to use the range API`}),null):(this.emitter.emit(`error`,wK(`RangePlugin`)),null)}setRange(e,t=!0){if(this.core.isDestroyed)return;let n=this.resolveRangeApi();n&&(!this.core.isInitialized&&(this.create(),this.core.isDestroyed)||n.setRange(e?.from,e?.to,t)||this.emitter.emit(`error`,{error:`Invalid range time. Expected "from" and "to" in the setValue format, got "${e?.from}" and "${e?.to}"`}))}getRange(){return this.core.isDestroyed?null:this.resolveRangeApi()?.getRange()??null}setActivePart(e){return this.core.isDestroyed?!1:this.resolveRangeApi()?.setActivePart(e,{focus:!1})??!1}refreshDisabledTime(){this.core.isDestroyed||this.lifecycle.refreshDisabledTime()}getElement(){return this.core.element}get instanceId(){return this.core.instanceId}get options(){return this.core.options}get isInitialized(){return this.core.isInitialized}get isDestroyed(){return this.core.isDestroyed}get hour(){return this.core.getHour()}get minutes(){return this.core.getMinutes()}get okButton(){return this.core.getOkButton()}get cancelButton(){return this.core.getCancelButton()}get clockHand(){return this.core.getClockHand()}on(e,t){return this.core.isDestroyed?()=>{}:this.emitter.on(e,t)}once(e,t){return this.core.isDestroyed?()=>{}:this.emitter.once(e,t)}off(e,t){this.core.isDestroyed||this.emitter.off(e,t)}resolveRootElement(e){if(NK()===!1)return null;let t=typeof e==`string`?document.querySelector(e):e;if(!(t instanceof HTMLElement))return null;if(t.tagName!==`INPUT`)return t.querySelector(`input`)?(t.classList.add(`tp-ui`),t):null;let n=t.parentElement;if(n?.classList.contains(`tp-ui`))return n;let r=document.createElement(`div`);return r.className=`tp-ui`,t.before(r),r.appendChild(t),r}static getById(e){return nX.get(e)}static getAllInstances(){return Array.from(nX.values())}static isAvailable(e){return MK()?!1:typeof e==`string`?document.querySelector(e)!==null:e instanceof HTMLElement&&document.contains(e)}static destroyAll(){Array.from(nX.values()).forEach(e=>e.destroy()),nX.clear()}},iX=rX,aX=iX})),sX=_({RangeManager:()=>$X,RangePlugin:()=>eZ});function cX(e,t){let n=e.trim().match(t.clockType===`12h`?DX:OX);if(!n)return null;let r={hour:AX(n[1]),minutes:AX(n[2])};return t.showSeconds&&(r.seconds=AX(n[3]??`0`)),t.clockType===`12h`&&(r.type=n[4].toUpperCase()),r}function lX(e){return kX.test(e)}function uX(e,t){let n=`${AX(e.hour)}:${AX(e.minutes)}`,r=t.showSeconds?`${n}:${AX(e.seconds??`0`)}`:n;return t.clockType===`12h`&&e.type?`${r} ${e.type}`:r}function dX(e,t,n){return n===`24h`?{hour:AX(e),...t,type:void 0}:{hour:AX(e%12||12),...t,type:e>=12?`PM`:`AM`}}function fX(e,t,n){let r=jX(parseInt(e.hour,10),e.type,t),i=n.showSeconds?AX(e.seconds??`0`):void 0;return dX(r,{minutes:e.minutes,seconds:i},n.clockType)}function pX(e,t){let n=parseInt(e.hour,10),r=parseInt(e.minutes,10),i=parseInt(e.seconds??`0`,10);return Number.isNaN(n)||Number.isNaN(r)||Number.isNaN(i)?0:jX(n,e.type,t)*3600+r*60+i}function mX(e=!1){return e?`--:--:--`:`--:--`}function hX(e,t=!1){if(!e||NX(e))return null;let n=n=>cX(e,{clockType:n,showSeconds:t});return n(`12h`)??n(`24h`)}function gX(e,t=!1){let n=`${e.hour}:${AX(e.minutes)}`,r=t?`${n}:${AX(e.seconds??`0`)}`:n;return e.type?`${r} ${e.type}`:r}function _X(e,t=!1){return e?gX(e,t):mX(t)}function vX(e,t,n){return!e||!t?0:pX(t,n)-pX(e,n)}function yX(e,t,n){return Math.floor(vX(e,t,n)/60)}function bX(e,t){return e?t===`12h`?!!(e.hour&&e.minutes&&e.type):!!(e.hour&&e.minutes):!1}function xX(e,t=!1){if(!e||!e.includes(` - `))return{from:null,to:null};let n=e.split(` - `).map(e=>e.trim());return n.length!==2||n.some(NX)?{from:null,to:null}:{from:hX(n[0],t),to:hX(n[1],t)}}function SX(e){return e.clock.type===`24h`?`24h`:`12h`}function CX(e){return{clockType:SX(e),showSeconds:!!e.clock.showSeconds}}function wX(e){let t={hour:e.getHour()?.value,minutes:e.getMinutes()?.value,type:e.getActiveType()};return e.options.clock.showSeconds&&(t.seconds=e.getSeconds()?.value??`00`),t}function TX(e,t,n,r){e.on(n,r),t.push(()=>e.off(n,r))}function EX(e,t){let n=CX(e.options),r=cX(t,n);if(r){let e=n.showSeconds||lX(t)?uX(r,n):t;return{parsed:QX(r),inputText:e}}let i=ZX[n.clockType],a=cX(t,{...n,clockType:i});if(!a)return null;let o=fX(a,i,n);return{parsed:QX(o),inputText:uX(o,n)}}var DX,OX,kX,AX,jX,MX,NX,PX,FX,IX,LX,RX,zX,BX,VX,HX,UX,WX,GX,KX,qX,JX,YX,XX,ZX,QX,$X,eZ,tZ=h((()=>{DX=/^(0?[1-9]|1[0-2]):([0-5]?\d)(?::([0-5]?\d))?\s*(AM|PM)$/i,OX=/^([01]?\d|2[0-3]):([0-5]?\d)(?::([0-5]?\d))?$/,kX=/^\s*\d{1,2}:\d{1,2}:\d{1,2}/,AX=e=>String(e).padStart(2,`0`),jX=(e,t,n)=>{if(n!==`12h`||!t)return e;let r=t.toUpperCase();return r===`PM`&&e!==12?e+12:r===`AM`&&e===12?0:e},MX=`--`,NX=e=>e.startsWith(MX),PX=e=>Array.from({length:e},(e,t)=>AX(t)),FX=class{activePart=`from`;fromValue=null;toValue=null;previewValue=null;clockType;minDuration;maxDuration;emitter;showSeconds;linked;chosenFields=new Set;constructor(e,t,n,r,i=!1,a=!0){this.clockType=e,this.minDuration=t,this.maxDuration=n,this.emitter=r,this.showSeconds=i,this.linked=a}getActivePart(){return this.activePart}getFromValue(){return this.fromValue}getToValue(){return this.toValue}getPreviewValue(){return this.previewValue}setFromValue(e){this.fromValue=e}setToValue(e){this.toValue=e}setPreviewValue(e){this.previewValue=e}isFromComplete(){return bX(this.fromValue,this.clockType)}isToComplete(){return bX(this.toValue,this.clockType)}canSwitchToEnd(){return!this.linked||this.isFromComplete()}getCompletePreview(e){let t=this.previewValue;if(!t||this.activePart!==e)return null;let n=[t.minutes,t.seconds??``].some(NX);return bX(t,this.clockType)&&!n?t:null}getPendingFrom(){return this.isFromComplete()?null:this.getCompletePreview(`from`)}canConfirm(){let e=this.chosenFields.size>0?this.getCompletePreview(`to`):null,t=this.isFromComplete()&&this.isToComplete()?this.toValue:null;if(!this.linked)return this.isFromComplete()&&(e??t)!==null;let n=vX(this.fromValue,e??t,this.clockType);return n>0&&this.isWithinLimits(n)}isWithinLimits(e){let t=this.minDuration!==void 0&&e<this.minDuration*60,n=this.maxDuration!==void 0&&e>this.maxDuration*60;return!t&&!n}setActivePart(e){if(this.chosenFields.clear(),e===`to`&&!this.canSwitchToEnd())return!1;let t=this.activePart!==e;return this.activePart=e,t&&(this.previewValue=null),t}getSavedValue(){return this.activePart===`from`?this.fromValue:this.toValue}commitPreview(){this.previewValue&&=(this.activePart===`from`?this.fromValue=this.previewValue:this.toValue=this.previewValue,null)}getDurationSeconds(){return vX(this.fromValue,this.toValue,this.clockType)}getDuration(){return yX(this.fromValue,this.toValue,this.clockType)}validate(){if(!this.fromValue||!this.toValue)return{valid:!0,duration:0};let e=this.getDuration(),t=this.getDurationSeconds(),n=!this.linked||this.isWithinLimits(t),r=this.showSeconds?{valid:n,duration:e,durationSeconds:t}:{valid:n,duration:e};return this.emitter.emit(`range:validation`,{...r,minDuration:this.minDuration,maxDuration:this.maxDuration}),r}getDisabledTimeForEndPart(){if(!this.linked||this.activePart===`from`||!this.fromValue||!this.isFromComplete())return null;let e=parseInt(this.fromValue.hour,10),t=parseInt(this.fromValue.minutes,10),n={hours:[],minutes:PX(t),fromHour:e};return this.clockType===`24h`?n.hours=PX(e):n.fromType=this.fromValue.type,this.showSeconds&&(n.seconds=PX(parseInt(this.fromValue.seconds??`0`,10)),n.fromMinute=t),n}reset(){this.activePart=`from`,this.fromValue=null,this.toValue=null,this.previewValue=null,this.chosenFields.clear()}},IX=(e,t,n)=>{e?.classList.toggle(t,n)},LX=(e,t,n)=>{n?e.getAttribute(t)!==n&&e.setAttribute(t,n):e.removeAttribute(t)},RX=(e,t)=>{e&&LX(e,`aria-pressed`,String(t))},zX=(e,t)=>{IX(e,`active`,t),RX(e,t)},BX=(e,t,n)=>{zX(e,n===`AM`),zX(t,n===`PM`)},VX=[`aria-label`,`aria-valuemin`,`aria-valuemax`,`aria-valuenow`,`aria-valuetext`],HX=e=>{if(!e)return;let t=e.querySelector(`.tp-ui-clock-face`);if(!t)return;let n=e.querySelector(`input.active`)??e.querySelector(`.tp-ui-hour`);VX.forEach(e=>LX(t,e,n?.getAttribute(e)))},UX=(e,t)=>{if(!e)return;e.value=t;let n=parseInt(t,10),r=!Number.isNaN(n);LX(e,`aria-valuenow`,r&&String(n)),LX(e,`aria-valuetext`,r&&t),HX(e.closest(`.tp-ui-modal`))},WX={hour:{input:`getHour`,event:`select:hour`,announce:`announceHour`},minutes:{input:`getMinutes`,event:`select:minute`,announce:`announceMinute`},seconds:{input:`getSeconds`,event:`select:second`,announce:`second`}},GX=[`hour`,`minutes`,`seconds`],KX=(e,t)=>e[WX[t].input](),qX=(e,t,n)=>{e.emit(WX[t].event,{[t]:n})},JX=(e,t)=>{GX.forEach(n=>IX(KX(e,n),`active`,n===t)),HX(e.getModalElement())},YX=class{core;state;constructor(e,t){this.core=e,this.state=t}updateTabs(){let e=this.core.getModalElement();if(!e)return;let t=e.querySelector(`.tp-ui-range-tab.tp-ui-range-from`),n=e.querySelector(`.tp-ui-range-tab.tp-ui-range-to`),r=this.state.getActivePart()===`from`,i=this.state.canSwitchToEnd()||this.state.getPendingFrom()!==null;t?.classList.toggle(`active`,r),n?.classList.toggle(`active`,!r),n?.classList.toggle(`disabled`,!i),t?.setAttribute(`aria-selected`,String(r)),n?.setAttribute(`aria-selected`,String(!r)),n?.setAttribute(`aria-disabled`,String(!i)),t?.setAttribute(`tabindex`,r?`0`:`-1`),n?.setAttribute(`tabindex`,r||!i?`-1`:`0`)}updateTimeDisplay(){let e=this.core.getModalElement();if(!e)return;let t=e.querySelector(`.tp-ui-range-from-time`),n=e.querySelector(`.tp-ui-range-to-time`),r=this.state.getActivePart(),i=this.state.getPreviewValue(),a=(e,t)=>r===e&&i?i:t;this.renderTime(t,a(`from`,this.state.getFromValue())),this.renderTime(n,a(`to`,this.state.getToValue()))}renderTime(e,t){if(!e)return;let{showSeconds:n}=this.state;t?(e.textContent=gX(t,n),e.removeAttribute(`aria-hidden`)):(e.textContent=mX(n),e.setAttribute(`aria-hidden`,`true`))}updateOkButton(){let e=this.core.getOkButton();if(!e)return;let t=this.state.canConfirm();e.classList.toggle(`disabled`,!t),e.setAttribute(`aria-disabled`,String(!t))}updateInputValue(){let e=this.core.getInput();if(!e)return;let{showSeconds:t}=this.state;e.value=`${_X(this.state.getFromValue(),t)} - ${_X(this.state.getToValue(),t)}`}syncClockToActivePart(){let{hourInput:e,minutesInput:t,secondsInput:n}=this.writeActivePartValues();[t,n].forEach(e=>{e?.blur(),e?.classList.remove(`active`)}),e&&e.click()}showActivePartHours(){let{hourInput:e}=this.writeActivePartValues();return e&&JX(this.core,`hour`),e}writeActivePartValues(){let e=this.state.getSavedValue(),t=this.core.getHour(),n=this.core.getMinutes(),r=this.state.showSeconds?this.core.getSeconds():null;return UX(t,e?.hour??`12`),UX(n,e?.minutes??`00`),UX(r,e?.seconds??`00`),this.core.options.clock.type===`12h`&&BX(this.core.getAM(),this.core.getPM(),e?.type),{hourInput:t,minutesInput:n,secondsInput:r}}updateAll(){this.updateTabs(),this.updateTimeDisplay(),this.updateOkButton()}},XX=e=>e.replace(/[^0-9:APMapm\s]/g,``),ZX={"12h":`24h`,"24h":`12h`},QX=e=>({...e,type:e.type??`AM`}),$X=class{core;emitter;state;ui;cleanupHandlers=[];isSyncingAmPm=!1;isBound=!1;pendingRange=null;pendingPart=null;constructor(e,t){this.core=e,this.emitter=t,this.createState()}get isEnabled(){return this.core.options.range?.enabled===!0}get isLive(){return this.isBound&&this.core.isOpen}createState(){let{range:e,clock:t}=this.core.options;this.state=new FX(t.type,e?.minDuration,e?.maxDuration,this.emitter,t.showSeconds===!0,e?.linked!==!1),this.ui=new YX(this.core,this.state)}init(){if(this.releaseHandlers(),!this.isEnabled)return;this.createState();let{from:e,to:t}=this.readInitialRange();this.state.setFromValue(e),this.state.setToValue(t),this.bindEvents(),this.isBound=!0,this.applyPendingPart(),this.ui.syncClockToActivePart(),this.emitAmPmSyncEvent(),this.ui.updateAll()}readInitialRange(){let e=this.core.getInput()?.value||``,t=this.pendingRange;if(t&&t.inputValue===e){let e=this.parseEnd(t.from),n=this.parseEnd(t.to);if(e&&n)return{from:e,to:n}}return this.pendingRange=null,xX(e,this.state.showSeconds)}applyPendingPart(){let e=this.pendingPart;this.pendingPart=null,e&&this.state.setActivePart(e)&&this.emitter.emit(`range:switch`,{active:e,disabledTime:this.state.getDisabledTimeForEndPart()})}getActivePart(){return this.state.getActivePart()}setActivePart(e,t={}){if(!this.isEnabled)return!1;if(t.focus===!1&&!this.isLive){this.state.setActivePart(e);let t=this.state.getActivePart()===e;return this.pendingPart=t?e:null,t}return this.state.setActivePart(e)&&this.emitter.emit(`range:switch`,{active:e,disabledTime:this.state.getDisabledTimeForEndPart()}),t.focus===!1?this.syncClockWithoutFocus():this.ui.syncClockToActivePart(),this.emitAmPmSyncEvent(),this.ui.updateAll(),this.state.getActivePart()===e}setRange(e,t,n){if(!this.isEnabled)return!1;let r=this.parseEnd(e),i=this.parseEnd(t);return!r||!i?!1:(this.state.setFromValue(r),this.state.setToValue(i),this.state.setPreviewValue(null),this.state.chosenFields.clear(),n&&this.ui.updateInputValue(),this.pendingRange={from:e,to:t,inputValue:this.core.getInput()?.value||``},this.isLive&&this.syncOpenRange(),this.state.validate(),this.ui.updateAll(),!0)}getRange(){return{from:this.state.isFromComplete()?this.copyValue(this.state.getFromValue()):null,to:this.state.isToComplete()?this.copyValue(this.state.getToValue()):null}}copyValue(e){return e?{...e}:null}parseEnd(e){if(typeof e!=`string`||!e.trim())return null;let t=EX(this.core,XX(e.trim()));if(!t)return null;let{hour:n,minutes:r,seconds:i,type:a}=t.parsed,o={hour:n,minutes:r};return this.core.options.clock.showSeconds===!0&&(o.seconds=i??`00`),this.core.options.clock.type===`12h`&&(o.type=a),o}syncOpenRange(){let e=this.state.getDisabledTimeForEndPart();this.state.getActivePart()===`to`&&e&&this.emitter.emit(`range:switch`,{active:`to`,disabledTime:e}),this.syncClockWithoutFocus(),this.emitAmPmSyncEvent()}syncClockWithoutFocus(){let e=this.ui.showActivePartHours();e&&(qX(this.emitter,`hour`,e.value),this.emitter.emit(`update`,wX(this.core)))}getFromValue(){return this.state.getFromValue()}getToValue(){return this.state.getToValue()}getDisabledTimeForEndPart(){return this.isEnabled?this.state.getDisabledTimeForEndPart():null}getDuration(){return this.state.getDuration()}validateRange(){return this.isEnabled?this.state.validate():{valid:!0,duration:0}}canConfirm(){return!this.isEnabled||this.state.canConfirm()}getFormattedRange(){let e=this.state.getFromValue(),t=this.state.getToValue();if(!e||!t)return null;let{showSeconds:n}=this.state;return{from:gX(e,n),to:gX(t,n)}}bindEvents(){let e=this.core.getModalElement();if(!e)return;let t=e.querySelector(`.tp-ui-range-tab.tp-ui-range-from`),n=e.querySelector(`.tp-ui-range-tab.tp-ui-range-to`);this.listen(t,`click`,()=>this.activatePart(`from`,t)),this.listen(n,`click`,()=>this.activatePart(`to`,n)),this.bindTabKeyboard(t,n),this.bindFieldChoice(`hour`,this.core.getHour()),this.bindFieldChoice(`minutes`,this.core.getMinutes()),this.bindFieldChoice(`seconds`,this.state.showSeconds?this.core.getSeconds():null),TX(this.emitter,this.cleanupHandlers,`update`,e=>this.handleUpdate(e?.hour)),TX(this.emitter,this.cleanupHandlers,`range:minute:commit`,e=>this.handleMinuteCommit(e)),TX(this.emitter,this.cleanupHandlers,`confirm`,()=>this.handleConfirm()),TX(this.emitter,this.cleanupHandlers,`select:am`,()=>this.handleAmPm()),TX(this.emitter,this.cleanupHandlers,`select:pm`,()=>this.handleAmPm()),TX(this.emitter,this.cleanupHandlers,`clear`,()=>this.handleClear())}listen(e,t,n){e&&(e.addEventListener(t,n),this.cleanupHandlers.push(()=>e.removeEventListener(t,n)))}bindFieldChoice(e,t){this.listen(t,`keydown`,()=>this.state.chosenFields.add(e)),this.listen(t,`blur`,()=>{this.state.chosenFields.has(e)&&this.handleUpdate(this.state.getPreviewValue()?.hour)})}isTabDisabled(e){return!e||e.getAttribute(`aria-disabled`)===`true`||e.classList.contains(`disabled`)}activatePart(e,t){if(!this.core.isOpen||this.isTabDisabled(t))return;let n=e===`to`?this.state.getPendingFrom():null;n?this.handleMinuteCommit(n):this.setActivePart(e)}bindTabKeyboard(e,t){let n=[e,t].filter(e=>e!==null);n.length!==0&&n.forEach((e,t)=>{let r=t===0?`from`:`to`;this.listen(e,`keydown`,i=>{switch(i.key){case`ArrowRight`:case`ArrowLeft`:{i.preventDefault();let e=((i.key===`ArrowRight`?t+1:t-1)+n.length)%n.length,r=n[e];this.isTabDisabled(r)||r.focus();break}case`Home`:i.preventDefault(),n[0].focus();break;case`End`:i.preventDefault(),n[n.length-1].focus();break;case`Enter`:case` `:i.preventDefault(),this.activatePart(r,e)}})})}handleClear(){this.isEnabled&&(this.reset(),this.emitter.emit(`range:switch`,{active:`from`,disabledTime:null}),this.ui.updateAll(),this.focusHour())}focusHour(){this.core.getHour()?.focus()}handleUpdate(e){this.isEnabled&&(this.state.setPreviewValue(e===void 0?null:this.buildPreview(e)),this.ui.updateAll())}buildPreview(e){let t=this.state.getSavedValue()?.minutes,n=!!t&&!NX(t),r=(e,t)=>(n||this.state.chosenFields.has(e))&&t?.value||MX;return{hour:e,minutes:r(`minutes`,this.core.getMinutes()),seconds:this.state.showSeconds?r(`seconds`,this.core.getSeconds()):void 0,type:this.core.options.clock.type===`12h`?this.core.getActiveType():void 0}}handleMinuteCommit(e){if(!this.isEnabled)return;let t={hour:e.hour,minutes:e.minutes,seconds:e.seconds,type:e.type??void 0};this.state.getActivePart()===`from`?(this.state.setFromValue(t),this.state.setPreviewValue(null),this.state.isFromComplete()&&(this.state.setActivePart(`to`),this.emitter.emit(`range:switch`,{active:`to`,disabledTime:this.state.getDisabledTimeForEndPart()}),this.ui.syncClockToActivePart(),this.emitAmPmSyncEvent(),this.focusHour())):(this.state.setToValue(t),this.state.setPreviewValue(null)),this.state.validate(),this.ui.updateAll()}handleAmPm(){if(!this.isEnabled||this.isSyncingAmPm||this.core.options.clock.type!==`12h`)return;let e=this.core.getActiveType();if(e){if(this.state.getActivePart()===`from`){let t=this.state.getFromValue();t&&(this.state.setFromValue({...t,type:e}),this.state.isFromComplete()&&(this.state.setActivePart(`to`),this.state.setPreviewValue(null),this.emitter.emit(`range:switch`,{active:`to`,disabledTime:this.state.getDisabledTimeForEndPart()}),this.ui.syncClockToActivePart(),this.emitAmPmSyncEvent()))}else{let t=this.state.getToValue();t&&this.state.setToValue({...t,type:e}),this.emitter.emit(`range:switch`,{active:`to`,disabledTime:this.state.getDisabledTimeForEndPart()})}this.state.validate(),this.ui.updateAll()}}emitAmPmSyncEvent(){if(this.core.options.clock.type!==`12h`)return;let e=this.state.getSavedValue();if(e?.type){this.isSyncingAmPm=!0;try{e.type===`AM`?this.emitter.emit(`select:am`,{}):e.type===`PM`&&this.emitter.emit(`select:pm`,{})}finally{this.isSyncingAmPm=!1}}}handleConfirm(){if(!this.isEnabled)return;this.state.commitPreview(),this.pendingRange=null;let{showSeconds:e}=this.state,t={from:_X(this.state.getFromValue(),e),to:_X(this.state.getToValue(),e),duration:this.state.getDuration()};e&&(t.durationSeconds=this.state.getDurationSeconds()),this.ui.updateInputValue(),this.emitter.emit(`range:confirm`,t)}reset(){this.state.reset(),this.pendingRange=null,this.pendingPart=null}destroy(){this.releaseHandlers(),this.reset()}releaseHandlers(){this.cleanupHandlers.forEach(e=>e()),this.cleanupHandlers=[],this.isBound=!1}},eZ={name:`range`,factory:(e,t)=>new $X(e,t)}})),nZ,rZ,iZ,aZ=!1;async function oZ(){if(!nZ){let e=await Promise.resolve().then(()=>(oX(),VG));nZ=e.TimepickerUI,rZ=e.PluginRegistry,iZ=(await Promise.resolve().then(()=>(tZ(),sX))).RangePlugin,!aZ&&rZ&&iZ&&(rZ.register(iZ),aZ=!0)}}var sZ=class{constructor(e){if(this.config={dayStartTime:`00:00`,dayEndTime:`23:59`,minuteIncrement:5,clockType:`12h`,...e},this.selectedStart=this.extractTimeAsHHMM(e.startTime),e.endTime)this.selectedEnd=this.extractTimeAsHHMM(e.endTime);else{let e=new Date(`2000-01-01T${this.selectedStart}:00Z`),n=new Date(e.getTime()+36e5);this.selectedEnd=t.tools.dateTime.extractTime(n.toISOString())}this.inputElement=document.createElement(`input`),this.container=this.createUI()}extractTimeAsHHMM(e){return e.includes(`T`)?t.tools.dateTime.extractTime(e):e}createUI(){let e=document.createElement(`div`);return e.style.cssText=`
|
|
231
|
+
</div>`},Sq=e=>{let{range:{enabled:t,fromLabel:n,toLabel:r},labels:{rangeSelectionLabel:i}}=e;return!t||!hq.has(`range`)?``:`<div class="tp-ui-range-header" role="tablist" aria-label="${_q(i)}"><button type="button" class="tp-ui-range-tab tp-ui-range-from active" data-md3-ripple role="tab" tabindex="0" aria-selected="true"><span class="tp-ui-range-tab-label">${_q(n)}</span><span class="tp-ui-range-tab-value tp-ui-range-from-time" aria-hidden="true">--:--</span></button><button type="button" class="tp-ui-range-tab tp-ui-range-to" data-md3-ripple role="tab" tabindex="-1" aria-selected="false"><span class="tp-ui-range-tab-label">${_q(r)}</span><span class="tp-ui-range-tab-value tp-ui-range-to-time" aria-hidden="true">--:--</span></button></div>`},Cq=(e,t)=>{let{ui:{clearButton:n},labels:{clear:r}}=e;if(!n)return``;let i=_q(r);return`<div class="tp-ui-clear-btn ${t} disabled" data-md3-ripple tabindex="0" role="button" aria-label="${i}" aria-disabled="true">${i}</div>`},wq=(e,t,n)=>{if(e.isWheelMode){let t=hq.getTemplateProvider(`wheel`);return t?`<div class="tp-ui-mobile-clock-wrapper ${e.mobileClass}">${t(n,e.instanceId)}</div>`:`<div class="tp-ui-mobile-clock-wrapper ${e.mobileClass}"></div>`}let{clockLabel:r}=n.labels;return`<div class="tp-ui-mobile-clock-wrapper ${e.mobileClass}"><div class="tp-ui-body ${e.mobileClass}" role="group" aria-label="${_q(r)}"><div class="tp-ui-clock-face ${e.mobileClass}" role="slider" tabindex="0"><div class="tp-ui-dot ${e.mobileClass}" aria-hidden="true"></div><div class="tp-ui-clock-hand ${e.mobileClass}" aria-hidden="true"><div class="tp-ui-circle-hand ${e.mobileClass}"></div></div><div class="tp-ui-tips-wrapper ${e.mobileClass}" aria-hidden="true"></div>${e.clockType===`24h`?`<div class="tp-ui-tips-wrapper-24h ${e.mobileClass}" aria-hidden="true"></div>`:``}</div></div></div>`},Tq={min:`0`,max:`59`,valueNow:`0`,valueText:`00`},Eq=e=>`<div class="tp-ui-dots ${e}" aria-hidden="true"><span></span><span></span></div>`,Dq=(e,t,n)=>{let r=_q(e.mobileLabel),i=t?r:_q(e.label);return`<div class="tp-ui-input-wrapper ${t}"><div class="tp-ui-input-ripple-wrapper ${t}" data-md3-ripple><input name="${e.name}" ${n?`readonly`:``} class="${e.inputClass} ${t}" tabindex="0" type="number" min="${e.min}" max="${e.max}" aria-label="${i}" role="spinbutton" aria-valuemin="${e.min}" aria-valuemax="${e.max}" aria-valuenow="${e.valueNow}" aria-valuetext="${e.valueText}"></div><div class="${e.textClass} ${t}">${r}</div></div>`},Oq=(e,t)=>{let{labels:n,ui:{editable:r},clock:{showSeconds:i}}=e,{mobileClass:a,clockType:o,instanceId:s}=t,c=_q(a?n.mobileTime:n.time),l=_q(n.timeLabel),u=_q(n.am),d=_q(n.pm),f=_q(n.periodLabel),p=o===`12h`,m=p?`12`:`0`,h=[{name:`hour`,inputClass:`tp-ui-hour`,textClass:`tp-ui-hour-text`,min:p?`1`:`0`,max:p?`12`:`23`,valueNow:m,valueText:m,label:n.hourLabel,mobileLabel:n.mobileHour},{name:`minutes`,inputClass:`tp-ui-minutes`,textClass:`tp-ui-minute-text`,...Tq,label:n.minuteLabel,mobileLabel:n.mobileMinute}];i&&h.push({name:`seconds`,inputClass:`tp-ui-seconds`,textClass:`tp-ui-second-text`,...Tq,label:n.second,mobileLabel:n.second});let g=!r&&!a,_=h.map(e=>Dq(e,a,g)).join(Eq(a)),v=o===`24h`?``:`<div class="tp-ui-wrapper-type-time ${a}" role="group" aria-label="${f}"><div class="tp-ui-type-mode tp-ui-am ${a}" data-md3-ripple tabindex="0" role="button" aria-label="${u}" aria-pressed="false" data-type="AM">${u}</div><div class="tp-ui-type-mode tp-ui-pm ${a}" data-md3-ripple tabindex="0" role="button" aria-label="${d}" aria-pressed="false" data-type="PM">${d}</div></div>`;return`<div class="tp-ui-select-time ${a}" id="tp-ui-label-${_q(s)}">${c}</div><div class="tp-ui-header ${a}"><div class="tp-ui-wrapper-time ${a} ${o===`24h`?`tp-ui-wrapper-time-24h`:``}" role="group" aria-label="${l}">${_}</div>${v}</div>`},kq=(e,t)=>`<button aria-label="${_q(e)}" type="button" class="tp-ui-keyboard-icon">${t}</button>`,Aq=(e,t)=>{let{ui:{enableSwitchIcon:n,iconTemplate:r,iconTemplateMobile:i},labels:a}=e,o=_q(a.cancel),s=_q(a.ok),c=t?kq(a.switchToClockLabel,i||pq):kq(a.switchToKeyboardLabel,r||fq),l=n?`<div class="tp-ui-keyboard-icon-wrapper ${t}" data-md3-ripple data-view="desktop">${c}</div>`:``,u=Cq(e,t);return`<div class="tp-ui-footer ${t}" ${t?`data-view="mobile"`:``}>${l}<div class="tp-ui-wrapper-btn ${t}">${u}<div class="tp-ui-cancel-btn ${t}" data-md3-ripple tabindex="0" role="button" aria-label="${o}">${o}</div><div class="tp-ui-ok-btn ${t}" data-md3-ripple tabindex="0" role="button" aria-label="${s}">${s}</div></div></div>`},jq=(e,t)=>{let{ui:{mode:n,animation:r,theme:i,mobile:a},clock:{incrementMinutes:o,showSeconds:s}}=e,c=a?`mobile`:``,l=n===`compact-wheel`&&hq.has(`wheel`),u=(n===`wheel`||l)&&hq.has(`wheel`),d=!!e.range?.enabled&&hq.has(`range`),f=!!e.timezone?.enabled&&hq.has(`timezone`),p={mobileClass:c,clockType:e.clock.type||`12h`,instanceId:t,isWheelMode:u,isCompactWheel:l,isRangeMode:d},m=Sq(e),h=xq(e,c,t),g=l?``:Oq(e,p),_=wq(p,o??1,e),v=l&&e.wheel?.hideFooter===!0?``:Aq(e,c),y;y=l?` tp-ui-compact-wheel-mode`:u?` tp-ui-wheel-mode`:``;let b=_q(t),x=l?`aria-label="${_q(e.labels.time)}"`:`aria-labelledby="tp-ui-label-${b}"`,S=QG(e)?`role="group" ${x}`:`role="dialog" aria-modal="true" aria-labelledby="tp-ui-label-${b}"`;return`<div class="tp-ui-modal normalize ${c}${d?` tp-ui-range-mode`:``}${f?` tp-ui-tz-mode`:``}${y}${s?` tp-ui-has-seconds`:``}" data-theme="${_q(i)}" ${S} data-owner-id="${b}"${r?``:` style="transition:none"`}><div class="tp-ui-wrapper ${c}" tabindex="0">${m}${g}${h}${_}${v}</div><div class="timepicker-announcer sr-only" role="status" aria-live="polite" aria-atomic="true"></div></div>`},Mq=e=>!e||!PK()?null:typeof e==`string`?document.querySelector(e):e,Nq=e=>e?e.container?Mq(e.container):!e.containerId||!PK()?null:document.getElementById(e.containerId):null,Pq=`--tp-scrollbar-gap`,Fq=[`auto`,`scroll`],Iq=/^tp-ui-[\w-]+$/,Lq=0,Rq=[],zq=``,Bq=class{core;scrollLocked=!1;constructor(e,t){this.core=e}clearExistingModal(){if(PK()===!1)return;let e=this.core.getModalElement();e&&e.remove()}setModalTemplate(){if(PK()===!1)return;this.clearExistingModal();let e=jq(this.core.options,this.core.instanceId);if(this.core.options.ui.inline?.enabled){let t=Nq(this.core.options.ui.inline);if(!t)return;t.innerHTML=``,t.insertAdjacentHTML(`beforeend`,e);let n=t.querySelector(`.tp-ui-modal`);if(n){n.classList.add(`tp-ui--inline`),QG(this.core.options)&&n.classList.add(`tp-ui--embedded`);let{showButtons:e}=this.core.options.ui.inline;(e===!1||e===void 0)&&(n.querySelectorAll(`.tp-ui-wrapper-btn, .tp-ui-wrapper-btn.mobile`).forEach(e=>e.style.display=`none`),n.querySelectorAll(`.tp-ui-footer`).forEach(e=>{e.querySelector(`.tp-ui-keyboard-icon-wrapper`)||(e.style.display=`none`)}))}return}let{appendTo:t}=this.core.options.ui;(t?Mq(t):document.body)?.insertAdjacentHTML(`beforeend`,e)}lockScroll(){PK()!==!1&&(this.core.options.ui.inline?.enabled||XG(this.core.options)||this.core.options.ui.enableScrollbar||this.scrollLocked||(this.scrollLocked=!0,tK()))}unlockScroll(){PK()!==!1&&this.scrollLocked&&(this.scrollLocked=!1,nK())}setScrollbarOrNot(){this.core.options.ui.enableScrollbar?this.unlockScroll():this.lockScroll()}removeBackdrop(){if(this.core.options.ui.inline?.enabled||this.core.options.ui.backdrop)return;let e=this.core.getModalElement(),t=this.core.getOpenElement();e?.classList.add(`removed`),t.forEach(e=>e?.classList.add(`disabled`))}setNormalizeClass(){let e=this.core.getModalElement();e&&(e.classList.add(`tp-ui-normalize`),e.querySelectorAll(`:scope > div`).forEach(e=>e.classList.add(`tp-ui-normalize`)))}setInitialFocus(){let{options:e}=this.core;!e.behavior.focusTrap||typeof requestAnimationFrame>`u`||QG(e)||!e.ui.backdrop&&!e.ui.inline?.enabled&&!XG(e)||requestAnimationFrame(()=>this.focusWrapperUnlessInside())}focusWrapperUnlessInside(){let e=this.core.getWrapper();e&&!e.contains(e.ownerDocument.activeElement)&&e.focus()}getFocusedControlSelector(){let e=this.core.getModalElement(),t=e?.ownerDocument.activeElement;return!e||!t||!e.contains(t)?null:Array.from(t.classList).filter(e=>Iq.test(e)).map(e=>`.${e}`).join(``)}restoreFocus(e){e&&this.core.getWrapper()?.querySelector(e)?.focus(),this.focusWrapperUnlessInside()}setFlexEndToFooterIfNoKeyboardIcon(){let e=this.core.getFooter();!this.core.options.ui.enableSwitchIcon&&e&&(e.style.justifyContent=`flex-end`)}destroy(){this.unlockScroll(),this.clearExistingModal()}},Vq=/^(0?[1-9]|1[0-2]):([0-5]?\d)(?::([0-5]?\d))?\s*(AM|PM)$/i,Hq=/^([01]?\d|2[0-3]):([0-5]?\d)(?::([0-5]?\d))?$/,Uq=/^\s*\d{1,2}:\d{1,2}:\d{1,2}/,Wq=e=>String(e).padStart(2,`0`),Gq=(e,t,n)=>{if(n!==`12h`||!t)return e;let r=t.toUpperCase();return r===`PM`&&e!==12?e+12:r===`AM`&&e===12?0:e},Kq=8,qq=11,Jq=({hour:e,minutes:t,seconds:n,type:r})=>n===void 0?{hour:e,minutes:t,type:r}:{hour:e,minutes:t,seconds:n,type:r},Yq=(e,t,n)=>{let r=Wq(e.getMinutes()),i=n?Wq(e.getSeconds()):void 0;return Jq(oK(e.getHours(),{minutes:r,seconds:i},t===`24h`?`24h`:`12h`))},Xq=(e,t,n,r,i=!1)=>{let a=Jq({hour:`12`,minutes:`00`,seconds:i?`00`:void 0,type:t===`24h`?void 0:`PM`});if(!e)return a;let o=e.value.trim();if(!n&&!o)return a;if(typeof n==`boolean`&&n)return Yq(new Date,t,i);if(typeof n==`object`){let{time:e,preventClockType:a}=n,o=new Date(e??new Date);return a&&r?Yq(o,FK(),i):Yq(o,t,i)}let s=rK(o,{clockType:t===`24h`?`24h`:`12h`,showSeconds:i});if(s)return Jq(s);let[c,l]=o.split(` `),[u=``,d=``,f=``]=c.split(`:`),p=u.replace(/\D/g,``),m=d.replace(/\D/g,``),h=i?f.replace(/\D/g,``):``,g={hour:p.padStart(2,`0`),minutes:m.padStart(2,`0`),type:t===`12h`?l:void 0};if(i&&(g.seconds=h.padStart(2,`0`)),p.length>2||m.length>2||h.length>2)return{...g,error:`Invalid input: too many digits.`,currentHour:u,currentMin:d,...i?{currentSec:f}:{}};if(/[a-z]/i.test(c))return{...g,error:`Input contains invalid letters.`};if(o.includes(` `)){let e=i?qq:Kq;if(!l||o.length>e||l!==`AM`&&l!==`PM`)return{...g,error:`Invalid AM/PM format or length.`,currentLength:o.length,currentType:l}}let _=Number(p),v=Number(m),y=Number(h),b=v>=0&&v<=59&&y>=0&&y<=59,x=i?{currentSec:y}:{};if(t===`12h`){if(_<1||_>12||!b||l!==`AM`&&l!==`PM`)return{...g,error:`Invalid 12h time.`,currentHour:_,currentMin:v,...x,currentType:l}}else if(_<0||_>23||!b)return{...g,error:`Invalid 24h time.`,currentHour:_,currentMin:v,...x};return g},Zq=(e,t,n)=>{let r=Number(e);if(Number.isNaN(r))return!1;switch(t){case`hour`:return n===`24h`?r>=0&&r<=23:r>0&&r<=12;case`minutes`:return r>=0&&r<=59;default:return}},Qq=256,$q=new Map,eJ=(e,t)=>($q.size>=Qq&&$q.clear(),$q.set(e,t),t),tJ=[],nJ=new WeakMap,rJ=(e,t,n)=>{if(e.clockType!==n||e.sources.length!==t.length)return!1;for(let n=0;n<t.length;n++)if(e.sources[n]!==t[n])return!1;return!0},iJ=(e,t)=>{if(!e?.length)return tJ;let n=nJ.get(e);if(n&&rJ(n,e,t))return n.ranges;let r=e.map(e=>dK(e,t)).filter(e=>e!==null);return nJ.set(e,{clockType:t,sources:[...e],ranges:r}),r},aJ=(e,t)=>{for(let n=0;n<e.length;n++)if(t>=e[n].start&&t<=e[n].end)return!0;return!1},oJ=(e,t)=>{if(!e||t===void 0)return!1;let n=Number(t);for(let t=0;t<e.length;t++)if(Number(e[t])===n)return!0;return!1},sJ=(e,t,n)=>aJ(t,n)||e.predicate!==void 0&&e.predicate(n),cJ=(e,t,n,r)=>{if(!r)return sJ(e,t,n);for(let r=0;r<60;r++)if(!oJ(e.seconds,r)&&!sJ(e,t,n+r))return!1;return!0},lJ=(e,t)=>e%12%t==0,uJ={hour:{input:`getHour`,event:`select:hour`,announce:`announceHour`},minutes:{input:`getMinutes`,event:`select:minute`,announce:`announceMinute`},seconds:{input:`getSeconds`,event:`select:second`,announce:`second`}},dJ=[`hour`,`minutes`,`seconds`],fJ=(e,t)=>e[uJ[t].input](),pJ=(e,t,n)=>{e.emit(uJ[t].event,{[t]:n})},mJ=e=>dJ.find(t=>fJ(e,t)?.classList.contains(`active`))??`hour`,hJ=(e,t)=>{dJ.forEach(n=>KK(fJ(e,n),`active`,n===t)),QK(e.getModalElement())},gJ=(e,t)=>{let n=fJ(e,t);if(!n)return;let r=e.options.labels[uJ[t].announce];GK(e.getModalElement(),`${r}: ${n.value}`)},_J=(e,t)=>t===`hour`?e.options.clock.type===`12h`?[1,12]:[0,23]:[0,59],vJ=(e,t,n)=>{let r=e.disabledTime?.value;return gK(r?{...r,clockType:KG(e.options)}:null,t,n,!!e.options.clock.showSeconds)},yJ=(e,t)=>{let n=vK(e);return r=>vJ(e,t,{...n,[t]:Wq(r)})},bJ=e=>{let t=vK(e),n=e.options.clock.showSeconds?`seconds`:`minutes`;return!!t.hour&&!!t.minutes&&vJ(e,n,t)},xJ=` - `,SJ=2,CJ=e=>e!==null,wJ=class{core;emitter;constructor(e,t){this.core=e,this.emitter=t}isCurrentTimeEnabled(e){let t=this.core.options.clock.currentTime;return typeof t==`boolean`?t:!!t?.[e]}preventClockTypeByCurrentTime(){if(!this.isCurrentTimeEnabled(`preventClockType`))return;let e=this.core.getInput();if(!e)return;let{currentTime:t,type:n}=this.core.options.clock,{type:r}=Xq(e,n,t,!0);this.core.updateOptions({clock:{type:r?`12h`:`24h`}})}updateInputValueWithCurrentTimeOnStart(){if(!this.isCurrentTimeEnabled(`updateInput`))return;let e=this.core.getInput();if(!e)return;let{clock:t}=this.core.options,n=qG(this.core.options);e.value=aK(Xq(e,t.type,t.currentTime,void 0,n.showSeconds),n)}syncInputFormat(e){let t=qG(e),n=qG(this.core.options);if(t.clockType===n.clockType&&t.showSeconds===n.showSeconds)return;let r=this.core.getInput();if(!r)return;let i=r.value.split(xJ).map(e=>rK(e,t));i.length>SJ||!i.every(CJ)||(r.value=i.map(e=>aK(sK(e,t.clockType,n),n)).join(xJ))}getInputValueOnOpenAndSet(e=!0){let t=this.core.getInput();if(!t)return;let{clock:n}=this.core.options,r=qG(this.core.options),i=t.value.trim()?void 0:n.currentTime,a=Xq(t,n.type,i,void 0,r.showSeconds);dJ.forEach(e=>{let t=a[e];t!==void 0&&$K(fJ(this.core,e),t)}),r.clockType===`12h`&&this.activatePeriod(a.type??`AM`),e&&this.emitter.emit(`open`,{...a,type:this.core.getActiveType(),...uK(a)})}activatePeriod(e){if(e!==`AM`&&e!==`PM`)return;let t=this.core.getModalElement(),n=e=>t?.querySelector(`[data-type='${e}']`);XK(n(`AM`),n(`PM`),e)}destroy(){}},TJ=`(orientation: landscape) and (max-height: 480px)`,EJ=`tp-ui-view-switching`,DJ=[`select-time`,`keyboard-icon-wrapper`,`hour`,`minutes`,`seconds`,`hour-text`,`minute-text`,`second-text`,`header`,`wrapper-type-time`,`am`,`pm`,`input-wrapper`,`input-ripple-wrapper`].map(e=>`.tp-ui-${e}`).join(`,`),OJ=[[`.tp-ui-hour`,`hourLabel`,`mobileHour`],[`.tp-ui-minutes`,`minuteLabel`,`mobileMinute`],[`.tp-ui-seconds`,`second`,`second`]],kJ=e=>{if(typeof requestAnimationFrame>`u`){e();return}requestAnimationFrame(()=>e())},AJ=e=>{e?.classList.remove(`mobile`),e?.classList.add(`expanded`)},jJ=class{core;emitter;animatingModal=null;constructor(e,t){this.core=e,this.emitter=t,this.setupEventListeners()}setupEventListeners(){this.emitter.on(`switch:view`,()=>{this.toggleMobileClockFace()})}checkMobileOption(){this.core.setIsMobileView(!!this.core.options.ui.mobile)}toggleMobileClockFace(){let e=this.core.getModalElement();if(!e||this.animatingModal===e)return;let t=e.querySelector(`.tp-ui-wrapper`);if(!t)return;let n={modal:e,wrapper:t,clockWrapper:e.querySelector(`.tp-ui-mobile-clock-wrapper`),heading:e.querySelector(`.tp-ui-select-time`),clockFace:this.core.getClockFace(),switchButton:this.core.getKeyboardClockIcon(),allElements:e.querySelectorAll(`*`),isOriginallyMobile:this.core.isMobileView};this.animatingModal=e;let r=t.classList.contains(`expanded`);this.isLandscape()?this.switchLandscape(n,r):r?kJ(()=>this.collapsePortrait(n)):this.expandPortrait(n)}switchLandscape(e,t){let{modal:n,wrapper:r,clockWrapper:i,clockFace:a}=e,o=this.core.options.ui.animation&&!uq();if(o&&n.classList.add(EJ),t?(a?.classList.remove(`scale-in`),i?.classList.add(`mobile`),this.finishCollapse(e)):(this.showClockView(e),AJ(r),AJ(i),a?.classList.add(`scale-in`)),!o){this.release(e);return}setTimeout(()=>{n.classList.remove(EJ),this.release(e)},WK.WRAPPER_TRANSITION)}collapsePortrait(e){e.clockFace?.classList.toggle(`scale-in`,!e.isOriginallyMobile),e.clockWrapper?.classList.remove(`expanded`),e.isOriginallyMobile&&e.clockWrapper?.classList.add(`mobile`),kJ(()=>{this.finishCollapse(e),setTimeout(()=>this.release(e),WK.MOBILE_TOGGLE)})}finishCollapse(e){let{wrapper:t,clockWrapper:n,isOriginallyMobile:r}=e;t.classList.remove(`expanded`),t.classList.add(`mobile`),n?.classList.remove(`expanded`),r&&n?.classList.add(`mobile`),e.allElements.forEach(e=>{e===t||e===n||(e.classList.remove(`expanded`),r&&e.classList.add(`mobile`))}),this.switchView(e,!0)}showClockView(e){let{wrapper:t,clockWrapper:n}=e;this.selectActiveField(),e.allElements.forEach(e=>{e!==t&&e!==n&&AJ(e)}),this.switchView(e,!1)}expandPortrait(e){let{wrapper:t,clockWrapper:n,clockFace:r}=e;this.showClockView(e),kJ(()=>{AJ(t),kJ(()=>{AJ(n),r?.classList.remove(`scale-in`),setTimeout(()=>r?.classList.add(`scale-in`),WK.CLOCK_SCALE_DELAY),setTimeout(()=>this.release(e),WK.MOBILE_TOGGLE)})})}selectActiveField(){let e=mJ(this.core),t=fJ(this.core,e);t&&pJ(this.emitter,e,t.value)}switchView(e,t){let{modal:n,heading:r}=e,{labels:i,ui:a}=this.core.options,o=!t&&!a.editable;n.querySelectorAll(DJ).forEach(e=>e.classList.toggle(`mobile`,t)),OJ.forEach(([e,r,a])=>{let s=n.querySelector(e);s&&(s.toggleAttribute(`readonly`,o),qK(s,`aria-label`,i[t?a:r]))}),QK(n);let s=t?i.mobileTime:i.time;r&&s&&(r.textContent=s),!r&&s&&QG(this.core.options)&&n.setAttribute(`aria-label`,s),this.setClockFaceHidden(e.clockFace,t),this.renderSwitchButton(e.switchButton,t)}renderSwitchButton(e,t){if(!e)return;let{iconTemplate:n,iconTemplateMobile:r}=this.core.options.ui,{switchToKeyboardLabel:i,switchToClockLabel:a}=this.core.options.labels;t?(e.innerHTML=r||pq,e.setAttribute(`aria-label`,a??``)):(e.innerHTML=n||fq,e.setAttribute(`aria-label`,i??``))}updateClockFaceAccessibility(e){this.setClockFaceHidden(this.core.getClockFace(),e)}setClockFaceHidden(e,t){e&&(e.tabIndex=t?-1:0,qK(e,`aria-hidden`,t&&`true`))}isLandscape(){return typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(TJ).matches}release(e){this.animatingModal===e.modal&&(this.animatingModal=null)}destroy(){this.animatingModal=null}},MJ=(e,t)=>e?e.classList.contains(t):!1,NJ=(e,t)=>{e.forEach(e=>{if(!dK(e,t))throw Error(`Invalid ${t} format: "${e}"`)});let n=fK(e,t);if(n)throw Error(`Overlapping intervals: "${n[0]}" and "${n[1]}"`);return!1},PJ=()=>typeof window<`u`&&window.crypto&&typeof window.crypto.randomUUID==`function`?window.crypto.randomUUID():`xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`.replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e===`x`?t:t&3|8).toString(16)}),FJ=(e,t)=>(e?.forEach(e=>{if(Number(e)>59)throw Error(`The disabled ${t} value has to be less than 60`)}),e?.map(e=>Wq(Number(e)))),IJ=e=>{if(!e)return;let{disabledTime:t,type:n}=e.clock;if(!t||!Object.keys(t).length)return;let{hours:r,minutes:i,seconds:a,interval:o}=t;if(o){let t=Array.isArray(o)?o:[o];if(!n)throw Error(`clockType required for interval`);return NJ(t,KG(e)),{value:{isInterval:!0,clockType:n,intervals:t}}}r?.forEach(e=>{if(n===`12h`&&Number(e)>12)throw Error(`The disabled hours value has to be less than 13`);if(n===`24h`&&Number(e)>23)throw Error(`The disabled hours value has to be less than 24`)});let s=FJ(i,`minutes`),c=FJ(a,`seconds`);return{value:{hours:r?.map(e=>e===`00`||Number(e)===0?`0${Number(e)}`:`${Number(e)}`),minutes:s,seconds:c}}},LJ=(e,t,n,r)=>{if(e){if(Array.isArray(e))return!e.map(e=>Zq(e,t,n)).some(e=>e===!1);if(typeof e==`string`||typeof e==`number`){let i=Zq(e,t,n),a=r?.map(Number).includes(Number(e));return!(!i||a)}}},RJ=3600,zJ=24,BJ=e=>({hour:Math.floor(e/RJ)%zJ,minutes:Math.floor(e/60)%60,seconds:e%60}),VJ=(e,t)=>{try{return!!e(BJ(t))}catch(e){return yK(e),!1}},HJ=class{core;constructor(e){this.core=e}getDisableTime(){let e=IJ(this.core.options)||null,t=this.buildPredicate();if(this.core.setTimePredicate(t),!t){this.core.setDisabledTime(e);return}this.core.setDisabledTime({value:{...e?.value,predicate:t}})}clearPredicateCache(){this.core.timePredicate?.clear()}buildPredicate(){let{isTimeDisabled:e}=this.core.options.clock;return typeof e==`function`?bK(e):null}destroy(){}},UJ=class{inputValueHandler;mobileViewHandler;disabledTimeHandler;constructor(e,t){this.inputValueHandler=new wJ(e,t),this.mobileViewHandler=new jJ(e,t),this.disabledTimeHandler=new HJ(e)}preventClockTypeByCurrentTime(){this.inputValueHandler.preventClockTypeByCurrentTime()}updateInputValueWithCurrentTimeOnStart(){this.inputValueHandler.updateInputValueWithCurrentTimeOnStart()}getInputValueOnOpenAndSet(e=!0){this.inputValueHandler.getInputValueOnOpenAndSet(e)}syncInputFormat(e){this.inputValueHandler.syncInputFormat(e)}checkMobileOption(){this.mobileViewHandler.checkMobileOption()}updateClockFaceAccessibility(e){this.mobileViewHandler.updateClockFaceAccessibility(e)}getDisableTime(){this.disabledTimeHandler.getDisableTime()}clearPredicateCache(){this.disabledTimeHandler.clearPredicateCache()}destroy(){this.inputValueHandler.destroy(),this.mobileViewHandler.destroy(),this.disabledTimeHandler.destroy()}},WJ=`tp-ui`,GJ=`active`,KJ=class{core;constructor(e,t){this.core=e}setInputClassToInputElement(){let e=this.core.getInput();e&&(MJ(e,`tp-ui-input`)||e.classList.add(`tp-ui-input`))}setDataOpenToInputIfDoesntExistInWrapper(){let e=this.core.getOpenElementData(),t=this.core.getInput();e===null&&t&&t.setAttribute(`data-open`,`tp-ui-input`)}setClassTopOpenElement(){let e=this.core.getOpenElement();for(let t of e)t&&t.classList.add(`tp-ui-open-element`)}setTimepickerClassToElement(){let e=this.core.element;if(!e)return;e.classList.add(WJ);let t=this.core.options.ui.cssClass;t&&t!==WJ&&e.classList.add(t)}destroy(){let e=this.core.getModalElement();e&&e.removeAttribute(`data-theme`)}},qJ=class e extends Error{constructor(t,n){super(`[TimepickerUI] ${t}`),this.code=n,this.name=`TimepickerError`,Object.setPrototypeOf(this,e.prototype)}},JJ={INVALID_PARAMETER:`INVALID_PARAMETER`},YJ=class{core;emitter;constructor(e,t){this.core=e,this.emitter=t}setErrorHandler(){let e=this.core.getInput();if(!e||(this.removeErrorHandler(),this.core.options.range?.enabled))return!0;let{clock:t}=this.core.options,{error:n,currentHour:r,currentMin:i,currentSec:a,currentType:o,currentLength:s}=Xq(e,t.type,void 0,void 0,!!t.showSeconds);if(n){if(PK()===!1)return!1;let t=this.core.options.labels.invalidTimeFormat,c=this.getErrorId(),l=document.createElement(`div`);l.id=c,l.classList.add(`tp-ui-invalid-text`),l.setAttribute(`role`,`alert`);let u=document.createElement(`b`);u.textContent=t,l.appendChild(u),e.classList.add(`tp-ui-invalid-format`),e.nextElementSibling?.classList.contains(`tp-ui-invalid-text`)||e.after(l),this.linkErrorMessage(e,c),this.announceInModal(t);let d={error:n,rejectedHour:void 0,rejectedMinute:void 0,inputHour:r,inputMinute:i,inputType:o,inputLength:s};return a!==void 0&&(d.inputSecond=a),this.emitter.emit(`error`,d),!1}return!0}removeErrorHandler(){let e=this.core.getInput();if(!e)return;KK(e,`tp-ui-invalid-format`,!1),this.unlinkErrorMessage(e);let t=e.nextElementSibling;t?.classList.contains(`tp-ui-invalid-text`)&&t.remove()}getErrorId(){return`tp-ui-invalid-text-${this.core.instanceId}`}getDescribedByIds(e){return(e.getAttribute(`aria-describedby`)??``).split(/\s+/).filter(Boolean)}linkErrorMessage(e,t){let n=this.getDescribedByIds(e).filter(e=>e!==t);e.setAttribute(`aria-describedby`,[...n,t].join(` `)),e.setAttribute(`aria-invalid`,`true`)}unlinkErrorMessage(e){let t=this.getErrorId(),n=this.getDescribedByIds(e);n.includes(t)&&(qK(e,`aria-describedby`,n.filter(e=>e!==t).join(` `)),e.removeAttribute(`aria-invalid`))}announceInModal(e){let t=this.core.getModalElement();if(t){if(!this.core.options.behavior.focusTrap){GK(t,e);return}t.addEventListener(`focusin`,()=>GK(t,e),{once:!0})}}checkDisabledValuesOnStart(){let{isTimeDisabled:e}=this.core.options.clock;if(e&&typeof e!=`function`)throw new qJ(`clock.isTimeDisabled must be a function`,JJ.INVALID_PARAMETER);if(!this.core.options.clock.disabledTime)return;let{disabledTime:t,type:n}=this.core.options.clock,r=KG(this.core.options);if(t.interval){if(!n)throw new qJ(`clockType is required when using disabledTime.interval`,JJ.INVALID_PARAMETER);let e=Array.isArray(t.interval)?t.interval:[t.interval];try{NJ(e,r)}catch(e){throw new qJ(`Invalid disabledTime.interval: ${e.message}`,JJ.INVALID_PARAMETER)}return}let{hours:i,minutes:a,seconds:o}=t,s=!i||LJ(i,`hour`,r),c=!a||LJ(a,`minutes`,r),l=!o||LJ(o,`minutes`,r);if(!s||!c)throw new qJ(`Invalid hours or minutes in disabledTime option`,JJ.INVALID_PARAMETER);if(!l)throw new qJ(`Invalid seconds in disabledTime option`,JJ.INVALID_PARAMETER)}destroy(){this.removeErrorHandler()}},XJ=class{core;emitter;cleanupHandlers=[];persistentCleanups=[];okBlocked=!1;syncOk=null;constructor(e,t){this.core=e,this.emitter=t}handleOpenOnClick(){let e=this.core.getOpenElement();if(!e)return;let t=()=>{this.core.isDestroyed||CK(this.emitter)};e.forEach(e=>{this.persistentCleanups.push(oq(e,t))})}handleCancelButton(){let e=this.core.getCancelButton();e&&this.cleanupHandlers.push(oq(e,()=>{this.core.isDestroyed||this.emitter.emit(`cancel`,{})}))}handleOkButton(){let e=this.core.getOkButton();e&&(this.cleanupHandlers.push(oq(e,()=>{if(this.core.isDestroyed||e.getAttribute(`aria-disabled`)===`true`)return;if(this.core.getHour()&&this.core.getMinutes()){this.emitter.emit(`confirm`,vK(this.core));return}let t=this.core.getModalElement();t&&this.emitter.emit(`confirm`,this.readWheelCenter(t))})),this.blockOkOnDisabledTime(e))}blockOkOnDisabledTime(e){if(this.core.options.range?.enabled)return;let t=()=>{let t=bJ(this.core);!t&&!this.okBlocked||(this.okBlocked=t,tq(e,t))};this.syncOk=t,t(),xK(this.emitter,this.cleanupHandlers,`update`,({hour:e})=>{e&&t()})}readWheelCenter(e){let t=t=>e.querySelector(`.tp-ui-wheel-${t} .tp-ui-wheel-item.is-center`)?.getAttribute(`data-value`)??void 0,n={hour:t(`hours`),minutes:t(`minutes`),type:t(`ampm`)};return this.core.options.clock.showSeconds&&(n.seconds=t(`seconds`)),n}handleAmClick(){let e=this.core.getAM();e&&this.cleanupHandlers.push(oq(e,()=>{this.core.isDestroyed||(XK(e,this.core.getPM(),`AM`),GK(this.core.getModalElement(),this.core.options.labels.announceAmSelected),this.emitter.emit(`select:am`,{}),this.emitter.emit(`update`,{...vK(this.core),type:`AM`}))}))}handlePmClick(){let e=this.core.getPM();e&&this.cleanupHandlers.push(oq(e,()=>{this.core.isDestroyed||(XK(this.core.getAM(),e,`PM`),GK(this.core.getModalElement(),this.core.options.labels.announcePmSelected),this.emitter.emit(`select:pm`,{}),this.emitter.emit(`update`,{...vK(this.core),type:`PM`}))}))}handleSwitchViewButton(){let e=this.core.getKeyboardClockIcon();e&&this.cleanupHandlers.push(oq(e,()=>{this.core.isDestroyed||this.emitter.emit(`switch:view`,{})}))}syncOkButton(){this.syncOk?.()}detach(){SK(this.cleanupHandlers),this.syncOk=null}destroy(){this.detach(),SK(this.persistentCleanups)}},ZJ=(e,t,n)=>Math.max(t,Math.min(n,e)),QJ=(e,t)=>{if(e===``)return``;let n=parseInt(e,10);return Number.isNaN(n)?``:ZJ(n,+!!t,t?12:23).toString().padStart(2,`0`)},$J=e=>{if(e===``)return``;let t=parseInt(e,10);return Number.isNaN(t)?``:ZJ(t,0,59).toString().padStart(2,`0`)},eY={hour:QJ,minutes:$J,seconds:$J},tY=class{core;emitter;cleanupHandlers=[];constructor(e,t){this.core=e,this.emitter=t}handleHourEvents(){this.bindTimeField(`hour`)}handleMinutesEvents(){this.bindTimeField(`minutes`)}handleSecondsEvents(){this.bindTimeField(`seconds`)}bindTimeField(e){let t=fJ(this.core,e);if(!t)return;let n=()=>{this.core.isDestroyed||(hJ(this.core,e),pJ(this.emitter,e,t.value),this.emitter.emit(`update`,vK(this.core)))};t.addEventListener(`click`,n),this.cleanupHandlers.push(()=>t.removeEventListener(`click`,n));let r=t.value,i=()=>{if(this.core.isDestroyed||t.hasAttribute(`readonly`))return;let n=eY[e](t.value,this.core.options.clock.type===`12h`);$K(t,n&&this.nearestEnabled(e,Number(n))),t.value!==r&&(r=t.value,this.emitter.emit(`animation:clock`,{}),pJ(this.emitter,e,t.value),this.emitter.emit(`update`,vK(this.core)))};t.addEventListener(`blur`,i),this.cleanupHandlers.push(()=>t.removeEventListener(`blur`,i))}nearestEnabled(e,t){let[n,r]=_J(this.core,e);return Wq(_K(t,n,r,yJ(this.core,e)))}detach(){SK(this.cleanupHandlers)}destroy(){this.detach()}},nY=[1,!0,(e,{step:t})=>Math.floor(e/t)*t+t],rY=[-1,!0,(e,{step:t})=>Math.ceil(e/t)*t-t],iY={ArrowUp:nY,ArrowDown:rY,Home:[1,!1,(e,{min:t})=>t],End:[-1,!1,(e,{last:t})=>t],PageUp:[1,!1,(e,{last:t,step:n,pageSteps:r})=>Math.min(t,Math.floor(e/n)*n+n*r)],PageDown:[-1,!1,(e,{min:t,step:n,pageSteps:r})=>Math.max(t,Math.ceil(e/n)*n-n*r)]},aY={...iY,ArrowRight:nY,ArrowLeft:rY},oY=([e,t,n],r,i,a)=>{let{min:o,last:s,step:c}=i,l=n(r,i);for(let n=(s-o)/c;n>=0;n--){if(l<o||l>s){if(!t)return null;l=l<o?s:o}if(!a(l))return l;l+=e*c}return null},sY=class{core;emitter;cleanupHandlers=[];persistentCleanups=[];constructor(e,t){this.core=e,this.emitter=t}handleOpenOnEnterFocus(){this.onKeydown(this.core.getInput(),e=>{e.key===`Enter`&&!this.core.isOpen&&this.core.isModalRemove&&CK(this.emitter)},this.persistentCleanups)}handleEscClick(){PK()!==!1&&this.onKeydown(document,e=>{this.core.isOpen&&e.key===`Escape`&&this.emitter.emit(`cancel`,{})})}handleKeyboardInput(){dJ.forEach(e=>this.onKeydown(fJ(this.core,e),t=>this.stepField(e,iY[t.key],t,!0))),this.onKeydown(this.core.getClockFace(),e=>{let t=mJ(this.core);aq(e.key)?(e.preventDefault(),this.advanceFace(t)):this.stepField(t,aY[e.key],e,!1)}),QK(this.core.getModalElement())}advanceFace(e){let t=dJ[dJ.indexOf(e)+1],n=t===`minutes`?`autoSwitchToMinutes`:`autoSwitchToSeconds`;!t||this.core.options.clock[n]===!1||(fJ(this.core,t)?.click(),gJ(this.core,t))}onKeydown(e,t,n=this.cleanupHandlers){if(!e)return;let r=e=>{this.core.isDestroyed||t(e)};e.addEventListener(`keydown`,r),n.push(()=>e.removeEventListener(`keydown`,r))}spinRange(e){let[t,n]=_J(this.core,e),{incrementHours:r,incrementMinutes:i,incrementSeconds:a}=this.core.options.clock,o={hour:r,minutes:i,seconds:a}[e]||1;return{min:Math.ceil(t/o)*o,last:Math.floor(n/o)*o,step:o,pageSteps:e===`hour`?3:5}}stepField(e,t,n,r){let i=fJ(this.core,e);if(!t||!i)return;n.preventDefault();let a=oY(t,parseInt(i.value)||0,this.spinRange(e),yJ(this.core,e));if(a===null)return;let o=Wq(a);hJ(this.core,e),$K(i,o),r&&gJ(this.core,e),pJ(this.emitter,e,o),this.emitter.emit(`update`,vK(this.core))}focusTrapHandler(){let e=this.core.getWrapper();e&&this.onKeydown(e,t=>{if(t.key!==`Tab`)return;let n=e.querySelectorAll(`button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])`),r=[];if(n.forEach(e=>{e.getAttribute(`aria-disabled`)!==`true`&&(e.hasAttribute(`disabled`)||e.hidden||e.getAttribute(`aria-hidden`)!==`true`&&(e.offsetParent===null&&e.getClientRects().length===0||r.push(e)))}),r.length===0)return;let i=r[0],a=r[r.length-1];t.shiftKey&&document.activeElement===i?(a?.focus(),t.preventDefault()):!t.shiftKey&&document.activeElement===a&&(i?.focus(),t.preventDefault())})}detach(){SK(this.cleanupHandlers)}destroy(){this.detach(),SK(this.persistentCleanups)}},cY=class{core;emitter;cleanupHandlers=[];constructor(e,t){this.core=e,this.emitter=t}handleBackdropClick(){let e=this.core.getModalElement();if(!e)return;let t=!1,n=n=>{t=n.target!==e},r=n=>{t||=n.target!==e},i=n=>{!this.core.isDestroyed&&n.target===e&&!t&&this.emitter.emit(`cancel`,{})};e.addEventListener(`pointerdown`,n),e.addEventListener(`pointerup`,r),e.addEventListener(`click`,i),this.cleanupHandlers.push(()=>{e.removeEventListener(`pointerdown`,n),e.removeEventListener(`pointerup`,r),e.removeEventListener(`click`,i)})}handlePointerModality(){let e=this.core.getModalElement();e&&this.cleanupHandlers.push(lq(e))}detach(){SK(this.cleanupHandlers)}destroy(){this.detach()}},lY=class{buttonHandlers;inputHandlers;keyboardHandlers;modalHandlers;constructor(e,t){this.buttonHandlers=new XJ(e,t),this.inputHandlers=new tY(e,t),this.keyboardHandlers=new sY(e,t),this.modalHandlers=new cY(e,t)}handleOpenOnClick(){this.buttonHandlers.handleOpenOnClick()}handleOpenOnEnterFocus(){this.keyboardHandlers.handleOpenOnEnterFocus()}handleCancelButton(){this.buttonHandlers.handleCancelButton()}handleOkButton(){this.buttonHandlers.handleOkButton()}syncOkButton(){this.buttonHandlers.syncOkButton()}handleBackdropClick(){this.modalHandlers.handleBackdropClick()}handlePointerModality(){this.modalHandlers.handlePointerModality()}handleEscClick(){this.keyboardHandlers.handleEscClick()}handleAmClick(){this.buttonHandlers.handleAmClick()}handlePmClick(){this.buttonHandlers.handlePmClick()}handleHourEvents(){this.inputHandlers.handleHourEvents()}handleMinutesEvents(){this.inputHandlers.handleMinutesEvents()}handleSecondsEvents(){this.inputHandlers.handleSecondsEvents()}handleKeyboardInput(){this.keyboardHandlers.handleKeyboardInput()}focusTrapHandler(){this.keyboardHandlers.focusTrapHandler()}handleSwitchViewButton(){this.buttonHandlers.handleSwitchViewButton()}detach(){this.buttonHandlers.detach(),this.inputHandlers.detach(),this.keyboardHandlers.detach(),this.modalHandlers.detach()}destroy(){this.buttonHandlers.destroy(),this.inputHandlers.destroy(),this.keyboardHandlers.destroy(),this.modalHandlers.destroy()}},uY=(e=[])=>{let t=e[e.length-1];return t===void 0?void 0:parseInt(t,10)+1},dY=class{emitter;getClockSystem;setHoursToClock;setMinutesToClock;setSecondsToClock;updateAmPm;convertDisabledTime;constructor(e,t,n,r,i,a,o){this.emitter=e,this.getClockSystem=t,this.setHoursToClock=n,this.setMinutesToClock=r,this.setSecondsToClock=o,this.updateAmPm=i,this.convertDisabledTime=a}setup(){this.emitter.on(`select:hour`,({hour:e})=>{this.showFace(`hours`,e,this.setHoursToClock)}),this.emitter.on(`select:minute`,({minutes:e})=>{this.showFace(`minutes`,e,this.setMinutesToClock)}),this.emitter.on(`select:second`,({seconds:e})=>{this.showFace(`seconds`,e,this.setSecondsToClock)}),this.emitter.on(`select:am`,()=>{this.updateAmPm()}),this.emitter.on(`select:pm`,()=>{this.updateAmPm()}),this.emitter.on(`animation:start`,()=>{this.getClockSystem()?.blockInteractions()}),this.emitter.on(`animation:end`,()=>{this.getClockSystem()?.unblockInteractions()}),this.emitter.on(`range:switch`,e=>{this.refreshDisabledTimeForRange(e.disabledTime)})}showFace(e,t,n){t&&this.getClockSystem()?.setValueIfShown(e,t)||(this.emitter.emit(`animation:clock`,{}),n?.(t||null),this.emitter.emit(`switch:face`,{face:e}))}refreshDisabledTimeForRange(e){let t=this.getClockSystem();if(!t)return;let n=this.convertDisabledTime();if(!e){t.updateDisabledTime(n);return}t.updateDisabledTime({...n,rangeFromType:e.fromType,rangeFromHour:e.fromHour,rangeFromMinute:e.fromMinute??uY(e.minutes),rangeFromSecond:uY(e.seconds)})}},fY=new WeakMap,pY=(e,t)=>{let n=e.clockType??t,r=fY.get(e);if(r&&r.clockType===n&&r.predicate===e.predicate)return r;let i={hours:e.hours,minutes:e.minutes,seconds:e.seconds,intervals:e.isInterval?e.intervals:void 0,clockType:n,predicate:e.predicate};return fY.set(e,i),i},mY=12,hY=59,gY=59,_Y=(e,t,n)=>n===`24h`?e:t===`AM`?e%mY:t===`PM`?e%mY+mY:null,vY=(e,t,n,r,i)=>{let a=_Y(e,r,i);return a===null?null:(a*60+t)*60+n},yY=(e,t,n,r,i,a)=>{let{rangeFromHour:o,rangeFromMinute:s=0,rangeFromSecond:c=0,rangeFromType:l}=i;if(o===void 0)return!1;let u=vY(o,s,c,l,a),d=vY(e,t,n,r,a);return u!==null&&d!==null&&d<u},bY=(e,t,n,r)=>yY(parseInt(e,10),hY,gY,t,n,r),xY=(e,t,n,r,i)=>yY(parseInt(t,10),parseInt(e,10),gY,n,r,i),SY=(e,t,n,r,i,a)=>yY(parseInt(n,10),parseInt(t,10),parseInt(e,10),r,i,a),CY=class{static angleToIndex(e,t,n){let r=Math.round(e/30)%12;if(t===`24h`){if(n){let e=r+12;return e===12?0:e}return r===0?12:r}return r===0?12:r}static indexToValue(e,t){if(t===`24h`)return e.toString().padStart(2,`0`);let n=e;return n===0&&(n=12),n>12&&(n-=12),n.toString().padStart(2,`0`)}static indexToAngle(e,t){return t===`24h`?e>=12?(e-12)%12*30:e%12*30:(e===0?12:e)%12*30}static isDisabled(e,t,n,r,i=!1){return n?bY(e,t,n,r)||hK(pY(n,r),{hour:e,type:t||void 0},i):!1}static findNearestValid(e,t,n,r,i=!1,a=1){let o=t===`24h`?23:12;for(let s=0;s<=o;s++){let c=s===0?[e]:[e+s,e-s];for(let e of c){let s=e;s<0&&(s+=o+1),s>o&&(s%=o+1);let c=this.indexToValue(s,t);if(lJ(s,a)&&!this.isDisabled(c,n,r,t,i))return s}}return e}},wY=class{static angleToIndex(e){return Math.round(e/6)%60}static indexToValue(e){return e.toString().padStart(2,`0`)}static indexToAngle(e){return e%60*6}static isDisabled(e,t,n,r,i,a=!1){return r?xY(e,t,n,r,i)||mK(pY(r,i),{hour:t,minutes:e,type:n||void 0},a):!1}static isUnitDisabled(e,t,n){let{hour:r,minute:i,amPm:a,disabledTime:o,clockType:s,showSeconds:c}=n;return e===`minutes`?this.isDisabled(t,r,a,o,s,c):o?SY(t,i,r,a,o,s)||pK(pY(o,s),{hour:r,minutes:i,seconds:t,type:a||void 0}):!1}static findNearestValidIndex(e,t,n){for(let r=0;r<60;r++){let i=r===0?[e]:[e+r,e-r];for(let e of i){let r=e;if(r<0&&(r+=60),r>=60&&(r%=60),!this.isUnitDisabled(t,this.indexToValue(r),n))return r}}return e}},TY=class{static normalizeAngle(e){let t=e%360;return t<0&&(t+=360),t}static calculateRawAngle(e,t){let n=e.x-t.x,r=e.y-t.y,i=Math.atan2(r,n)*180/Math.PI+90;return this.normalizeAngle(i)}static snapToIncrement(e,t){let n=Math.round(e/t)*t;return this.normalizeAngle(n)}static calculateDistance(e,t){let n=e.x-t.x,r=e.y-t.y;return Math.sqrt(n*n+r*r)}static isInnerCircle(e,t){return e<t*.75}static calculateShortestPath(e,t){let n=this.normalizeAngle(e),r=this.normalizeAngle(t)-n,i=r>=0?r:r+360,a=r<=0?r:r-360;return e+(Math.abs(i)<Math.abs(a)?i:a)}},EY=class{config;currentAngle=0;tipsCache=new Map;cachedDimensions=new Map;snapTimeout=null;sweep=null;constructor(e){this.config=e}getCachedDimensions(e){let t=this.cachedDimensions.get(e);if(!t){let n=(e.offsetWidth-32)/2;t={width:n,height:(e.offsetHeight-32)/2,radius:n-9},this.cachedDimensions.set(e,t)}return t}setHandAngle(e){this.cancelSweep();let t=TY.calculateShortestPath(this.currentAngle,e);Math.abs(this.currentAngle-t)<.01||(this.currentAngle=t,this.config.clockHand.style.transform=`rotateZ(${t}deg)`)}animateToAngle(e){let t=TY.calculateShortestPath(this.currentAngle,e);if(this.currentAngle=t,uq()){this.config.clockHand.style.transform=`rotateZ(${t}deg)`;return}this.clearSnapTimeout(),this.config.clockHand.classList.add(`tp-ui-tips-animation`),this.config.clockHand.style.transform=`rotateZ(${t}deg)`,this.snapTimeout=setTimeout(()=>{this.snapTimeout=null,this.config.clockHand.classList.remove(`tp-ui-tips-animation`)},WK.TIPS_ANIMATION)}clearSnapTimeout(){this.snapTimeout!==null&&(clearTimeout(this.snapTimeout),this.snapTimeout=null)}setActiveValue(e){let t=Number(e);[this.config.tipsWrapper,this.config.tipsWrapperFor24h].forEach(n=>{n?.querySelectorAll(`.tp-ui-value-tips, .tp-ui-value-tips-24h`).forEach(n=>{KK(n,`active`,n.textContent===e||Number(n.textContent)===t)})})}followHand(e,t){this.cancelSweep();let n=this.config.clockHand;if(uq()||!n.classList.contains(`tp-ui-tips-animation`)){this.setActiveValue(t);return}let r=0,i=()=>{let{a:t,b:a}=new DOMMatrix(getComputedStyle(n).transform);this.setActiveValue(e(Math.atan2(a,t)*180/Math.PI)),r=requestAnimationFrame(i)},a=setTimeout(()=>{this.cancelSweep(),this.setActiveValue(t)},WK.TIPS_ANIMATION);this.sweep=()=>{cancelAnimationFrame(r),clearTimeout(a)},r=requestAnimationFrame(i)}cancelSweep(){this.sweep?.(),this.sweep=null}renderTips(e,t,n,r,i,a=!0,o,s=``,c=`12`,l=`00`){if(PK()===!1)return;let u=o||this.config.tipsWrapper,d={hour:c,minute:l,amPm:s,disabledTime:r,clockType:i,showSeconds:this.config.showSeconds};a&&(u.innerHTML=``,this.tipsCache.clear());let{width:f,height:p,radius:m}=this.getCachedDimensions(u),h=document.createDocumentFragment(),g=`${t}-${this.config.theme||`default`}`;e.forEach((r,a)=>{let o=`${g}-${r}`,s=this.tipsCache.get(o);s||(s=this.createTip(r,t,i),this.tipsCache.set(o,s));let{wrapper:c,tip:l}=s;this.updateTipState(c,l,r,n,d);let u=a*(360/e.length)*(Math.PI/180);c.style.left=`${f+Math.sin(u)*m}px`,c.style.bottom=`${p+Math.cos(u)*m}px`,h.appendChild(c)}),u.appendChild(h)}createTip(e,t,n){if(PK()===!1){let e={};return{wrapper:e,tip:e}}let r=document.createElement(`span`),i=document.createElement(`span`);i.textContent=e,i.tabIndex=-1;let a=n===`24h`&&t.includes(`24`)?`tp-ui-value-tips-24h`:`tp-ui-value-tips`;return i.classList.add(a),r.classList.add(t),r.appendChild(i),{wrapper:r,tip:i}}updateTipState(e,t,n,r,i){let a=this.checkIfDisabled(n,r,i);KK(e,`tp-ui-tips-disabled`,a),KK(t,`tp-ui-tips-disabled`,a)}checkIfDisabled(e,t,n){let{amPm:r,disabledTime:i,clockType:a,showSeconds:o}=n;return i?t===`hours`?CY.isDisabled(e,r,i,a,o):wY.isUnitDisabled(t,e,n):!1}setCircle24hMode(e){KK(this.config.circle,`tp-ui-circle-hand-24h`,e),KK(this.config.clockHand,`tp-ui-clock-hand-24h`,e)}destroy(){this.cancelSweep(),this.clearSnapTimeout(),this.tipsCache.clear(),this.cachedDimensions.clear()}},DY=class{static processPointerInput(e){let t=TY.calculateRawAngle(e.pointerPosition,e.clockCenter);return e.mode===`hours`?this.processHours(t,e):this.processSixty(t,e,e.mode)}static processHours(e,t){let n=TY.snapToIncrement(e,t.incrementHours*30),r=TY.calculateDistance(t.pointerPosition,t.clockCenter),i=t.clockType===`24h`&&TY.isInnerCircle(r,t.clockRadius),a=CY.angleToIndex(n,t.clockType,i),o=CY.indexToValue(a,t.clockType),s=CY.isDisabled(o,t.amPm,t.disabledTime,t.clockType,t.showSeconds);return s&&(a=CY.findNearestValid(a,t.clockType,t.amPm,t.disabledTime,t.showSeconds,t.incrementHours)),{angle:t.smoothHourSnap===!1?CY.indexToAngle(a,t.clockType):e,value:CY.indexToValue(a,t.clockType),index:a,isValid:!s,isInnerCircle:t.clockType===`24h`?i:void 0}}static processSixty(e,t,n){let r=n===`seconds`?t.incrementSeconds??1:t.incrementMinutes,i=TY.snapToIncrement(e,r*6),a=wY.angleToIndex(i),o={hour:t.currentHour||`00`,minute:t.currentMinute||`00`,amPm:t.amPm,disabledTime:t.disabledTime,clockType:t.clockType,showSeconds:t.showSeconds},s=wY.isUnitDisabled(n,wY.indexToValue(a),o);return s&&(a=wY.findNearestValidIndex(a,n,o)),{angle:wY.indexToAngle(a),value:wY.indexToValue(a),index:a,isValid:!s}}static valueToAngle(e,t,n){let r=parseInt(e,10);return t===`hours`?CY.indexToAngle(r,n):wY.indexToAngle(r)}},OY=class{state;renderer;clockType;disabledTime;incrementHours;incrementMinutes;incrementSeconds;smoothHourSnap;showSeconds;isDragging=!1;callbacks;lastProcessedX=null;lastProcessedY=null;appliedInDrag=!1;sixtyUnits={minutes:{value:`minute`,angle:`minuteAngle`,notify:()=>this.callbacks.onMinuteChange},seconds:{value:`second`,angle:`secondAngle`,notify:()=>this.callbacks.onSecondChange}};constructor(e,t,n,r,i=1,a=1,o=!0,s={},c=1,l=!1){this.renderer=e,this.state={...t},this.clockType=n,this.disabledTime=r,this.incrementHours=i,this.incrementMinutes=a,this.incrementSeconds=c,this.smoothHourSnap=o,this.showSeconds=l,this.callbacks=s}handlePointerMove(e,t,n){if(this.isDragging=!0,this.lastProcessedX===e.x&&this.lastProcessedY===e.y)return this.appliedInDrag;this.lastProcessedX=e.x,this.lastProcessedY=e.y;let r=this.state.mode,i={pointerPosition:e,clockCenter:t,clockRadius:n,mode:r,clockType:this.clockType,amPm:this.state.amPm,disabledTime:this.disabledTime,incrementHours:this.incrementHours,incrementMinutes:this.incrementMinutes,incrementSeconds:this.incrementSeconds,smoothHourSnap:this.smoothHourSnap,currentHour:this.state.hour,currentMinute:this.state.minute,showSeconds:this.showSeconds},a=DY.processPointerInput(i);if(!a.isValid)return!1;if(r===`hours`){let e=this.state.hour;this.state.hour=a.value,this.state.hourAngle=a.angle,this.clockType===`24h`&&a.isInnerCircle!==void 0&&this.renderer.setCircle24hMode(a.isInnerCircle),this.callbacks.onHourChange&&e!==a.value&&this.callbacks.onHourChange(a.value)}else{let e=this.writeSixty(r,a.value,a.angle),t=this.sixtyUnits[r].notify();t&&e!==a.value&&t(a.value)}return this.renderer.setHandAngle(a.angle),this.renderer.setActiveValue(a.value),this.appliedInDrag=!0,!0}handlePointerUp(){this.isDragging=!1,this.appliedInDrag=!1,this.lastProcessedX=null,this.lastProcessedY=null}snapToNearestHour(){if(this.state.mode!==`hours`)return;let e=DY.valueToAngle(this.state.hour,`hours`,this.clockType);this.state.hourAngle=e,this.renderer.animateToAngle(e)}switchMode(e){this.state.mode=e,this.renderer.setCircle24hMode(this.isInnerFace(e,this.getValue(e))),this.renderer.setHandAngle(this.getAngle(e))}followHand(e){let t=this.getValue(e),n=this.isInnerFace(e,t);this.renderer.followHand(t=>{let r=TY.snapToIncrement(t,30);return e===`hours`?CY.indexToValue(CY.angleToIndex(r,this.clockType,n),this.clockType):wY.indexToValue(wY.angleToIndex(r))},t)}setValue(e,t){let n=DY.valueToAngle(t,e,this.clockType);e===`hours`?(this.state.hour=t,this.state.hourAngle=n):this.writeSixty(e,t,n),this.state.mode===e&&(this.renderer.setCircle24hMode(this.isInnerFace(e,t)),this.renderer.setHandAngle(n),this.renderer.setActiveValue(t))}setAmPm(e){this.state.amPm=e}getState(){return{...this.state}}getValue(e){return e===`hours`?this.state.hour:this.state[this.sixtyUnits[e].value]}getHour(){return this.state.hour}getMinute(){return this.state.minute}getSecond(){return this.state.second}getAmPm(){return this.state.amPm}updateDisabledTime(e){this.disabledTime=e}destroy(){this.renderer.destroy()}getAngle(e){return e===`hours`?this.state.hourAngle:this.state[this.sixtyUnits[e].angle]}writeSixty(e,t,n){let r=this.sixtyUnits[e],i=this.state[r.value];return this.state[r.value]=t,this.state[r.angle]=n,i}isInnerFace(e,t){if(e!==`hours`||this.clockType!==`24h`)return!1;let n=parseInt(t,10);return n===0||n>=13}},kY=class{controller;clockFace;isActive=!1;isBlocked=!1;config;cachedRect=null;cachedCenter=null;cachedRadius=null;rafId=null;hadValidSelection=!1;constructor(e,t,n={}){this.controller=e,this.clockFace=t,this.config=n}attach(){this.clockFace.addEventListener(`mousedown`,this.handlePointerDown),this.clockFace.addEventListener(`touchstart`,this.handlePointerDown,{passive:!1})}detach(){this.clockFace.removeEventListener(`mousedown`,this.handlePointerDown),this.clockFace.removeEventListener(`touchstart`,this.handlePointerDown),this.removeGlobalListeners(),this.cancelPendingFrame(),this.isActive=!1}block(){this.isBlocked=!0}unblock(){this.isBlocked=!1}handlePointerDown=e=>{NK()||this.isBlocked||this.isDisabledTarget(e.target)||(e.preventDefault(),this.isActive=!0,this.hadValidSelection=!1,this.cachedRect=this.clockFace.getBoundingClientRect(),this.cachedCenter=this.getClockCenter(),this.cachedRadius=this.getClockRadius(),this.processPointerEvent(e),document.addEventListener(`mousemove`,this.handlePointerMove),document.addEventListener(`touchmove`,this.handlePointerMove,{passive:!1}),document.addEventListener(`mouseup`,this.handlePointerUp),document.addEventListener(`touchend`,this.handlePointerUp))};handlePointerMove=e=>{!this.isActive||this.isBlocked||this.isDisabledTarget(this.getTargetElement(e))||(e.preventDefault(),this.rafId===null&&(this.rafId=requestAnimationFrame(()=>{this.rafId=null,this.processPointerEvent(e)})))};handlePointerUp=()=>{if(!this.isActive)return;this.cancelPendingFrame(),this.isActive=!1,this.cachedRect=null,this.cachedCenter=null,this.cachedRadius=null,this.controller.handlePointerUp();let{autoSwitchToMinutes:e,autoSwitchToSeconds:t,isMobileView:n,smoothHourSnap:r,hourElement:i,minutesElement:a,secondsElement:o}=this.config;r&&i?.classList.contains(`active`)&&this.controller.snapToNearestHour(),this.removeGlobalListeners(),this.hadValidSelection&&(e&&i?.classList.contains(`active`)&&!n?this.activate(i,a):a?.classList.contains(`active`)&&o?t!==!1&&!n&&this.activate(a,o):this.isLastUnitActive()&&this.config.onMinuteCommit&&this.config.onMinuteCommit())};activate(e,t){t?.click(),t?.focus(),e.blur()}isLastUnitActive(){let{minutesElement:e,secondsElement:t}=this.config;return!!(t??e)?.classList.contains(`active`)}processPointerEvent(e){let t=this.getPointerPosition(e),n=this.cachedCenter||this.getClockCenter(),r=this.cachedRadius||this.getClockRadius();this.controller.handlePointerMove(t,n,r)!==!1&&(this.hadValidSelection=!0)}isDisabledTarget(e){return!!e?.closest?.(`.tp-ui-tips-disabled`)}getPointerPosition(e){let t=this.cachedRect||this.clockFace.getBoundingClientRect();if(`touches`in e){let n=e.touches[0]||e.changedTouches[0];return{x:n.clientX-t.left,y:n.clientY-t.top}}return{x:e.clientX-t.left,y:e.clientY-t.top}}getTargetElement(e){if(`touches`in e){let t=e.touches[0]||e.changedTouches[0];if(t&&!NK())return document.elementFromPoint(t.clientX,t.clientY)}return e.target}getClockCenter(){let e=this.clockFace.offsetWidth,t=this.clockFace.offsetHeight;return{x:e/2,y:t/2}}getClockRadius(){return this.clockFace.offsetWidth/2}cancelPendingFrame(){this.rafId!==null&&(cancelAnimationFrame(this.rafId),this.rafId=null)}removeGlobalListeners(){PK()!==!1&&(document.removeEventListener(`mousemove`,this.handlePointerMove),document.removeEventListener(`touchmove`,this.handlePointerMove),document.removeEventListener(`mouseup`,this.handlePointerUp),document.removeEventListener(`touchend`,this.handlePointerUp))}},AY=class{renderer;controller;dragHandlers;clockType;disabledTime;tipsWrapper;tipsWrapperFor24h;constructor(e){this.clockType=e.clockType,this.disabledTime=e.disabledTime,this.tipsWrapper=e.tipsWrapper,this.tipsWrapperFor24h=e.tipsWrapperFor24h;let t={clockFace:e.clockFace,tipsWrapper:e.tipsWrapper,tipsWrapperFor24h:e.tipsWrapperFor24h,clockHand:e.clockHand,circle:e.circle,theme:e.theme,showSeconds:e.showSeconds};this.renderer=new EY(t);let n=e.initialSecond||`00`,r={hour:e.initialHour,minute:e.initialMinute,second:n,amPm:e.initialAmPm,hourAngle:DY.valueToAngle(e.initialHour,`hours`,e.clockType),minuteAngle:DY.valueToAngle(e.initialMinute,`minutes`,e.clockType),secondAngle:DY.valueToAngle(n,`seconds`,e.clockType),mode:`hours`},i={onHourChange:e.onHourChange,onMinuteChange:e.onMinuteChange,onSecondChange:e.onSecondChange};this.controller=new OY(this.renderer,r,e.clockType,e.disabledTime,e.incrementHours||1,e.incrementMinutes||1,e.smoothHourSnap??!0,i,e.incrementSeconds||1,e.showSeconds??!1),this.dragHandlers=new kY(this.controller,e.clockFace,e.dragConfig||{})}initialize(){this.dragHandlers.attach(),this.switchToHours()}switchToHours(){this.controller.switchMode(`hours`),this.clockType===`24h`&&this.tipsWrapperFor24h&&this.tipsWrapperFor24h.classList.remove(`none`),this.renderHourTips(),this.controller.followHand(`hours`)}switchToMinutes(){this.switchToSixty(`minutes`)}switchToSeconds(){this.switchToSixty(`seconds`)}setHour(e){this.controller.setValue(`hours`,e)}setMinute(e){this.controller.setValue(`minutes`,e)}setSecond(e){this.controller.setValue(`seconds`,e)}setValueIfShown(e,t){let n=this.controller.getState().mode===e;return n&&this.controller.setValue(e,t),n}setAmPm(e){this.controller.setAmPm(e),this.refreshFace()}syncValue(e){this.controller.setValue(`hours`,e.hour),this.controller.setValue(`minutes`,e.minute),e.second&&this.controller.setValue(`seconds`,e.second),e.amPm&&this.clockType===`12h`&&this.controller.setAmPm(e.amPm),this.refreshFace()}refreshFace(){let{mode:e}=this.controller.getState();e===`hours`?this.switchToHours():this.switchToSixty(e)}getHour(){return this.controller.getHour()}getMinute(){return this.controller.getMinute()}getSecond(){return this.controller.getSecond()}getAmPm(){return this.controller.getAmPm()}updateDisabledTime(e){this.disabledTime=e,this.controller.updateDisabledTime(e),this.renderCurrentTips()}refreshDisabledTime(){this.controller.followHand(this.renderCurrentTips())}renderCurrentTips(){let{mode:e}=this.controller.getState();return e===`hours`?this.renderHourTips():this.renderSixtyTips(e),e}switchToSixty(e){this.controller.switchMode(e),this.tipsWrapperFor24h&&this.tipsWrapperFor24h.classList.add(`none`),this.renderSixtyTips(e),this.controller.followHand(e)}renderHourTips(){let e=this.controller.getState().amPm;this.clockType===`24h`?(this.renderer.renderTips(yq,`tp-ui-hour-time-12`,`hours`,this.disabledTime,this.clockType,!0,this.tipsWrapper,e),this.tipsWrapperFor24h&&this.renderer.renderTips(vq,`tp-ui-hour-time-24`,`hours`,this.disabledTime,this.clockType,!0,this.tipsWrapperFor24h,e)):this.renderer.renderTips(yq,`tp-ui-hour-time-12`,`hours`,this.disabledTime,this.clockType,!0,void 0,e)}renderSixtyTips(e){let{amPm:t,hour:n,minute:r}=this.controller.getState();this.renderer.renderTips(bq,`tp-ui-minutes-time`,e,this.disabledTime,this.clockType,!0,void 0,t,n,r)}destroy(){this.dragHandlers.detach(),this.controller.destroy()}blockInteractions(){this.dragHandlers.block()}unblockInteractions(){this.dragHandlers.unblock()}},jY=class{core;emitter;clockSystem=null;constructor(e,t){this.core=e,this.emitter=t}getClockSystem(){return this.clockSystem}initialize(){this.destroy();let e=this.core.getClockFace(),t=this.core.getClockHand(),n=this.core.getCircle();if(!e||!t||!n)return;let{clock:r}=this.core.options,i=r.type===`24h`,a=this.core.getTipsWrapper();if(!a)return;let o=r.showSeconds===!0,s=this.core.getHour(),c=this.core.getMinutes(),l=o?this.core.getSeconds():null,u={clockFace:e,tipsWrapper:a,tipsWrapperFor24h:i&&this.core.getTipsWrapperFor24h()||void 0,clockHand:t,circle:n,clockType:r.type||`12h`,disabledTime:this.convertDisabledTime(),initialHour:s?.value||`12`,initialMinute:c?.value||`00`,initialSecond:l?.value||`00`,initialAmPm:this.getAmPmValue(),theme:this.core.options.ui.theme,incrementHours:r.incrementHours||1,incrementMinutes:r.incrementMinutes||1,incrementSeconds:r.incrementSeconds||1,smoothHourSnap:r.smoothHourSnap??!0,showSeconds:o,timepicker:null,dragConfig:{autoSwitchToMinutes:r.autoSwitchToMinutes,autoSwitchToSeconds:r.autoSwitchToSeconds,isMobileView:this.core.isMobileView,smoothHourSnap:r.smoothHourSnap??!0,hourElement:s,minutesElement:c,secondsElement:l,onMinuteCommit:()=>{let e=vK(this.core);this.emitter.emit(`range:minute:commit`,{...e,hour:e.hour??`12`,minutes:e.minutes??`00`})}},onHourChange:e=>this.reflectClockValue(`hour`,e),onMinuteChange:e=>this.reflectClockValue(`minutes`,e),onSecondChange:e=>this.reflectClockValue(`seconds`,e)};this.clockSystem=new AY(u),this.clockSystem.initialize()}convertDisabledTime(){let e=this.core.disabledTime?.value;if(!e)return null;let t;return e.intervals&&(t=Array.isArray(e.intervals)?e.intervals:[e.intervals]),{hours:e.hours,minutes:e.minutes,seconds:e.seconds,isInterval:e.isInterval,intervals:t,clockType:e.clockType,predicate:e.predicate}}getAmPmValue(){if(this.core.options.clock.type===`24h`)return``;let e=this.core.getActiveType();if(e)return e;let t=this.core.getAM();return this.core.options.range?.enabled===!0?t?.classList.contains(`active`)?`AM`:``:t?.classList.contains(`active`)?`AM`:`PM`}reflectClockValue(e,t){$K(fJ(this.core,e),t),gJ(this.core,e),this.emitter.emit(`update`,vK(this.core))}destroy(){this.clockSystem&&=(this.clockSystem.destroy(),null)}},MY=class{core;constructor(e){this.core=e}setOnStartCSSClassesIfClockType24h(){if(this.core.options.clock.type!==`24h`)return;let e=this.core.getInput()?.value.split(`:`)[0];if(!e)return;let t=Number(e);(t>12||t===0)&&(this.core.getCircle()?.classList.add(`tp-ui-circle-hand-24h`),this.core.getClockHand()?.classList.add(`tp-ui-clock-hand-24h`))}setClassActiveToHourOnOpen(){this.core.options.ui.mobile||this.core.isMobileView||this.core.getHour()?.classList.add(GJ)}},NY={minutes:{set:`setMinute`,show:`switchToMinutes`},seconds:{set:`setSecond`,show:`switchToSeconds`}},PY=class{getClockSystem;getAmPmValue;getClockType;constructor(e,t,n){this.getClockSystem=e,this.getAmPmValue=t,this.getClockType=n}setMinutesToClock(e){this.setSixtyToClock(`minutes`,e)}setSecondsToClock(e){this.setSixtyToClock(`seconds`,e)}setHoursToClock(e){let t=this.getClockSystem();t&&(e&&t.setHour(e),t.switchToHours())}updateAmPm(){let e=this.getClockSystem();if(!e||this.getClockType()===`24h`)return;let t=this.getAmPmValue();t!==``&&e.setAmPm(t)}setSixtyToClock(e,t){let n=this.getClockSystem();if(!n)return;let r=NY[e];t&&n[r.set](t),n[r.show]()}},FY=class{systemInitializer;styleHandler;timeHandler;eventHandler;constructor(e,t){this.systemInitializer=new jY(e,t),this.styleHandler=new MY(e),this.timeHandler=new PY(()=>this.systemInitializer.getClockSystem(),()=>this.systemInitializer.getAmPmValue(),()=>e.options.clock.type||`12h`),this.eventHandler=new dY(t,()=>this.systemInitializer.getClockSystem(),e=>this.timeHandler.setHoursToClock(e),e=>this.timeHandler.setMinutesToClock(e),()=>this.timeHandler.updateAmPm(),()=>this.systemInitializer.convertDisabledTime(),e=>this.timeHandler.setSecondsToClock(e)),this.eventHandler.setup()}initializeClockSystem(){this.systemInitializer.initialize()}destroyClockSystem(){this.systemInitializer.destroy()}setOnStartCSSClassesIfClockType24h(){this.styleHandler.setOnStartCSSClassesIfClockType24h()}setClassActiveToHourOnOpen=()=>{this.styleHandler.setClassActiveToHourOnOpen()};syncClockValue(e,t,n,r){let i=this.systemInitializer.getClockSystem();if(!i)return!1;let a=n===`AM`||n===`PM`?n:``;return i.syncValue({hour:e,minute:t,second:r,amPm:a}),!0}refreshDisabledTime(){this.systemInitializer.getClockSystem()?.refreshDisabledTime()}destroy(){this.destroyClockSystem()}},IY={hour:`12`,minutes:`00`,seconds:`00`},LY=class{core;emitter;cleanupHandlers=[];wasCleared=!1;constructor(e,t){this.core=e,this.emitter=t}init(){if(!this.core.options.ui.clearButton)return;let e=this.getClearButton();e&&(this.cleanupHandlers.push(oq(e,()=>{this.core.isDestroyed||this.handleClearClick()})),this.setupInternalEventListeners(),this.updateClearButtonState())}setupInternalEventListeners(){let e=()=>this.updateClearButtonState();xK(this.emitter,this.cleanupHandlers,`update`,e),xK(this.emitter,this.cleanupHandlers,`open`,e),dJ.forEach(t=>{xK(this.emitter,this.cleanupHandlers,uJ[t].event,()=>{e(),this.reenableConfirmIfCleared()})})}handleClearClick(){let e=this.core.getInput()?.value||null;this.clearTimeValue(),this.resetClockToNeutral(),tq(this.core.getOkButton(),!0),this.wasCleared=!0,GK(this.core.getModalElement(),this.core.options.labels.announceCleared),this.emitter.emit(`clear`,{previousValue:e}),this.emitter.emit(`update`,{hour:void 0,minutes:void 0,type:void 0})}clearTimeValue(){let e=this.core.options.clearBehavior?.clearInput!==!1,t=this.core.getInput();t&&e&&(t.value=``),this.core.setDegreesHours(null),this.core.setDegreesMinutes(null),this.core.setDegreesSeconds(null)}resetClockToNeutral(){let e=this.core.options.clock.type===`12h`?`PM`:void 0;dJ.forEach(e=>{$K(fJ(this.core,e),IY[e])});let t=this.core.getClockHand();if(t){let e=t.style.transition;t.style.transition=`none`,t.style.transform=`rotateZ(0deg)`,t.offsetHeight,requestAnimationFrame(()=>{t.style.transition=e})}this.removeActiveStates(),this.core.getHour()?.click(),e&&XK(this.core.getAM(),this.core.getPM(),e),this.emitter.emit(`animation:clock`,{})}removeActiveStates(){this.core.getAllValueTips().forEach(e=>KK(e,`active`,!1))}updateClearButtonState(){let e=this.getClearButton();if(!e)return;let t=!!this.core.getInput()?.value.trim(),n=this.core.options.clock.type,r=this.core.getHour()?.value||``,i=this.core.getMinutes()?.value||``,a=this.core.getSeconds()?.value||``,o=this.core.getActiveType()??``,s=r!==``||i!==``||a!==``,c=r===IY.hour&&i===IY.minutes&&(a===``||a===IY.seconds)&&(n!==`12h`||o===`PM`);tq(e,!(t||s&&!c))}reenableConfirmIfCleared(){if(!this.wasCleared)return;let e=this.core.getOkButton();e&&(tq(e,!1),this.wasCleared=!1)}getClearButton(){return this.core.getModalElement()?.querySelector(`.tp-ui-clear-btn`)||null}detach(){SK(this.cleanupHandlers)}destroy(){this.detach()}},RY=class{animation;modal;config;theme;validation;events;clock;clearButton;plugins=new Map;constructor(e,t){this.animation=new dq(e,t),this.modal=new Bq(e,t),this.config=new UJ(e,t),this.theme=new KJ(e,t),this.validation=new YJ(e,t),this.events=new lY(e,t),this.clock=new FY(e,t),this.clearButton=new LY(e,t),hq.getAll().forEach(n=>{let r=n.factory(e,t);this.plugins.set(n.name,r)})}getPlugin(e){return this.plugins.get(e)}destroy(){this.animation.destroy(),this.modal.destroy(),this.config.destroy(),this.theme.destroy(),this.validation.destroy(),this.events.destroy(),this.clock.destroy(),this.clearButton.destroy(),this.plugins.forEach(e=>e.destroy()),this.plugins.clear()}},zY=`is-pressed`,BY=`is-rippling`,VY=new WeakSet,HY=e=>e instanceof Element?e.closest(`[data-md3-ripple]`):null,UY=e=>{HY(e.target)?.classList.remove(zY)},WY=e=>{e.animationName===`tp-ripple-fade`&&HY(e.target)?.classList.remove(BY)},GY=e=>{let{pointerType:t,button:n,clientX:r,clientY:i}=e,a=HY(e.target);if(!a||eq(a)||t===`mouse`&&n!==0)return;a.classList.remove(BY);let{left:o,top:s,width:c,height:l}=a.getBoundingClientRect();a.style.setProperty(`--ripple-x`,`${r-o}px`),a.style.setProperty(`--ripple-y`,`${i-s}px`),a.style.setProperty(`--ripple-size`,`${Math.max(c,l)*2}px`),a.classList.add(zY),a.addEventListener(`pointerleave`,UY,{once:!0}),uq()||requestAnimationFrame(()=>a.classList.add(BY))},KY=[[`pointerdown`,GY],[`pointerup`,UY],[`pointercancel`,UY],[`animationend`,WY]],qY=e=>{if(VY.has(e))return()=>{};VY.add(e),KY.forEach(([t,n])=>e.addEventListener(t,n));let t=!0;return()=>{t&&(t=!1,VY.delete(e),KY.forEach(([t,n])=>e.removeEventListener(t,n)))}},JY=[[`onOpen`,`open`],[`onShow`,`show`],[`onCancel`,`cancel`],[`onConfirm`,`confirm`],[`onUpdate`,`update`],[`onSelectHour`,`select:hour`],[`onSelectMinute`,`select:minute`],[`onSelectSecond`,`select:second`],[`onSelectAM`,`select:am`],[`onSelectPM`,`select:pm`],[`onSelectPeriod`,`select:period`],[`onSwitchView`,`switch:view`],[`onSwitchFace`,`switch:face`],[`onError`,`error`],[`onTimezoneChange`,`timezone:change`],[`onRangeConfirm`,`range:confirm`],[`onRangeSwitch`,`range:switch`],[`onRangeValidation`,`range:validation`],[`onWheelScrollStart`,`wheel:scroll:start`],[`onWheelScrollEnd`,`wheel:scroll:end`],[`onClear`,`clear`]],YY=[{needed:JG,name:`wheel`,plugin:`WheelPlugin`},{needed:e=>!!e.range?.enabled,name:`range`,plugin:`RangePlugin`},{needed:e=>!!e.timezone?.enabled,name:`timezone`,plugin:`TimezonePlugin`}],XY=class{core;managers;emitter;unmountTimeouts=[];rippleCleanup=()=>{};isCommitting=!1;isRendering=!1;isRerenderPending=!1;constructor(e,t,n){this.core=e,this.managers=t,this.emitter=n}init(){if(!this.core.isDestroyed&&!this.core.isInitialized){wK(this.core,this.emitter);try{this.managers.config.updateInputValueWithCurrentTimeOnStart(),this.managers.validation.checkDisabledValuesOnStart()}catch(e){this.core.setIsDestroyed(!0),this.reportError(e);return}this.managers.theme.setTimepickerClassToElement(),this.managers.theme.setInputClassToInputElement(),this.managers.theme.setDataOpenToInputIfDoesntExistInWrapper(),this.managers.theme.setClassTopOpenElement(),this.managers.config.getDisableTime(),ZG(this.core.options)||this.managers.events.handleOpenOnClick(),this.managers.events.handleOpenOnEnterFocus(),this.core.setIsInitialized(!0)}}applyOptions(e){let t=this.core.options;this.core.updateOptions(e);try{this.managers.validation.checkDisabledValuesOnStart(),this.managers.config.getDisableTime()}catch(e){return this.core.setOptions(t),this.reportError(e),!1}return this.managers.config.checkMobileOption(),this.managers.config.syncInputFormat(t),!0}refreshDisabledTime(){this.managers.config.clearPredicateCache(),this.core.isOpen&&(JG(this.core.options)&&hq.has(`wheel`)?this.managers.getPlugin(`wheel`)?.updateDisabledItems?.():this.managers.clock.refreshDisabledTime(),this.managers.events.syncOkButton())}reportError(e){this.emitter.emit(`error`,{error:e instanceof Error?e.message:String(e)})}mount(){this.core.isDestroyed||this.core.isOpen||(this.core.isInitialized||this.init(),this.eventsBundle())}rerender(){if(this.isRendering){this.isRerenderPending=!0;return}let e=this.managers.modal.getFocusedControlSelector();this.core.setIsOpen(!1),this.releaseOpenView(),this.core.setIsModalRemove(!0),this.eventsBundle(!0),e!==null&&this.managers.modal.restoreFocus(e)}discardSelection(){if(ZG(this.core.options)){this.rerender(),this.core.getCancelButton()?.focus();return}this.unmount()}closeUnlessInline(){ZG(this.core.options)||this.unmount()}unmount(e,t=!1){if(this.isCommitting)return;t&&this.commitSelection(),this.deactivate();let n=()=>{this.closeModal(),e&&e()},{delayHandler:r}=this.core.options.behavior;r?this.unmountTimeouts.push(setTimeout(n,r)):n()}deactivate(){this.core.setIsOpen(!1),this.releaseOpenView()}releaseOpenView(){this.detachOpenHandlers(),this.managers.clock.destroyClockSystem(),this.managers.getPlugin(`wheel`)?.detachPopover?.()}commitSelection(){this.core.isOpen&&(this.isCommitting=!0,this.core.getOkButton()?.click(),this.isCommitting=!1)}closeModal(){this.core.setIsMobileView(!!this.core.options.ui.mobile),this.core.setIsTouchMouseMove(!1),this.unmountTimeouts.push(setTimeout(()=>{this.managers.modal.unlockScroll(),this.core.options.behavior.focusInputAfterClose&&this.core.getInput()?.focus(),this.releaseRipple(),this.core.getModalElement()?.remove(),this.core.setIsModalRemove(!0),this.core.getOpenElement().forEach(e=>e?.classList.remove(`disabled`))},this.managers.animation.removeAnimationToClose()))}destroy(e){if(this.core.isDestroyed)return;this.clearUnmountTimeouts();let{keepInputValue:t=!1,callback:n}=typeof e==`function`?{callback:e}:e||{},r=this.core.getInput(),i=t?r?.value:null;this.releaseRipple(),this.core.getModalElement()?.remove(),this.core.getOpenElement()?.forEach(e=>{e&&e.classList.remove(`disabled`,`tp-ui-open-element`)}),r&&(r.classList.remove(`tp-ui-invalid-format`,`tp-ui-input`),r.removeAttribute(`data-open`),r.removeAttribute(`data-owner-id`),t&&i&&(r.value=i));let a=this.core.element;a&&(a.removeAttribute(`data-owner-id`),a.removeAttribute(`data-open`),this.core.options.ui.cssClass&&a.classList.remove(this.core.options.ui.cssClass)),a?.querySelectorAll(`.tp-ui-invalid-text`)?.forEach(e=>e.remove()),this.core.reset(),this.managers.destroy(),this.emitter.clear(),this.managers.modal.unlockScroll(),n&&n()}eventsBundle(e=!1){if(this.core.isDestroyed||!this.core.isModalRemove)return;this.isRendering=!0,this.clearUnmountTimeouts(),this.detachOpenHandlers(),this.core.setIsOpen(!0),this.core.setIsModalRemove(!1),this.disableOpenElements(),this.setupModal(),this.setupValidation(),this.applyExpandedState(),this.managers.modal.setFlexEndToFooterIfNoKeyboardIcon(),this.applyWrapperCssClass(),e&&this.managers.animation.setAnimationToOpen(!0),this.managers.config.getInputValueOnOpenAndSet(!e);let t=JG(this.core.options)&&hq.has(`wheel`);EK(this.core,this.emitter),this.revealClockFace(t,e),this.initClockOrWheel(t),this.initOptionalPlugins(t),this.bindEventHandlers(t),this.initRipple(),XG(this.core.options)&&this.managers.getPlugin(`wheel`)?.attachPopover?.(),e||(this.managers.animation.setAnimationToOpen(),this.managers.modal.setInitialFocus()),this.isRendering=!1,this.runPendingRerender(e)}runPendingRerender(e){let t=this.isRerenderPending;this.isRerenderPending=!1,t&&!e&&this.core.isOpen&&this.rerender()}setupValidation(){this.managers.validation.setErrorHandler()}detachOpenHandlers(){this.managers.events.detach(),this.managers.clearButton.detach()}disableOpenElements(){ZG(this.core.options)||(this.core.getOpenElement().forEach(e=>e?.classList.add(`disabled`)),XG(this.core.options)||this.core.getInput()?.blur())}setupModal(){this.managers.modal.setScrollbarOrNot(),this.managers.modal.setModalTemplate(),this.managers.modal.setNormalizeClass(),this.managers.modal.removeBackdrop()}applyExpandedState(){if(this.core.isMobileView){this.managers.config.updateClockFaceAccessibility(!0);return}this.core.getModalElement()?.querySelectorAll(`*`).forEach(e=>{e.classList.contains(`tp-ui-select-time`)||e.classList.add(`expanded`)})}applyWrapperCssClass(){let{cssClass:e}=this.core.options.ui;e&&this.core.getWrapper()?.classList.add(e)}initClockOrWheel(e){if(e){let e=this.managers.getPlugin(`wheel`);e&&e.init()}else this.managers.clock.initializeClockSystem(),this.managers.clock.setOnStartCSSClassesIfClockType24h(),this.managers.clock.setClassActiveToHourOnOpen()}initOptionalPlugins(e){let t=this.managers.getPlugin(`timezone`);t&&t.init();let n=this.managers.getPlugin(`range`);n&&!e&&n.init()}bindEventHandlers(e){this.managers.events.handleCancelButton(),this.managers.events.handleOkButton(),this.managers.clearButton.init(),e||(this.managers.events.handleHourEvents(),this.managers.events.handleMinutesEvents(),this.core.options.clock.showSeconds&&this.managers.events.handleSecondsEvents()),this.managers.events.handleKeyboardInput(),this.managers.events.handlePointerModality(),this.core.options.ui.enableSwitchIcon&&!e&&this.managers.events.handleSwitchViewButton(),this.core.options.clock.type!==`24h`&&!YG(this.core.options)&&(this.managers.events.handleAmClick(),this.managers.events.handlePmClick()),this.core.options.behavior.focusTrap&&!QG(this.core.options)&&this.managers.events.focusTrapHandler(),ZG(this.core.options)||(this.managers.events.handleEscClick(),XG(this.core.options)||e&&this.core.options.wheel?.ignoreOutsideClick||this.managers.events.handleBackdropClick())}initRipple(){let e=this.core.getModalElement();e&&(this.rippleCleanup(),this.rippleCleanup=qY(e))}revealClockFace(e,t){let n=e?null:this.core.getClockFace();n&&(t?n.classList.add(`scale-in`):typeof requestAnimationFrame<`u`&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{n.classList.add(`scale-in`)})}))}releaseRipple(){this.rippleCleanup(),this.rippleCleanup=()=>{}}clearUnmountTimeouts(){this.unmountTimeouts.forEach(clearTimeout),this.unmountTimeouts=[]}},ZY=class{events=new Map;on(e,t){this.events.has(e)||this.events.set(e,new Set);let n=t;return this.events.get(e).add(n),()=>{this.events.get(e)?.delete(n)}}once(e,t){let n=(r=>{t(r),this.events.get(e)?.delete(n)});return n.__originalHandler=t,this.on(e,n)}off(e,t){if(!t){this.events.delete(e);return}let n=this.events.get(e);n&&n.forEach(e=>{(e===t||e.__originalHandler===t)&&n.delete(e)})}emit(e,t){let n=this.events.get(e);n&&[...n].forEach(e=>{e(t)})}clear(){this.events.clear()}hasListeners(e){return(this.events.get(e)?.size??0)>0}},QY=e=>e.replace(/[^0-9:APMapm\s]/g,``),$Y={"12h":`Invalid 12h format. Expected HH:MM AM/PM`,"24h":`Invalid 24h format. Expected HH:MM`},eX={"12h":`24h`,"24h":`12h`},tX=e=>({...e,type:e.type??`AM`}),nX=(e,t)=>!e||t===void 0?!1:($K(e,t),!0),rX=new Map,iX=class{core;managers;lifecycle;emitter;constructor(e,t){if(NK())throw Error(`TimepickerUI requires browser environment`);let n=this.resolveRootElement(e);if(!n)throw Error(`Input element not found`);let r=t?.behavior?.id,i=r||`tp-ui-${PJ()}`,a=GG(t||{});if((QG(a)||a.ui.inline?.enabled&&typeof t?.behavior?.focusTrap>`u`)&&(a.behavior.focusTrap=!1),a.ui.inline?.enabled){let{container:e,containerId:t}=a.ui.inline;if(!e&&!t)throw Error(`inline.container is required when inline mode is enabled`);if(!Nq(a.ui.inline))throw Error(`Inline container not found`)}this.emitter=new ZY,this.core=new UK(n,a,i,r);let o=this.core.getInput();if(o){let{type:e,showSeconds:t}=a.clock;AK(this.core,Xq(o,e,void 0,void 0,!!t))}this.managers=new RY(this.core,this.emitter),this.lifecycle=new XY(this.core,this.managers,this.emitter),this.managers.config.checkMobileOption(),this.managers.config.preventClockTypeByCurrentTime(),this.setupInternalEventListeners(),rX.set(this.core.instanceId,this)}setupInternalEventListeners(){this.emitter.on(`open:request`,()=>{this.core.isDestroyed||this.lifecycle.mount()}),this.emitter.on(`cancel`,()=>{this.core.isDestroyed||this.lifecycle.discardSelection()}),this.emitter.on(`confirm`,e=>{if(!this.core.isDestroyed){if(this.core.options.range?.enabled)return;this.writeInputValue(e),e.autoCommit||this.lifecycle.closeUnlessInline()}}),this.emitter.on(`update`,e=>{if(this.core.isDestroyed||this.core.options.range?.enabled)return;let{inline:t}=this.core.options.ui;!t?.enabled||!t.autoUpdate||this.writeInputValue(e)}),this.emitter.on(`range:confirm`,e=>{if(this.core.isDestroyed)return;let t=this.core.getInput();t&&(t.value=`${e.from} - ${e.to}`),this.lifecycle.closeUnlessInline()}),this.emitter.on(`select:am`,()=>this.emitter.emit(`select:period`,{type:`AM`})),this.emitter.on(`select:pm`,()=>this.emitter.emit(`select:period`,{type:`PM`}))}writeInputValue(e){!e.hour||!e.minutes||this.setInputText(aK(e,qG(this.core.options)))}setInputText(e){let t=this.core.getInput();t&&(t.value=e,this.managers.validation.removeErrorHandler())}create(){this.lifecycle.init(),this.core.options.ui.inline?.enabled&&this.lifecycle.mount()}open(e){this.lifecycle.mount(),e&&e()}close(e,t){if(e){this.lifecycle.unmount(t,!0);return}this.lifecycle.unmount(),t&&t()}destroy(e){rX.delete(this.core.instanceId),this.lifecycle.destroy(e)}update(e,t){this.core.isDestroyed||this.lifecycle.applyOptions(e.options)&&(this.core.isOpen&&this.lifecycle.rerender(),e.create&&this.create(),t&&t())}setOptions(e){this.update({options:e})}getValue(){if(this.core.isDestroyed)return{hour:``,minutes:``,type:void 0,time:``,degreesHours:null,degreesMinutes:null};let e=qG(this.core.options),t={hour:`12`,minutes:`00`,seconds:e.showSeconds?`00`:void 0,type:e.clockType===`24h`?void 0:`AM`},n=this.core.getModalElement(),r=this.core.getInput(),i=t;n&&this.core.isOpen?i=this.readOpenValue(e.clockType,t):r&&(i=Xq(r,this.core.options.clock.type,void 0,void 0,e.showSeconds));let{degreesHours:a,degreesMinutes:o}=n||r?uK(i):{degreesHours:null,degreesMinutes:null},s={hour:i.hour,minutes:i.minutes,type:i.type,time:aK(i,e),degreesHours:a,degreesMinutes:o};return e.showSeconds&&(s.seconds=i.seconds??t.seconds),s}readOpenValue(e,t){let n=t=>{if(e!==`24h`)return t??`AM`};if(YG(this.core.options)){let e=this.managers.getPlugin(`wheel`)?.getSelection?.();return e?{hour:e.hour,minutes:e.minutes,seconds:e.seconds??t.seconds,type:n(e.type)}:t}return{hour:this.core.getHour()?.value||t.hour,minutes:this.core.getMinutes()?.value||t.minutes,seconds:this.core.getSeconds()?.value||t.seconds,type:n(this.core.getActiveType())}}setValue(e,t=!0){if(this.core.isDestroyed||typeof e!=`string`||!e.trim()||!this.core.isInitialized&&(this.create(),this.core.isDestroyed))return;let n=DK(this.core,QY(e.trim()));if(!n){this.emitter.emit(`error`,OK(this.core));return}let{parsed:r,inputText:i}=n;kK(this.core,r),jK(this.core,r.type),t&&this.setInputText(i),MK(this.core,this.managers,r)}resolveRangeApi(){return hq.has(`range`)?this.core.options.range?.enabled?this.managers.getPlugin(`range`)||(this.emitter.emit(`error`,TK(`RangePlugin`)),null):(this.emitter.emit(`error`,{error:`range.enabled is false: enable range mode to use the range API`}),null):(this.emitter.emit(`error`,TK(`RangePlugin`)),null)}setRange(e,t=!0){if(this.core.isDestroyed)return;let n=this.resolveRangeApi();n&&(!this.core.isInitialized&&(this.create(),this.core.isDestroyed)||n.setRange(e?.from,e?.to,t)||this.emitter.emit(`error`,{error:`Invalid range time. Expected "from" and "to" in the setValue format, got "${e?.from}" and "${e?.to}"`}))}getRange(){return this.core.isDestroyed?null:this.resolveRangeApi()?.getRange()??null}setActivePart(e){return this.core.isDestroyed?!1:this.resolveRangeApi()?.setActivePart(e,{focus:!1})??!1}refreshDisabledTime(){this.core.isDestroyed||this.lifecycle.refreshDisabledTime()}getElement(){return this.core.element}get instanceId(){return this.core.instanceId}get options(){return this.core.options}get isInitialized(){return this.core.isInitialized}get isDestroyed(){return this.core.isDestroyed}get hour(){return this.core.getHour()}get minutes(){return this.core.getMinutes()}get okButton(){return this.core.getOkButton()}get cancelButton(){return this.core.getCancelButton()}get clockHand(){return this.core.getClockHand()}on(e,t){return this.core.isDestroyed?()=>{}:this.emitter.on(e,t)}once(e,t){return this.core.isDestroyed?()=>{}:this.emitter.once(e,t)}off(e,t){this.core.isDestroyed||this.emitter.off(e,t)}resolveRootElement(e){if(PK()===!1)return null;let t=typeof e==`string`?document.querySelector(e):e;if(!(t instanceof HTMLElement))return null;if(t.tagName!==`INPUT`)return t.querySelector(`input`)?(t.classList.add(`tp-ui`),t):null;let n=t.parentElement;if(n?.classList.contains(`tp-ui`))return n;let r=document.createElement(`div`);return r.className=`tp-ui`,t.before(r),r.appendChild(t),r}static getById(e){return rX.get(e)}static getAllInstances(){return Array.from(rX.values())}static isAvailable(e){return NK()?!1:typeof e==`string`?document.querySelector(e)!==null:e instanceof HTMLElement&&document.contains(e)}static destroyAll(){Array.from(rX.values()).forEach(e=>e.destroy()),rX.clear()}},aX=iX,oX=aX})),cX=_({RangeManager:()=>$X,RangePlugin:()=>eZ});function lX(e,t){let n=e.trim().match(t.clockType===`12h`?DX:OX);if(!n)return null;let r={hour:AX(n[1]),minutes:AX(n[2])};return t.showSeconds&&(r.seconds=AX(n[3]??`0`)),t.clockType===`12h`&&(r.type=n[4].toUpperCase()),r}function uX(e){return kX.test(e)}function dX(e,t){let n=`${AX(e.hour)}:${AX(e.minutes)}`,r=t.showSeconds?`${n}:${AX(e.seconds??`0`)}`:n;return t.clockType===`12h`&&e.type?`${r} ${e.type}`:r}function fX(e,t,n){return n===`24h`?{hour:AX(e),...t,type:void 0}:{hour:AX(e%12||12),...t,type:e>=12?`PM`:`AM`}}function pX(e,t,n){let r=jX(parseInt(e.hour,10),e.type,t),i=n.showSeconds?AX(e.seconds??`0`):void 0;return fX(r,{minutes:e.minutes,seconds:i},n.clockType)}function mX(e,t){let n=parseInt(e.hour,10),r=parseInt(e.minutes,10),i=parseInt(e.seconds??`0`,10);return Number.isNaN(n)||Number.isNaN(r)||Number.isNaN(i)?0:jX(n,e.type,t)*3600+r*60+i}function hX(e=!1){return e?`--:--:--`:`--:--`}function gX(e,t=!1){if(!e||NX(e))return null;let n=n=>lX(e,{clockType:n,showSeconds:t});return n(`12h`)??n(`24h`)}function _X(e,t=!1){let n=`${e.hour}:${AX(e.minutes)}`,r=t?`${n}:${AX(e.seconds??`0`)}`:n;return e.type?`${r} ${e.type}`:r}function vX(e,t=!1){return e?_X(e,t):hX(t)}function yX(e,t,n){return!e||!t?0:mX(t,n)-mX(e,n)}function bX(e,t,n){return Math.floor(yX(e,t,n)/60)}function xX(e,t){return e?t===`12h`?!!(e.hour&&e.minutes&&e.type):!!(e.hour&&e.minutes):!1}function SX(e,t=!1){if(!e||!e.includes(` - `))return{from:null,to:null};let n=e.split(` - `).map(e=>e.trim());return n.length!==2||n.some(NX)?{from:null,to:null}:{from:gX(n[0],t),to:gX(n[1],t)}}function CX(e){return e.clock.type===`24h`?`24h`:`12h`}function wX(e){return{clockType:CX(e),showSeconds:!!e.clock.showSeconds}}function TX(e){let t={hour:e.getHour()?.value,minutes:e.getMinutes()?.value,type:e.getActiveType()};return e.options.clock.showSeconds&&(t.seconds=e.getSeconds()?.value??`00`),t}function EX(e,t,n,r){e.on(n,r),t.push(()=>e.off(n,r))}function Kee(e,t){let n=wX(e.options),r=lX(t,n);if(r){let e=n.showSeconds||uX(t)?dX(r,n):t;return{parsed:QX(r),inputText:e}}let i=ZX[n.clockType],a=lX(t,{...n,clockType:i});if(!a)return null;let o=pX(a,i,n);return{parsed:QX(o),inputText:dX(o,n)}}var DX,OX,kX,AX,jX,MX,NX,PX,FX,IX,LX,RX,zX,BX,VX,HX,UX,WX,GX,KX,qX,JX,YX,XX,ZX,QX,$X,eZ,tZ=h((()=>{DX=/^(0?[1-9]|1[0-2]):([0-5]?\d)(?::([0-5]?\d))?\s*(AM|PM)$/i,OX=/^([01]?\d|2[0-3]):([0-5]?\d)(?::([0-5]?\d))?$/,kX=/^\s*\d{1,2}:\d{1,2}:\d{1,2}/,AX=e=>String(e).padStart(2,`0`),jX=(e,t,n)=>{if(n!==`12h`||!t)return e;let r=t.toUpperCase();return r===`PM`&&e!==12?e+12:r===`AM`&&e===12?0:e},MX=`--`,NX=e=>e.startsWith(MX),PX=e=>Array.from({length:e},(e,t)=>AX(t)),FX=class{activePart=`from`;fromValue=null;toValue=null;previewValue=null;clockType;minDuration;maxDuration;emitter;showSeconds;linked;chosenFields=new Set;constructor(e,t,n,r,i=!1,a=!0){this.clockType=e,this.minDuration=t,this.maxDuration=n,this.emitter=r,this.showSeconds=i,this.linked=a}getActivePart(){return this.activePart}getFromValue(){return this.fromValue}getToValue(){return this.toValue}getPreviewValue(){return this.previewValue}setFromValue(e){this.fromValue=e}setToValue(e){this.toValue=e}setPreviewValue(e){this.previewValue=e}isFromComplete(){return xX(this.fromValue,this.clockType)}isToComplete(){return xX(this.toValue,this.clockType)}canSwitchToEnd(){return!this.linked||this.isFromComplete()}getCompletePreview(e){let t=this.previewValue;if(!t||this.activePart!==e)return null;let n=[t.minutes,t.seconds??``].some(NX);return xX(t,this.clockType)&&!n?t:null}getPendingFrom(){return this.isFromComplete()?null:this.getCompletePreview(`from`)}canConfirm(){let e=this.chosenFields.size>0?this.getCompletePreview(`to`):null,t=this.isFromComplete()&&this.isToComplete()?this.toValue:null;if(!this.linked)return this.isFromComplete()&&(e??t)!==null;let n=yX(this.fromValue,e??t,this.clockType);return n>0&&this.isWithinLimits(n)}isWithinLimits(e){let t=this.minDuration!==void 0&&e<this.minDuration*60,n=this.maxDuration!==void 0&&e>this.maxDuration*60;return!t&&!n}setActivePart(e){if(this.chosenFields.clear(),e===`to`&&!this.canSwitchToEnd())return!1;let t=this.activePart!==e;return this.activePart=e,t&&(this.previewValue=null),t}getSavedValue(){return this.activePart===`from`?this.fromValue:this.toValue}commitPreview(){this.previewValue&&=(this.activePart===`from`?this.fromValue=this.previewValue:this.toValue=this.previewValue,null)}getDurationSeconds(){return yX(this.fromValue,this.toValue,this.clockType)}getDuration(){return bX(this.fromValue,this.toValue,this.clockType)}validate(){if(!this.fromValue||!this.toValue)return{valid:!0,duration:0};let e=this.getDuration(),t=this.getDurationSeconds(),n=!this.linked||this.isWithinLimits(t),r=this.showSeconds?{valid:n,duration:e,durationSeconds:t}:{valid:n,duration:e};return this.emitter.emit(`range:validation`,{...r,minDuration:this.minDuration,maxDuration:this.maxDuration}),r}getDisabledTimeForEndPart(){if(!this.linked||this.activePart===`from`||!this.fromValue||!this.isFromComplete())return null;let e=parseInt(this.fromValue.hour,10),t=parseInt(this.fromValue.minutes,10),n={hours:[],minutes:PX(t),fromHour:e};return this.clockType===`24h`?n.hours=PX(e):n.fromType=this.fromValue.type,this.showSeconds&&(n.seconds=PX(parseInt(this.fromValue.seconds??`0`,10)),n.fromMinute=t),n}reset(){this.activePart=`from`,this.fromValue=null,this.toValue=null,this.previewValue=null,this.chosenFields.clear()}},IX=(e,t,n)=>{e?.classList.toggle(t,n)},LX=(e,t,n)=>{n?e.getAttribute(t)!==n&&e.setAttribute(t,n):e.removeAttribute(t)},RX=(e,t)=>{e&&LX(e,`aria-pressed`,String(t))},zX=(e,t)=>{IX(e,`active`,t),RX(e,t)},BX=(e,t,n)=>{zX(e,n===`AM`),zX(t,n===`PM`)},VX=[`aria-label`,`aria-valuemin`,`aria-valuemax`,`aria-valuenow`,`aria-valuetext`],HX=e=>{if(!e)return;let t=e.querySelector(`.tp-ui-clock-face`);if(!t)return;let n=e.querySelector(`input.active`)??e.querySelector(`.tp-ui-hour`);VX.forEach(e=>LX(t,e,n?.getAttribute(e)))},UX=(e,t)=>{if(!e)return;e.value=t;let n=parseInt(t,10),r=!Number.isNaN(n);LX(e,`aria-valuenow`,r&&String(n)),LX(e,`aria-valuetext`,r&&t),HX(e.closest(`.tp-ui-modal`))},WX={hour:{input:`getHour`,event:`select:hour`,announce:`announceHour`},minutes:{input:`getMinutes`,event:`select:minute`,announce:`announceMinute`},seconds:{input:`getSeconds`,event:`select:second`,announce:`second`}},GX=[`hour`,`minutes`,`seconds`],KX=(e,t)=>e[WX[t].input](),qX=(e,t,n)=>{e.emit(WX[t].event,{[t]:n})},JX=(e,t)=>{GX.forEach(n=>IX(KX(e,n),`active`,n===t)),HX(e.getModalElement())},YX=class{core;state;constructor(e,t){this.core=e,this.state=t}updateTabs(){let e=this.core.getModalElement();if(!e)return;let t=e.querySelector(`.tp-ui-range-tab.tp-ui-range-from`),n=e.querySelector(`.tp-ui-range-tab.tp-ui-range-to`),r=this.state.getActivePart()===`from`,i=this.state.canSwitchToEnd()||this.state.getPendingFrom()!==null;t?.classList.toggle(`active`,r),n?.classList.toggle(`active`,!r),n?.classList.toggle(`disabled`,!i),t?.setAttribute(`aria-selected`,String(r)),n?.setAttribute(`aria-selected`,String(!r)),n?.setAttribute(`aria-disabled`,String(!i)),t?.setAttribute(`tabindex`,r?`0`:`-1`),n?.setAttribute(`tabindex`,r||!i?`-1`:`0`)}updateTimeDisplay(){let e=this.core.getModalElement();if(!e)return;let t=e.querySelector(`.tp-ui-range-from-time`),n=e.querySelector(`.tp-ui-range-to-time`),r=this.state.getActivePart(),i=this.state.getPreviewValue(),a=(e,t)=>r===e&&i?i:t;this.renderTime(t,a(`from`,this.state.getFromValue())),this.renderTime(n,a(`to`,this.state.getToValue()))}renderTime(e,t){if(!e)return;let{showSeconds:n}=this.state;t?(e.textContent=_X(t,n),e.removeAttribute(`aria-hidden`)):(e.textContent=hX(n),e.setAttribute(`aria-hidden`,`true`))}updateOkButton(){let e=this.core.getOkButton();if(!e)return;let t=this.state.canConfirm();e.classList.toggle(`disabled`,!t),e.setAttribute(`aria-disabled`,String(!t))}updateInputValue(){let e=this.core.getInput();if(!e)return;let{showSeconds:t}=this.state;e.value=`${vX(this.state.getFromValue(),t)} - ${vX(this.state.getToValue(),t)}`}syncClockToActivePart(){let{hourInput:e,minutesInput:t,secondsInput:n}=this.writeActivePartValues();[t,n].forEach(e=>{e?.blur(),e?.classList.remove(`active`)}),e&&e.click()}showActivePartHours(){let{hourInput:e}=this.writeActivePartValues();return e&&JX(this.core,`hour`),e}writeActivePartValues(){let e=this.state.getSavedValue(),t=this.core.getHour(),n=this.core.getMinutes(),r=this.state.showSeconds?this.core.getSeconds():null;return UX(t,e?.hour??`12`),UX(n,e?.minutes??`00`),UX(r,e?.seconds??`00`),this.core.options.clock.type===`12h`&&BX(this.core.getAM(),this.core.getPM(),e?.type),{hourInput:t,minutesInput:n,secondsInput:r}}updateAll(){this.updateTabs(),this.updateTimeDisplay(),this.updateOkButton()}},XX=e=>e.replace(/[^0-9:APMapm\s]/g,``),ZX={"12h":`24h`,"24h":`12h`},QX=e=>({...e,type:e.type??`AM`}),$X=class{core;emitter;state;ui;cleanupHandlers=[];isSyncingAmPm=!1;isBound=!1;pendingRange=null;pendingPart=null;constructor(e,t){this.core=e,this.emitter=t,this.createState()}get isEnabled(){return this.core.options.range?.enabled===!0}get isLive(){return this.isBound&&this.core.isOpen}createState(){let{range:e,clock:t}=this.core.options;this.state=new FX(t.type,e?.minDuration,e?.maxDuration,this.emitter,t.showSeconds===!0,e?.linked!==!1),this.ui=new YX(this.core,this.state)}init(){if(this.releaseHandlers(),!this.isEnabled)return;this.createState();let{from:e,to:t}=this.readInitialRange();this.state.setFromValue(e),this.state.setToValue(t),this.bindEvents(),this.isBound=!0,this.applyPendingPart(),this.ui.syncClockToActivePart(),this.emitAmPmSyncEvent(),this.ui.updateAll()}readInitialRange(){let e=this.core.getInput()?.value||``,t=this.pendingRange;if(t&&t.inputValue===e){let e=this.parseEnd(t.from),n=this.parseEnd(t.to);if(e&&n)return{from:e,to:n}}return this.pendingRange=null,SX(e,this.state.showSeconds)}applyPendingPart(){let e=this.pendingPart;this.pendingPart=null,e&&this.state.setActivePart(e)&&this.emitter.emit(`range:switch`,{active:e,disabledTime:this.state.getDisabledTimeForEndPart()})}getActivePart(){return this.state.getActivePart()}setActivePart(e,t={}){if(!this.isEnabled)return!1;if(t.focus===!1&&!this.isLive){this.state.setActivePart(e);let t=this.state.getActivePart()===e;return this.pendingPart=t?e:null,t}return this.state.setActivePart(e)&&this.emitter.emit(`range:switch`,{active:e,disabledTime:this.state.getDisabledTimeForEndPart()}),t.focus===!1?this.syncClockWithoutFocus():this.ui.syncClockToActivePart(),this.emitAmPmSyncEvent(),this.ui.updateAll(),this.state.getActivePart()===e}setRange(e,t,n){if(!this.isEnabled)return!1;let r=this.parseEnd(e),i=this.parseEnd(t);return!r||!i?!1:(this.state.setFromValue(r),this.state.setToValue(i),this.state.setPreviewValue(null),this.state.chosenFields.clear(),n&&this.ui.updateInputValue(),this.pendingRange={from:e,to:t,inputValue:this.core.getInput()?.value||``},this.isLive&&this.syncOpenRange(),this.state.validate(),this.ui.updateAll(),!0)}getRange(){return{from:this.state.isFromComplete()?this.copyValue(this.state.getFromValue()):null,to:this.state.isToComplete()?this.copyValue(this.state.getToValue()):null}}copyValue(e){return e?{...e}:null}parseEnd(e){if(typeof e!=`string`||!e.trim())return null;let t=Kee(this.core,XX(e.trim()));if(!t)return null;let{hour:n,minutes:r,seconds:i,type:a}=t.parsed,o={hour:n,minutes:r};return this.core.options.clock.showSeconds===!0&&(o.seconds=i??`00`),this.core.options.clock.type===`12h`&&(o.type=a),o}syncOpenRange(){let e=this.state.getDisabledTimeForEndPart();this.state.getActivePart()===`to`&&e&&this.emitter.emit(`range:switch`,{active:`to`,disabledTime:e}),this.syncClockWithoutFocus(),this.emitAmPmSyncEvent()}syncClockWithoutFocus(){let e=this.ui.showActivePartHours();e&&(qX(this.emitter,`hour`,e.value),this.emitter.emit(`update`,TX(this.core)))}getFromValue(){return this.state.getFromValue()}getToValue(){return this.state.getToValue()}getDisabledTimeForEndPart(){return this.isEnabled?this.state.getDisabledTimeForEndPart():null}getDuration(){return this.state.getDuration()}validateRange(){return this.isEnabled?this.state.validate():{valid:!0,duration:0}}canConfirm(){return!this.isEnabled||this.state.canConfirm()}getFormattedRange(){let e=this.state.getFromValue(),t=this.state.getToValue();if(!e||!t)return null;let{showSeconds:n}=this.state;return{from:_X(e,n),to:_X(t,n)}}bindEvents(){let e=this.core.getModalElement();if(!e)return;let t=e.querySelector(`.tp-ui-range-tab.tp-ui-range-from`),n=e.querySelector(`.tp-ui-range-tab.tp-ui-range-to`);this.listen(t,`click`,()=>this.activatePart(`from`,t)),this.listen(n,`click`,()=>this.activatePart(`to`,n)),this.bindTabKeyboard(t,n),this.bindFieldChoice(`hour`,this.core.getHour()),this.bindFieldChoice(`minutes`,this.core.getMinutes()),this.bindFieldChoice(`seconds`,this.state.showSeconds?this.core.getSeconds():null),EX(this.emitter,this.cleanupHandlers,`update`,e=>this.handleUpdate(e?.hour)),EX(this.emitter,this.cleanupHandlers,`range:minute:commit`,e=>this.handleMinuteCommit(e)),EX(this.emitter,this.cleanupHandlers,`confirm`,()=>this.handleConfirm()),EX(this.emitter,this.cleanupHandlers,`select:am`,()=>this.handleAmPm()),EX(this.emitter,this.cleanupHandlers,`select:pm`,()=>this.handleAmPm()),EX(this.emitter,this.cleanupHandlers,`clear`,()=>this.handleClear())}listen(e,t,n){e&&(e.addEventListener(t,n),this.cleanupHandlers.push(()=>e.removeEventListener(t,n)))}bindFieldChoice(e,t){this.listen(t,`keydown`,()=>this.state.chosenFields.add(e)),this.listen(t,`blur`,()=>{this.state.chosenFields.has(e)&&this.handleUpdate(this.state.getPreviewValue()?.hour)})}isTabDisabled(e){return!e||e.getAttribute(`aria-disabled`)===`true`||e.classList.contains(`disabled`)}activatePart(e,t){if(!this.core.isOpen||this.isTabDisabled(t))return;let n=e===`to`?this.state.getPendingFrom():null;n?this.handleMinuteCommit(n):this.setActivePart(e)}bindTabKeyboard(e,t){let n=[e,t].filter(e=>e!==null);n.length!==0&&n.forEach((e,t)=>{let r=t===0?`from`:`to`;this.listen(e,`keydown`,i=>{switch(i.key){case`ArrowRight`:case`ArrowLeft`:{i.preventDefault();let e=((i.key===`ArrowRight`?t+1:t-1)+n.length)%n.length,r=n[e];this.isTabDisabled(r)||r.focus();break}case`Home`:i.preventDefault(),n[0].focus();break;case`End`:i.preventDefault(),n[n.length-1].focus();break;case`Enter`:case` `:i.preventDefault(),this.activatePart(r,e)}})})}handleClear(){this.isEnabled&&(this.reset(),this.emitter.emit(`range:switch`,{active:`from`,disabledTime:null}),this.ui.updateAll(),this.focusHour())}focusHour(){this.core.getHour()?.focus()}handleUpdate(e){this.isEnabled&&(this.state.setPreviewValue(e===void 0?null:this.buildPreview(e)),this.ui.updateAll())}buildPreview(e){let t=this.state.getSavedValue()?.minutes,n=!!t&&!NX(t),r=(e,t)=>(n||this.state.chosenFields.has(e))&&t?.value||MX;return{hour:e,minutes:r(`minutes`,this.core.getMinutes()),seconds:this.state.showSeconds?r(`seconds`,this.core.getSeconds()):void 0,type:this.core.options.clock.type===`12h`?this.core.getActiveType():void 0}}handleMinuteCommit(e){if(!this.isEnabled)return;let t={hour:e.hour,minutes:e.minutes,seconds:e.seconds,type:e.type??void 0};this.state.getActivePart()===`from`?(this.state.setFromValue(t),this.state.setPreviewValue(null),this.state.isFromComplete()&&(this.state.setActivePart(`to`),this.emitter.emit(`range:switch`,{active:`to`,disabledTime:this.state.getDisabledTimeForEndPart()}),this.ui.syncClockToActivePart(),this.emitAmPmSyncEvent(),this.focusHour())):(this.state.setToValue(t),this.state.setPreviewValue(null)),this.state.validate(),this.ui.updateAll()}handleAmPm(){if(!this.isEnabled||this.isSyncingAmPm||this.core.options.clock.type!==`12h`)return;let e=this.core.getActiveType();if(e){if(this.state.getActivePart()===`from`){let t=this.state.getFromValue();t&&(this.state.setFromValue({...t,type:e}),this.state.isFromComplete()&&(this.state.setActivePart(`to`),this.state.setPreviewValue(null),this.emitter.emit(`range:switch`,{active:`to`,disabledTime:this.state.getDisabledTimeForEndPart()}),this.ui.syncClockToActivePart(),this.emitAmPmSyncEvent()))}else{let t=this.state.getToValue();t&&this.state.setToValue({...t,type:e}),this.emitter.emit(`range:switch`,{active:`to`,disabledTime:this.state.getDisabledTimeForEndPart()})}this.state.validate(),this.ui.updateAll()}}emitAmPmSyncEvent(){if(this.core.options.clock.type!==`12h`)return;let e=this.state.getSavedValue();if(e?.type){this.isSyncingAmPm=!0;try{e.type===`AM`?this.emitter.emit(`select:am`,{}):e.type===`PM`&&this.emitter.emit(`select:pm`,{})}finally{this.isSyncingAmPm=!1}}}handleConfirm(){if(!this.isEnabled)return;this.state.commitPreview(),this.pendingRange=null;let{showSeconds:e}=this.state,t={from:vX(this.state.getFromValue(),e),to:vX(this.state.getToValue(),e),duration:this.state.getDuration()};e&&(t.durationSeconds=this.state.getDurationSeconds()),this.ui.updateInputValue(),this.emitter.emit(`range:confirm`,t)}reset(){this.state.reset(),this.pendingRange=null,this.pendingPart=null}destroy(){this.releaseHandlers(),this.reset()}releaseHandlers(){this.cleanupHandlers.forEach(e=>e()),this.cleanupHandlers=[],this.isBound=!1}},eZ={name:`range`,factory:(e,t)=>new $X(e,t)}})),nZ,rZ,iZ,aZ=!1;async function oZ(){if(!nZ){let e=await Promise.resolve().then(()=>(sX(),HG));nZ=e.TimepickerUI,rZ=e.PluginRegistry,iZ=(await Promise.resolve().then(()=>(tZ(),cX))).RangePlugin,!aZ&&rZ&&iZ&&(rZ.register(iZ),aZ=!0)}}var sZ=class{constructor(e){if(this.config={dayStartTime:`00:00`,dayEndTime:`23:59`,minuteIncrement:5,clockType:`12h`,...e},this.selectedStart=this.extractTimeAsHHMM(e.startTime),e.endTime)this.selectedEnd=this.extractTimeAsHHMM(e.endTime);else{let e=new Date(`2000-01-01T${this.selectedStart}:00Z`),n=new Date(e.getTime()+36e5);this.selectedEnd=t.tools.dateTime.extractTime(n.toISOString())}this.inputElement=document.createElement(`input`),this.container=this.createUI()}extractTimeAsHHMM(e){return e.includes(`T`)?t.tools.dateTime.extractTime(e):e}createUI(){let e=document.createElement(`div`);return e.style.cssText=`
|
|
232
232
|
position: fixed;
|
|
233
233
|
left: -9999px;
|
|
234
234
|
top: -9999px;
|
|
@@ -244,8 +244,8 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
244
244
|
`,i.addEventListener(`mouseenter`,()=>{i.style.background=xZ,i.style.color=SZ}),i.addEventListener(`mouseleave`,()=>{i.style.background=`transparent`,i.style.color=``}),i.addEventListener(`click`,()=>{e.onTypeSelected(r.type),n()}),t.appendChild(i)}if(e.onAdjustTime||e.onDelete){let e=document.createElement(`div`);e.style.cssText=`border-top:1px solid var(--chc-border-primary); margin:4px 0;`,t.appendChild(e)}if(e.onAdjustTime){let r=document.createElement(`div`);r.style.cssText=bZ,r.innerHTML=`<span style="font-size:14px;">🕓</span> Adjust Time`,r.addEventListener(`mouseenter`,()=>{r.style.background=xZ,r.style.color=SZ}),r.addEventListener(`mouseleave`,()=>{r.style.background=`transparent`,r.style.color=``}),r.addEventListener(`click`,()=>{let t=e.onAdjustTime;n(),e.startTime&&e.endTime&&cZ({startTime:e.startTime,endTime:e.endTime,dayStartTime:`06:00`,dayEndTime:`22:00`,minuteIncrement:5,onConfirm:(e,n)=>t(e,n),onCancel:()=>{}})}),t.appendChild(r)}if(e.onDelete){let r=document.createElement(`div`);r.style.cssText=`padding:6px 12px; cursor:pointer; display:flex; align-items:center; gap:8px; color:#e74c3c;`,r.innerHTML=`<span style="font-size:14px;">🗑</span> Delete`,r.addEventListener(`mouseenter`,()=>{r.style.background=`#fdecea`}),r.addEventListener(`mouseleave`,()=>{r.style.background=`transparent`}),r.addEventListener(`click`,()=>{let t=e.onDelete;n(),t()}),t.appendChild(r)}return t}function i(e){let{blockId:t,engine:r,day:i,onBlockChanged:o,onManageRegistrations:s}=e,c=document.createElement(`div`);c.style.cssText=`font-family:sans-serif; font-size:13px; min-width:150px;`;for(let[e,a]of CZ){let s=lZ[e],l=document.createElement(`div`);l.style.cssText=bZ,l.innerHTML=`
|
|
245
245
|
<span style="width:10px;height:10px;border-radius:2px;background:${s};display:inline-block;"></span>
|
|
246
246
|
${a}
|
|
247
|
-
`,l.addEventListener(`mouseenter`,()=>{l.style.background=xZ,l.style.color=SZ}),l.addEventListener(`mouseleave`,()=>{l.style.background=`transparent`,l.style.color=``}),l.addEventListener(`click`,()=>{let s=r.getDayBlocks(i).find(e=>e.id===t);s&&(r.removeBlock(t),r.applyBlock({courts:[s.court],timeRange:{start:s.start,end:s.end},type:e,reason:a}),o()),n()}),c.appendChild(l)}let l=document.createElement(`div`);l.style.cssText=`border-top:1px solid var(--chc-border-primary); margin:4px 0;`,c.appendChild(l);let u=document.createElement(`div`);u.style.cssText=bZ,u.innerHTML=`<span style="font-size:14px;">🕓</span> Adjust Time`,u.addEventListener(`mouseenter`,()=>{u.style.background=xZ,u.style.color=SZ}),u.addEventListener(`mouseleave`,()=>{u.style.background=`transparent`,u.style.color=``}),u.addEventListener(`click`,()=>{n();let e=r.getDayBlocks(i).find(e=>e.id===t);e&&cZ({startTime:e.start,endTime:e.end,dayStartTime:`06:00`,dayEndTime:`22:00`,minuteIncrement:5,onConfirm:(n,i)=>{let a=e.start.slice(0,10);r.resizeBlock({blockId:t,newTimeRange:{start:`${a}T${n}:00`,end:`${a}T${i}:00`}}),o()},onCancel:()=>{}})}),c.appendChild(u);let d=r.getDayBlocks(i).find(e=>e.id===t);if(s&&d?.type===yZ.PRACTICE){let e=document.createElement(`div`);e.style.cssText=bZ,e.innerHTML=`<span style="font-size:14px;">👥</span> Manage Registrations`,e.addEventListener(`mouseenter`,()=>{e.style.background=xZ,e.style.color=SZ}),e.addEventListener(`mouseleave`,()=>{e.style.background=`transparent`,e.style.color=``}),e.addEventListener(`click`,()=>{n();let e=r.getDayBlocks(i).find(e=>e.id===t);e&&s({blockId:t,courtId:e.court.courtId,venueId:e.court.venueId,date:i,startTime:a(e.start),endTime:a(e.end)})}),c.appendChild(e)}let f=document.createElement(`div`);return f.style.cssText=`padding:6px 12px; cursor:pointer; display:flex; align-items:center; gap:8px; color:#e74c3c;`,f.innerHTML=`<span style="font-size:14px;">🗑</span> Delete`,f.addEventListener(`mouseenter`,()=>{f.style.background=`#fdecea`}),f.addEventListener(`mouseleave`,()=>{f.style.background=`transparent`}),f.addEventListener(`click`,()=>{r.removeBlock(t),o(),n()}),c.appendChild(f),c}function a(e){return(e.includes(`T`)?e.split(`T`)[1]:e).slice(0,5)}function o(r,i,a){n();let o=ly(r,{content:i,allowHTML:!0,interactive:!0,trigger:`manual`,placement:`bottom`,appendTo:document.body,onHidden:()=>{e=null,t=null}});e=o,t=a,o.show()}return{show(e,i){if(t===i.itemId){n();return}o(e,r(i),i.itemId)},showForEngineBlock(e,r){if(t===r.itemId){n();return}o(e,i(r),r.itemId)},destroy(){n()},isActiveFor(e){return t===e}}}var TZ=class{constructor(e,t,n){this._dailyStartMin=0,this._dailyEndMin=1440,this._useDailyBounds=!1,this._visibleDays=null,this._visibleDayMs=null,this._start=e.getTime(),this._end=t.getTime(),this._width=Math.max(n,1),this._min=this._start,this._max=this._end,this._zoomMin=9e5,this._zoomMax=(this._end-this._start)*2}get start(){return new Date(this._start)}get end(){return new Date(this._end)}get width(){return this._width}get duration(){return this._end-this._start}get msPerPx(){if(!this._useDailyBounds)return this.duration/this._width;let e=this.toCollapsedMin(new Date(this._start)),t=this.toCollapsedMin(new Date(this._end))-e;return t<=0?1:t*60*1e3/this._width}getDailyBounds(){return this._useDailyBounds?{startMin:this._dailyStartMin,endMin:this._dailyEndMin}:null}getVisibleDays(){return this._visibleDays}timeToX(e){if(!this._useDailyBounds)return(e.getTime()-this._start)/this.duration*this._width;let t=this.toCollapsedMin(e),n=this.toCollapsedMin(new Date(this._start)),r=this.toCollapsedMin(new Date(this._end))-n;return r<=0?0:(t-n)/r*this._width}xToTime(e){if(!this._useDailyBounds){let t=e/this._width*this.duration;return new Date(this._start+t)}let t=this.toCollapsedMin(new Date(this._start)),n=this.toCollapsedMin(new Date(this._end))-t;if(n<=0)return new Date(this._start);let r=t+e/this._width*n;return this.fromCollapsedMin(r)}snap(e,t){let n=e.getTime(),r=t*60*1e3;return new Date(Math.round(n/r)*r)}setWindow(e,t){this._start=e.getTime(),this._end=t.getTime(),this.clampBounds()}setLimits(e){e.min!==void 0&&(this._min=e.min.getTime()),e.max!==void 0&&(this._max=e.max.getTime()),e.zoomMin!==void 0&&(this._zoomMin=e.zoomMin),e.zoomMax!==void 0&&(this._zoomMax=e.zoomMax)}setWidth(e){this._width=Math.max(e,1)}setDailyBounds(e,t){let[n,r]=e.split(`:`).map(Number),[i,a]=t.split(`:`).map(Number);this._dailyStartMin=n*60+r,this._dailyEndMin=i*60+a,this._useDailyBounds=!0}clearDailyBounds(){this._useDailyBounds=!1,this._dailyStartMin=0,this._dailyEndMin=1440,this._visibleDays=null,this._visibleDayMs=null}setVisibleDays(e){this._visibleDays=e,this._visibleDayMs=e.map(e=>new Date(e+`T00:00:00`).getTime())}clearVisibleDays(){this._visibleDays=null,this._visibleDayMs=null}pan(e){if(this._visibleDays)return;if(this._useDailyBounds){let t=this.toCollapsedMin(new Date(this._start)),n=this.toCollapsedMin(new Date(this._end)),r=n-t;if(r<=0)return;let i=e/this._width*r,a=this.fromCollapsedMin(t+i),o=this.fromCollapsedMin(n+i);this._start=a.getTime(),this._end=o.getTime(),this.clampBounds();return}let t=e*this.msPerPx,n=this._start+t,r=this._end+t;if(n<this._min){let e=this._min-n;n+=e,r+=e}if(r>this._max){let e=r-this._max;n-=e,r-=e}this._start=n,this._end=r}zoom(e,t){if(this._visibleDays)return;if(this._useDailyBounds){let n=this.toCollapsedMin(new Date(this._start)),r=this.toCollapsedMin(new Date(this._end))-n,i=n+t/this._width*r,a=r*e,o=this._zoomMin/6e4,s=this._zoomMax/6e4;a=Math.max(o,Math.min(s,a));let c=t/this._width,l=this.fromCollapsedMin(i-a*c),u=this.fromCollapsedMin(i+a*(1-c));this._start=l.getTime(),this._end=u.getTime(),this.clampBounds();return}let n=this._start+t/this._width*this.duration,r=this.duration*e;r=Math.max(this._zoomMin,Math.min(this._zoomMax,r));let i=t/this._width;this._start=n-r*i,this._end=n+r*(1-i),this.clampBounds()}toCollapsedMin(e){let t=this._dailyEndMin-this._dailyStartMin;if(t<=0)return 0;let n=e.getHours()*60+e.getMinutes()+e.getSeconds()/60,r=Math.max(this._dailyStartMin,Math.min(this._dailyEndMin,n))-this._dailyStartMin;if(this._visibleDays&&this._visibleDayMs){let n=new Date(e);n.setHours(0,0,0,0);let i=n.getTime(),a=-1;for(let e=0;e<this._visibleDayMs.length;e++)if(this._visibleDayMs[e]===i){a=e;break}if(a===-1){if(i<this._visibleDayMs[0])return 0;if(i>this._visibleDayMs[this._visibleDayMs.length-1])return this._visibleDayMs.length*t;for(let e=0;e<this._visibleDayMs.length-1;e++)if(i>this._visibleDayMs[e]&&i<this._visibleDayMs[e+1])return(e+1)*t;return 0}return a*t+r}let i=new Date(this._start);i.setHours(0,0,0,0);let a=new Date(e);return a.setHours(0,0,0,0),Math.round((a.getTime()-i.getTime())/864e5)*t+r}fromCollapsedMin(e){let t=this._dailyEndMin-this._dailyStartMin;if(t<=0)return new Date(this._start);let n=Math.floor(e/t),r=e-n*t;if(this._visibleDays&&this._visibleDayMs){let e=Math.max(0,Math.min(n,this._visibleDayMs.length-1)),t=new Date(this._visibleDayMs[e]),i=this._dailyStartMin+r;return t.setHours(Math.floor(i/60),Math.round(i%60),0,0),t}let i=new Date(this._start);i.setHours(0,0,0,0);let a=new Date(i);a.setDate(a.getDate()+n);let o=this._dailyStartMin+r;return a.setHours(Math.floor(o/60),Math.round(o%60),0,0),a}clampBounds(){let e=this._end-this._start;this._start<this._min&&(this._start=this._min,this._end=this._min+e),this._end>this._max&&(this._end=this._max,this._start=this._max-e),this._start<this._min&&(this._start=this._min),this._end>this._max&&(this._end=this._max)}},EZ=`tg-tick-day`,DZ=`tg-tick-hour`,OZ=class{constructor(e,t){this.scale=e,this.tickConfig=kZ(t),this.dayEl=document.createElement(`div`),this.dayEl.className=`tg-day-axis`,this.dayEl.setAttribute(`role`,`presentation`),this.hourEl=document.createElement(`div`),this.hourEl.className=`tg-hour-axis`,this.hourEl.setAttribute(`role`,`presentation`),this.dayEl.addEventListener(`click`,e=>{let t=(e.target.closest?.(`.${EZ}`))?.dataset.day;t&&this.onDayClick&&this.onDayClick(t)})}getDayElement(){return this.dayEl}getHourElement(){return this.hourEl}setTimeAxisOptions(e){this.tickConfig=kZ(e)}render(){this.renderDayLabels(),this.renderHourTicks()}renderDayLabels(){this.dayEl.innerHTML=``;let{dayFormat:e}=this.tickConfig,t=this.tickConfig.scale,n=this.scale.getDailyBounds();if(n&&t===`hour`){this.renderDayLabelsWithBounds(n,e);return}if(t===`hour`){let t=this.scale.start.getTime(),n=jZ(t,this.scale.end.getTime());if(n.length===0){let n=new Date(t);n.setHours(0,0,0,0);let r=document.createElement(`div`);r.className=EZ,r.style.left=`0px`,r.style.maxWidth=`${this.scale.width}px`,r.dataset.day=AZ(n),r.textContent=e.format(n),this.dayEl.appendChild(r);return}for(let t of n){let n=this.scale.timeToX(t),r=document.createElement(`div`);r.className=EZ,r.style.left=`${n}px`,r.dataset.day=AZ(t),r.textContent=e.format(t),this.dayEl.appendChild(r)}}else if(t===`day`){let e=NZ(this.scale.start.getTime(),this.scale.end.getTime());for(let t of e){let e=this.scale.timeToX(t),n=document.createElement(`div`);n.className=EZ,n.style.left=`${e}px`,n.dataset.day=AZ(t),n.textContent=this.tickConfig.dayFormat.format(t),this.dayEl.appendChild(n)}}}renderDayLabelsWithBounds(e,t){let n=this.getVisibleDayDates(e),r=this.scale.getVisibleDays(),i=n.length,a=i>0?this.scale.width/i:this.scale.width,o=a<150?new Intl.DateTimeFormat(void 0,{weekday:`short`,day:`numeric`}):t;if(r&&r.length>0)for(let t of n){let n=new Date(t);n.setHours(0,0,0,0),n.setMinutes(e.startMin);let r=this.scale.timeToX(n),i=document.createElement(`div`);i.className=EZ,i.style.left=`${r}px`,i.style.maxWidth=`${Math.floor(a)-4}px`,i.dataset.day=AZ(t),i.textContent=o.format(n),this.dayEl.appendChild(i)}else{let t=this.scale.width;for(let r of n){let n=new Date(r);n.setHours(0,0,0,0),n.setMinutes(e.startMin);let i=new Date(r);i.setHours(0,0,0,0),i.setDate(i.getDate()+1),i.setMinutes(e.startMin);let a=this.scale.timeToX(n),s=this.scale.timeToX(i),c=Math.max(a,0),l=Math.min(s,t)-c;if(l<=0)continue;let u=document.createElement(`div`);u.className=EZ,u.style.left=`${c}px`,u.style.maxWidth=`${l}px`,u.dataset.day=AZ(r),u.textContent=o.format(n),this.dayEl.appendChild(u)}}}renderHourTicks(){this.hourEl.innerHTML=``;let{hourFormat:e}=this.tickConfig,t=this.tickConfig.scale,n=this.tickConfig.step,r=this.scale.getDailyBounds();if(r&&t===`hour`){this.renderHourTicksWithBounds(r,n,e);return}let i=this.scale.start.getTime(),a=this.scale.end.getTime();if(t===`hour`){let t=new Set(jZ(i,a).map(e=>e.getTime())),r=MZ(i,a,n);for(let n of r){if(t.has(n.getTime()))continue;let r=this.scale.timeToX(n),i=document.createElement(`div`);i.className=DZ,i.style.left=`${r}px`,i.textContent=e.format(n),this.hourEl.appendChild(i)}}else if(t===`day`){let e=new Set(NZ(i,a).map(e=>e.getTime())),t=jZ(i,a);for(let n of t){if(e.has(n.getTime()))continue;let t=this.scale.timeToX(n),r=document.createElement(`div`);r.className=DZ,r.style.left=`${t}px`,r.textContent=new Intl.DateTimeFormat(void 0,{weekday:`short`,day:`numeric`}).format(n),this.hourEl.appendChild(r)}}}renderHourTicksWithBounds(e,t,n){let r=this.getVisibleDayDates(e);for(let i of r){let r=new Date(i);r.setHours(0,0,0,0),r.setMinutes(e.startMin);let a=new Date(i);a.setHours(0,0,0,0),a.setMinutes(e.endMin);let o=Math.ceil(e.startMin/60),s=new Date(i);for(s.setHours(o,0,0,0),s.getHours()%t!==0&&s.setHours(s.getHours()+(t-s.getHours()%t));s.getTime()<=a.getTime();){if(s.getTime()!==r.getTime()){let e=this.scale.timeToX(s),t=document.createElement(`div`);t.className=DZ,t.style.left=`${e}px`,t.textContent=n.format(s),this.hourEl.appendChild(t)}s.setHours(s.getHours()+t)}}}getVisibleDayDates(e){let t=this.scale.getVisibleDays();if(t&&t.length>0)return t.map(e=>new Date(e+`T00:00:00`));let n=this.scale.start.getTime(),r=this.scale.end.getTime(),i=[],a=new Date(n);for(a.setHours(0,0,0,0);;){let t=new Date(a);if(t.setHours(0,0,0,0),t.setMinutes(e.endMin),t.getTime()<n){a.setDate(a.getDate()+1);continue}let o=new Date(a);if(o.setHours(0,0,0,0),o.setMinutes(e.startMin),o.getTime()>r)break;i.push(new Date(a)),a.setDate(a.getDate()+1)}return i}renderGridlines(e,t){e.querySelectorAll(`.tg-gridline`).forEach(e=>e.remove());let n=this.computeTickPositions();for(let{x:r,isMajor:i}of n){let n=document.createElement(`div`);n.className=i?`tg-gridline tg-gridline-major`:`tg-gridline`,n.style.left=`${r}px`,n.style.height=`${t}px`,e.appendChild(n)}}computeTickPositions(){let e=[],t=this.tickConfig.scale,n=this.tickConfig.step,r=this.scale.getDailyBounds(),i=this.scale.start.getTime(),a=this.scale.end.getTime();if(r&&t===`hour`){let t=this.getVisibleDayDates(r);for(let i of t){let t=new Date(i);t.setHours(0,0,0,0),t.setMinutes(r.startMin);let a=new Date(i);a.setHours(0,0,0,0),a.setMinutes(r.endMin),e.push({x:this.scale.timeToX(t),isMajor:!0});let o=Math.ceil(r.startMin/60),s=new Date(i);for(s.setHours(o,0,0,0),s.getHours()%n!==0&&s.setHours(s.getHours()+(n-s.getHours()%n));s.getTime()<=a.getTime();)s.getTime()!==t.getTime()&&e.push({x:this.scale.timeToX(s),isMajor:!1}),s.setHours(s.getHours()+n)}}else if(t===`hour`){let t=jZ(i,a),r=new Set(t.map(e=>e.getTime()));for(let n of t)e.push({x:this.scale.timeToX(n),isMajor:!0});for(let t of MZ(i,a,n))r.has(t.getTime())||e.push({x:this.scale.timeToX(t),isMajor:!1})}else if(t===`day`){let t=NZ(i,a),n=new Set(t.map(e=>e.getTime()));for(let n of t)e.push({x:this.scale.timeToX(n),isMajor:!0});for(let t of jZ(i,a))n.has(t.getTime())||e.push({x:this.scale.timeToX(t),isMajor:!1})}return e}destroy(){this.dayEl.remove(),this.hourEl.remove()}};function kZ(e){let t=e?.scale??`hour`,n=e?.step??1;switch(t){case`hour`:return{scale:t,step:n,hourFormat:new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`,hour12:!1}),dayFormat:new Intl.DateTimeFormat(void 0,{weekday:`short`,day:`numeric`,month:`short`})};case`day`:return{scale:t,step:n,hourFormat:new Intl.DateTimeFormat(void 0,{weekday:`short`,day:`numeric`}),dayFormat:new Intl.DateTimeFormat(void 0,{month:`long`,year:`numeric`})};default:return{scale:`hour`,step:1,hourFormat:new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`,hour12:!1}),dayFormat:new Intl.DateTimeFormat(void 0,{weekday:`short`,day:`numeric`,month:`short`})}}}function AZ(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function jZ(e,t){let n=[],r=new Date(e);for(r.setHours(0,0,0,0);r.getTime()<=t;)r.getTime()>=e&&n.push(new Date(r)),r.setDate(r.getDate()+1);return n}function MZ(e,t,n){let r=[],i=new Date(e);i.setMinutes(0,0,0);let a=i.getHours();for(i.setHours(a-a%n);i.getTime()<=t;)i.getTime()>=e&&r.push(new Date(i)),i.setHours(i.getHours()+n);return r}function NZ(e,t){let n=[],r=new Date(e);r.setHours(0,0,0,0);let i=r.getDay(),a=i===0?6:i-1;for(r.setDate(r.getDate()-a);r.getTime()<=t;)r.getTime()>=e&&n.push(new Date(r)),r.setDate(r.getDate()+7);return n}var PZ=class{constructor(e=40){this.groups=[],this.groupIndex=new Map,this.rowHeight=e,this.labelPanel=document.createElement(`div`),this.labelPanel.className=`tg-label-panel`,this.labelPanel.setAttribute(`role`,`rowheader`),this.contentArea=document.createElement(`div`),this.contentArea.className=`tg-content`,this.contentArea.setAttribute(`role`,`grid`)}getLabelPanel(){return this.labelPanel}getContentArea(){return this.contentArea}getRowHeight(){return this.rowHeight}getGroups(){return this.groups}getGroupCount(){return this.groups.length}getGroupAtIndex(e){return this.groups[e]}yToGroupId(e){let t=Math.floor(e/this.rowHeight);return t<0||t>=this.groups.length?null:this.groups[t].id}groupIdToRowIndex(e){return this.groupIndex.get(e)??-1}getRowRange(e,t){let n=Math.max(0,Math.floor(Math.min(e,t)/this.rowHeight)),r=Math.min(this.groups.length-1,Math.floor(Math.max(e,t)/this.rowHeight)),i=[];for(let e=n;e<=r;e++)i.push(this.groups[e].id);return i}getRowTop(e){return e*this.rowHeight}setGroups(e){this.groups=e.slice().sort((e,t)=>e.order!==void 0&&t.order!==void 0?e.order-t.order:e.order===void 0?t.order===void 0?e.content.localeCompare(t.content,void 0,{numeric:!0}):1:-1),this.groupIndex.clear();for(let e=0;e<this.groups.length;e++)this.groupIndex.set(this.groups[e].id,e)}render(){this.renderLabels(),this.renderRows()}renderLabels(){this.labelPanel.innerHTML=``;for(let e of this.groups){let t=document.createElement(`div`);t.className=`tg-label`,t.style.height=`${this.rowHeight}px`,t.textContent=e.content,t.title=e.content,t.dataset.groupId=e.id,this.labelPanel.appendChild(t)}}renderRows(){this.contentArea.querySelectorAll(`.tg-row`).forEach(e=>e.remove());for(let e=0;e<this.groups.length;e++){let t=document.createElement(`div`);t.className=`tg-row`,t.style.height=`${this.rowHeight}px`,t.style.top=`${e*this.rowHeight}px`,t.dataset.groupId=this.groups[e].id,this.contentArea.appendChild(t)}this.contentArea.style.height=`${this.groups.length*this.rowHeight}px`}destroy(){this.labelPanel.remove(),this.contentArea.remove()}},FZ=class{constructor(e,t){this.items=[],this.itemElements=new Map,this.ghostEl=null,this.ghostCountBadge=null,this.scale=e,this.layout=t,this.contentArea=t.getContentArea()}setItems(e){this.items=e}render(){for(let e of this.itemElements.values())e.remove();this.itemElements.clear(),this.contentArea.querySelectorAll(`[data-item-id]`).forEach(e=>{e.dataset.itemId!==`__ghost__`&&e.remove()});for(let e of this.items){let t=this.renderItem(e);t&&(this.contentArea.appendChild(t),this.itemElements.set(e.id,t))}}renderItem(e){let t=this.layout.groupIdToRowIndex(e.group);if(t===-1)return null;let n=e.start instanceof Date?e.start:new Date(e.start),r=e.end?e.end instanceof Date?e.end:new Date(e.end):n,i=this.scale.timeToX(n),a=this.scale.timeToX(r)-i,o=this.layout.getRowTop(t),s=this.layout.getRowHeight();if(a<.5)return null;let c=document.createElement(`div`);if(c.dataset.itemId=e.id,c.title=e.title||e.content,e.type===`background`||e.isSegment)c.className=`tg-item-background ${e.className||``}`.trim(),e.style&&(c.style.cssText=e.style),c.style.position=`absolute`,c.style.left=`${i}px`,c.style.top=`${o}px`,c.style.width=`${a}px`,c.style.height=`${s}px`,c.style.pointerEvents=`none`;else{c.className=`tg-item tg-item-range ${e.className||``}`.trim(),e.style&&(c.style.cssText+=e.style),c.style.position=`absolute`,c.style.left=`${i}px`,c.style.top=`${o+2}px`,c.style.width=`${a}px`,c.style.height=`${s-4}px`,c.style.cursor=`move`;let t=document.createElement(`span`);t.className=`tg-item-content`,t.textContent=e.content,c.appendChild(t);let n=document.createElement(`div`);n.className=`tg-resize-handle tg-resize-left`,n.dataset.handle=`left`,c.appendChild(n);let r=document.createElement(`div`);r.className=`tg-resize-handle tg-resize-right`,r.dataset.handle=`right`,c.appendChild(r)}return c}updateItemPosition(e,t,n,r){let i=this.itemElements.get(e);i&&(i.style.left=`${t}px`,i.style.top=`${n+2}px`,i.style.width=`${r}px`)}showGhost(e){if(!this.ghostEl){this.ghostEl=document.createElement(`div`),this.ghostEl.className=`tg-ghost`,this.ghostEl.dataset.itemId=`__ghost__`;for(let e of[`left`,`right`,`top`,`bottom`]){let t=document.createElement(`div`);t.className=`tg-resize-handle tg-resize-${e}`,t.dataset.handle=e,this.ghostEl.appendChild(t)}this.ghostCountBadge=document.createElement(`div`),this.ghostCountBadge.className=`tg-ghost-count`,this.ghostEl.appendChild(this.ghostCountBadge),this.contentArea.appendChild(this.ghostEl)}let t=this.scale.timeToX(e.startTime),n=this.scale.timeToX(e.endTime)-t,r=this.layout.getRowHeight(),i=e.topRowIndex*r,a=(e.bottomRowIndex-e.topRowIndex+1)*r,o=e.bottomRowIndex-e.topRowIndex+1;this.ghostEl.style.left=`${t}px`,this.ghostEl.style.top=`${i}px`,this.ghostEl.style.width=`${n}px`,this.ghostEl.style.height=`${a}px`,this.ghostEl.style.display=`block`,this.ghostCountBadge&&(this.ghostCountBadge.textContent=`${o} court${o>1?`s`:``}`,this.ghostCountBadge.style.display=o>1?`flex`:`none`)}clearGhost(){this.ghostEl&&(this.ghostEl.remove(),this.ghostEl=null,this.ghostCountBadge=null)}isGhostVisible(){return this.ghostEl!==null&&this.ghostEl.style.display!==`none`}highlightRows(e){this.clearHighlights();for(let t of e){let e=this.contentArea.querySelectorAll(`.tg-row`);e[t]&&e[t].classList.add(`tg-row-highlight`)}}clearHighlights(){this.contentArea.querySelectorAll(`.tg-row-highlight`).forEach(e=>{e.classList.remove(`tg-row-highlight`)})}static hitTest(e){if(!(e instanceof HTMLElement))return{itemId:null,handle:null};let t=e.closest(`.tg-resize-handle`)?.dataset.handle??null;return{itemId:e.closest(`[data-item-id]`)?.dataset.itemId??null,handle:t}}destroy(){this.clearGhost(),this.clearHighlights();for(let e of this.itemElements.values())e.remove();this.itemElements.clear()}},IZ=3,LZ=30,RZ=8,zZ=36e5,BZ=class{constructor(e,t,n,r,i=5,a=!1){this.mode=`IDLE`,this.gesture=null,this.items=[],this.ghostStartTime=null,this.ghostEndTime=null,this.ghostTopRow=0,this.ghostBottomRow=0,this.justDragged=!1,this.autoScrollRaf=null,this.autoScrollDelta=0,this.scrollContainer=null,this.onPointerDown=e=>{if(e.button!==0)return;let{itemId:t,handle:n}=FZ.hitTest(e.target);if(this.mode===`GHOST_EDITING`){if(t===`__ghost__`&&n){this.startGesture(e,`__ghost__`,n===`left`?`RESIZING_LEFT`:n===`right`?`RESIZING_RIGHT`:n===`top`?`RESIZING_TOP`:`RESIZING_BOTTOM`);return}if(t===`__ghost__`&&!n){this.confirmGhost();return}this.cancelGhost();return}if(t){if(n===`left`)this.startGesture(e,t,`RESIZING_LEFT`);else if(n===`right`)this.startGesture(e,t,`RESIZING_RIGHT`);else{let n=this.items.find(e=>e.id===t);if(!n||n.isSegment||n.type===`background`)return;this.startGesture(e,t,`DRAGGING`)}}},this.onPointerMove=e=>{if(this.gesture){if(this.gesture.currentX=e.clientX,this.gesture.currentY=e.clientY,!this.gesture.thresholdExceeded){let t=Math.abs(e.clientX-this.gesture.startX),n=Math.abs(e.clientY-this.gesture.startY);if(t<IZ&&n<IZ)return;this.gesture.thresholdExceeded=!0}switch(this.checkAutoScroll(e),this.mode){case`DRAGGING`:this.handleDragMove(e);break;case`RESIZING_LEFT`:case`RESIZING_RIGHT`:this.gesture.itemId===`__ghost__`?this.handleGhostTimeResize(e):this.handleResizeMove(e);break;case`RESIZING_TOP`:case`RESIZING_BOTTOM`:this.handleGhostRowResize(e)}}},this.onPointerUp=e=>{if(document.removeEventListener(`pointermove`,this.onPointerMove),document.removeEventListener(`pointerup`,this.onPointerUp),this.stopAutoScroll(),!this.gesture){this.mode=`IDLE`;return}let t=this.gesture.itemId===`__ghost__`;if(!this.gesture.thresholdExceeded&&!t){this.gesture.itemId&&this.callbacks.onItemClick?.(this.gesture.itemId,e),this.gesture=null,this.mode=`IDLE`,this.renderer.clearHighlights();return}if(t){this.gesture=null,this.mode=`GHOST_EDITING`;return}if(this.gesture.itemId&&this.gesture.thresholdExceeded){this.justDragged=!0,setTimeout(()=>this.justDragged=!1,300);let t=(e.clientX-this.gesture.startX)*this.scale.msPerPx,n=this.gesture.originalEnd.getTime()-this.gesture.originalStart.getTime(),r,i,a=this.gesture.originalGroup;if(this.mode===`DRAGGING`){r=this.scale.snap(new Date(this.gesture.originalStart.getTime()+t),this.snapMinutes),i=new Date(r.getTime()+n);let o=this.contentArea.getBoundingClientRect(),s=e.clientY-o.top+this.contentArea.scrollTop;a=this.layout.yToGroupId(s)||this.gesture.originalGroup}else this.mode===`RESIZING_LEFT`?(r=this.scale.snap(new Date(this.gesture.originalStart.getTime()+t),this.snapMinutes),i=this.gesture.originalEnd,r>=i&&(r=new Date(i.getTime()-this.snapMinutes*60*1e3))):(r=this.gesture.originalStart,i=this.scale.snap(new Date(this.gesture.originalEnd.getTime()+t),this.snapMinutes),i<=r&&(i=new Date(r.getTime()+this.snapMinutes*60*1e3)));this.callbacks.onMove?.({id:this.gesture.itemId,group:a,start:r,end:i})}this.gesture=null,this.mode=`IDLE`,this.renderer.clearHighlights()},this.onDblClick=e=>{if(this.justDragged)return;let{itemId:t}=FZ.hitTest(e.target);if(t)return;let n=this.contentArea.getBoundingClientRect(),r=e.clientX-n.left+this.contentArea.scrollLeft,i=e.clientY-n.top+this.contentArea.scrollTop,a=this.scale.xToTime(r),o=this.scale.snap(a,this.snapMinutes),s=new Date(o.getTime()+zZ),c=this.layout.yToGroupId(i);if(!c)return;let l=this.layout.groupIdToRowIndex(c);l<0||(this.ghostStartTime=o,this.ghostEndTime=s,this.ghostTopRow=l,this.ghostBottomRow=l,this.mode=`GHOST_EDITING`,this.renderer.showGhost({startTime:o,endTime:s,topRowIndex:l,bottomRowIndex:l}),this.renderer.highlightRows([l]))},this.onWheel=e=>{if(!e.ctrlKey&&!e.metaKey||this.enablePinchZoom){if(e.preventDefault(),(e.ctrlKey||e.metaKey)&&this.enablePinchZoom){let t=e.deltaY>0?1.15:.87,n=this.contentArea.getBoundingClientRect(),r=e.clientX-n.left;this.scale.zoom(t,r)}else if(e.shiftKey||Math.abs(e.deltaX)>Math.abs(e.deltaY)){let t=e.deltaX||e.deltaY;this.scale.pan(t)}else{this.scrollContainer&&(this.scrollContainer.scrollTop+=e.deltaY);return}this.onScaleChanged?.()}},this.onScaleChanged=null,this.onKeyDown=e=>{e.key===`Escape`&&this.mode===`GHOST_EDITING`&&this.cancelGhost()},this.scale=e,this.layout=t,this.renderer=n,this.contentArea=t.getContentArea(),this.wheelTarget=this.contentArea,this.callbacks=r,this.snapMinutes=i,this.enablePinchZoom=a}setItems(e){this.items=e}setScrollContainer(e){this.scrollContainer=e}setWheelTarget(e){this.wheelTarget=e}attach(){this.contentArea.addEventListener(`pointerdown`,this.onPointerDown),this.contentArea.addEventListener(`dblclick`,this.onDblClick),this.wheelTarget.addEventListener(`wheel`,this.onWheel,{passive:!1}),document.addEventListener(`keydown`,this.onKeyDown)}detach(){this.contentArea.removeEventListener(`pointerdown`,this.onPointerDown),this.contentArea.removeEventListener(`dblclick`,this.onDblClick),this.wheelTarget.removeEventListener(`wheel`,this.onWheel),document.removeEventListener(`keydown`,this.onKeyDown),document.removeEventListener(`pointermove`,this.onPointerMove),document.removeEventListener(`pointerup`,this.onPointerUp),this.stopAutoScroll()}getMode(){return this.mode}startGesture(e,t,n){e.preventDefault();let r=this.items.find(e=>e.id===t),i,a,o;if(t===`__ghost__`)i=this.ghostStartTime,a=this.ghostEndTime,o=``;else if(r)i=r.start instanceof Date?r.start:new Date(r.start),a=r.end?r.end instanceof Date?r.end:new Date(r.end):i,o=r.group;else return;this.gesture={mode:n,itemId:t,startX:e.clientX,startY:e.clientY,originalStart:i,originalEnd:a,originalGroup:o,currentX:e.clientX,currentY:e.clientY,thresholdExceeded:!1},this.mode=n,this.contentArea.setPointerCapture(e.pointerId),document.addEventListener(`pointermove`,this.onPointerMove),document.addEventListener(`pointerup`,this.onPointerUp)}handleDragMove(e){if(!this.gesture||!this.gesture.itemId)return;let t=(e.clientX-this.gesture.startX)*this.scale.msPerPx,n=this.gesture.originalEnd.getTime()-this.gesture.originalStart.getTime(),r=this.scale.snap(new Date(this.gesture.originalStart.getTime()+t),this.snapMinutes),i=new Date(r.getTime()+n),a=this.contentArea.getBoundingClientRect(),o=e.clientY-a.top+this.contentArea.scrollTop,s=this.layout.yToGroupId(o)||this.gesture.originalGroup;if(this.callbacks.onMoving){let e=this.callbacks.onMoving({id:this.gesture.itemId,group:s,start:r,end:i});if(e===null)return;r=e.start,i=e.end}let c=this.scale.timeToX(r),l=this.scale.timeToX(i)-c,u=this.layout.groupIdToRowIndex(s),d=this.layout.getRowTop(u>=0?u:0);this.renderer.updateItemPosition(this.gesture.itemId,c,d,l),u>=0&&this.renderer.highlightRows([u])}handleResizeMove(e){if(!this.gesture||!this.gesture.itemId)return;let t=(e.clientX-this.gesture.startX)*this.scale.msPerPx,n=this.gesture.originalStart,r=this.gesture.originalEnd;if(this.mode===`RESIZING_LEFT`?(n=this.scale.snap(new Date(this.gesture.originalStart.getTime()+t),this.snapMinutes),n>=r&&(n=new Date(r.getTime()-this.snapMinutes*60*1e3))):(r=this.scale.snap(new Date(this.gesture.originalEnd.getTime()+t),this.snapMinutes),r<=n&&(r=new Date(n.getTime()+this.snapMinutes*60*1e3))),this.callbacks.onMoving){let e=this.callbacks.onMoving({id:this.gesture.itemId,group:this.gesture.originalGroup,start:n,end:r});if(e===null)return;n=e.start,r=e.end}let i=this.scale.timeToX(n),a=this.scale.timeToX(r)-i,o=this.layout.groupIdToRowIndex(this.gesture.originalGroup),s=this.layout.getRowTop(o>=0?o:0);this.renderer.updateItemPosition(this.gesture.itemId,i,s,a)}handleGhostTimeResize(e){if(!this.gesture)return;let t=this.contentArea.getBoundingClientRect(),n=e.clientX-t.left+this.contentArea.scrollLeft,r=this.scale.snap(this.scale.xToTime(n),this.snapMinutes);this.mode===`RESIZING_LEFT`?r<this.ghostEndTime&&(this.ghostStartTime=r):r>this.ghostStartTime&&(this.ghostEndTime=r),this.updateGhostDisplay()}handleGhostRowResize(e){if(!this.gesture)return;let t=this.contentArea.getBoundingClientRect(),n=e.clientY-t.top+this.contentArea.scrollTop,r=Math.floor(n/this.layout.getRowHeight()),i=Math.max(0,Math.min(this.layout.getGroupCount()-1,r));this.mode===`RESIZING_TOP`?i<=this.ghostBottomRow&&(this.ghostTopRow=i):i>=this.ghostTopRow&&(this.ghostBottomRow=i),this.updateGhostDisplay()}updateGhostDisplay(){this.renderer.showGhost({startTime:this.ghostStartTime,endTime:this.ghostEndTime,topRowIndex:this.ghostTopRow,bottomRowIndex:this.ghostBottomRow});let e=[];for(let t=this.ghostTopRow;t<=this.ghostBottomRow;t++)e.push(t);this.renderer.highlightRows(e)}confirmGhost(){if(!this.ghostStartTime||!this.ghostEndTime){this.cancelGhost();return}let e=[];for(let t=this.ghostTopRow;t<=this.ghostBottomRow;t++){let n=this.layout.getGroupAtIndex(t);n&&e.push(n.id)}if(e.length===0){this.cancelGhost();return}let t={groupIds:e,topRowIndex:this.ghostTopRow,bottomRowIndex:this.ghostBottomRow,startTime:this.ghostStartTime,endTime:this.ghostEndTime};this.renderer.clearGhost(),this.renderer.clearHighlights(),this.mode=`IDLE`,this.callbacks.onMultiRowCreate?.(t),this.ghostStartTime=null,this.ghostEndTime=null}cancelGhost(){this.renderer.clearGhost(),this.renderer.clearHighlights(),this.mode=`IDLE`,this.ghostStartTime=null,this.ghostEndTime=null}checkAutoScroll(e){if(!this.scrollContainer)return;let t=this.scrollContainer.getBoundingClientRect(),n=t.bottom-e.clientY,r=e.clientY-t.top;n<LZ?(this.autoScrollDelta=RZ*(1-n/LZ),this.startAutoScroll()):r<LZ?(this.autoScrollDelta=-8*(1-r/LZ),this.startAutoScroll()):this.stopAutoScroll()}startAutoScroll(){if(this.autoScrollRaf!==null)return;let e=()=>{this.scrollContainer&&(this.scrollContainer.scrollTop+=this.autoScrollDelta,this.autoScrollRaf=requestAnimationFrame(e))};this.autoScrollRaf=requestAnimationFrame(e)}stopAutoScroll(){this.autoScrollRaf!==null&&(cancelAnimationFrame(this.autoScrollRaf),this.autoScrollRaf=null),this.autoScrollDelta=0}},VZ=class{constructor(e,t,n,r={}){this.callbacks={},this.resizeObserver=null,this._batchUpdating=!1,this.eventListeners=new Map,this.options={rowHeight:40,...r};let i=new Date,a=r.start||i,o=r.end||new Date(i.getTime()+432e5),s=e.clientWidth||800;this.scale=new TZ(a,o,s),(r.min||r.max||r.zoomMin||r.zoomMax)&&this.scale.setLimits({min:r.min,max:r.max,zoomMin:r.zoomMin,zoomMax:r.zoomMax}),this.timeAxis=new OZ(this.scale,r.timeAxis),this.layout=new PZ(this.options.rowHeight),this.renderer=new FZ(this.scale,this.layout),this.interaction=new BZ(this.scale,this.layout,this.renderer,this.callbacks,5,r.enablePinchZoom??!1),this.rootEl=document.createElement(`div`),this.rootEl.className=`tg-timeline`,r.height&&(this.rootEl.style.height=r.height);let c=document.createElement(`div`);c.className=`tg-axis-header`;let l=document.createElement(`div`);l.className=`tg-axis-spacer`,c.appendChild(l),c.appendChild(this.timeAxis.getDayElement()),c.appendChild(this.timeAxis.getHourElement()),this.rootEl.appendChild(c),this.bodyEl=document.createElement(`div`),this.bodyEl.className=`tg-body`,this.bodyEl.appendChild(this.layout.getLabelPanel());let u=document.createElement(`div`);u.className=`tg-scroll-wrapper`,u.appendChild(this.layout.getContentArea()),this.bodyEl.appendChild(u),this.rootEl.appendChild(this.bodyEl),e.appendChild(this.rootEl),u.addEventListener(`scroll`,()=>{this.layout.getLabelPanel().scrollTop=u.scrollTop}),this.interaction.setScrollContainer(u),this.interaction.setWheelTarget(this.rootEl),this.interaction.onScaleChanged=()=>this.renderAll(),this.layout.setGroups(n),this.renderer.setItems(t),this.interaction.setItems(t),this.interaction.attach(),this.renderAll(),this.resizeObserver=new ResizeObserver(()=>{let t=u.clientWidth||e.clientWidth;this.scale.setWidth(t),this.renderAll()}),this.resizeObserver.observe(u)}setGroups(e){this.layout.setGroups(e),this.renderAll()}setItems(e){this.renderer.setItems(e),this.interaction.setItems(e),this.renderAll()}setWindow(e,t,n){this.scale.setWindow(e,t),this.renderAll()}setOptions(e){(e.min!==void 0||e.max!==void 0||e.zoomMin!==void 0||e.zoomMax!==void 0)&&this.scale.setLimits({min:e.min,max:e.max,zoomMin:e.zoomMin,zoomMax:e.zoomMax}),e.timeAxis&&this.timeAxis.setTimeAxisOptions(e.timeAxis),e.rowHeight!==void 0&&(this.options.rowHeight=e.rowHeight),Object.assign(this.options,e),this.renderAll()}on(e,t){this.eventListeners.has(e)||this.eventListeners.set(e,new Set),this.eventListeners.get(e).add(t),e===`click`&&(this.callbacks.onItemClick=(e,t)=>{this.emit(`click`,{item:e,event:t})})}off(e,t){this.eventListeners.get(e)?.delete(t)}emit(e,t){let n=this.eventListeners.get(e);if(n)for(let e of n)e(t)}onMultiRowCreate(e){this.callbacks.onMultiRowCreate=e}onAdd(e){this.callbacks.onAdd=e}onMove(e){this.callbacks.onMove=e}onMoving(e){this.callbacks.onMoving=e}onDayClick(e){this.timeAxis.onDayClick=e}getContentElement(){return this.layout.getContentArea()}setDailyBounds(e,t){this.scale.setDailyBounds(e,t),this.renderAll()}clearDailyBounds(){this.scale.clearDailyBounds(),this.renderAll()}setVisibleDays(e){this.scale.setVisibleDays(e),this.renderAll()}clearVisibleDays(){this.scale.clearVisibleDays(),this.renderAll()}beginBatchUpdate(){this._batchUpdating=!0}endBatchUpdate(){this._batchUpdating=!1,this.renderAll()}renderAll(){if(this._batchUpdating)return;this.timeAxis.render(),this.layout.render(),this.renderer.render();let e=this.layout.getContentArea(),t=this.layout.getGroupCount()*(this.options.rowHeight??40);this.timeAxis.renderGridlines(e,t)}destroy(){this.interaction.detach(),this.resizeObserver?.disconnect(),this.timeAxis.destroy(),this.layout.destroy(),this.renderer.destroy(),this.rootEl.remove(),this.eventListeners.clear()}},HZ={day:{label:`1 Day`,days:1,timeAxis:{scale:`hour`,step:1}},days3:{label:`3 Days`,days:3,timeAxis:{scale:`hour`,step:3}},week:{label:`Week`,days:7,timeAxis:{scale:`hour`,step:6}},all:{label:`Tournament`,days:0,timeAxis:{scale:`hour`,step:6}}};function UZ(e,t,n,r){let i=r?.labels,a=document.createElement(`div`);a.className=`tg-view-toolbar`;let o=document.createElement(`span`);o.textContent=(i?.view??`View`)+`:`,o.className=`tg-view-toolbar-label`,a.appendChild(o);let s=document.createElement(`input`);s.type=`text`,s.readOnly=!0,s.className=`tg-view-toolbar-date`,n&&s.addEventListener(`changeDate`,()=>{let e=s.value;e&&n(e)}),a.appendChild(s);let c={day:i?.day1??`1 Day`,days3:i?.days3??`3 Days`,week:i?.week??`Week`,all:i?.tournament??`Tournament`},l=[],u=[],d=t||`day`,f=e=>{l.forEach((t,n)=>{t.className=u[n]===e?`sp-btn sp-btn--active`:`sp-btn`})};for(let[t]of Object.entries(HZ)){let n=document.createElement(`button`);n.textContent=c[t],n.className=t===d?`sp-btn sp-btn--active`:`sp-btn`,n.addEventListener(`click`,()=>{f(t),e(t)}),l.push(n),u.push(t),a.appendChild(n)}if(r?.onSetDefaultAvailability||r?.onSave){let e=document.createElement(`div`);e.className=`tg-view-toolbar-spacer`,a.appendChild(e)}if(r?.onSetDefaultAvailability){let e=document.createElement(`button`);e.textContent=i?.setDefaultAvailability??`Set Default Availability`,e.className=`sp-btn sp-btn--fill-muted`,e.addEventListener(`click`,r.onSetDefaultAvailability),a.appendChild(e)}let p=null;return r?.onSave&&(p=document.createElement(`button`),p.textContent=i?.saveToTournament??`Save to Tournament`,p.className=`sp-btn sp-btn--fill`,p.disabled=!0,p.addEventListener(`click`,r.onSave),a.appendChild(p)),{element:a,dateInput:s,setActiveView:f,setDate:e=>{s.value=e},setSaveEnabled:e=>{p&&(p.disabled=!e)}}}var{BLOCK_TYPES:WZ}=t.availability,GZ=class{constructor(e,t){this.timeline=null,this.disposed=!1,this.unsubscribe=null,this.currentItems=new Map,this.isRendering=!1,this.popoverManager=wZ(),this.viewState=new BG,this.currentDay=null,this.currentView=`day`,this.selectedCourts=new Set,this.visibleCourts=null,this.handleOnMove=e=>{let t=_Z(e.id);if(!t)return!1;let n=gZ(e.group),r=this.toLocalISO(e.start),i=this.toLocalISO(e.end),a=this.engine.moveBlock({blockId:t,newTimeRange:{start:r,end:i},newCourt:n||void 0});return a.conflicts.some(e=>e.severity===`ERROR`)?(this.showConflictDialog(a.conflicts),!1):(this.render(),!0)},this.handleOnMoving=e=>{this.popoverManager.destroy();let t=this.currentItems.get(e.id);if(t&&(t.isSegment||t.type===`background`))return null;let{start:n,end:r}=e,i=gZ(e.group);if(i){let e=n.toISOString().slice(0,10),t=this.engine.getCourtAvailability(i,e),a=new Date(`${e}T${t.startTime}:00`),o=new Date(`${e}T${t.endTime}:00`);n<a&&(n=a),r>o&&(r=o)}return{start:n,end:r}},this.handleTimelineClick=e=>{let t=e.item;if(!t){this.popoverManager.destroy();return}let n=this.currentItems.get(t);if(!n){this.popoverManager.destroy();return}if(n.isSegment||n.type===`background`){this.popoverManager.destroy();return}if(this.popoverManager.isActiveFor(t)){this.popoverManager.destroy();return}let r=_Z(t);if(!r)return;let i=(e.event?.target)?.closest?.(`.tg-item`)??this.config.container.querySelector(`[data-item-id="${t}"]`);if(i){let e=String(n.start).slice(0,10);this.popoverManager.showForEngineBlock(i,{itemId:t,blockId:r,engine:this.engine,day:e,onBlockChanged:()=>this.render(),onManageRegistrations:this.config.onManageRegistrations})}this.config.onBlockSelected&&this.config.onBlockSelected(r)},this.handleMultiRowCreate=e=>{let t=[];for(let n of e.groupIds){let e=gZ(n);e&&t.push(e)}if(t.length===0)return;let n=this.toLocalISO(e.startTime),r=this.toLocalISO(e.endTime),i=this.engine.applyBlock({courts:t,timeRange:{start:n,end:r},type:WZ.BLOCKED,reason:`New Block`});if(this.render(),i.applied.length>0){let e=i.applied[0].block.id,t=`block-${e}`,r=n.slice(0,10);clearTimeout(this.popoverTimer),this.popoverTimer=setTimeout(()=>{if(this.popoverTimer=void 0,this.disposed)return;let n=this.config.container.querySelector(`[data-item-id="${t}"]`);n&&this.popoverManager.showForEngineBlock(n,{itemId:t,blockId:e,engine:this.engine,day:r,onBlockChanged:()=>this.render(),onManageRegistrations:this.config.onManageRegistrations})},50)}this.config.onTimeRangeSelected&&this.config.onTimeRangeSelected({courts:t,start:n,end:r})},this.handleEngineEvent=e=>{switch(e.type){case`STATE_CHANGED`:case`BLOCKS_CHANGED`:this.render(),e.type===`BLOCKS_CHANGED`&&this.config.onBlocksChanged&&this.config.onBlocksChanged();break;case`CONFLICTS_CHANGED`:this.config.showConflicts&&this.render();break;case`AVAILABILITY_CHANGED`:this.updateTimelineWindow(),this.render()}},this.engine=e,this.config={groupingMode:`BY_VENUE`,showConflicts:!0,showSegmentLabels:!1,colorScheme:lZ,...t},this.initialize()}initialize(){if(this.config.initialDay)this.currentDay=this.config.initialDay;else{let e=this.engine.getActiveDays();this.currentDay=e.length>0?e[0]:t.tools.dateTime.extractDate(new Date().toISOString())}this.viewState.setSelectedDay(this.currentDay),this.config.initialView&&(this.currentView=this.config.initialView),this.unsubscribe=this.engine.subscribe(this.handleEngineEvent),this.ensureTimeline()}ensureTimeline(){this.disposed||this.timeline||this.mountTimer!==void 0||(this.mountTimer=setTimeout(()=>{this.mountTimer=void 0,!this.disposed&&!this.timeline&&this.createTimelineWithData()},0))}getViewDays(){if(!this.currentDay)return[];let e=HZ[this.currentView],t=e?e.days:1;if(t<=0)return this.engine.getActiveDays();if(t<=1)return[this.currentDay];let n=this.engine.getActiveDays(),r=n.indexOf(this.currentDay);return r===-1?[this.currentDay]:n.slice(r,r+t)}buildViewData(){if(!this.currentDay)return{groups:[],items:[]};let e=this.getViewDays(),t=this.engine.listCourtMeta(),n=this.viewState.getLayerVisibility(),r={groupingMode:this.config.groupingMode,layerVisibility:n,showSegmentLabels:this.config.showSegmentLabels,colorScheme:this.config.colorScheme},i=uZ(this.engine.getDayTimeline(e[0]),t,r);this.visibleCourts!==null&&(i=i.filter(e=>this.visibleCourts.has(String(e.id))));let a=this.visibleCourts===null?null:new Set(i.map(e=>String(e.id))),o=e.length<=1?this.engine.getActiveDays():e,s=[],c=[];for(let e of o){let t=this.engine.getDayTimeline(e);s.push(...dZ(t,r)),c.push(...pZ(this.engine.getDayBlocks(e),r))}let l=a?s.filter(e=>a.has(String(e.group))):s,u=a?c.filter(e=>a.has(String(e.group))):c,d=[...l,...u];return{groups:i.map((e,t)=>({id:String(e.id),content:typeof e.content==`string`?e.content:``,order:t,courtRef:e.courtRef,surface:e.surface,indoor:e.indoor,hasLights:e.hasLights,tags:e.tags})),items:d.map(e=>({id:String(e.id),group:String(e.group),content:e.content,start:e.start,end:e.end,type:e.type===`background`?`background`:`range`,className:e.className,style:e.style,title:e.title,editable:e.editable,blockId:e.blockId,status:e.status,reason:e.reason,isBlock:e.isBlock,isSegment:e.isSegment,isConflict:e.isConflict}))}}createTimelineWithData(){let e=this.engine.getConfig(),n=this.currentDay||t.tools.dateTime.extractDate(new Date().toISOString()),r=this.getViewDays(),i=r[0]||n,a=r[r.length-1]||n,o=this.engine.getVisibleTimeRange(i),s=this.engine.getVisibleTimeRange(a),c=vZ({dayStartTime:o.startTime,dayEndTime:o.endTime,slotMinutes:e.slotMinutes,day:i}),l=HZ[this.currentView],u=r.length>1?new Date(`${a}T${s.endTime}:00`):c.end,d=this.engine.getActiveDays(),f=d[0]||i,p=d[d.length-1]||a,m=this.engine.getVisibleTimeRange(f),h=this.engine.getVisibleTimeRange(p),g=new Date(`${f}T${m.startTime}:00`),_=new Date(`${p}T${h.endTime}:00`),{groups:v,items:y}=this.buildViewData();this.currentItems.clear();for(let e of y)this.currentItems.set(e.id,e);this.timeline=new VZ(this.config.container,y,v,{start:c.start,end:u,min:g,max:_,zoomMin:c.zoomMin,zoomMax:_.getTime()-g.getTime(),snap:e=>this.snapToMinutes(e,5),rowHeight:40,height:`100%`,timeAxis:l?l.timeAxis:{scale:`hour`,step:1},showTooltips:!0}),this.timeline.setDailyBounds(o.startTime,o.endTime),r.length>1&&this.timeline.setVisibleDays(r),this.timeline.on(`click`,this.handleTimelineClick),this.timeline.onMove(this.handleOnMove),this.timeline.onMoving(this.handleOnMoving),this.timeline.onMultiRowCreate(this.handleMultiRowCreate),this.timeline.onDayClick(e=>{this.setDay(e),this.setViewPreset(`day`),this.config.onDayNavigate?.(e)}),this.config.onBlocksChanged?.()}setDay(e){this.currentDay!==e&&(this.currentDay=e,this.viewState.setSelectedDay(e),this.updateTimelineWindow(),this.render())}getDay(){return this.currentDay}setView(e){this.currentView=e,this.updateTimelineWindow()}setViewPreset(e){let t=HZ[e];if(!t||!this.timeline||!this.currentDay)return;this.currentView=e;let n=this.getViewDays(),r=n[0],i=n[n.length-1],a=this.engine.getVisibleTimeRange(r),o=this.engine.getVisibleTimeRange(i);this.timeline.beginBatchUpdate();let s=t.days===0||t.days>1;this.timeline.setDailyBounds(a.startTime,a.endTime),s?this.timeline.setVisibleDays(n):this.timeline.clearVisibleDays();let c=new Date(`${r}T${a.startTime}:00`),l=new Date(`${i}T${o.endTime}:00`);this.timeline.setWindow(c,l,{animation:!1}),this.timeline.setOptions({timeAxis:t.timeAxis});let{groups:u,items:d}=this.buildViewData();this.currentItems.clear();for(let e of d)this.currentItems.set(e.id,e);this.timeline.setGroups(u),this.timeline.setItems(d),this.timeline.endBatchUpdate(),this.config.onBlocksChanged?.()}setSelectedCourts(e){this.selectedCourts=new Set(e)}getSelectedCourts(){return Array.from(this.selectedCourts)}setVisibleCourts(e){this.visibleCourts=e===null?null:new Set(e),this.render()}setLayerVisibility(e,t){this.viewState.setLayerVisibility(e,t),this.render()}refresh(){this.updateTimelineWindow(),this.render()}destroy(){this.disposed||(this.disposed=!0,clearTimeout(this.mountTimer),clearTimeout(this.popoverTimer),this.mountTimer=void 0,this.popoverTimer=void 0,this.popoverManager.destroy(),this.unsubscribe&&this.unsubscribe(),this.timeline&&=(this.timeline.destroy(),null))}updateTimelineWindow(){if(!this.timeline||!this.currentDay)return;let e=this.engine.getConfig(),t=this.getViewDays(),n=t[0]||this.currentDay,r=t[t.length-1]||this.currentDay,i=this.engine.getVisibleTimeRange(n),a=this.engine.getVisibleTimeRange(r),o=vZ({dayStartTime:i.startTime,dayEndTime:i.endTime,slotMinutes:e.slotMinutes,day:n}),s=HZ[this.currentView],c=t.length>1?new Date(`${r}T${a.endTime}:00`):o.end,l=this.engine.getActiveDays(),u=l[0]||n,d=l[l.length-1]||r,f=this.engine.getVisibleTimeRange(u),p=this.engine.getVisibleTimeRange(d),m=new Date(`${u}T${f.startTime}:00`),h=new Date(`${d}T${p.endTime}:00`);this.timeline.beginBatchUpdate(),this.timeline.setDailyBounds(i.startTime,i.endTime),t.length>1?this.timeline.setVisibleDays(t):this.timeline.clearVisibleDays(),this.timeline.setOptions({min:m,max:h}),this.timeline.setWindow(o.start,c,{animation:!1}),s&&this.timeline.setOptions({timeAxis:s.timeAxis}),this.timeline.endBatchUpdate()}render(){if(this.currentDay&&!this.isRendering){if(!this.timeline){this.ensureTimeline();return}this.isRendering=!0;try{let{groups:e,items:t}=this.buildViewData();this.currentItems.clear();for(let e of t)this.currentItems.set(e.id,e);this.timeline.setGroups(e),this.timeline.setItems(t)}finally{this.isRendering=!1}}}getPopoverManager(){return this.popoverManager}snapToMinutes(e,t){let n=e.getTime(),r=t*60*1e3,i=Math.round(n/r)*r;return new Date(i)}toLocalISO(e){let t=e=>e.toString().padStart(2,`0`);return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}T${t(e.getHours())}:${t(e.getMinutes())}:${t(e.getSeconds())}`}showConflictDialog(e){let t=e.filter(e=>e.severity===`ERROR`);if(t.length===0)return;if(this.config.onConflict){this.config.onConflict(t);return}let n=t.map(e=>e.message).join(`
|
|
248
|
-
`);console.warn(`[availability-grid] cannot complete operation:\n${n}`)}getTimeline(){return this.timeline}getEngine(){return this.engine}getViewState(){return this.viewState}},KZ,qZ,JZ,YZ=!1;async function XZ(){if(!KZ){let e=await Promise.resolve().then(()=>(
|
|
247
|
+
`,l.addEventListener(`mouseenter`,()=>{l.style.background=xZ,l.style.color=SZ}),l.addEventListener(`mouseleave`,()=>{l.style.background=`transparent`,l.style.color=``}),l.addEventListener(`click`,()=>{let s=r.getDayBlocks(i).find(e=>e.id===t);s&&(r.removeBlock(t),r.applyBlock({courts:[s.court],timeRange:{start:s.start,end:s.end},type:e,reason:a}),o()),n()}),c.appendChild(l)}let l=document.createElement(`div`);l.style.cssText=`border-top:1px solid var(--chc-border-primary); margin:4px 0;`,c.appendChild(l);let u=document.createElement(`div`);u.style.cssText=bZ,u.innerHTML=`<span style="font-size:14px;">🕓</span> Adjust Time`,u.addEventListener(`mouseenter`,()=>{u.style.background=xZ,u.style.color=SZ}),u.addEventListener(`mouseleave`,()=>{u.style.background=`transparent`,u.style.color=``}),u.addEventListener(`click`,()=>{n();let e=r.getDayBlocks(i).find(e=>e.id===t);e&&cZ({startTime:e.start,endTime:e.end,dayStartTime:`06:00`,dayEndTime:`22:00`,minuteIncrement:5,onConfirm:(n,i)=>{let a=e.start.slice(0,10);r.resizeBlock({blockId:t,newTimeRange:{start:`${a}T${n}:00`,end:`${a}T${i}:00`}}),o()},onCancel:()=>{}})}),c.appendChild(u);let d=r.getDayBlocks(i).find(e=>e.id===t);if(s&&d?.type===yZ.PRACTICE){let e=document.createElement(`div`);e.style.cssText=bZ,e.innerHTML=`<span style="font-size:14px;">👥</span> Manage Registrations`,e.addEventListener(`mouseenter`,()=>{e.style.background=xZ,e.style.color=SZ}),e.addEventListener(`mouseleave`,()=>{e.style.background=`transparent`,e.style.color=``}),e.addEventListener(`click`,()=>{n();let e=r.getDayBlocks(i).find(e=>e.id===t);e&&s({blockId:t,courtId:e.court.courtId,venueId:e.court.venueId,date:i,startTime:a(e.start),endTime:a(e.end)})}),c.appendChild(e)}let f=document.createElement(`div`);return f.style.cssText=`padding:6px 12px; cursor:pointer; display:flex; align-items:center; gap:8px; color:#e74c3c;`,f.innerHTML=`<span style="font-size:14px;">🗑</span> Delete`,f.addEventListener(`mouseenter`,()=>{f.style.background=`#fdecea`}),f.addEventListener(`mouseleave`,()=>{f.style.background=`transparent`}),f.addEventListener(`click`,()=>{r.removeBlock(t),o(),n()}),c.appendChild(f),c}function a(e){return(e.includes(`T`)?e.split(`T`)[1]:e).slice(0,5)}function o(r,i,a){n();let o=uy(r,{content:i,allowHTML:!0,interactive:!0,trigger:`manual`,placement:`bottom`,appendTo:document.body,onHidden:()=>{e=null,t=null}});e=o,t=a,o.show()}return{show(e,i){if(t===i.itemId){n();return}o(e,r(i),i.itemId)},showForEngineBlock(e,r){if(t===r.itemId){n();return}o(e,i(r),r.itemId)},destroy(){n()},isActiveFor(e){return t===e}}}var TZ=class{constructor(e,t,n){this._dailyStartMin=0,this._dailyEndMin=1440,this._useDailyBounds=!1,this._visibleDays=null,this._visibleDayMs=null,this._start=e.getTime(),this._end=t.getTime(),this._width=Math.max(n,1),this._min=this._start,this._max=this._end,this._zoomMin=9e5,this._zoomMax=(this._end-this._start)*2}get start(){return new Date(this._start)}get end(){return new Date(this._end)}get width(){return this._width}get duration(){return this._end-this._start}get msPerPx(){if(!this._useDailyBounds)return this.duration/this._width;let e=this.toCollapsedMin(new Date(this._start)),t=this.toCollapsedMin(new Date(this._end))-e;return t<=0?1:t*60*1e3/this._width}getDailyBounds(){return this._useDailyBounds?{startMin:this._dailyStartMin,endMin:this._dailyEndMin}:null}getVisibleDays(){return this._visibleDays}timeToX(e){if(!this._useDailyBounds)return(e.getTime()-this._start)/this.duration*this._width;let t=this.toCollapsedMin(e),n=this.toCollapsedMin(new Date(this._start)),r=this.toCollapsedMin(new Date(this._end))-n;return r<=0?0:(t-n)/r*this._width}xToTime(e){if(!this._useDailyBounds){let t=e/this._width*this.duration;return new Date(this._start+t)}let t=this.toCollapsedMin(new Date(this._start)),n=this.toCollapsedMin(new Date(this._end))-t;if(n<=0)return new Date(this._start);let r=t+e/this._width*n;return this.fromCollapsedMin(r)}snap(e,t){let n=e.getTime(),r=t*60*1e3;return new Date(Math.round(n/r)*r)}setWindow(e,t){this._start=e.getTime(),this._end=t.getTime(),this.clampBounds()}setLimits(e){e.min!==void 0&&(this._min=e.min.getTime()),e.max!==void 0&&(this._max=e.max.getTime()),e.zoomMin!==void 0&&(this._zoomMin=e.zoomMin),e.zoomMax!==void 0&&(this._zoomMax=e.zoomMax)}setWidth(e){this._width=Math.max(e,1)}setDailyBounds(e,t){let[n,r]=e.split(`:`).map(Number),[i,a]=t.split(`:`).map(Number);this._dailyStartMin=n*60+r,this._dailyEndMin=i*60+a,this._useDailyBounds=!0}clearDailyBounds(){this._useDailyBounds=!1,this._dailyStartMin=0,this._dailyEndMin=1440,this._visibleDays=null,this._visibleDayMs=null}setVisibleDays(e){this._visibleDays=e,this._visibleDayMs=e.map(e=>new Date(e+`T00:00:00`).getTime())}clearVisibleDays(){this._visibleDays=null,this._visibleDayMs=null}pan(e){if(this._visibleDays)return;if(this._useDailyBounds){let t=this.toCollapsedMin(new Date(this._start)),n=this.toCollapsedMin(new Date(this._end)),r=n-t;if(r<=0)return;let i=e/this._width*r,a=this.fromCollapsedMin(t+i),o=this.fromCollapsedMin(n+i);this._start=a.getTime(),this._end=o.getTime(),this.clampBounds();return}let t=e*this.msPerPx,n=this._start+t,r=this._end+t;if(n<this._min){let e=this._min-n;n+=e,r+=e}if(r>this._max){let e=r-this._max;n-=e,r-=e}this._start=n,this._end=r}zoom(e,t){if(this._visibleDays)return;if(this._useDailyBounds){let n=this.toCollapsedMin(new Date(this._start)),r=this.toCollapsedMin(new Date(this._end))-n,i=n+t/this._width*r,a=r*e,o=this._zoomMin/6e4,s=this._zoomMax/6e4;a=Math.max(o,Math.min(s,a));let c=t/this._width,l=this.fromCollapsedMin(i-a*c),u=this.fromCollapsedMin(i+a*(1-c));this._start=l.getTime(),this._end=u.getTime(),this.clampBounds();return}let n=this._start+t/this._width*this.duration,r=this.duration*e;r=Math.max(this._zoomMin,Math.min(this._zoomMax,r));let i=t/this._width;this._start=n-r*i,this._end=n+r*(1-i),this.clampBounds()}toCollapsedMin(e){let t=this._dailyEndMin-this._dailyStartMin;if(t<=0)return 0;let n=e.getHours()*60+e.getMinutes()+e.getSeconds()/60,r=Math.max(this._dailyStartMin,Math.min(this._dailyEndMin,n))-this._dailyStartMin;if(this._visibleDays&&this._visibleDayMs){let n=new Date(e);n.setHours(0,0,0,0);let i=n.getTime(),a=-1;for(let e=0;e<this._visibleDayMs.length;e++)if(this._visibleDayMs[e]===i){a=e;break}if(a===-1){if(i<this._visibleDayMs[0])return 0;if(i>this._visibleDayMs[this._visibleDayMs.length-1])return this._visibleDayMs.length*t;for(let e=0;e<this._visibleDayMs.length-1;e++)if(i>this._visibleDayMs[e]&&i<this._visibleDayMs[e+1])return(e+1)*t;return 0}return a*t+r}let i=new Date(this._start);i.setHours(0,0,0,0);let a=new Date(e);return a.setHours(0,0,0,0),Math.round((a.getTime()-i.getTime())/864e5)*t+r}fromCollapsedMin(e){let t=this._dailyEndMin-this._dailyStartMin;if(t<=0)return new Date(this._start);let n=Math.floor(e/t),r=e-n*t;if(this._visibleDays&&this._visibleDayMs){let e=Math.max(0,Math.min(n,this._visibleDayMs.length-1)),t=new Date(this._visibleDayMs[e]),i=this._dailyStartMin+r;return t.setHours(Math.floor(i/60),Math.round(i%60),0,0),t}let i=new Date(this._start);i.setHours(0,0,0,0);let a=new Date(i);a.setDate(a.getDate()+n);let o=this._dailyStartMin+r;return a.setHours(Math.floor(o/60),Math.round(o%60),0,0),a}clampBounds(){let e=this._end-this._start;this._start<this._min&&(this._start=this._min,this._end=this._min+e),this._end>this._max&&(this._end=this._max,this._start=this._max-e),this._start<this._min&&(this._start=this._min),this._end>this._max&&(this._end=this._max)}},EZ=`tg-tick-day`,DZ=`tg-tick-hour`,OZ=class{constructor(e,t){this.scale=e,this.tickConfig=kZ(t),this.dayEl=document.createElement(`div`),this.dayEl.className=`tg-day-axis`,this.dayEl.setAttribute(`role`,`presentation`),this.hourEl=document.createElement(`div`),this.hourEl.className=`tg-hour-axis`,this.hourEl.setAttribute(`role`,`presentation`),this.dayEl.addEventListener(`click`,e=>{let t=(e.target.closest?.(`.${EZ}`))?.dataset.day;t&&this.onDayClick&&this.onDayClick(t)})}getDayElement(){return this.dayEl}getHourElement(){return this.hourEl}setTimeAxisOptions(e){this.tickConfig=kZ(e)}render(){this.renderDayLabels(),this.renderHourTicks()}renderDayLabels(){this.dayEl.innerHTML=``;let{dayFormat:e}=this.tickConfig,t=this.tickConfig.scale,n=this.scale.getDailyBounds();if(n&&t===`hour`){this.renderDayLabelsWithBounds(n,e);return}if(t===`hour`){let t=this.scale.start.getTime(),n=jZ(t,this.scale.end.getTime());if(n.length===0){let n=new Date(t);n.setHours(0,0,0,0);let r=document.createElement(`div`);r.className=EZ,r.style.left=`0px`,r.style.maxWidth=`${this.scale.width}px`,r.dataset.day=AZ(n),r.textContent=e.format(n),this.dayEl.appendChild(r);return}for(let t of n){let n=this.scale.timeToX(t),r=document.createElement(`div`);r.className=EZ,r.style.left=`${n}px`,r.dataset.day=AZ(t),r.textContent=e.format(t),this.dayEl.appendChild(r)}}else if(t===`day`){let e=NZ(this.scale.start.getTime(),this.scale.end.getTime());for(let t of e){let e=this.scale.timeToX(t),n=document.createElement(`div`);n.className=EZ,n.style.left=`${e}px`,n.dataset.day=AZ(t),n.textContent=this.tickConfig.dayFormat.format(t),this.dayEl.appendChild(n)}}}renderDayLabelsWithBounds(e,t){let n=this.getVisibleDayDates(e),r=this.scale.getVisibleDays(),i=n.length,a=i>0?this.scale.width/i:this.scale.width,o=a<150?new Intl.DateTimeFormat(void 0,{weekday:`short`,day:`numeric`}):t;if(r&&r.length>0)for(let t of n){let n=new Date(t);n.setHours(0,0,0,0),n.setMinutes(e.startMin);let r=this.scale.timeToX(n),i=document.createElement(`div`);i.className=EZ,i.style.left=`${r}px`,i.style.maxWidth=`${Math.floor(a)-4}px`,i.dataset.day=AZ(t),i.textContent=o.format(n),this.dayEl.appendChild(i)}else{let t=this.scale.width;for(let r of n){let n=new Date(r);n.setHours(0,0,0,0),n.setMinutes(e.startMin);let i=new Date(r);i.setHours(0,0,0,0),i.setDate(i.getDate()+1),i.setMinutes(e.startMin);let a=this.scale.timeToX(n),s=this.scale.timeToX(i),c=Math.max(a,0),l=Math.min(s,t)-c;if(l<=0)continue;let u=document.createElement(`div`);u.className=EZ,u.style.left=`${c}px`,u.style.maxWidth=`${l}px`,u.dataset.day=AZ(r),u.textContent=o.format(n),this.dayEl.appendChild(u)}}}renderHourTicks(){this.hourEl.innerHTML=``;let{hourFormat:e}=this.tickConfig,t=this.tickConfig.scale,n=this.tickConfig.step,r=this.scale.getDailyBounds();if(r&&t===`hour`){this.renderHourTicksWithBounds(r,n,e);return}let i=this.scale.start.getTime(),a=this.scale.end.getTime();if(t===`hour`){let t=new Set(jZ(i,a).map(e=>e.getTime())),r=MZ(i,a,n);for(let n of r){if(t.has(n.getTime()))continue;let r=this.scale.timeToX(n),i=document.createElement(`div`);i.className=DZ,i.style.left=`${r}px`,i.textContent=e.format(n),this.hourEl.appendChild(i)}}else if(t===`day`){let e=new Set(NZ(i,a).map(e=>e.getTime())),t=jZ(i,a);for(let n of t){if(e.has(n.getTime()))continue;let t=this.scale.timeToX(n),r=document.createElement(`div`);r.className=DZ,r.style.left=`${t}px`,r.textContent=new Intl.DateTimeFormat(void 0,{weekday:`short`,day:`numeric`}).format(n),this.hourEl.appendChild(r)}}}renderHourTicksWithBounds(e,t,n){let r=this.getVisibleDayDates(e);for(let i of r){let r=new Date(i);r.setHours(0,0,0,0),r.setMinutes(e.startMin);let a=new Date(i);a.setHours(0,0,0,0),a.setMinutes(e.endMin);let o=Math.ceil(e.startMin/60),s=new Date(i);for(s.setHours(o,0,0,0),s.getHours()%t!==0&&s.setHours(s.getHours()+(t-s.getHours()%t));s.getTime()<=a.getTime();){if(s.getTime()!==r.getTime()){let e=this.scale.timeToX(s),t=document.createElement(`div`);t.className=DZ,t.style.left=`${e}px`,t.textContent=n.format(s),this.hourEl.appendChild(t)}s.setHours(s.getHours()+t)}}}getVisibleDayDates(e){let t=this.scale.getVisibleDays();if(t&&t.length>0)return t.map(e=>new Date(e+`T00:00:00`));let n=this.scale.start.getTime(),r=this.scale.end.getTime(),i=[],a=new Date(n);for(a.setHours(0,0,0,0);;){let t=new Date(a);if(t.setHours(0,0,0,0),t.setMinutes(e.endMin),t.getTime()<n){a.setDate(a.getDate()+1);continue}let o=new Date(a);if(o.setHours(0,0,0,0),o.setMinutes(e.startMin),o.getTime()>r)break;i.push(new Date(a)),a.setDate(a.getDate()+1)}return i}renderGridlines(e,t){e.querySelectorAll(`.tg-gridline`).forEach(e=>e.remove());let n=this.computeTickPositions();for(let{x:r,isMajor:i}of n){let n=document.createElement(`div`);n.className=i?`tg-gridline tg-gridline-major`:`tg-gridline`,n.style.left=`${r}px`,n.style.height=`${t}px`,e.appendChild(n)}}computeTickPositions(){let e=[],t=this.tickConfig.scale,n=this.tickConfig.step,r=this.scale.getDailyBounds(),i=this.scale.start.getTime(),a=this.scale.end.getTime();if(r&&t===`hour`){let t=this.getVisibleDayDates(r);for(let i of t){let t=new Date(i);t.setHours(0,0,0,0),t.setMinutes(r.startMin);let a=new Date(i);a.setHours(0,0,0,0),a.setMinutes(r.endMin),e.push({x:this.scale.timeToX(t),isMajor:!0});let o=Math.ceil(r.startMin/60),s=new Date(i);for(s.setHours(o,0,0,0),s.getHours()%n!==0&&s.setHours(s.getHours()+(n-s.getHours()%n));s.getTime()<=a.getTime();)s.getTime()!==t.getTime()&&e.push({x:this.scale.timeToX(s),isMajor:!1}),s.setHours(s.getHours()+n)}}else if(t===`hour`){let t=jZ(i,a),r=new Set(t.map(e=>e.getTime()));for(let n of t)e.push({x:this.scale.timeToX(n),isMajor:!0});for(let t of MZ(i,a,n))r.has(t.getTime())||e.push({x:this.scale.timeToX(t),isMajor:!1})}else if(t===`day`){let t=NZ(i,a),n=new Set(t.map(e=>e.getTime()));for(let n of t)e.push({x:this.scale.timeToX(n),isMajor:!0});for(let t of jZ(i,a))n.has(t.getTime())||e.push({x:this.scale.timeToX(t),isMajor:!1})}return e}destroy(){this.dayEl.remove(),this.hourEl.remove()}};function kZ(e){let t=e?.scale??`hour`,n=e?.step??1;switch(t){case`hour`:return{scale:t,step:n,hourFormat:new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`,hour12:!1}),dayFormat:new Intl.DateTimeFormat(void 0,{weekday:`short`,day:`numeric`,month:`short`})};case`day`:return{scale:t,step:n,hourFormat:new Intl.DateTimeFormat(void 0,{weekday:`short`,day:`numeric`}),dayFormat:new Intl.DateTimeFormat(void 0,{month:`long`,year:`numeric`})};default:return{scale:`hour`,step:1,hourFormat:new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`,hour12:!1}),dayFormat:new Intl.DateTimeFormat(void 0,{weekday:`short`,day:`numeric`,month:`short`})}}}function AZ(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function jZ(e,t){let n=[],r=new Date(e);for(r.setHours(0,0,0,0);r.getTime()<=t;)r.getTime()>=e&&n.push(new Date(r)),r.setDate(r.getDate()+1);return n}function MZ(e,t,n){let r=[],i=new Date(e);i.setMinutes(0,0,0);let a=i.getHours();for(i.setHours(a-a%n);i.getTime()<=t;)i.getTime()>=e&&r.push(new Date(i)),i.setHours(i.getHours()+n);return r}function NZ(e,t){let n=[],r=new Date(e);r.setHours(0,0,0,0);let i=r.getDay(),a=i===0?6:i-1;for(r.setDate(r.getDate()-a);r.getTime()<=t;)r.getTime()>=e&&n.push(new Date(r)),r.setDate(r.getDate()+7);return n}var PZ=class{constructor(e=40){this.groups=[],this.groupIndex=new Map,this.rowHeight=e,this.labelPanel=document.createElement(`div`),this.labelPanel.className=`tg-label-panel`,this.labelPanel.setAttribute(`role`,`rowheader`),this.contentArea=document.createElement(`div`),this.contentArea.className=`tg-content`,this.contentArea.setAttribute(`role`,`grid`)}getLabelPanel(){return this.labelPanel}getContentArea(){return this.contentArea}getRowHeight(){return this.rowHeight}getGroups(){return this.groups}getGroupCount(){return this.groups.length}getGroupAtIndex(e){return this.groups[e]}yToGroupId(e){let t=Math.floor(e/this.rowHeight);return t<0||t>=this.groups.length?null:this.groups[t].id}groupIdToRowIndex(e){return this.groupIndex.get(e)??-1}getRowRange(e,t){let n=Math.max(0,Math.floor(Math.min(e,t)/this.rowHeight)),r=Math.min(this.groups.length-1,Math.floor(Math.max(e,t)/this.rowHeight)),i=[];for(let e=n;e<=r;e++)i.push(this.groups[e].id);return i}getRowTop(e){return e*this.rowHeight}setGroups(e){this.groups=e.slice().sort((e,t)=>e.order!==void 0&&t.order!==void 0?e.order-t.order:e.order===void 0?t.order===void 0?e.content.localeCompare(t.content,void 0,{numeric:!0}):1:-1),this.groupIndex.clear();for(let e=0;e<this.groups.length;e++)this.groupIndex.set(this.groups[e].id,e)}render(){this.renderLabels(),this.renderRows()}renderLabels(){this.labelPanel.innerHTML=``;for(let e of this.groups){let t=document.createElement(`div`);t.className=`tg-label`,t.style.height=`${this.rowHeight}px`,t.textContent=e.content,t.title=e.content,t.dataset.groupId=e.id,this.labelPanel.appendChild(t)}}renderRows(){this.contentArea.querySelectorAll(`.tg-row`).forEach(e=>e.remove());for(let e=0;e<this.groups.length;e++){let t=document.createElement(`div`);t.className=`tg-row`,t.style.height=`${this.rowHeight}px`,t.style.top=`${e*this.rowHeight}px`,t.dataset.groupId=this.groups[e].id,this.contentArea.appendChild(t)}this.contentArea.style.height=`${this.groups.length*this.rowHeight}px`}destroy(){this.labelPanel.remove(),this.contentArea.remove()}},FZ=class{constructor(e,t){this.items=[],this.itemElements=new Map,this.ghostEl=null,this.ghostCountBadge=null,this.scale=e,this.layout=t,this.contentArea=t.getContentArea()}setItems(e){this.items=e}render(){for(let e of this.itemElements.values())e.remove();this.itemElements.clear(),this.contentArea.querySelectorAll(`[data-item-id]`).forEach(e=>{e.dataset.itemId!==`__ghost__`&&e.remove()});for(let e of this.items){let t=this.renderItem(e);t&&(this.contentArea.appendChild(t),this.itemElements.set(e.id,t))}}renderItem(e){let t=this.layout.groupIdToRowIndex(e.group);if(t===-1)return null;let n=e.start instanceof Date?e.start:new Date(e.start),r=e.end?e.end instanceof Date?e.end:new Date(e.end):n,i=this.scale.timeToX(n),a=this.scale.timeToX(r)-i,o=this.layout.getRowTop(t),s=this.layout.getRowHeight();if(a<.5)return null;let c=document.createElement(`div`);if(c.dataset.itemId=e.id,c.title=e.title||e.content,e.type===`background`||e.isSegment)c.className=`tg-item-background ${e.className||``}`.trim(),e.style&&(c.style.cssText=e.style),c.style.position=`absolute`,c.style.left=`${i}px`,c.style.top=`${o}px`,c.style.width=`${a}px`,c.style.height=`${s}px`,c.style.pointerEvents=`none`;else{c.className=`tg-item tg-item-range ${e.className||``}`.trim(),e.style&&(c.style.cssText+=e.style),c.style.position=`absolute`,c.style.left=`${i}px`,c.style.top=`${o+2}px`,c.style.width=`${a}px`,c.style.height=`${s-4}px`,c.style.cursor=`move`;let t=document.createElement(`span`);t.className=`tg-item-content`,t.textContent=e.content,c.appendChild(t);let n=document.createElement(`div`);n.className=`tg-resize-handle tg-resize-left`,n.dataset.handle=`left`,c.appendChild(n);let r=document.createElement(`div`);r.className=`tg-resize-handle tg-resize-right`,r.dataset.handle=`right`,c.appendChild(r)}return c}updateItemPosition(e,t,n,r){let i=this.itemElements.get(e);i&&(i.style.left=`${t}px`,i.style.top=`${n+2}px`,i.style.width=`${r}px`)}showGhost(e){if(!this.ghostEl){this.ghostEl=document.createElement(`div`),this.ghostEl.className=`tg-ghost`,this.ghostEl.dataset.itemId=`__ghost__`;for(let e of[`left`,`right`,`top`,`bottom`]){let t=document.createElement(`div`);t.className=`tg-resize-handle tg-resize-${e}`,t.dataset.handle=e,this.ghostEl.appendChild(t)}this.ghostCountBadge=document.createElement(`div`),this.ghostCountBadge.className=`tg-ghost-count`,this.ghostEl.appendChild(this.ghostCountBadge),this.contentArea.appendChild(this.ghostEl)}let t=this.scale.timeToX(e.startTime),n=this.scale.timeToX(e.endTime)-t,r=this.layout.getRowHeight(),i=e.topRowIndex*r,a=(e.bottomRowIndex-e.topRowIndex+1)*r,o=e.bottomRowIndex-e.topRowIndex+1;this.ghostEl.style.left=`${t}px`,this.ghostEl.style.top=`${i}px`,this.ghostEl.style.width=`${n}px`,this.ghostEl.style.height=`${a}px`,this.ghostEl.style.display=`block`,this.ghostCountBadge&&(this.ghostCountBadge.textContent=`${o} court${o>1?`s`:``}`,this.ghostCountBadge.style.display=o>1?`flex`:`none`)}clearGhost(){this.ghostEl&&(this.ghostEl.remove(),this.ghostEl=null,this.ghostCountBadge=null)}isGhostVisible(){return this.ghostEl!==null&&this.ghostEl.style.display!==`none`}highlightRows(e){this.clearHighlights();for(let t of e){let e=this.contentArea.querySelectorAll(`.tg-row`);e[t]&&e[t].classList.add(`tg-row-highlight`)}}clearHighlights(){this.contentArea.querySelectorAll(`.tg-row-highlight`).forEach(e=>{e.classList.remove(`tg-row-highlight`)})}static hitTest(e){if(!(e instanceof HTMLElement))return{itemId:null,handle:null};let t=e.closest(`.tg-resize-handle`)?.dataset.handle??null;return{itemId:e.closest(`[data-item-id]`)?.dataset.itemId??null,handle:t}}destroy(){this.clearGhost(),this.clearHighlights();for(let e of this.itemElements.values())e.remove();this.itemElements.clear()}},IZ=3,LZ=30,RZ=8,zZ=36e5,BZ=class{constructor(e,t,n,r,i=5,a=!1){this.mode=`IDLE`,this.gesture=null,this.items=[],this.ghostStartTime=null,this.ghostEndTime=null,this.ghostTopRow=0,this.ghostBottomRow=0,this.justDragged=!1,this.autoScrollRaf=null,this.autoScrollDelta=0,this.scrollContainer=null,this.onPointerDown=e=>{if(e.button!==0)return;let{itemId:t,handle:n}=FZ.hitTest(e.target);if(this.mode===`GHOST_EDITING`){if(t===`__ghost__`&&n){this.startGesture(e,`__ghost__`,n===`left`?`RESIZING_LEFT`:n===`right`?`RESIZING_RIGHT`:n===`top`?`RESIZING_TOP`:`RESIZING_BOTTOM`);return}if(t===`__ghost__`&&!n){this.confirmGhost();return}this.cancelGhost();return}if(t){if(n===`left`)this.startGesture(e,t,`RESIZING_LEFT`);else if(n===`right`)this.startGesture(e,t,`RESIZING_RIGHT`);else{let n=this.items.find(e=>e.id===t);if(!n||n.isSegment||n.type===`background`)return;this.startGesture(e,t,`DRAGGING`)}}},this.onPointerMove=e=>{if(this.gesture){if(this.gesture.currentX=e.clientX,this.gesture.currentY=e.clientY,!this.gesture.thresholdExceeded){let t=Math.abs(e.clientX-this.gesture.startX),n=Math.abs(e.clientY-this.gesture.startY);if(t<IZ&&n<IZ)return;this.gesture.thresholdExceeded=!0}switch(this.checkAutoScroll(e),this.mode){case`DRAGGING`:this.handleDragMove(e);break;case`RESIZING_LEFT`:case`RESIZING_RIGHT`:this.gesture.itemId===`__ghost__`?this.handleGhostTimeResize(e):this.handleResizeMove(e);break;case`RESIZING_TOP`:case`RESIZING_BOTTOM`:this.handleGhostRowResize(e)}}},this.onPointerUp=e=>{if(document.removeEventListener(`pointermove`,this.onPointerMove),document.removeEventListener(`pointerup`,this.onPointerUp),this.stopAutoScroll(),!this.gesture){this.mode=`IDLE`;return}let t=this.gesture.itemId===`__ghost__`;if(!this.gesture.thresholdExceeded&&!t){this.gesture.itemId&&this.callbacks.onItemClick?.(this.gesture.itemId,e),this.gesture=null,this.mode=`IDLE`,this.renderer.clearHighlights();return}if(t){this.gesture=null,this.mode=`GHOST_EDITING`;return}if(this.gesture.itemId&&this.gesture.thresholdExceeded){this.justDragged=!0,setTimeout(()=>this.justDragged=!1,300);let t=(e.clientX-this.gesture.startX)*this.scale.msPerPx,n=this.gesture.originalEnd.getTime()-this.gesture.originalStart.getTime(),r,i,a=this.gesture.originalGroup;if(this.mode===`DRAGGING`){r=this.scale.snap(new Date(this.gesture.originalStart.getTime()+t),this.snapMinutes),i=new Date(r.getTime()+n);let o=this.contentArea.getBoundingClientRect(),s=e.clientY-o.top+this.contentArea.scrollTop;a=this.layout.yToGroupId(s)||this.gesture.originalGroup}else this.mode===`RESIZING_LEFT`?(r=this.scale.snap(new Date(this.gesture.originalStart.getTime()+t),this.snapMinutes),i=this.gesture.originalEnd,r>=i&&(r=new Date(i.getTime()-this.snapMinutes*60*1e3))):(r=this.gesture.originalStart,i=this.scale.snap(new Date(this.gesture.originalEnd.getTime()+t),this.snapMinutes),i<=r&&(i=new Date(r.getTime()+this.snapMinutes*60*1e3)));this.callbacks.onMove?.({id:this.gesture.itemId,group:a,start:r,end:i})}this.gesture=null,this.mode=`IDLE`,this.renderer.clearHighlights()},this.onDblClick=e=>{if(this.justDragged)return;let{itemId:t}=FZ.hitTest(e.target);if(t)return;let n=this.contentArea.getBoundingClientRect(),r=e.clientX-n.left+this.contentArea.scrollLeft,i=e.clientY-n.top+this.contentArea.scrollTop,a=this.scale.xToTime(r),o=this.scale.snap(a,this.snapMinutes),s=new Date(o.getTime()+zZ),c=this.layout.yToGroupId(i);if(!c)return;let l=this.layout.groupIdToRowIndex(c);l<0||(this.ghostStartTime=o,this.ghostEndTime=s,this.ghostTopRow=l,this.ghostBottomRow=l,this.mode=`GHOST_EDITING`,this.renderer.showGhost({startTime:o,endTime:s,topRowIndex:l,bottomRowIndex:l}),this.renderer.highlightRows([l]))},this.onWheel=e=>{if(!e.ctrlKey&&!e.metaKey||this.enablePinchZoom){if(e.preventDefault(),(e.ctrlKey||e.metaKey)&&this.enablePinchZoom){let t=e.deltaY>0?1.15:.87,n=this.contentArea.getBoundingClientRect(),r=e.clientX-n.left;this.scale.zoom(t,r)}else if(e.shiftKey||Math.abs(e.deltaX)>Math.abs(e.deltaY)){let t=e.deltaX||e.deltaY;this.scale.pan(t)}else{this.scrollContainer&&(this.scrollContainer.scrollTop+=e.deltaY);return}this.onScaleChanged?.()}},this.onScaleChanged=null,this.onKeyDown=e=>{e.key===`Escape`&&this.mode===`GHOST_EDITING`&&this.cancelGhost()},this.scale=e,this.layout=t,this.renderer=n,this.contentArea=t.getContentArea(),this.wheelTarget=this.contentArea,this.callbacks=r,this.snapMinutes=i,this.enablePinchZoom=a}setItems(e){this.items=e}setScrollContainer(e){this.scrollContainer=e}setWheelTarget(e){this.wheelTarget=e}attach(){this.contentArea.addEventListener(`pointerdown`,this.onPointerDown),this.contentArea.addEventListener(`dblclick`,this.onDblClick),this.wheelTarget.addEventListener(`wheel`,this.onWheel,{passive:!1}),document.addEventListener(`keydown`,this.onKeyDown)}detach(){this.contentArea.removeEventListener(`pointerdown`,this.onPointerDown),this.contentArea.removeEventListener(`dblclick`,this.onDblClick),this.wheelTarget.removeEventListener(`wheel`,this.onWheel),document.removeEventListener(`keydown`,this.onKeyDown),document.removeEventListener(`pointermove`,this.onPointerMove),document.removeEventListener(`pointerup`,this.onPointerUp),this.stopAutoScroll()}getMode(){return this.mode}startGesture(e,t,n){e.preventDefault();let r=this.items.find(e=>e.id===t),i,a,o;if(t===`__ghost__`)i=this.ghostStartTime,a=this.ghostEndTime,o=``;else if(r)i=r.start instanceof Date?r.start:new Date(r.start),a=r.end?r.end instanceof Date?r.end:new Date(r.end):i,o=r.group;else return;this.gesture={mode:n,itemId:t,startX:e.clientX,startY:e.clientY,originalStart:i,originalEnd:a,originalGroup:o,currentX:e.clientX,currentY:e.clientY,thresholdExceeded:!1},this.mode=n,this.contentArea.setPointerCapture(e.pointerId),document.addEventListener(`pointermove`,this.onPointerMove),document.addEventListener(`pointerup`,this.onPointerUp)}handleDragMove(e){if(!this.gesture||!this.gesture.itemId)return;let t=(e.clientX-this.gesture.startX)*this.scale.msPerPx,n=this.gesture.originalEnd.getTime()-this.gesture.originalStart.getTime(),r=this.scale.snap(new Date(this.gesture.originalStart.getTime()+t),this.snapMinutes),i=new Date(r.getTime()+n),a=this.contentArea.getBoundingClientRect(),o=e.clientY-a.top+this.contentArea.scrollTop,s=this.layout.yToGroupId(o)||this.gesture.originalGroup;if(this.callbacks.onMoving){let e=this.callbacks.onMoving({id:this.gesture.itemId,group:s,start:r,end:i});if(e===null)return;r=e.start,i=e.end}let c=this.scale.timeToX(r),l=this.scale.timeToX(i)-c,u=this.layout.groupIdToRowIndex(s),d=this.layout.getRowTop(u>=0?u:0);this.renderer.updateItemPosition(this.gesture.itemId,c,d,l),u>=0&&this.renderer.highlightRows([u])}handleResizeMove(e){if(!this.gesture||!this.gesture.itemId)return;let t=(e.clientX-this.gesture.startX)*this.scale.msPerPx,n=this.gesture.originalStart,r=this.gesture.originalEnd;if(this.mode===`RESIZING_LEFT`?(n=this.scale.snap(new Date(this.gesture.originalStart.getTime()+t),this.snapMinutes),n>=r&&(n=new Date(r.getTime()-this.snapMinutes*60*1e3))):(r=this.scale.snap(new Date(this.gesture.originalEnd.getTime()+t),this.snapMinutes),r<=n&&(r=new Date(n.getTime()+this.snapMinutes*60*1e3))),this.callbacks.onMoving){let e=this.callbacks.onMoving({id:this.gesture.itemId,group:this.gesture.originalGroup,start:n,end:r});if(e===null)return;n=e.start,r=e.end}let i=this.scale.timeToX(n),a=this.scale.timeToX(r)-i,o=this.layout.groupIdToRowIndex(this.gesture.originalGroup),s=this.layout.getRowTop(o>=0?o:0);this.renderer.updateItemPosition(this.gesture.itemId,i,s,a)}handleGhostTimeResize(e){if(!this.gesture)return;let t=this.contentArea.getBoundingClientRect(),n=e.clientX-t.left+this.contentArea.scrollLeft,r=this.scale.snap(this.scale.xToTime(n),this.snapMinutes);this.mode===`RESIZING_LEFT`?r<this.ghostEndTime&&(this.ghostStartTime=r):r>this.ghostStartTime&&(this.ghostEndTime=r),this.updateGhostDisplay()}handleGhostRowResize(e){if(!this.gesture)return;let t=this.contentArea.getBoundingClientRect(),n=e.clientY-t.top+this.contentArea.scrollTop,r=Math.floor(n/this.layout.getRowHeight()),i=Math.max(0,Math.min(this.layout.getGroupCount()-1,r));this.mode===`RESIZING_TOP`?i<=this.ghostBottomRow&&(this.ghostTopRow=i):i>=this.ghostTopRow&&(this.ghostBottomRow=i),this.updateGhostDisplay()}updateGhostDisplay(){this.renderer.showGhost({startTime:this.ghostStartTime,endTime:this.ghostEndTime,topRowIndex:this.ghostTopRow,bottomRowIndex:this.ghostBottomRow});let e=[];for(let t=this.ghostTopRow;t<=this.ghostBottomRow;t++)e.push(t);this.renderer.highlightRows(e)}confirmGhost(){if(!this.ghostStartTime||!this.ghostEndTime){this.cancelGhost();return}let e=[];for(let t=this.ghostTopRow;t<=this.ghostBottomRow;t++){let n=this.layout.getGroupAtIndex(t);n&&e.push(n.id)}if(e.length===0){this.cancelGhost();return}let t={groupIds:e,topRowIndex:this.ghostTopRow,bottomRowIndex:this.ghostBottomRow,startTime:this.ghostStartTime,endTime:this.ghostEndTime};this.renderer.clearGhost(),this.renderer.clearHighlights(),this.mode=`IDLE`,this.callbacks.onMultiRowCreate?.(t),this.ghostStartTime=null,this.ghostEndTime=null}cancelGhost(){this.renderer.clearGhost(),this.renderer.clearHighlights(),this.mode=`IDLE`,this.ghostStartTime=null,this.ghostEndTime=null}checkAutoScroll(e){if(!this.scrollContainer)return;let t=this.scrollContainer.getBoundingClientRect(),n=t.bottom-e.clientY,r=e.clientY-t.top;n<LZ?(this.autoScrollDelta=RZ*(1-n/LZ),this.startAutoScroll()):r<LZ?(this.autoScrollDelta=-8*(1-r/LZ),this.startAutoScroll()):this.stopAutoScroll()}startAutoScroll(){if(this.autoScrollRaf!==null)return;let e=()=>{this.scrollContainer&&(this.scrollContainer.scrollTop+=this.autoScrollDelta,this.autoScrollRaf=requestAnimationFrame(e))};this.autoScrollRaf=requestAnimationFrame(e)}stopAutoScroll(){this.autoScrollRaf!==null&&(cancelAnimationFrame(this.autoScrollRaf),this.autoScrollRaf=null),this.autoScrollDelta=0}},VZ=class{constructor(e,t,n,r={}){this.callbacks={},this.resizeObserver=null,this._batchUpdating=!1,this.eventListeners=new Map,this.options={rowHeight:40,...r};let i=new Date,a=r.start||i,o=r.end||new Date(i.getTime()+432e5),s=e.clientWidth||800;this.scale=new TZ(a,o,s),(r.min||r.max||r.zoomMin||r.zoomMax)&&this.scale.setLimits({min:r.min,max:r.max,zoomMin:r.zoomMin,zoomMax:r.zoomMax}),this.timeAxis=new OZ(this.scale,r.timeAxis),this.layout=new PZ(this.options.rowHeight),this.renderer=new FZ(this.scale,this.layout),this.interaction=new BZ(this.scale,this.layout,this.renderer,this.callbacks,5,r.enablePinchZoom??!1),this.rootEl=document.createElement(`div`),this.rootEl.className=`tg-timeline`,r.height&&(this.rootEl.style.height=r.height);let c=document.createElement(`div`);c.className=`tg-axis-header`;let l=document.createElement(`div`);l.className=`tg-axis-spacer`,c.appendChild(l),c.appendChild(this.timeAxis.getDayElement()),c.appendChild(this.timeAxis.getHourElement()),this.rootEl.appendChild(c),this.bodyEl=document.createElement(`div`),this.bodyEl.className=`tg-body`,this.bodyEl.appendChild(this.layout.getLabelPanel());let u=document.createElement(`div`);u.className=`tg-scroll-wrapper`,u.appendChild(this.layout.getContentArea()),this.bodyEl.appendChild(u),this.rootEl.appendChild(this.bodyEl),e.appendChild(this.rootEl),u.addEventListener(`scroll`,()=>{this.layout.getLabelPanel().scrollTop=u.scrollTop}),this.interaction.setScrollContainer(u),this.interaction.setWheelTarget(this.rootEl),this.interaction.onScaleChanged=()=>this.renderAll(),this.layout.setGroups(n),this.renderer.setItems(t),this.interaction.setItems(t),this.interaction.attach(),this.renderAll(),this.resizeObserver=new ResizeObserver(()=>{let t=u.clientWidth||e.clientWidth;this.scale.setWidth(t),this.renderAll()}),this.resizeObserver.observe(u)}setGroups(e){this.layout.setGroups(e),this.renderAll()}setItems(e){this.renderer.setItems(e),this.interaction.setItems(e),this.renderAll()}setWindow(e,t,n){this.scale.setWindow(e,t),this.renderAll()}setOptions(e){(e.min!==void 0||e.max!==void 0||e.zoomMin!==void 0||e.zoomMax!==void 0)&&this.scale.setLimits({min:e.min,max:e.max,zoomMin:e.zoomMin,zoomMax:e.zoomMax}),e.timeAxis&&this.timeAxis.setTimeAxisOptions(e.timeAxis),e.rowHeight!==void 0&&(this.options.rowHeight=e.rowHeight),Object.assign(this.options,e),this.renderAll()}on(e,t){this.eventListeners.has(e)||this.eventListeners.set(e,new Set),this.eventListeners.get(e).add(t),e===`click`&&(this.callbacks.onItemClick=(e,t)=>{this.emit(`click`,{item:e,event:t})})}off(e,t){this.eventListeners.get(e)?.delete(t)}emit(e,t){let n=this.eventListeners.get(e);if(n)for(let e of n)e(t)}onMultiRowCreate(e){this.callbacks.onMultiRowCreate=e}onAdd(e){this.callbacks.onAdd=e}onMove(e){this.callbacks.onMove=e}onMoving(e){this.callbacks.onMoving=e}onDayClick(e){this.timeAxis.onDayClick=e}getContentElement(){return this.layout.getContentArea()}setDailyBounds(e,t){this.scale.setDailyBounds(e,t),this.renderAll()}clearDailyBounds(){this.scale.clearDailyBounds(),this.renderAll()}setVisibleDays(e){this.scale.setVisibleDays(e),this.renderAll()}clearVisibleDays(){this.scale.clearVisibleDays(),this.renderAll()}beginBatchUpdate(){this._batchUpdating=!0}endBatchUpdate(){this._batchUpdating=!1,this.renderAll()}renderAll(){if(this._batchUpdating)return;this.timeAxis.render(),this.layout.render(),this.renderer.render();let e=this.layout.getContentArea(),t=this.layout.getGroupCount()*(this.options.rowHeight??40);this.timeAxis.renderGridlines(e,t)}destroy(){this.interaction.detach(),this.resizeObserver?.disconnect(),this.timeAxis.destroy(),this.layout.destroy(),this.renderer.destroy(),this.rootEl.remove(),this.eventListeners.clear()}},HZ={day:{label:`1 Day`,days:1,timeAxis:{scale:`hour`,step:1}},days3:{label:`3 Days`,days:3,timeAxis:{scale:`hour`,step:3}},week:{label:`Week`,days:7,timeAxis:{scale:`hour`,step:6}},all:{label:`Tournament`,days:0,timeAxis:{scale:`hour`,step:6}}};function UZ(e,t,n,r){let i=r?.labels,a=document.createElement(`div`);a.className=`tg-view-toolbar`;let o=document.createElement(`span`);o.textContent=(i?.view??`View`)+`:`,o.className=`tg-view-toolbar-label`,a.appendChild(o);let s=document.createElement(`input`);s.type=`text`,s.readOnly=!0,s.className=`tg-view-toolbar-date`,n&&s.addEventListener(`changeDate`,()=>{let e=s.value;e&&n(e)}),a.appendChild(s);let c={day:i?.day1??`1 Day`,days3:i?.days3??`3 Days`,week:i?.week??`Week`,all:i?.tournament??`Tournament`},l=[],u=[],d=t||`day`,f=e=>{l.forEach((t,n)=>{t.className=u[n]===e?`sp-btn sp-btn--active`:`sp-btn`})};for(let[t]of Object.entries(HZ)){let n=document.createElement(`button`);n.textContent=c[t],n.className=t===d?`sp-btn sp-btn--active`:`sp-btn`,n.addEventListener(`click`,()=>{f(t),e(t)}),l.push(n),u.push(t),a.appendChild(n)}if(r?.onSetDefaultAvailability||r?.onSave){let e=document.createElement(`div`);e.className=`tg-view-toolbar-spacer`,a.appendChild(e)}if(r?.onSetDefaultAvailability){let e=document.createElement(`button`);e.textContent=i?.setDefaultAvailability??`Set Default Availability`,e.className=`sp-btn sp-btn--fill-muted`,e.addEventListener(`click`,r.onSetDefaultAvailability),a.appendChild(e)}let p=null;return r?.onSave&&(p=document.createElement(`button`),p.textContent=i?.saveToTournament??`Save to Tournament`,p.className=`sp-btn sp-btn--fill`,p.disabled=!0,p.addEventListener(`click`,r.onSave),a.appendChild(p)),{element:a,dateInput:s,setActiveView:f,setDate:e=>{s.value=e},setSaveEnabled:e=>{p&&(p.disabled=!e)}}}var{BLOCK_TYPES:WZ}=t.availability,GZ=class{constructor(e,t){this.timeline=null,this.disposed=!1,this.unsubscribe=null,this.currentItems=new Map,this.isRendering=!1,this.popoverManager=wZ(),this.viewState=new VG,this.currentDay=null,this.currentView=`day`,this.selectedCourts=new Set,this.visibleCourts=null,this.handleOnMove=e=>{let t=_Z(e.id);if(!t)return!1;let n=gZ(e.group),r=this.toLocalISO(e.start),i=this.toLocalISO(e.end),a=this.engine.moveBlock({blockId:t,newTimeRange:{start:r,end:i},newCourt:n||void 0});return a.conflicts.some(e=>e.severity===`ERROR`)?(this.showConflictDialog(a.conflicts),!1):(this.render(),!0)},this.handleOnMoving=e=>{this.popoverManager.destroy();let t=this.currentItems.get(e.id);if(t&&(t.isSegment||t.type===`background`))return null;let{start:n,end:r}=e,i=gZ(e.group);if(i){let e=n.toISOString().slice(0,10),t=this.engine.getCourtAvailability(i,e),a=new Date(`${e}T${t.startTime}:00`),o=new Date(`${e}T${t.endTime}:00`);n<a&&(n=a),r>o&&(r=o)}return{start:n,end:r}},this.handleTimelineClick=e=>{let t=e.item;if(!t){this.popoverManager.destroy();return}let n=this.currentItems.get(t);if(!n){this.popoverManager.destroy();return}if(n.isSegment||n.type===`background`){this.popoverManager.destroy();return}if(this.popoverManager.isActiveFor(t)){this.popoverManager.destroy();return}let r=_Z(t);if(!r)return;let i=(e.event?.target)?.closest?.(`.tg-item`)??this.config.container.querySelector(`[data-item-id="${t}"]`);if(i){let e=String(n.start).slice(0,10);this.popoverManager.showForEngineBlock(i,{itemId:t,blockId:r,engine:this.engine,day:e,onBlockChanged:()=>this.render(),onManageRegistrations:this.config.onManageRegistrations})}this.config.onBlockSelected&&this.config.onBlockSelected(r)},this.handleMultiRowCreate=e=>{let t=[];for(let n of e.groupIds){let e=gZ(n);e&&t.push(e)}if(t.length===0)return;let n=this.toLocalISO(e.startTime),r=this.toLocalISO(e.endTime),i=this.engine.applyBlock({courts:t,timeRange:{start:n,end:r},type:WZ.BLOCKED,reason:`New Block`});if(this.render(),i.applied.length>0){let e=i.applied[0].block.id,t=`block-${e}`,r=n.slice(0,10);clearTimeout(this.popoverTimer),this.popoverTimer=setTimeout(()=>{if(this.popoverTimer=void 0,this.disposed)return;let n=this.config.container.querySelector(`[data-item-id="${t}"]`);n&&this.popoverManager.showForEngineBlock(n,{itemId:t,blockId:e,engine:this.engine,day:r,onBlockChanged:()=>this.render(),onManageRegistrations:this.config.onManageRegistrations})},50)}this.config.onTimeRangeSelected&&this.config.onTimeRangeSelected({courts:t,start:n,end:r})},this.handleEngineEvent=e=>{switch(e.type){case`STATE_CHANGED`:case`BLOCKS_CHANGED`:this.render(),e.type===`BLOCKS_CHANGED`&&this.config.onBlocksChanged&&this.config.onBlocksChanged();break;case`CONFLICTS_CHANGED`:this.config.showConflicts&&this.render();break;case`AVAILABILITY_CHANGED`:this.updateTimelineWindow(),this.render()}},this.engine=e,this.config={groupingMode:`BY_VENUE`,showConflicts:!0,showSegmentLabels:!1,colorScheme:lZ,...t},this.initialize()}initialize(){if(this.config.initialDay)this.currentDay=this.config.initialDay;else{let e=this.engine.getActiveDays();this.currentDay=e.length>0?e[0]:t.tools.dateTime.extractDate(new Date().toISOString())}this.viewState.setSelectedDay(this.currentDay),this.config.initialView&&(this.currentView=this.config.initialView),this.unsubscribe=this.engine.subscribe(this.handleEngineEvent),this.ensureTimeline()}ensureTimeline(){this.disposed||this.timeline||this.mountTimer!==void 0||(this.mountTimer=setTimeout(()=>{this.mountTimer=void 0,!this.disposed&&!this.timeline&&this.createTimelineWithData()},0))}getViewDays(){if(!this.currentDay)return[];let e=HZ[this.currentView],t=e?e.days:1;if(t<=0)return this.engine.getActiveDays();if(t<=1)return[this.currentDay];let n=this.engine.getActiveDays(),r=n.indexOf(this.currentDay);return r===-1?[this.currentDay]:n.slice(r,r+t)}buildViewData(){if(!this.currentDay)return{groups:[],items:[]};let e=this.getViewDays(),t=this.engine.listCourtMeta(),n=this.viewState.getLayerVisibility(),r={groupingMode:this.config.groupingMode,layerVisibility:n,showSegmentLabels:this.config.showSegmentLabels,colorScheme:this.config.colorScheme},i=uZ(this.engine.getDayTimeline(e[0]),t,r);this.visibleCourts!==null&&(i=i.filter(e=>this.visibleCourts.has(String(e.id))));let a=this.visibleCourts===null?null:new Set(i.map(e=>String(e.id))),o=e.length<=1?this.engine.getActiveDays():e,s=[],c=[];for(let e of o){let t=this.engine.getDayTimeline(e);s.push(...dZ(t,r)),c.push(...pZ(this.engine.getDayBlocks(e),r))}let l=a?s.filter(e=>a.has(String(e.group))):s,u=a?c.filter(e=>a.has(String(e.group))):c,d=[...l,...u];return{groups:i.map((e,t)=>({id:String(e.id),content:typeof e.content==`string`?e.content:``,order:t,courtRef:e.courtRef,surface:e.surface,indoor:e.indoor,hasLights:e.hasLights,tags:e.tags})),items:d.map(e=>({id:String(e.id),group:String(e.group),content:e.content,start:e.start,end:e.end,type:e.type===`background`?`background`:`range`,className:e.className,style:e.style,title:e.title,editable:e.editable,blockId:e.blockId,status:e.status,reason:e.reason,isBlock:e.isBlock,isSegment:e.isSegment,isConflict:e.isConflict}))}}createTimelineWithData(){let e=this.engine.getConfig(),n=this.currentDay||t.tools.dateTime.extractDate(new Date().toISOString()),r=this.getViewDays(),i=r[0]||n,a=r[r.length-1]||n,o=this.engine.getVisibleTimeRange(i),s=this.engine.getVisibleTimeRange(a),c=vZ({dayStartTime:o.startTime,dayEndTime:o.endTime,slotMinutes:e.slotMinutes,day:i}),l=HZ[this.currentView],u=r.length>1?new Date(`${a}T${s.endTime}:00`):c.end,d=this.engine.getActiveDays(),f=d[0]||i,p=d[d.length-1]||a,m=this.engine.getVisibleTimeRange(f),h=this.engine.getVisibleTimeRange(p),g=new Date(`${f}T${m.startTime}:00`),_=new Date(`${p}T${h.endTime}:00`),{groups:v,items:y}=this.buildViewData();this.currentItems.clear();for(let e of y)this.currentItems.set(e.id,e);this.timeline=new VZ(this.config.container,y,v,{start:c.start,end:u,min:g,max:_,zoomMin:c.zoomMin,zoomMax:_.getTime()-g.getTime(),snap:e=>this.snapToMinutes(e,5),rowHeight:40,height:`100%`,timeAxis:l?l.timeAxis:{scale:`hour`,step:1},showTooltips:!0}),this.timeline.setDailyBounds(o.startTime,o.endTime),r.length>1&&this.timeline.setVisibleDays(r),this.timeline.on(`click`,this.handleTimelineClick),this.timeline.onMove(this.handleOnMove),this.timeline.onMoving(this.handleOnMoving),this.timeline.onMultiRowCreate(this.handleMultiRowCreate),this.timeline.onDayClick(e=>{this.setDay(e),this.setViewPreset(`day`),this.config.onDayNavigate?.(e)}),this.config.onBlocksChanged?.()}setDay(e){this.currentDay!==e&&(this.currentDay=e,this.viewState.setSelectedDay(e),this.updateTimelineWindow(),this.render())}getDay(){return this.currentDay}setView(e){this.currentView=e,this.updateTimelineWindow()}setViewPreset(e){let t=HZ[e];if(!t||!this.timeline||!this.currentDay)return;this.currentView=e;let n=this.getViewDays(),r=n[0],i=n[n.length-1],a=this.engine.getVisibleTimeRange(r),o=this.engine.getVisibleTimeRange(i);this.timeline.beginBatchUpdate();let s=t.days===0||t.days>1;this.timeline.setDailyBounds(a.startTime,a.endTime),s?this.timeline.setVisibleDays(n):this.timeline.clearVisibleDays();let c=new Date(`${r}T${a.startTime}:00`),l=new Date(`${i}T${o.endTime}:00`);this.timeline.setWindow(c,l,{animation:!1}),this.timeline.setOptions({timeAxis:t.timeAxis});let{groups:u,items:d}=this.buildViewData();this.currentItems.clear();for(let e of d)this.currentItems.set(e.id,e);this.timeline.setGroups(u),this.timeline.setItems(d),this.timeline.endBatchUpdate(),this.config.onBlocksChanged?.()}setSelectedCourts(e){this.selectedCourts=new Set(e)}getSelectedCourts(){return Array.from(this.selectedCourts)}setVisibleCourts(e){this.visibleCourts=e===null?null:new Set(e),this.render()}setLayerVisibility(e,t){this.viewState.setLayerVisibility(e,t),this.render()}refresh(){this.updateTimelineWindow(),this.render()}destroy(){this.disposed||(this.disposed=!0,clearTimeout(this.mountTimer),clearTimeout(this.popoverTimer),this.mountTimer=void 0,this.popoverTimer=void 0,this.popoverManager.destroy(),this.unsubscribe&&this.unsubscribe(),this.timeline&&=(this.timeline.destroy(),null))}updateTimelineWindow(){if(!this.timeline||!this.currentDay)return;let e=this.engine.getConfig(),t=this.getViewDays(),n=t[0]||this.currentDay,r=t[t.length-1]||this.currentDay,i=this.engine.getVisibleTimeRange(n),a=this.engine.getVisibleTimeRange(r),o=vZ({dayStartTime:i.startTime,dayEndTime:i.endTime,slotMinutes:e.slotMinutes,day:n}),s=HZ[this.currentView],c=t.length>1?new Date(`${r}T${a.endTime}:00`):o.end,l=this.engine.getActiveDays(),u=l[0]||n,d=l[l.length-1]||r,f=this.engine.getVisibleTimeRange(u),p=this.engine.getVisibleTimeRange(d),m=new Date(`${u}T${f.startTime}:00`),h=new Date(`${d}T${p.endTime}:00`);this.timeline.beginBatchUpdate(),this.timeline.setDailyBounds(i.startTime,i.endTime),t.length>1?this.timeline.setVisibleDays(t):this.timeline.clearVisibleDays(),this.timeline.setOptions({min:m,max:h}),this.timeline.setWindow(o.start,c,{animation:!1}),s&&this.timeline.setOptions({timeAxis:s.timeAxis}),this.timeline.endBatchUpdate()}render(){if(this.currentDay&&!this.isRendering){if(!this.timeline){this.ensureTimeline();return}this.isRendering=!0;try{let{groups:e,items:t}=this.buildViewData();this.currentItems.clear();for(let e of t)this.currentItems.set(e.id,e);this.timeline.setGroups(e),this.timeline.setItems(t)}finally{this.isRendering=!1}}}getPopoverManager(){return this.popoverManager}snapToMinutes(e,t){let n=e.getTime(),r=t*60*1e3,i=Math.round(n/r)*r;return new Date(i)}toLocalISO(e){let t=e=>e.toString().padStart(2,`0`);return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}T${t(e.getHours())}:${t(e.getMinutes())}:${t(e.getSeconds())}`}showConflictDialog(e){let t=e.filter(e=>e.severity===`ERROR`);if(t.length===0)return;if(this.config.onConflict){this.config.onConflict(t);return}let n=t.map(e=>e.message).join(`
|
|
248
|
+
`);console.warn(`[availability-grid] cannot complete operation:\n${n}`)}getTimeline(){return this.timeline}getEngine(){return this.engine}getViewState(){return this.viewState}},KZ,qZ,JZ,YZ=!1;async function XZ(){if(!KZ){let e=await Promise.resolve().then(()=>(sX(),HG));KZ=e.TimepickerUI,qZ=e.PluginRegistry,JZ=(await Promise.resolve().then(()=>(tZ(),cX))).RangePlugin,!YZ&&qZ&&JZ&&(qZ.register(JZ),YZ=!0)}}var ZZ=0;async function QZ(e){let{title:t,currentDay:n,currentStartTime:r,currentEndTime:i,showScopeToggle:a=!0,venueBounds:o,onConfirm:s,onCancel:c,labels:l={}}=e;await XZ();let u=new Date(n+`T12:00:00`).toLocaleDateString(`en-US`,{month:`short`,day:`numeric`}),d=`tp-court-avail-${++ZZ}`,f=a?`current-day`:`all-days`,p=document.createElement(`div`);p.className=`tg-modal`,p.style.cssText=`
|
|
249
249
|
position: fixed; top: 0; left: 0; right: 0; bottom: 0;
|
|
250
250
|
background: var(--chc-bg-overlay); z-index: 10000;
|
|
251
251
|
display: flex; align-items: center; justify-content: center;
|
|
@@ -319,4 +319,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
319
319
|
</div>
|
|
320
320
|
</div>
|
|
321
321
|
`}e.innerHTML=a,e.querySelectorAll(`.court-checkbox`).forEach(e=>{e.addEventListener(`change`,this.handleCourtCheckboxChange)}),e.querySelectorAll(`.venue-checkbox`).forEach(e=>{e.addEventListener(`change`,this.handleVenueCheckboxChange)}),e.querySelectorAll(`.venue-edit-icon`).forEach(e=>{e.addEventListener(`click`,e=>{e.stopPropagation();let t=e.currentTarget,n=t.dataset.venue,r=t.dataset.tournamentId,i=t.dataset.venueName||n,a=this.control?.getDay()||this.engine.getActiveDays()[0]||`2026-01-01`,o=this.engine.getVenueAvailability(r,n),s=this.engine.getConfig();QZ({title:`Venue Defaults \u2014 ${i}`,currentDay:a,currentStartTime:o?.startTime||s.dayStartTime,currentEndTime:o?.endTime||s.dayEndTime,showScopeToggle:!1,onConfirm:({startTime:e,endTime:t})=>{this.engine.setVenueDefaultAvailability(r,n,{startTime:e,endTime:t}),this.engine.clearCourtAvailabilityForVenue(r,n),this.control?.refresh()}})})}),e.querySelectorAll(`.court-edit-icon`).forEach(e=>{e.addEventListener(`click`,e=>{e.stopPropagation();let t=e.currentTarget,n=t.dataset.courtId,r=t.dataset.venueId,i=t.dataset.tournamentId,a=t.dataset.courtName||n,o={tournamentId:i,venueId:r,courtId:n},s=this.control?.getDay()||this.engine.getActiveDays()[0]||`2026-01-01`,c=this.engine.getCourtAvailability(o,s);QZ({title:`Court \u2014 ${a}`,currentDay:s,currentStartTime:c.startTime,currentEndTime:c.endTime,showScopeToggle:!0,onConfirm:({startTime:e,endTime:t,scope:n})=>{n===`all-days`?this.engine.setCourtAvailabilityAllDays(o,{startTime:e,endTime:t}):this.engine.setCourtAvailability(o,s,{startTime:e,endTime:t}),this.control?.refresh()}})})})}updateVenueCheckboxState(e){let t=this.engine.listCourtMeta().filter(t=>t.ref.venueId===e),n=t.filter(e=>{let t=`${e.ref.tournamentId}|${e.ref.venueId}|${e.ref.courtId}`;return this.visibleCourts.has(t)}).length,r=this.venueTreeElement?.querySelector(`.venue-checkbox[data-venue="${e}"]`);r&&(n===0?(r.checked=!1,r.indeterminate=!1):n===t.length?(r.checked=!0,r.indeterminate=!1):(r.checked=!1,r.indeterminate=!0))}getEngine(){return this.engine}getControl(){return this.control}setDay(e){this.control?.setDay(e),this.updateCapacityStats()}refresh(){this.control?.refresh(),this.updateCapacityStats(),this.updateVenueTree()}};function nQ(e,t){let n=new tQ(e);return n.render(t),n}var{LUCKY_DRAW:rQ,ROUND_ROBIN:iQ,AD_HOC:aQ}=t.drawDefinitionConstants;function oQ(e){let t=Math.max(2,e),n=2**Math.floor(Math.log2(t)),r=t-n;if(r<=0)return new Map;let i=new Map,a=0,o=n/2;for(;o>=1;)a++,r&o&&(a++,i.set(a,o)),o=Math.floor(o/2);return i}function sQ(e){let t=Math.max(2,e),n=2**Math.floor(Math.log2(t)),r=t-n,i=0,a=n/2;for(;a>=1;)i++,r&a&&i++,a=Math.floor(a/2);return i}function cQ(e){let t=Math.max(2,e),n=t%2?t+1:t,r=!!(Math.ceil(n/2)%2),i=[{participantsCount:n,preFeedRound:r}];for(;n>2;){let e=Math.ceil(n/2),t=e===1,r=!!(!t&&e%2);n=!t&&r?e+1:e;let a=!!(n!==2&&Math.ceil(n/2)%2);i.push({participantsCount:n,preFeedRound:a,feedRound:r})}return i}function lQ(e){let t=Math.max(2,e);return t&t-1?cQ(e).length:Math.ceil(Math.log2(t))}function uQ(e,t){let n=Math.max(2,e);if(!(n&n-1))return Math.floor(n/2**t);let r=cQ(e),i=t-1;if(i<0||i>=r.length)return 0;let{participantsCount:a,preFeedRound:o}=r[i],s=a/2,c=o?s-1:s;if(t===1&&n%2!=0){let e=a-n;c-=e}return c}function dQ(e,t,n){return e===iQ?(n?.groupSize||Math.min(t,4))-1:e===aQ?n?.roundsCount||1:e===rQ?lQ(t):sQ(t)}function fQ(e,t,n){return e===rQ?uQ(t,n):Math.floor(t/2**n)}var{ROUND_ROBIN:pQ,AD_HOC:mQ,LUCKY_DRAW:hQ}=t.drawDefinitionConstants,gQ=0;function _Q({structureType:e,drawSize:t,stage:n,structureId:r,qualifyingPositions:i,structureOptions:a}){return e===pQ?yQ({drawSize:t,stage:n,structureId:r,structureOptions:a}):e===mQ?xQ({drawSize:t,stage:n,structureId:r,roundsCount:a?.roundsCount||1}):e===hQ?bQ({drawSize:t,stage:n,structureId:r}):vQ({drawSize:t,stage:n,structureId:r,qualifyingPositions:i})}function vQ({drawSize:e,stage:t,structureId:n,qualifyingPositions:r}){let i=Math.max(2,e),a=2**Math.floor(Math.log2(i)),o=i-a,s=[],c=a/2;for(;c>=1;)s.push({count:c,isFeed:!1}),o&c&&s.push({count:c,isFeed:!0}),c=Math.floor(c/2);if(r&&r>0&&e>r){let t=Math.round(Math.log2(e/r));t>0&&s.length>t&&(s.length=t)}let l=s.length,u=[],d=1,f=0,p=new Set;for(let e=0;e<l-1;e++)!s[e].isFeed&&s[e+1].isFeed&&p.add(e);for(let e=0;e<l;e++){let{count:r,isFeed:i}=s[e],a=e+1,o=i?2**Math.max(0,f-1):2**f,c=i||p.has(e);for(let s=1;s<=r;s++){let r=a===1&&!i;u.push({matchUpId:`preview-${++gQ}`,roundNumber:a,roundPosition:s,drawPositions:r?[(s-1)*2+1,(s-1)*2+2]:i?[d++]:[],finishingRound:l-e,roundFactor:o,preFeedRound:c,stage:t,structureId:n})}i||f++}return u}function yQ({drawSize:e,stage:t,structureId:n,structureOptions:r}){let i=[],a=r?.groupSize||Math.min(e,4),o=Math.ceil(e/a),s=a-1;for(let e=0;e<o;e++)for(let r=1;r<=s;r++){let o=Math.floor(a/2);for(let a=1;a<=o;a++)i.push({matchUpId:`preview-${++gQ}`,roundNumber:r,roundPosition:e*o+a,isRoundRobin:!0,stage:t,structureId:`${n}-g${e}`})}return i}function bQ({drawSize:e,stage:t,structureId:n}){let r=Math.max(2,e);if(!(r&r-1))return vQ({drawSize:e,stage:t,structureId:n});let i=cQ(r),a=i.length,o=[],s=1;for(let e=0;e<a;e++){let{participantsCount:r,preFeedRound:c}=i[e],l=r/2,u=e+1;for(let r=1;r<=l;r++){let i=u===1;o.push({matchUpId:`preview-${++gQ}`,roundNumber:u,roundPosition:r,drawPositions:i?[s++,s++]:[],finishingRound:a-e,roundFactor:1,preFeedRound:!!c,stage:t,structureId:n})}}return o}function xQ({drawSize:e,stage:t,structureId:n,roundsCount:r=1}){let i=[];if(e<2)return i;let a=Math.floor(e/2);for(let e=1;e<=r;e++)for(let r=1;r<=a;r++)i.push({matchUpId:`preview-${++gQ}`,roundNumber:e,roundPosition:r,finishingRound:1,stage:t,structureId:n});return i}var{ROUND_ROBIN:SQ}=t.drawDefinitionConstants,CQ=new Map;function wQ(e,n,r){let i=`${e}:${n}:${r||``}`,a=CQ.get(i);if(a)return a;try{let a={drawSize:n,drawType:e};r&&(a.structureOptions={groupSize:r});let{tournamentRecord:o}=t.mocksEngine.generateTournamentRecord({drawProfiles:[a]}),s=o?.events?.[0]?.drawDefinitions?.[0];if(!s)return TQ(i,{});let c=(s.structures||[])[0];if(!c)return TQ(i,{});let l=c.structureType===`CONTAINER`,u={};if(l||e===SQ){let{availablePlayoffProfiles:e}=t.drawsGovernor.getAvailablePlayoffProfiles({drawDefinition:s}),n=e?.[0];n&&(u={playoffFinishingPositionRanges:n.playoffFinishingPositionRanges,finishingPositionsAvailable:n.finishingPositionsAvailable})}else{let e=c.structureId,{playoffRounds:n,playoffRoundsRanges:r}=t.drawsGovernor.getAvailablePlayoffProfiles({drawDefinition:s,structureId:e});u={playoffRounds:n,playoffRoundsRanges:r}}return TQ(i,u)}catch{return TQ(i,{})}}function TQ(e,t){return CQ.set(e,t),t}var{MAIN:EQ,QUALIFYING:DQ,CONSOLATION:OQ,PLAY_OFF:kQ,ROUND_ROBIN:AQ,AD_HOC:jQ,LUCKY_DRAW:MQ,WINNER:NQ,LOSER:PQ}=t.drawDefinitionConstants,FQ=240,IQ=48,LQ=16;function RQ(e){if(e.structureType===AQ)return(e.structureOptions?.groupSize||Math.min(e.drawSize,4))-1;if(e.structureType===jQ)return e.structureOptions?.roundsCount||1;if(e.structureType===MQ)return lQ(e.drawSize);let t=Math.max(2,e.drawSize),n=2**Math.floor(Math.log2(t)),r=t-n,i=0,a=n/2;for(;a>=1;)i++,r&a&&i++,a=Math.floor(a/2);if(e.qualifyingPositions&&e.qualifyingPositions>0&&e.drawSize>e.qualifyingPositions){let t=Math.round(Math.log2(e.drawSize/e.qualifyingPositions));t>0&&t<i&&(i=t)}return i}function zQ(e){let t=RQ(e);return Math.max(FQ,t*IQ+LQ)}var BQ={[EQ]:`tb-card-badge--main`,[DQ]:`tb-card-badge--qualifying`,[OQ]:`tb-card-badge--consolation`,[kQ]:`tb-card-badge--playoff`};function VQ(e,t,n,r,i,a,o,s){let c=a&&a.length>0,l=document.createElement(`div`);l.className=`tb-card${n?` tb-card--selected`:``}${c?` tb-card--warning`:``}`,l.style.left=`${e.position.x}px`,l.style.top=`${e.position.y}px`,l.style.minWidth=`${zQ(e)}px`,l.setAttribute(`data-node-id`,e.id);let u=document.createElement(`div`);u.className=`tb-card-header`;let d=document.createElement(`span`);d.className=`tb-card-badge ${BQ[e.stage]||`tb-card-badge--main`}`,d.textContent=e.stage.substring(0,4);let f=document.createElement(`span`);f.className=`tb-card-name`,f.textContent=e.structureName;let p=document.createElement(`span`);if(p.className=`tb-card-size`,p.textContent=`\u00d7${e.drawSize}`,u.appendChild(d),u.appendChild(f),u.appendChild(p),o){let e=document.createElement(`div`);e.className=`tb-card-advance`,e.textContent=o,u.appendChild(e)}let m=document.createElement(`div`);m.className=`tb-card-preview`;let h=e.matchUps||_Q({structureType:e.structureType,drawSize:e.drawSize,stage:e.stage,structureId:e.id,qualifyingPositions:e.qualifyingPositions,structureOptions:e.structureOptions});if(h.length>0)try{let t=Hi({matchUps:h,structureId:e.id,showHeaders:!1});t.style.transform=`scale(0.8)`,t.style.transformOrigin=`top left`,m.appendChild(t)}catch{m.textContent=`${e.structureType} \u00d7${e.drawSize}`,m.style.cssText+=`font-size:11px;color:var(--chc-text-muted);display:flex;align-items:center;justify-content:center;`}if(i?.length&&m.querySelector(`.chc-schematic-structure`)){let e=m.querySelectorAll(`.chc-schematic-round-container[data-round-number]`);for(let n of e){let e=Number.parseInt(n.dataset.roundNumber||`0`),r=i.filter(t=>t.roundNumber===e);if(!r.length)continue;let a=r.find(e=>e.isSelected)||r.find(e=>e.linkType===PQ)||r.find(e=>e.linkType===NQ)||r[0];n.classList.add(`tb-round-linked`),n.classList.add(`tb-round-linked--${a.linkType.toLowerCase()}`),n.classList.add(`tb-round-linked--${a.direction}`),a.isSelected&&n.classList.add(`tb-round-linked--active`),n.style.cursor=`pointer`,n.addEventListener(`click`,e=>{e.stopPropagation(),t.onSelectEdge(a.edgeId)}),n.title=r.map(t=>`R${e} ${t.linkType} ${t.direction===`source`?`out`:`in`}`).join(`, `)}}let g=wQ(e.structureType,e.drawSize,e.structureOptions?.groupSize),_=null;g.playoffRoundsRanges?.length?(_=document.createElement(`div`),_.className=`tb-card-rounds`,_.textContent=g.playoffRoundsRanges.map(e=>`R${e.roundNumber}:${e.finishingPositionRange}`).join(` `)):g.playoffFinishingPositionRanges?.length&&(_=document.createElement(`div`),_.className=`tb-card-rounds`,_.textContent=g.playoffFinishingPositionRanges.map(e=>`P${e.finishingPosition}:${e.finishingPositionRange}`).join(` `));let v=document.createElement(`div`);v.className=`tb-card-ports`;let y=document.createElement(`div`);y.className=`tb-port tb-port--input`,y.title=`Input`,y.addEventListener(`mouseup`,()=>{t.onPortMouseUp(e.id)});let b=document.createElement(`div`);b.className=`tb-port-group`;let x=document.createElement(`div`);x.className=`tb-port tb-port--winner${r?` tb-port--connected`:``}`,x.title=r?`Winner linked`:`Winner output`,r||x.addEventListener(`mousedown`,n=>{n.stopPropagation(),t.onPortMouseDown(e.id,`winner`)});let S=document.createElement(`div`);if(S.className=`tb-port tb-port--loser`,S.title=`Loser output`,S.addEventListener(`mousedown`,n=>{n.stopPropagation(),t.onPortMouseDown(e.id,`loser`)}),b.appendChild(x),b.appendChild(S),v.appendChild(y),v.appendChild(b),l.appendChild(u),l.appendChild(m),s?.length){let e=document.createElement(`div`);e.className=`tb-card-chips`;for(let n of s){let r=document.createElement(`span`);r.className=`tb-card-chip`,r.textContent=`P${n.position}`,r.title=`Position ${n.position} → ${n.targetName}`,r.addEventListener(`click`,e=>{e.stopPropagation(),t.onSelectEdge(n.edgeId)}),e.appendChild(r)}l.appendChild(e)}if(_&&l.appendChild(_),c){let e=document.createElement(`div`);e.className=`tb-card-warning`,e.textContent=`⚠ Issue`;let t=document.createElement(`div`);t.className=`tb-card-warning-detail`,t.textContent=a.join(`; `),e.appendChild(t),e.addEventListener(`click`,t=>{t.stopPropagation(),e.classList.toggle(`tb-card-warning--open`)}),l.appendChild(e)}return l.appendChild(v),l.addEventListener(`mouseup`,()=>{t.onPortMouseUp(e.id)}),l.addEventListener(`click`,n=>{n.stopPropagation(),t.onSelect(e.id)}),t.onDoubleClick&&l.addEventListener(`dblclick`,n=>{n.stopPropagation(),t.onDoubleClick(e.id)}),l.addEventListener(`mousedown`,n=>{n.target.classList.contains(`tb-port`)||t.onDragStart(e.id,n.clientX,n.clientY)}),l}function HQ(e,t){let n=zQ(e);switch(t){case`input`:return{x:e.position.x,y:e.position.y+80};case`winner`:return{x:e.position.x+n,y:e.position.y+80-8};case`loser`:return{x:e.position.x+n,y:e.position.y+80+8}}}var{MAIN:UQ,QUALIFYING:WQ,CONSOLATION:GQ,WINNER:KQ,LOSER:qQ,ROUND_ROBIN:JQ}=t.drawDefinitionConstants,YQ=`POSITION`,XQ=0;function ZQ(e){return`${e}-${++XQ}-${Date.now().toString(36)}`}function QQ(e){let t=2;for(;t*2<=e;)t*=2;return t}var $Q=60,e$=class{constructor(e){this.listeners=new Set,this.state={nodes:[],edges:[],selectedNodeId:null,selectedEdgeId:null,drawName:`New Draw`,...e}}getState(){return{...this.state}}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}notify(){let e=this.getState();for(let t of this.listeners)t(e)}setDrawName(e){this.state.drawName=e,this.notify()}addNode(e){let t={...e,id:ZQ(`node`),position:this.nextNodePosition()};return this.state.nodes.push(t),this.state.templateName=void 0,this.notify(),t}updateNode(e,t){let n=this.state.nodes.find(t=>t.id===e);n&&(Object.keys(t).some(e=>e!==`position`)&&(this.state.templateName=void 0),Object.assign(n,t),this.notify())}removeNode(e){let t=this.state.edges.filter(t=>t.sourceNodeId===e).map(e=>e.targetNodeId);this.state.nodes=this.state.nodes.filter(t=>t.id!==e),this.state.edges=this.state.edges.filter(t=>t.sourceNodeId!==e&&t.targetNodeId!==e),this.state.selectedNodeId===e&&(this.state.selectedNodeId=null),this.state.templateName=void 0;for(let e of t)this.clampConsolationDrawSize(e);this.notify()}addEdge(e){if(e.linkType===KQ&&this.state.edges.find(t=>t.sourceNodeId===e.sourceNodeId&&t.linkType===KQ))return null;let t=this.state.nodes.find(t=>t.id===e.sourceNodeId),n=this.state.nodes.find(t=>t.id===e.targetNodeId);if(t?.structureType===JQ&&e.linkType!==YQ||t?.stage===WQ&&n&&n.stage!==WQ&&n.stage!==UQ||n?.stage===WQ&&t&&t.stage!==WQ)return null;let r={...e,id:ZQ(`edge`),targetRoundNumber:e.targetRoundNumber||1,label:this.computeEdgeLabel(e)};return this.state.edges.push(r),this.state.templateName=void 0,this.clampConsolationDrawSize(r.targetNodeId),this.notify(),r}updateEdge(e,t){let n=this.state.edges.find(t=>t.id===e);n&&(Object.assign(n,t),n.label=this.computeEdgeLabel(n),this.state.templateName=void 0,this.notify())}removeEdge(e){let t=this.state.edges.find(t=>t.id===e);this.state.edges=this.state.edges.filter(t=>t.id!==e),this.state.selectedEdgeId===e&&(this.state.selectedEdgeId=null),this.state.templateName=void 0,t&&this.clampConsolationDrawSize(t.targetNodeId),this.notify()}selectNode(e){this.state.selectedNodeId=e,this.state.selectedEdgeId=null,this.notify()}selectEdge(e){this.state.selectedEdgeId=e,this.state.selectedNodeId=null,this.notify()}clampConsolationDrawSize(e){let t=this.state.nodes.find(t=>t.id===e);if(!t||t.stage!==GQ)return;let n=this.inboundCapacity(e);n>0&&t.drawSize>n&&(t.drawSize=QQ(n))}inboundCapacity(e){let t=this.state.edges.filter(t=>t.targetNodeId===e),n=0;for(let e of t){let t=this.state.nodes.find(t=>t.id===e.sourceNodeId);if(t){if(e.linkType===qQ){let r=e.sourceRoundNumber||1;n+=fQ(t.structureType,t.drawSize,r)}else n+=t.qualifyingPositions||Math.floor(t.drawSize/2)}}return n}nextNodePosition(){if(this.state.nodes.length===0)return{x:40,y:40};let e=0;for(let t of this.state.nodes)e=Math.max(e,t.position.x+zQ(t));return{x:e+$Q,y:40}}autoLayout(){let e=this.state.nodes,t=this.state.edges;if(!e.length)return;let n=new Map,r=new Map;for(let e of t)r.has(e.sourceNodeId)||r.set(e.sourceNodeId,[]),r.get(e.sourceNodeId).push(e.targetNodeId),n.has(e.targetNodeId)||n.set(e.targetNodeId,[]),n.get(e.targetNodeId).push(e.sourceNodeId);let i=e.filter(e=>!n.has(e.id)||n.get(e.id).length===0);if(!i.length){let t=e.filter(e=>e.stage===UQ);i.push(...t.length?t:[e[0]])}let a=new Map,o=new Set(e.filter(e=>e.stage===WQ).map(e=>e.id)),s=[];for(let e of i)o.has(e.id)?a.set(e.id,-1):a.set(e.id,0),s.push(e.id);let c=e.length*(e.length-1)+e.length,l=0;for(;s.length&&l<c;){l++;let e=s.shift(),t=a.get(e),n=r.get(e)||[];for(let e of n){let n=t+1,r=a.get(e);(r===void 0||n>r)&&(a.set(e,n),s.push(e))}}for(let t of e)a.has(t.id)||a.set(t.id,0);let u=Math.min(...a.values());if(u<0)for(let[e,t]of a)a.set(e,t-u);let d=new Map;for(let t of e){let e=a.get(t.id);d.has(e)||d.set(e,[]),d.get(e).push(t)}let f=[...d.keys()].sort((e,t)=>e-t),p=40;for(let e of f){let t=d.get(e),n=Math.max(...t.map(e=>zQ(e)));t.forEach((e,t)=>{e.position={x:p,y:t*190+40}}),p+=n+$Q}}loadState(e){this.state={...e},this.notify()}computeEdgeLabel(e){let t=e.linkType||`LINK`,n=``;return e.sourceRoundNumber&&(n+=`R${e.sourceRoundNumber} `),n+=t.toLowerCase(),e.targetRoundNumber&&(n+=` \u2192 R${e.targetRoundNumber}`),e.qualifyingPositions&&(n+=` (${e.qualifyingPositions}Q)`),e.finishingPositions?.length&&(n+=` [${e.finishingPositions.join(`,`)}]`),n}},{WINNER:t$,LOSER:n$,QUALIFYING:r$,ROUND_ROBIN:i$}=t.drawDefinitionConstants,a$=`POSITION`;function o$(e,t){return t.find(t=>t.id===e.sourceNodeId)?.structureType===i$}function s$(e,t){return e.linkType===a$||e.linkType===t$&&!!e.finishingPositions?.length&&o$(e,t)}function c$(e,t){return e.linkType!==t$&&e.linkType!==n$?!1:!s$(e,t)}function l$(e,t){return e.linkType===t$&&c$(e,t)}function u$(e,t){return t.find(t=>t.id===e.sourceNodeId)?.stage===r$?l$(e,t)||s$(e,t):!1}function d$(e,t){return s$(e,t)?a$:e.linkType}var{WINNER:f$,LOSER:p$,QUALIFYING:m$,CONSOLATION:h$,ROUND_ROBIN:g$}=t.drawDefinitionConstants,_$=`POSITION`,v$=e=>e===g$;function y$(e,t){if(!v$(e.structureType))return;let n=t.edges.filter(n=>n.sourceNodeId===e.id&&s$(n,t.nodes));if(!n.length)return;let r=new Set(n.flatMap(e=>e.finishingPositions||[])),i=e.structureOptions?.groupSize||4;return`${r.size} of ${i} advance`}var b$=`http://www.w3.org/2000/svg`,x$={[f$]:`tb-edge--winner`,[p$]:`tb-edge--loser`,[_$]:`tb-edge--position`};function S$(e){let t=document.createElement(`div`);t.className=`tb-canvas`;let n=document.createElementNS(b$,`svg`);n.classList.add(`tb-canvas-svg`);let r=document.createElementNS(b$,`defs`);for(let[e,t]of Object.entries(x$)){let n=document.createElementNS(b$,`marker`);n.setAttribute(`id`,`arrowhead-${e}`),n.setAttribute(`markerWidth`,`8`),n.setAttribute(`markerHeight`,`6`),n.setAttribute(`refX`,`8`),n.setAttribute(`refY`,`3`),n.setAttribute(`orient`,`auto`);let i=document.createElementNS(b$,`polygon`);i.setAttribute(`points`,`0 0, 8 3, 0 6`),i.setAttribute(`class`,t),i.style.fill=`currentColor`,n.appendChild(i),r.appendChild(n)}n.appendChild(r);let i=document.createElement(`div`);i.className=`tb-canvas-nodes`;let a=document.createElement(`div`);a.className=`tb-canvas-spacer`,t.appendChild(n),t.appendChild(i),t.appendChild(a);let o=null,s=null,c=null,l=!1,u=null;t.addEventListener(`click`,()=>{l||(e.onSelectNode(null),e.onSelectEdge(null))}),t.addEventListener(`mousemove`,n=>{if(s&&!c){let e=n.clientX-s.startX,t=n.clientY-s.startY;Math.abs(e)+Math.abs(t)>=4&&(c=s,s=null)}if(c&&u){let t=n.clientX-c.startX,r=n.clientY-c.startY;e.onMoveNode(c.nodeId,Math.max(0,c.origX+t),Math.max(0,c.origY+r))}if(o?.tempLine){let e=t.getBoundingClientRect();o.tempLine.setAttribute(`x2`,String(n.clientX-e.left+t.scrollLeft)),o.tempLine.setAttribute(`y2`,String(n.clientY-e.top+t.scrollTop))}}),t.addEventListener(`mouseup`,()=>{c&&(l=!0,c=null,setTimeout(()=>{l=!1},0)),s=null,o?.tempLine&&(n.removeChild(o.tempLine),o=null)});function d(e){return new Set(e.edges.filter(t=>l$(t,e.nodes)).map(e=>e.sourceNodeId).filter(t=>{let n=e.nodes.find(e=>e.id===t);return n&&n.stage===m$&&!v$(n.structureType)}))}function f(e){let t=new Map;for(let n of e.edges){let r=s$(n,e.nodes)?void 0:n.sourceRoundNumber,i=n.targetRoundNumber,a=n.id===e.selectedEdgeId,o=d$(n,e.nodes);if(!r&&l$(n,e.nodes)){let t=e.nodes.find(e=>e.id===n.sourceNodeId);t&&(r=RQ(t))}r&&(t.has(n.sourceNodeId)||t.set(n.sourceNodeId,[]),t.get(n.sourceNodeId).push({roundNumber:r,linkType:o,direction:`source`,edgeId:n.id,isSelected:a})),i&&(t.has(n.targetNodeId)||t.set(n.targetNodeId,[]),t.get(n.targetNodeId).push({roundNumber:i,linkType:o,direction:`target`,edgeId:n.id,isSelected:a}))}return t}function p(e){let t=new Map;for(let n of e.edges){if(!u$(n,e.nodes))continue;let r=n.targetRoundNumber||1;if(r<=1)continue;let i=e.nodes.find(e=>e.id===n.sourceNodeId);if(!i||i.stage!==m$)continue;t.has(n.targetNodeId)||t.set(n.targetNodeId,[]);let a=i.qualifyingPositions||Math.floor(i.drawSize/4);t.get(n.targetNodeId).push({targetRound:r,qp:a,warning:`Round ${r} needs fed drawPositions to accommodate ${i.structureName} link`})}let n=new Map;for(let[r,i]of t){let t=e.nodes.find(e=>e.id===r);if(!t)continue;let a=oQ(t.drawSize),o=new Map;for(let e of i)o.set(e.targetRound,(o.get(e.targetRound)||0)+e.qp);let s=[];for(let e of i)(a.get(e.targetRound)||0)<(o.get(e.targetRound)||0)&&s.push(e.warning);s.length>0&&n.set(r,s)}return n}function m(e){let t=new Map;for(let n of e.nodes){if(!v$(n.structureType))continue;let r=e.edges.filter(t=>t.sourceNodeId===n.id&&s$(t,e.nodes));if(!r.length)continue;let i=[];for(let t of r){let n=e.nodes.find(e=>e.id===t.targetNodeId);for(let e of t.finishingPositions||[])i.push({position:e,edgeId:t.id,targetName:n?.structureName||`?`})}i.sort((e,t)=>e.position-t.position),t.set(n.id,i)}return t}function h(e,t,n){return e&&v$(e.structureType)?_$:n===`loser`||t?.stage===h$?p$:f$}function g(t){return{onSelect:t=>{e.onSelectNode(t)},onSelectEdge:t=>{e.onSelectEdge(t)},onDoubleClick:e.onDoubleClickNode?t=>e.onDoubleClickNode(t):void 0,onPortMouseDown:(e,r)=>{let i=t.nodes.find(t=>t.id===e);if(!i)return;let a=HQ(i,r),s=document.createElementNS(b$,`line`);s.setAttribute(`x1`,String(a.x)),s.setAttribute(`y1`,String(a.y)),s.setAttribute(`x2`,String(a.x)),s.setAttribute(`y2`,String(a.y)),s.setAttribute(`stroke`,r===`winner`?`green`:`red`),s.setAttribute(`stroke-width`,`2`),s.setAttribute(`stroke-dasharray`,`4 2`),n.appendChild(s),o={sourceNodeId:e,portType:r,tempLine:s}},onPortMouseUp:r=>{if(o&&o.sourceNodeId!==r){let n=h(t.nodes.find(e=>e.id===o.sourceNodeId),t.nodes.find(e=>e.id===r),o.portType);e.onCreateEdge(o.sourceNodeId,r,n)}o?.tempLine&&n.removeChild(o.tempLine),o=null},onDragStart:(e,n,r)=>{let i=t.nodes.find(t=>t.id===e);i&&(s={nodeId:e,startX:n,startY:r,origX:i.position.x,origY:i.position.y})}}}function _(e){u=e,i.innerHTML=``;let t=d(e),r=f(e),o=p(e),s=m(e),c=g(e);for(let n of e.nodes){let a=VQ(n,c,e.selectedNodeId===n.id,t.has(n.id),r.get(n.id),o.get(n.id),y$(n,e),s.get(n.id));i.appendChild(a)}n.querySelectorAll(`path, text.tb-edge-label, path.tb-edge-hit`).forEach(e=>n.removeChild(e));let l=new Map;for(let t of e.edges){let e=`${t.sourceNodeId}:${t.targetNodeId}`;l.has(e)||l.set(e,[]),l.get(e).push(t)}for(let t of l.values()){let r=t.length;t.forEach((t,i)=>{let a=r>1?(i-(r-1)/2)*14:0;v(n,t,e,a)})}let h=600,_=400;for(let t of e.nodes)h=Math.max(h,t.position.x+zQ(t)+40),_=Math.max(_,t.position.y+180);n.setAttribute(`width`,String(h)),n.setAttribute(`height`,String(_)),i.style.width=`${h}px`,i.style.height=`${_}px`,a.style.width=`${h}px`,a.style.height=`${_}px`}function v(t,n,r,i=0){let a=r.nodes.find(e=>e.id===n.sourceNodeId),o=r.nodes.find(e=>e.id===n.targetNodeId);if(!a||!o)return;let s=HQ(a,n.linkType===p$?`loser`:`winner`),c=HQ(o,`input`),l=s.y+i,u=c.y+i,d=c.x-s.x,f=`M ${s.x},${l} C ${s.x+d/2},${l} ${s.x+d/2},${u} ${c.x},${u}`,p=document.createElementNS(b$,`path`);p.setAttribute(`d`,f),p.classList.add(`tb-edge-hit`),p.addEventListener(`click`,t=>{t.stopPropagation(),e.onSelectEdge(n.id)}),t.appendChild(p);let m=document.createElementNS(b$,`path`);m.setAttribute(`d`,f);let h=d$(n,r.nodes);if(m.classList.add(x$[h]||`tb-edge--winner`),r.selectedEdgeId===n.id&&m.classList.add(`tb-edge--selected`),m.setAttribute(`marker-end`,`url(#arrowhead-${h})`),m.addEventListener(`click`,t=>{t.stopPropagation(),e.onSelectEdge(n.id)}),t.appendChild(m),n.label){let e=(s.x+c.x)/2,r=(l+u)/2-8,i=document.createElementNS(b$,`text`);i.classList.add(`tb-edge-label`),i.setAttribute(`x`,String(e)),i.setAttribute(`y`,String(r)),i.setAttribute(`text-anchor`,`middle`),i.textContent=n.label,t.appendChild(i)}}return{element:t,update:_}}var{SINGLE_ELIMINATION:C$,ROUND_ROBIN:w$,FEED_IN:T$,FEED_IN_CHAMPIONSHIP:E$,FIRST_MATCH_LOSER_CONSOLATION:D$,COMPASS:O$,OLYMPIC:k$,AD_HOC:A$,LUCKY_DRAW:j$,MAIN:M$,QUALIFYING:N$,CONSOLATION:P$,PLAY_OFF:F$}=t.drawDefinitionConstants,I$=[{label:`Single Elimination`,value:C$},{label:`Round Robin`,value:w$},{label:`Feed-In Championship`,value:E$},{label:`FMLC`,value:D$},{label:`Compass`,value:O$},{label:`Olympic`,value:k$},{label:`Ad-hoc`,value:A$}],L$=[{label:`Single Elimination`,value:C$},{label:`Round Robin`,value:w$},{label:`Lucky Draw`,value:j$},{label:`Staggered Entry`,value:T$},{label:`Ad-hoc`,value:A$}],R$=[{label:`Main`,value:M$},{label:`Qualifying`,value:N$},{label:`Consolation`,value:P$},{label:`Playoff`,value:F$}];function z$(e){let t=[],n=Math.floor(e/2);for(;n>=1;)t.push(n),n=Math.floor(n/2);return t}function B$(e,t=8){let n=[];for(let r=3;r<=t;r++){let t=Math.ceil(e/r),i=t*r-e,a=Math.ceil(e/t),o=Math.ceil(i/t);(!i||i<r)&&a===r&&a>=3&&o<2&&n.push(r)}return n}function V$(e,t,n,r,i,a){let o=B$(e.drawSize),s=e.structureOptions?.groupSize||4,c=o.includes(s)?o:[s,...o].sort((e,t)=>e-t),l=Math.ceil(e.drawSize/s);i.push({label:`Group Size`,field:`groupSize`,value:String(s),disabled:n,options:c.map(e=>({label:String(e),value:String(e),selected:e===s}))}),i.push({label:`Groups`,field:`groupCount`,value:String(l),disabled:!0}),n||a.push({control:`groupSize`,onChange:({e:t})=>{let n=parseInt(t.target.value);r.onUpdateNode(e.id,{structureOptions:{...e.structureOptions,groupSize:n}})}});let u=t.edges.filter(n=>n.sourceNodeId===e.id&&s$(n,t.nodes)),d=new Set(u.flatMap(e=>e.finishingPositions||[])),f=d.size||0,p=Array.from({length:s},(e,t)=>t+1);i.push({label:`Advance Per Group`,field:`advancePerGroup`,value:String(f),disabled:n||u.length===0,options:p.map(e=>({label:String(e),value:String(e),selected:e===f}))}),!n&&u.length>0&&a.push({control:`advancePerGroup`,onChange:({e})=>{let t=parseInt(e.target.value),n=d.size;if(t!==n){if(t>n){let e=u.at(-1),n=[];for(let e=1;e<=s&&d.size+n.length<t;e++)d.has(e)||n.push(e);n.length>0&&r.onUpdateEdge(e.id,{finishingPositions:[...e.finishingPositions||[],...n].sort((e,t)=>e-t)})}else{let e=[...d].sort((e,t)=>t-e),i=new Set(e.slice(0,n-t));for(let e of u){let t=(e.finishingPositions||[]).filter(e=>!i.has(e));t.length!==(e.finishingPositions||[]).length&&r.onUpdateEdge(e.id,{finishingPositions:t})}}}}}),u.length>0&&f>0&&H$(u,t,l,i)}function H$(e,t,n,r){let i=new Map;for(let t of e)i.has(t.targetNodeId)||i.set(t.targetNodeId,[]),i.get(t.targetNodeId).push(...t.finishingPositions||[]);let a=[];for(let[e,r]of i){let i=t.nodes.find(t=>t.id===e),o=[...new Set(r)].sort((e,t)=>e-t),s=o.length===1?`P${o[0]}`:`P${o.join(`,`)}`;a.push(`${s} → ${i?.structureName||`?`} (${o.length*n})`)}a.length>0&&r.push({label:`Playoff Groups`,field:`playoffSummary`,value:a.join(`
|
|
322
|
-
`),disabled:!0})}function U$(e,t,n,r,i,a){let o=t.edges.find(n=>n.targetNodeId===e.id&&s$(n,t.nodes));if(!o||t.nodes.find(e=>e.id===o.sourceNodeId)?.structureType!==w$)return;let s=e.structureOptions?.playoffDrawType||C$;if(i.push({label:`Playoff Draw Type`,field:`playoffDrawType`,value:s,disabled:n,options:I$.map(e=>({...e,selected:e.value===s}))}),n||a.push({control:`playoffDrawType`,onChange:({e:t})=>r.onUpdateNode(e.id,{structureOptions:{...e.structureOptions,playoffDrawType:t.target.value}})}),s===w$){let t=e.structureOptions?.groupSize||4;i.push({label:`Playoff Group Size`,field:`playoffGroupSize`,value:String(t),disabled:n,options:[3,4,5,6,8].map(e=>({label:String(e),value:String(e),selected:e===t}))}),n||a.push({control:`playoffGroupSize`,onChange:({e:t})=>r.onUpdateNode(e.id,{structureOptions:{...e.structureOptions,groupSize:parseInt(t.target.value)}})})}}function W$(e,t,n,r,i){let a=z$(e.drawSize),o=e.qualifyingPositions??a[0];r.push({label:`Qualifying Positions`,field:`qualifyingPositions`,value:String(o),disabled:t,options:a.map(e=>({label:String(e),value:String(e),selected:e===o}))}),t||i.push({control:`qualifyingPositions`,onChange:({e:t})=>n.onUpdateNode(e.id,{qualifyingPositions:parseInt(t.target.value)})});let s=[0,...Array.from({length:6},(e,t)=>2**(t+1)).filter(t=>t<=e.drawSize/2)],c=e.seedsCount??0;r.push({label:`Seeds`,field:`seedsCount`,value:String(c),disabled:t,options:s.map(e=>({label:e?String(e):`None`,value:String(e),selected:e===c}))}),t||i.push({control:`seedsCount`,onChange:({e:t})=>n.onUpdateNode(e.id,{seedsCount:parseInt(t.target.value)})})}function G$(e,t,n){let r=oQ(e.drawSize),i=new Map,a=[];for(let n of t.edges){if(n.targetNodeId!==e.id||!u$(n,t.nodes))continue;let r=n.targetRoundNumber||1;if(r<=1)continue;let o=t.nodes.find(e=>e.id===n.sourceNodeId);if(!o||o.stage!==N$)continue;let s=o.qualifyingPositions||Math.floor(o.drawSize/4);i.set(r,(i.get(r)||0)+s),a.push({targetRound:r,qp:s,sourceName:o.structureName})}let o=[];for(let e of a){let t=r.get(e.targetRound)||0;t>=(i.get(e.targetRound)||0)||(t===0?o.push(`Round ${e.targetRound} is not a feed round — ${e.sourceName} sends ${e.qp} qualifiers`):o.push(`Round ${e.targetRound} has ${t} feed positions but ${e.sourceName} sends ${e.qp} qualifiers`))}if(o.length>0){let e=document.createElement(`div`);e.className=`tb-editor-warning`;for(let t of o){let n=document.createElement(`div`);n.textContent=`\u26a0 ${t}`,e.appendChild(n)}let t=document.createElement(`div`);t.style.marginTop=`6px`,t.textContent=`Change the target round to a feed round, or increase the draw size to create feed positions at that round.`,e.appendChild(t),n.appendChild(e)}}function K$(e){let t=document.createElement(`div`),n=!!e.readOnly;function r(r){t.innerHTML=``;let i=r.selectedNodeId?r.nodes.find(e=>e.id===r.selectedNodeId):null;if(!i)return;let a=document.createElement(`div`);a.className=`tb-editor-header`,a.textContent=`Structure Properties`,t.appendChild(a);let o=document.createElement(`div`);o.className=`tb-editor-body`;let s=[{label:`Name`,field:`structureName`,value:i.structureName,...n?{disabled:!0}:{validator:qD(1),error:`Name required`}},{label:`Stage`,field:`stage`,value:i.stage,disabled:n,options:R$.map(e=>({...e,selected:e.value===i.stage}))},{label:`Structure Type`,field:`structureType`,value:i.structureType,disabled:n,options:L$.map(e=>({...e,selected:e.value===i.structureType}))},{label:i.stage===M$?`Draw Size`:`Structure Size`,field:`drawSize`,type:`number`,value:String(i.drawSize),...n?{disabled:!0}:i.structureType===A$?{validator:YD(0,256),error:`Must be 0-256`}:{validator:YD(2,256),error:`Must be 2-256`}}],c=n?[]:[{control:`structureName`,onChange:({inputs:t})=>e.onUpdateNode(i.id,{structureName:t.structureName.value})},{control:`stage`,onChange:({e:t})=>e.onUpdateNode(i.id,{stage:t.target.value})},{control:`structureType`,onChange:({e:t})=>e.onUpdateNode(i.id,{structureType:t.target.value})},{control:`drawSize`,onChange:({inputs:t})=>{let n=parseInt(t.drawSize.value);if(n<(i.structureType===A$?0:2))return;let r={drawSize:n};if(i.structureType===w$){let e=i.structureOptions?.groupSize||4,t=B$(n);!t.includes(e)&&t.length>0&&(r.structureOptions={...i.structureOptions,groupSize:t[0]})}e.onUpdateNode(i.id,r)}}];i.structureType===w$&&V$(i,r,n,e,s,c),i.stage===F$&&U$(i,r,n,e,s,c),i.stage===N$&&W$(i,n,e,s,c),Ui(o,s,c);let l=document.createElement(`div`);l.className=`field font-medium`,l.style.cssText=`flex-grow: 1`;let u=document.createElement(`label`);u.style.cssText=`font-weight: bold; font-size: larger;`,u.textContent=`MatchUp Format`,l.appendChild(u);let d=document.createElement(`div`);if(d.className=`tb-format-trigger`,d.textContent=i.matchUpFormat||`Not set`,n?(d.style.cursor=`default`,d.style.opacity=`0.7`):d.onclick=()=>{Ko({existingMatchUpFormat:i.matchUpFormat,callback:t=>{e.onUpdateNode(i.id,{matchUpFormat:t||void 0}),d.textContent=t||`Not set`}})},l.appendChild(d),o.appendChild(l),G$(i,r,o),!n&&!e.hideDelete){let t=document.createElement(`button`);t.className=`sp-btn sp-btn--danger sp-btn--full`,t.style.marginTop=`12px`,t.textContent=`Delete Structure`,t.onclick=()=>e.onDeleteNode(i.id),o.appendChild(t)}t.appendChild(o)}return{element:t,update:r}}var{LOSER:q$,QUALIFYING:J$}=t.drawDefinitionConstants;function Y$(e,t){let n=t.nodes.find(t=>t.id===e.sourceNodeId),r=s$(e,t.nodes),i=r&&o$(e,t.nodes);return{isQualifyingWinner:l$(e,t.nodes)&&n?.stage===J$,isRRPosition:i,showRoundFields:!i,showFinishingPositionsInput:r&&!i,showFeedProfile:e.linkType===q$}}function X$(e,t){return t.edges.filter(n=>n.id!==e.id&&n.sourceNodeId===e.sourceNodeId&&s$(n,t.nodes))}var{WINNER:Z$,LOSER:Q$,TOP_DOWN:$$,BOTTOM_UP:e1}=t.drawDefinitionConstants,t1=`POSITION`,n1=`ALTERNATING`,r1=[{label:`Winner`,value:Z$},{label:`Loser`,value:Q$},{label:`Position`,value:t1}],i1=[{label:`Top-Down`,value:$$},{label:`Bottom-Up`,value:e1},{label:`Alternating`,value:n1}];function a1(e){let t=document.createElement(`div`),n=!!e.readOnly;function r(t,r,i,a,o,s){let c=[],l=[],u=r?wQ(r.structureType,r.drawSize,r.structureOptions?.groupSize):{},d=u.playoffRoundsRanges&&u.playoffRoundsRanges.length>0;if(d){let e=u.playoffRoundsRanges.map(e=>({label:`R${e.roundNumber} (${e.finishingPositionRange})`,value:String(e.roundNumber),selected:e.roundNumber===(t.sourceRoundNumber||a)}));c.push({label:`Source Round`,field:`sourceRoundNumber`,value:String(t.sourceRoundNumber||a),disabled:n,options:e})}else c.push({label:`Source Round`,field:`sourceRoundNumber`,type:`number`,value:String(t.sourceRoundNumber||a),disabled:n});return c.push({label:s?`Enter at Round`:`Target Round`,field:`targetRoundNumber`,type:`number`,value:String(t.targetRoundNumber||0),disabled:n}),n||(d?l.push({control:`sourceRoundNumber`,onChange:({e:n})=>{let r=Number.parseInt(n.target.value)||0;e.onUpdateEdge(t.id,{sourceRoundNumber:r||void 0})}}):l.push({control:`sourceRoundNumber`,onChange:({inputs:n})=>{let r=Number.parseInt(n.sourceRoundNumber.value)||0,i=Math.max(0,Math.min(r,a));e.onUpdateEdge(t.id,{sourceRoundNumber:i||void 0})}}),l.push({control:`targetRoundNumber`,onChange:({inputs:n})=>{let r=Number.parseInt(n.targetRoundNumber.value)||0,i=Math.max(0,Math.min(r,o));e.onUpdateEdge(t.id,{targetRoundNumber:i||void 0})}})),{items:c,relationships:l}}function i(t,r,i){let a=r.structureOptions?.groupSize||4,o=new Set(t.finishingPositions||[]),s=X$(t,i),c=new Set;for(let e of s)for(let t of e.finishingPositions||[])c.add(t);let l=document.createElement(`div`);l.className=`field`,l.style.marginBottom=`10px`;let u=document.createElement(`label`);u.style.cssText=`font-size:11px;font-weight:600;color:var(--chc-text-secondary);margin-bottom:3px;display:block;`,u.textContent=`Finishing Positions`,l.appendChild(u);for(let r=1;r<=a;r++){let i=document.createElement(`label`);i.style.cssText=`display:flex;align-items:center;gap:4px;font-size:12px;padding:2px 0;cursor:pointer;`;let a=document.createElement(`input`);a.type=`checkbox`,a.checked=o.has(r);let s=c.has(r);n||s?a.disabled=!0:a.addEventListener(`change`,()=>{let n=new Set(o);a.checked?n.add(r):n.delete(r),e.onUpdateEdge(t.id,{finishingPositions:Array.from(n).sort((e,t)=>e-t)})});let u=document.createElement(`span`);u.textContent=`Position ${r}`,s&&(u.style.color=`var(--chc-text-muted, #999)`,u.title=`Used by another link`,i.style.opacity=`0.5`,i.style.cursor=`not-allowed`),i.appendChild(a),i.appendChild(u),l.appendChild(i)}return l}function a(a){t.innerHTML=``;let o=a.selectedEdgeId?a.edges.find(e=>e.id===a.selectedEdgeId):null;if(!o)return;let s=a.nodes.find(e=>e.id===o.sourceNodeId),c=a.nodes.find(e=>e.id===o.targetNodeId),l=document.createElement(`div`);l.className=`tb-editor-header`,l.textContent=`Link Properties`,t.appendChild(l);let u=document.createElement(`div`);u.className=`tb-editor-body`;let d=document.createElement(`div`);d.style.cssText=`font-size:11px;color:var(--chc-text-muted);margin-bottom:8px;`,d.textContent=`${s?.structureName||`Source`} → ${c?.structureName||`Target`}`,u.appendChild(d);let{isQualifyingWinner:f,isRRPosition:p,showRoundFields:m,showFinishingPositionsInput:h,showFeedProfile:g}=Y$(o,a),_=s?dQ(s.structureType,s.drawSize,s.structureOptions):8,v=c?dQ(c.structureType,c.drawSize,c.structureOptions):8,y=[{label:`Link Type`,field:`linkType`,value:o.linkType,disabled:n,options:r1.map(e=>({...e,selected:e.value===o.linkType}))}],b=n?[]:[{control:`linkType`,onChange:({e:t})=>e.onUpdateEdge(o.id,{linkType:t.target.value})}];if(m){let e=r(o,s,c,_,v,f);y.push(...e.items),b.push(...e.relationships)}if(f&&s){let t=Math.floor(s.drawSize/2),r=Math.floor(s.drawSize/4),i=o.qualifyingPositions||r;y.push({label:`Qualifying Positions`,field:`qualifyingPositions`,type:`number`,value:String(i),disabled:n}),n||b.push({control:`qualifyingPositions`,onChange:({inputs:n})=>{let r=Number.parseInt(n.qualifyingPositions.value)||1,i=Math.max(1,Math.min(r,t));e.onUpdateEdge(o.id,{qualifyingPositions:i})}})}if(g&&(y.push({label:`Feed Profile`,field:`feedProfile`,value:o.feedProfile||$$,disabled:n,options:i1.map(e=>({...e,selected:e.value===(o.feedProfile||$$)}))}),n||b.push({control:`feedProfile`,onChange:({e:t})=>e.onUpdateEdge(o.id,{feedProfile:t.target.value})})),h&&(y.push({label:`Finishing Positions`,field:`finishingPositions`,value:(o.finishingPositions||[]).join(`, `),placeholder:`e.g., 1, 2`,disabled:n}),n||b.push({control:`finishingPositions`,onChange:({inputs:t})=>{let n=t.finishingPositions.value.split(`,`).map(e=>Number.parseInt(e.trim())).filter(e=>!Number.isNaN(e));e.onUpdateEdge(o.id,{finishingPositions:n})}})),Ui(u,y,b),p&&s&&u.appendChild(i(o,s,a)),!n){let t=document.createElement(`button`);t.className=`sp-btn sp-btn--danger sp-btn--full`,t.style.marginTop=`12px`,t.textContent=`Delete Link`,t.onclick=()=>e.onDeleteEdge(o.id),u.appendChild(t)}t.appendChild(u)}return{element:t,update:a}}var{MAIN:o1,QUALIFYING:s1,CONSOLATION:c1,LOSER:l1,SINGLE_ELIMINATION:u1,ROUND_ROBIN:d1,AD_HOC:f1}=t.drawDefinitionConstants;function p1(e){let t=[],n=m1(e,t);return g1(e,h1(e),t),_1(e,t),v1(e,t),y1(e,t),b1(e,n,t),x1(e,t),S1(e,t),w1(e,t),T1(e,t),E1(e)&&t.push({severity:`error`,message:`Circular dependency detected between structures`}),t}function m1(e,t){let n=e.nodes.filter(e=>e.stage===o1);return n.length===0?t.push({severity:`error`,message:`A main draw structure is required`}):n.length>1&&t.push({severity:`error`,message:`Only one main draw structure is allowed`}),n}function h1(e){let t=new Set;for(let n of e.edges)u$(n,e.nodes)&&(n.targetRoundNumber||1)>1&&t.add(n.targetNodeId);let n=new Map;for(let t of e.edges)t.linkType===l1&&n.set(t.targetNodeId,(n.get(t.targetNodeId)||0)+1);for(let[e,r]of n)r>1&&t.add(e);return t}function g1(e,t,n){for(let r of e.nodes){if(r.structureType===u1&&!t.has(r.id)){let t=e.edges.some(e=>e.targetNodeId===r.id);(r.stage===o1||r.stage===s1)&&!t&&(r.drawSize>0&&!(r.drawSize&r.drawSize-1)||n.push({severity:`error`,message:`"${r.structureName}" draw size must be a power of 2`,nodeId:r.id}))}let i=r.structureType===f1?0:2;r.drawSize<i&&n.push({message:`"${r.structureName}" draw size must be at least ${i}`,severity:`error`,nodeId:r.id})}}function _1(e,t){for(let n of e.edges){let r=e.nodes.find(e=>e.id===n.sourceNodeId),i=e.nodes.find(e=>e.id===n.targetNodeId);if(r||t.push({severity:`error`,message:`Edge references missing source node`,edgeId:n.id}),i||t.push({severity:`error`,message:`Edge references missing target node`,edgeId:n.id}),r&&n.sourceRoundNumber&&!s$(n,e.nodes)){let e=dQ(r.structureType,r.drawSize,r.structureOptions);(n.sourceRoundNumber>e||n.sourceRoundNumber<1)&&t.push({severity:`warning`,message:`Edge source round ${n.sourceRoundNumber} is outside "${r.structureName}" range (1-${e})`,edgeId:n.id})}if(i&&n.targetRoundNumber){let e=dQ(i.structureType,i.drawSize,i.structureOptions);(n.targetRoundNumber>e||n.targetRoundNumber<1)&&t.push({severity:`warning`,message:`Edge target round ${n.targetRoundNumber} is outside "${i.structureName}" range (1-${e})`,edgeId:n.id})}}}function v1(e,t){let n=new Map;for(let t of e.edges)l$(t,e.nodes)&&(n.has(t.sourceNodeId)||n.set(t.sourceNodeId,[]),n.get(t.sourceNodeId).push(t.id));for(let[r,i]of n)if(i.length>1){let n=e.nodes.find(e=>e.id===r)?.structureName||`Unknown`;for(let e of i)t.push({severity:`error`,message:`"${n}" has multiple winner links (only one allowed)`,edgeId:e})}}function y1(e,t){let n=new Map;for(let t of e.edges)t.sourceRoundNumber&&!s$(t,e.nodes)&&(n.has(t.sourceNodeId)||n.set(t.sourceNodeId,[]),n.get(t.sourceNodeId).push({round:t.sourceRoundNumber,edgeId:t.id}));for(let[r,i]of n){let n=new Map,a=e.nodes.find(e=>e.id===r)?.structureName||`Unknown`;for(let{round:e,edgeId:r}of i)n.has(e)?t.push({severity:`error`,message:`"${a}" has multiple links from round ${e}`,edgeId:r}):n.set(e,r)}}function b1(e,t,n){let r=e.nodes.filter(e=>e.stage===s1);for(let i of r){let r=e.edges.find(n=>n.sourceNodeId===i.id&&u$(n,e.nodes)&&t.some(e=>e.id===n.targetNodeId));if(r||n.push({severity:`warning`,message:`Qualifying structure "${i.structureName}" has no winner link to a main structure`,nodeId:i.id}),r?.qualifyingPositions){let e=Math.floor(i.drawSize/2);r.qualifyingPositions>e&&n.push({severity:`warning`,message:`Qualifying positions (${r.qualifyingPositions}) exceeds half of "${i.structureName}" draw size (${e})`,edgeId:r.id})}}}function x1(e,t){let n=new Map;for(let t of e.edges){if(!u$(t,e.nodes))continue;let r=t.targetRoundNumber||1;if(r<=1)continue;let i=e.nodes.find(e=>e.id===t.sourceNodeId);if(!i||i.stage!==s1)continue;n.has(t.targetNodeId)||n.set(t.targetNodeId,[]);let a=i.qualifyingPositions||Math.floor(i.drawSize/4);n.get(t.targetNodeId).push({edgeId:t.id,targetRound:r,qp:a,sourceName:i.structureName})}for(let[r,i]of n){let n=e.nodes.find(e=>e.id===r);if(!n)continue;let a=oQ(n.drawSize),o=new Map;for(let e of i)o.set(e.targetRound,(o.get(e.targetRound)||0)+e.qp);for(let{edgeId:e,targetRound:s,sourceName:c}of i)(a.get(s)||0)<(o.get(s)||0)&&t.push({severity:`warning`,message:`"${n.structureName}" round ${s} is not a feed round or has insufficient capacity for ${c} link`,nodeId:r,edgeId:e})}}function S1(e,t){for(let n of e.edges){if(n.linkType!==l1)continue;let r=e.nodes.find(e=>e.id===n.sourceNodeId),i=e.nodes.find(e=>e.id===n.targetNodeId);if(!r||!i)continue;let a=n.sourceRoundNumber||1,o=n.targetRoundNumber||1,s=fQ(r.structureType,r.drawSize,a),c=oQ(i.drawSize);o!==1&&C1(c,o,s,r,i,a,n.id,t)}}function C1(e,t,n,r,i,a,o,s){let c=e.get(t);c===void 0?s.push({severity:`error`,message:`"${i.structureName}" R${t} is not a feed round — cannot receive ${n} losers from "${r.structureName}" R${a}`,edgeId:o}):n>c?s.push({severity:`error`,message:`"${r.structureName}" R${a} produces ${n} losers but "${i.structureName}" R${t} only has ${c} feed positions`,edgeId:o}):n<c&&s.push({severity:`warning`,message:`"${r.structureName}" R${a} produces ${n} losers but "${i.structureName}" R${t} has ${c} feed positions — ${c-n} will be empty`,edgeId:o})}function w1(e,t){let n=e.nodes.filter(e=>e.stage===c1);for(let r of n){let n=e.edges.filter(e=>e.targetNodeId===r.id);if(n.length===0)continue;let i=0;for(let t of n){let n=e.nodes.find(e=>e.id===t.sourceNodeId);if(n){if(t.linkType===l1){let e=t.sourceRoundNumber||1;i+=fQ(n.structureType,n.drawSize,e)}else i+=n.qualifyingPositions||Math.floor(n.drawSize/2)}}i>0&&r.drawSize>i&&t.push({severity:`warning`,message:`"${r.structureName}" draw size (${r.drawSize}) exceeds inbound capacity (${i})`,nodeId:r.id}),i>0&&i>r.drawSize&&t.push({severity:`error`,message:`"${r.structureName}" receives ${i} participants but only has ${r.drawSize} positions`,nodeId:r.id})}}function T1(e,t){let n=new Map;for(let r of e.edges){if(!s$(r,e.nodes))continue;n.has(r.sourceNodeId)||n.set(r.sourceNodeId,[]),n.get(r.sourceNodeId).push({edgeId:r.id,positions:r.finishingPositions||[]});let i=e.nodes.find(e=>e.id===r.sourceNodeId);if(i&&i.structureType===d1){let e=i.structureOptions?.groupSize||4;for(let n of r.finishingPositions||[])(n<1||n>e)&&t.push({severity:`error`,message:`Position ${n} is outside valid range (1-${e}) for "${i.structureName}"`,edgeId:r.id})}}for(let[r,i]of n){if(i.length<2)continue;let n=e.nodes.find(e=>e.id===r)?.structureName||`Unknown`,a=new Map;for(let{edgeId:e,positions:r}of i)for(let i of r)a.has(i)?t.push({severity:`warning`,message:`Position ${i} from "${n}" is used by multiple finishing-position links`,edgeId:e}):a.set(i,e)}}function E1(e){let t=new Map;for(let n of e.nodes)t.set(n.id,[]);for(let n of e.edges){let e=t.get(n.sourceNodeId);e&&e.push(n.targetNodeId)}let n=new Set,r=new Set;function i(e){if(r.has(e))return!0;if(n.has(e))return!1;n.add(e),r.add(e);for(let n of t.get(e)||[])if(i(n))return!0;return r.delete(e),!1}for(let t of e.nodes)if(i(t.id))return!0;return!1}var{MAIN:D1,QUALIFYING:O1,CONSOLATION:k1,PLAY_OFF:A1,LUCKY_DRAW:j1}=t.drawDefinitionConstants;function M1(e,t,n={}){let r=document.createElement(`div`);r.className=`tb-toolbar-wrapper`;let i=document.createElement(`div`);i.className=`tb-toolbar-row`;let a=document.createElement(`div`);a.style.flex=`1`,a.style.minWidth=`0`,i.appendChild(a),r.appendChild(i);let o=document.createElement(`div`);o.className=`tb-validation`,o.style.display=`none`,r.appendChild(o);let s=null,c=()=>{if(!s)return;let e=p1(s);if(o.innerHTML=``,e.length===0){o.style.display=`block`;let e=document.createElement(`div`);e.className=`tb-validation-item`,e.innerHTML=`<span style="color:var(--chc-status-success)">✓ Valid topology</span>`,o.appendChild(e)}else{o.style.display=`block`;for(let t of e){let e=document.createElement(`div`);e.className=`tb-validation-item`;let n=document.createElement(`span`);n.className=`tb-validation-icon tb-validation-icon--${t.severity}`,n.textContent=t.severity===`error`?`!`:`?`;let r=document.createElement(`span`);r.textContent=t.message,e.appendChild(n),e.appendChild(r),o.appendChild(e)}}setTimeout(()=>{o.style.display=`none`},5e3)},l=[];if(!n.readOnly){let t=[{label:`Main`,value:D1,onClick:()=>e.onAddStructure(D1),close:!0},{label:`Lucky Draw`,value:j1,onClick:()=>e.onAddStructure(D1,j1),close:!0},{label:`Qualifying`,value:O1,onClick:()=>e.onAddStructure(O1),close:!0},{label:`Consolation`,value:k1,onClick:()=>e.onAddStructure(k1),close:!0},{label:`Playoff`,value:A1,onClick:()=>e.onAddStructure(A1),close:!0}];l.push({label:`Add Structure`,location:`right`,options:t})}if(!n.hideTemplates&&t.length>0){let n=t.map(n=>({label:n.name,value:n.name,onClick:()=>{let r=t.find(e=>e.name===n.name);r&&e.onLoadTemplate(r)},close:!0}));l.push({label:`Templates`,location:`right`,options:n})}!n.readOnly&&e.onClear&&l.push({label:`Clear`,location:`right`,onClick:()=>e.onClear()}),n.readOnly||l.push({label:`Auto Layout`,location:`right`,onClick:()=>e.onAutoLayout()},{label:`Validate`,location:`right`,onClick:()=>c()}),!n.readOnly&&e.onSaveTemplate&&l.push({label:`Save Template`,location:`right`,intent:`is-success`,onClick:()=>e.onSaveTemplate()}),!n.readOnly&&!n.hideGenerate&&l.push({label:`Generate Draw`,location:`right`,intent:`is-success`,onClick:()=>e.onGenerate()}),jU({target:a,items:l});function u(e){s=e}return{element:r,update:u}}function N1({toolbar:e,canvas:t,nodeEditor:n,edgeEditor:r}){let i=document.createElement(`div`);i.className=`tb-layout`,i.appendChild(e.element);let a=document.createElement(`div`);a.className=`tb-body`,a.appendChild(t.element);let o=document.createElement(`div`);o.className=`tb-editor`,o.appendChild(n.element),o.appendChild(r.element),a.appendChild(o),i.appendChild(a);function s(i){if(e.update(i),t.update(i),n.element.style.display=i.selectedNodeId?``:`none`,r.element.style.display=i.selectedEdgeId?``:`none`,!i.selectedNodeId&&!i.selectedEdgeId){if(!o.querySelector(`.tb-editor-empty`)){let e=document.createElement(`div`);e.className=`tb-editor-empty`,e.textContent=`Select a structure or link to view properties`,o.appendChild(e)}}else{let e=o.querySelector(`.tb-editor-empty`);e&&e.remove()}n.update(i),r.update(i)}function c(){e.destroy?.(),t.destroy?.(),n.destroy?.(),r.destroy?.()}return{element:i,update:s,destroy:c}}var{SINGLE_ELIMINATION:P1,FEED_IN:F1,ROUND_ROBIN:I1,LUCKY_DRAW:L1,MAIN:R1,QUALIFYING:z1,CONSOLATION:B1,PLAY_OFF:V1}=t.drawDefinitionConstants,H1=`WINNER`,U1=`LOSER`,W1=`POSITION`,G1=`tpl-edge-1`,K1=`tpl-edge-2`,q1=`tpl-edge-3`,J1=`tpl-edge-4`,Y1=`tpl-edge-5`,X1=`tpl-edge-6`,Z1=`tpl-edge-7`,Q1=`R1 losers → R1`,$1=[{name:`Single Elimination + Qualifying`,description:`Standard SE main draw with one qualifying structure`,state:{drawName:`SE + Qualifying`,nodes:[{id:`tpl-main`,structureName:`Main Draw`,stage:R1,structureType:P1,drawSize:32,position:{x:320,y:40}},{id:`tpl-qual`,structureName:`Qualifying`,stage:z1,structureType:P1,drawSize:16,qualifyingPositions:4,position:{x:40,y:40}}],edges:[{id:G1,sourceNodeId:`tpl-qual`,targetNodeId:`tpl-main`,linkType:H1,targetRoundNumber:1,qualifyingPositions:4,label:`winners → R1 (4Q)`}]}},{name:`Single Elimination + Qualifying with consolation`,description:`SE main fed by a 64 qualifying (16 qualifiers, 16 seeds); the losers of qualifying round 1 play a consolation`,state:{drawName:`SE + Qualifying + Q consolation`,nodes:[{id:`tpl-main`,structureName:`Main Draw`,stage:R1,structureType:P1,drawSize:64,position:{x:320,y:40}},{id:`tpl-qual`,structureName:`Qualifying`,stage:z1,structureType:P1,drawSize:64,qualifyingPositions:16,seedsCount:16,position:{x:40,y:40}},{id:`tpl-qual-cons`,structureName:`Qualifying Consolation`,stage:B1,structureType:P1,drawSize:32,position:{x:40,y:220}}],edges:[{id:G1,sourceNodeId:`tpl-qual`,targetNodeId:`tpl-main`,linkType:H1,targetRoundNumber:1,qualifyingPositions:16,label:`winners → R1 (16Q)`},{id:K1,sourceNodeId:`tpl-qual`,targetNodeId:`tpl-qual-cons`,linkType:U1,sourceRoundNumber:1,targetRoundNumber:1,feedProfile:`TOP_DOWN`,label:Q1}]}},{name:`FMLC (First Match Loser Consolation)`,description:`Main draw with first match loser consolation`,state:{drawName:`FMLC`,nodes:[{id:`tpl-main`,structureName:`Main Draw`,stage:R1,structureType:P1,drawSize:32,position:{x:40,y:40}},{id:`tpl-cons`,structureName:`Consolation`,stage:B1,structureType:P1,drawSize:16,position:{x:320,y:40}}],edges:[{id:G1,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:U1,sourceRoundNumber:1,targetRoundNumber:1,label:Q1}]}},{name:`Feed-In Championship (FIC)`,description:`Main draw with multi-round fed consolation`,state:{drawName:`FIC`,nodes:[{id:`tpl-main`,structureName:`Main Draw`,stage:R1,structureType:P1,drawSize:32,position:{x:40,y:40}},{id:`tpl-cons`,structureName:`Consolation`,stage:B1,structureType:F1,drawSize:31,position:{x:460,y:40}}],edges:[{id:G1,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:U1,sourceRoundNumber:1,targetRoundNumber:1,label:Q1},{id:K1,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:U1,sourceRoundNumber:2,targetRoundNumber:2,label:`R2 losers → R2`},{id:q1,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:U1,sourceRoundNumber:3,targetRoundNumber:4,label:`R3 losers → R4`},{id:J1,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:U1,sourceRoundNumber:4,targetRoundNumber:6,label:`R4 losers → R6`},{id:Y1,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:U1,sourceRoundNumber:5,targetRoundNumber:8,label:`R5 losers → R8`}]}},{name:`Compass`,description:`8-draw compass structure`,state:{drawName:`Compass`,nodes:[{id:`tpl-east`,structureName:`East`,stage:R1,structureType:P1,drawSize:32,position:{x:40,y:40}},{id:`tpl-west`,structureName:`West`,stage:B1,structureType:P1,drawSize:16,position:{x:400,y:40}},{id:`tpl-north`,structureName:`North`,stage:B1,structureType:P1,drawSize:8,position:{x:400,y:210}},{id:`tpl-ne`,structureName:`Northeast`,stage:B1,structureType:P1,drawSize:4,position:{x:400,y:380}},{id:`tpl-south`,structureName:`South`,stage:B1,structureType:P1,drawSize:8,position:{x:680,y:40}},{id:`tpl-sw`,structureName:`Southwest`,stage:B1,structureType:P1,drawSize:4,position:{x:680,y:210}},{id:`tpl-nw`,structureName:`Northwest`,stage:B1,structureType:P1,drawSize:4,position:{x:680,y:380}},{id:`tpl-se`,structureName:`Southeast`,stage:B1,structureType:P1,drawSize:4,position:{x:960,y:40}}],edges:[{id:G1,sourceNodeId:`tpl-east`,targetNodeId:`tpl-west`,linkType:U1,sourceRoundNumber:1,targetRoundNumber:1,label:Q1},{id:K1,sourceNodeId:`tpl-east`,targetNodeId:`tpl-north`,linkType:U1,sourceRoundNumber:2,targetRoundNumber:1,label:`R2 losers → R1`},{id:q1,sourceNodeId:`tpl-east`,targetNodeId:`tpl-ne`,linkType:U1,sourceRoundNumber:3,targetRoundNumber:1,label:`R3 losers → R1`},{id:J1,sourceNodeId:`tpl-west`,targetNodeId:`tpl-south`,linkType:U1,sourceRoundNumber:1,targetRoundNumber:1,label:Q1},{id:Y1,sourceNodeId:`tpl-west`,targetNodeId:`tpl-sw`,linkType:U1,sourceRoundNumber:2,targetRoundNumber:1,label:`R2 losers → R1`},{id:X1,sourceNodeId:`tpl-north`,targetNodeId:`tpl-nw`,linkType:U1,sourceRoundNumber:1,targetRoundNumber:1,label:Q1},{id:Z1,sourceNodeId:`tpl-south`,targetNodeId:`tpl-se`,linkType:U1,sourceRoundNumber:1,targetRoundNumber:1,label:Q1}]}},{name:`Round Robin + Playoff`,description:`Round robin groups with winners and consolation playoffs`,state:{drawName:`RR + Playoff`,nodes:[{id:`tpl-main`,structureName:`Main Draw`,stage:R1,structureType:I1,drawSize:16,structureOptions:{groupSize:4},position:{x:40,y:40}},{id:`tpl-playoff-gold`,structureName:`Gold Flight`,stage:V1,structureType:P1,drawSize:8,position:{x:320,y:40}},{id:`tpl-playoff-silver`,structureName:`Silver Flight`,stage:V1,structureType:P1,drawSize:8,position:{x:320,y:220}}],edges:[{id:G1,sourceNodeId:`tpl-main`,targetNodeId:`tpl-playoff-gold`,linkType:W1,finishingPositions:[1,2],label:`positions 1,2`},{id:K1,sourceNodeId:`tpl-main`,targetNodeId:`tpl-playoff-silver`,linkType:W1,finishingPositions:[3,4],label:`positions 3,4`}]}},{name:`Lucky Draw + Consolation`,description:`Lucky draw main with consolation receiving R1 losers`,state:{drawName:`Lucky + Consolation`,nodes:[{id:`tpl-main`,structureName:`Main Draw`,stage:R1,structureType:L1,drawSize:11,position:{x:40,y:40}},{id:`tpl-cons`,structureName:`Consolation`,stage:B1,structureType:P1,drawSize:4,position:{x:340,y:40}}],edges:[{id:G1,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:U1,sourceRoundNumber:1,targetRoundNumber:1,label:Q1}]}},{name:`Lucky Draw → Round Robin`,description:`Lucky draw main with R1 losers feeding into round robin consolation`,state:{drawName:`Lucky → RR`,nodes:[{id:`tpl-main`,structureName:`Main Draw`,stage:R1,structureType:L1,drawSize:25,position:{x:40,y:40}},{id:`tpl-cons-rr`,structureName:`Consolation RR`,stage:B1,structureType:I1,drawSize:12,structureOptions:{groupSize:4},position:{x:500,y:40}}],edges:[{id:G1,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons-rr`,linkType:U1,sourceRoundNumber:1,targetRoundNumber:1,label:Q1}]}},{name:`Adaptive (drawSize 11)`,description:`Compass-like multi-structure topology with lucky draw structures`,state:{drawName:`Adaptive`,nodes:[{id:`tpl-east`,structureName:`East`,stage:R1,structureType:L1,drawSize:11,position:{x:40,y:40}},{id:`tpl-west`,structureName:`West`,stage:B1,structureType:L1,drawSize:6,position:{x:340,y:40}},{id:`tpl-north`,structureName:`North`,stage:B1,structureType:P1,drawSize:2,position:{x:340,y:250}},{id:`tpl-south`,structureName:`South`,stage:B1,structureType:P1,drawSize:2,position:{x:600,y:40}}],edges:[{id:G1,sourceNodeId:`tpl-east`,targetNodeId:`tpl-west`,linkType:U1,sourceRoundNumber:1,targetRoundNumber:1,label:`R1 losers → R1 (6 losers)`},{id:K1,sourceNodeId:`tpl-east`,targetNodeId:`tpl-north`,linkType:U1,sourceRoundNumber:2,targetRoundNumber:1,label:`R2 losers → R1 (2 losers)`},{id:q1,sourceNodeId:`tpl-west`,targetNodeId:`tpl-south`,linkType:U1,sourceRoundNumber:1,targetRoundNumber:1,label:`R1 losers → R1 (2 losers)`}]}}],{MAIN:e0,QUALIFYING:t0,CONSOLATION:n0,PLAY_OFF:r0,SINGLE_ELIMINATION:i0,LUCKY_DRAW:a0,WINNER:o0,LOSER:s0}=t.drawDefinitionConstants,c0=`POSITION`,l0=class{constructor(e={}){this.config=e,this.store=new e$(e.initialState);let t=[...$1,...e.templates||[]],n=!!e.readOnly,r=this.buildToolbarPanel(t,n),i=this.buildCanvasPanel(n),a=K$({onUpdateNode:n?()=>{}:(e,t)=>this.store.updateNode(e,t),onUpdateEdge:n?()=>{}:(e,t)=>this.store.updateEdge(e,t),onDeleteNode:n?()=>{}:e=>this.store.removeNode(e),readOnly:n,hideDelete:e.hideDelete}),o=a1({onUpdateEdge:n?()=>{}:(e,t)=>this.store.updateEdge(e,t),onDeleteEdge:n?()=>{}:e=>this.store.removeEdge(e),readOnly:n});this.layout=N1({toolbar:r,canvas:i,nodeEditor:a,edgeEditor:o}),this.unsubscribe=this.store.subscribe(e=>{this.layout.update(e)}),this.layout.update(this.store.getState())}buildToolbarPanel(e,t){return M1({onAddStructure:(e,t)=>this.addDefaultStructure(e,t),onLoadTemplate:e=>{this.store.loadState({...e.state,selectedNodeId:null,selectedEdgeId:null,templateName:e.name})},onAutoLayout:()=>{this.store.autoLayout();let e=this.store.getState();this.store.loadState(e)},onGenerate:()=>this.handleGenerate(),onSaveTemplate:this.config.onSaveTemplate?()=>this.config.onSaveTemplate(this.store.getState()):void 0,onClear:this.config.onClear},e,{hideTemplates:this.config.hideTemplates,hideGenerate:this.config.hideGenerate,readOnly:t})}buildCanvasPanel(e){return S$({onSelectNode:e=>this.store.selectNode(e),onSelectEdge:e=>this.store.selectEdge(e),onDoubleClickNode:this.config.onDoubleClickNode?e=>{let t=this.store.getState(),n=t.nodes.find(t=>t.id===e);n&&this.config.onDoubleClickNode(n,t)}:void 0,onMoveNode:(e,t,n)=>this.store.updateNode(e,{position:{x:t,y:n}}),onCreateEdge:e?()=>{}:(e,t,n)=>{this.handleCreateEdge(e,t,n)},onPortMouseDown:()=>{}})}handleCreateEdge(e,t,n){let r=this.store.getState().nodes.find(t=>t.id===e);if(n===c0){let i=this.store.getState().edges.filter(t=>t.sourceNodeId===e&&t.linkType===c0),a=new Set(i.flatMap(e=>e.finishingPositions||[])),o=r?.structureOptions?.groupSize||4,s=1;for(let e=1;e<=o;e++)if(!a.has(e)){s=e;break}this.store.addEdge({sourceNodeId:e,targetNodeId:t,linkType:n,finishingPositions:[s]})}else if(n===s0){let i=this.store.getState().edges.filter(t=>t.sourceNodeId===e&&t.linkType===s0),a=new Set(i.map(e=>e.sourceRoundNumber)),o=r?dQ(r.structureType,r.drawSize,r.structureOptions):1,s=1;for(let e=1;e<=o;e++)if(!a.has(e)){s=e;break}this.store.addEdge({sourceNodeId:e,targetNodeId:t,linkType:n,sourceRoundNumber:s})}else{let i=n===o0&&r?.stage===t0;this.store.addEdge({sourceNodeId:e,targetNodeId:t,linkType:n,...i&&{targetRoundNumber:1}})}}render(e){e.appendChild(this.layout.element)}destroy(){this.unsubscribe(),this.layout.destroy?.(),this.layout.element.remove()}autoLayout(){this.store.autoLayout();let e=this.store.getState();this.store.loadState(e)}getState(){return this.store.getState()}loadState(e){this.store.loadState(e)}addDefaultStructure(e,t){let n=t===a0,r=this.store.getState().nodes.filter(t=>t.stage===e).length,i={[e0]:n?`Lucky Draw`:`Main Draw`,[t0]:`Qualifying ${r+1}`,[n0]:`Consolation`,[r0]:`Playoff ${r+1}`},a={[e0]:n?11:32,[t0]:16,[n0]:16,[r0]:4}[e]||16,o=this.store.addNode({structureName:i[e]||e,stage:e,structureType:t||i0,drawSize:a,...e===t0&&{qualifyingPositions:Math.floor(a/4)}});this.scrollCanvasToNode(o)}scrollCanvasToNode(e){let t=this.layout.element.querySelector(`.tb-canvas`);t&&requestAnimationFrame(()=>{let n=e.position.x+zQ(e)+40;n>t.scrollLeft+t.clientWidth&&t.scrollTo({left:n-t.clientWidth,behavior:`smooth`})})}handleGenerate(){let e=this.store.getState(),t=p1(e);t.some(e=>e.severity===`error`)&&console.warn(`Topology validation errors:`,t),this.config.onGenerate&&this.config.onGenerate(e)}},{MAIN:u0,CONSOLATION:d0,QUALIFYING:f0,PLAY_OFF:p0,SINGLE_ELIMINATION:m0,FEED_IN:h0,FIRST_MATCH_LOSER_CONSOLATION:g0,FEED_IN_CHAMPIONSHIP:_0,COMPASS:v0,LOSER:y0,ROUND_ROBIN:b0,AD_HOC:x0,LUCKY_DRAW:S0}=t.drawDefinitionConstants;function C0(e,t){let n=e.nodes.filter(e=>e.stage===d0),r=e.nodes.filter(e=>e.stage===f0),i=e.nodes.filter(e=>e.stage===p0);if(t.structureType===b0)return e.edges.some(n=>n.sourceNodeId===t.id&&s$(n,e.nodes)&&e.nodes.some(e=>e.id===n.targetNodeId&&e.stage===p0))?`ROUND_ROBIN_WITH_PLAYOFF`:b0;if(t.structureType===x0)return x0;if(t.structureType===h0)return h0;if(t.structureType===S0)return S0;if(n.length===7&&r.length===0&&i.length===0){let n=e.edges.filter(e=>e.linkType===y0&&e.sourceNodeId===t.id),r=new Set(n.map(e=>e.sourceRoundNumber));if(r.has(1)&&r.has(2)&&r.has(3))return v0}if(n.length===1&&r.length===0&&i.length===0){let r=n[0],i=e.edges.filter(e=>e.linkType===y0&&e.sourceNodeId===t.id&&e.targetNodeId===r.id);if(r.structureType===h0||i.length>1)return _0;if(i.length===1&&i[0].sourceRoundNumber===1)return g0}return m0}function w0(e){let t=e.nodes.find(e=>e.stage===u0);if(!t)throw Error(`No main structure node found`);let n=e.nodes.filter(e=>e.stage===f0),r=e.nodes.filter(e=>e.stage===p0),i=C0(e,t);i===m0&&!k0(t.drawSize)&&(i=h0);let a={drawName:e.drawName,drawType:i,drawSize:t.drawSize,matchUpFormat:t.matchUpFormat||void 0,structureOptions:t.structureOptions||void 0,automated:!0};n.length>0&&D0(a,n,e);let o=[];return T0(e,t,i,o),E0(e,t,r,a),{drawOptions:a,postGenerationMethods:o}}function T0(e,t,n,r){let i=e.nodes.filter(e=>e.stage===d0),a=[g0,_0,v0].includes(n),o=e.edges.filter(e=>e.linkType===y0&&i.some(t=>t.id===e.targetNodeId)&&!(a&&e.sourceNodeId===t.id));if(o.length===0)return;let s=new Map;for(let e of o){let t=`${e.sourceNodeId}→${e.targetNodeId}`;s.has(t)||s.set(t,[]),s.get(t).push(e)}for(let t of s.values()){let n=i.find(e=>e.id===t[0].targetNodeId),a=e.nodes.find(e=>e.id===t[0].sourceNodeId);if(!n||!a)continue;let o=t.map(e=>({sourceRoundNumber:e.sourceRoundNumber||1,targetRoundNumber:e.targetRoundNumber||1}));r.push({method:`attachConsolationStructures`,params:{structureName:n.structureName,structureType:n.structureType,drawSize:n.drawSize,matchUpFormat:n.matchUpFormat||void 0,structureOptions:n.structureOptions||void 0,sourceStructureName:a.structureName,sourceStage:a.stage,links:o}})}}function E0(e,t,n,r){let i=t.structureType===b0,a=i?e.edges.filter(r=>r.sourceNodeId===t.id&&s$(r,e.nodes)&&n.some(e=>e.id===r.targetNodeId)):[];if(i&&a.length>0){let e=new Map;for(let t of a)e.has(t.targetNodeId)||e.set(t.targetNodeId,[]),e.get(t.targetNodeId).push(t);let t=[];for(let[r,i]of e){let e=n.find(e=>e.id===r);if(!e)continue;let a=Array.from(new Set(i.flatMap(e=>e.finishingPositions||[]))).sort((e,t)=>e-t),o=e.structureOptions?.playoffDrawType||m0,s={finishingPositions:a,structureName:e.structureName,drawType:o};o===b0&&e.structureOptions?.groupSize&&(s.structureOptions={groupSize:e.structureOptions.groupSize}),t.push(s)}t.length>0&&(r.structureOptions={...r.structureOptions,playoffGroups:t})}else if(n.length>0){let i=O0(t.id,n,e.edges);i&&(r.withPlayoffs=i)}}function D0(e,t,n){let r=n.edges.filter(e=>u$(e,n.nodes)),i={};for(let e of t){let t=r.find(t=>t.sourceNodeId===e.id),n=t?.targetRoundNumber||1;i[n]||(i[n]=[]),i[n].push({node:e,edge:t})}let a=0;e.qualifyingProfiles=Object.entries(i).map(([e,t])=>{let n=t.map(({node:e,edge:t})=>{let n=e.qualifyingPositions||t?.qualifyingPositions||Math.floor(e.drawSize/4);return a+=n,{structureName:e.structureName,drawType:e.structureType,drawSize:e.drawSize,qualifyingPositions:n,seedsCount:e.seedsCount??0}});return{roundTarget:Number(e),structureProfiles:n}}),e.qualifiersCount=a,e.qualifyingPlaceholder=!0}function O0(e,t,n){let r=n.filter(n=>n.sourceNodeId===e&&n.linkType===y0&&t.some(e=>e.id===n.targetNodeId));if(!r.length)return;let i=[],a={},o={};for(let e of r){if(!e.sourceRoundNumber)continue;let r=t.find(t=>t.id===e.targetNodeId);if(!r)continue;i.push({[e.sourceRoundNumber]:1});let s=`0-${i.length}`;a[s]={name:r.structureName,abbreviation:r.structureName.substring(0,3)};let c=O0(r.id,t,n);c&&(o[e.sourceRoundNumber]=c)}if(i.length)return{roundProfiles:i,...Object.keys(a).length>0&&{playoffAttributes:a},...Object.keys(o).length>0&&{roundPlayoffs:o}}}function k0(e){return e>0&&!(e&e-1)}var{MAIN:qee}=t.drawDefinitionConstants,A0=()=>`spl-layout`,j0=()=>`spl-left`,M0=()=>`spl-toggle`,N0=()=>`spl-center`,P0=()=>`spl-center-header`,F0=()=>`spl-center-title`,I0=()=>`spl-center-actions`,L0=()=>`spl-center-leading`,R0=()=>`spl-grid-slot`,z0=()=>`spl-right`,B0=()=>`spl-matchup-card`,V0=()=>`spl-card-title`,H0=()=>`spl-card-sides`,U0=()=>`spl-card-meta`,W0=()=>`spl-card-chips`,G0=()=>`spl-card-chip`,K0=()=>`sp-panel`,q0=()=>`sp-panel-header`,J0=()=>`sp-panel-title`,Y0=()=>`sp-panel-meta`,X0=()=>`sp-date-strip`,Z0=()=>`sp-date-chip`,Q0=()=>`sp-badges`,$0=()=>`sp-catalog`,e2=()=>`sp-catalog-toolbar`,t2=()=>`sp-input`,n2=()=>`sp-select`,r2=()=>`sp-group`,i2=()=>`sp-group-header`,a2=()=>`sp-group-body`,o2=()=>`sp-group-chevron`,s2=()=>`sp-issues`,c2=()=>`sp-issue`,l2=()=>`sp-issue-code`,u2=()=>`sp-issue-msg`,d2=()=>`sp-inspector`,f2=()=>`sp-kv`,p2=()=>`sp-kv-key`,m2=()=>`sp-kv-value`,h2=()=>`sp-small`,g2=`aria-label`,_2={ArrowRight:[1,0],ArrowLeft:[-1,0],ArrowDown:[0,1],ArrowUp:[0,-1]};function v2(e,t,n){let r=(e,t)=>Number.isFinite(e)?e:t,i=Math.min(Math.max(280,r(e.width,340)),Math.max(1,t-16)),a=Math.min(Math.max(180,r(e.height,380)),Math.max(1,n-16));return{width:i,height:a,left:Math.max(8,Math.min(r(e.left,t-i-24),t-i-8)),top:Math.max(8,Math.min(r(e.top,100),n-a-8))}}function y2(e,t){let n=document.createElement(`section`);n.className=`spl-floating-inspector`,n.setAttribute(`role`,`dialog`),n.setAttribute(g2,`MatchUp inspector`),n.hidden=!0;let r=document.createElement(`div`);r.className=`spl-floating-header`,r.tabIndex=0,r.setAttribute(g2,`Move inspector with arrow keys`);let i=document.createElement(`strong`);i.textContent=`Inspector`,r.appendChild(i);let a=null;function o(e,t){let n=document.createElement(`button`);return n.type=`button`,n.textContent=e,n.addEventListener(`click`,t),r.appendChild(n),n}o(`Reset position`,()=>{l=v2({},globalThis.innerWidth,globalThis.innerHeight),d(!0)}),o(`Dock`,()=>{t.onDock(),a?.focus()}),o(`Close`,()=>{t.onClose(),a?.focus()});let s=document.createElement(`div`);s.className=`spl-floating-content`;let c=document.createElement(`button`);c.type=`button`,c.className=`spl-floating-resize`,c.textContent=`↘`,c.setAttribute(g2,`Resize inspector with arrow keys`),n.append(r,s,c);let l=v2(t.geometry??{},globalThis.innerWidth,globalThis.innerHeight),u=null;function d(e=!1){l=v2(l,globalThis.innerWidth,globalThis.innerHeight),Object.assign(n.style,{left:`${l.left}px`,top:`${l.top}px`,width:`${l.width}px`,height:`${l.height}px`}),e&&t.onGeometryChange?.({...l})}function f(e,t){if(e.button!==0||!t&&e.target.closest(`button`))return;let n=t?c:r;u={id:e.pointerId,x:e.clientX,y:e.clientY,geometry:{...l},resizing:t,target:n},n.setPointerCapture(e.pointerId),e.preventDefault()}function p(e){if(!u||u.id!==e.pointerId)return;let t=e.clientX-u.x,n=e.clientY-u.y;l=u.resizing?{...u.geometry,width:u.geometry.width+t,height:u.geometry.height+n}:{...u.geometry,left:u.geometry.left+t,top:u.geometry.top+n},d()}function m(){if(!u)return;let e=u;u=null,e.target.hasPointerCapture(e.id)&&e.target.releasePointerCapture(e.id),d(!0)}function h(e,t){if(e.target!==e.currentTarget)return;let n=e.shiftKey?40:10,r=_2[e.key];if(!r)return;let i=r[0]*n,a=r[1]*n;e.preventDefault(),l=t?{...l,width:l.width+i,height:l.height+a}:{...l,left:l.left+i,top:l.top+a},d(!0)}r.addEventListener(`pointerdown`,e=>f(e,!1)),c.addEventListener(`pointerdown`,e=>f(e,!0)),r.addEventListener(`keydown`,e=>h(e,!1)),c.addEventListener(`keydown`,e=>h(e,!0)),n.addEventListener(`pointermove`,p),n.addEventListener(`pointerup`,m),n.addEventListener(`pointercancel`,m);let g=()=>d(!0),_=!1;function v(e){n.hidden=!e,e&&!_?(globalThis.addEventListener(`resize`,g),d()):!e&&_&&globalThis.removeEventListener(`resize`,g),_=e}return d(),{element:n,content:s,setVisible:v,rememberFocus:()=>{n.contains(document.activeElement)||(a=document.activeElement)},destroy:()=>{m(),globalThis.removeEventListener(`resize`,g),n.remove(),e.remove()}}}function b2(e,t,n){let r=!!n?.hideLeft,i=(n?.catalogPlacement??n?.catalogSide)===`left`,a=n?.catalogPlacement??n?.catalogSide??`right`,o=n?.inspectorPlacement??`docked`,s=document.createElement(`div`);s.className=A0();let c=null,l=null;if(r)i?s.classList.add(`spl-catalog-left`):s.classList.add(`spl-no-left`);else{c=document.createElement(`div`),c.className=j0(),l=document.createElement(`button`),l.className=M0(),l.textContent=`◀`,l.title=`Toggle sidebar`,l.addEventListener(`click`,()=>t.onToggleLeft()),c.appendChild(l);let n=document.createElement(`div`);n.className=`spl-left-content`,n.style.cssText=`display:flex;flex-direction:column;gap:12px;flex:1;min-height:0`,e.dateStrip.element.style.flex=`1`,e.dateStrip.element.style.minHeight=`0`,e.dateStrip.element.style.overflow=`auto`,n.appendChild(e.dateStrip.element),e.issuesPanel.element.style.flex=`1`,e.issuesPanel.element.style.minHeight=`0`,e.issuesPanel.element.style.overflow=`auto`,n.appendChild(e.issuesPanel.element),c.appendChild(n)}let u=e.courtGridSlot.element,d=document.createElement(`div`);d.className=z0(),d.dataset.panel=`catalog-region`;let f=document.createElement(`div`);f.className=`spl-catalog-region`,d.appendChild(f),e.matchUpCatalog.element.style.flex=`3`,e.matchUpCatalog.element.style.minHeight=`0`,e.matchUpCatalog.element.style.overflow=`auto`,f.appendChild(e.matchUpCatalog.element),e.inspectorPanel.element.style.flex=`1`,e.inspectorPanel.element.style.minHeight=`120px`,e.inspectorPanel.element.style.overflow=`auto`,d.appendChild(e.inspectorPanel.element),c&&s.appendChild(c),i&&r?(s.appendChild(d),s.appendChild(u)):(s.appendChild(u),s.appendChild(d));let p=y2(e.inspectorPanel.element,{geometry:n?.inspectorGeometry,onGeometryChange:n?.onInspectorGeometryChange,onClose:()=>t.onInspectorClose?.(),onDock:()=>_(`docked`)});s.appendChild(p.element);function m(){s.dataset.catalogPlacement=a,s.dataset.inspectorPlacement=o,s.classList.toggle(`spl-catalog-left`,a===`left`&&r),s.classList.toggle(`spl-no-left`,a===`right`&&r);let t=o===`floating`?p.content:d;e.inspectorPanel.element.parentElement!==t&&t.appendChild(e.inspectorPanel.element),p.setVisible(o===`floating`&&e.inspectorPanel.element.style.display!==`none`)}function h(e){a=e,m()}function g(e){s.dataset.catalogVisible=String(e),s.classList.remove(`spl-sidebar-collapsed`)}function _(e){p.rememberFocus(),o=e,m(),n?.onInspectorPlacementChange?.(e)}m();function v(t){r||(t.leftCollapsed?(s.classList.add(`spl-left-collapsed`),l&&(l.textContent=`▶`)):(s.classList.remove(`spl-left-collapsed`),l&&(l.textContent=`◀`)),e.dateStrip.update(t),e.issuesPanel.update(t)),e.courtGridSlot.update(t),e.matchUpCatalog.update(t),e.inspectorPanel.element.style.display=t.inspectorVisible===!1?`none`:``,e.inspectorPanel.update(t),p.setVisible(o===`floating`&&t.inspectorVisible!==!1)}return{element:s,update:v,setCatalogPlacement:h,setCatalogVisible:g,setInspectorPlacement:_,catalogRegion:f,destroy:()=>{p.destroy(),Object.values(e).forEach(e=>e.destroy?.())}}}function x2(e){let t=e.sides;if(t?.length===2){let e=S2(t[0]),n=S2(t[1]);if(e&&n)return`${e} vs ${n}`;if(e)return`${e} vs TBD`;if(n)return`TBD vs ${n}`}return`TBD vs TBD`}function S2(e){return e?`${e.participantName??``}${e.seedNumber?` [${e.seedNumber}]`:``}`:``}function C2(e){return(e?.individualParticipants??[]).map(e=>e.participantName).filter(e=>!!e).join(` / `)}function w2(e){let t=[e.eventName,e.drawName??``,e.roundName??``];if(e.sides)for(let n of e.sides){n.participantName&&t.push(n.participantName);for(let e of n.individualParticipants??[])e.participantName&&t.push(e.participantName)}return t.join(` `).toLowerCase()}function T2(e={}){let t=document.createElement(`div`);t.className=K0(),t.dataset.panel=`inspector`;let n=document.createElement(`div`);n.className=q0();let r=document.createElement(`div`);r.className=J0(),r.textContent=`Inspector`,n.appendChild(r),t.appendChild(n);let i=document.createElement(`div`);i.className=d2(),t.appendChild(i);function a(t){i.innerHTML=``;let n=t.selectedMatchUp;if(!n){let e=document.createElement(`div`);e.className=h2(),e.textContent=`Select a matchUp in the catalog to see details.`,i.appendChild(e);return}if(D2(i,`Event`,n.eventName),D2(i,`Draw`,n.drawName??n.drawId),D2(i,`Round`,n.roundName??`Round ${n.roundNumber}`),D2(i,`Type`,n.matchUpType??`—`),D2(i,`Format`,n.matchUpFormat??`—`),D2(i,`Scheduled`,n.isScheduled?`Yes`:`No`),n.scheduledTime&&D2(i,`Time`,n.scheduledTime),n.scheduledCourtName&&D2(i,`Court`,n.scheduledCourtName),n.sides?.length){let e=document.createElement(`div`);e.className=h2(),e.style.marginTop=`8px`,e.textContent=`Participants:`,i.appendChild(e);let t=document.createElement(`div`);t.className=`spl-inspector-sides`;for(let e of n.sides){let n=document.createElement(`div`);n.className=`spl-inspector-side`;let r=document.createElement(`span`);if(r.textContent=S2(e)||`TBD`,n.appendChild(r),e.ranking){let t=document.createElement(`span`);t.className=`spl-inspector-seed`,t.textContent=`#${e.ranking}`,n.appendChild(t)}t.appendChild(n)}i.appendChild(t)}E2(i,e,n,t)}return{element:t,update:a}}function E2(e,t,n,r){if(t.renderExtra)try{let i=t.renderExtra(n,r);i&&e.appendChild(i)}catch(e){console.error(`[schedule-page] inspector renderExtra threw`,e)}}function D2(e,t,n){let r=document.createElement(`div`);r.className=f2();let i=document.createElement(`div`);i.className=p2(),i.textContent=t;let a=document.createElement(`div`);a.className=m2(),a.textContent=n,r.appendChild(i),r.appendChild(a),e.appendChild(r)}function O2(e){return(e.find(e=>e.isActive)??e[0])?.date??null}var k2=class{constructor(e){this.listeners=new Set,this.batchDepth=0,this.emitDeferred=!1,this.config=e;let t=e.initialCatalogState??{};this.state={matchUpCatalog:e.matchUpCatalog,scheduleDates:e.scheduleDates,issues:e.issues??[],selectedDate:O2(e.scheduleDates),selectedMatchUp:null,catalogSearchQuery:t.catalogSearchQuery??``,catalogGroupBy:t.catalogGroupBy??`event`,catalogFilters:t.catalogFilters??{},showCompleted:t.showCompleted??!1,showScheduled:t.showScheduled??!1,scheduledBehavior:e.scheduledBehavior??`dim`,schedulingMode:e.schedulingMode??`immediate`,pendingActions:[],hasUnsavedChanges:!1,leftCollapsed:!!e.hideLeft,hideLeft:!!e.hideLeft,activeStripVisible:e.activeStripVisible??!0,inspectorVisible:e.inspectorVisible??!0}}getState(){return this.state}setMatchUpCatalog(e){let t=this.state.selectedMatchUp?e.find(e=>e.matchUpId===this.state.selectedMatchUp?.matchUpId)??null:null;this.setState({matchUpCatalog:e,selectedMatchUp:t})}setScheduleDates(e){let t=O2(e),n=O2(this.state.scheduleDates),r=!!t&&t!==n;this.setState({scheduleDates:e,selectedDate:r?t:this.state.selectedDate})}setIssues(e){this.setState({issues:e})}handleMatchUpDrop(e,t){if(this.state.schedulingMode===`immediate`)this.config.onMatchUpDrop?.(e,t);else{let n={kind:`schedule`,matchUpId:e.matchUp.matchUpId,matchUp:e.matchUp,event:t};this.setState({pendingActions:[...this.state.pendingActions,n],hasUnsavedChanges:!0})}}handleMatchUpRemove(e){if(this.state.schedulingMode===`immediate`)this.config.onMatchUpRemove?.(e);else{let t=this.state.pendingActions.findIndex(t=>t.kind===`schedule`&&t.matchUpId===e);if(t>=0){let e=[...this.state.pendingActions];e.splice(t,1),this.setState({pendingActions:e,hasUnsavedChanges:e.length>0})}else{let t={kind:`unschedule`,matchUpId:e};this.setState({pendingActions:[...this.state.pendingActions,t],hasUnsavedChanges:!0})}}}save(){let e=this.state.pendingActions;return e.length?(this.config.onBulkSave?.(e),this.setState({pendingActions:[],hasUnsavedChanges:!1}),e):[]}discardPending(){this.setState({pendingActions:[],hasUnsavedChanges:!1})}getPendingActions(){return this.state.pendingActions}selectDate(e){this.state.selectedDate!==e&&(this.setState({selectedDate:e}),this.config.onDateSelected?.(e))}selectMatchUp(e){this.setState({selectedMatchUp:e}),this.config.onMatchUpSelected?.(e)}setCatalogSearch(e){this.setState({catalogSearchQuery:e})}setCatalogGroupBy(e){this.setState({catalogGroupBy:e})}setCatalogFilters(e){this.setState({catalogFilters:e})}setShowCompleted(e){this.setState({showCompleted:e})}setShowScheduled(e){this.setState({showScheduled:e})}toggleLeftPanel(){this.setState({leftCollapsed:!this.state.leftCollapsed})}setActiveStripVisible(e){this.state.activeStripVisible!==e&&this.setState({activeStripVisible:e})}toggleActiveStrip(){this.setState({activeStripVisible:!this.state.activeStripVisible})}setInspectorVisible(e){this.state.inspectorVisible!==e&&this.setState({inspectorVisible:e})}toggleInspector(){this.setState({inspectorVisible:!this.state.inspectorVisible})}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setState(e){this.state={...this.state,...e},this.emit()}batch(e){this.batchDepth+=1;try{e()}finally{--this.batchDepth,!this.batchDepth&&this.emitDeferred&&(this.emitDeferred=!1,this.emit())}}emit(){if(this.batchDepth){this.emitDeferred=!0;return}for(let e of this.listeners)e(this.state)}};function A2(e){let t={ERROR:[],WARN:[],INFO:[]},n={},r={total:e.length,ERROR:0,WARN:0,INFO:0},i={},a=e=>e===`ERROR`?0:e===`WARN`?1:2;for(let a of e)if(t[a.severity].push(a),r[a.severity]++,a.date){(n[a.date]??=[]).push(a);let e=i[a.date]??={total:0,ERROR:0,WARN:0,INFO:0};e.total++,e[a.severity]++}let o=(e,t)=>a(e.severity)-a(t.severity)||e.message.localeCompare(t.message),s=[...e].sort(o);for(let e of Object.keys(t))t[e].sort(o);for(let e of Object.keys(n))n[e].sort(o);return{all:s,bySeverity:t,byDate:n,counts:r,countsByDate:i}}var j2=`spl-cell--issue-pulse`;function M2(){let e=document.createElement(`div`);e.className=K0();let t=document.createElement(`div`);t.className=q0();let n=document.createElement(`div`);n.className=J0(),n.textContent=`Issues`;let r=document.createElement(`div`);r.className=Y0(),t.appendChild(n),t.appendChild(r),e.appendChild(t);let i=document.createElement(`div`);i.className=s2(),e.appendChild(i);function a(e){let t=A2(e.issues);if(r.textContent=`${t.counts.total} total (${t.counts.ERROR} errors)`,i.innerHTML=``,!t.all.length){let e=document.createElement(`div`);e.className=h2(),e.textContent=`No scheduling conflicts.`,i.appendChild(e);return}for(let e of t.all.slice(0,30)){let t=document.createElement(`div`);t.className=c2(),e.severity===`ERROR`?t.classList.add(`error`):e.severity===`WARN`?t.classList.add(`warn`):t.classList.add(`info`);let n=document.createElement(`div`);n.className=l2(),n.textContent=e.severity;let r=document.createElement(`div`);if(r.className=u2(),e.participants){if(e.prefix){let t=document.createElement(`span`);t.textContent=e.prefix,t.style.opacity=`0.7`,r.appendChild(t)}let t=document.createElement(`span`);t.textContent=(e.issueType||``)+`: `,t.style.opacity=`0.7`,r.appendChild(t);let n=document.createElement(`span`);if(n.textContent=e.participants,n.style.color=`var(--spl-issue-participant1, #4fc3f7)`,n.style.fontWeight=`600`,r.appendChild(n),e.conflictParticipants?.length){let t=document.createElement(`span`);t.textContent=` conflicts with `,t.style.opacity=`0.7`,r.appendChild(t),e.conflictParticipants.forEach((e,t)=>{if(t>0){let e=document.createElement(`span`);e.textContent=`, `,e.style.opacity=`0.7`,r.appendChild(e)}let n=document.createElement(`span`);n.textContent=e,n.style.color=`var(--spl-issue-participant2, #ffb74d)`,n.style.fontWeight=`600`,r.appendChild(n)})}}else r.textContent=e.message;if(e.matchUpId){t.style.cursor=`pointer`;let n=e.matchUpId;t.addEventListener(`click`,()=>{console.log(`[issuesPanel] clicked issue row, matchUpId:`,n),o(n)})}else console.log(`[issuesPanel] issue has no matchUpId:`,e.message);t.appendChild(n),t.appendChild(r),i.appendChild(t)}}function o(e){let t=`.spl-grid-cell[data-matchup-id="${e}"]`,n=document.querySelector(t);console.log(`[issuesPanel] scrollToMatchUp selector:`,t,`found:`,!!n),n&&(n.scrollIntoView({behavior:`smooth`,block:`center`,inline:`center`}),n.classList.remove(j2),n.offsetWidth,n.classList.add(j2),n.addEventListener(`animationend`,()=>n.classList.remove(j2),{once:!0}))}return{element:e,update:a}}var N2=`spl-related-highlight`;function P2(){for(let e of document.querySelectorAll(`.${N2}`))e.classList.remove(N2)}function F2(e){P2();for(let t of e)for(let e of document.querySelectorAll(`[data-matchup-id="${CSS.escape(t)}"]`))e.classList.add(N2)}function I2(e,t){e.addEventListener(`mouseenter`,()=>{let n=t();n.length&&F2([...n,e.dataset.matchupId??``])}),e.addEventListener(`mouseleave`,P2),e.addEventListener(`dragstart`,P2)}var L2=new Set([`COMPLETED`,`RETIRED`,`WALKOVER`,`DEFAULTED`,`DOUBLE_WALKOVER`,`DOUBLE_DEFAULT`,`CANCELLED`,`ABANDONED`,`DEAD_RUBBER`]);function R2(e){return!!e&&L2.has(e)}function z2(e,t,n=`dim`,r,i=!1){let a=t.toLowerCase().trim();return e.filter(e=>n===`hide`&&e.isScheduled||!i&&R2(e.matchUpStatus)||r&&(r.eventType&&e.matchUpType!==r.eventType||r.eventName&&e.eventName!==r.eventName||r.drawName&&(e.drawName??e.drawId)!==r.drawName||r.gender&&e.gender!==r.gender||r.roundName&&e.roundName!==r.roundName)?!1:!a||w2(e).includes(a))}function B2(e){let t=new Map;for(let n of e){if(n.isScheduled||R2(n.matchUpStatus))continue;let e=t.get(n.eventId);(e===void 0||n.roundNumber<e)&&t.set(n.eventId,n.roundNumber)}return t}var V2={CONSOLATION:`Consolation`,PLAYOFF:`Playoff`,QUALIFYING:`Qualifying`,ROUND_ROBIN:`Round Robin`,PLAY_OFF:`Playoff`,Q_PLAYOFF:`Qualifying Playoff`,COMPASS:`Compass`,VOLUNTARY_CONSOLATION:`Voluntary Consolation`},H2=`Unscheduled`;function U2(e){if(e.structureName&&e.structureName.trim())return e.structureName.trim();let t=e.stage;return!t||t===`MAIN`?``:V2[t]??t.charAt(0)+t.slice(1).toLowerCase().replace(/_/g,` `)}function W2(e){let t;for(let n of e){let e=n.scheduledTime;e&&(t===void 0||e.localeCompare(t)<0)&&(t=e)}return t}function G2(e){let t=(e.sides??[]).filter(e=>!!e.participantId).length;return t>2?2:t}function K2(e){let t=0;for(let n of e){let e=G2(n);if(e>t&&(t=e),t===2)break}return t}function q2(e){return e.map((e,t)=>({item:e,index:t,readiness:G2(e)})).sort((e,t)=>t.readiness-e.readiness||e.index-t.index).map(e=>e.item)}function J2(e,t){let n=new Map,r=e=>{if(t===`draw`)return`${e.eventName} \u2014 ${e.drawName??e.drawId}`;if(t===`round`)return e.roundName??`Round ${e.roundNumber}`;if(t===`structure`){let t=U2(e);return t?`${e.eventName} \u2014 ${t}`:e.eventName}return t===`time`?e.scheduledTime??H2:e.eventName};for(let t of e){let e=r(t),i=n.get(e);i?i.push(t):n.set(e,[t])}return new Map([...n.entries()].map(([e,t])=>[e,q2(t)]).sort((e,t)=>{let n=K2(e[1]),r=K2(t[1]);if(n!==r)return r-n;let i=W2(e[1]),a=W2(t[1]);return i!==void 0&&a!==void 0&&i!==a?i.localeCompare(a):i!==void 0&&a===void 0?-1:i===void 0&&a!==void 0?1:e[0].localeCompare(t[0],void 0,{numeric:!0})}))}function Y2(e,t,n={}){let r=document.createElement(`div`);r.className=B0(),r.setAttribute(`data-matchup-id`,e.matchUpId);let i=R2(e.matchUpStatus);e.isScheduled?(r.classList.add(`scheduled`),r.draggable=!1):i?(r.classList.add(`completed`),r.draggable=!1):(r.draggable=!0,r.addEventListener(`dragstart`,t=>{t.stopPropagation(),t.dataTransfer.setDragImage(r,r.offsetWidth/2,20),t.dataTransfer.setData(`application/json`,JSON.stringify({type:`CATALOG_MATCHUP`,matchUp:e})),t.dataTransfer.effectAllowed=`copyMove`})),n.relatedMatchUpIds&&I2(r,()=>n.relatedMatchUpIds(e)),t.onClick&&r.addEventListener(`click`,n=>{n.stopPropagation(),t.onClick(e)});let a=X2(e,n);r.appendChild(a);let o=document.createElement(`div`);o.className=H0(),o.textContent=x2(e),r.appendChild(o);let s=document.createElement(`div`);s.className=U0();let c=[];e.drawName&&c.push(e.drawName),e.matchUpType&&c.push(e.matchUpType.toLowerCase()),s.textContent=c.join(` · `),r.appendChild(s);let l=document.createElement(`div`);if(l.className=W0(),e.scheduledTime&&!n.prominentTime&&l.appendChild($2(e.scheduledTime,`time`)),e.scheduledCourtName&&l.appendChild($2(e.scheduledCourtName,`court`)),e.matchUpFormat&&l.appendChild($2(e.matchUpFormat,`type`)),i&&e.matchUpStatus){let t=e.matchUpStatus.replace(/_/g,` `);l.appendChild($2(t,`status`))}if(e.stage&&e.stage!==`MAIN`){let t=e.stage.replace(/_/g,` `);l.appendChild($2(t,`stage`))}if(l.children.length&&r.appendChild(l),Q2(r,e,n),e.isScheduled){let e=document.createElement(`span`);e.className=`spl-matchup-check`,e.textContent=`✓`,r.appendChild(e)}return r}function X2(e,t){let n=document.createElement(`div`);if(n.className=V0(),typeof t.roundOffset==`number`){let e=t.roundOffset===0?`spl-card-title--round-current`:t.roundOffset===1?`spl-card-title--round-next`:`spl-card-title--round-later`;n.classList.add(e)}let r=`${e.eventName} \u2014 ${e.roundName??`Round `+e.roundNumber}`;if(!(t.prominentTime&&e.scheduledTime))return n.textContent=r,n;n.classList.add(`with-time`);let i=document.createElement(`span`);return i.className=`spl-card-title-text`,i.textContent=r,n.appendChild(i),n.appendChild(Z2(e.scheduledTime,t)),n}function Z2(e,t){let n=document.createElement(`span`);return n.className=`spl-card-time-header`,t.timeStatus&&(n.dataset.timeStatus=t.timeStatus,t.timeStatus!==`ok`&&n.classList.add(`spl-card-time-header--${t.timeStatus}`)),t.timeTitle&&(n.title=t.timeTitle),n.textContent=e,n}function Q2(e,t,n){if(n.renderExtra)try{let r=n.renderExtra(t);if(!r)return;let i=document.createElement(`div`);i.className=`spl-card-extra`,i.appendChild(r),e.appendChild(i)}catch(e){console.error(`[schedule-page] card renderExtra threw`,e)}}function $2(e,t){let n=document.createElement(`div`);return n.className=G0()+` `+t,n.textContent=e,n}var e4=`aria-label`;function t4(e,t){let n=new Set;for(let r of e){let e=t(r);e&&n.add(e)}return[...n].sort((e,t)=>e.localeCompare(t,void 0,{numeric:!0}))}function n4(e){let t=document.createElement(`div`);t.className=K0(),t.dataset.panel=`catalog`;let n=`spl-catalog-drop-over`,r=`is-filtering`,i=new Set,a=null,o=null,s,c={};t.addEventListener(`dragover`,e=>{e.preventDefault(),t.classList.add(n),e.dataTransfer.dropEffect=`move`}),t.addEventListener(`dragleave`,e=>{t.contains(e.relatedTarget)||t.classList.remove(n)}),t.addEventListener(`drop`,r=>{if(t.classList.remove(n),r.preventDefault(),!e.onDropRemove)return;let i;try{i=JSON.parse(r.dataTransfer.getData(`application/json`))}catch{return}(i.type===`CATALOG_MATCHUP`||i.type===`GRID_MATCHUP`)&&e.onDropRemove(i.matchUp.matchUpId)});let l=document.createElement(`div`);l.className=q0();let u=document.createElement(`div`);u.className=`spl-catalog-title-row`;let d=document.createElement(`div`);d.className=J0(),d.textContent=`MatchUp Catalog`;let f=document.createElement(`button`);f.className=`spl-catalog-filter-btn`,f.title=`Filter matchUps`,f.innerHTML=`<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"/></svg>`,u.appendChild(d),u.appendChild(f);let p=document.createElement(`div`);p.className=Y0(),l.appendChild(u),l.appendChild(p),t.appendChild(l);let m=document.createElement(`div`);m.className=e2();let h=document.createElement(`input`);h.type=`text`,h.placeholder=`Search matchUps...`,h.className=t2(),h.addEventListener(`input`,()=>e.onSearchChange(h.value));let g=oO(h,()=>{h.value=``,e.onSearchChange(``),h.focus()}),_=document.createElement(`select`);_.className=n2();for(let[e,t]of[[`event`,`By Event`],[`draw`,`By Draw`],[`round`,`By Round`],[`structure`,`By Structure`]]){let n=document.createElement(`option`);n.value=e,n.textContent=t,_.appendChild(n)}_.addEventListener(`change`,()=>e.onGroupByChange(_.value)),m.appendChild(g),m.appendChild(_),h.setAttribute(e4,`Search matchUps`),_.setAttribute(e4,`Group matchUps`);for(let[e,t]of[[`Previous cards`,-1],[`Next cards`,1]]){let n=document.createElement(`button`);n.type=`button`,n.className=`spl-catalog-scroll`,n.textContent=t<0?`◀`:`▶`,n.setAttribute(e4,e),n.addEventListener(`click`,()=>S.scrollBy({left:t*Math.max(280,S.clientWidth*.8),behavior:`smooth`})),m.appendChild(n)}t.appendChild(m);function v(){s&&=(s.destroy(),void 0)}function y(){return!!(c.eventType||c.eventName||c.drawName||c.gender||c.roundName)}function b(){f.classList.toggle(`active`,y())}function x(){let t=a?.matchUpCatalog??[],n=document.createElement(`div`);n.className=`spl-filter-popover`;let i=document.createElement(`div`);i.className=`spl-filter-header`;let o=document.createElement(`button`);o.className=`spl-filter-clear-btn`,o.textContent=`Clear All`,o.addEventListener(`click`,t=>{t.stopPropagation(),c={},e.onFilterChange(c),b();for(let e of n.querySelectorAll(`select`)){e.value=``,e.classList.remove(r);let t=e.previousElementSibling;t?.classList.contains(`spl-filter-label`)&&t.classList.remove(r)}}),i.appendChild(o);let s=document.createElement(`button`);s.className=`spl-filter-close-btn`,s.textContent=`×`,s.addEventListener(`click`,e=>{e.stopPropagation(),v()}),i.appendChild(s),n.appendChild(i);let l=[{label:`All Event Types`,key:`eventType`,values:t4(t,e=>e.matchUpType)},{label:`All Events`,key:`eventName`,values:t4(t,e=>e.eventName)},{label:`All Flights`,key:`drawName`,values:t4(t,e=>e.drawName)},{label:`All Genders`,key:`gender`,values:t4(t,e=>e.gender)},{label:`All Rounds`,key:`roundName`,values:t4(t,e=>e.roundName)}];for(let t of l){if(t.values.length<2)continue;let i=document.createElement(`label`);i.className=`spl-filter-label`,i.textContent=t.label,n.appendChild(i);let a=document.createElement(`select`);a.className=`spl-filter-select`;let o=document.createElement(`option`);o.value=``,o.textContent=t.label,a.appendChild(o);for(let e of t.values){let t=document.createElement(`option`);t.value=e,t.textContent=e,a.appendChild(t)}a.value=c[t.key]??``;let s=()=>{let e=a.value!==``;a.classList.toggle(r,e),i.classList.toggle(r,e)};s(),a.addEventListener(`change`,()=>{c={...c,[t.key]:a.value||void 0},e.onFilterChange(c),b(),s()}),n.appendChild(a)}let u=document.createElement(`label`);u.className=`spl-filter-toggle`;let d=document.createElement(`input`);d.type=`checkbox`,d.checked=a?.showScheduled??!1,d.addEventListener(`change`,()=>{e.onShowScheduledChange?.(d.checked)}),u.appendChild(d),u.appendChild(document.createTextNode(` Show assigned`)),n.appendChild(u);let f=document.createElement(`label`);f.className=`spl-filter-toggle`;let p=document.createElement(`input`);return p.type=`checkbox`,p.checked=a?.showCompleted??!1,p.addEventListener(`change`,()=>{e.onShowCompletedChange(p.checked)}),f.appendChild(p),f.appendChild(document.createTextNode(` Show completed`)),n.appendChild(f),n}f.addEventListener(`click`,()=>{v(),s=ly(f,{content:x(),placement:t.closest(`[data-catalog-placement="bottom"]`)?`top-start`:`bottom-start`,interactive:!0,trigger:`manual`,appendTo:()=>document.body,onClickOutside:()=>v(),theme:``}),s.show()});let S=document.createElement(`div`);S.className=$0(),t.appendChild(S);function C(e){return[e.matchUpCatalog,e.catalogSearchQuery,e.catalogGroupBy,e.catalogFilters,e.showCompleted,e.showScheduled,e.scheduledBehavior]}function w(e){for(let t of S.querySelectorAll(`[data-match-up-id]`))t.classList.toggle(`selected`,t.dataset.matchUpId===e)}function T(t){a=t,c=t.catalogFilters??{},b();let n=C(t);if(o?.every((e,t)=>e===n[t])){w(t.selectedMatchUp?.matchUpId);return}o=n;let r=B2(t.matchUpCatalog),s=t.showScheduled?t.scheduledBehavior:`hide`,l=z2(t.matchUpCatalog,t.catalogSearchQuery,s,t.catalogFilters,t.showCompleted),u=J2(l,t.catalogGroupBy),d=l.filter(e=>!e.isScheduled).length;p.textContent=`${d} unscheduled`,h.value!==t.catalogSearchQuery&&(h.value=t.catalogSearchQuery,sO(g)),_.value!==t.catalogGroupBy&&(_.value=t.catalogGroupBy),P2(),S.innerHTML=``;for(let[n,s]of u){let c=document.createElement(`div`);c.className=r2();let l=i.has(n),u=document.createElement(`button`);u.type=`button`,u.setAttribute(`aria-expanded`,String(!l)),u.className=i2();let d=document.createElement(`span`);d.className=o2(),d.textContent=l?`▶`:`▼`;let f=document.createElement(`span`);f.textContent=`${n} (${s.length})`,u.appendChild(d),u.appendChild(f),u.addEventListener(`click`,()=>{i.has(n)?i.delete(n):i.add(n),o=null,a&&T(a)});let p=document.createElement(`div`);p.className=a2(),l&&(p.style.display=`none`);for(let n of l?[]:s){let i=r.get(n.eventId),a=Y2(n,{onClick:t=>e.onMatchUpSelected?.(t)},{roundOffset:i!==void 0&&!n.isScheduled&&!R2(n.matchUpStatus)?Math.max(0,n.roundNumber-i):void 0,renderExtra:e.renderCardExtra,relatedMatchUpIds:e.relatedMatchUpIds});a.dataset.matchUpId=n.matchUpId,t.selectedMatchUp?.matchUpId===n.matchUpId&&a.classList.add(`selected`),p.appendChild(a)}c.appendChild(u),c.appendChild(p),S.appendChild(c)}}return{element:t,update:T,destroy:v}}function r4(e){let t=document.createElement(`div`);t.className=K0();let n=document.createElement(`div`);n.className=q0();let r=document.createElement(`div`);r.className=J0(),r.textContent=`Dates`;let i=document.createElement(`div`);i.className=Y0(),n.appendChild(r),n.appendChild(i),t.appendChild(n);let a=document.createElement(`div`);a.className=X0(),t.appendChild(a);function o(t){let n=t.scheduleDates;i.textContent=`${n.length} dates`,a.innerHTML=``;for(let r of n){let n=document.createElement(`div`);n.className=Z0(),r.date===t.selectedDate&&n.classList.add(`selected`),r.isActive||n.classList.add(`inactive`),n.setAttribute(`data-date`,r.date);let i=document.createElement(`div`),o=document.createElement(`div`);o.style.cssText=`font-weight:800;font-size:0.75rem`,o.textContent=r.date;let s=document.createElement(`div`);s.style.cssText=`font-size:0.6875rem;color:var(--sp-muted)`,s.textContent=r.isActive?`Active`:`Inactive`,i.appendChild(o),i.appendChild(s);let c=document.createElement(`div`);if(c.className=Q0(),r.matchUpCount!=null){let e=document.createElement(`div`);e.className=`spl-date-badge matchups`,e.textContent=`${r.matchUpCount} matchUps`,c.appendChild(e)}if(r.issueCount&&r.issueCount>0){let e=document.createElement(`div`);e.className=`spl-date-badge issues`,e.textContent=`${r.issueCount} issues`,c.appendChild(e)}n.appendChild(i),n.appendChild(c),n.addEventListener(`click`,()=>e.onDateSelected(r.date)),a.appendChild(n)}}return{element:t,update:o}}function i4(e,t,n){let r=document.createElement(`div`);r.className=N0();let i=document.createElement(`div`);i.className=P0();let a=n?.titleLeadingActions,o;if(n?.titleSlot?o=n.titleSlot:(o=document.createElement(`div`),o.className=F0(),o.textContent=`Court Grid`),a){let e=document.createElement(`div`);e.className=L0();let t=Array.isArray(a)?a:[a];for(let n of t)e.appendChild(n);e.appendChild(o),i.appendChild(e)}else i.appendChild(o);let s=n?.headerActions;if(s){let e=document.createElement(`div`);e.className=I0();let t=Array.isArray(s)?s:[s];for(let n of t)e.appendChild(n);i.appendChild(e)}r.appendChild(i);let c=document.createElement(`div`);c.className=R0(),n?.gridMaxHeight&&(c.style.maxHeight=n.gridMaxHeight),e&&c.appendChild(e),c.addEventListener(`dragover`,e=>{e.preventDefault(),e.dataTransfer.dropEffect=`move`}),c.addEventListener(`drop`,e=>{if(e.preventDefault(),!t.onMatchUpDrop)return;let n;try{n=JSON.parse(e.dataTransfer.getData(`application/json`))}catch{return}(n.type===`CATALOG_MATCHUP`||n.type===`GRID_MATCHUP`)&&t.onMatchUpDrop(n,e)}),r.appendChild(c);function l(e){}return{element:r,update:l}}var a4=class{constructor(e){this.container=null,this.store=new k2(e);let t=r4({onDateSelected:e=>this.store.selectDate(e)}),n=M2(),r=i4(e.courtGridElement,{onMatchUpDrop:(e,t)=>{this.store.handleMatchUpDrop(e,t)}},{gridMaxHeight:e.gridMaxHeight,headerActions:e.headerActions,titleLeadingActions:e.titleLeadingActions,titleSlot:e.titleSlot}),i=n4({onSearchChange:e=>this.store.setCatalogSearch(e),onGroupByChange:e=>this.store.setCatalogGroupBy(e),onFilterChange:e=>this.store.setCatalogFilters(e),onShowCompletedChange:e=>this.store.setShowCompleted(e),onShowScheduledChange:e=>this.store.setShowScheduled(e),onMatchUpSelected:e=>this.store.selectMatchUp(e),onDropRemove:e=>{this.store.handleMatchUpRemove(e)},renderCardExtra:e.renderCardExtra,relatedMatchUpIds:e.relatedMatchUpIds}),a=T2({renderExtra:e.renderInspectorExtra});this.layout=b2({dateStrip:t,issuesPanel:n,courtGridSlot:r,matchUpCatalog:i,inspectorPanel:a},{onToggleLeft:()=>this.store.toggleLeftPanel(),onInspectorClose:()=>this.store.setInspectorVisible(!1)},e),this.unsubscribe=this.store.subscribe(e=>{this.layout.update(e)}),this.layout.update(this.store.getState())}render(e){this.container=e,e.appendChild(this.layout.element)}destroy(){this.unsubscribe(),this.layout.destroy(),this.container&&this.layout.element.parentNode===this.container&&this.layout.element.remove(),this.container=null}setCatalogPlacement(e){this.layout.setCatalogPlacement(e)}setCatalogVisible(e){this.layout.setCatalogVisible(e)}setInspectorPlacement(e){this.layout.setInspectorPlacement(e)}getCatalogRegion(){return this.layout.catalogRegion}setMatchUpCatalog(e){this.store.setMatchUpCatalog(e)}setScheduleDates(e){this.store.setScheduleDates(e)}setIssues(e){this.store.setIssues(e)}batch(e){this.store.batch(e)}setActiveStripVisible(e){this.store.setActiveStripVisible(e)}toggleActiveStrip(){this.store.toggleActiveStrip()}get activeStripVisible(){return this.store.getState().activeStripVisible}setInspectorVisible(e){this.store.setInspectorVisible(e)}toggleInspector(){this.store.toggleInspector()}get inspectorVisible(){return this.store.getState().inspectorVisible}save(){return this.store.save()}discardPending(){this.store.discardPending()}get hasUnsavedChanges(){return this.store.getState().hasUnsavedChanges}getStore(){return this.store}},o4=new Set([`IN_PROGRESS`]),s4=new Set([`SUSPENDED`]),c4=new Set([`CANCELLED`,`ABANDONED`,`COMPLETED`,`DEAD_RUBBER`,`DEFAULTED`,`DOUBLE_WALKOVER`,`DOUBLE_DEFAULT`,`RETIRED`,`WALKOVER`]),l4=`in-progress`,u4=`suspended`,d4=`pending`,f4=`completed`;function p4(e,t,n,r){let i=e.matchUpStatus;return i&&n.has(i)?u4:i&&t.has(i)||e.hasScore&&e.winningSide===void 0&&(!i||!r.has(i))?l4:i&&r.has(i)||e.winningSide!==void 0?f4:d4}function m4(e,t){let n=t?.inProgressStatuses??o4,r=t?.suspendedStatuses??s4,i=t?.completedStatuses??c4,a=t?.dueMatchUpIds,o=e.cells,s=-1,c=-1;for(let t=0;t<o.length;t++){let l=o[t];if(!l)continue;let u=p4(l,n,r,i);if(u===l4||u===u4)return{courtId:e.courtId,state:u,matchUp:l,rowIndex:t};u===d4&&l.calledAt&&s===-1&&(s=t),u===d4&&!l.calledAt&&c===-1&&a?.has(l.matchUpId)&&(c=t)}return s===-1?c===-1?{courtId:e.courtId,state:`free`}:{courtId:e.courtId,state:`due`,matchUp:o[c],rowIndex:c}:{courtId:e.courtId,state:`next`,matchUp:o[s],rowIndex:s}}function h4(e,t){return e.columns.map(e=>m4(e,t))}function g4(e,t){if(t.size===0)return!1;for(let n of e.participantIds)if(t.has(n))return!0;return!1}function _4(e,t){return t.roundNumber!==void 0&&t.drawId!==void 0&&e.drawId===t.drawId&&e.roundNumber!==void 0&&e.roundNumber<t.roundNumber}function v4(e,t){let n=new Set(t.participantIds??[]),r=-1,i=-1;for(let a of e.columns)for(let e=0;e<a.cells.length;e++){let o=a.cells[e];o&&o.matchUpId!==t.matchUpId&&(e>r&&g4(o,n)&&(r=e),e>i&&_4(o,t)&&(i=e))}return{participantFloor:r,earlierRoundFloor:i}}function y4(e,t,n){let r=t;for(;r<e.cells.length;){let t=e.cells[r];if(!t||t.matchUpId===n)return r;r++}return r}function b4(e,t,n,r){let i=e.columns.find(e=>e.courtId===t);if(!i)throw Error(`computeActiveStripDropTarget: court "${t}" not present in grid`);let{participantFloor:a,earlierRoundFloor:o}=v4(e,n),s=m4(i,r),c=s.state!==`free`&&s.rowIndex!==void 0?s.rowIndex:-1;return{courtId:t,rowIndex:y4(i,Math.max(0,a+1,o+1,c),n.matchUpId)}}function x4(e,t){if(t.roundNumber===void 0||t.drawId===void 0)return 1/0;for(let n=0;n<e.cells.length;n++){let r=e.cells[n];if(r&&r.matchUpId!==t.matchUpId&&r.drawId===t.drawId&&r.roundNumber!==void 0&&r.roundNumber>t.roundNumber)return n}return 1/0}function S4(e,t){let n=e.columns.map(e=>({courtId:e.courtId,cells:e.cells.slice()})),r={columns:n},i=new Map(n.map(e=>[e.courtId,e]));return t.toSorted((e,t)=>(e.roundNumber??0)-(t.roundNumber??0)||e.matchUpId.localeCompare(t.matchUpId)).map(e=>{let t=e.courtId?i.get(e.courtId):void 0;if(!t)return{matchUpId:e.matchUpId,placed:!1};let n={matchUpId:e.matchUpId,drawId:e.drawId,roundNumber:e.roundNumber,participantIds:e.participantIds},{participantFloor:a,earlierRoundFloor:o}=v4(r,n),s=Math.max(0,a+1,o+1),c=x4(t,e),l=-1;for(let n=s;n<=t.cells.length&&n<c;n++){let r=t.cells[n];if(!r||r.matchUpId===e.matchUpId){l=n;break}}return l===-1?{matchUpId:e.matchUpId,placed:!1}:(t.cells[l]={matchUpId:e.matchUpId,drawId:e.drawId,roundNumber:e.roundNumber,participantIds:e.participantIds},{matchUpId:e.matchUpId,courtId:e.courtId,rowIndex:l,placed:!0})})}var C4=`drop-over`;function w4(e,t,n,r,i){e.addEventListener(`dragover`,t=>{t.preventDefault(),e.classList.add(C4),t.dataTransfer&&(t.dataTransfer.dropEffect=`move`)}),e.addEventListener(`dragleave`,()=>{e.classList.remove(C4)}),e.addEventListener(`drop`,a=>{if(e.classList.remove(C4),a.preventDefault(),!n.onMatchUpDrop)return;let o;try{o=JSON.parse(a.dataTransfer?.getData(`application/json`)??``)}catch{return}if(o.type!==`CATALOG_MATCHUP`&&o.type!==`GRID_MATCHUP`)return;let s={matchUpId:o.matchUp.matchUpId,drawId:o.matchUp.drawId,roundNumber:o.matchUp.roundNumber,participantIds:(o.matchUp.sides??[]).map(e=>e.participantId).filter(e=>!!e)},c=b4(r(),t.courtId,s,i);n.onMatchUpDrop(o,c,a)})}function T4(e){return e===`in-progress`?`LIVE`:e===`suspended`?`SUSP`:e===`next`?`NEXT`:e===`due`?`DUE`:null}function E4(e,t,n,r,i,a){let o=document.createElement(`div`);if(o.className=`spl-active-strip-cell state-${e.state}`,i&&(o.classList.add(`has-availability-block`),e.state!==`free`&&e.matchUp&&o.classList.add(`has-block-conflict`)),o.dataset.courtId=e.courtId,e.rowIndex!==void 0&&(o.dataset.rowIndex=String(e.rowIndex)),r.cellHeight&&(o.style.minHeight=r.cellHeight),i){let e=document.createElement(`div`);e.className=`spl-active-strip-block-banner block-${i.type.toLowerCase()}`;let t=document.createElement(`span`);if(t.className=`spl-active-strip-block-label`,t.textContent=i.label,e.appendChild(t),i.detail){let t=document.createElement(`span`);t.className=`spl-active-strip-block-detail`,t.textContent=i.detail,e.appendChild(t)}o.appendChild(e)}if(e.state!==`free`&&e.matchUp){let t=r.renderCell?.(e.matchUp);if(t)o.appendChild(t);else{let t=document.createElement(`div`);t.className=`spl-active-strip-body`,t.textContent=e.matchUp.participantIds.join(` – `)||e.matchUp.matchUpId,o.appendChild(t)}}let s=e.state!==`free`&&!!e.matchUp;if(!s&&!i&&a?.upcoming){let e=document.createElement(`div`);e.className=`spl-active-strip-runway block-${a.upcoming.type.toLowerCase()}`,e.textContent=a.upcoming.label,a.upcoming.title&&(e.title=a.upcoming.title),o.appendChild(e)}s&&a?.edge&&(o.classList.add(`has-block-edge`,`edge-${a.edge.type.toLowerCase()}`),a.edge.title&&(o.title=a.edge.title));let c=T4(e.state);if(c){let t=document.createElement(`span`);t.className=`spl-active-strip-state-pill`,t.textContent=c,e.state===`suspended`&&(t.title=`Suspended`),e.state===`due`&&(t.title=`Should have started — not called to court`),o.appendChild(t)}return w4(o,e,t,n,r.statusOptions),o}function D4(e){let t=document.createElement(`div`);if(t.className=`spl-active-strip-spacer`,e.cellHeight&&(t.style.minHeight=e.cellHeight),e.spacerLabel){let n=document.createElement(`span`);n.className=`spl-active-strip-spacer-label`,n.textContent=e.spacerLabel,t.appendChild(n)}return t}function O4(e={},t={}){let n=document.createElement(`div`);n.className=`spl-active-strip`;let r={grid:{columns:[]},courts:[]};function i(){return r.grid}function a(){n.innerHTML=``,r.gridTemplateColumns?(n.style.display=`grid`,n.style.gridTemplateColumns=r.gridTemplateColumns):(n.style.display=``,n.style.gridTemplateColumns=``),n.style.minWidth=r.minWidth??``,n.appendChild(D4(t));let a=r.dueMatchUpIds?{...t.statusOptions,dueMatchUpIds:new Set(r.dueMatchUpIds)}:t.statusOptions,o=h4(r.grid,a);for(let a of o){let o=r.courtBlocks?.[a.courtId],s={upcoming:r.courtUpcomingBlocks?.[a.courtId],edge:r.courtBlockEdges?.[a.courtId]};n.appendChild(E4(a,e,i,t,o,s))}}function o(e){r=e,a()}function s(e){n.hidden=!e.activeStripVisible}return{element:n,setData:o,update:s}}var k4=`spl-cell--conflict-highlight`,A4=`spl-cell--complete`,j4={header:[`time`],body:[`eventRound`,`participants`],footer:[`score`],participantDisplay:{nameFormat:`full`,showSeed:!1,showRanking:!1,showNationality:!1,boldWinner:!0,showPotentials:!0}};function M4(e,t){let n=t??j4;return e.isBlocked?P4(e):e.isReserved?N4(e):e.matchUpId?I4(e,n):F4()}function N4(e){let t=document.createElement(`div`);t.className=`spl-grid-cell spl-cell--reserved`,t.dataset.reserved=`true`;let n=document.createElement(`div`);n.className=`spl-grid-cell__reserved-label`;let r=document.createElement(`div`);r.className=`spl-grid-cell__reserved-type`,r.textContent=`Reserved`,n.appendChild(r);let i=e.reservation?.tournamentName;if(i){let e=document.createElement(`div`);e.className=`spl-grid-cell__reserved-name`,e.textContent=i,n.appendChild(e)}let a=e.reservation?.scheduledTime??e.schedule?.scheduledTime;if(a){let e=document.createElement(`div`);e.className=`spl-grid-cell__reserved-time`,e.textContent=a,n.appendChild(e)}return t.appendChild(n),t}function P4(e){let t=document.createElement(`div`);t.className=`spl-grid-cell spl-cell--blocked`;let n=e.booking?.bookingType||`BLOCKED`;t.dataset.bookingType=n;let r=document.createElement(`div`);r.className=`spl-grid-cell__block-label`;let i=document.createElement(`div`);if(i.className=`spl-grid-cell__block-type`,i.textContent=n,r.appendChild(i),e.booking?.rowCount){let t=document.createElement(`div`);t.className=`spl-grid-cell__block-rows`,t.textContent=`${e.booking.rowCount} rows`,r.appendChild(t)}if(e.booking?.notes){let t=document.createElement(`div`);t.className=`spl-grid-cell__block-notes`,t.textContent=e.booking.notes,r.appendChild(t)}let a=e.booking?.registrations??[];if(a.length){let e=document.createElement(`ul`);e.className=`spl-grid-cell__block-registrations`;for(let t of a){let n=document.createElement(`li`);n.className=`spl-grid-cell__block-registration`,n.textContent=t,e.appendChild(n)}r.appendChild(e)}return t.appendChild(r),t}function F4(){let e=document.createElement(`div`);return e.className=`spl-grid-cell spl-cell--empty`,e}function I4(e,t){let n=document.createElement(`div`);if(n.className=`spl-grid-cell`,n.dataset.matchupId=e.matchUpId,e.drawId&&(n.dataset.drawId=e.drawId),e.gender&&(n.dataset.gender=e.gender),L4(n,e),t.header.length){let r=document.createElement(`div`);r.className=`spl-grid-cell__header`,R4(r,t.header,e,t),n.appendChild(r)}if(t.body.length){let r=document.createElement(`div`);r.className=`spl-grid-cell__body`,R4(r,t.body,e,t),n.appendChild(r)}if(t.footer.length){let r=document.createElement(`div`);r.className=`spl-grid-cell__footer`,R4(r,t.footer,e,t),n.appendChild(r)}return e.issueIds?.length&&(n.addEventListener(`mouseenter`,()=>{n.classList.add(k4);for(let t of e.issueIds)document.querySelectorAll(`[data-matchup-id="${t}"]`).forEach(e=>e.classList.add(k4))}),n.addEventListener(`mouseleave`,()=>{n.classList.remove(k4);for(let t of e.issueIds)document.querySelectorAll(`[data-matchup-id="${t}"]`).forEach(e=>e.classList.remove(k4))})),n}function L4(e,t){let n=t.matchUpStatus?.toUpperCase();n===`COMPLETED`||n===`RETIRED`||n===`DEFAULTED`||n===`WALKOVER`?e.classList.add(A4):n===`IN_PROGRESS`?e.classList.add(`spl-cell--inprogress`):n===`ABANDONED`?e.classList.add(`spl-cell--abandoned`):n===`CANCELLED`?e.classList.add(`spl-cell--cancelled`):n===`DOUBLE_WALKOVER`&&e.classList.add(`spl-cell--double-walkover`);let r=t.scheduleState?.toUpperCase();r===`SCHEDULE_ERROR`||r===`ERROR`?e.classList.add(`spl-cell--error`):r===`SCHEDULE_CONFLICT`||r===`CONFLICT`?e.classList.add(`spl-cell--conflict`):r===`SCHEDULE_WARNING`||r===`WARNING`?e.classList.add(`spl-cell--warning`):(r===`SCHEDULE_ISSUE`||r===`ISSUE`)&&e.classList.add(`spl-cell--issue`),(t.issueType===`DOUBLE_BOOKING`||t.issueType===`courtDoubleBooking`)&&e.classList.add(`spl-cell--double-booking`)}function R4(e,t,n,r){for(let i of t){let t=z4(i,n,r);t&&e.appendChild(t)}}function z4(e,t,n){switch(e){case`time`:return B4(t);case`eventRound`:return V4(t);case`participants`:return H4(t,n.participantDisplay);case`score`:return q4(t);case`matchUpStatus`:return J4(t);case`matchUpFormat`:return Y4(t);case`umpire`:return X4(t);default:return null}}function B4(e){let t=e.schedule?.scheduledTime||e.schedule?.startTime,n=e.schedule?.timeModifiers,r=e.schedule?.courtAnnotation;if(!t&&!n?.length&&!r)return null;let i=document.createElement(`div`);i.className=`spl-grid-cell__time`;let a=[];if(n?.length&&a.push(n.join(` `)),t&&a.push(t),i.textContent=a.join(` `)||``,r){let e=document.createElement(`span`);e.className=`spl-grid-cell__court-annotation`,e.textContent=` ${r}`,i.appendChild(e)}return i}function V4(e){let t=[e.eventName,e.roundName].filter(Boolean);if(!t.length)return null;let n=document.createElement(`div`);return n.className=`spl-grid-cell__event-round`,n.textContent=t.join(` `),n}function H4(e,t){let n=t??j4.participantDisplay,r=document.createElement(`div`);r.className=`spl-grid-cell__participants`;let i=e.sides||[],a=e.matchUpStatus?.toUpperCase()===`BYE`,o=i.some(e=>e.bye);if(i.length===0&&n.showPotentials!==!1&&e.potentialParticipants?.length){for(let t=0;t<e.potentialParticipants.length;t++){t>0&&r.appendChild(G4());let n=e.potentialParticipants[t].map(e=>e?.participantName||`TBD`).join(` / `),i=document.createElement(`div`);i.className=`spl-grid-cell__side spl-grid-cell__potential`,i.textContent=n||`TBD`,r.appendChild(i)}return r}if(i.length===0)return null;for(let t=0;t<i.length;t++){let a=i[t];a.bye?r.appendChild(W4()):(t>0&&!i[t-1]?.bye&&r.appendChild(G4()),r.appendChild(U4(a,e,n,a.sideNumber??t+1)))}return(a||o)&&i.length===1&&!i[0].bye&&r.appendChild(W4()),r}function U4(e,t,n,r){let i=document.createElement(`div`);i.className=`spl-grid-cell__side`;let a=document.createElement(`span`);a.className=`spl-grid-cell__name`;let o=K4(e.participantName,n.nameFormat)||`TBD`;n.showSeed&&e.seedNumber&&(o+=` [${e.seedNumber}]`),n.showRanking&&e.ranking&&(o+=` (#${e.ranking})`),n.showNationality&&e.nationality&&(o+=` ${e.nationality}`),a.textContent=o;let s=C2(e);if(s&&(a.title=s),n.boldWinner!==!1&&t.winningSide===r&&(a.style.fontWeight=`bold`),i.appendChild(a),e.teamName){let t=document.createElement(`div`);t.className=`spl-grid-cell__team-name`,t.textContent=e.teamName,i.appendChild(t)}return i}function W4(){let e=document.createElement(`div`);return e.className=`spl-grid-cell__bye`,e.textContent=`BYE`,e}function G4(){let e=document.createElement(`div`);return e.className=`spl-grid-cell__vs`,e.textContent=`vs.`,e}function K4(e,t){if(!e)return``;switch(t){case`last`:return e.includes(`,`)?e.split(`,`)[0].trim():e.trim().split(/\s+/).at(-1);case`lastFirst`:{if(e.includes(`,`))return e.trim();let t=e.trim().split(/\s+/);return t.length<2?e:`${t.at(-1)}, ${t.slice(0,-1).join(` `)}`}case`firstLast`:{if(!e.includes(`,`))return e.trim();let[t,...n]=e.split(`,`);return`${n.join(`,`).trim()} ${t.trim()}`}default:return e}}function q4(e){let t=e.score?.scoreStringSide1,n=e.matchUpStatus?.toUpperCase(),r=n===`WALKOVER`?`WALKOVER`:n===`DEFAULTED`?`DEFAULT`:n===`RETIRED`?`RET.`:n===`DOUBLE_WALKOVER`?`D.W/O`:n===`ABANDONED`?`ABN.`:null;if(!t&&!r)return null;let i=document.createElement(`div`);return i.className=`spl-grid-cell__score`,i.textContent=t||r||``,i}function J4(e){if(!e.matchUpStatus)return null;let t=document.createElement(`div`);t.className=`spl-grid-cell__status-badge`;let n=e.matchUpStatus.toUpperCase();return n===`IN_PROGRESS`?(t.textContent=`LIVE`,t.classList.add(`spl-grid-cell__status-badge--live`)):n===`COMPLETED`||n===`RETIRED`||n===`DEFAULTED`||n===`WALKOVER`?(t.textContent=`DONE`,t.classList.add(`spl-grid-cell__status-badge--done`)):t.textContent=e.matchUpStatus.replaceAll(`_`,` `),t}function Y4(e){if(!e.matchUpFormat)return null;let t=document.createElement(`div`);return t.className=`spl-grid-cell__format`,t.textContent=e.matchUpFormat,t}function X4(e){if(!e.umpire)return null;let t=document.createElement(`div`);return t.className=`spl-grid-cell__umpire`,t.textContent=e.umpire,t}function Z4(e){if(!e)return{matchUpId:``};if(e.isBlocked)return{matchUpId:``,isBlocked:!0,booking:e.booking};let t=(e.sides||[]).map((e,t)=>({sideNumber:e.sideNumber??t+1,participantName:e.participant?.participantName??e.participantName,participantId:e.participantId??e.participant?.participantId,seedNumber:e.seedValue??e.seedNumber,ranking:e.ranking,nationality:e.participant?.nationalityCode??e.participant?.person?.nationalityCode??e.nationalityCode,teamName:e.teamParticipant?.participantName??e.teamName,individualParticipants:e.participant?.individualParticipants,bye:e.bye||void 0}));return{matchUpId:e.matchUpId,drawId:e.drawId,eventName:e.eventName,roundName:e.roundName,matchUpFormat:e.matchUpFormat,matchUpType:e.matchUpType,matchUpStatus:e.matchUpStatus,winningSide:e.winningSide,gender:e.gender??e.eventGender,sides:t,potentialParticipants:e.potentialParticipants,schedule:e.schedule?{scheduledTime:e.schedule.scheduledTime,startTime:e.schedule.startTime,timeModifiers:e.schedule.timeModifiers,courtAnnotation:e.schedule.courtAnnotation,courtId:e.schedule.courtId,courtOrder:e.schedule.courtOrder,venueId:e.schedule.venueId}:void 0,score:e.score?{scoreStringSide1:e.score.scoreStringSide1,scoreStringSide2:e.score.scoreStringSide2}:void 0,umpire:e.umpire?.participantName??e.umpireName,scheduleState:e.scheduleState,issueType:e.issueType,issueIds:e.issueIds}}function Q4({cell:e,listProvider:t,onSelect:n,onCancel:r}){let i=e.innerHTML,a=[],o=!1,s=!1;e.classList.add(`spl-cell--typeahead`),e.innerHTML=``;let c=document.createElement(`div`);c.className=`spl-cell--typeahead-wrapper`,e.appendChild(c);let l=document.createElement(`input`);l.type=`text`,l.placeholder=`Search matchUps...`,l.setAttribute(`inputmode`,`search`),l.setAttribute(`autocapitalize`,`off`),l.setAttribute(`enterkeyhint`,`search`),l.setAttribute(`autocomplete`,`off`),c.appendChild(l);let u=e,d=0;for(;u&&d<10;){let e=window.getComputedStyle(u);(e.overflow!==`visible`||e.overflowX!==`visible`||e.overflowY!==`visible`)&&(a.push({el:u,overflow:u.style.overflow,overflowX:u.style.overflowX,overflowY:u.style.overflowY}),u.style.setProperty(`overflow`,`visible`,`important`),u.style.setProperty(`overflow-x`,`visible`,`important`),u.style.setProperty(`overflow-y`,`visible`,`important`)),u=u.parentElement,d++}ge({list:t(),element:l,listProvider:t,callback:e=>{e&&!s&&(o=!0,p(),n(e))}}),l.addEventListener(`keydown`,e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),p(),r?.())}),l.addEventListener(`blur`,()=>{setTimeout(()=>{!o&&!s&&(p(),r?.())},200)});let f=e=>{e.target!==l&&!c.contains(e.target)&&(e.preventDefault(),l.blur())};e.addEventListener(`mousedown`,f),c.addEventListener(`click`,e=>{e.stopPropagation()}),setTimeout(()=>l.focus(),0);function p(){if(!s){s=!0,e.removeEventListener(`mousedown`,f),e.classList.remove(`spl-cell--typeahead`),e.innerHTML=i;for(let{el:e,overflow:t,overflowX:n,overflowY:r}of a)t?e.style.overflow=t:e.style.removeProperty(`overflow`),n?e.style.overflowX=n:e.style.removeProperty(`overflow-x`),r?e.style.overflowY=r:e.style.removeProperty(`overflow-y`)}}return{destroy:p}}function $4(e,t){let n=new a4(e);return n.render(t),n}var e3=class{constructor(e){this.listeners=new Set,this.config=e,this.state={compositionName:e.compositionName||`Custom`,theme:e.composition?.theme||``,configuration:{...e.composition?.configuration||{}},colors:e.composition?.colors?{...e.composition.colors}:void 0,expandedSections:new Set([`theme`,`display`]),isDirty:!1,readOnly:e.readOnly||!1}}getState(){return this.state}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}toggleSection(e){let t=new Set(this.state.expandedSections);t.has(e)?t.delete(e):t.add(e),this.setState({expandedSections:t})}setTheme(e){this.setState({theme:e,isDirty:!0}),this.notifyChange()}setColorField(e,t){let n={...this.state.colors||{}};t===void 0||t===``?delete n[e]:n[e]=t;let r=Object.keys(n).length>0;this.setState({colors:r?n:void 0,isDirty:!0}),this.notifyChange()}clearColors(){this.setState({colors:void 0,isDirty:!0}),this.notifyChange()}setCompositionName(e){this.setState({compositionName:e,isDirty:!0})}setConfigField(e,t){let n={...this.state.configuration,[e]:t};this.setState({configuration:n,isDirty:!0}),this.notifyChange()}setConfigNestedField(e,t,n){let r={...this.state.configuration[e]||{},[t]:n};this.setConfigField(e,r)}setConfiguration(e){this.setState({configuration:{...e},isDirty:!0}),this.notifyChange()}loadComposition(e,t,n,r){this.setState({compositionName:e,theme:t,configuration:{...n},colors:r?{...r}:void 0,isDirty:!1}),this.notifyChange()}resetToInitial(){this.setState({compositionName:this.config.compositionName||`Custom`,theme:this.config.composition?.theme||``,configuration:{...this.config.composition?.configuration||{}},colors:this.config.composition?.colors?{...this.config.composition.colors}:void 0,isDirty:!1}),this.notifyChange()}setState(e){this.state={...this.state,...e},this.emit()}emit(){for(let e of this.listeners)e(this.state)}notifyChange(){this.config.onChange?.({theme:this.state.theme,configuration:this.state.configuration,...this.state.colors?{colors:{...this.state.colors}}:{}})}},t3=()=>`ce-layout`,n3=()=>`ce-left`,r3=()=>`ce-right`,i3=()=>`ce-name-row`,a3=()=>`ce-name-label`,o3=()=>`ce-name-input`,s3=()=>`ce-section`,c3=()=>`ce-section-header`,l3=()=>`ce-section-chevron`,u3=()=>`ce-section-body`,d3=()=>`ce-field`,f3=()=>`ce-field-label`,p3=()=>`ce-field-control`,m3=()=>`ce-select`,h3=()=>`ce-text-input`,g3=()=>`ce-color-input`,_3=()=>`ce-toggle`,v3=()=>`ce-toggle-track`,y3=()=>`ce-preview`,b3=()=>`ce-preview-header`,x3=()=>`ce-preview-body`,S3=()=>`ce-preview-matchup`,C3=()=>`ce-subgroup`,w3=()=>`ce-subgroup-title`;function T3(e,t){let n=document.createElement(`div`);n.className=s3();let r=document.createElement(`div`);r.className=c3();let i=document.createElement(`span`);i.className=l3();let a=document.createElement(`span`);a.textContent=e.label,r.appendChild(i),r.appendChild(a),r.addEventListener(`click`,()=>t.toggleSection(e.id));let o=document.createElement(`div`);o.className=u3();let s=e.factory(t);o.appendChild(s.element),n.appendChild(r),n.appendChild(o);function c(t){let n=t.expandedSections.has(e.id);i.textContent=n?`▼`:`▶`,o.style.display=n?`block`:`none`,n&&s.update(t)}return{element:n,update:c}}function E3(e,t,n,r=!1){let i=document.createElement(`div`);i.className=d3();let a=document.createElement(`span`);a.className=f3(),a.textContent=e,i.appendChild(a);let o=document.createElement(`label`);o.className=_3();let s=document.createElement(`input`);s.type=`checkbox`,s.checked=t,s.disabled=r,s.addEventListener(`change`,()=>n(s.checked));let c=document.createElement(`span`);c.className=v3(),o.appendChild(s),o.appendChild(c);let l=document.createElement(`div`);return l.className=p3(),l.appendChild(o),i.appendChild(l),{element:i,setChecked:e=>{s.checked=e},setDisabled:e=>{s.disabled=e}}}function D3(e,t,n,r,i=!1){let a=document.createElement(`div`);a.className=d3();let o=document.createElement(`span`);o.className=f3(),o.textContent=e,a.appendChild(o);let s=document.createElement(`select`);s.className=m3(),s.disabled=i;for(let e of t){let t=document.createElement(`option`);t.value=e.value,t.textContent=e.label,e.value===n&&(t.selected=!0),s.appendChild(t)}s.addEventListener(`change`,()=>r(s.value));let c=document.createElement(`div`);return c.className=p3(),c.appendChild(s),a.appendChild(c),{element:a,setValue:e=>{s.value=e}}}function O3(e,t,n,r=``,i=!1){let a=document.createElement(`div`);a.className=d3();let o=document.createElement(`span`);o.className=f3(),o.textContent=e,a.appendChild(o);let s=document.createElement(`input`);s.type=`text`,s.className=h3(),s.value=t,s.placeholder=r,s.disabled=i,s.addEventListener(`input`,()=>n(s.value));let c=document.createElement(`div`);return c.className=p3(),c.appendChild(s),a.appendChild(c),{element:a,setValue:e=>{s.value=e}}}function k3(e,t,n,r=!1){let i=document.createElement(`div`);i.className=d3();let a=document.createElement(`span`);a.className=f3(),a.textContent=e,i.appendChild(a);let o=document.createElement(`input`);o.type=`color`,o.className=g3(),o.value=t||`#000000`,o.disabled=r,o.addEventListener(`input`,()=>n(o.value));let s=document.createElement(`div`);return s.className=p3(),s.appendChild(o),i.appendChild(s),{element:i,setValue:e=>{o.value=e||`#000000`}}}var A3=[],j3=new Set;for(let[,e]of Object.entries(ki))if(!j3.has(e.theme)){j3.add(e.theme);let t=e.theme.replace(`chc-theme-`,``).replace(/-/g,` `).replace(/\b\w/g,e=>e.toUpperCase());A3.push({value:e.theme,label:t})}function M3(e){let t=document.createElement(`div`),n=D3(`Load preset`,[{value:``,label:`— Load preset —`},...Object.keys(ki).map(e=>({value:e,label:e}))],``,t=>{if(!t)return;let r=ki[t];r&&e.loadComposition(t,r.theme,r.configuration||{},r.colors),n.setValue(``)},e.getState().readOnly);t.appendChild(n.element);let r=document.createElement(`div`);r.style.cssText=`font-size:0.7rem; color:var(--chc-text-secondary, #999); padding:0 0 0.3rem; line-height:1.3;`,r.textContent=`Replaces all settings with a built-in composition.`,t.appendChild(r);let i=D3(`Color theme`,A3,e.getState().theme,t=>e.setTheme(t),e.getState().readOnly);t.appendChild(i.element);let a=document.createElement(`div`);a.style.cssText=`font-size:0.7rem; color:var(--chc-text-secondary, #999); padding:0 0 0.3rem; line-height:1.3;`,a.textContent=`Changes only the color scheme, not the display settings.`,t.appendChild(a);function o(e){i.setValue(e.theme)}return{element:t,update:o}}var N3=[{key:`border`,label:`MatchUp border`},{key:`borderHover`,label:`MatchUp border (hover)`},{key:`borderInlineStart`,label:`Left-edge accent`},{key:`connector`,label:`Connector lines`,hint:`Use "transparent" to hide`},{key:`matchUpBackground`,label:`MatchUp background`},{key:`internalDividers`,label:`Participant dividers`},{key:`score`,label:`[Score] placeholder text`},{key:`roundHeader`,label:`Round header text`},{key:`roundHeaderBackground`,label:`Round header background`,hint:`Leave blank for transparent`},{key:`roundHeaderUnderline`,label:`Round header underline`,hint:`Divider below header`},{key:`matchUpFooterText`,label:`MatchUp footer text`},{key:`matchUpFooterBackground`,label:`MatchUp footer background`},{key:`matchUpFooterDivider`,label:`MatchUp footer divider`,hint:`Border above footer`}],P3=/^#[0-9a-f]{6}$/i;function F3(e,t,n,r){let i=document.createElement(`div`);i.className=d3();let a=document.createElement(`span`);a.className=f3(),a.textContent=e.label,i.appendChild(a);let o=document.createElement(`div`);o.className=p3(),o.style.display=`flex`,o.style.gap=`0.4rem`,o.style.alignItems=`center`;let s=document.createElement(`input`);s.type=`color`,s.className=g3(),s.disabled=r;let c=document.createElement(`input`);c.type=`text`,c.className=h3(),c.placeholder=e.hint||`#rrggbb or color name`,c.disabled=r,c.style.flex=`1`;function l(e){c.value=e||``,e&&P3.test(e)?(s.value=e,s.style.opacity=`1`):(s.value=`#000000`,s.style.opacity=e?`0.4`:`1`)}return l(t),s.addEventListener(`input`,()=>{c.value=s.value,s.style.opacity=`1`,n(s.value)}),c.addEventListener(`input`,()=>{let e=c.value.trim();e&&P3.test(e)?(s.value=e,s.style.opacity=`1`):s.style.opacity=e?`0.4`:`1`,n(e||void 0)}),o.appendChild(s),o.appendChild(c),i.appendChild(o),{element:i,setValue:l}}function I3(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=document.createElement(`div`);r.style.cssText=`font-size:0.7rem; color:var(--chc-text-secondary, #999); padding:0 0 0.4rem; line-height:1.3;`,r.textContent=`Per-composition overrides. Leave blank to inherit from the selected theme.`,t.appendChild(r);let i=N3.map(r=>{let i=F3(r,e.getState().colors?.[r.key],t=>e.setColorField(r.key,t),n);return t.appendChild(i.element),{def:r,ctrl:i}}),a=document.createElement(`div`);a.className=d3();let o=document.createElement(`span`);o.className=f3(),o.textContent=`Left-edge width`,a.appendChild(o);let s=document.createElement(`div`);s.className=p3();let c=document.createElement(`input`);c.type=`text`,c.className=h3(),c.placeholder=`e.g. 10px`,c.disabled=n,c.value=e.getState().colors?.borderInlineStartWidth||``,c.addEventListener(`input`,()=>{let t=c.value.trim();e.setColorField(`borderInlineStartWidth`,t||void 0)}),s.appendChild(c),a.appendChild(s),t.appendChild(a);let l=document.createElement(`button`);l.type=`button`,l.textContent=`Clear color overrides`,l.disabled=n,l.style.cssText=`margin-top:0.6rem; padding:0.25rem 0.5rem; font-size:0.75rem; cursor:pointer; background:transparent; border:1px solid var(--chc-border-secondary, #ccc); border-radius:4px;`,l.addEventListener(`click`,()=>e.clearColors()),t.appendChild(l);function u(e){for(let{def:t,ctrl:n}of i)n.setValue(e.colors?.[t.key]);c.value=e.colors?.borderInlineStartWidth||``}return{element:t,update:u}}function L3(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=E3(`Nationality flags`,!!r.flags,t=>e.setConfigField(`flags`,t),n),a=D3(`Seeding style`,[{value:``,label:`None`},{value:`true`,label:`Parentheses`},{value:`square`,label:`Square brackets`}],r.bracketedSeeds===`square`?`square`:r.bracketedSeeds?`true`:``,t=>{t===`square`?e.setConfigField(`bracketedSeeds`,`square`):t===`true`?e.setConfigField(`bracketedSeeds`,!0):e.setConfigField(`bracketedSeeds`,void 0)},n),o=D3(`Seed element`,[{value:``,label:`Default`},{value:`sup`,label:`Superscript`},{value:`span`,label:`Inline`}],r.seedingElement||``,t=>e.setConfigField(`seedingElement`,t||void 0),n),s=E3(`Draw positions (1st round)`,!!r.drawPositions,t=>e.setConfigField(`drawPositions`,t),n),c=E3(`Draw positions (all rounds)`,!!r.allDrawPositions,t=>e.setConfigField(`allDrawPositions`,t),n),l=E3(`Team logo`,r.teamLogo!==!1,t=>e.setConfigField(`teamLogo`,t),n);t.appendChild(i.element),t.appendChild(a.element),t.appendChild(o.element),t.appendChild(s.element),t.appendChild(c.element),t.appendChild(l.element);function u(e){let t=e.configuration;i.setChecked(!!t.flags),a.setValue(t.bracketedSeeds===`square`?`square`:t.bracketedSeeds?`true`:``),o.setValue(t.seedingElement||``),s.setChecked(!!t.drawPositions),c.setChecked(!!t.allDrawPositions),l.setChecked(t.teamLogo!==!1)}return{element:t,update:u}}function R3(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=E3(`Score box`,!!r.scoreBox,t=>e.setConfigField(`scoreBox`,t),n),a=E3(`Game score only`,!!r.gameScoreOnly,t=>e.setConfigField(`gameScoreOnly`,t),n);t.appendChild(i.element),t.appendChild(a.element);let o=document.createElement(`div`);o.className=C3();let s=document.createElement(`div`);s.className=w3(),s.textContent=`Game Score Display`,o.appendChild(s);let c=D3(`Position`,[{value:``,label:`Default`},{value:`leading`,label:`Leading`},{value:`trailing`,label:`Trailing`}],r.gameScore?.position||``,t=>e.setConfigNestedField(`gameScore`,`position`,t||void 0),n),l=E3(`Inverted`,!!r.gameScore?.inverted,t=>e.setConfigNestedField(`gameScore`,`inverted`,t),n);o.appendChild(c.element),o.appendChild(l.element),t.appendChild(o);function u(e){let t=e.configuration;i.setChecked(!!t.scoreBox),a.setChecked(!!t.gameScoreOnly),c.setValue(t.gameScore?.position||``),l.setChecked(!!t.gameScore?.inverted)}return{element:t,update:u}}function z3(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=E3(`Gender color`,!!r.genderColor,t=>e.setConfigField(`genderColor`,t),n),a=E3(`Winner color`,!!r.winnerColor,t=>e.setConfigField(`winnerColor`,t),n),o=D3(`Detail`,[{value:``,label:`Default`},{value:`TEAM`,label:`Team`},{value:`ADDRESS`,label:`Address`}],r.participantDetail||``,t=>{e.setConfigField(`participantDetail`,t||void 0),e.setConfigField(`showAddress`,t===`ADDRESS`)},n),s=O3(`Position color`,r.drawPositionColor||``,t=>e.setConfigField(`drawPositionColor`,t||void 0),`#999`,n);t.appendChild(i.element),t.appendChild(a.element),t.appendChild(o.element),t.appendChild(s.element);function c(e){let t=e.configuration;i.setChecked(!!t.genderColor),a.setChecked(!!t.winnerColor),o.setValue(t.participantDetail||``),s.setValue(t.drawPositionColor||``)}return{element:t,update:c}}function B3(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=O3(`TBD text`,r.placeHolders?.tbd||``,t=>e.setConfigNestedField(`placeHolders`,`tbd`,t||void 0),`TBD`,n),a=O3(`Bye text`,r.placeHolders?.bye||``,t=>e.setConfigNestedField(`placeHolders`,`bye`,t||void 0),`Bye`,n),o=O3(`Qualifier text`,r.placeHolders?.qualifier||``,t=>e.setConfigNestedField(`placeHolders`,`qualifier`,t||void 0),`Qualifier`,n);t.appendChild(i.element),t.appendChild(a.element),t.appendChild(o.element);function s(e){let t=e.configuration;i.setValue(t.placeHolders?.tbd||``),a.setValue(t.placeHolders?.bye||``),o.setValue(t.placeHolders?.qualifier||``)}return{element:t,update:s}}var V3=[{scaleName:`WTN`,accessor:`wtnRating`,label:`WTN`},{scaleName:`UTR`,accessor:`utrRating`,label:`UTR`},{scaleName:`NTRP`,accessor:`ntrpRating`,label:`NTRP`},{scaleName:`ELO`,accessor:`eloRating`,label:`ELO`}];function H3(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration.scaleAttributes||{},i=D3(`Scale type`,[{value:``,label:`None`},{value:`RATING`,label:`Rating`},{value:`RANKING`,label:`Ranking`},{value:`SEEDING`,label:`Seeding`}],r.scaleType||``,t=>e.setConfigNestedField(`scaleAttributes`,`scaleType`,t||void 0),n),a=D3(`Scale name`,[{value:``,label:`None`},...V3.map(e=>({value:e.scaleName,label:e.label}))],r.scaleName||``,t=>{e.setConfigNestedField(`scaleAttributes`,`scaleName`,t||void 0);let n=V3.find(e=>e.scaleName===t);e.setConfigNestedField(`scaleAttributes`,`accessor`,n?.accessor||void 0)},n),o=k3(`Color`,r.scaleColor||`#ff0000`,t=>e.setConfigNestedField(`scaleAttributes`,`scaleColor`,t),n),s=D3(`Event type`,[{value:``,label:`Any`},{value:`SINGLES`,label:`Singles`},{value:`DOUBLES`,label:`Doubles`}],r.eventType||``,t=>e.setConfigNestedField(`scaleAttributes`,`eventType`,t||void 0),n),c=E3(`Fallback`,!!r.fallback,t=>e.setConfigNestedField(`scaleAttributes`,`fallback`,t),n),l=E3(`Right of name`,r.scalePosition===`right`,t=>e.setConfigNestedField(`scaleAttributes`,`scalePosition`,t?`right`:`left`),n);t.appendChild(i.element),t.appendChild(a.element),t.appendChild(o.element),t.appendChild(s.element),t.appendChild(c.element),t.appendChild(l.element);function u(e){let t=e.configuration.scaleAttributes||{},n=!!e.configuration.flags;i.setValue(t.scaleType||``),a.setValue(t.scaleName||``),o.setValue(t.scaleColor||`#ff0000`),s.setValue(t.eventType||``),c.setChecked(!!t.fallback),n?(l.setChecked(!0),l.setDisabled(!0)):(l.setChecked(t.scalePosition===`right`),l.setDisabled(!1))}return{element:t,update:u}}function U3(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=E3(`Schedule info`,!!r.scheduleInfo,t=>e.setConfigField(`scheduleInfo`,t),n),a=E3(`Round header`,!!r.roundHeader,t=>e.setConfigField(`roundHeader`,t),n),o=E3(`MatchUp footer`,!!r.matchUpFooter,t=>e.setConfigField(`matchUpFooter`,t),n),s=E3(`Center info`,!!r.centerInfo,t=>e.setConfigField(`centerInfo`,t),n),c=E3(`Set number`,!!r.resultsInfo,t=>e.setConfigField(`resultsInfo`,t),n),l=E3(`Winner chevron`,!!r.winnerChevron,t=>e.setConfigField(`winnerChevron`,t),n);t.appendChild(i.element),t.appendChild(a.element),t.appendChild(o.element),t.appendChild(s.element),t.appendChild(c.element),t.appendChild(l.element);function u(e){let t=e.configuration;i.setChecked(!!t.scheduleInfo),a.setChecked(!!t.roundHeader),o.setChecked(!!t.matchUpFooter),s.setChecked(!!t.centerInfo),c.setChecked(!!t.resultsInfo),l.setChecked(!!t.winnerChevron)}return{element:t,update:u}}var{DOUBLES:W3,SINGLES:G3}=t.eventConstants,{AD_HOC:K3}=t.drawDefinitionConstants,{INDIVIDUAL:q3}=t.participantConstants;function J3({matchUpFormat:e=`SET5-S:6/TB7`,randomWinningSide:n=!0,qualifyingProfiles:r,participantsCount:i,completionGoal:a,drawSize:o=4,eventType:s,outcomes:c,drawType:l,withRatings:u,withAllRatings:d}={}){let f=a<100?Math.floor(o*.01*a):void 0,p=`venueId`,m=[{venueName:`Challenge Courts`,venueAbbreviation:`CC`,startTime:`08:00`,endTime:`20:00`,venueId:p,courtNames:[`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`],courtIds:[`c1`,`c2`,`c3`,`c4`],courtsCount:8}],h={eventType:s===W3?W3:G3,completionGoal:f,qualifyingProfiles:r,participantsCount:i,seedsCount:8,matchUpFormat:e,drawSize:o,drawType:l,outcomes:c};l===K3&&Object.assign(h,{drawMatic:!0,roundsCount:3});let{tournamentRecord:g}=t.mocksEngine.generateTournamentRecord({drawProfiles:[h],completeAllMatchUps:!0,randomWinningSide:n,venueProfiles:m});t.tournamentEngine.setState(g),t.tournamentEngine.createTeamsFromParticipantAttributes({personAttribute:`nationalityCode`,addParticipants:!0});let _=d||(u?[{...u,accessor:u.scaleName}]:[]);if(_.length>0){let{participants:e}=t.tournamentEngine.getParticipants({participantFilters:{participantTypes:[q3]}});for(let n of _)e.forEach(e=>{let r=+(10+Math.random()*6).toFixed(2);t.tournamentEngine.setParticipantScaleItem({participantId:e.participantId,scaleItem:{scaleValue:{[n.accessor]:r},scaleName:n.scaleName,scaleType:n.scaleType||`RATING`,eventType:n.eventType||G3}})})}let{matchUps:v}=t.tournamentEngine.allTournamentMatchUps({participantsProfile:{withGroupings:!0}}),y=v.map(({matchUpId:e})=>e),b={startTime:`08:00`,endTime:`10:00`,scheduledTime:`07:00`,scheduledDate:`2021-01-01`,courtId:`c1`,venueId:p};t.tournamentEngine.bulkScheduleMatchUps({matchUpIds:y,schedule:b});let{matchUps:x}=t.tournamentEngine.allTournamentMatchUps({participantsProfile:{withISO2:!0,withIOC:!0,withScaleValues:!!(u||d)}});return{matchUps:x}}var Y3=null;function X3(){if(!Y3){let{matchUps:e}=J3({drawSize:8,eventType:`SINGLES`,randomWinningSide:!0,matchUpFormat:`SET3-S:6/TB7`,withAllRatings:V3.map(e=>({scaleName:e.scaleName,accessor:e.accessor}))}),t=e.filter(e=>e.roundNumber===1).slice(0,2),n=t[0]?.sides?.[0]?.participant,r=t[0]?.sides?.[1]?.participant,i={matchUpId:`preview-in-progress`,matchUpType:`SINGLES`,matchUpStatus:`IN_PROGRESS`,roundNumber:1,sides:[{sideNumber:1,drawPosition:5,seedNumber:3,seedValue:`3`,participant:n},{sideNumber:2,drawPosition:6,seedNumber:6,seedValue:`6`,participant:r}],score:{scoreStringSide1:`6-4 3-2`,scoreStringSide2:`4-6 2-3`,sets:[{setNumber:1,side1Score:6,side2Score:4,winningSide:1},{setNumber:2,side1Score:3,side2Score:2,side1PointScore:`30`,side2PointScore:`15`}]}},a={matchUpId:`preview-bye`,matchUpType:`SINGLES`,matchUpStatus:`BYE`,roundNumber:1,sides:[{sideNumber:1,drawPosition:7,seedNumber:2,seedValue:`2`,participant:n},{sideNumber:2,drawPosition:8,bye:!0}]},o={matchUpId:`preview-tbd`,matchUpType:`SINGLES`,matchUpStatus:`TO_BE_PLAYED`,roundNumber:1,sides:[{sideNumber:1,drawPosition:9,seedNumber:3,seedValue:`3`,participant:n},{sideNumber:2,drawPosition:10}]},s={matchUpId:`preview-qualifier`,matchUpType:`SINGLES`,matchUpStatus:`TO_BE_PLAYED`,roundNumber:1,sides:[{sideNumber:1,drawPosition:11,qualifier:!0},{sideNumber:2,drawPosition:12,seedNumber:4,seedValue:`4`,participant:n}]};Y3=[...t,i,a,o,s]}return Y3}var Z3=null;function Q3(){if(!Z3){let{matchUps:e}=J3({drawSize:4,eventType:`SINGLES`,matchUpFormat:`SET3-S:6/TB7`,completionGoal:50,randomWinningSide:!0});Z3=e}return Z3}function $3(){let e=document.createElement(`div`);e.className=y3();let t=document.createElement(`div`);t.className=b3(),t.textContent=`Preview`,e.appendChild(t);let n=document.createElement(`div`);n.className=x3(),e.appendChild(n);let r=``,i=``,a=``;function o(e){let t=JSON.stringify(e.configuration),o=JSON.stringify(e.colors||{});if(e.theme===r&&t===i&&o===a)return;r=e.theme,i=t,a=o,n.innerHTML=``,Fr(n),Pr(n,e.colors);let s={theme:e.theme,configuration:{...e.configuration,matchUpFooter:!0},colors:e.colors?{...e.colors}:void 0},c=Mr({roundNumber:1,roundProfile:{1:{roundName:`Round 1`}}});n.appendChild(c);let l=X3();for(let e of l){let t=document.createElement(`div`);t.className=S3();let r=hi({matchUp:e,composition:s,isLucky:!0});t.appendChild(r),n.appendChild(t)}let u=document.createElement(`div`);u.style.cssText=`margin-top:1.5rem; padding:0 0.25rem; font-size:0.7rem; color:var(--chc-text-secondary, #999); text-transform:uppercase; letter-spacing:0.05em;`,u.textContent=`Connector preview`,n.appendChild(u);let d=_i({matchUps:Q3(),composition:s});n.appendChild(d)}return{element:e,update:o}}var e6=[{id:`theme`,label:`Theme & Preset`,factory:M3},{id:`colors`,label:`Colors`,factory:I3},{id:`display`,label:`Display`,factory:L3},{id:`score`,label:`Score`,factory:R3},{id:`participant`,label:`Participant`,factory:z3},{id:`placeholder`,label:`Placeholders`,factory:B3},{id:`scale`,label:`Scale Attributes`,factory:H3},{id:`layout`,label:`Layout & Info`,factory:U3}];function t6(e,t){let n=new e3(t),r=document.createElement(`div`);r.className=t3();let i=document.createElement(`div`);i.className=n3();let a=document.createElement(`div`);a.className=i3();let o=document.createElement(`span`);o.className=a3(),o.textContent=`Name`;let s=document.createElement(`input`);s.type=`text`,s.className=o3(),s.value=n.getState().compositionName,s.disabled=n.getState().readOnly,s.addEventListener(`input`,()=>n.setCompositionName(s.value)),a.appendChild(o),a.appendChild(s),i.appendChild(a);let c=e6.map(e=>{let t=T3(e,n);return i.appendChild(t.element),t}),l=document.createElement(`div`);l.className=r3();let u=$3();l.appendChild(u.element),r.appendChild(i),r.appendChild(l),e.appendChild(r);let d=n.subscribe(e=>{s.value=e.compositionName;for(let t of c)t.update(e);u.update(e)}),f=n.getState();for(let e of c)e.update(f);return u.update(f),{destroy:()=>{d(),e.contains(r)&&e.removeChild(r)},getComposition:()=>{let e=n.getState(),{participantProvider:t,persistInputFields:r,inlineAssignment:i,...a}=e.configuration;return{compositionName:e.compositionName,theme:e.theme,configuration:a,...e.colors?{colors:{...e.colors}}:{},version:1}}}}var n6=[`grand-slam`,`itf`,`minimal`,`none`],r6=[`standard`,`seedings`,`officials`,`none`],i6=[`a4`,`letter`],a6=[`auto`,`portrait`,`landscape`],o6={page:{pageSize:`a4`,orientation:`auto`,margins:{top:15,right:10,bottom:15,left:10}},header:{layout:`itf`,tournamentName:``},footer:{layout:`standard`,showTimestamp:!0,showPageNumbers:!0},content:{}};function s6(e,t){let n=b6(o6,t.config??{}),r=!!t.readOnly,i=Q(`div`,`pce-root`),a=Q(`div`,`pce-form`),o=Q(`div`,`pce-aside`);i.appendChild(a),i.appendChild(o);let s=null;function c(){a.innerHTML=``,a.appendChild(c6(n,r,l)),a.appendChild(l6(n,r,l)),a.appendChild(u6(n,r,l)),a.appendChild(d6(n,r,t.printType,l)),!r&&t.onSave&&a.appendChild(f6(()=>t.onSave?.(x6(n)))),o.innerHTML=``;let e=Q(`div`,`pce-aside-title`);e.textContent=`Print Type`,o.appendChild(e);let i=Q(`span`,`pce-print-type-pill`);i.textContent=t.printType,o.appendChild(i);let c=Q(`div`,`pce-aside-title`);c.textContent=`Resolved Config`,c.style.marginTop=`8px`,o.appendChild(c),s=Q(`div`,`pce-preview-stub`),s.textContent=JSON.stringify(n,null,2),o.appendChild(s);let u=Q(`div`,`pce-preview-note`);u.textContent=`Live PDF preview not yet wired — see admin-client integration.`,o.appendChild(u)}function l(){s&&(s.textContent=JSON.stringify(n,null,2)),t.onChange?.(x6(n))}return c(),e.appendChild(i),{destroy:()=>{i.parentNode&&i.parentNode.removeChild(i)},getConfig:()=>x6(n),setConfig:e=>{Object.assign(n,b6(o6,e)),c()}}}function c6(e,t,n){let{section:r,body:i}=_6(`Page`);i.appendChild(p6(`Size`,i6,e.page?.pageSize??`a4`,t,t=>{y6(e,`page`).pageSize=t,n()})),i.appendChild(p6(`Orientation`,a6,e.page?.orientation??`auto`,t,t=>{y6(e,`page`).orientation=t,n()}));let a=Q(`div`,`pce-field pce-field-full`);a.appendChild(v6(`Margins (mm)`));let o=Q(`div`);return o.style.display=`grid`,o.style.gridTemplateColumns=`repeat(4, 1fr)`,o.style.gap=`6px`,[`top`,`right`,`bottom`,`left`].forEach(r=>{o.appendChild(h6(r,e.page?.margins?.[r]??10,t,t=>{let i=y6(y6(e,`page`),`margins`);i[r]=t,n()}))}),a.appendChild(o),i.appendChild(a),r}function l6(e,t,n){let{section:r,body:i}=_6(`Header`);return i.appendChild(p6(`Layout`,n6,e.header?.layout??`itf`,t,t=>{y6(e,`header`).layout=t,n()})),i.appendChild(m6(`Tournament name`,e.header?.tournamentName??``,t,t=>{y6(e,`header`).tournamentName=t,n()})),i.appendChild(m6(`Subtitle`,e.header?.subtitle??``,t,t=>{y6(e,`header`).subtitle=t||void 0,n()})),r}function u6(e,t,n){let{section:r,body:i}=_6(`Footer`);return i.appendChild(p6(`Layout`,r6,e.footer?.layout??`standard`,t,t=>{y6(e,`footer`).layout=t,n()})),i.appendChild(g6(`Show timestamp`,e.footer?.showTimestamp??!0,t,t=>{y6(e,`footer`).showTimestamp=t,n()})),i.appendChild(g6(`Show page numbers`,e.footer?.showPageNumbers??!0,t,t=>{y6(e,`footer`).showPageNumbers=t,n()})),r}function d6(e,t,n,r){let{section:i,body:a}=_6(`Content — ${n}`);if(n===`draw`){let n=y6(y6(e,`content`),`draw`);a.appendChild(g6(`Include seedings`,!!n.includeSeedings,t,e=>{n.includeSeedings=e,r()})),a.appendChild(g6(`Include scores`,!!n.includeScores,t,e=>{n.includeScores=e,r()})),a.appendChild(g6(`Show byes`,!!n.showByes,t,e=>{n.showByes=e,r()})),a.appendChild(g6(`Show draw positions`,!!n.showDrawPositions,t,e=>{n.showDrawPositions=e,r()}))}else if(n===`schedule`){let n=y6(y6(e,`content`),`schedule`);a.appendChild(p6(`Cell style`,[`detailed`,`compact`],n.cellStyle??`detailed`,t,e=>{n.cellStyle=e,r()})),a.appendChild(g6(`Show match numbers`,!!n.showMatchNumbers,t,e=>{n.showMatchNumbers=e,r()})),a.appendChild(m6(`Alert banner`,n.alertBanner??``,t,e=>{n.alertBanner=e||void 0,r()}))}else{let e=Q(`div`,`pce-field pce-field-full`),t=Q(`div`,`pce-preview-note`);t.textContent=`Content options for "${n}" not yet implemented.`,e.appendChild(t),a.appendChild(e)}return i}function f6(e){let t=Q(`div`,`pce-actions`),n=Q(`button`,`pce-button pce-button-primary`);return n.type=`button`,n.textContent=`Save`,n.addEventListener(`click`,e),t.appendChild(n),t}function p6(e,t,n,r,i){let a=Q(`div`,`pce-field`);a.appendChild(v6(e));let o=Q(`select`,`pce-select`);return o.disabled=r,t.forEach(e=>{let t=document.createElement(`option`);t.value=e,t.textContent=e,e===n&&(t.selected=!0),o.appendChild(t)}),o.addEventListener(`change`,()=>i(o.value)),a.appendChild(o),a}function m6(e,t,n,r){let i=Q(`div`,`pce-field`);i.appendChild(v6(e));let a=Q(`input`,`pce-input`);return a.type=`text`,a.value=t,a.disabled=n,a.addEventListener(`input`,()=>r(a.value)),i.appendChild(a),i}function h6(e,t,n,r){let i=Q(`div`,`pce-field`);i.appendChild(v6(e));let a=Q(`input`,`pce-input`);return a.type=`number`,a.value=String(t),a.disabled=n,a.addEventListener(`input`,()=>{let e=parseFloat(a.value);Number.isNaN(e)||r(e)}),i.appendChild(a),i}function g6(e,t,n,r){let i=Q(`div`,`pce-field pce-checkbox-row pce-field-full`),a=Q(`input`);a.type=`checkbox`,a.checked=t,a.disabled=n,a.addEventListener(`change`,()=>r(a.checked)),i.appendChild(a);let o=v6(e);return o.style.fontSize=`13px`,o.style.color=`var(--chc-text-primary, #222)`,i.appendChild(o),i}function _6(e){let t=Q(`div`,`pce-section`),n=Q(`div`,`pce-section-header`);n.textContent=e;let r=Q(`div`,`pce-section-body`);return t.appendChild(n),t.appendChild(r),{section:t,body:r}}function Q(e,t){let n=document.createElement(e);return t&&(n.className=t),n}function v6(e){let t=Q(`label`,`pce-field-label`);return t.textContent=e,t}function y6(e,t){return(e[t]===void 0||e[t]===null)&&(e[t]={}),e[t]}function b6(e,t){return{name:t.name??e.name,page:{...e.page,...t.page,margins:{...e.page?.margins,...t.page?.margins}},header:{...e.header,...t.header},footer:{...e.footer,...t.footer},content:{...e.content,...t.content}}}function x6(e){return structuredClone(e)}var S6=`chc-scorecard-side-score--winner`;function C6({matchUp:e,composition:t,eventHandlers:n,swapSides:r}){let i=document.createElement(`div`);i.className=`chc-scorecard`;let a=r?2:1,o=r?1:2,s=M6(e,a)||``,c=M6(e,o)||``,l=r?k6(e.winningSide):e.winningSide,u=w6({side1Name:s,side2Name:c,sets:r?A6(e.score?.sets):e.score?.sets,winningSide:l,side1Id:`chc-sc-side1`,side2Id:`chc-sc-side2`});i.appendChild(u);let d=e.tieFormat?.collectionDefinitions?.slice().sort((e,t)=>(e.collectionOrder||0)-(t.collectionOrder||0))||[];for(let a of d){let o=O6({collectionDefinition:a,collectionMatchUps:(e.tieMatchUps||[]).filter(e=>e.collectionId===a.collectionId).sort((e,t)=>(e.collectionPosition||0)-(t.collectionPosition||0)),composition:t,eventHandlers:n,swapSides:r});i.appendChild(o)}return i}function w6({side1Name:e,side2Name:t,sets:n,winningSide:r,side1Id:i,side2Id:a}){let o=document.createElement(`div`);o.className=`chc-scorecard-header`;let s=document.createElement(`div`);s.className=`chc-scorecard-header-body`;let c=E6(e,`end`),l=E6(t,`start`),u=D6(n,1,r,i),d=D6(n,2,r,a),f=document.createElement(`div`);f.className=`chc-scorecard-score-box`;let p=document.createElement(`div`);p.className=`chc-scorecard-score-flex`;let m=document.createElement(`div`);return m.className=`chc-scorecard-vs`,m.textContent=`vs`,p.appendChild(u),p.appendChild(m),p.appendChild(d),f.appendChild(p),s.appendChild(c),s.appendChild(f),s.appendChild(l),o.appendChild(s),o}function T6(e,t=`chc-sc-side1`,n=`chc-sc-side2`,r){let i=e?.score?.sets?.[0];if(!i)return;let a=document.getElementById(t),o=document.getElementById(n);if(!a||!o)return;a.classList.remove(S6),o.classList.remove(S6);let s=r?`side2Score`:`side1Score`,c=r?`side1Score`:`side2Score`;a.textContent=String(i[s]??0),o.textContent=String(i[c]??0);let l=r?k6(e.winningSide):e.winningSide;l===1&&a.classList.add(S6),l===2&&o.classList.add(S6)}function E6(e,t){let n=document.createElement(`div`);n.className=`chc-scorecard-side chc-scorecard-side--${t}`;let r=document.createElement(`div`);return r.className=`chc-scorecard-side-name`,r.textContent=e,n.appendChild(r),n}function D6(e,t,n,r){let i=e?.[0]?.[`side${t}Score`]??0,a=document.createElement(`span`);return a.className=`chc-scorecard-side-score`,r&&(a.id=r),t===1?a.style.paddingLeft=`1rem`:a.style.paddingRight=`1rem`,t===n&&a.classList.add(S6),a.textContent=String(i),a}function O6({collectionDefinition:e,collectionMatchUps:t,composition:n,eventHandlers:r,swapSides:i}){let a=document.createElement(`div`);a.className=`chc-scorecard-panel`;let o=document.createElement(`div`);o.className=`chc-scorecard-panel-header`;let s=document.createElement(`div`);s.className=`chc-scorecard-panel-name`,s.textContent=e.collectionName||`Collection`;let c=document.createElement(`div`);c.className=`chc-scorecard-panel-meta`;let l=(e.matchUpType||``).toUpperCase(),u=document.createElement(`span`);u.className=`chc-scorecard-type-badge chc-scorecard-type-badge--${l===`DOUBLES`?`doubles`:`singles`}`,u.textContent=l===`DOUBLES`?`D`:`S`;let d=document.createElement(`span`);d.className=`chc-scorecard-count-badge`,d.textContent=String(t.length),c.appendChild(u),c.appendChild(d),o.appendChild(s),o.appendChild(c),a.appendChild(o);let f=document.createElement(`div`);f.className=`chc-scorecard-grid`;for(let e of t){let t=hi({matchUp:i?j6(e):e,isLucky:!0,eventHandlers:r,composition:n});t.classList.add(`chc-scorecard-card`),f.appendChild(t)}return a.appendChild(f),a}function k6(e){if(e===1)return 2;if(e===2)return 1}function A6(e){if(e)return e.map(e=>({...e,side1Score:e.side2Score,side2Score:e.side1Score,side1TiebreakScore:e.side2TiebreakScore,side2TiebreakScore:e.side1TiebreakScore}))}function j6(e){let t=e.sides?.map(e=>({...e,sideNumber:e.sideNumber===1?2:1}));return{...e,sides:t,score:e.score?{...e.score,sets:A6(e.score.sets)}:e.score,winningSide:k6(e.winningSide)}}function M6(e,t){return e.sides?.find(e=>e.sideNumber===t)?.participant?.participantName}function N6(e){let{matchUpId:t,manager:n,baseMatchUp:r,onUpdate:i,showSituation:a}=e,o=document.createElement(`div`);o.className=`chc-inline-scoring-footer`;let s=document.createElement(`div`);s.className=`chc-inline-scoring-buttons`;let c=(e,t)=>{let n=document.createElement(`button`);return n.textContent=e,n.className=`chc-inline-scoring-btn ${t}`,n},l=c(`Undo`,`chc-is-undo`),u=c(`Redo`,`chc-is-redo`),d=c(`Clear`,`chc-is-clear`),f=c(`Submit`,`chc-is-submit`),p;a&&(p=document.createElement(`span`),p.className=`chc-inline-scoring-situation`),l.onclick=e=>{e.stopPropagation();let a=n.undo(t,r);a&&(i(a),m())},u.onclick=e=>{e.stopPropagation();let a=n.redo(t,r);a&&(i(a),m())},d.onclick=e=>{e.stopPropagation();let a=n.reset(t,r);a&&(i(a),m())},f.onclick=e=>{e.stopPropagation();let i=n.get(t);if(i){let e=n.getMatchUp(t,r);n.callbacks?.onSubmit?.({matchUpId:t,matchUp:e,engine:i.engine})}},s.append(l,u,d,f),o.appendChild(s),p&&o.appendChild(p);function m(){let e=n.canUndo(t),r=n.canRedo(t),i=n.isComplete(t);if(l.disabled=!e,u.disabled=!r,d.disabled=!e&&!r,p){let e=n.getSituation(t);if(e&&!i){let t=[e.isTiebreak&&`TB`,e.isBreakPoint&&`Break`,e.isGamePoint&&`Game`,e.isSetPoint&&`Set`,e.isMatchPoint&&`Match`].filter(Boolean);p.textContent=t.length?t.join(` • `):``}else p.textContent=i?`Complete`:``}}return m(),{element:o,update:m}}var P6=`chc-iss-score-cell`;function F6(e){if(!e?.matchUpId)throw Error(`buildInteractiveScoringShell: matchUpId is required`);if(!e?.matchUpFormat)throw Error(`buildInteractiveScoringShell: matchUpFormat is required`);let t=e.initialMatchUp??I6(e),n=new Set,r=new Kl({onScoreChange:({matchUp:e})=>{a(e,!1)},onMatchComplete:({winningSide:n})=>{a(r.getMatchUp(e.matchUpId,t),!0,n)}});r.getOrCreate(e.matchUpId,e.matchUpFormat,t);let i=document.createElement(`div`);i.className=`chc-interactive-scoring-shell`,i.dataset.matchupId=e.matchUpId,i.dataset.tournamentId=e.tournamentId,l();function a(t,r,i){let a={matchUpId:e.matchUpId,matchUp:t,isComplete:r,winningSide:i??t.winningSide},o=new CustomEvent(`stateChanged`,{detail:a});n.forEach(e=>{try{e(o)}catch(e){console.warn(`[interactive-scoring] listener threw`,e)}})}function o(n){r.isComplete(e.matchUpId)||(r.addPoint(e.matchUpId,n,t),l())}function s(){r.canUndo(e.matchUpId)&&(r.undo(e.matchUpId,t),l(),a(r.getMatchUp(e.matchUpId,t),r.isComplete(e.matchUpId)))}async function c(){(!e.confirmReset||await e.confirmReset())&&(r.reset(e.matchUpId,t),l(),a(r.getMatchUp(e.matchUpId,t),!1))}function l(){i.innerHTML=``,i.append(L6(e),R6(r,e,t),z6(r,e,o),B6(r,e,s,c))}return{element:i,getState:()=>r.getMatchUp(e.matchUpId,t),reset:()=>{r.reset(e.matchUpId,t),l(),a(r.getMatchUp(e.matchUpId,t),!1)},destroy:()=>{n.clear(),r.remove(e.matchUpId),i.innerHTML=``},addEventListener:(e,t)=>{e===`stateChanged`&&n.add(t)},removeEventListener:(e,t)=>{e===`stateChanged`&&n.delete(t)}}}function I6(e){return{matchUpId:e.matchUpId,tournamentId:e.tournamentId,matchUpFormat:e.matchUpFormat,matchUpStatus:`TO_BE_PLAYED`,score:{sets:[]},sides:[{sideNumber:1,participant:{participantName:e.side1Name}},{sideNumber:2,participant:{participantName:e.side2Name}}]}}function L6(e){let t=document.createElement(`div`);t.className=`chc-iss-header`;let n=document.createElement(`div`);n.className=`chc-iss-header-side chc-iss-header-side1`,n.textContent=e.side1Name||`Side 1`;let r=document.createElement(`div`);r.className=`chc-iss-header-vs`,r.textContent=`vs`;let i=document.createElement(`div`);return i.className=`chc-iss-header-side chc-iss-header-side2`,i.textContent=e.side2Name||`Side 2`,t.append(n,r,i),t}function R6(e,t,n){let r=document.createElement(`div`);r.className=`chc-iss-score-display`;let i=e.getMatchUp(t.matchUpId,n),a=i.score?.sets??[],o=document.createElement(`div`);o.className=`chc-iss-score-grid`,o.style.setProperty(`--sets`,String(Math.max(a.length,1)));let s=document.createElement(`div`);s.className=`chc-iss-score-row chc-iss-score-row-side1`;let c=document.createElement(`div`);c.className=`chc-iss-score-row chc-iss-score-row-side2`;for(let e of a){let t=document.createElement(`div`);t.className=P6,t.textContent=String(e.side1Score??0),e.winningSide===1&&t.classList.add(`chc-iss-score-cell-won`),s.append(t);let n=document.createElement(`div`);n.className=P6,n.textContent=String(e.side2Score??0),e.winningSide===2&&n.classList.add(`chc-iss-score-cell-won`),c.append(n)}if(a.length===0){let e=document.createElement(`div`);e.className=P6,e.textContent=`0`,s.append(e);let t=document.createElement(`div`);t.className=P6,t.textContent=`0`,c.append(t)}o.append(s,c),r.append(o);let l=a.at(-1);if(l&&!l.winningSide&&l.side1PointScore!=null){let e=document.createElement(`div`);e.className=`chc-iss-game-score`;let t=document.createElement(`span`);t.className=`chc-iss-game-score-side1`,t.textContent=String(l.side1PointScore);let n=document.createElement(`span`);n.className=`chc-iss-game-score-sep`,n.textContent=` — `;let i=document.createElement(`span`);i.className=`chc-iss-game-score-side2`,i.textContent=String(l.side2PointScore),e.append(t,n,i),r.append(e)}if(e.isComplete(t.matchUpId)){let e=document.createElement(`div`);e.className=`chc-iss-match-complete`,e.textContent=`${(i.winningSide===1?t.side1Name:t.side2Name)||`Match`} wins`,r.append(e)}return r}function z6(e,t,n){let r=document.createElement(`div`);r.className=`chc-iss-point-buttons`;let i=e.isComplete(t.matchUpId),a=document.createElement(`button`);a.type=`button`,a.className=`chc-iss-point-button chc-iss-point-button-side1`,a.disabled=i,a.setAttribute(`aria-label`,`${t.side1Name} won the point`);let o=document.createElement(`span`);o.className=`chc-iss-point-button-label`,o.textContent=t.side1Name||`Side 1`;let s=document.createElement(`span`);s.className=`chc-iss-point-button-hint`,s.textContent=`won the point`,a.append(o,s),a.addEventListener(`click`,()=>n(0));let c=document.createElement(`button`);c.type=`button`,c.className=`chc-iss-point-button chc-iss-point-button-side2`,c.disabled=i,c.setAttribute(`aria-label`,`${t.side2Name} won the point`);let l=document.createElement(`span`);l.className=`chc-iss-point-button-label`,l.textContent=t.side2Name||`Side 2`;let u=document.createElement(`span`);return u.className=`chc-iss-point-button-hint`,u.textContent=`won the point`,c.append(l,u),c.addEventListener(`click`,()=>n(1)),r.append(a,c),r}function B6(e,t,n,r){let i=document.createElement(`div`);i.className=`chc-iss-control-bar`;let a=document.createElement(`button`);a.type=`button`,a.className=`chc-iss-control-button chc-iss-control-undo`,a.textContent=`Undo`,a.disabled=!e.canUndo(t.matchUpId),a.addEventListener(`click`,n);let o=document.createElement(`button`);return o.type=`button`,o.className=`chc-iss-control-button chc-iss-control-reset`,o.textContent=`Reset`,o.addEventListener(`click`,()=>{r()}),i.append(a,o),i}function V6(){return{policyName:`New Ranking Policy`,policyVersion:`1.0`,awardProfiles:[{profileName:`Default`,finishingPositionRanges:{1:100,2:70,4:50,8:30,16:15,32:8}}],requireWinForPoints:!0,doublesAttribution:`fullToEach`}}function $(e){return structuredClone(e)}var H6=class{constructor(e){this.listeners=new Set,this.config=e;let t=$(e.initialPolicy??V6()),n=t.awardProfiles?.length??0;this.state={draft:t,expandedSections:new Set(n>5?[`awardProfiles`]:[`metadata`,`awardProfiles`,`qualityWinProfiles`,`aggregationRules`]),expandedProfiles:new Set(n<=5?Array.from({length:n},(e,t)=>t):[]),profileFilter:``,dirty:!1,readonly:e.readonly??!1}}getState(){return this.state}getData(){return $(this.state.draft)}setData(e){let t=e.awardProfiles?.length??0;this.state={...this.state,draft:$(e),expandedProfiles:new Set(t<=5?Array.from({length:t},(e,t)=>t):[]),profileFilter:``,dirty:!1},this.emit()}toggleSection(e){let t=new Set(this.state.expandedSections);t.has(e)?t.delete(e):t.add(e),this.state={...this.state,expandedSections:t},this.emit()}toggleProfile(e){let t=new Set(this.state.expandedProfiles);t.has(e)?t.delete(e):t.add(e),this.state={...this.state,expandedProfiles:t},this.emit()}setProfileFilter(e){this.state={...this.state,profileFilter:e},this.emit()}setPolicyName(e){let t=$(this.state.draft);t.policyName=e,this.commitDraft(t)}setPolicyVersion(e){let t=$(this.state.draft);t.policyVersion=e,this.commitDraft(t)}setValidDateRange(e,t){let n=$(this.state.draft);n.validDateRange||={},n.validDateRange[e]=t||void 0,this.commitDraft(n)}setGlobalFlag(e,t){let n=$(this.state.draft);n[e]=t,this.commitDraft(n)}setDoublesAttribution(e){let t=$(this.state.draft);t.doublesAttribution=e||void 0,this.commitDraft(t)}setCategoryResolution(e){let t=$(this.state.draft);t.categoryResolution=e||void 0,this.commitDraft(t)}addProfile(){let e=$(this.state.draft);e.awardProfiles||=[],e.awardProfiles.push({profileName:`Profile ${e.awardProfiles.length+1}`,finishingPositionRanges:{1:100,2:70,4:50,8:30}});let t=new Set(this.state.expandedProfiles);t.add(e.awardProfiles.length-1),this.state={...this.state,expandedProfiles:t},this.commitDraft(e)}removeProfile(e){let t=$(this.state.draft);if(!t.awardProfiles||e<0||e>=t.awardProfiles.length)return;t.awardProfiles.splice(e,1);let n=new Set;for(let t of this.state.expandedProfiles)t<e?n.add(t):t>e&&n.add(t-1);this.state={...this.state,expandedProfiles:n},this.commitDraft(t)}duplicateProfile(e){let t=$(this.state.draft);if(!t.awardProfiles||e<0||e>=t.awardProfiles.length)return;let n=$(t.awardProfiles[e]);n.profileName=`${n.profileName??`Profile`} (Copy)`,t.awardProfiles.splice(e+1,0,n);let r=new Set;for(let t of this.state.expandedProfiles)t<=e?r.add(t):r.add(t+1);r.add(e+1),this.state={...this.state,expandedProfiles:r},this.commitDraft(t)}moveProfile(e,t){let n=$(this.state.draft);if(!n.awardProfiles||e<0||e>=n.awardProfiles.length||t<0||t>=n.awardProfiles.length)return;let[r]=n.awardProfiles.splice(e,1);n.awardProfiles.splice(t,0,r),this.commitDraft(n)}setProfileName(e,t){let n=$(this.state.draft);n.awardProfiles?.[e]&&(n.awardProfiles[e].profileName=t,this.commitDraft(n))}setProfileFlag(e,t,n){let r=$(this.state.draft);r.awardProfiles?.[e]&&(n===void 0?delete r.awardProfiles[e][t]:r.awardProfiles[e][t]=n,this.commitDraft(r))}setFlatPositionPoints(e,t,n){let r=$(this.state.draft),i=r.awardProfiles?.[e];i&&(i.finishingPositionRanges||={},i.finishingPositionRanges[t]=n,this.commitDraft(r))}addPositionRow(e,t){let n=$(this.state.draft),r=n.awardProfiles?.[e];r&&(r.finishingPositionRanges||={},r.finishingPositionRanges[t]===void 0&&(r.finishingPositionRanges[t]=0,this.commitDraft(n)))}removePositionRow(e,t){let n=$(this.state.draft),r=n.awardProfiles?.[e];r?.finishingPositionRanges&&(delete r.finishingPositionRanges[t],this.commitDraft(n))}setPointsPerWin(e,t){let n=$(this.state.draft),r=n.awardProfiles?.[e];r&&(t===void 0?delete r.pointsPerWin:r.pointsPerWin=t,this.commitDraft(n))}addBonusPoint(e){let t=$(this.state.draft),n=t.awardProfiles?.[e];n&&(n.bonusPoints||=[],n.bonusPoints.push({finishingPositions:[1],value:0}),this.commitDraft(t))}removeBonusPoint(e,t){let n=$(this.state.draft),r=n.awardProfiles?.[e];r?.bonusPoints&&(r.bonusPoints.splice(t,1),r.bonusPoints.length||delete r.bonusPoints,this.commitDraft(n))}setBonusPointPositions(e,t,n){let r=$(this.state.draft),i=r.awardProfiles?.[e]?.bonusPoints?.[t];i&&(i.finishingPositions=n,this.commitDraft(r))}setBonusPointValue(e,t,n){let r=$(this.state.draft),i=r.awardProfiles?.[e]?.bonusPoints?.[t];i&&(i.value=n,this.commitDraft(r))}setLevelPositionPoints(e,t,n,r){let i=$(this.state.draft),a=i.awardProfiles?.[e];if(!a)return;a.finishingPositionRanges||={};let o=a.finishingPositionRanges[t];o&&typeof o==`object`&&o.level&&(o.level[n]=r),this.commitDraft(i)}addLevel(e,t){let n=$(this.state.draft),r=n.awardProfiles?.[e];if(r?.finishingPositionRanges){for(let e of Object.keys(r.finishingPositionRanges)){let n=r.finishingPositionRanges[e];n&&typeof n==`object`&&n.level&&n.level[t]===void 0&&(n.level[t]=0)}r.levels&&!r.levels.includes(t)&&(r.levels.push(t),r.levels.sort((e,t)=>e-t)),this.commitDraft(n)}}removeLevel(e,t){let n=$(this.state.draft),r=n.awardProfiles?.[e];if(r?.finishingPositionRanges){for(let e of Object.keys(r.finishingPositionRanges)){let n=r.finishingPositionRanges[e];n&&typeof n==`object`&&n.level&&delete n.level[t]}r.levels&&=r.levels.filter(e=>e!==t),this.commitDraft(n)}}setProfileScope(e,t,n){let r=$(this.state.draft),i=r.awardProfiles?.[e];i&&(n.length?i[t]=n:delete i[t],this.commitDraft(r))}setProfileField(e,t,n){let r=$(this.state.draft),i=r.awardProfiles?.[e];i&&(n===void 0||n===``?delete i[t]:i[t]=n,this.commitDraft(r))}addQualityWinProfile(){let e=$(this.state.draft);e.qualityWinProfiles||=[],e.qualityWinProfiles.push({rankingScaleName:`New Profile`,rankingRanges:[{rankRange:[1,10],value:10}]}),this.commitDraft(e)}removeQualityWinProfile(e){let t=$(this.state.draft);t.qualityWinProfiles&&(t.qualityWinProfiles.splice(e,1),t.qualityWinProfiles.length||delete t.qualityWinProfiles,this.commitDraft(t))}setQualityWinField(e,t,n){let r=$(this.state.draft),i=r.qualityWinProfiles?.[e];i&&(n===void 0||n===``?delete i[t]:i[t]=n,this.commitDraft(r))}addQualityWinRange(e){let t=$(this.state.draft),n=t.qualityWinProfiles?.[e];if(!n)return;let r=n.rankingRanges.at(-1),i=r?r.rankRange[1]+1:1;n.rankingRanges.push({rankRange:[i,i+9],value:0}),this.commitDraft(t)}removeQualityWinRange(e,t){let n=$(this.state.draft),r=n.qualityWinProfiles?.[e];r&&(r.rankingRanges.splice(t,1),this.commitDraft(n))}setQualityWinRange(e,t,n,r){let i=$(this.state.draft),a=i.qualityWinProfiles?.[e]?.rankingRanges?.[t];a&&(n===`rankRange`?a.rankRange=r:a.value=r,this.commitDraft(i))}setAggregationField(e,t){let n=$(this.state.draft);n.aggregationRules||={},t===void 0||t===``?delete n.aggregationRules[e]:n.aggregationRules[e]=t,this.commitDraft(n)}addTiebreakCriterion(e){let t=$(this.state.draft);t.aggregationRules||={},t.aggregationRules.tiebreakCriteria||(t.aggregationRules.tiebreakCriteria=[]),t.aggregationRules.tiebreakCriteria.push(e),this.commitDraft(t)}removeTiebreakCriterion(e){let t=$(this.state.draft);t.aggregationRules?.tiebreakCriteria&&(t.aggregationRules.tiebreakCriteria.splice(e,1),t.aggregationRules.tiebreakCriteria.length||delete t.aggregationRules.tiebreakCriteria,this.commitDraft(t))}addCountingBucket(){let e=$(this.state.draft);e.aggregationRules||={},e.aggregationRules.countingBuckets||(e.aggregationRules.countingBuckets=[]),e.aggregationRules.countingBuckets.push({bucketName:`New Bucket`}),this.commitDraft(e)}removeCountingBucket(e){let t=$(this.state.draft);t.aggregationRules?.countingBuckets&&(t.aggregationRules.countingBuckets.splice(e,1),t.aggregationRules.countingBuckets.length||delete t.aggregationRules.countingBuckets,this.commitDraft(t))}setCountingBucketField(e,t,n){let r=$(this.state.draft),i=r.aggregationRules?.countingBuckets?.[e];i&&(n===void 0||n===``?delete i[t]:i[t]=n,this.commitDraft(r))}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}commitDraft(e){this.state={...this.state,draft:e,dirty:!0},this.emit(),this.config.onChange?.($(e))}emit(){for(let e of this.listeners)e(this.state)}},U6=()=>`re-section`,W6=()=>`re-section-header`,G6=()=>`re-section-chevron`,K6=()=>`re-section-count`,q6=()=>`re-section-body`,J6=()=>`re-field-row`,Y6=()=>`re-field-label`,X6=()=>`re-field-input re-field-input--text`,Z6=()=>`re-field-input re-field-input--number`,Q6=()=>`re-field-input re-field-input--date`,$6=()=>`re-field-select`,e8=()=>`re-checkbox-row`,t8=()=>`re-points-input`,n8=()=>`re-profile-card`,r8=()=>`re-profile-header`,i8=()=>`re-profile-name-input`,a8=()=>`re-profile-body`,o8=()=>`re-profile-actions`,s8=()=>`re-icon-btn`,c8=()=>`re-icon-btn re-icon-btn--danger`,l8=()=>`re-empty`,u8=()=>`re-editor`,d8=[`totalPoints`,`bestResult`,`headToHead`,`numberOfWins`,`recentResults`,`drawSize`,`numberOfResults`];function f8(e){let t=document.createElement(`div`),n=``;function r(t,n,r,i,a,o){let s=document.createElement(`div`);s.className=J6();let c=document.createElement(`div`);if(c.className=Y6(),c.textContent=n,s.appendChild(c),o){let e=document.createElement(`span`);e.style.cssText=`font-size:0.85rem;color:var(--sp-text)`,e.textContent=String(i),s.appendChild(e)}else if(r===`select`){let n=document.createElement(`select`);n.className=$6();let r=document.createElement(`option`);r.value=``,r.textContent=`(none)`,n.appendChild(r);for(let e of a??[]){let t=document.createElement(`option`);t.value=e,t.textContent=e,n.appendChild(t)}n.value=i??``,n.addEventListener(`change`,()=>e.setAggregationField(t,n.value||void 0)),s.appendChild(n)}else{let n=document.createElement(`input`);n.type=`number`,n.className=Z6(),n.value=i===void 0?``:String(i),n.placeholder=`—`,n.addEventListener(`change`,()=>{let r=n.value.trim();e.setAggregationField(t,r?Number.parseInt(r,10):void 0)}),s.appendChild(n)}return s}function i(n,r){let i=document.createElement(`div`);if(i.style.cssText=`font-weight:600;font-size:0.8rem;margin:0.5rem 0 0.3rem;color:var(--sp-text)`,i.textContent=`Tiebreak Order`,t.appendChild(i),n.length){let i=document.createElement(`ol`);i.style.cssText=`font-size:0.8rem;margin:0;padding-left:1.5rem;color:var(--sp-text)`;for(let t=0;t<n.length;t++){let a=document.createElement(`li`);a.style.cssText=`display:flex;align-items:center;gap:6px;margin-bottom:2px`;let o=document.createElement(`span`);if(o.textContent=n[t],a.appendChild(o),!r){let n=document.createElement(`span`);n.className=c8(),n.textContent=`×`,n.style.cursor=`pointer`,n.addEventListener(`click`,()=>e.removeTiebreakCriterion(t)),a.appendChild(n)}i.appendChild(a)}t.appendChild(i)}else if(r){let e=document.createElement(`div`);e.className=l8(),e.textContent=`No tiebreak criteria`,t.appendChild(e)}if(!r){let r=document.createElement(`div`);r.style.cssText=`display:flex;align-items:center;gap:4px;margin-top:4px`;let i=document.createElement(`select`);i.className=$6(),i.style.fontSize=`0.75rem`;let a=new Set(n),o=d8.filter(e=>!a.has(e));for(let e of o){let t=document.createElement(`option`);t.value=e,t.textContent=e,i.appendChild(t)}let s=document.createElement(`button`);s.className=`sp-btn sp-btn--sm sp-btn--outline`,s.textContent=`+ Add`,s.addEventListener(`click`,()=>{i.value&&e.addTiebreakCriterion(i.value)}),o.length&&(r.appendChild(i),r.appendChild(s),t.appendChild(r))}}function a(t,n,r){let i=document.createElement(`div`);i.style.cssText=`border:1px solid var(--sp-border);border-radius:8px;padding:0.4rem;margin-bottom:0.4rem;font-size:0.8rem`;let a=document.createElement(`div`);if(a.style.cssText=`display:flex;align-items:center;gap:6px;margin-bottom:0.2rem`,r){let e=document.createElement(`span`);e.style.cssText=`font-weight:600;color:var(--sp-text)`,e.textContent=t.bucketName||`Bucket`,a.appendChild(e)}else{let r=document.createElement(`input`);r.type=`text`,r.className=`re-field-input re-field-input--text`,r.style.cssText=`width:120px;font-size:0.75rem;font-weight:600`,r.value=t.bucketName||``,r.placeholder=`Bucket name`,r.addEventListener(`change`,()=>e.setCountingBucketField(n,`bucketName`,r.value)),a.appendChild(r);let i=document.createElement(`div`);i.style.flexGrow=`1`,a.appendChild(i);let o=document.createElement(`span`);o.className=c8(),o.textContent=`✕`,o.style.cursor=`pointer`,o.addEventListener(`click`,()=>e.removeCountingBucket(n)),a.appendChild(o)}i.appendChild(a);let o=[];if(t.eventTypes?.length&&o.push(`Events: ${t.eventTypes.join(`, `)}`),t.bestOfCount!==void 0&&o.push(`Best of: ${t.bestOfCount}`),t.levels?.length&&o.push(`Levels: ${t.levels.join(`, `)}`),t.minResults!==void 0&&o.push(`Min: ${t.minResults}`),r&&o.length){let e=document.createElement(`div`);e.style.cssText=`color:var(--sp-muted);font-size:0.75rem`,e.textContent=o.join(` | `),i.appendChild(e)}else if(!r){let r=document.createElement(`div`);r.className=J6();let a=document.createElement(`div`);a.className=Y6(),a.style.cssText=`min-width:70px;font-size:0.75rem`,a.textContent=`Best of`,r.appendChild(a);let o=document.createElement(`input`);o.type=`number`,o.className=Z6(),o.style.fontSize=`0.75rem`,o.value=t.bestOfCount===void 0?``:String(t.bestOfCount),o.addEventListener(`change`,()=>{let t=o.value.trim();e.setCountingBucketField(n,`bestOfCount`,t?Number.parseInt(t,10):void 0)}),r.appendChild(o),i.appendChild(r)}return i}function o(n){let o=n.draft.aggregationRules;if(t.innerHTML=``,!o&&n.readonly){let e=document.createElement(`div`);e.className=l8(),e.textContent=`No aggregation rules defined (all results summed)`,t.appendChild(e);return}let s=[[`rollingPeriodDays`,`Rolling period (days)`,`number`,o?.rollingPeriodDays],[`bestOfCount`,`Best of count`,`number`,o?.bestOfCount],[`minCountableResults`,`Min countable results`,`number`,o?.minCountableResults],[`decayFunction`,`Decay function`,`select`,o?.decayFunction,[`none`,`linear`,`exponential`,`step`]]];for(let[e,i,a,o,c]of s)o===void 0&&n.readonly||t.appendChild(r(e,i,a,o,c,n.readonly));let c=[[`separateByGender`,`Separate by gender`,o?.separateByGender],[`perCategory`,`Per category`,o?.perCategory]];for(let[r,i,a]of c){if(a===void 0&&n.readonly)continue;let o=document.createElement(`div`);o.className=e8();let s=document.createElement(`input`);s.type=`checkbox`,s.checked=a??!1,s.disabled=n.readonly,s.addEventListener(`change`,()=>e.setAggregationField(r,s.checked));let c=document.createElement(`label`);c.textContent=i,o.appendChild(s),o.appendChild(c),t.appendChild(o)}i(o?.tiebreakCriteria??[],n.readonly);let l=o?.countingBuckets??[];if(l.length||!n.readonly){let r=document.createElement(`div`);r.style.cssText=`font-weight:600;font-size:0.8rem;margin:0.5rem 0 0.3rem;color:var(--sp-text)`,r.textContent=`Counting Buckets`,t.appendChild(r);for(let e=0;e<l.length;e++)t.appendChild(a(l[e],e,n.readonly));if(!n.readonly){let n=document.createElement(`button`);n.className=`sp-btn sp-btn--sm sp-btn--outline re-add-btn`,n.textContent=`+ Add Bucket`,n.addEventListener(`click`,()=>e.addCountingBucket()),t.appendChild(n)}}}function s(e){let t=JSON.stringify(e.draft.aggregationRules??{});t!==n&&(n=t,o(e))}return{element:t,update:s}}function p8(e){let t=document.createElement(`div`),n=``;function r(t,n,r){let i=document.createElement(`div`);if(i.style.cssText=`display:flex;align-items:center;gap:0.5rem;margin-bottom:0.4rem`,r){let e=document.createElement(`span`);e.style.cssText=`font-weight:600;font-size:0.85rem;color:var(--sp-text)`,e.textContent=n.rankingScaleName,i.appendChild(e)}else{let r=document.createElement(`input`);r.type=`text`,r.className=X6(),r.style.cssText=`width:150px;font-weight:600`,r.value=n.rankingScaleName,r.addEventListener(`change`,()=>e.setQualityWinField(t,`rankingScaleName`,r.value)),i.appendChild(r);let a=document.createElement(`div`);a.style.flexGrow=`1`,i.appendChild(a);let o=document.createElement(`span`);o.className=c8(),o.textContent=`✕`,o.title=`Delete profile`,o.style.cursor=`pointer`,o.addEventListener(`click`,()=>e.removeQualityWinProfile(t)),i.appendChild(o)}return i}let i=`text-align:right;padding:2px 4px`,a=`text-align:right;width:4rem`;function o(t,n,r,a){let o=document.createElement(`tr`);if(a)for(let e of[r.rankRange[0],r.rankRange[1],r.value]){let t=document.createElement(`td`);t.style.cssText=`text-align:right;font-variant-numeric:tabular-nums;padding:2px 4px`,t.textContent=e.toLocaleString(),o.appendChild(t)}else{let a=document.createElement(`td`);a.style.cssText=i,a.appendChild(m8(r.rankRange[0],i=>{e.setQualityWinRange(t,n,`rankRange`,[i,r.rankRange[1]])})),o.appendChild(a);let s=document.createElement(`td`);s.style.cssText=i,s.appendChild(m8(r.rankRange[1],i=>{e.setQualityWinRange(t,n,`rankRange`,[r.rankRange[0],i])})),o.appendChild(s);let c=document.createElement(`td`);c.style.cssText=i,c.appendChild(m8(r.value,r=>{e.setQualityWinRange(t,n,`value`,r)})),o.appendChild(c);let l=document.createElement(`td`);l.style.cssText=`text-align:center;padding:2px`;let u=document.createElement(`span`);u.className=c8(),u.textContent=`×`,u.style.cursor=`pointer`,u.addEventListener(`click`,()=>e.removeQualityWinRange(t,n)),l.appendChild(u),o.appendChild(l)}return o}function s(e,t,n){let r=document.createElement(`table`);r.style.cssText=`font-size:0.8rem;margin-bottom:0.3rem;border-collapse:collapse`;let i=document.createElement(`thead`),s=document.createElement(`tr`);for(let[e,t]of[[`From`,a],[`To`,a],[`Bonus`,a]]){let n=document.createElement(`th`);n.textContent=e,n.style.cssText=t+`;padding:2px 4px`,s.appendChild(n)}if(!n){let e=document.createElement(`th`);e.style.cssText=`width:2rem;padding:2px`,s.appendChild(e)}i.appendChild(s),r.appendChild(i);let c=document.createElement(`tbody`);for(let r=0;r<t.rankingRanges.length;r++)c.appendChild(o(e,r,t.rankingRanges[r],n));return r.appendChild(c),r}function c(t,n,r,i,a){let o=document.createElement(`div`);o.className=J6();let s=document.createElement(`div`);if(s.className=Y6(),s.style.minWidth=`100px`,s.style.fontSize=`0.75rem`,s.textContent=r,o.appendChild(s),a){let e=document.createElement(`span`);e.style.cssText=`font-size:0.75rem;color:var(--sp-muted)`,e.textContent=String(i),o.appendChild(e)}else{let r=document.createElement(`input`);r.type=typeof i==`number`?`number`:`text`,r.className=typeof i==`number`?Z6():X6(),r.style.fontSize=`0.75rem`,r.value=i===void 0?``:String(i),r.addEventListener(`change`,()=>{let a=r.value.trim();typeof i==`number`||n===`maxBonusPerTournament`?e.setQualityWinField(t,n,a?Number.parseFloat(a):void 0):e.setQualityWinField(t,n,a||void 0)}),o.appendChild(r)}return o}function l(n){let i=n.draft.qualityWinProfiles;if(t.innerHTML=``,!i?.length){let r=document.createElement(`div`);if(r.className=l8(),r.textContent=`No quality win profiles defined`,t.appendChild(r),!n.readonly){let n=document.createElement(`button`);n.className=`sp-btn sp-btn--sm sp-btn--outline re-add-btn`,n.textContent=`+ Add Quality Win Profile`,n.addEventListener(`click`,()=>e.addQualityWinProfile()),t.appendChild(n)}return}for(let a=0;a<i.length;a++){let o=i[a],l=document.createElement(`div`);if(l.style.cssText=`border:1px solid var(--sp-border);border-radius:10px;padding:0.5rem;margin-bottom:0.5rem`,l.appendChild(r(a,o,n.readonly)),o.rankingRanges?.length&&(l.appendChild(s(a,o,n.readonly)),!n.readonly)){let t=document.createElement(`button`);t.className=`sp-btn sp-btn--sm sp-btn--outline`,t.textContent=`+ Range`,t.style.marginBottom=`0.3rem`,t.addEventListener(`click`,()=>e.addQualityWinRange(a)),l.appendChild(t)}let u=[[`maxBonusPerTournament`,`Max bonus/tournament`,o.maxBonusPerTournament],[`rankingSnapshot`,`Ranking snapshot`,o.rankingSnapshot]];for(let[e,t,r]of u)r===void 0&&n.readonly||l.appendChild(c(a,e,t,r,n.readonly));if(o.includeWalkovers!==void 0||!n.readonly){let t=document.createElement(`div`);t.className=e8();let r=document.createElement(`input`);r.type=`checkbox`,r.checked=o.includeWalkovers??!1,r.disabled=n.readonly,r.addEventListener(`change`,()=>e.setQualityWinField(a,`includeWalkovers`,r.checked));let i=document.createElement(`label`);i.textContent=`Include walkovers`,i.style.fontSize=`0.75rem`,t.appendChild(r),t.appendChild(i),l.appendChild(t)}t.appendChild(l)}if(!n.readonly){let n=document.createElement(`button`);n.className=`sp-btn sp-btn--sm sp-btn--outline re-add-btn`,n.textContent=`+ Add Quality Win Profile`,n.addEventListener(`click`,()=>e.addQualityWinProfile()),t.appendChild(n)}}function u(e){let t=JSON.stringify(e.draft.qualityWinProfiles??[]);t!==n&&(n=t,l(e))}return{element:t,update:u}}function m8(e,t){let n=document.createElement(`input`);return n.type=`number`,n.className=t8(),n.value=String(e),n.addEventListener(`change`,()=>{let e=Number.parseFloat(n.value);Number.isNaN(e)||t(e)}),n}function h8(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=J6();let r=document.createElement(`div`);r.className=Y6(),r.textContent=`Name`;let i=document.createElement(`input`);i.type=`text`,i.className=X6(),i.placeholder=`Policy name`,i.addEventListener(`change`,()=>e.setPolicyName(i.value)),n.appendChild(r),n.appendChild(i),t.appendChild(n);let a=document.createElement(`div`);a.className=J6();let o=document.createElement(`div`);o.className=Y6(),o.textContent=`Version`;let s=document.createElement(`input`);s.type=`text`,s.className=X6(),s.placeholder=`1.0`,s.style.width=`80px`,s.addEventListener(`change`,()=>e.setPolicyVersion(s.value)),a.appendChild(o),a.appendChild(s),t.appendChild(a);let c=document.createElement(`div`);c.className=J6();let l=document.createElement(`div`);l.className=Y6(),l.textContent=`Valid from`;let u=document.createElement(`input`);u.type=`date`,u.className=Q6(),u.addEventListener(`change`,()=>e.setValidDateRange(`startDate`,u.value)),c.appendChild(l),c.appendChild(u),t.appendChild(c);let d=document.createElement(`div`);d.className=J6();let f=document.createElement(`div`);f.className=Y6(),f.textContent=`Valid until`;let p=document.createElement(`input`);p.type=`date`,p.className=Q6(),p.addEventListener(`change`,()=>e.setValidDateRange(`endDate`,p.value)),d.appendChild(f),d.appendChild(p),t.appendChild(d);let m=document.createElement(`div`);m.className=J6();let h=document.createElement(`div`);h.className=Y6(),h.textContent=`Doubles attribution`;let g=document.createElement(`select`);g.className=$6();for(let[e,t]of[[``,`(none)`],[`fullToEach`,`Full to each`],[`halfToEach`,`Half to each`],[`split`,`Split`]]){let n=document.createElement(`option`);n.value=e,n.textContent=t,g.appendChild(n)}g.addEventListener(`change`,()=>e.setDoublesAttribution(g.value)),m.appendChild(h),m.appendChild(g),t.appendChild(m);let _=document.createElement(`div`);_.className=J6();let v=document.createElement(`div`);v.className=Y6(),v.textContent=`Category resolution`;let y=document.createElement(`select`);y.className=$6();for(let[e,t]of[[``,`(none)`],[`matchCategory`,`Match category`],[`eventCategory`,`Event category`]]){let n=document.createElement(`option`);n.value=e,n.textContent=t,y.appendChild(n)}y.addEventListener(`change`,()=>e.setCategoryResolution(y.value)),_.appendChild(v),_.appendChild(y),t.appendChild(_);let b=document.createElement(`div`);b.className=e8();let x=document.createElement(`input`);x.type=`checkbox`,x.id=`re-require-win`;let S=document.createElement(`label`);S.htmlFor=`re-require-win`,S.textContent=`Require win for points`,x.addEventListener(`change`,()=>e.setGlobalFlag(`requireWinForPoints`,x.checked)),b.appendChild(x),b.appendChild(S),t.appendChild(b);let C=document.createElement(`div`);C.className=e8();let w=document.createElement(`input`);w.type=`checkbox`,w.id=`re-require-win-r1`;let T=document.createElement(`label`);T.htmlFor=`re-require-win-r1`,T.textContent=`Require win in first round`,w.addEventListener(`change`,()=>e.setGlobalFlag(`requireWinFirstRound`,w.checked)),C.appendChild(w),C.appendChild(T),t.appendChild(C);let E=[i,s,u,p],D=[g,y],O=[x,w];function k(e){let{draft:t}=e;document.activeElement!==i&&(i.value=t.policyName??``),document.activeElement!==s&&(s.value=t.policyVersion??``),document.activeElement!==u&&(u.value=t.validDateRange?.startDate??``),document.activeElement!==p&&(p.value=t.validDateRange?.endDate??``),document.activeElement!==g&&(g.value=t.doublesAttribution??``),document.activeElement!==y&&(y.value=t.categoryResolution??``),x.checked=t.requireWinForPoints??!1,w.checked=t.requireWinFirstRound??!1;let n=e.readonly;for(let e of E)e.disabled=n;for(let e of D)e.disabled=n;for(let e of O)e.disabled=n}return{element:t,update:k}}var g8={1:`W`,2:`F`,4:`SF`,8:`QF`,16:`R16`,32:`R32`,64:`R64`,128:`R128`,256:`R256`},_8=`level-keyed`;function v8(e){return g8[e]??`R${e}`}function y8(e){if(!e)return{type:`flat`};let t=Object.values(e);if(!t.length||t.every(e=>typeof e==`number`))return{type:`flat`};let n=b8(t);return n.hasConditionalArray?{type:`conditional`}:n.hasLevelFlightNesting?x8(t,n.allLevels):n.allLevels.size>0?{type:`level-columns`,levels:[...n.allLevels].sort((e,t)=>e-t)}:n.allFlights.size>0?{type:`flight-columns`,flights:[...n.allFlights].sort((e,t)=>e-t)}:{type:`flat`}}function b8(e){let t=new Set,n=new Set,r=!1,i=!1;for(let a of e){let e=S8(a);if(e.type===_8){for(let n of e.levels)t.add(n);e.hasFlightNesting&&(i=!0)}else if(e.type===`flight-keyed`)for(let t=0;t<e.flightCount;t++)n.add(t+1);else e.type===`conditional-array`&&(r=!0)}return{allLevels:t,allFlights:n,hasConditionalArray:r,hasLevelFlightNesting:i}}function x8(e,t){let n={},r=[...t].sort((e,t)=>e-t);for(let t of e){let e=S8(t);if(e.type===_8&&e.flightDetails)for(let[t,r]of Object.entries(e.flightDetails)){let e=Number(t);n[e]||(n[e]=[]);for(let t of r)n[e].includes(t)||n[e].push(t)}}return{type:`level-flight-tabs`,levels:r,flightsPerLevel:n}}function S8(e){if(typeof e==`number`)return{type:`flat`,levels:[],flightCount:0,hasFlightNesting:!1};if(Array.isArray(e))return{type:`conditional-array`,levels:[],flightCount:0,hasFlightNesting:!1};if(typeof e!=`object`||!e)return{type:`flat`,levels:[],flightCount:0,hasFlightNesting:!1};if(e.level!==void 0){if(Array.isArray(e.level))return{type:_8,levels:e.level.map((e,t)=>t+1),flightCount:0,hasFlightNesting:!1};if(typeof e.level==`object`){let t=Object.keys(e.level).map(Number).filter(e=>!Number.isNaN(e)),n=!1,r={};for(let[t,i]of Object.entries(e.level))typeof i==`object`&&i&&i.flights&&(n=!0,r[Number(t)]=i.flights.map((e,t)=>t+1));return{type:_8,levels:t,flightCount:0,hasFlightNesting:n,flightDetails:r}}}return e.flights!==void 0||e.f!==void 0?{type:`flight-keyed`,levels:[],flightCount:(e.flights??e.f??[]).length,hasFlightNesting:!1}:e.value===void 0?{type:`flat`,levels:[],flightCount:0,hasFlightNesting:!1}:{type:`explicit-flat`,levels:[],flightCount:0,hasFlightNesting:!1}}function C8(e,t={}){if(typeof e==`number`)return e;if(e!=null){if(Array.isArray(e))return w8(e,t);if(typeof e==`object`){if(e.level!==void 0&&t.level!==void 0)return T8(e,t);if(t.flight!==void 0){let n=e.flights??e.f;if(Array.isArray(n))return n[t.flight-1]}if(e.value!==void 0)return e.value}}}function w8(e,t){for(let n of e){if(n.drawSizes&&t.drawSize&&n.drawSizes.includes(t.drawSize))return C8(n,t);if(n.drawSize!==void 0&&t.drawSize!==void 0&&(n.threshold?t.drawSize>=n.drawSize:t.drawSize===n.drawSize))return C8({...n,drawSize:void 0,drawSizes:void 0,threshold:void 0},t);if(n.drawSize===void 0&&n.drawSizes===void 0)return C8(n,t)}}function T8(e,t){let n=Array.isArray(e.level)?e.level[t.level-1]:e.level[t.level];if(n!==void 0)return typeof n==`object`&&n?C8(n,t):typeof n==`number`?n:void 0}function E8(e){let t=[],n=Object.keys(e.finishingPositionRanges??{}).length;return n&&t.push(`${n} positions`),(e.perWinPoints||e.pointsPerWin)&&t.push(`per-win`),e.bonusPoints?.length&&t.push(`${e.bonusPoints.length} bonus`),t.join(`, `)||`empty`}function D8(e){let t=[];for(let n of e.eventTypes??[])t.push({label:n,intent:`re-badge--accent`});for(let n of e.stages??[])t.push({label:n,intent:`re-badge--success`});for(let n of e.levels??[])t.push({label:`L${n}`,intent:`re-badge--warn`});for(let n of e.drawTypes??[])t.push({label:n.replaceAll(`_`,` `),intent:`re-badge--primary`});return e.participationOrder!==void 0&&t.push({label:`PO:${e.participationOrder}`,intent:`re-badge--info`}),t}function O8(e){return e==null?`--`:e.toLocaleString()}var k8=[1,2,4,8,16,32,64,128],A8=`font-size:0.8rem;margin-bottom:0;border-collapse:collapse`,j8=`width:3.5rem;text-align:center`;function M8(e,t){let n=document.createElement(`div`);n.style.cssText=`overflow-x:auto`;let r=``;function i(r){let i=r.draft.awardProfiles?.[t]?.finishingPositionRanges;if(n.innerHTML=``,!i||!Object.keys(i).length){let i=document.createElement(`div`);if(i.className=l8(),i.textContent=`No finishing position points defined`,!r.readonly){let n=document.createElement(`button`);n.className=`sp-btn sp-btn--sm sp-btn--outline re-add-btn`,n.textContent=`+ Add position`,n.style.marginLeft=`8px`,n.addEventListener(`click`,()=>e.addPositionRow(t,1)),i.appendChild(n)}n.appendChild(i);return}let a=y8(i),o=Object.keys(i).map(Number).sort((e,t)=>e-t);a.type===`flat`?N8(n,o,i,r.readonly,e,t):a.type===`level-columns`?P8(n,o,i,a.levels,r.readonly,e,t):F8(n,o,i,a)}function a(e){let n=e.draft.awardProfiles?.[t],a=JSON.stringify(n?.finishingPositionRanges??{});a!==r&&(r=a,i(e))}return{element:n,update:a}}function N8(e,t,n,r,i,a){let o=document.createElement(`table`);o.style.cssText=A8;let s=document.createElement(`thead`),c=document.createElement(`tr`);I8(c,`Pos`,j8),I8(c,`Points`,`text-align:right`),r||I8(c,``,`width:2rem`),s.appendChild(c),o.appendChild(s);let l=document.createElement(`tbody`);for(let e of t){let t=document.createElement(`tr`);L8(t,e);let o=document.createElement(`td`);o.style.cssText=`text-align:right;padding:2px 4px`,r?(o.style.fontVariantNumeric=`tabular-nums`,o.textContent=O8(typeof n[e]==`number`?n[e]:C8(n[e]))):o.appendChild(z8(typeof n[e]==`number`?n[e]:C8(n[e])??0,t=>i.setFlatPositionPoints(a,e,t))),t.appendChild(o),r||R8(t,()=>i.removePositionRow(a,e)),l.appendChild(t)}o.appendChild(l),e.appendChild(o),r||B8(e,t,i,a)}function P8(e,t,n,r,i,a,o){let s=document.createElement(`table`);s.style.cssText=A8;let c=document.createElement(`thead`),l=document.createElement(`tr`);I8(l,`Pos`,j8);for(let e of r){let t=document.createElement(`th`);if(t.style.cssText=`text-align:right;min-width:3.5rem;padding:2px 4px`,i)t.textContent=`L${e}`;else{let n=document.createElement(`div`);n.style.cssText=`display:flex;align-items:center;justify-content:flex-end;gap:4px`;let r=document.createElement(`span`);r.textContent=`L${e}`,n.appendChild(r);let i=document.createElement(`span`);i.className=c8(),i.textContent=`×`,i.title=`Remove level ${e}`,i.style.cssText=`cursor:pointer;font-size:0.65rem`,i.addEventListener(`click`,()=>a.removeLevel(o,e)),n.appendChild(i),t.appendChild(n)}l.appendChild(t)}i||I8(l,``,`width:2rem`),c.appendChild(l),s.appendChild(c);let u=document.createElement(`tbody`);for(let e of t){let t=document.createElement(`tr`);L8(t,e);for(let s of r){let r=document.createElement(`td`);r.style.cssText=`text-align:right;padding:2px 4px`;let c=C8(n[e],{level:s});i?(r.style.fontVariantNumeric=`tabular-nums`,r.textContent=O8(c),c===void 0&&(r.style.color=`var(--sp-muted)`)):r.appendChild(z8(c??0,t=>a.setLevelPositionPoints(o,e,s,t))),t.appendChild(r)}i||R8(t,()=>a.removePositionRow(o,e)),u.appendChild(t)}if(s.appendChild(u),e.appendChild(s),!i){let n=document.createElement(`div`);n.style.cssText=`display:flex;gap:8px;margin-top:6px;flex-wrap:wrap`;let i=document.createElement(`div`);i.style.cssText=`display:flex;align-items:center;gap:4px`;let s=document.createElement(`input`);s.type=`number`,s.className=t8(),s.style.width=`50px`,s.placeholder=`L#`,s.min=`1`;let c=document.createElement(`button`);c.className=`sp-btn sp-btn--sm sp-btn--outline`,c.textContent=`+ Level`,c.addEventListener(`click`,()=>{let e=Number.parseInt(s.value,10);!Number.isNaN(e)&&e>0&&!r.includes(e)&&(a.addLevel(o,e),s.value=``)}),i.appendChild(s),i.appendChild(c),n.appendChild(i),V8(n,t,a,o),e.appendChild(n)}}function F8(e,t,n,r){let i=document.createElement(`div`);i.style.cssText=`font-size:0.7rem;color:var(--sp-muted);margin-bottom:4px;font-style:italic`,i.textContent=`(${r.type} layout — view only)`,e.appendChild(i);let a=document.createElement(`table`);a.style.cssText=A8;let o=document.createElement(`thead`),s=document.createElement(`tr`);if(I8(s,`Pos`,j8),r.type===`flight-columns`)for(let e of r.flights)I8(s,`F${e}`,`text-align:right;min-width:3.5rem`);else I8(s,`Points`,`text-align:right`);o.appendChild(s),a.appendChild(o);let c=document.createElement(`tbody`);for(let e of t){let t=document.createElement(`tr`);L8(t,e);let i=n[e];if(r.type===`flight-columns`)for(let e of r.flights){let n=document.createElement(`td`);n.style.cssText=`text-align:right;font-variant-numeric:tabular-nums;padding:2px 4px`;let r=C8(i,{flight:e});n.textContent=O8(r),r===void 0&&(n.style.color=`var(--sp-muted)`),t.appendChild(n)}else{let e=document.createElement(`td`);if(e.style.cssText=`text-align:right;font-variant-numeric:tabular-nums;padding:2px 4px`,e.textContent=O8(C8(i)),Array.isArray(i)){let t=document.createElement(`span`);t.style.cssText=`margin-left:0.3rem;font-size:0.65rem;color:var(--sp-muted)`,t.textContent=`${i.length} variants`,t.title=JSON.stringify(i,null,2),e.appendChild(t)}t.appendChild(e)}c.appendChild(t)}a.appendChild(c),e.appendChild(a)}function I8(e,t,n){let r=document.createElement(`th`);r.textContent=t,r.style.cssText=n+`;padding:2px 4px`,e.appendChild(r)}function L8(e,t){let n=document.createElement(`td`);n.style.cssText=`text-align:center;font-weight:600;color:var(--sp-text);padding:2px 4px`,n.textContent=v8(t),e.appendChild(n)}function R8(e,t){let n=document.createElement(`td`);n.style.cssText=`text-align:center;vertical-align:middle;padding:2px`;let r=document.createElement(`span`);r.className=c8(),r.textContent=`×`,r.title=`Remove position`,r.style.cursor=`pointer`,r.addEventListener(`click`,t),n.appendChild(r),e.appendChild(n)}function z8(e,t){let n=document.createElement(`input`);return n.type=`number`,n.className=t8(),n.value=String(e),n.addEventListener(`change`,()=>{let e=Number.parseFloat(n.value);Number.isNaN(e)||t(e)}),n}function B8(e,t,n,r){let i=document.createElement(`div`);i.style.cssText=`display:flex;gap:8px;margin-top:6px;flex-wrap:wrap`,V8(i,t,n,r),e.appendChild(i)}function V8(e,t,n,r){let i=new Set(t),a=k8.filter(e=>!i.has(e));if(!a.length)return;let o=document.createElement(`div`);o.style.cssText=`display:flex;align-items:center;gap:4px`;let s=document.createElement(`select`);s.className=`re-field-select`,s.style.cssText=`min-width:80px;font-size:11px;padding:4px 6px`;for(let e of a){let t=document.createElement(`option`);t.value=String(e),t.textContent=v8(e),s.appendChild(t)}let c=document.createElement(`button`);c.className=`sp-btn sp-btn--sm sp-btn--outline`,c.textContent=`+ Position`,c.addEventListener(`click`,()=>{let e=Number.parseInt(s.value,10);Number.isNaN(e)||n.addPositionRow(r,e)}),o.appendChild(s),o.appendChild(c),e.appendChild(o)}function H8(e,t){let n=document.createElement(`div`);n.style.cssText=`padding:0.25rem 0;font-size:0.8rem`;let r=document.createElement(`div`);r.className=J6();let i=document.createElement(`div`);i.className=Y6(),i.textContent=`Per-Win`,i.style.minWidth=`80px`;let a=document.createElement(`input`);a.type=`number`,a.className=t8(),a.placeholder=`—`,a.addEventListener(`change`,()=>{let n=a.value.trim();e.setPointsPerWin(t,n===``?void 0:parseFloat(n))});let o=document.createElement(`div`);o.style.cssText=`font-size:0.75rem;color:var(--sp-muted)`,r.appendChild(i),r.appendChild(a),n.appendChild(r),n.appendChild(o);function s(e){let r=e.draft.awardProfiles?.[t];if(!r){n.style.display=`none`;return}let i=r.perWinPoints,s=r.pointsPerWin;if(!i&&s===void 0){n.style.display=`none`;return}if(n.style.display=``,a.disabled=e.readonly,s!==void 0&&typeof s==`number`)a.style.display=``,o.style.display=`none`,document.activeElement!==a&&(a.value=String(s));else if(s!==void 0){a.style.display=`none`,o.style.display=``;let e=C8(s);o.textContent=`${O8(e)} pts/win (complex)`}else if(i){a.style.display=`none`,o.style.display=``;let e=(Array.isArray(i)?i:[i]).map(e=>{let t=[];return e.participationOrders?.length&&t.push(`PO:${e.participationOrders.join(`,`)}`),e.value!==void 0&&t.push(`${e.value} pts/win`),e.limit!==void 0&&t.push(`limit: ${e.limit}`),t.join(` | `)});o.textContent=e.join(`; `)}if(r.maxCountableMatches!==void 0){let e=typeof r.maxCountableMatches==`number`?r.maxCountableMatches:`level-keyed`;o.style.display=``;let t=o.textContent;o.textContent=t?`${t} — max countable: ${e}`:`Max countable: ${e}`}}return{element:n,update:s}}function U8(e,t){let n=document.createElement(`div`);n.style.cssText=`padding:0.25rem 0;font-size:0.8rem`;let r=``;function i(r){let i=r.draft.awardProfiles?.[t]?.bonusPoints;if(n.innerHTML=``,!i?.length&&r.readonly){n.style.display=`none`;return}n.style.display=``;let a=document.createElement(`div`);if(a.style.cssText=`font-weight:600;color:var(--sp-text);margin-bottom:4px`,a.textContent=`Bonus Points`,n.appendChild(a),i?.length)for(let a=0;a<i.length;a++){let o=i[a],s=document.createElement(`div`);if(s.style.cssText=`display:flex;align-items:center;gap:6px;margin-bottom:4px;padding-left:0.5rem`,r.readonly){let e=o.finishingPositions.map(v8).join(`, `),t=document.createElement(`span`);t.textContent=`${e}: `,s.appendChild(t);let n=document.createElement(`span`);n.style.fontVariantNumeric=`tabular-nums`,n.textContent=typeof o.value==`number`?o.value.toLocaleString():String(o.value??`—`),s.appendChild(n)}else{let n=document.createElement(`span`);n.style.cssText=`font-size:0.75rem;color:var(--sp-muted);min-width:30px`,n.textContent=`Pos:`,s.appendChild(n);let r=document.createElement(`input`);r.type=`text`,r.className=t8(),r.style.width=`80px`,r.value=o.finishingPositions.join(`, `),r.title=`Comma-separated positions (e.g. 1, 2)`,r.addEventListener(`change`,()=>{let n=r.value.split(`,`).map(e=>Number.parseInt(e.trim(),10)).filter(e=>!Number.isNaN(e)&&e>0);n.length&&e.setBonusPointPositions(t,a,n)}),s.appendChild(r);let i=document.createElement(`span`);i.style.cssText=`font-size:0.75rem;color:var(--sp-muted)`,i.textContent=`Pts:`,s.appendChild(i);let c=document.createElement(`input`);c.type=`number`,c.className=t8(),c.value=typeof o.value==`number`?String(o.value):``,c.addEventListener(`change`,()=>{let n=Number.parseFloat(c.value);Number.isNaN(n)||e.setBonusPointValue(t,a,n)}),s.appendChild(c);let l=document.createElement(`span`);l.className=c8(),l.textContent=`×`,l.title=`Remove bonus`,l.style.cursor=`pointer`,l.addEventListener(`click`,()=>e.removeBonusPoint(t,a)),s.appendChild(l)}n.appendChild(s)}if(!r.readonly){let r=document.createElement(`button`);r.className=`sp-btn sp-btn--sm sp-btn--outline`,r.textContent=`+ Add bonus`,r.style.cssText=`margin-top:4px;margin-left:0.5rem`,r.addEventListener(`click`,()=>e.addBonusPoint(t)),n.appendChild(r)}}function a(e){let n=e.draft.awardProfiles?.[t],a=JSON.stringify(n?.bonusPoints??[]);a!==r&&(r=a,i(e))}return{element:n,update:a}}function W8(e){let t=document.createElement(`div`);t.style.cssText=`display:inline-flex;gap:0.25rem;flex-wrap:wrap;margin-bottom:0`;let n=D8(e);if(!n.length){let e=document.createElement(`span`);return e.className=`re-badge re-badge--neutral`,e.textContent=`All`,t.appendChild(e),t}for(let e of n){let n=document.createElement(`span`);n.className=`re-badge ${e.intent}`,n.textContent=e.label,t.appendChild(n)}return t}var G8=[{field:`eventTypes`,label:`Event types`,options:[`SINGLES`,`DOUBLES`,`TEAM`]},{field:`drawTypes`,label:`Draw types`,options:[`SINGLE_ELIMINATION`,`DOUBLE_ELIMINATION`,`ROUND_ROBIN`,`COMPASS`,`FEED_IN`,`AD_HOC`,`LUCKY_DRAW`]},{field:`stages`,label:`Stages`,options:[`MAIN`,`QUALIFYING`,`CONSOLATION`,`PLAY_OFF`]},{field:`levels`,label:`Levels`,options:[],isNumeric:!0}],K8=[[`maxDrawSize`,`Max draw size`],[`maxLevel`,`Max level`],[`priority`,`Priority`],[`participationOrder`,`Participation order`]];function q8(e,t){let n=document.createElement(`div`);n.style.cssText=`padding:0.25rem 0`;let r=document.createElement(`div`);r.style.cssText=`font-weight:600;font-size:0.8rem;color:var(--sp-text);margin-bottom:4px`,r.textContent=`Scope`,n.appendChild(r);let i=document.createElement(`div`);n.appendChild(i);let a=``;function o(n,r){if(n.isNumeric){let i=document.createElement(`input`);return i.type=`number`,i.min=`1`,i.placeholder=`+`,i.style.cssText=`width:36px;font-size:0.7rem;padding:2px 4px;border:1px dashed var(--sp-border);border-radius:4px;background:transparent;color:var(--sp-text);outline:none;text-align:center`,i.addEventListener(`keydown`,a=>{if(a.key===`Enter`){let a=Number.parseInt(i.value,10);!Number.isNaN(a)&&a>0&&!r.includes(a)&&(e.setProfileScope(t,n.field,[...r,a].sort((e,t)=>e-t)),i.value=``)}}),i}let i=n.options.filter(e=>!r.includes(e));if(!i.length)return;let a=document.createElement(`select`);a.style.cssText=`font-size:0.65rem;padding:2px 4px;border:1px dashed var(--sp-border);border-radius:4px;background:transparent;color:var(--sp-muted);outline:none;cursor:pointer`;let o=document.createElement(`option`);o.value=``,o.textContent=`+`,a.appendChild(o);for(let e of i){let t=document.createElement(`option`);t.value=e,t.textContent=e,a.appendChild(t)}return a.addEventListener(`change`,()=>{a.value&&e.setProfileScope(t,n.field,[...r,a.value])}),a}function s(n,r,i){let a=document.createElement(`div`);a.style.cssText=`margin-bottom:6px`;let s=document.createElement(`div`);s.style.cssText=`font-size:0.7rem;color:var(--sp-muted);margin-bottom:2px`,s.textContent=n.label,a.appendChild(s);let c=document.createElement(`div`);c.style.cssText=`display:flex;flex-wrap:wrap;gap:4px;align-items:center`;for(let a of r){let o=document.createElement(`span`);if(o.className=`re-badge re-badge--accent`,o.style.cssText=`display:inline-flex;align-items:center;gap:3px`,o.textContent=n.isNumeric?`L${a}`:String(a),!i){let i=document.createElement(`span`);i.style.cssText=`cursor:pointer;font-size:0.6rem;opacity:0.7`,i.textContent=`×`,i.addEventListener(`click`,()=>{e.setProfileScope(t,n.field,r.filter(e=>e!==a))}),o.appendChild(i)}c.appendChild(o)}if(!i){let e=o(n,r);e&&c.appendChild(e)}return a.appendChild(c),a}function c(r){i.innerHTML=``;let a=r.draft.awardProfiles?.[t];if(!a)return;let o=r.readonly;for(let e of G8){let t=a[e.field]??[];(!o||t.length)&&i.appendChild(s(e,t,o))}for(let[n,r]of K8){let s=a[n];if(o&&s===void 0)continue;let c=document.createElement(`div`);c.className=J6();let l=document.createElement(`div`);if(l.className=Y6(),l.style.cssText=`min-width:110px;font-size:0.75rem`,l.textContent=r,c.appendChild(l),o){let e=document.createElement(`span`);e.style.cssText=`font-size:0.75rem;color:var(--sp-text)`,e.textContent=String(s),c.appendChild(e)}else{let r=document.createElement(`input`);r.type=`number`,r.className=Z6(),r.style.fontSize=`0.75rem`,r.value=s===void 0?``:String(s),r.placeholder=`—`,r.addEventListener(`change`,()=>{let i=r.value.trim();e.setProfileField(t,n,i?Number.parseInt(i,10):void 0)}),c.appendChild(r)}i.appendChild(c)}let c=i.children.length>0;n.style.display=c?``:`none`}function l(e){let n=e.draft.awardProfiles?.[t],r=G8.map(e=>n?.[e.field]??[]),i=K8.map(([e])=>n?.[e]),o=JSON.stringify([r,i,e.readonly]);o!==a&&(a=o,c(e))}return{element:n,update:l}}function J8(e,t){let n=document.createElement(`div`);n.className=n8();let r=document.createElement(`div`);r.className=r8();let i=document.createElement(`span`);i.className=G6(),i.style.flexShrink=`0`,r.appendChild(i);let a=document.createElement(`input`);a.type=`text`,a.className=i8(),a.addEventListener(`click`,e=>e.stopPropagation()),a.addEventListener(`change`,()=>e.setProfileName(t,a.value)),r.appendChild(a);let o=document.createElement(`div`);o.style.cssText=`flex-grow:1;display:inline-flex;gap:0.25rem;flex-wrap:wrap`,r.appendChild(o);let s=document.createElement(`span`);s.style.cssText=`font-size:0.75rem;color:var(--sp-muted);white-space:nowrap;flex-shrink:0`,r.appendChild(s);let c=document.createElement(`div`);c.className=o8();let l=document.createElement(`button`);l.className=s8(),l.textContent=`⎘`,l.title=`Duplicate profile`,l.addEventListener(`click`,n=>{n.stopPropagation(),e.duplicateProfile(t)});let u=document.createElement(`button`);u.className=c8(),u.textContent=`✕`,u.title=`Delete profile`,u.addEventListener(`click`,n=>{n.stopPropagation(),e.removeProfile(t)}),c.appendChild(l),c.appendChild(u),r.appendChild(c),r.addEventListener(`click`,()=>e.toggleProfile(t)),n.appendChild(r);let d=document.createElement(`div`);d.className=a8();let f=document.createElement(`div`);f.style.cssText=`font-weight:600;font-size:0.85rem;color:var(--sp-text);margin-bottom:6px`,d.appendChild(f);let p=M8(e,t);d.appendChild(p.element);let m=H8(e,t);d.appendChild(m.element);let h=U8(e,t);d.appendChild(h.element);let g=q8(e,t);d.appendChild(g.element);let _=document.createElement(`div`);_.style.cssText=`padding:0.25rem 0;font-size:0.75rem;color:var(--sp-muted)`,d.appendChild(_),n.appendChild(d);function v(e){let r=e.draft.awardProfiles?.[t];if(!r){n.style.display=`none`;return}n.style.display=``;let l=e.expandedProfiles.has(t),u=e.readonly;i.textContent=l?`▼`:`▶`;let v=r.profileName||`Profile ${t+1}`;document.activeElement!==a&&(a.value=v),a.title=v,a.disabled=u,o.innerHTML=``;let y=W8(r);if(y.style.flexGrow=`1`,o.appendChild(y),s.textContent=l?``:E8(r),c.style.display=u?`none`:`flex`,d.style.display=l?``:`none`,l){f.textContent=v,p.update(e),m.update(e),h.update(e),g.update(e);let t=[];r.requireWinForPoints!==void 0&&t.push(`requireWin: ${r.requireWinForPoints}`),r.requireWinFirstRound!==void 0&&t.push(`requireWinR1: ${r.requireWinFirstRound}`),_.textContent=t.join(` | `),_.style.display=t.length?``:`none`}}return{element:n,update:v}}function Y8(e,t){let n=document.createElement(`div`);n.className=u8();let r=h8(e),i=p8(e),a=f8(e),o=[{id:`metadata`,label:`Metadata`},{id:`awardProfiles`,label:`Award Profiles`,countFn:e=>e.draft.awardProfiles?.length??0},{id:`qualityWinProfiles`,label:`Quality Win Profiles`,countFn:e=>e.draft.qualityWinProfiles?.length??0},{id:`aggregationRules`,label:`Aggregation Rules`}],s=[];for(let t of o){let o=document.createElement(`div`);o.className=U6();let c=document.createElement(`div`);c.className=W6();let l=document.createElement(`span`);l.className=G6();let u=document.createElement(`span`);u.textContent=t.label;let d=document.createElement(`span`);d.className=K6(),c.appendChild(l),c.appendChild(u),c.appendChild(d),c.addEventListener(`click`,()=>e.toggleSection(t.id));let f=document.createElement(`div`);f.className=q6(),t.id===`metadata`&&f.appendChild(r.element),t.id===`qualityWinProfiles`&&f.appendChild(i.element),t.id===`aggregationRules`&&f.appendChild(a.element),o.appendChild(c),o.appendChild(f),n.appendChild(o),s.push({id:t.id,chevron:l,countEl:d,bodyEl:f})}let c=[],l=-1,u=``,d=null;function f(e,t){for(let n=0;n<o.length;n++){let r=o[n],i=s[n],a=e.has(r.id);if(i.chevron.textContent=a?`▼`:`▶`,i.bodyEl.style.display=a?`block`:`none`,r.countFn){let e=r.countFn(t);i.countEl.textContent=e?`(${e})`:``}}}function p(t,n){let r=s[1].bodyEl;r.innerHTML=``,c=[];let i=t.draft.awardProfiles??[],a=0;for(let t=0;t<i.length;t++){let o=i[t];if(n&&![o.profileName??``,...o.eventTypes??[],...o.stages??[],...(o.levels??[]).map(e=>`L${e}`),...o.drawTypes??[]].join(` `).toLowerCase().includes(n))continue;let s=J8(e,t);c.push(s),r.appendChild(s.element),a++}if(!a){let e=document.createElement(`div`);e.className=l8(),e.textContent=n?`No profiles match filter`:`No award profiles defined`,r.appendChild(e)}t.readonly||(d=document.createElement(`button`),d.className=`sp-btn sp-btn--sm sp-btn--outline re-add-btn`,d.textContent=`+ Add Profile`,d.addEventListener(`click`,()=>e.addProfile()),r.appendChild(d))}return{element:n,update:e=>{let{draft:t,expandedSections:n,profileFilter:o}=e;if(f(n,e),n.has(`metadata`)&&r.update(e),n.has(`awardProfiles`)){let n=t.awardProfiles?.length??0,r=o.toLowerCase();(n!==l||r!==u)&&(l=n,u=r,p(e,r));for(let t of c)t.update(e);d&&(d.style.display=e.readonly?`none`:``)}n.has(`qualityWinProfiles`)&&i.update(e),n.has(`aggregationRules`)&&a.update(e)}}}var X8=class e{constructor(e){this.container=null,this.store=new H6(e),this.panel=Y8(this.store,e),this.unsubscribe=this.store.subscribe(e=>{this.panel.update(e)}),this.panel.update(this.store.getState())}render(e){this.container=e,e.appendChild(this.panel.element)}destroy(){this.unsubscribe(),this.container&&this.panel.element.parentNode===this.container&&this.panel.element.remove(),this.container=null}getData(){return this.store.getData()}setData(e){this.store.setData(e)}getStore(){return this.store}static createEditorInstance(t){let n={initialPolicy:t.initialData,onChange:e=>t.onChange(e),readonly:t.readonly},r=new e(n);return{element:r.panel.element,setData(e){r.setData(e)},getData(){return r.getData()},destroy(){r.destroy()}}}};function Z8(e){return Q8[e]??e}var Q8={"SET3-S:6/TB7":`Best of 3 TB sets`,"SET3-S:6/TB7-F:TB10":`2 TB sets, MTB10`,"SET3-S:6/TB7-F:TB7":`2 TB sets, MTB7`,"SET3-S:4NOAD-F:TB7":`2 short sets (4, NOAD), MTB7`,"SET3-S:4/TB7":`Best of 3 short sets (4)`,"SET3-S:4/TB7-F:TB7":`2 short sets (4), MTB7`,"SET3-S:4/TB7-F:TB10":`2 short sets (4), MTB10`,"SET3-S:4/TB5@3":`3 short sets (4), TB5@3`,"SET1-S:8/TB7":`8-game pro-set, TB7`,"SET1-S:8/TB7@7":`8-game pro-set, TB7@7`,"SET1-S:5/TB9@4":`1 set to 5, TB9@4`,"SET1-S:6/TB7":`1 TB set`,"SET1-S:6NOAD":`1 set to 6, NOAD`,"SET1-S:4/TB7":`1 short set (4), TB7`,"SET1-S:4/TB5@3":`1 short set (4), TB5@3`,"SET1-S:4NOAD":`1 short set (4), NOAD`,"SET3-S:TB10":`Best of 3 TB10 games`,"SET1-S:T20":`Timed 20 min`,"SET1-S:TB10":`1 TB10 game`,"SET5-S:6/TB7":`Best of 5 TB sets`,"SET5-S:6/TB7-F:TB10":`5 sets, MTB10`,"SET1-S:6/TB10":`1 set, TB10`,"SET1-S:8":`Pro-set to 8`,"SET1-S:10":`Pro-set to 10`,"SET1-S:T7":`TB7 only`,"SET1-S:T21":`TB21 only`};function $8(){return{allowModificationWhenMatchUpsScheduled:{courts:!1,venues:!1},defaultTimes:{averageTimes:[{categoryNames:[],minutes:{default:90}}],recoveryTimes:[{minutes:{default:60}}]},defaultDailyLimits:{SINGLES:2,DOUBLES:2,total:3},matchUpAverageTimes:[],matchUpRecoveryTimes:[],matchUpDailyLimits:[]}}function e5(e){return structuredClone(e)}var t5=class{constructor(e){this.listeners=new Set,this.config=e,this.state={draft:e5(e.initialPolicy??$8()),expandedSections:new Set([`modificationFlags`,`dailyLimits`,`defaultTimes`,`averageTimes`,`recoveryTimes`]),dirty:!1}}getState(){return this.state}getData(){return e5(this.state.draft)}setData(e){this.state={...this.state,draft:e5(e),dirty:!1},this.emit()}toggleSection(e){let t=new Set(this.state.expandedSections);t.has(e)?t.delete(e):t.add(e),this.state={...this.state,expandedSections:t},this.emit()}setModificationFlag(e,t){let n=e5(this.state.draft);n.allowModificationWhenMatchUpsScheduled||={courts:!1,venues:!1},n.allowModificationWhenMatchUpsScheduled[e]=t,this.commitDraft(n)}setDailyLimit(e,t){let n=e5(this.state.draft);n.defaultDailyLimits||={},n.defaultDailyLimits[e]=t,this.commitDraft(n)}setDefaultAverageTime(e,t,n){let r=e5(this.state.draft);r.defaultTimes||={},r.defaultTimes.averageTimes||(r.defaultTimes.averageTimes=[{categoryNames:[],minutes:{default:90}}]);let i=r.defaultTimes.averageTimes[e];i&&(t===`DOUBLES`?n===void 0?delete i.minutes.DOUBLES:i.minutes.DOUBLES=n:i.minutes.default=n??0,this.commitDraft(r))}setDefaultRecoveryTime(e,t,n){let r=e5(this.state.draft);r.defaultTimes||={},r.defaultTimes.recoveryTimes||(r.defaultTimes.recoveryTimes=[{minutes:{default:60}}]);let i=r.defaultTimes.recoveryTimes[e];i&&(t===`DOUBLES`?n===void 0?delete i.minutes.DOUBLES:i.minutes.DOUBLES=n:i.minutes.default=n??0,this.commitDraft(r))}addAverageFormatGroup(){let e=e5(this.state.draft);e.matchUpAverageTimes||=[],e.matchUpAverageTimes.push({matchUpFormatCodes:[],averageTimes:[{categoryNames:[],minutes:{default:60}}]}),this.commitDraft(e)}removeAverageFormatGroup(e){let t=e5(this.state.draft);t.matchUpAverageTimes&&(t.matchUpAverageTimes.splice(e,1),this.commitDraft(t))}setAverageFormatCodes(e,t){let n=e5(this.state.draft),r=n.matchUpAverageTimes?.[e];r&&(r.matchUpFormatCodes=t,this.commitDraft(n))}setAverageTime(e,t,n,r){let i=e5(this.state.draft),a=i.matchUpAverageTimes?.[e]?.averageTimes?.[t];a&&(n===`DOUBLES`?r===void 0?delete a.minutes.DOUBLES:a.minutes.DOUBLES=r:a.minutes.default=r??0,this.commitDraft(i))}addAverageCategoryOverride(e){let t=e5(this.state.draft),n=t.matchUpAverageTimes?.[e];n&&(n.averageTimes.push({categoryTypes:[],minutes:{default:60}}),this.commitDraft(t))}removeAverageCategoryOverride(e,t){let n=e5(this.state.draft),r=n.matchUpAverageTimes?.[e];r&&(r.averageTimes.splice(t,1),this.commitDraft(n))}setAverageOverrideCategories(e,t,n,r){let i=e5(this.state.draft),a=i.matchUpAverageTimes?.[e]?.averageTimes?.[t];a&&(n===`categoryNames`?(delete a.categoryTypes,a.categoryNames=r):(delete a.categoryNames,a.categoryTypes=r),this.commitDraft(i))}addRecoveryFormatGroup(){let e=e5(this.state.draft);e.matchUpRecoveryTimes||=[],e.matchUpRecoveryTimes.push({matchUpFormatCodes:[],recoveryTimes:[{categoryNames:[],minutes:{default:30}}]}),this.commitDraft(e)}removeRecoveryFormatGroup(e){let t=e5(this.state.draft);t.matchUpRecoveryTimes&&(t.matchUpRecoveryTimes.splice(e,1),this.commitDraft(t))}setRecoveryFormatCodes(e,t){let n=e5(this.state.draft),r=n.matchUpRecoveryTimes?.[e];r&&(r.matchUpFormatCodes=t,this.commitDraft(n))}setRecoveryTime(e,t,n,r){let i=e5(this.state.draft),a=i.matchUpRecoveryTimes?.[e]?.recoveryTimes?.[t];a&&(n===`DOUBLES`?r===void 0?delete a.minutes.DOUBLES:a.minutes.DOUBLES=r:a.minutes.default=r??0,this.commitDraft(i))}addRecoveryCategoryOverride(e){let t=e5(this.state.draft),n=t.matchUpRecoveryTimes?.[e];n&&(n.recoveryTimes.push({categoryTypes:[],minutes:{default:30}}),this.commitDraft(t))}removeRecoveryCategoryOverride(e,t){let n=e5(this.state.draft),r=n.matchUpRecoveryTimes?.[e];r&&(r.recoveryTimes.splice(t,1),this.commitDraft(n))}setRecoveryOverrideCategories(e,t,n,r){let i=e5(this.state.draft),a=i.matchUpRecoveryTimes?.[e]?.recoveryTimes?.[t];a&&(n===`categoryNames`?(delete a.categoryTypes,a.categoryNames=r):(delete a.categoryNames,a.categoryTypes=r),this.commitDraft(i))}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}commitDraft(e){this.state={...this.state,draft:e,dirty:!0},this.emit(),this.config.onChange?.(e5(e))}emit(){for(let e of this.listeners)e(this.state)}},n5=()=>`se-section`,r5=()=>`se-section-header`,i5=()=>`se-section-chevron`,a5=()=>`se-section-body`,o5=()=>`se-field-row`,s5=()=>`se-field-label`,c5=()=>`se-field-input`,l5=()=>`se-field-unit`,u5=()=>`se-checkbox-row`,d5=()=>`se-format-group`,f5=()=>`se-format-group-header`,p5=()=>`se-format-group-label`,m5=()=>`se-tag-picker`,h5=()=>`sp-chip`,g5=()=>`sp-chip__remove`,_5=()=>`se-tag-add-wrap`,v5=()=>`sp-btn-icon`,y5=()=>`se-override-row`,b5=()=>`se-override-categories`,x5=()=>`se-override-remove`,S5=()=>`sp-btn sp-btn--sm sp-btn--outline se-add-btn`,C5=()=>`sp-btn-icon sp-btn-icon--danger`,w5=()=>`se-editor`;function T5(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=u5();let r=document.createElement(`input`);r.type=`checkbox`,r.id=`se-mod-courts`;let i=document.createElement(`label`);i.htmlFor=`se-mod-courts`,i.textContent=`Allow court modifications when matchUps scheduled`,r.addEventListener(`change`,()=>{e.setModificationFlag(`courts`,r.checked)}),n.appendChild(r),n.appendChild(i);let a=document.createElement(`div`);a.className=u5();let o=document.createElement(`input`);o.type=`checkbox`,o.id=`se-mod-venues`;let s=document.createElement(`label`);s.htmlFor=`se-mod-venues`,s.textContent=`Allow venue modifications when matchUps scheduled`,o.addEventListener(`change`,()=>{e.setModificationFlag(`venues`,o.checked)}),a.appendChild(o),a.appendChild(s),t.appendChild(n),t.appendChild(a);function c(e){let t=e.draft.allowModificationWhenMatchUpsScheduled;r.checked=t?.courts??!1,o.checked=t?.venues??!1}return{element:t,update:c}}var E5=`is-success`,D5=`is-danger`;function O5(e){if(e===``)return!0;let t=parseInt(e,10);return!isNaN(t)&&t>=0&&String(t)===e.trim()}function k5(e,t){if(t===``){e.classList.remove(E5,D5);return}O5(t)?(e.classList.remove(D5),e.classList.add(E5)):(e.classList.remove(E5),e.classList.add(D5))}function A5(e){let t=document.createElement(`div`),n=[];for(let[r,i]of[[`SINGLES`,`Singles limit`],[`DOUBLES`,`Doubles limit`],[`total`,`Total limit`]]){let a=document.createElement(`div`);a.className=o5();let o=document.createElement(`div`);o.className=s5(),o.textContent=i;let s=document.createElement(`input`);s.type=`text`,s.className=c5(),s.placeholder=`0`,s.addEventListener(`input`,()=>{k5(s,s.value)}),s.addEventListener(`change`,()=>{let t=parseInt(s.value,10);!isNaN(t)&&t>=0&&e.setDailyLimit(r,t)}),a.appendChild(o),a.appendChild(s),t.appendChild(a),n.push({key:r,label:i,input:s})}function r(e){let t=e.draft.defaultDailyLimits;for(let e of n){let n=t?.[e.key];document.activeElement!==e.input&&(e.input.value=n===void 0?``:String(n))}}return{element:t,update:r}}var j5=`is-success`,M5=`is-danger`;function N5(e){if(e===``)return!0;let t=parseInt(e,10);return!isNaN(t)&&t>=0&&String(t)===e.trim()}function P5(e,t,n){if(t===``&&n){e.classList.remove(j5,M5);return}N5(t)&&(t!==``||n)?(e.classList.remove(M5),e.classList.add(j5)):(e.classList.remove(j5),e.classList.add(M5))}function F5(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.style.cssText=`font-size:11px;font-weight:700;color:var(--sp-muted);margin-bottom:6px;`,n.textContent=`Default Average Times`,t.appendChild(n);let r=I5(`Default`,`min`,!1),i=I5(`Doubles override`,`min`,!0);t.appendChild(r.row),t.appendChild(i.row),r.input.addEventListener(`input`,()=>{P5(r.input,r.input.value,!1)}),r.input.addEventListener(`change`,()=>{let t=parseInt(r.input.value,10);!isNaN(t)&&t>=0&&e.setDefaultAverageTime(0,`default`,t)}),i.input.addEventListener(`input`,()=>{P5(i.input,i.input.value,!0)}),i.input.addEventListener(`change`,()=>{let t=i.input.value.trim();if(t===``||t===`-`)e.setDefaultAverageTime(0,`DOUBLES`,void 0);else{let n=parseInt(t,10);!isNaN(n)&&n>=0&&e.setDefaultAverageTime(0,`DOUBLES`,n)}});let a=document.createElement(`div`);a.style.height=`12px`,t.appendChild(a);let o=document.createElement(`div`);o.style.cssText=`font-size:11px;font-weight:700;color:var(--sp-muted);margin-bottom:6px;`,o.textContent=`Default Recovery Times`,t.appendChild(o);let s=I5(`Default`,`min`,!1),c=I5(`Doubles override`,`min`,!0);t.appendChild(s.row),t.appendChild(c.row),s.input.addEventListener(`input`,()=>{P5(s.input,s.input.value,!1)}),s.input.addEventListener(`change`,()=>{let t=parseInt(s.input.value,10);!isNaN(t)&&t>=0&&e.setDefaultRecoveryTime(0,`default`,t)}),c.input.addEventListener(`input`,()=>{P5(c.input,c.input.value,!0)}),c.input.addEventListener(`change`,()=>{let t=c.input.value.trim();if(t===``||t===`-`)e.setDefaultRecoveryTime(0,`DOUBLES`,void 0);else{let n=parseInt(t,10);!isNaN(n)&&n>=0&&e.setDefaultRecoveryTime(0,`DOUBLES`,n)}});function l(e){let t=e.draft.defaultTimes?.averageTimes?.[0];document.activeElement!==r.input&&(r.input.value=t?String(t.minutes.default):``),document.activeElement!==i.input&&(i.input.value=t?.minutes.DOUBLES===void 0?``:String(t.minutes.DOUBLES)),i.input.placeholder=`—`;let n=e.draft.defaultTimes?.recoveryTimes?.[0];document.activeElement!==s.input&&(s.input.value=n?String(n.minutes.default):``),document.activeElement!==c.input&&(c.input.value=n?.minutes.DOUBLES===void 0?``:String(n.minutes.DOUBLES)),c.input.placeholder=`—`}return{element:t,update:l}}function I5(e,t,n){let r=document.createElement(`div`);r.className=o5();let i=document.createElement(`div`);i.className=s5(),i.textContent=e;let a=document.createElement(`input`);a.type=`text`,a.className=c5(),a.placeholder=n?`—`:`0`;let o=document.createElement(`div`);return o.className=l5(),o.textContent=t,r.appendChild(i),r.appendChild(a),r.appendChild(o),{row:r,input:a}}var L5=`is-success`,R5=`is-danger`;function z5(e){if(e===``)return!0;let t=parseInt(e,10);return!isNaN(t)&&t>=0&&String(t)===e.trim()}function B5(e,t,n){if(t===``&&n){e.classList.remove(L5,R5);return}z5(t)&&(t!==``||n)?(e.classList.remove(R5),e.classList.add(L5)):(e.classList.remove(L5),e.classList.add(R5))}function V5(e){let t=document.createElement(`div`);t.className=d5();let n=document.createElement(`div`);n.className=f5();let r=document.createElement(`div`);r.style.flex=`1`;let i=document.createElement(`div`);i.className=p5(),i.textContent=`Formats`,r.appendChild(i);let a=document.createElement(`div`);a.className=m5();for(let t of e.formatCodes){let n=document.createElement(`span`);n.className=h5(),n.title=`${t} — click to edit`;let r=document.createElement(`span`);r.textContent=Z8(t),n.addEventListener(`click`,()=>{Ko({existingMatchUpFormat:t,callback:n=>{if(!n||n===t)return;let r=e.formatCodes.map(e=>e===t?n:e);e.onFormatCodesChange(r)}})});let i=document.createElement(`span`);i.className=g5(),i.textContent=`×`,i.addEventListener(`click`,n=>{n.stopPropagation(),e.onFormatCodesChange(e.formatCodes.filter(e=>e!==t))}),n.appendChild(r),n.appendChild(i),a.appendChild(n)}let o=document.createElement(`div`);o.className=_5();let s=document.createElement(`button`);s.className=v5(),s.textContent=`+`,s.type=`button`,s.title=`Add format code`,s.addEventListener(`click`,t=>{t.stopPropagation(),Ko({existingMatchUpFormat:`SET3-S:6/TB7`,callback:t=>{t&&!e.formatCodes.includes(t)&&e.onFormatCodesChange([...e.formatCodes,t])}})}),o.appendChild(s),a.appendChild(o),r.appendChild(a);let c=document.createElement(`button`);c.className=C5(),c.textContent=`×`,c.type=`button`,c.title=`Remove format group`,c.addEventListener(`click`,()=>e.onRemoveGroup()),n.appendChild(r),n.appendChild(c),t.appendChild(n);for(let n=0;n<e.overrides.length;n++){let r=e.overrides[n],i=document.createElement(`div`);i.className=y5();let a=document.createElement(`div`);a.className=`${b5()}${r.isDefault?` all`:``}`,a.textContent=r.categoryLabel;let o=document.createElement(`input`);o.type=`text`,o.className=c5(),o.value=String(r.defaultMinutes),o.placeholder=`0`;let s=n;o.addEventListener(`input`,()=>{B5(o,o.value,!1)}),o.addEventListener(`change`,()=>{let t=parseInt(o.value,10);!isNaN(t)&&t>=0&&e.onTimeChange(s,`default`,t)});let c=document.createElement(`span`);c.className=l5(),c.textContent=`min`;let l=document.createElement(`span`);l.style.cssText=`font-size:11px;color:var(--sp-muted);margin-left:8px;`,l.textContent=`Doubles:`;let u=document.createElement(`input`);if(u.type=`text`,u.className=c5(),u.value=r.doublesMinutes===void 0?``:String(r.doublesMinutes),u.placeholder=`—`,u.addEventListener(`input`,()=>{B5(u,u.value,!0)}),u.addEventListener(`change`,()=>{let t=u.value.trim();if(t===``||t===`-`)e.onTimeChange(s,`DOUBLES`,void 0);else{let n=parseInt(t,10);!isNaN(n)&&n>=0&&e.onTimeChange(s,`DOUBLES`,n)}}),i.appendChild(a),i.appendChild(o),i.appendChild(c),i.appendChild(l),i.appendChild(u),!r.isDefault){let t=document.createElement(`span`);t.className=x5(),t.textContent=`×`,t.addEventListener(`click`,()=>e.onRemoveOverride(s)),i.appendChild(t)}t.appendChild(i)}let l=document.createElement(`button`);return l.className=S5(),l.textContent=`+ Add Override`,l.type=`button`,l.addEventListener(`click`,()=>e.onAddOverride()),t.appendChild(l),t}function H5(e,t){let n=document.createElement(`div`),r=document.createElement(`div`);n.appendChild(r);let i=document.createElement(`button`);i.className=S5(),i.textContent=`+ Add Format Group`,i.type=`button`,i.addEventListener(`click`,()=>e.addAverageFormatGroup()),n.appendChild(i);function a(n){r.innerHTML=``;let i=n.draft.matchUpAverageTimes??[];for(let n=0;n<i.length;n++){let a=i[n],o=a.averageTimes.map((e,t)=>{let n=e.categoryTypes??e.categoryNames??[];return{categoryLabel:n.length===0&&t===0?`All categories`:n.join(`, `)||`All categories`,isDefault:n.length===0&&t===0,defaultMinutes:e.minutes.default,doublesMinutes:e.minutes.DOUBLES}}),s=n,c=V5({formatCodes:a.matchUpFormatCodes,overrides:o,availableFormats:t.matchUpFormatCodes??U5(),onFormatCodesChange:t=>e.setAverageFormatCodes(s,t),onTimeChange:(t,n,r)=>e.setAverageTime(s,t,n,r),onAddOverride:()=>e.addAverageCategoryOverride(s),onRemoveOverride:t=>e.removeAverageCategoryOverride(s,t),onRemoveGroup:()=>e.removeAverageFormatGroup(s)});r.appendChild(c)}if(i.length===0){let e=document.createElement(`div`);e.style.cssText=`font-size:12px;color:var(--sp-muted);padding:8px 0;`,e.textContent=`No format-specific average times configured. Add a format group to set per-format times.`,r.appendChild(e)}}return{element:n,update:a}}function U5(){return[`SET3-S:6/TB7`,`SET3-S:6/TB7-F:TB10`,`SET3-S:6/TB7-F:TB7`,`SET3-S:4NOAD-F:TB7`,`SET3-S:4/TB7`,`SET3-S:4/TB7-F:TB7`,`SET3-S:4/TB7-F:TB10`,`SET3-S:4/TB5@3`,`SET1-S:8/TB7`,`SET1-S:8/TB7@7`,`SET1-S:5/TB9@4`,`SET1-S:6/TB7`,`SET1-S:6NOAD`,`SET1-S:4/TB7`,`SET1-S:4/TB5@3`,`SET1-S:4NOAD`,`SET3-S:TB10`,`SET1-S:T20`,`SET1-S:TB10`]}function W5(e,t){let n=document.createElement(`div`),r=document.createElement(`div`);n.appendChild(r);let i=document.createElement(`button`);i.className=S5(),i.textContent=`+ Add Format Group`,i.type=`button`,i.addEventListener(`click`,()=>e.addRecoveryFormatGroup()),n.appendChild(i);function a(n){r.innerHTML=``;let i=n.draft.matchUpRecoveryTimes??[];for(let n=0;n<i.length;n++){let a=i[n],o=a.recoveryTimes.map((e,t)=>{let n=e.categoryTypes??e.categoryNames??[];return{categoryLabel:n.length===0&&t===0?`All categories`:n.join(`, `)||`All categories`,isDefault:n.length===0&&t===0,defaultMinutes:e.minutes.default,doublesMinutes:e.minutes.DOUBLES}}),s=n,c=V5({formatCodes:a.matchUpFormatCodes,overrides:o,availableFormats:t.matchUpFormatCodes??G5(),onFormatCodesChange:t=>e.setRecoveryFormatCodes(s,t),onTimeChange:(t,n,r)=>e.setRecoveryTime(s,t,n,r),onAddOverride:()=>e.addRecoveryCategoryOverride(s),onRemoveOverride:t=>e.removeRecoveryCategoryOverride(s,t),onRemoveGroup:()=>e.removeRecoveryFormatGroup(s)});r.appendChild(c)}if(i.length===0){let e=document.createElement(`div`);e.style.cssText=`font-size:12px;color:var(--sp-muted);padding:8px 0;`,e.textContent=`No format-specific recovery times configured. Add a format group to set per-format recovery.`,r.appendChild(e)}}return{element:n,update:a}}function G5(){return[`SET3-S:6/TB7`,`SET3-S:6/TB7-F:TB10`,`SET3-S:6/TB7-F:TB7`,`SET3-S:4NOAD-F:TB7`,`SET3-S:4/TB7`,`SET3-S:4/TB7-F:TB7`,`SET3-S:4/TB7-F:TB10`,`SET3-S:4/TB5@3`,`SET1-S:8/TB7`,`SET1-S:8/TB7@7`,`SET1-S:5/TB9@4`,`SET1-S:6/TB7`,`SET1-S:6NOAD`,`SET1-S:4/TB7`,`SET1-S:4/TB5@3`,`SET1-S:4NOAD`,`SET3-S:TB10`,`SET1-S:T20`,`SET1-S:TB10`]}function K5(e,t){let n=document.createElement(`div`);n.className=w5();let r=[{id:`modificationFlags`,label:`Modification Flags`,factory:()=>T5(e)},{id:`dailyLimits`,label:`Daily Limits`,factory:()=>A5(e)},{id:`defaultTimes`,label:`Default Times`,factory:()=>F5(e)},{id:`averageTimes`,label:`Match Average Times`,factory:()=>H5(e,t)},{id:`recoveryTimes`,label:`Match Recovery Times`,factory:()=>W5(e,t)}],i=[];for(let t of r){let r=document.createElement(`div`);r.className=n5();let a=document.createElement(`div`);a.className=r5();let o=document.createElement(`span`);o.className=i5();let s=document.createElement(`span`);s.textContent=t.label,a.appendChild(o),a.appendChild(s),a.addEventListener(`click`,()=>e.toggleSection(t.id));let c=document.createElement(`div`);c.className=a5();let l=t.factory();c.appendChild(l.element),r.appendChild(a),r.appendChild(c),n.appendChild(r),i.push({id:t.id,chevron:o,bodyEl:c,inner:l})}function a(e){for(let t of i){let n=e.expandedSections.has(t.id);t.chevron.textContent=n?`▼`:`▶`,t.bodyEl.style.display=n?`block`:`none`,n&&t.inner.update(e)}}return{element:n,update:a}}var q5=class e{constructor(e){this.container=null,this.store=new t5(e),this.panel=K5(this.store,e),this.unsubscribe=this.store.subscribe(e=>{this.panel.update(e)}),this.panel.update(this.store.getState())}render(e){this.container=e,e.appendChild(this.panel.element)}destroy(){this.unsubscribe(),this.container&&this.panel.element.parentNode===this.container&&this.container.removeChild(this.panel.element),this.container=null}getData(){return this.store.getData()}setData(e){this.store.setData(e)}getStore(){return this.store}static createEditorInstance(t){let n={initialPolicy:t.initialData,onChange:e=>t.onChange(e)},r=new e(n);return{element:r.panel.element,setData(e){r.setData(e)},getData(){return r.getData()},destroy(){r.destroy()}}}};function J5(e,t){let n=new q5(e);return n.render(t),n}var Y5=Mo,X5=(()=>{let e=new Map;for(let t of Y5)t.format&&e.set(t.format,t);return e})();function Z5(e){if(e)return X5.get(e)}var Q5=Y5.filter(e=>e.format&&e.name).sort((e,t)=>(e.name??``).localeCompare(t.name??``));function $5(e){return typeof e==`string`?e:e.matchUpFormat}function e7(e){return(typeof e==`string`?``:e.name??``)||(Z5($5(e))?.name??``)}function t7(e){return(typeof e==`string`?``:e.description??``)||(Z5($5(e))?.desc??``)}function n7(e){return typeof e==`string`?{matchUpFormat:e}:{...e}}var r7=`SET3-S:6/TB7`;function i7(){return{defaultMatchUpFormat:r7,matchUpFormats:[],requireParticipantsForScoring:!1,allowChangePropagation:!1,allowDeletionWithScoresPresent:{drawDefinitions:!1,structures:!1},matchUpStatusCodes:{ABANDONED:[],CANCELLED:[],DEFAULTED:[],INCOMPLETE:[],RETIRED:[],WALKOVER:[]}}}function a7(e){return structuredClone(e)}var o7=class{constructor(e){this.listeners=new Set,this.config=e,this.state={draft:a7(e.initialPolicy??i7()),expandedSections:new Set([`defaults`,`allowedFormats`]),expandedStatuses:new Set,advancedOpen:!1,dirty:!1}}isReadonly(){return this.config.readonly===!0}getState(){return this.state}getData(){return a7(this.state.draft)}setData(e){this.state={...this.state,draft:a7(e),dirty:!1},this.emit()}toggleSection(e){let t=new Set(this.state.expandedSections);t.has(e)?t.delete(e):t.add(e),this.state={...this.state,expandedSections:t},this.emit()}toggleStatus(e){let t=new Set(this.state.expandedStatuses);t.has(e)?t.delete(e):t.add(e),this.state={...this.state,expandedStatuses:t},this.emit()}setAdvancedOpen(e){this.state.advancedOpen!==e&&(this.state={...this.state,advancedOpen:e},this.emit())}setDefaultMatchUpFormat(e){if(this.isReadonly())return;let t=a7(this.state.draft);t.defaultMatchUpFormat=e,this.commitDraft(t)}setRequireParticipants(e){if(this.isReadonly())return;let t=a7(this.state.draft);t.requireParticipantsForScoring=e,this.commitDraft(t)}setRequireAllPositions(e){if(this.isReadonly())return;let t=a7(this.state.draft);e==="default"?delete t.requireAllPositionsAssigned:t.requireAllPositionsAssigned=e===`true`,this.commitDraft(t)}setAllowChangePropagation(e){if(this.isReadonly())return;let t=a7(this.state.draft);t.allowChangePropagation=e,this.commitDraft(t)}setAllowDeletionDraws(e){if(this.isReadonly())return;let t=a7(this.state.draft);t.allowDeletionWithScoresPresent??={},t.allowDeletionWithScoresPresent.drawDefinitions=e,this.commitDraft(t)}setAllowDeletionStructures(e){if(this.isReadonly())return;let t=a7(this.state.draft);t.allowDeletionWithScoresPresent??={},t.allowDeletionWithScoresPresent.structures=e,this.commitDraft(t)}addAllowedFormat(e){if(this.isReadonly())return;let t=a7(this.state.draft);t.matchUpFormats??=[];let n={matchUpFormat:``,...e};t.matchUpFormats.push(n),this.commitDraft(t)}removeAllowedFormat(e){if(this.isReadonly())return;let t=a7(this.state.draft);t.matchUpFormats&&(t.matchUpFormats.splice(e,1),this.commitDraft(t))}setAllowedFormatField(e,t,n){if(this.isReadonly())return;let r=a7(this.state.draft);if(!r.matchUpFormats?.[e])return;let i=n7(r.matchUpFormats[e]);t===`name`?i.name=n:t===`description`?i.description=n:i.matchUpFormat=n,i.name===``&&delete i.name,i.description===``&&delete i.description,r.matchUpFormats[e]=i,this.commitDraft(r)}isAllowedFormatDuplicate(e,t){let n=e.trim();return n?(this.state.draft.matchUpFormats??[]).some((e,r)=>r!==t&&$5(e)===n):!1}addAllowedFormatCategory(e,t,n){if(this.isReadonly())return;let r=n.trim();if(!r)return;let i=a7(this.state.draft);if(!i.matchUpFormats?.[e])return;let a=n7(i.matchUpFormats[e]);a[t]??=[],!a[t].includes(r)&&(a[t].push(r),i.matchUpFormats[e]=a,this.commitDraft(i))}removeAllowedFormatCategory(e,t,n){if(this.isReadonly())return;let r=a7(this.state.draft),i=r.matchUpFormats?.[e];if(!i)return;let a=n7(i),o=a[t];o&&(o.splice(n,1),o.length===0&&delete a[t],r.matchUpFormats[e]=a,this.commitDraft(r))}addStatusCode(e,t){if(this.isReadonly())return;let n=t.trim();if(!n)return;let r=a7(this.state.draft);r.matchUpStatusCodes??={},r.matchUpStatusCodes[e]??=[],!r.matchUpStatusCodes[e].some(e=>ff(e)===n)&&(r.matchUpStatusCodes[e].push({matchUpStatusCode:n}),this.commitDraft(r))}removeStatusCode(e,t){if(this.isReadonly())return;let n=a7(this.state.draft),r=n.matchUpStatusCodes?.[e];r&&(r.splice(t,1),this.commitDraft(n))}addProcessCode(e){if(this.isReadonly())return;let t=e.trim();if(!t)return;let n=a7(this.state.draft);n.processCodes??={},n.processCodes.incompleteAssignmentsOnDefault??=[],!n.processCodes.incompleteAssignmentsOnDefault.includes(t)&&(n.processCodes.incompleteAssignmentsOnDefault.push(t),this.commitDraft(n))}removeProcessCode(e){if(this.isReadonly())return;let t=a7(this.state.draft),n=t.processCodes?.incompleteAssignmentsOnDefault;n&&(n.splice(e,1),this.commitDraft(t))}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}commitDraft(e){this.state={...this.state,draft:e,dirty:!0},this.emit(),this.config.onChange?.(a7(e))}emit(){for(let e of this.listeners)e(this.state)}},s7=`__custom__`,c7=`standard`,l7=`tiebreak`,u7=`timed`,d7=`sc-format-row`,f7=`sc-format-label`,p7=`sc-format-select`;function m7(){return{bestOf:3,setType:c7,setTo:6,hasTiebreak:!0,tiebreakTo:7,tiebreakAt:`same`,noAd:!1,tbOnlyTo:11,tbOnlyModifier:``,tbOnlyNoAd:!1,minutes:20,timedBasis:`G`,differentFinal:!1,finalKind:`matchTiebreak`,finalSetTo:6,finalTbTo:7,finalMatchTbTo:10}}function h7(e){let n=m7(),r=t.matchUpFormatCode.parse?.(e);return r?(typeof r.bestOf==`number`&&(n.bestOf=r.bestOf),r.setFormat&&g7(n,r.setFormat),r.finalSetFormat&&_7(n,r.finalSetFormat),n):n}function g7(e,t){if(t.timed){e.setType=u7,typeof t.minutes==`number`&&(e.minutes=t.minutes),e.timedBasis=t.based===`P`?`P`:`G`;return}if(t.tiebreakSet){e.setType=l7,typeof t.tiebreakSet.tiebreakTo==`number`&&(e.tbOnlyTo=t.tiebreakSet.tiebreakTo),e.tbOnlyModifier=t.tiebreakSet.modifier===`RALLY`?`RALLY`:``,e.tbOnlyNoAd=!!t.tiebreakSet.NoAD;return}e.setType=c7,typeof t.setTo==`number`&&(e.setTo=t.setTo),e.noAd=!!t.NoAD,e.hasTiebreak=!t.noTiebreak&&!!t.tiebreakFormat,t.tiebreakFormat?.tiebreakTo&&(e.tiebreakTo=t.tiebreakFormat.tiebreakTo),typeof t.tiebreakAt==`number`&&t.tiebreakAt!==t.setTo&&(e.tiebreakAt=t.tiebreakAt)}function _7(e,t){if(e.differentFinal=!0,t.tiebreakSet){e.finalKind=`matchTiebreak`,typeof t.tiebreakSet.tiebreakTo==`number`&&(e.finalMatchTbTo=t.tiebreakSet.tiebreakTo);return}e.finalKind=`standard`,typeof t.setTo==`number`&&(e.finalSetTo=t.setTo),t.tiebreakFormat?.tiebreakTo&&(e.finalTbTo=t.tiebreakFormat.tiebreakTo)}function v7(e){let t={bestOf:e.bestOf};if(e.setType===u7)t.setFormat={timed:!0,minutes:e.minutes},e.timedBasis===`P`&&(t.setFormat.based=`P`);else if(e.setType===l7)t.setFormat={tiebreakSet:{tiebreakTo:e.tbOnlyTo,...e.tbOnlyModifier?{modifier:e.tbOnlyModifier}:{},...e.tbOnlyNoAd?{NoAD:!0}:{}}};else{let n={setTo:e.setTo};e.noAd&&(n.NoAD=!0),e.hasTiebreak?(n.tiebreakFormat={tiebreakTo:e.tiebreakTo},n.tiebreakAt=e.tiebreakAt===`same`?e.setTo:e.tiebreakAt):n.noTiebreak=!0,t.setFormat=n}return e.differentFinal&&(t.finalSetFormat=e.finalKind===`matchTiebreak`?{tiebreakSet:{tiebreakTo:e.finalMatchTbTo}}:{setTo:e.finalSetTo,tiebreakAt:e.finalSetTo,tiebreakFormat:{tiebreakTo:e.finalTbTo}}),t}function y7(e){try{return t.matchUpFormatCode.stringify?.(e)}catch{return}}function b7(e){return e?!!t.matchUpFormatCode.parse?.(e):!1}function x7(e){let t=e.initialValue||`SET3-S:6/TB7`,n=h7(t),r=document.createElement(`div`);r.className=`sc-format-picker`;let i=document.createElement(`div`);i.className=d7;let a=document.createElement(`label`);a.textContent=`Preset`,a.className=f7;let o=document.createElement(`select`);o.className=p7;for(let e of Q5){let t=document.createElement(`option`);t.value=e.format??``,t.textContent=e.desc?`${e.name} — ${e.desc}`:e.name??``,o.appendChild(t)}let s=document.createElement(`option`);s.value=s7,s.textContent=`Custom…`,o.appendChild(s),i.appendChild(a),i.appendChild(o),r.appendChild(i);let c=document.createElement(`div`);c.className=`sc-format-row sc-format-custom-row`,c.style.display=`none`;let l=document.createElement(`label`);l.textContent=`Format string`,l.className=f7;let u=document.createElement(`input`);u.type=`text`,u.className=`sc-format-input`,u.placeholder=`e.g. SET3-S:6/TB7-F:TB10`,c.appendChild(l),c.appendChild(u),r.appendChild(c);let d=document.createElement(`button`);d.type=`button`,d.className=`sc-format-builder-toggle`,d.textContent=`▸ Build a custom format`,r.appendChild(d);let f=document.createElement(`div`);f.className=`sc-format-builder-body`,f.style.display=`none`,r.appendChild(f);let p=!1;d.addEventListener(`click`,()=>{p=!p,f.style.display=p?`block`:`none`,d.textContent=p?`▾ Build a custom format`:`▸ Build a custom format`,p&&y()});let m=document.createElement(`div`);m.className=`sc-format-result`;let h=document.createElement(`code`);h.className=`sc-format-chip`;let g=document.createElement(`span`);g.className=`sc-format-validity`,m.appendChild(document.createTextNode(`Result:`)),m.appendChild(h),m.appendChild(g),r.appendChild(m);function _(r,i={}){t=r,i.skipBuilderResync||(n=h7(r)),v(),p&&y(),e.onChange(r)}function v(){let e=Z5(t);e?.format?(o.value=e.format,c.style.display=`none`):(o.value=s7,c.style.display=``,u.value=t),h.textContent=t;let n=b7(t);g.textContent=n?`✓ valid`:`✗ invalid`,g.dataset.valid=n?`true`:`false`}o.addEventListener(`change`,()=>{let e=o.value;if(e===s7){c.style.display=``,u.value=t,u.focus();return}_(e)}),u.addEventListener(`input`,()=>{_(u.value,{skipBuilderResync:!0})});function y(){f.innerHTML=``,f.appendChild(S7(`Best of`,[1,3,5],n.bestOf,e=>{n.bestOf=e,b()})),f.appendChild(C7(`Set type`,[{value:c7,label:`Standard`},{value:l7,label:`Tiebreak set`},{value:u7,label:`Timed`}],n.setType,e=>{n.setType=e,b()})),n.setType===c7?(f.appendChild(S7(`Games to`,[4,6,8,10],n.setTo,e=>{n.setTo=e,(n.tiebreakAt===`same`||n.tiebreakAt===n.setTo)&&(n.tiebreakAt=`same`),b()})),f.appendChild(w7(`Tiebreak at set end`,n.hasTiebreak,e=>{n.hasTiebreak=e,b()})),n.hasTiebreak&&f.appendChild(S7(`Tiebreak first to`,[5,7,10,12,15,21],n.tiebreakTo,e=>{n.tiebreakTo=e,b()})),f.appendChild(w7(`No-advantage games`,n.noAd,e=>{n.noAd=e,b()}))):n.setType===l7?(f.appendChild(S7(`First to`,[7,10,11,15,21],n.tbOnlyTo,e=>{n.tbOnlyTo=e,b()})),f.appendChild(C7(`Scoring`,[{value:``,label:`Sideout`},{value:`RALLY`,label:`Rally`}],n.tbOnlyModifier,e=>{n.tbOnlyModifier=e,b()})),f.appendChild(w7(`No-advantage`,n.tbOnlyNoAd,e=>{n.tbOnlyNoAd=e,b()}))):(f.appendChild(S7(`Minutes`,[10,15,20,25,30,45],n.minutes,e=>{n.minutes=e,b()})),f.appendChild(C7(`Basis`,[{value:`G`,label:`Games`},{value:`P`,label:`Points`}],n.timedBasis,e=>{n.timedBasis=e,b()}))),f.appendChild(w7(`Different final-set rules`,n.differentFinal,e=>{n.differentFinal=e,b()})),n.differentFinal&&(f.appendChild(C7(`Final set`,[{value:`standard`,label:`Standard set`},{value:`matchTiebreak`,label:`Match tiebreak`}],n.finalKind,e=>{n.finalKind=e,b()})),n.finalKind===`standard`?(f.appendChild(S7(`Final games to`,[4,6,8],n.finalSetTo,e=>{n.finalSetTo=e,b()})),f.appendChild(S7(`Final tiebreak to`,[7,10,12,15],n.finalTbTo,e=>{n.finalTbTo=e,b()}))):f.appendChild(S7(`Match tiebreak to`,[7,10,15,21],n.finalMatchTbTo,e=>{n.finalMatchTbTo=e,b()})))}function b(){let e=y7(v7(n));typeof e==`string`?_(e,{skipBuilderResync:!0}):y()}return e.readonly&&(o.disabled=!0,u.disabled=!0,d.disabled=!0),v(),{element:r,setValue(e){let r=e||`SET3-S:6/TB7`;r!==t&&(t=r,n=h7(r),v(),p&&y())},destroy(){r.remove()}}}function S7(e,t,n,r){let i=document.createElement(`div`);i.className=d7;let a=document.createElement(`label`);a.textContent=e,a.className=f7;let o=document.createElement(`select`);o.className=p7;for(let e of t){let t=document.createElement(`option`);t.value=String(e),t.textContent=String(e),o.appendChild(t)}return o.value=String(n),o.addEventListener(`change`,()=>r(Number(o.value))),i.appendChild(a),i.appendChild(o),i}function C7(e,t,n,r){let i=document.createElement(`div`);i.className=d7;let a=document.createElement(`span`);a.textContent=e,a.className=f7;let o=document.createElement(`div`);o.className=`sc-format-radio-group`;let s=`sc-fmt-radio-${Math.floor(Math.random()*1e9).toString(36)}`;for(let e of t){let t=document.createElement(`label`);t.className=`sc-format-radio-option`;let i=document.createElement(`input`);i.type=`radio`,i.name=s,i.value=e.value,i.checked=e.value===n,i.addEventListener(`change`,()=>{i.checked&&r(i.value)}),t.appendChild(i),t.appendChild(document.createTextNode(e.label)),o.appendChild(t)}return i.appendChild(a),i.appendChild(o),i}function w7(e,t,n){let r=document.createElement(`div`);r.className=`sc-format-row sc-format-checkbox-row`;let i=document.createElement(`label`);i.className=`sc-format-checkbox-label`;let a=document.createElement(`input`);return a.type=`checkbox`,a.checked=t,a.addEventListener(`change`,()=>n(a.checked)),i.appendChild(a),i.appendChild(document.createTextNode(e)),r.appendChild(i),r}function T7(e){let t=document.createElement(`div`);t.className=`sc-section-body-inner`;let n=document.createElement(`div`);n.className=`sc-field-block`;let r=document.createElement(`div`);r.className=`sc-field-block-label`,r.textContent=`Default match-up format`;let i=document.createElement(`div`);i.className=`sc-field-help`,i.textContent=`Used when an event or draw does not specify its own format.`,n.appendChild(r),n.appendChild(i);let a=x7({initialValue:e.getData().defaultMatchUpFormat,readonly:e.isReadonly(),onChange:t=>e.setDefaultMatchUpFormat(t)});n.appendChild(a.element),t.appendChild(n);let o=E7({label:`Require both participants before scoring`,help:`Block score entry until both sides have a participant assigned.`,initial:!!e.getData().requireParticipantsForScoring,readonly:e.isReadonly(),onChange:t=>e.setRequireParticipants(t)});t.appendChild(o.element);let s=document.createElement(`div`);s.className=`sc-field-row`;let c=document.createElement(`label`);c.className=`sc-field-label`,c.textContent=`Require all positions assigned`;let l=document.createElement(`select`);l.className=`sc-field-input`;for(let e of[{value:`default`,label:`Default (required in MAIN stage)`},{value:`true`,label:`Always required`},{value:`false`,label:`Never required`}]){let t=document.createElement(`option`);t.value=e.value,t.textContent=e.label,l.appendChild(t)}l.addEventListener(`change`,()=>{e.setRequireAllPositions(l.value)}),e.isReadonly()&&(l.disabled=!0),s.appendChild(c),s.appendChild(l),t.appendChild(s);let u=E7({label:`Allow change propagation`,help:`Editing a completed matchUp's winningSide updates all downstream matchUps in the structure.`,initial:!!e.getData().allowChangePropagation,readonly:e.isReadonly(),onChange:t=>e.setAllowChangePropagation(t)});t.appendChild(u.element);let d=document.createElement(`div`);d.className=`sc-field-block`;let f=document.createElement(`div`);f.className=`sc-field-block-label`,f.textContent=`Allow deletion with scores present`;let p=document.createElement(`div`);p.className=`sc-field-help`,p.textContent=`When off, the corresponding entity cannot be deleted while it has scored matchUps.`,d.appendChild(f),d.appendChild(p);let m=E7({label:`Draw definitions`,help:``,initial:!!e.getData().allowDeletionWithScoresPresent?.drawDefinitions,readonly:e.isReadonly(),onChange:t=>e.setAllowDeletionDraws(t)}),h=E7({label:`Structures`,help:``,initial:!!e.getData().allowDeletionWithScoresPresent?.structures,readonly:e.isReadonly(),onChange:t=>e.setAllowDeletionStructures(t)});d.appendChild(m.element),d.appendChild(h.element),t.appendChild(d);function g(e){let t=e.draft;a.setValue(t.defaultMatchUpFormat||``),o.setChecked(!!t.requireParticipantsForScoring),t.requireAllPositionsAssigned===void 0?l.value=`default`:l.value=t.requireAllPositionsAssigned?`true`:`false`,u.setChecked(!!t.allowChangePropagation),m.setChecked(!!t.allowDeletionWithScoresPresent?.drawDefinitions),h.setChecked(!!t.allowDeletionWithScoresPresent?.structures)}return{element:t,update:g}}function E7(e){let t=document.createElement(`div`);t.className=`sc-checkbox-row`;let n=document.createElement(`input`);n.type=`checkbox`,n.checked=e.initial,e.readonly&&(n.disabled=!0),n.addEventListener(`change`,()=>e.onChange(n.checked));let r=document.createElement(`div`);r.className=`sc-checkbox-text`;let i=document.createElement(`label`);if(i.textContent=e.label,r.appendChild(i),e.help){let t=document.createElement(`div`);t.className=`sc-checkbox-help`,t.textContent=e.help,r.appendChild(t)}return t.appendChild(n),t.appendChild(r),{element:t,setChecked(e){n.checked=e}}}function D7(e){let t=document.createElement(`div`);t.className=`sc-taglist`;let n=document.createElement(`div`);n.className=`sc-taglist-chips`,t.appendChild(n);let r=document.createElement(`div`);r.className=`sc-taglist-input-row`;let i=document.createElement(`input`);i.type=`text`,i.className=`sc-taglist-input`,e.placeholder&&(i.placeholder=e.placeholder);let a=document.createElement(`button`);a.type=`button`,a.className=`sp-btn sp-btn--sm sp-btn--outline`,a.textContent=`Add`;let o=document.createElement(`div`);o.className=`sc-taglist-error`,o.style.display=`none`,r.appendChild(i),r.appendChild(a),t.appendChild(r),t.appendChild(o);let s=[...e.values];function c(){if(n.innerHTML=``,s.length===0){let e=document.createElement(`span`);e.className=`sc-taglist-empty`,e.textContent=`none`,n.appendChild(e);return}s.forEach((t,r)=>{let i=document.createElement(`span`);i.className=`sc-taglist-chip`;let a=document.createElement(`code`);if(a.textContent=t,i.appendChild(a),!e.readonly){let n=document.createElement(`button`);n.type=`button`,n.className=`sc-taglist-chip-remove`,n.setAttribute(`aria-label`,`Remove ${t}`),n.textContent=`×`,n.addEventListener(`click`,()=>e.onRemove(r)),i.appendChild(n)}n.appendChild(i)})}function l(){let t=i.value.trim();if(t){if(e.validate&&!e.validate(t)){o.textContent=e.invalidMessage??`Invalid value`,o.style.display=``;return}o.style.display=`none`,i.value=``,e.onAdd(t)}}return a.addEventListener(`click`,l),i.addEventListener(`keydown`,e=>{e.key===`Enter`&&(e.preventDefault(),l())}),e.readonly&&(i.disabled=!0,a.disabled=!0,r.style.display=`none`),c(),{element:t,setValues(e){s=[...e],c()},destroy(){t.remove()}}}function O7(e){let t=document.createElement(`div`);t.className=`sc-section-body-inner`;let n=document.createElement(`div`);n.className=`sc-field-help`,n.textContent=`Restrict which formats events under this policy can use. Each entry surfaces in the MatchUp Format Dialog using Name as the dropdown label and Description as the sub-text. Empty list = no restriction.`,t.appendChild(n);let r=document.createElement(`div`);r.className=`sc-format-list-header`,r.appendChild(k7(``)),r.appendChild(k7(`Name`)),r.appendChild(k7(`Format`)),r.appendChild(k7(`Description`)),r.appendChild(k7(``)),t.appendChild(r);let i=document.createElement(`div`);i.className=`sc-format-list-rows`,t.appendChild(i);let a=document.createElement(`div`);a.className=`sc-format-list-empty`,a.textContent=`No allowed formats — any format will be accepted.`,t.appendChild(a);let o=document.createElement(`div`);o.className=`sc-format-list-actions`;let s=document.createElement(`button`);s.type=`button`,s.className=`sp-btn sp-btn--sm sp-btn--outline`,s.textContent=`+ Add format`,s.addEventListener(`click`,()=>e.addAllowedFormat());let c=document.createElement(`select`);c.className=`sc-format-list-preset-picker`;let l=document.createElement(`option`);l.value=``,l.textContent=`Add from preset…`,c.appendChild(l);for(let e of Q5){let t=document.createElement(`option`);t.value=e.format??``,t.textContent=e.desc?`${e.name} — ${e.desc}`:e.name??``,c.appendChild(t)}c.addEventListener(`change`,()=>{let t=c.value;if(!t)return;let n=Q5.find(e=>e.format===t);n?.format&&e.addAllowedFormat({matchUpFormat:n.format,name:n.name,description:n.desc}),c.value=``}),o.appendChild(s),o.appendChild(c),t.appendChild(o),e.isReadonly()&&(s.disabled=!0,c.disabled=!0);let u=[];function d(t){for(a.style.display=t.length===0?``:`none`,r.style.display=t.length===0?`none`:``;u.length>t.length;)u.pop()?.destroy();for(;u.length<t.length;){let t=u.length,n=A7(e,t);i.appendChild(n.element),u.push(n)}for(let e=0;e<t.length;e+=1)u[e].setIndex(e),u[e].setEntry(t[e])}d(e.getData().matchUpFormats??[]);function f(e){d(e.draft.matchUpFormats??[])}return{element:t,update:f}}function k7(e){let t=document.createElement(`div`);return t.className=`sc-format-list-header-label`,t.textContent=e,t}function A7(e,n){let r=n,i=!1,a=e.isReadonly(),o=document.createElement(`div`);o.className=`sc-format-list-row-wrap`;let s=document.createElement(`div`);s.className=`sc-format-list-row`;let c=document.createElement(`button`);c.type=`button`,c.className=`sc-format-list-row-expand`,c.setAttribute(`aria-label`,`Expand advanced fields`),c.textContent=`▸`;let l=M7(`Display name`,a),u=M7(`SET3-S:6/TB7`,a);u.classList.add(`sc-format-list-format-input`);let d=M7(`Description shown beneath the name`,a),f=document.createElement(`span`);f.className=`sc-format-list-validity`;let p=document.createElement(`button`);p.type=`button`,p.className=`sc-format-list-row-remove`,p.setAttribute(`aria-label`,`Remove format`),p.textContent=`×`,a&&(p.disabled=!0),p.addEventListener(`click`,()=>e.removeAllowedFormat(r));let m=document.createElement(`div`);m.className=`sc-format-list-format-cell`,m.appendChild(u),m.appendChild(f),s.appendChild(c),s.appendChild(l),s.appendChild(m),s.appendChild(d),s.appendChild(p);let h=document.createElement(`div`);h.className=`sc-format-list-row-advanced`,h.style.display=`none`;let g=document.createElement(`div`);g.className=`sc-field-help`,g.textContent=`Category filters scope this format to events with matching categoryNames / categoryTypes. Empty = applies to all categories.`,h.appendChild(g);let _=j7({label:`Category names`,placeholder:`e.g. U18`,initial:[],readonly:a,onAdd:t=>e.addAllowedFormatCategory(r,`categoryNames`,t),onRemove:t=>e.removeAllowedFormatCategory(r,`categoryNames`,t)});h.appendChild(_.element);let v=j7({label:`Category types`,placeholder:`e.g. AGE`,initial:[],readonly:a,onAdd:t=>e.addAllowedFormatCategory(r,`categoryTypes`,t),onRemove:t=>e.removeAllowedFormatCategory(r,`categoryTypes`,t)});h.appendChild(v.element),o.appendChild(s),o.appendChild(h),c.addEventListener(`click`,()=>{i=!i,c.textContent=i?`▾`:`▸`,h.style.display=i?``:`none`}),l.addEventListener(`input`,()=>e.setAllowedFormatField(r,`name`,l.value)),u.addEventListener(`input`,()=>{e.setAllowedFormatField(r,`matchUpFormat`,u.value),y()}),d.addEventListener(`input`,()=>e.setAllowedFormatField(r,`description`,d.value));function y(){let e=u.value.trim();if(!e){f.textContent=``,f.dataset.state=`empty`;return}t.matchUpFormatCode.parse?.(e)?(f.textContent=`✓`,f.dataset.state=`valid`):(f.textContent=`✗`,f.dataset.state=`invalid`)}return{element:o,setEntry(e){let t=n7(e),n=e7(e),r=$5(e),i=t7(e);l.value!==n&&(l.value=n),u.value!==r&&(u.value=r),d.value!==i&&(d.value=i),_.tagList.setValues(t.categoryNames??[]),v.tagList.setValues(t.categoryTypes??[]);let a=(t.categoryNames?.length??0)+(t.categoryTypes?.length??0)>0;c.dataset.hasContent=a?`true`:`false`,y()},setIndex(e){r=e},destroy(){o.remove()}}}function j7(e){let t=document.createElement(`div`);t.className=`sc-format-list-category-field`;let n=document.createElement(`div`);n.className=`sc-format-list-category-label`,n.textContent=e.label,t.appendChild(n);let r=D7({values:e.initial,placeholder:e.placeholder,readonly:e.readonly,onAdd:e.onAdd,onRemove:e.onRemove});return t.appendChild(r.element),{element:t,tagList:r}}function M7(e,t){let n=document.createElement(`input`);return n.type=`text`,n.className=`sc-format-list-input`,n.placeholder=e,t&&(n.disabled=!0),n}var N7=[`ABANDONED`,`CANCELLED`,`DEFAULTED`,`INCOMPLETE`,`RETIRED`,`WALKOVER`];function P7(e){let t=document.createElement(`div`);t.className=`sc-section-body-inner`;let n=N7.map(t=>I7(e,t));for(let r of n)t.appendChild(L7(r,()=>e.toggleStatus(r.key)));let r=document.createElement(`div`);r.className=`sc-advanced`;let i=document.createElement(`div`);i.className=`sc-advanced-header`;let a=document.createElement(`span`);a.className=`sc-advanced-chevron`;let o=document.createElement(`span`);o.textContent=`Advanced — process codes`,i.appendChild(a),i.appendChild(o),i.addEventListener(`click`,()=>e.setAdvancedOpen(!e.getState().advancedOpen));let s=document.createElement(`div`);s.className=`sc-advanced-body`,s.style.display=`none`;let c=document.createElement(`div`);c.className=`sc-field-help`,c.textContent=`Tokens passed to downstream governors when assignments are incomplete on default. The factory default ships ["RANKING.IGNORE"].`,s.appendChild(c);let l=D7({values:e.getData().processCodes?.incompleteAssignmentsOnDefault??[],placeholder:`e.g. RANKING.IGNORE`,readonly:e.isReadonly(),onAdd:t=>e.addProcessCode(t),onRemove:t=>e.removeProcessCode(t)});s.appendChild(l.element),r.appendChild(i),r.appendChild(s),t.appendChild(r);function u(e){for(let t of n){let n=e.draft.matchUpStatusCodes?.[t.key]??[];t.countEl.textContent=String(n.length);let r=e.expandedStatuses.has(t.key);t.chevron.textContent=r?`▾`:`▸`,t.body.style.display=r?`block`:`none`,t.tagList.setValues(n.map(F7))}a.textContent=e.advancedOpen?`▾`:`▸`,s.style.display=e.advancedOpen?`block`:`none`,l.setValues(e.draft.processCodes?.incompleteAssignmentsOnDefault??[])}return{element:t,update:u}}function F7(e){let t=ff(e)??``,n=e?.matchUpStatusCodeDisplay||e?.label;return n&&n!==t?`${t} — ${n}`:t}function I7(e,t){let n=document.createElement(`span`);n.className=`sc-status-chevron`;let r=document.createElement(`span`);r.className=`sc-status-count`;let i=document.createElement(`div`);i.className=`sc-status-body`;let a=D7({values:(e.getData().matchUpStatusCodes?.[t]??[]).map(F7),placeholder:`e.g. INJURY`,readonly:e.isReadonly(),onAdd:n=>e.addStatusCode(t,n),onRemove:n=>e.removeStatusCode(t,n)});return i.appendChild(a.element),{key:t,chevron:n,countEl:r,body:i,tagList:a}}function L7(e,t){let n=document.createElement(`div`);n.className=`sc-status-group`;let r=document.createElement(`div`);r.className=`sc-status-header`;let i=document.createElement(`span`);i.className=`sc-status-label`,i.textContent=R7(e.key),r.appendChild(e.chevron),r.appendChild(i);let a=document.createElement(`span`);return a.className=`sc-status-count-wrap`,a.appendChild(document.createTextNode(`(`)),a.appendChild(e.countEl),a.appendChild(document.createTextNode(`)`)),r.appendChild(a),r.addEventListener(`click`,t),n.appendChild(r),n.appendChild(e.body),n}function R7(e){return e.charAt(0)+e.slice(1).toLowerCase()}function z7(e){let t=document.createElement(`div`);t.className=`sc-editor`;let n=[{id:`defaults`,label:`Defaults`,factory:()=>T7(e)},{id:`allowedFormats`,label:`Allowed match-up formats`,factory:()=>O7(e)},{id:`statusCodes`,label:`Status code refinements`,factory:()=>P7(e)}],r=[];for(let i of n){let n=document.createElement(`div`);n.className=`sc-section`;let a=document.createElement(`div`);a.className=`sc-section-header`;let o=document.createElement(`span`);o.className=`sc-section-chevron`;let s=document.createElement(`span`);s.textContent=i.label,a.appendChild(o),a.appendChild(s),a.addEventListener(`click`,()=>e.toggleSection(i.id));let c=document.createElement(`div`);c.className=`sc-section-body`;let l=i.factory();c.appendChild(l.element),n.appendChild(a),n.appendChild(c),t.appendChild(n),r.push({id:i.id,chevron:o,bodyEl:c,inner:l})}function i(e){for(let t of r){let n=e.expandedSections.has(t.id);t.chevron.textContent=n?`▾`:`▸`,t.bodyEl.style.display=n?`block`:`none`,n&&t.inner.update(e)}}return{element:t,update:i}}var B7=class e{constructor(e){this.container=null,this.store=new o7(e),this.panel=z7(this.store),this.unsubscribe=this.store.subscribe(e=>{this.panel.update(e)}),this.panel.update(this.store.getState())}render(e){this.container=e,e.appendChild(this.panel.element)}destroy(){this.unsubscribe(),this.container&&this.panel.element.parentNode===this.container&&this.container.removeChild(this.panel.element),this.container=null}getData(){return this.store.getData()}setData(e){this.store.setData(e)}getStore(){return this.store}static createEditorInstance(t){let n={initialPolicy:t.initialData,readonly:t.readonly,onChange:e=>t.onChange(e)},r=new e(n);return{element:r.panel.element,setData(e){r.setData(e)},getData(){return r.getData()},destroy(){r.destroy()}}}},V7=[{value:`SEPARATE`,label:`Separate`,description:`Each seed placed in its own section of the draw`},{value:`WATERFALL`,label:`Waterfall`,description:`Seeds cascade down section by section`},{value:`CLUSTER`,label:`Cluster`,description:`Seeds grouped in clusters (e.g. 5-8 together)`}],H7=[`SINGLE_ELIMINATION`,`DOUBLE_ELIMINATION`,`ROUND_ROBIN`,`ROUND_ROBIN_WITH_PLAYOFF`,`FEED_IN`,`FEED_IN_CHAMPIONSHIP`,`FEED_IN_CHAMPIONSHIP_TO_SF`,`FEED_IN_CHAMPIONSHIP_TO_QF`,`FEED_IN_CHAMPIONSHIP_TO_R16`,`FIRST_MATCH_LOSER_CONSOLATION`,`CURTIS_CONSOLATION`,`COMPASS`,`OLYMPIC`];function U7(){return{policyName:``,seedingProfile:{positioning:`SEPARATE`},validSeedPositions:{ignore:!0},duplicateSeedNumbers:!0,drawSizeProgression:!0,seedsCountThresholds:[{drawSize:4,minimumParticipantCount:3,seedsCount:2},{drawSize:16,minimumParticipantCount:12,seedsCount:4},{drawSize:32,minimumParticipantCount:24,seedsCount:8},{drawSize:64,minimumParticipantCount:48,seedsCount:16}]}}function W7(e){return e===`ADJACENT`?`CLUSTER`:e}function G7(e){if(e!==void 0)return typeof e==`string`?{positioning:e}:e}function K7(e){if(e===void 0)return;if(typeof e==`string`)return{positioning:e};let{drawTypes:t,...n}=e;if(!t)return n;let r={};for(let[e,n]of Object.entries(t)){let t=G7(n);t&&(r[e]=t)}return{...n,drawTypes:r}}function q7(e){return{...e,seedingProfile:K7(e.seedingProfile)}}function J7(e){return structuredClone(e)}var Y7=class{constructor(e){this.listeners=new Set,this.config=e,this.state={draft:q7(J7(e.initialPolicy??U7())),expandedSections:new Set([`profile`,`flags`,`thresholds`,`drawTypeOverrides`]),dirty:!1}}getState(){return this.state}getData(){return J7(this.state.draft)}setData(e){this.state={...this.state,draft:q7(J7(e)),dirty:!1},this.emit()}toggleSection(e){let t=new Set(this.state.expandedSections);t.has(e)?t.delete(e):t.add(e),this.state={...this.state,expandedSections:t},this.emit()}setPolicyName(e){let t=J7(this.state.draft);t.policyName=e,this.commitDraft(t)}setPositioning(e){let t=J7(this.state.draft);t.seedingProfile??={},t.seedingProfile.positioning=e,this.commitDraft(t)}setValidSeedPositionsIgnore(e){let t=J7(this.state.draft);t.validSeedPositions={ignore:e},this.commitDraft(t)}setDuplicateSeedNumbers(e){let t=J7(this.state.draft);t.duplicateSeedNumbers=e,this.commitDraft(t)}setDrawSizeProgression(e){let t=J7(this.state.draft);t.drawSizeProgression=e,this.commitDraft(t)}addThreshold(){let e=J7(this.state.draft);e.seedsCountThresholds??=[];let t=e.seedsCountThresholds.at(-1),n=t?t.drawSize*2:4;e.seedsCountThresholds.push({drawSize:n,minimumParticipantCount:Math.max(1,Math.floor(n*.75)),seedsCount:Math.max(2,Math.floor(n/4))}),this.commitDraft(e)}removeThreshold(e){let t=J7(this.state.draft);t.seedsCountThresholds&&(t.seedsCountThresholds.splice(e,1),this.commitDraft(t))}setThresholdField(e,t,n){let r=J7(this.state.draft),i=r.seedsCountThresholds?.[e];i&&(i[t]=n,this.commitDraft(r))}sortThresholds(){let e=J7(this.state.draft);e.seedsCountThresholds&&(e.seedsCountThresholds.sort((e,t)=>e.drawSize-t.drawSize),this.commitDraft(e))}addDrawTypeOverride(e,t){if(!e)return;let n=J7(this.state.draft);n.seedingProfile??={},n.seedingProfile.drawTypes??={},n.seedingProfile.drawTypes[e]={positioning:t},this.commitDraft(n)}removeDrawTypeOverride(e){let t=J7(this.state.draft);t.seedingProfile?.drawTypes&&(delete t.seedingProfile.drawTypes[e],Object.keys(t.seedingProfile.drawTypes).length===0&&delete t.seedingProfile.drawTypes,this.commitDraft(t))}setDrawTypeOverridePositioning(e,t){let n=J7(this.state.draft),r=n.seedingProfile?.drawTypes;r?.[e]&&(r[e]={positioning:t},this.commitDraft(n))}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}commitDraft(e){this.state={...this.state,draft:e,dirty:!0},this.emit(),this.config.onChange?.(J7(e))}emit(){for(let e of this.listeners)e(this.state)}},X7=()=>`sd-editor`,Z7=()=>`sd-section`,Q7=()=>`sd-section-header`,$7=()=>`sd-section-chevron`,e9=()=>`sd-section-body`,t9=()=>`sd-field-row`,n9=()=>`sd-field-label`,r9=()=>`sd-field-input`,i9=()=>`sd-checkbox-row`,a9=()=>`sd-checkbox-desc`,o9=()=>`sd-radio-group`,s9=()=>`sd-radio-option`,c9=()=>`sp-btn sp-btn--sm sp-btn--outline sd-add-btn`,l9=()=>`sp-btn sp-btn--sm sp-btn--ghost sd-sort-btn`,u9=()=>`sp-btn-icon sp-btn-icon--danger sd-remove-btn`,d9=()=>`sd-table-wrap`,f9=()=>`sd-table`,p9=()=>`sd-number-cell-input`,m9=()=>`sd-empty`,h9=()=>`sd-actions-row`,Jee=()=>`sd-override-row`,Yee=()=>`sd-override-add-row`,Xee=()=>`sd-override-drawtype`,g9=()=>`sd-select`;function Zee(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=t9();let r=document.createElement(`div`);r.className=n9(),r.textContent=`Policy name`;let i=document.createElement(`input`);i.type=`text`,i.className=r9()+` sd-field-input--wide`,i.placeholder=`e.g. USTA SEEDING`,i.addEventListener(`input`,()=>e.setPolicyName(i.value)),n.appendChild(r),n.appendChild(i),t.appendChild(n);let a=document.createElement(`div`);a.className=t9()+` sd-field-row--top`;let o=document.createElement(`div`);o.className=n9(),o.textContent=`Default positioning`,a.appendChild(o);let s=document.createElement(`div`);s.className=o9();let c=[];for(let t of V7){let n=document.createElement(`label`);n.className=s9();let r=document.createElement(`input`);r.type=`radio`,r.name=`sd-positioning`,r.value=t.value,r.addEventListener(`change`,()=>{r.checked&&e.setPositioning(t.value)});let i=document.createElement(`span`);i.innerHTML=`<strong>${t.label}</strong><div class="sd-radio-desc">${t.description}</div>`,n.appendChild(r),n.appendChild(i),s.appendChild(n),c.push({value:t.value,input:r})}a.appendChild(s),t.appendChild(a);function l(e){document.activeElement!==i&&(i.value=e.draft.policyName??``);let t=W7(e.draft.seedingProfile?.positioning);for(let e of c)e.input.checked=e.value===t}return{element:t,update:l}}function Qee(e){let t=document.createElement(`div`),n=[{id:`sd-valid-seed-positions-ignore`,label:`Ignore valid seed positions`,description:`Allow seeds to be placed at any drawPosition (rather than only canonical seeded positions).`,read:e=>e.draft.validSeedPositions?.ignore??!1,write:t=>e.setValidSeedPositionsIgnore(t)},{id:`sd-duplicate-seed-numbers`,label:`Allow duplicate seed numbers`,description:`Permit shared seed numbers (e.g. multiple #5 seeds in CLUSTER positioning).`,read:e=>e.draft.duplicateSeedNumbers??!1,write:t=>e.setDuplicateSeedNumbers(t)},{id:`sd-draw-size-progression`,label:`Draw size progression`,description:`Apply thresholds at or below the matched draw size, instead of requiring an exact match.`,read:e=>e.draft.drawSizeProgression??!1,write:t=>e.setDrawSizeProgression(t)}],r=[];for(let e of n){let n=document.createElement(`div`);n.className=i9();let i=document.createElement(`input`);i.type=`checkbox`,i.id=e.id,i.addEventListener(`change`,()=>e.write(i.checked));let a=document.createElement(`label`);a.htmlFor=e.id,a.textContent=e.label;let o=document.createElement(`div`);o.className=a9(),o.textContent=e.description;let s=document.createElement(`div`);s.appendChild(a),s.appendChild(o),n.appendChild(i),n.appendChild(s),t.appendChild(n),r.push({def:e,input:i})}function i(e){for(let t of r)t.input.checked=t.def.read(e)}return{element:t,update:i}}var _9=[{field:`drawSize`,label:`Draw size`,min:2,placeholder:`32`},{field:`minimumParticipantCount`,label:`Min participants`,min:0,placeholder:`24`},{field:`seedsCount`,label:`Seeds`,min:0,placeholder:`8`}];function $ee(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=d9();let r=document.createElement(`table`);r.className=f9();let i=document.createElement(`thead`),a=document.createElement(`tr`);for(let e of _9){let t=document.createElement(`th`);t.textContent=e.label,a.appendChild(t)}let o=document.createElement(`th`);o.setAttribute(`aria-label`,`Actions`),a.appendChild(o),i.appendChild(a),r.appendChild(i);let s=document.createElement(`tbody`);r.appendChild(s),n.appendChild(r),t.appendChild(n);let c=document.createElement(`div`);c.className=m9(),c.textContent=`No seed-count thresholds defined. Add a row to configure seeds per draw size.`,t.appendChild(c);let l=document.createElement(`div`);l.className=h9();let u=document.createElement(`button`);u.type=`button`,u.className=c9(),u.textContent=`+ Add threshold`,u.addEventListener(`click`,()=>e.addThreshold());let d=document.createElement(`button`);d.type=`button`,d.className=l9(),d.textContent=`Sort by draw size`,d.addEventListener(`click`,()=>e.sortThresholds()),l.appendChild(u),l.appendChild(d),t.appendChild(l);function f(t){let n=t.draft.seedsCountThresholds??[];if(s.innerHTML=``,n.length===0){r.style.display=`none`,c.style.display=`block`,d.disabled=!0;return}r.style.display=``,c.style.display=`none`,d.disabled=n.length<2;for(let t=0;t<n.length;t++){let r=n[t],i=document.createElement(`tr`);for(let n of _9){let a=document.createElement(`td`),o=document.createElement(`input`);o.type=`number`,o.min=String(n.min),o.className=p9(),o.value=String(r[n.field]),n.placeholder&&(o.placeholder=n.placeholder);let s=t,c=n.field;o.addEventListener(`change`,()=>{let t=parseInt(o.value,10);!isNaN(t)&&t>=n.min?e.setThresholdField(s,c,t):o.value=String(r[n.field])}),a.appendChild(o),i.appendChild(a)}let a=document.createElement(`td`),o=document.createElement(`button`);o.type=`button`,o.className=u9(),o.setAttribute(`aria-label`,`Remove threshold row ${t+1}`),o.textContent=`×`;let c=t;o.addEventListener(`click`,()=>e.removeThreshold(c)),a.appendChild(o),i.appendChild(a),s.appendChild(i)}}return{element:t,update:f}}function v9(e,t){let n=document.createElement(`select`);n.className=g9();for(let e of V7){let t=document.createElement(`option`);t.value=e.value,t.textContent=e.label,n.appendChild(t)}return n.value=e,n.addEventListener(`change`,()=>t(n.value)),n}function ete(e,t){let n=document.createElement(`div`),r=t.drawTypes??H7,i=document.createElement(`div`);n.appendChild(i);let a=document.createElement(`div`);a.className=m9(),a.textContent=`No draw-type overrides. The default positioning is used for every drawType.`,n.appendChild(a);let o=document.createElement(`div`);o.className=Yee();let s=document.createElement(`select`);s.className=g9();function c(e){s.innerHTML=``;let t=document.createElement(`option`);t.value=``,t.textContent=`Select drawType…`,s.appendChild(t);for(let t of r){if(e.has(t))continue;let n=document.createElement(`option`);n.value=t,n.textContent=t,s.appendChild(n)}}let l=v9(`WATERFALL`,()=>{}),u=document.createElement(`button`);u.type=`button`,u.className=c9(),u.textContent=`+ Add override`,u.addEventListener(`click`,()=>{let t=s.value;t&&e.addDrawTypeOverride(t,l.value)});let d=document.createElement(`div`);d.className=h9(),d.appendChild(s),d.appendChild(l),d.appendChild(u),o.appendChild(d),n.appendChild(o);function f(t){let n=t.draft.seedingProfile?.drawTypes??{},r=Object.entries(n);if(i.innerHTML=``,r.length===0)a.style.display=`block`;else{a.style.display=`none`;for(let[t,{positioning:n}]of r){let r=document.createElement(`div`);r.className=Jee();let a=document.createElement(`div`);a.className=Xee(),a.textContent=t;let o=v9(W7(n),n=>e.setDrawTypeOverridePositioning(t,n)),s=document.createElement(`button`);s.type=`button`,s.className=u9(),s.setAttribute(`aria-label`,`Remove override for ${t}`),s.textContent=`×`,s.addEventListener(`click`,()=>e.removeDrawTypeOverride(t)),r.appendChild(a),r.appendChild(o),r.appendChild(s),i.appendChild(r)}}c(new Set(Object.keys(n))),u.disabled=s.options.length<=1}return{element:n,update:f}}function tte(e,t){let n=document.createElement(`div`);n.className=X7();let r=[{id:`profile`,label:`Profile`,factory:()=>Zee(e)},{id:`flags`,label:`Flags`,factory:()=>Qee(e)},{id:`thresholds`,label:`Seed Count Thresholds`,factory:()=>$ee(e)},{id:`drawTypeOverrides`,label:`Draw Type Overrides`,factory:()=>ete(e,t)}],i=[];for(let t of r){let r=document.createElement(`div`);r.className=Z7();let a=document.createElement(`div`);a.className=Q7();let o=document.createElement(`span`);o.className=$7();let s=document.createElement(`span`);s.textContent=t.label,a.appendChild(o),a.appendChild(s),a.addEventListener(`click`,()=>e.toggleSection(t.id));let c=document.createElement(`div`);c.className=e9();let l=t.factory();c.appendChild(l.element),r.appendChild(a),r.appendChild(c),n.appendChild(r),i.push({id:t.id,chevron:o,bodyEl:c,inner:l})}function a(e){for(let t of i){let n=e.expandedSections.has(t.id);t.chevron.textContent=n?`▼`:`▶`,t.bodyEl.style.display=n?`block`:`none`,n&&t.inner.update(e)}}return{element:n,update:a}}var nte=class e{constructor(e){this.container=null,this.store=new Y7(e),this.panel=tte(this.store,e),this.unsubscribe=this.store.subscribe(e=>{this.panel.update(e)}),this.panel.update(this.store.getState())}render(e){this.container=e,e.appendChild(this.panel.element)}destroy(){this.unsubscribe(),this.container&&this.panel.element.parentNode===this.container&&this.container.removeChild(this.panel.element),this.container=null}getData(){return this.store.getData()}setData(e){this.store.setData(e)}getStore(){return this.store}static createEditorInstance(t){let n={initialPolicy:t.initialData,onChange:e=>t.onChange(e)},r=new e(n);return{element:r.panel.element,setData(e){r.setData(e)},getData(){return r.getData()},destroy(){r.destroy()}}}},rte=t.factoryConstants.policyConstants.POLICY_TYPE_PARTICIPANT;function y9(e){return structuredClone(e)}function b9(){return y9(t.fixtures.policies.POLICY_PRIVACY_DEFAULT[rte])}function x9(e){return e?.participant??{}}var ite=new Set([`person`,`individualParticipants`]);function S9(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function C9(e,t){return typeof t==`boolean`||S9(t)&&!ite.has(e)}function w9(e){let t=x9(e);return[{participant:t,person:t.person},{participant:t.individualParticipants,person:t.individualParticipants?.person}]}function T9(e){let t=e.replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/([A-Z]+)([A-Z][a-z])/g,`$1 $2`);return t.charAt(0).toUpperCase()+t.slice(1)}function ate(e=b9()){let t=x9(e),n=Object.keys(t).filter(e=>C9(e,t[e])).map(e=>({field:e,group:`participant`,label:T9(e)})),r=Object.keys(t.person??{}).filter(e=>C9(e,t.person[e])).map(e=>({field:e,group:`person`,label:T9(e)}));return[...n,...r]}function ote(e,t,n){let r=x9(e),i=t===`person`?r.person?.[n]:r[n];return i===!0||S9(i)}function ste(e,t,n,r,i=b9()){let a=w9(i);w9(e).forEach((e,i)=>{let o=e[t],s=a[i]?.[t];if(!o||!(n in o||s&&n in s))return;let c=s?.[n];o[n]=r?!S9(c)||y9(c):!1})}function E9(e,t=b9()){let n=w9(t);return w9(e).forEach((e,t)=>{for(let r of[`participant`,`person`]){let i=e[r],a=n[t]?.[r];if(i&&a)for(let[e,t]of Object.entries(a))!(e in i)&&C9(e,t)&&(i[e]=y9(t))}}),e}function cte(e){return e?.policyName??``}function lte(e,t){e&&(e.policyName=t)}function D9(e){return structuredClone(e)}var ute=class{constructor(e){this.listeners=new Set,this.config=e,this.state={draft:E9(D9(e.initialPolicy??b9())),dirty:!1}}getState(){return this.state}getData(){return D9(this.state.draft)}setData(e){this.state={...this.state,draft:E9(D9(e)),dirty:!1},this.emit()}setPolicyName(e){let t=D9(this.state.draft);lte(t,e),this.commitDraft(t)}setField(e,t,n){let r=D9(this.state.draft);ste(r,e,t,n),this.commitDraft(r)}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}commitDraft(e){this.state={...this.state,draft:e,dirty:!0},this.emit(),this.config.onChange?.(D9(e))}emit(){for(let e of this.listeners)e(this.state)}};function dte(e,t){let n=document.createElement(`div`);n.className=`privacy-editor`;let r=document.createElement(`p`);r.className=`privacy-editor__intro`,r.textContent=`Choose which participant details are published publicly. Unchecked = kept private.`,n.appendChild(r);let i=document.createElement(`label`);i.className=`privacy-editor__name`;let a=document.createElement(`span`);a.textContent=`Policy name`;let o=document.createElement(`input`);o.type=`text`,o.placeholder=`e.g. Public roster privacy`,o.addEventListener(`input`,()=>e.setPolicyName(o.value)),i.append(a,o),n.appendChild(i);let s=ate(),c=new Map,l=(t,r)=>{let i=document.createElement(`section`);i.className=`privacy-editor__group`;let a=document.createElement(`h4`);a.textContent=r,i.appendChild(a);let o=document.createElement(`div`);o.className=`privacy-editor__grid`;for(let n of s.filter(e=>e.group===t)){let r=document.createElement(`label`);r.className=`privacy-editor__toggle`;let i=document.createElement(`input`);i.type=`checkbox`,i.addEventListener(`change`,()=>e.setField(t,n.field,i.checked));let a=document.createElement(`span`);a.textContent=n.label,r.append(i,a),o.appendChild(r),c.set(`${t}.${n.field}`,i)}i.appendChild(o),n.appendChild(i)};return l(`person`,`Person details`),l(`participant`,`Participant details`),{element:n,update:e=>{o.value=cte(e.draft);for(let t of s){let n=c.get(`${t.group}.${t.field}`);n&&(n.checked=ote(e.draft,t.group,t.field))}}}}var fte=class e{constructor(e){this.container=null,this.store=new ute(e),this.panel=dte(this.store,e),this.unsubscribe=this.store.subscribe(e=>this.panel.update(e)),this.panel.update(this.store.getState())}render(e){this.container=e,e.appendChild(this.panel.element)}destroy(){this.unsubscribe(),this.container&&this.panel.element.parentNode===this.container&&this.container.removeChild(this.panel.element),this.container=null}getData(){return this.store.getData()}setData(e){this.store.setData(e)}getStore(){return this.store}static createEditorInstance(t){let n={initialPolicy:t.initialData,onChange:e=>t.onChange(e)},r=new e(n);return{element:r.panel.element,setData(e){r.setData(e)},getData(){return r.getData()},destroy(){r.destroy()}}}},pte=()=>`pc-layout`,O9=()=>`pc-panel`,mte=()=>`pc-panel-header`,k9=()=>`pc-panel-title`,hte=()=>`pc-panel-meta`,gte=()=>`pc-toolbar`,_te=()=>`pc-input`,vte=()=>`pc-select`,yte=()=>`pc-catalog`,bte=()=>`pc-group`,xte=()=>`pc-group-header`,Ste=()=>`pc-group-chevron`,Cte=()=>`pc-group-body`,wte=()=>`pc-card`,Tte=()=>`pc-card-title`,Ete=()=>`pc-card-meta`,A9=()=>`pc-type-badge`,Dte=()=>`pc-editor`,Ote=()=>`pc-editor-header`,kte=()=>`pc-editor-header-left`,j9=()=>`pc-editor-actions`,M9=()=>`sp-btn sp-btn--sm`,N9=()=>`sp-btn sp-btn--sm sp-btn--accent`,Ate=()=>`pc-dirty-dot`,jte=()=>`pc-editor-body`,Mte=()=>`pc-empty`,Nte=()=>`pc-json-editor`,Pte=()=>`pc-json-error`;function P9(e){let t=document.createElement(`div`);t.className=pte(),t.appendChild(e.catalogPanel.element),t.appendChild(e.editorShell.element);function n(t){e.catalogPanel.update(t),e.editorShell.update(t)}return{element:t,update:n}}var Fte=`scheduling`,Ite=`scoring`,Lte=`seeding`,Rte=`draws`,zte=`avoidance`,Bte=`feedIn`,Vte=`progression`,Hte=`roundNaming`,Ute=`positionActions`,Wte=`matchUpActions`,Gte=`roundRobinTally`,Kte=`rankingPoints`,qte=`competitiveBands`,Jte=`voluntaryConsolation`,Yte=`participant`,Xte=`display`,Zte=`audit`,F9=`Tournament Operations`,I9=`Scoring & Results`,L9=`Ranking Points`,R9=`Draw Configuration`,z9=`Participants`,B9=`Display & Audit`,V9=(e,t,n,r,i)=>({policyType:e,label:t,description:n,group:r,hasEditor:i}),H9=[V9(Fte,`Scheduling`,`Match scheduling, average times, recovery times, daily limits`,F9,!0),V9(Ute,`Position Actions`,`Allowed position actions (alternates, walkovers, withdrawals)`,F9,!1),V9(Wte,`MatchUp Actions`,`Allowed matchUp status transitions and actions`,F9,!1),V9(zte,`Avoidance`,`Draw placement avoidance rules (club, nationality, region)`,F9,!1),V9(Ite,`Scoring`,`Score entry validation and completion rules`,I9,!0),V9(Gte,`Round Robin Tally`,`Round-robin group standing calculation method`,I9,!1),V9(Kte,`Ranking Points`,`Point allocation by draw size, round, and result`,L9,!0),V9(qte,`Competitive Bands`,`Rating/ranking band definitions for competitive grouping`,I9,!1),V9(Rte,`Draws`,`Draw generation rules and structure options`,R9,!1),V9(Lte,`Seeding`,`Seeding thresholds and placement rules by draw size`,R9,!0),V9(Bte,`Feed-In`,`Feed-in consolation structure rules`,R9,!1),V9(Vte,`Progression`,`Player progression between draw structures`,R9,!1),V9(Jte,`Voluntary Consolation`,`Voluntary consolation entry rules`,R9,!1),V9(Hte,`Round Naming`,`Custom round name labels (QF, SF, F, etc.)`,R9,!1),V9(Yte,`Participant Privacy`,`Which participant details are published publicly`,z9,!0),V9(Xte,`Display`,`Client display configuration (public vs admin views)`,B9,!1),V9(Zte,`Audit`,`Audit trail and change logging configuration`,B9,!1)];function U9(e){return H9.find(t=>t.policyType===e)}function Qte(e){return e===`rankingPoints`?V6():e===`scheduling`?$8():e===`scoring`?i7():e===`seeding`?U7():e===`participant`?b9():{}}var W9=[F9,I9,L9,R9,z9,B9];function G9(e,t){let n=t.toLowerCase().trim();return n?e.filter(e=>{let t=U9(e.policyType);return[e.name,e.description,e.policyType,t?.label??``,e.source].join(` `).toLowerCase().includes(n)}):e}function K9(e,t){let n=new Map;if(t===`type`){for(let e of W9)n.set(e,[]);for(let t of e){let e=U9(t.policyType)?.group??`Display & Audit`,r=n.get(e);r?r.push(t):n.set(e,[t])}for(let[e,t]of n)t.length===0&&n.delete(e)}else for(let t of e){let e=t.source===`builtin`?`Built-in Policies`:`User Policies`,r=n.get(e);r?r.push(t):n.set(e,[t])}return n}function q9(e){let t=document.createElement(`div`);t.className=O9(),t.style.overflowY=`auto`,t.style.scrollbarWidth=`thin`,t.style.scrollbarColor=`var(--sp-scrollbar) transparent`;let n=new Set,r=null,i=document.createElement(`div`);i.className=mte();let a=document.createElement(`div`);a.className=k9(),a.textContent=`Policy Catalog`;let o=document.createElement(`div`);o.className=hte(),i.appendChild(a),i.appendChild(o),t.appendChild(i);let s=document.createElement(`div`);s.className=gte();let c=document.createElement(`input`);c.type=`text`,c.placeholder=`Search policies...`,c.className=_te(),c.addEventListener(`input`,()=>e.onSearchChange(c.value));let l=document.createElement(`select`);l.className=vte();for(let[e,t]of[[`type`,`By Type`],[`source`,`By Source`]]){let n=document.createElement(`option`);n.value=e,n.textContent=t,l.appendChild(n)}l.addEventListener(`change`,()=>e.onGroupByChange(l.value));let u=document.createElement(`div`);u.style.cssText=`position:relative;flex-shrink:0`;let d=document.createElement(`button`);d.className=`sp-btn-icon`,d.textContent=`+`,d.title=`New policy`,d.style.cssText=`font-size:1rem;font-weight:700`;let f=document.createElement(`div`);f.style.cssText=`display:none;position:absolute;top:100%;right:0;z-index:100;min-width:180px;background:var(--sp-panel-bg);border:1px solid var(--sp-border);border-radius:12px;box-shadow:var(--sp-panel-shadow);padding:4px;margin-top:4px`;let p=H9.filter(e=>e.hasEditor);for(let t of p){let n=document.createElement(`div`);n.style.cssText=`padding:6px 10px;font-size:12px;border-radius:8px;cursor:pointer;color:var(--sp-text)`,n.textContent=t.label,n.addEventListener(`mouseenter`,()=>{n.style.background=`var(--sp-hover-bg)`}),n.addEventListener(`mouseleave`,()=>{n.style.background=``}),n.addEventListener(`click`,n=>{n.stopPropagation(),f.style.display=`none`,e.onNewPolicy?.(t.policyType)}),f.appendChild(n)}d.addEventListener(`click`,e=>{e.stopPropagation(),f.style.display=f.style.display===`none`?`block`:`none`}),document.addEventListener(`click`,()=>{f.style.display=`none`}),u.appendChild(d),u.appendChild(f),s.appendChild(c),s.appendChild(l),s.appendChild(u),t.appendChild(s);let m=document.createElement(`div`);m.className=yte(),t.appendChild(m);function h(t){r=t;let i=G9(t.catalog,t.searchQuery),a=K9(i,t.groupBy);o.textContent=`${i.length} policies`,c.value!==t.searchQuery&&(c.value=t.searchQuery),l.value!==t.groupBy&&(l.value=t.groupBy),m.innerHTML=``;for(let[i,o]of a){let a=document.createElement(`div`);a.className=bte();let s=n.has(i),c=document.createElement(`div`);c.className=xte();let l=document.createElement(`span`);l.className=Ste(),l.textContent=s?`▶`:`▼`;let u=document.createElement(`span`);u.textContent=`${i} (${o.length})`,c.appendChild(l),c.appendChild(u),c.addEventListener(`click`,()=>{n.has(i)?n.delete(i):n.add(i),r&&h(r)});let d=document.createElement(`div`);d.className=Cte(),s&&(d.style.display=`none`);for(let n of o){let r=document.createElement(`div`);r.className=wte(),n.id===t.selectedId&&r.classList.add(`active`),r.addEventListener(`click`,()=>e.onSelectPolicy(n.id));let i=document.createElement(`div`);i.style.cssText=`display:flex;align-items:center;gap:4px`;let a=document.createElement(`div`);if(a.className=Tte(),a.style.flex=`1`,a.textContent=n.name,i.appendChild(a),e.onDuplicatePolicy){let t=document.createElement(`span`);t.style.cssText=`font-size:10px;cursor:pointer;color:var(--sp-muted);padding:2px`,t.textContent=`⎘`,t.title=`Duplicate`,t.addEventListener(`click`,t=>{t.stopPropagation(),e.onDuplicatePolicy?.(n.id)}),i.appendChild(t)}if(n.source===`user`&&e.onDeletePolicy){let t=document.createElement(`span`);t.style.cssText=`font-size:10px;cursor:pointer;color:var(--sp-muted);padding:2px`,t.textContent=`✕`,t.title=`Delete`,t.addEventListener(`click`,t=>{t.stopPropagation(),e.onDeletePolicy?.(n.id)}),i.appendChild(t)}r.appendChild(i);let o=document.createElement(`div`);o.className=Ete();let s=U9(n.policyType),c=document.createElement(`span`);c.className=A9(),c.textContent=s?.label??n.policyType;let l=document.createElement(`span`);l.className=`${A9()} ${n.source}`,l.textContent=n.source,o.appendChild(c),o.appendChild(l),r.appendChild(o),d.appendChild(r)}a.appendChild(c),a.appendChild(d),m.appendChild(a)}}return{element:t,update:h}}function J9(e){return structuredClone(e)}var Y9=class{constructor(e){this.listeners=new Set,this.localIdCounter=0,this.config=e;let t=new Set((e.builtinPolicies??[]).map(e=>e.id)),n=[...e.builtinPolicies??[],...(e.userPolicies??[]).filter(e=>!t.has(e.id))];this.state={catalog:n,searchQuery:``,groupBy:`type`,selectedId:null,editorDraft:null,editedName:null,dirty:!1}}getState(){return this.state}getSelectedItem(){return this.state.selectedId?this.state.catalog.find(e=>e.id===this.state.selectedId)??null:null}setCatalogSearch(e){this.setState({searchQuery:e})}setCatalogGroupBy(e){this.setState({groupBy:e})}selectPolicy(e){if(this.state.selectedId===e)return;let t=this.state.catalog.find(t=>t.id===e);t&&(this.setState({selectedId:e,editorDraft:J9(t.policyData),editedName:t.name,dirty:!1}),this.config.onSelectionChanged?.(t))}clearSelection(){this.state.selectedId&&(this.setState({selectedId:null,editorDraft:null,editedName:null,dirty:!1}),this.config.onSelectionChanged?.(null))}renamePolicy(e){if(!this.state.selectedId)return;let t=this.getSelectedItem();t&&t.source!==`builtin`&&this.state.editedName!==e&&this.setState({editedName:e,dirty:!0})}updateEditorDraft(e){this.setState({editorDraft:e,dirty:!0})}markDirty(){this.state.dirty||this.setState({dirty:!0})}markClean(){this.state.dirty&&this.setState({dirty:!1})}savePolicy(){let e=this.getSelectedItem();if(!e||!this.state.editorDraft)return;let t={...e,name:this.state.editedName??e.name,policyData:J9(this.state.editorDraft)},n=this.state.catalog.map(e=>e.id===t.id?t:e);this.state={...this.state,catalog:n,dirty:!1},this.emit(),this.config.onPolicySaved?.(t)}resetDraft(){let e=this.getSelectedItem();e&&this.setState({editorDraft:J9(e.policyData),editedName:e.name,dirty:!1})}applyPolicy(){let e=this.getSelectedItem();if(!e)return;let t={...e,policyData:this.state.editorDraft?J9(this.state.editorDraft):J9(e.policyData)};this.config.onPolicyApplied?.(t)}addNewPolicy(e){let t=this.nextLocalId(e),n={id:t,name:`New ${e} policy`,policyType:e,source:`user`,description:``,policyData:Qte(e)};return this.appendAndSelect(n),this.runCreateAndReconcile(n),t}duplicatePolicy(e){let t=this.state.catalog.find(t=>t.id===e);if(!t)return null;let n=this.nextLocalId(t.policyType),r={id:n,name:`${t.name} (Copy)`,policyType:t.policyType,source:`user`,description:t.description,policyData:J9(t.policyData)};return this.appendAndSelect(r),this.runCreateAndReconcile(r),n}reconcilePolicyId(e,t){if(e===t||this.state.catalog.findIndex(t=>t.id===e)===-1)return;let n=this.state.catalog.map(n=>n.id===e?{...n,id:t}:n),r=this.state.selectedId===e;this.state={...this.state,catalog:n,...r?{selectedId:t}:{}},this.emit()}deletePolicy(e){let t=this.state.catalog.find(t=>t.id===e);if(!t||t.source===`builtin`)return;let n=this.state.catalog.filter(t=>t.id!==e),r=this.state.selectedId===e;this.state={...this.state,catalog:n,...r?{selectedId:null,editorDraft:null,dirty:!1}:{}},this.emit(),this.config.onPolicyDeleted?.(e),r&&this.config.onSelectionChanged?.(null)}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setState(e){this.state={...this.state,...e},this.emit()}emit(){for(let e of this.listeners)e(this.state)}nextLocalId(e){return this.localIdCounter+=1,`user-${e}-${Date.now()}-${this.localIdCounter}`}appendAndSelect(e){let t=[...this.state.catalog,e];this.state={...this.state,catalog:t,selectedId:e.id,editorDraft:J9(e.policyData),editedName:e.name,dirty:!1},this.emit(),this.config.onSelectionChanged?.(e)}runCreateAndReconcile(e){let t=this.config.onPolicyCreated?.(e);if(t!==void 0){if(typeof t==`string`){this.reconcilePolicyId(e.id,t);return}Promise.resolve(t).then(t=>{typeof t==`string`&&this.reconcilePolicyId(e.id,t)}).catch(()=>{})}}};function X9(e){let t=document.createElement(`div`);t.className=O9();let n=document.createElement(`div`);n.className=Dte();let r=document.createElement(`div`);r.className=Ote();let i=document.createElement(`div`);i.className=kte();let a=document.createElement(`div`);a.className=k9();let o=document.createElement(`input`);o.type=`text`,o.className=`${k9()} pc-name-input`,o.setAttribute(`aria-label`,`Policy name`),o.setAttribute(`data-testid`,`pc-name-input`),o.placeholder=`Policy name`,o.addEventListener(`input`,()=>e.onRename(o.value));let s=document.createElement(`span`);s.className=A9();let c=document.createElement(`span`);c.className=A9(),c.textContent=`read-only`,c.style.display=`none`;let l=document.createElement(`div`);l.className=Ate(),l.style.display=`none`,l.title=`Unsaved changes`,i.appendChild(l),i.appendChild(a),i.appendChild(o),i.appendChild(s),i.appendChild(c);let u=document.createElement(`div`);u.className=j9();let d=document.createElement(`button`);d.className=M9(),d.textContent=`Reset`,d.addEventListener(`click`,()=>e.onReset());let f=document.createElement(`button`);f.className=N9(),f.textContent=`Save`,f.addEventListener(`click`,()=>e.onSave());let p=document.createElement(`button`);p.className=M9(),p.textContent=`Apply`,p.addEventListener(`click`,()=>e.onApply());let m=document.createElement(`button`);m.className=M9(),m.textContent=`Duplicate`,m.addEventListener(`click`,()=>e.onDuplicate()),u.appendChild(d),u.appendChild(f),u.appendChild(p),u.appendChild(m);let h=document.createElement(`div`);h.className=j9();let g=document.createElement(`button`);g.className=N9(),g.textContent=`Use as Template`,g.addEventListener(`click`,()=>e.onDuplicate()),h.appendChild(g),r.appendChild(i),r.appendChild(u),r.appendChild(h);let _=document.createElement(`div`);_.className=jte(),n.appendChild(r),n.appendChild(_);let v=document.createElement(`div`);v.className=Mte(),v.textContent=`Select a policy to edit`,t.appendChild(n),t.appendChild(v);function y(e){let t=e.selectedId!==null;if(n.style.display=t?`flex`:`none`,v.style.display=t?`none`:`flex`,!t)return;let r=e.catalog.find(t=>t.id===e.selectedId);if(!r)return;let i=r.source===`builtin`,d=e.editedName??r.name;a.textContent=d,document.activeElement!==o&&o.value!==d&&(o.value=d);let f=U9(r.policyType);s.textContent=f?.label??r.policyType,a.style.display=i?``:`none`,o.style.display=i?`none`:``,c.style.display=i?``:`none`,u.style.display=i?`none`:`flex`,h.style.display=i?`flex`:`none`,l.style.display=!i&&e.dirty?`block`:`none`}return{element:t,update:y,bodyElement:_}}function Z9(e){let t=document.createElement(`div`);t.className=Nte();let n=document.createElement(`textarea`);n.value=JSON.stringify(e.initialData,null,2);let r=document.createElement(`div`);r.className=Pte(),r.style.display=`none`;let i={...e.initialData};return n.addEventListener(`input`,()=>{try{let t=JSON.parse(n.value);i=t,r.style.display=`none`,e.onChange(t)}catch(e){r.style.display=`block`,r.textContent=`Invalid JSON: ${e.message}`}}),t.appendChild(n),t.appendChild(r),{element:t,setData(e){i={...e},n.value=JSON.stringify(e,null,2),r.style.display=`none`},getData(){return{...i}},destroy(){t.remove()}}}var Q9=class{constructor(e){this.currentEditor=null,this.container=null,this.store=new Y9(e);let t=q9({onSearchChange:e=>this.store.setCatalogSearch(e),onGroupByChange:e=>this.store.setCatalogGroupBy(e),onSelectPolicy:e=>this.handleSelectPolicy(e),onNewPolicy:e=>{this.store.addNewPolicy(e),this.mountEditorForSelection()},onDuplicatePolicy:e=>{this.store.duplicatePolicy(e),this.mountEditorForSelection()},onDeletePolicy:e=>{this.store.deletePolicy(e),this.store.getSelectedItem()||this.destroyCurrentEditor()}});this.editorShell=X9({onSave:()=>this.store.savePolicy(),onReset:()=>{this.store.resetDraft(),this.syncEditorFromStore()},onApply:()=>this.store.applyPolicy(),onDuplicate:()=>{let e=this.store.getSelectedItem();e&&(this.store.duplicatePolicy(e.id),this.mountEditorForSelection())},onRename:e=>this.store.renamePolicy(e)}),this.layout=P9({catalogPanel:t,editorShell:this.editorShell}),this.unsubscribe=this.store.subscribe(e=>{this.layout.update(e)}),this.layout.update(this.store.getState())}render(e){this.container=e,e.appendChild(this.layout.element)}destroy(){this.destroyCurrentEditor(),this.unsubscribe(),this.container&&this.layout.element.parentNode===this.container&&this.layout.element.remove(),this.container=null}getStore(){return this.store}handleSelectPolicy(e){this.store.selectPolicy(e),this.mountEditorForSelection()}mountEditorForSelection(){this.destroyCurrentEditor();let e=this.store.getSelectedItem();if(!e)return;let t=e.source===`builtin`,n={initialData:{...e.policyData},onChange:e=>{this.store.updateEditorDraft(e)},readonly:t};this.currentEditor=e.policyType===`scheduling`?q5.createEditorInstance(n):e.policyType===`rankingPoints`?X8.createEditorInstance(n):e.policyType===`seeding`?nte.createEditorInstance(n):e.policyType===`scoring`?B7.createEditorInstance(n):e.policyType===`participant`?fte.createEditorInstance(n):Z9(n),this.editorShell.bodyElement.innerHTML=``,this.editorShell.bodyElement.appendChild(this.currentEditor.element)}syncEditorFromStore(){let e=this.store.getState();this.currentEditor&&e.editorDraft&&this.currentEditor.setData(e.editorDraft)}destroyCurrentEditor(){this.currentEditor&&=(this.currentEditor.destroy(),null),this.editorShell.bodyElement.innerHTML=``}};function $9(e,t,n,r){e!==void 0&&e<0&&r.push({severity:`error`,path:t,message:n})}function $te(e,t){if(!e.defaultTimes)return;let n=e.defaultTimes.averageTimes;if(n)for(let e=0;e<n.length;e++)$9(n[e].minutes.default,`defaultTimes.averageTimes[${e}].minutes.default`,`Default average time must be non-negative`,t),$9(n[e].minutes.DOUBLES,`defaultTimes.averageTimes[${e}].minutes.DOUBLES`,`Doubles average time must be non-negative`,t);let r=e.defaultTimes.recoveryTimes;if(r)for(let e=0;e<r.length;e++)$9(r[e].minutes.default,`defaultTimes.recoveryTimes[${e}].minutes.default`,`Default recovery time must be non-negative`,t)}function ene(e,t){if(!e.defaultDailyLimits)return;let n=e.defaultDailyLimits;$9(n.SINGLES,`defaultDailyLimits.SINGLES`,`Singles daily limit must be non-negative`,t),$9(n.DOUBLES,`defaultDailyLimits.DOUBLES`,`Doubles daily limit must be non-negative`,t),$9(n.total,`defaultDailyLimits.total`,`Total daily limit must be non-negative`,t)}function tne(e){let t=[];return $te(e,t),ene(e,t),e.matchUpAverageTimes&&nne(e.matchUpAverageTimes,`matchUpAverageTimes`,`averageTimes`,t),e.matchUpRecoveryTimes&&rne(e.matchUpRecoveryTimes,`matchUpRecoveryTimes`,t),ine(e,t),t}function nne(e,t,n,r){for(let i=0;i<e.length;i++){let a=e[i];a.matchUpFormatCodes.length||r.push({severity:`error`,path:`${t}[${i}].matchUpFormatCodes`,message:`At least one format code is required per format group`});let o=a[n];if(o)for(let e=0;e<o.length;e++)$9(o[e].minutes.default,`${t}[${i}].${n}[${e}].minutes.default`,`Time must be non-negative`,r),$9(o[e].minutes.DOUBLES,`${t}[${i}].${n}[${e}].minutes.DOUBLES`,`Doubles time must be non-negative`,r)}}function rne(e,t,n){for(let r=0;r<e.length;r++){let i=e[r];i.matchUpFormatCodes.length||n.push({severity:`error`,path:`${t}[${r}].matchUpFormatCodes`,message:`At least one format code is required per format group`});for(let e=0;e<i.recoveryTimes.length;e++)$9(i.recoveryTimes[e].minutes.default,`${t}[${r}].recoveryTimes[${e}].minutes.default`,`Recovery time must be non-negative`,n),$9(i.recoveryTimes[e].minutes.DOUBLES,`${t}[${r}].recoveryTimes[${e}].minutes.DOUBLES`,`Doubles recovery time must be non-negative`,n)}}function ine(e,t){let n=(e,n)=>{if(!e)return;let r=new Map;for(let i=0;i<e.length;i++)for(let a of e[i].matchUpFormatCodes)r.has(a)?t.push({severity:`warning`,path:`${n}[${i}].matchUpFormatCodes`,message:`Format code "${a}" also appears in group ${r.get(a)}`}):r.set(a,i)};n(e.matchUpAverageTimes,`matchUpAverageTimes`),n(e.matchUpRecoveryTimes,`matchUpRecoveryTimes`)}function ane(e,t){let n=new Q9(e);return n.render(t),n}e.AvailabilityGrid=tQ,e.COMPETITIVENESS_BUCKETS=Bw,e.COMPETITIVENESS_COLORS=dR,e.COURT_SVG_RESOURCE_SUB_TYPE=qy,e.CompositionEditorStore=e3,e.DEFAULT_COMPETITIVE_BANDS=lR,e.DEFAULT_COURT_CARD_CONFIG=yS,e.DEFAULT_COURT_LAYOUT_CONFIG=lC,e.DEFAULT_DRAW_CARD_CONFIG=iT,e.DEFAULT_EVENT_CARD_CONFIG=XT,e.DEFAULT_SCHEDULE_CELL_CONFIG=j4,e.DEFAULT_TOURNAMENT_CARD_CONFIG=yb,e.DEFAULT_VENUE_CARD_CONFIG=kx,e.DEFAULT_VENUE_LOCATOR_CONFIG=jC,e.DrawStateManager=rO,e.EVENT_CARD_LIGHT_MODE_THRESHOLD=ZT,e.HORIZON_DIRECTION=VV,e.HORIZON_ORDER=LH,e.HORIZON_SOURCE=BV,e.HORIZON_VARIANT=RH,e.INNER_QUANTILES=LV,e.InlineScoringManager=Kl,e.MATCH_FORMATS=GD,e.MIN_HORIZON_DOMAIN=HV,e.NEUTRAL_SEGMENT_COLOR=fR,e.POLICY_TYPE_GROUPS=W9,e.POLICY_TYPE_METADATA=H9,e.PRESSURE_UNSUPPORTED=xB,e.PolicyCatalogControl=Q9,e.PolicyCatalogStore=Y9,e.ProfileStore=TG,e.RELATED_HIGHLIGHT=N2,e.SchedulePageControl=a4,e.SchedulePageStore=k2,e.SchedulingEditorControl=q5,e.SchedulingEditorStore=t5,e.SchedulingProfileControl=RG,e.TopologyBuilderControl=l0,e.TopologyStore=e$,e.activateScheduleCellTypeAhead=Q4,e.aggregateCompetitiveness=Uw,e.applyDropCommit=hG,e.applyRelatedHighlight=F2,e.badmintonCourt=Gy,e.barButton=pU,e.baseballDiamond=Hy,e.basketballCourt=Vy,e.blockLevels=TV,e.buildActiveStripPanel=O4,e.buildCardSkeleton=vb,e.buildCompetitivenessBar=Kw,e.buildCompetitivenessDonut=nT,e.buildCourtCard=zS,e.buildCourtGridSlot=i4,e.buildCourtLayout=EC,e.buildCourtSkeletonCard=tC,e.buildDateStrip=IG,e.buildDrawCard=wT,e.buildDrawOrderGame=aU,e.buildDrawSkeletonCard=UT,e.buildEdgeEditor=a1,e.buildEditorShell=X9,e.buildEventCard=wE,e.buildEventSkeletonCard=HE,e.buildHiveIDLogin=LD,e.buildHorizonRibbonSvg=cH,e.buildHorizonRowSvg=xH,e.buildHorizonRows=ZV,e.buildInteractiveScoringShell=F6,e.buildIssueIndex=pG,e.buildIssuesPanel=ZW,e.buildJsonEditor=Z9,e.buildLadderChart=Wz,e.buildMatchUpCard=Y2,e.buildMatchUpCatalog=n4,e.buildNodeEditor=K$,e.buildPathDifficultyBar=gV,e.buildPolicyCatalogLayout=P9,e.buildPolicyCatalogPanel=q9,e.buildPressureChart=bB,e.buildPressureHorizon=GH,e.buildPressureSeries=rV,e.buildPressureSmallMultiples=lV,e.buildPressureTable=bV,e.buildRatingDistributionChart=Lz,e.buildRoundCard=jG,e.buildRoundCatalog=KW,e.buildScheduleDateStrip=r4,e.buildScheduleGridCell=M4,e.buildScheduleInspectorPanel=T2,e.buildScheduleIssueIndex=A2,e.buildScheduleIssuesPanel=M2,e.buildSchedulePageLayout=b2,e.buildSchedulingEditorPanel=K5,e.buildSchedulingProfileLayout=kW,e.buildSegmentedBar=rT,e.buildSetScore=El,e.buildSkeletonCard=ux,e.buildStructureCard=VQ,e.buildStructureMinimap=Ri,e.buildTeamCard=Lw,e.buildToolbar=M1,e.buildTopologyBuilderLayout=N1,e.buildTopologyCanvas=S$,e.buildTournamentCard=Gb,e.buildVenueBoard=NG,e.buildVenueCard=Xx,e.buildVenueLocator=uw,e.buildVenueSkeletonCard=pS,e.burstChart=WR,e.byPathDifficulty=iV,e.cModal=se,e.calculateComplement=Sl,e.cellCardConfig=kC,e.clearRelatedHighlight=P2,e.competitivenessColor=bR,e.completeMagicLink=RD,e.compositions=ki,e.computeActiveStrip=h4,e.computeActiveStripCell=m4,e.computeBaseRoundByEvent=B2,e.computeReschedulePlacements=S4,e.consumeMagicLink=DD,e.controlBar=jU,e.courthiveComponentsVersion=WD,e.createAvailabilityGrid=nQ,e.createCardPopoverManager=AW,e.createCompositionEditor=t6,e.createCourtSvg=eb,e.createDrawOrderGame=jV,e.createInlineScoringFooter=N6,e.createNotesEditor=Ny,e.createPolicyCatalog=ane,e.createPrintCompositionEditor=s6,e.createSchedulePage=$4,e.createSchedulingEditor=J5,e.createSchedulingProfile=zG,e.describeCourt=lw,e.destroyTipster=Ly,e.destroyVenueLocator=dw,e.drawer=See,e.dropDownButton=cU,e.emptySchedulingPolicy=$8,e.engineToMatchUp=Ul,e.escapeHtml=Ds,e.extractCourtSvgSport=hb,e.extractImageURL=mb,e.filterCatalog=BW,e.filterMatchUpCatalog=z2,e.filterPolicyCatalog=G9,e.findIssuesForLocator=xG,e.formatAddress=nb,e.formatCodeLabel=Z8,e.formatDateRange=fb,e.formatFeeRange=xx,e.formatVenueLocation=rb,e.fromFactoryDrawData=rz,e.fromLegacyDraw=oz,e.generatePreviewMatchUps=_Q,e.getActualPressure=nV,e.getAgeCategoryModal=Ts,e.getCategoryModal=hee,e.getCompetitivenessBand=_R,e.getCompetitivenessFromScoreString=vR,e.getFlightProfileModal=rc,e.getGenerateTeamsModal=lee,e.getMatchUpFormatModal=Ko,e.getMatchWinner=xl,e.getMaxAllowedScore=gl,e.getMockParticipantsModal=ta,e.getPlannedRoundKeys=HW,e.getPolicyTypeMeta=U9,e.getPortPosition=HQ,e.getProjectedPressure=QB,e.getRoundAt=bG,e.getScoringConfig=il,e.getSetFormatForIndex=pl,e.getSetWinner=vl,e.getVenueRounds=yG,e.groupCatalog=VW,e.groupCourts=wC,e.groupMatchUpCatalog=J2,e.groupPolicyCatalog=K9,e.hasVenueGeo=sw,e.hockeyRink=Uy,e.initDrawer=Cee,e.isCompletedStatus=R2,e.isExistingUserConflict=OD,e.isMatchComplete=bl,e.isScorable=Jl,e.isSetComplete=_l,e.isSetTiebreakOnly=ml,e.isSetTimed=hl,e.mapCourtToCardData=cC,e.mapDrawDefinitionToCardData=YT,e.mapEventToCardData=aD,e.mapMatchUpToCellData=Z4,e.mapTournamentToCardData=Dx,e.mapVenueToCardData=vS,e.mapVenueToLocatorData=kw,e.matchUpLabel=x2,e.matchUpSearchKey=w2,e.maxDisplacementFor=kV,e.maxSeverity=CG,e.memberNamesLabel=C2,e.mergeCourtCardConfig=bS,e.mergeCourtLayoutConfig=uC,e.mergeDrawCardConfig=aT,e.mergeEventCardConfig=QT,e.mergeTournamentCardConfig=bb,e.mergeVenueCardConfig=Ax,e.mergeVenueLocatorConfig=MC,e.moveSlot=NV,e.notesToolbar=hy,e.openCompositionEditorModal=ua,e.openScheduleCellConfigModal=fa,e.openScoreEntryDialog=th,e.opponentSpread=zV,e.padelCourt=Ky,e.participantLabel=S2,e.pickProgressionStructure=nz,e.pickleballCourt=Wy,e.ratingToElo=MB,e.renderButtons=KD,e.renderContainer=yi,e.renderField=vn,e.renderForm=Ui,e.renderInlineMatchUp=Zl,e.renderMatchUp=hi,e.renderMenu=Py,e.renderOptions=_n,e.renderParticipant=Ar,e.renderParticipantInput=wn,e.renderRound=gi,e.renderRoundHeader=Mr,e.renderSchematicMatchUp=Bi,e.renderSchematicRound=Vi,e.renderSchematicStructure=Hi,e.renderScorecard=C6,e.renderStructure=_i,e.renderTeamVsHeader=w6,e.requestMagicLink=ED,e.resetScoringConfig=ol,e.reshuffleDrawOrder=IV,e.resolveCourtSport=Qy,e.resolveEventStatus=GE,e.resolveHorizonDomain=GV,e.resolveParticipantRating=FB,e.resolvePublishedComposition=ji,e.resolveTournamentStatus=hx,e.revealDrawOrder=FV,e.scoreDrawOrder=AV,e.scoringModal=xf,e.selectItem=uU,e.setScoringConfig=al,e.settingOf=SC,e.sharedYDomain=sV,e.shouldApplySmartComplement=Cl,e.shouldCreateNextSet=Tl,e.shouldShowTiebreak=wl,e.showCourtAvailabilityModal=QZ,e.shuffleDeranged=wV,e.shuffleWithSeed=SV,e.sideParticipantName=ql,e.signup=wD,e.sortVenueCourts=cw,e.sportFromMatchUpFormat=Zy,e.standardTemplates=$1,e.summarizeCourts=TC,e.surfaceOf=CC,e.swapSlots=PV,e.syncClearVisibility=sO,e.tennisCourt=By,e.tipster=Ry,e.toEngineOutcome=am,e.toggleOverlay=xU,e.topologyToDrawOptions=w0,e.totalBuckets=Ww,e.updateHeadingSelect=_y,e.updateTieScore=T6,e.updateToolbarState=gy,e.validateProfile=tG,e.validateSchedulingPolicy=tne,e.validateTopology=p1,e.validator=mn,Object.defineProperty(e,"validators",{enumerable:!0,get:function(){return tO}}),e.verifyExisting=TD,e.weightedQuantile=RV,e.winProbability=RB,e.wrapSearchWithClear=oO});
|
|
322
|
+
`),disabled:!0})}function U$(e,t,n,r,i,a){let o=t.edges.find(n=>n.targetNodeId===e.id&&s$(n,t.nodes));if(!o||t.nodes.find(e=>e.id===o.sourceNodeId)?.structureType!==w$)return;let s=e.structureOptions?.playoffDrawType||C$;if(i.push({label:`Playoff Draw Type`,field:`playoffDrawType`,value:s,disabled:n,options:I$.map(e=>({...e,selected:e.value===s}))}),n||a.push({control:`playoffDrawType`,onChange:({e:t})=>r.onUpdateNode(e.id,{structureOptions:{...e.structureOptions,playoffDrawType:t.target.value}})}),s===w$){let t=e.structureOptions?.groupSize||4;i.push({label:`Playoff Group Size`,field:`playoffGroupSize`,value:String(t),disabled:n,options:[3,4,5,6,8].map(e=>({label:String(e),value:String(e),selected:e===t}))}),n||a.push({control:`playoffGroupSize`,onChange:({e:t})=>r.onUpdateNode(e.id,{structureOptions:{...e.structureOptions,groupSize:parseInt(t.target.value)}})})}}function W$(e,t,n,r,i){let a=z$(e.drawSize),o=e.qualifyingPositions??a[0];r.push({label:`Qualifying Positions`,field:`qualifyingPositions`,value:String(o),disabled:t,options:a.map(e=>({label:String(e),value:String(e),selected:e===o}))}),t||i.push({control:`qualifyingPositions`,onChange:({e:t})=>n.onUpdateNode(e.id,{qualifyingPositions:parseInt(t.target.value)})});let s=[0,...Array.from({length:6},(e,t)=>2**(t+1)).filter(t=>t<=e.drawSize/2)],c=e.seedsCount??0;r.push({label:`Seeds`,field:`seedsCount`,value:String(c),disabled:t,options:s.map(e=>({label:e?String(e):`None`,value:String(e),selected:e===c}))}),t||i.push({control:`seedsCount`,onChange:({e:t})=>n.onUpdateNode(e.id,{seedsCount:parseInt(t.target.value)})})}function G$(e,t,n){let r=oQ(e.drawSize),i=new Map,a=[];for(let n of t.edges){if(n.targetNodeId!==e.id||!u$(n,t.nodes))continue;let r=n.targetRoundNumber||1;if(r<=1)continue;let o=t.nodes.find(e=>e.id===n.sourceNodeId);if(!o||o.stage!==N$)continue;let s=o.qualifyingPositions||Math.floor(o.drawSize/4);i.set(r,(i.get(r)||0)+s),a.push({targetRound:r,qp:s,sourceName:o.structureName})}let o=[];for(let e of a){let t=r.get(e.targetRound)||0;t>=(i.get(e.targetRound)||0)||(t===0?o.push(`Round ${e.targetRound} is not a feed round — ${e.sourceName} sends ${e.qp} qualifiers`):o.push(`Round ${e.targetRound} has ${t} feed positions but ${e.sourceName} sends ${e.qp} qualifiers`))}if(o.length>0){let e=document.createElement(`div`);e.className=`tb-editor-warning`;for(let t of o){let n=document.createElement(`div`);n.textContent=`\u26a0 ${t}`,e.appendChild(n)}let t=document.createElement(`div`);t.style.marginTop=`6px`,t.textContent=`Change the target round to a feed round, or increase the draw size to create feed positions at that round.`,e.appendChild(t),n.appendChild(e)}}function K$(e){let t=document.createElement(`div`),n=!!e.readOnly;function r(r){t.innerHTML=``;let i=r.selectedNodeId?r.nodes.find(e=>e.id===r.selectedNodeId):null;if(!i)return;let a=document.createElement(`div`);a.className=`tb-editor-header`,a.textContent=`Structure Properties`,t.appendChild(a);let o=document.createElement(`div`);o.className=`tb-editor-body`;let s=[{label:`Name`,field:`structureName`,value:i.structureName,...n?{disabled:!0}:{validator:JD(1),error:`Name required`}},{label:`Stage`,field:`stage`,value:i.stage,disabled:n,options:R$.map(e=>({...e,selected:e.value===i.stage}))},{label:`Structure Type`,field:`structureType`,value:i.structureType,disabled:n,options:L$.map(e=>({...e,selected:e.value===i.structureType}))},{label:i.stage===M$?`Draw Size`:`Structure Size`,field:`drawSize`,type:`number`,value:String(i.drawSize),...n?{disabled:!0}:i.structureType===A$?{validator:XD(0,256),error:`Must be 0-256`}:{validator:XD(2,256),error:`Must be 2-256`}}],c=n?[]:[{control:`structureName`,onChange:({inputs:t})=>e.onUpdateNode(i.id,{structureName:t.structureName.value})},{control:`stage`,onChange:({e:t})=>e.onUpdateNode(i.id,{stage:t.target.value})},{control:`structureType`,onChange:({e:t})=>e.onUpdateNode(i.id,{structureType:t.target.value})},{control:`drawSize`,onChange:({inputs:t})=>{let n=parseInt(t.drawSize.value);if(n<(i.structureType===A$?0:2))return;let r={drawSize:n};if(i.structureType===w$){let e=i.structureOptions?.groupSize||4,t=B$(n);!t.includes(e)&&t.length>0&&(r.structureOptions={...i.structureOptions,groupSize:t[0]})}e.onUpdateNode(i.id,r)}}];i.structureType===w$&&V$(i,r,n,e,s,c),i.stage===F$&&U$(i,r,n,e,s,c),i.stage===N$&&W$(i,n,e,s,c),Ui(o,s,c);let l=document.createElement(`div`);l.className=`field font-medium`,l.style.cssText=`flex-grow: 1`;let u=document.createElement(`label`);u.style.cssText=`font-weight: bold; font-size: larger;`,u.textContent=`MatchUp Format`,l.appendChild(u);let d=document.createElement(`div`);if(d.className=`tb-format-trigger`,d.textContent=i.matchUpFormat||`Not set`,n?(d.style.cursor=`default`,d.style.opacity=`0.7`):d.onclick=()=>{Ko({existingMatchUpFormat:i.matchUpFormat,callback:t=>{e.onUpdateNode(i.id,{matchUpFormat:t||void 0}),d.textContent=t||`Not set`}})},l.appendChild(d),o.appendChild(l),G$(i,r,o),!n&&!e.hideDelete){let t=document.createElement(`button`);t.className=`sp-btn sp-btn--danger sp-btn--full`,t.style.marginTop=`12px`,t.textContent=`Delete Structure`,t.onclick=()=>e.onDeleteNode(i.id),o.appendChild(t)}t.appendChild(o)}return{element:t,update:r}}var{LOSER:q$,QUALIFYING:J$}=t.drawDefinitionConstants;function Y$(e,t){let n=t.nodes.find(t=>t.id===e.sourceNodeId),r=s$(e,t.nodes),i=r&&o$(e,t.nodes);return{isQualifyingWinner:l$(e,t.nodes)&&n?.stage===J$,isRRPosition:i,showRoundFields:!i,showFinishingPositionsInput:r&&!i,showFeedProfile:e.linkType===q$}}function X$(e,t){return t.edges.filter(n=>n.id!==e.id&&n.sourceNodeId===e.sourceNodeId&&s$(n,t.nodes))}var{WINNER:Z$,LOSER:Q$,TOP_DOWN:$$,BOTTOM_UP:e1}=t.drawDefinitionConstants,t1=`POSITION`,n1=`ALTERNATING`,r1=[{label:`Winner`,value:Z$},{label:`Loser`,value:Q$},{label:`Position`,value:t1}],i1=[{label:`Top-Down`,value:$$},{label:`Bottom-Up`,value:e1},{label:`Alternating`,value:n1}];function a1(e){let t=document.createElement(`div`),n=!!e.readOnly;function r(t,r,i,a,o,s){let c=[],l=[],u=r?wQ(r.structureType,r.drawSize,r.structureOptions?.groupSize):{},d=u.playoffRoundsRanges&&u.playoffRoundsRanges.length>0;if(d){let e=u.playoffRoundsRanges.map(e=>({label:`R${e.roundNumber} (${e.finishingPositionRange})`,value:String(e.roundNumber),selected:e.roundNumber===(t.sourceRoundNumber||a)}));c.push({label:`Source Round`,field:`sourceRoundNumber`,value:String(t.sourceRoundNumber||a),disabled:n,options:e})}else c.push({label:`Source Round`,field:`sourceRoundNumber`,type:`number`,value:String(t.sourceRoundNumber||a),disabled:n});return c.push({label:s?`Enter at Round`:`Target Round`,field:`targetRoundNumber`,type:`number`,value:String(t.targetRoundNumber||0),disabled:n}),n||(d?l.push({control:`sourceRoundNumber`,onChange:({e:n})=>{let r=Number.parseInt(n.target.value)||0;e.onUpdateEdge(t.id,{sourceRoundNumber:r||void 0})}}):l.push({control:`sourceRoundNumber`,onChange:({inputs:n})=>{let r=Number.parseInt(n.sourceRoundNumber.value)||0,i=Math.max(0,Math.min(r,a));e.onUpdateEdge(t.id,{sourceRoundNumber:i||void 0})}}),l.push({control:`targetRoundNumber`,onChange:({inputs:n})=>{let r=Number.parseInt(n.targetRoundNumber.value)||0,i=Math.max(0,Math.min(r,o));e.onUpdateEdge(t.id,{targetRoundNumber:i||void 0})}})),{items:c,relationships:l}}function i(t,r,i){let a=r.structureOptions?.groupSize||4,o=new Set(t.finishingPositions||[]),s=X$(t,i),c=new Set;for(let e of s)for(let t of e.finishingPositions||[])c.add(t);let l=document.createElement(`div`);l.className=`field`,l.style.marginBottom=`10px`;let u=document.createElement(`label`);u.style.cssText=`font-size:11px;font-weight:600;color:var(--chc-text-secondary);margin-bottom:3px;display:block;`,u.textContent=`Finishing Positions`,l.appendChild(u);for(let r=1;r<=a;r++){let i=document.createElement(`label`);i.style.cssText=`display:flex;align-items:center;gap:4px;font-size:12px;padding:2px 0;cursor:pointer;`;let a=document.createElement(`input`);a.type=`checkbox`,a.checked=o.has(r);let s=c.has(r);n||s?a.disabled=!0:a.addEventListener(`change`,()=>{let n=new Set(o);a.checked?n.add(r):n.delete(r),e.onUpdateEdge(t.id,{finishingPositions:Array.from(n).sort((e,t)=>e-t)})});let u=document.createElement(`span`);u.textContent=`Position ${r}`,s&&(u.style.color=`var(--chc-text-muted, #999)`,u.title=`Used by another link`,i.style.opacity=`0.5`,i.style.cursor=`not-allowed`),i.appendChild(a),i.appendChild(u),l.appendChild(i)}return l}function a(a){t.innerHTML=``;let o=a.selectedEdgeId?a.edges.find(e=>e.id===a.selectedEdgeId):null;if(!o)return;let s=a.nodes.find(e=>e.id===o.sourceNodeId),c=a.nodes.find(e=>e.id===o.targetNodeId),l=document.createElement(`div`);l.className=`tb-editor-header`,l.textContent=`Link Properties`,t.appendChild(l);let u=document.createElement(`div`);u.className=`tb-editor-body`;let d=document.createElement(`div`);d.style.cssText=`font-size:11px;color:var(--chc-text-muted);margin-bottom:8px;`,d.textContent=`${s?.structureName||`Source`} → ${c?.structureName||`Target`}`,u.appendChild(d);let{isQualifyingWinner:f,isRRPosition:p,showRoundFields:m,showFinishingPositionsInput:h,showFeedProfile:g}=Y$(o,a),_=s?dQ(s.structureType,s.drawSize,s.structureOptions):8,v=c?dQ(c.structureType,c.drawSize,c.structureOptions):8,y=[{label:`Link Type`,field:`linkType`,value:o.linkType,disabled:n,options:r1.map(e=>({...e,selected:e.value===o.linkType}))}],b=n?[]:[{control:`linkType`,onChange:({e:t})=>e.onUpdateEdge(o.id,{linkType:t.target.value})}];if(m){let e=r(o,s,c,_,v,f);y.push(...e.items),b.push(...e.relationships)}if(f&&s){let t=Math.floor(s.drawSize/2),r=Math.floor(s.drawSize/4),i=o.qualifyingPositions||r;y.push({label:`Qualifying Positions`,field:`qualifyingPositions`,type:`number`,value:String(i),disabled:n}),n||b.push({control:`qualifyingPositions`,onChange:({inputs:n})=>{let r=Number.parseInt(n.qualifyingPositions.value)||1,i=Math.max(1,Math.min(r,t));e.onUpdateEdge(o.id,{qualifyingPositions:i})}})}if(g&&(y.push({label:`Feed Profile`,field:`feedProfile`,value:o.feedProfile||$$,disabled:n,options:i1.map(e=>({...e,selected:e.value===(o.feedProfile||$$)}))}),n||b.push({control:`feedProfile`,onChange:({e:t})=>e.onUpdateEdge(o.id,{feedProfile:t.target.value})})),h&&(y.push({label:`Finishing Positions`,field:`finishingPositions`,value:(o.finishingPositions||[]).join(`, `),placeholder:`e.g., 1, 2`,disabled:n}),n||b.push({control:`finishingPositions`,onChange:({inputs:t})=>{let n=t.finishingPositions.value.split(`,`).map(e=>Number.parseInt(e.trim())).filter(e=>!Number.isNaN(e));e.onUpdateEdge(o.id,{finishingPositions:n})}})),Ui(u,y,b),p&&s&&u.appendChild(i(o,s,a)),!n){let t=document.createElement(`button`);t.className=`sp-btn sp-btn--danger sp-btn--full`,t.style.marginTop=`12px`,t.textContent=`Delete Link`,t.onclick=()=>e.onDeleteEdge(o.id),u.appendChild(t)}t.appendChild(u)}return{element:t,update:a}}var{MAIN:o1,QUALIFYING:s1,CONSOLATION:c1,LOSER:l1,SINGLE_ELIMINATION:u1,ROUND_ROBIN:d1,AD_HOC:f1}=t.drawDefinitionConstants;function p1(e){let t=[],n=m1(e,t);return g1(e,h1(e),t),_1(e,t),v1(e,t),y1(e,t),b1(e,n,t),x1(e,t),S1(e,t),w1(e,t),T1(e,t),E1(e)&&t.push({severity:`error`,message:`Circular dependency detected between structures`}),t}function m1(e,t){let n=e.nodes.filter(e=>e.stage===o1);return n.length===0?t.push({severity:`error`,message:`A main draw structure is required`}):n.length>1&&t.push({severity:`error`,message:`Only one main draw structure is allowed`}),n}function h1(e){let t=new Set;for(let n of e.edges)u$(n,e.nodes)&&(n.targetRoundNumber||1)>1&&t.add(n.targetNodeId);let n=new Map;for(let t of e.edges)t.linkType===l1&&n.set(t.targetNodeId,(n.get(t.targetNodeId)||0)+1);for(let[e,r]of n)r>1&&t.add(e);return t}function g1(e,t,n){for(let r of e.nodes){if(r.structureType===u1&&!t.has(r.id)){let t=e.edges.some(e=>e.targetNodeId===r.id);(r.stage===o1||r.stage===s1)&&!t&&(r.drawSize>0&&!(r.drawSize&r.drawSize-1)||n.push({severity:`error`,message:`"${r.structureName}" draw size must be a power of 2`,nodeId:r.id}))}let i=r.structureType===f1?0:2;r.drawSize<i&&n.push({message:`"${r.structureName}" draw size must be at least ${i}`,severity:`error`,nodeId:r.id})}}function _1(e,t){for(let n of e.edges){let r=e.nodes.find(e=>e.id===n.sourceNodeId),i=e.nodes.find(e=>e.id===n.targetNodeId);if(r||t.push({severity:`error`,message:`Edge references missing source node`,edgeId:n.id}),i||t.push({severity:`error`,message:`Edge references missing target node`,edgeId:n.id}),r&&n.sourceRoundNumber&&!s$(n,e.nodes)){let e=dQ(r.structureType,r.drawSize,r.structureOptions);(n.sourceRoundNumber>e||n.sourceRoundNumber<1)&&t.push({severity:`warning`,message:`Edge source round ${n.sourceRoundNumber} is outside "${r.structureName}" range (1-${e})`,edgeId:n.id})}if(i&&n.targetRoundNumber){let e=dQ(i.structureType,i.drawSize,i.structureOptions);(n.targetRoundNumber>e||n.targetRoundNumber<1)&&t.push({severity:`warning`,message:`Edge target round ${n.targetRoundNumber} is outside "${i.structureName}" range (1-${e})`,edgeId:n.id})}}}function v1(e,t){let n=new Map;for(let t of e.edges)l$(t,e.nodes)&&(n.has(t.sourceNodeId)||n.set(t.sourceNodeId,[]),n.get(t.sourceNodeId).push(t.id));for(let[r,i]of n)if(i.length>1){let n=e.nodes.find(e=>e.id===r)?.structureName||`Unknown`;for(let e of i)t.push({severity:`error`,message:`"${n}" has multiple winner links (only one allowed)`,edgeId:e})}}function y1(e,t){let n=new Map;for(let t of e.edges)t.sourceRoundNumber&&!s$(t,e.nodes)&&(n.has(t.sourceNodeId)||n.set(t.sourceNodeId,[]),n.get(t.sourceNodeId).push({round:t.sourceRoundNumber,edgeId:t.id}));for(let[r,i]of n){let n=new Map,a=e.nodes.find(e=>e.id===r)?.structureName||`Unknown`;for(let{round:e,edgeId:r}of i)n.has(e)?t.push({severity:`error`,message:`"${a}" has multiple links from round ${e}`,edgeId:r}):n.set(e,r)}}function b1(e,t,n){let r=e.nodes.filter(e=>e.stage===s1);for(let i of r){let r=e.edges.find(n=>n.sourceNodeId===i.id&&u$(n,e.nodes)&&t.some(e=>e.id===n.targetNodeId));if(r||n.push({severity:`warning`,message:`Qualifying structure "${i.structureName}" has no winner link to a main structure`,nodeId:i.id}),r?.qualifyingPositions){let e=Math.floor(i.drawSize/2);r.qualifyingPositions>e&&n.push({severity:`warning`,message:`Qualifying positions (${r.qualifyingPositions}) exceeds half of "${i.structureName}" draw size (${e})`,edgeId:r.id})}}}function x1(e,t){let n=new Map;for(let t of e.edges){if(!u$(t,e.nodes))continue;let r=t.targetRoundNumber||1;if(r<=1)continue;let i=e.nodes.find(e=>e.id===t.sourceNodeId);if(!i||i.stage!==s1)continue;n.has(t.targetNodeId)||n.set(t.targetNodeId,[]);let a=i.qualifyingPositions||Math.floor(i.drawSize/4);n.get(t.targetNodeId).push({edgeId:t.id,targetRound:r,qp:a,sourceName:i.structureName})}for(let[r,i]of n){let n=e.nodes.find(e=>e.id===r);if(!n)continue;let a=oQ(n.drawSize),o=new Map;for(let e of i)o.set(e.targetRound,(o.get(e.targetRound)||0)+e.qp);for(let{edgeId:e,targetRound:s,sourceName:c}of i)(a.get(s)||0)<(o.get(s)||0)&&t.push({severity:`warning`,message:`"${n.structureName}" round ${s} is not a feed round or has insufficient capacity for ${c} link`,nodeId:r,edgeId:e})}}function S1(e,t){for(let n of e.edges){if(n.linkType!==l1)continue;let r=e.nodes.find(e=>e.id===n.sourceNodeId),i=e.nodes.find(e=>e.id===n.targetNodeId);if(!r||!i)continue;let a=n.sourceRoundNumber||1,o=n.targetRoundNumber||1,s=fQ(r.structureType,r.drawSize,a),c=oQ(i.drawSize);o!==1&&C1(c,o,s,r,i,a,n.id,t)}}function C1(e,t,n,r,i,a,o,s){let c=e.get(t);c===void 0?s.push({severity:`error`,message:`"${i.structureName}" R${t} is not a feed round — cannot receive ${n} losers from "${r.structureName}" R${a}`,edgeId:o}):n>c?s.push({severity:`error`,message:`"${r.structureName}" R${a} produces ${n} losers but "${i.structureName}" R${t} only has ${c} feed positions`,edgeId:o}):n<c&&s.push({severity:`warning`,message:`"${r.structureName}" R${a} produces ${n} losers but "${i.structureName}" R${t} has ${c} feed positions — ${c-n} will be empty`,edgeId:o})}function w1(e,t){let n=e.nodes.filter(e=>e.stage===c1);for(let r of n){let n=e.edges.filter(e=>e.targetNodeId===r.id);if(n.length===0)continue;let i=0;for(let t of n){let n=e.nodes.find(e=>e.id===t.sourceNodeId);if(n){if(t.linkType===l1){let e=t.sourceRoundNumber||1;i+=fQ(n.structureType,n.drawSize,e)}else i+=n.qualifyingPositions||Math.floor(n.drawSize/2)}}i>0&&r.drawSize>i&&t.push({severity:`warning`,message:`"${r.structureName}" draw size (${r.drawSize}) exceeds inbound capacity (${i})`,nodeId:r.id}),i>0&&i>r.drawSize&&t.push({severity:`error`,message:`"${r.structureName}" receives ${i} participants but only has ${r.drawSize} positions`,nodeId:r.id})}}function T1(e,t){let n=new Map;for(let r of e.edges){if(!s$(r,e.nodes))continue;n.has(r.sourceNodeId)||n.set(r.sourceNodeId,[]),n.get(r.sourceNodeId).push({edgeId:r.id,positions:r.finishingPositions||[]});let i=e.nodes.find(e=>e.id===r.sourceNodeId);if(i&&i.structureType===d1){let e=i.structureOptions?.groupSize||4;for(let n of r.finishingPositions||[])(n<1||n>e)&&t.push({severity:`error`,message:`Position ${n} is outside valid range (1-${e}) for "${i.structureName}"`,edgeId:r.id})}}for(let[r,i]of n){if(i.length<2)continue;let n=e.nodes.find(e=>e.id===r)?.structureName||`Unknown`,a=new Map;for(let{edgeId:e,positions:r}of i)for(let i of r)a.has(i)?t.push({severity:`warning`,message:`Position ${i} from "${n}" is used by multiple finishing-position links`,edgeId:e}):a.set(i,e)}}function E1(e){let t=new Map;for(let n of e.nodes)t.set(n.id,[]);for(let n of e.edges){let e=t.get(n.sourceNodeId);e&&e.push(n.targetNodeId)}let n=new Set,r=new Set;function i(e){if(r.has(e))return!0;if(n.has(e))return!1;n.add(e),r.add(e);for(let n of t.get(e)||[])if(i(n))return!0;return r.delete(e),!1}for(let t of e.nodes)if(i(t.id))return!0;return!1}var{MAIN:D1,QUALIFYING:O1,CONSOLATION:k1,PLAY_OFF:A1,LUCKY_DRAW:j1}=t.drawDefinitionConstants;function M1(e,t,n={}){let r=document.createElement(`div`);r.className=`tb-toolbar-wrapper`;let i=document.createElement(`div`);i.className=`tb-toolbar-row`;let a=document.createElement(`div`);a.style.flex=`1`,a.style.minWidth=`0`,i.appendChild(a),r.appendChild(i);let o=document.createElement(`div`);o.className=`tb-validation`,o.style.display=`none`,r.appendChild(o);let s=null,c=()=>{if(!s)return;let e=p1(s);if(o.innerHTML=``,e.length===0){o.style.display=`block`;let e=document.createElement(`div`);e.className=`tb-validation-item`,e.innerHTML=`<span style="color:var(--chc-status-success)">✓ Valid topology</span>`,o.appendChild(e)}else{o.style.display=`block`;for(let t of e){let e=document.createElement(`div`);e.className=`tb-validation-item`;let n=document.createElement(`span`);n.className=`tb-validation-icon tb-validation-icon--${t.severity}`,n.textContent=t.severity===`error`?`!`:`?`;let r=document.createElement(`span`);r.textContent=t.message,e.appendChild(n),e.appendChild(r),o.appendChild(e)}}setTimeout(()=>{o.style.display=`none`},5e3)},l=[];if(!n.readOnly){let t=[{label:`Main`,value:D1,onClick:()=>e.onAddStructure(D1),close:!0},{label:`Lucky Draw`,value:j1,onClick:()=>e.onAddStructure(D1,j1),close:!0},{label:`Qualifying`,value:O1,onClick:()=>e.onAddStructure(O1),close:!0},{label:`Consolation`,value:k1,onClick:()=>e.onAddStructure(k1),close:!0},{label:`Playoff`,value:A1,onClick:()=>e.onAddStructure(A1),close:!0}];l.push({label:`Add Structure`,location:`right`,options:t})}if(!n.hideTemplates&&t.length>0){let n=t.map(n=>({label:n.name,value:n.name,onClick:()=>{let r=t.find(e=>e.name===n.name);r&&e.onLoadTemplate(r)},close:!0}));l.push({label:`Templates`,location:`right`,options:n})}!n.readOnly&&e.onClear&&l.push({label:`Clear`,location:`right`,onClick:()=>e.onClear()}),n.readOnly||l.push({label:`Auto Layout`,location:`right`,onClick:()=>e.onAutoLayout()},{label:`Validate`,location:`right`,onClick:()=>c()}),!n.readOnly&&e.onSaveTemplate&&l.push({label:`Save Template`,location:`right`,intent:`is-success`,onClick:()=>e.onSaveTemplate()}),!n.readOnly&&!n.hideGenerate&&l.push({label:`Generate Draw`,location:`right`,intent:`is-success`,onClick:()=>e.onGenerate()}),MU({target:a,items:l});function u(e){s=e}return{element:r,update:u}}function N1({toolbar:e,canvas:t,nodeEditor:n,edgeEditor:r}){let i=document.createElement(`div`);i.className=`tb-layout`,i.appendChild(e.element);let a=document.createElement(`div`);a.className=`tb-body`,a.appendChild(t.element);let o=document.createElement(`div`);o.className=`tb-editor`,o.appendChild(n.element),o.appendChild(r.element),a.appendChild(o),i.appendChild(a);function s(i){if(e.update(i),t.update(i),n.element.style.display=i.selectedNodeId?``:`none`,r.element.style.display=i.selectedEdgeId?``:`none`,!i.selectedNodeId&&!i.selectedEdgeId){if(!o.querySelector(`.tb-editor-empty`)){let e=document.createElement(`div`);e.className=`tb-editor-empty`,e.textContent=`Select a structure or link to view properties`,o.appendChild(e)}}else{let e=o.querySelector(`.tb-editor-empty`);e&&e.remove()}n.update(i),r.update(i)}function c(){e.destroy?.(),t.destroy?.(),n.destroy?.(),r.destroy?.()}return{element:i,update:s,destroy:c}}var{SINGLE_ELIMINATION:P1,FEED_IN:F1,ROUND_ROBIN:I1,LUCKY_DRAW:L1,MAIN:R1,QUALIFYING:z1,CONSOLATION:B1,PLAY_OFF:V1}=t.drawDefinitionConstants,H1=`WINNER`,U1=`LOSER`,W1=`POSITION`,G1=`tpl-edge-1`,K1=`tpl-edge-2`,q1=`tpl-edge-3`,J1=`tpl-edge-4`,Y1=`tpl-edge-5`,X1=`tpl-edge-6`,Z1=`tpl-edge-7`,Q1=`R1 losers → R1`,$1=[{name:`Single Elimination + Qualifying`,description:`Standard SE main draw with one qualifying structure`,state:{drawName:`SE + Qualifying`,nodes:[{id:`tpl-main`,structureName:`Main Draw`,stage:R1,structureType:P1,drawSize:32,position:{x:320,y:40}},{id:`tpl-qual`,structureName:`Qualifying`,stage:z1,structureType:P1,drawSize:16,qualifyingPositions:4,position:{x:40,y:40}}],edges:[{id:G1,sourceNodeId:`tpl-qual`,targetNodeId:`tpl-main`,linkType:H1,targetRoundNumber:1,qualifyingPositions:4,label:`winners → R1 (4Q)`}]}},{name:`Single Elimination + Qualifying with consolation`,description:`SE main fed by a 64 qualifying (16 qualifiers, 16 seeds); the losers of qualifying round 1 play a consolation`,state:{drawName:`SE + Qualifying + Q consolation`,nodes:[{id:`tpl-main`,structureName:`Main Draw`,stage:R1,structureType:P1,drawSize:64,position:{x:320,y:40}},{id:`tpl-qual`,structureName:`Qualifying`,stage:z1,structureType:P1,drawSize:64,qualifyingPositions:16,seedsCount:16,position:{x:40,y:40}},{id:`tpl-qual-cons`,structureName:`Qualifying Consolation`,stage:B1,structureType:P1,drawSize:32,position:{x:40,y:220}}],edges:[{id:G1,sourceNodeId:`tpl-qual`,targetNodeId:`tpl-main`,linkType:H1,targetRoundNumber:1,qualifyingPositions:16,label:`winners → R1 (16Q)`},{id:K1,sourceNodeId:`tpl-qual`,targetNodeId:`tpl-qual-cons`,linkType:U1,sourceRoundNumber:1,targetRoundNumber:1,feedProfile:`TOP_DOWN`,label:Q1}]}},{name:`FMLC (First Match Loser Consolation)`,description:`Main draw with first match loser consolation`,state:{drawName:`FMLC`,nodes:[{id:`tpl-main`,structureName:`Main Draw`,stage:R1,structureType:P1,drawSize:32,position:{x:40,y:40}},{id:`tpl-cons`,structureName:`Consolation`,stage:B1,structureType:P1,drawSize:16,position:{x:320,y:40}}],edges:[{id:G1,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:U1,sourceRoundNumber:1,targetRoundNumber:1,label:Q1}]}},{name:`Feed-In Championship (FIC)`,description:`Main draw with multi-round fed consolation`,state:{drawName:`FIC`,nodes:[{id:`tpl-main`,structureName:`Main Draw`,stage:R1,structureType:P1,drawSize:32,position:{x:40,y:40}},{id:`tpl-cons`,structureName:`Consolation`,stage:B1,structureType:F1,drawSize:31,position:{x:460,y:40}}],edges:[{id:G1,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:U1,sourceRoundNumber:1,targetRoundNumber:1,label:Q1},{id:K1,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:U1,sourceRoundNumber:2,targetRoundNumber:2,label:`R2 losers → R2`},{id:q1,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:U1,sourceRoundNumber:3,targetRoundNumber:4,label:`R3 losers → R4`},{id:J1,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:U1,sourceRoundNumber:4,targetRoundNumber:6,label:`R4 losers → R6`},{id:Y1,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:U1,sourceRoundNumber:5,targetRoundNumber:8,label:`R5 losers → R8`}]}},{name:`Compass`,description:`8-draw compass structure`,state:{drawName:`Compass`,nodes:[{id:`tpl-east`,structureName:`East`,stage:R1,structureType:P1,drawSize:32,position:{x:40,y:40}},{id:`tpl-west`,structureName:`West`,stage:B1,structureType:P1,drawSize:16,position:{x:400,y:40}},{id:`tpl-north`,structureName:`North`,stage:B1,structureType:P1,drawSize:8,position:{x:400,y:210}},{id:`tpl-ne`,structureName:`Northeast`,stage:B1,structureType:P1,drawSize:4,position:{x:400,y:380}},{id:`tpl-south`,structureName:`South`,stage:B1,structureType:P1,drawSize:8,position:{x:680,y:40}},{id:`tpl-sw`,structureName:`Southwest`,stage:B1,structureType:P1,drawSize:4,position:{x:680,y:210}},{id:`tpl-nw`,structureName:`Northwest`,stage:B1,structureType:P1,drawSize:4,position:{x:680,y:380}},{id:`tpl-se`,structureName:`Southeast`,stage:B1,structureType:P1,drawSize:4,position:{x:960,y:40}}],edges:[{id:G1,sourceNodeId:`tpl-east`,targetNodeId:`tpl-west`,linkType:U1,sourceRoundNumber:1,targetRoundNumber:1,label:Q1},{id:K1,sourceNodeId:`tpl-east`,targetNodeId:`tpl-north`,linkType:U1,sourceRoundNumber:2,targetRoundNumber:1,label:`R2 losers → R1`},{id:q1,sourceNodeId:`tpl-east`,targetNodeId:`tpl-ne`,linkType:U1,sourceRoundNumber:3,targetRoundNumber:1,label:`R3 losers → R1`},{id:J1,sourceNodeId:`tpl-west`,targetNodeId:`tpl-south`,linkType:U1,sourceRoundNumber:1,targetRoundNumber:1,label:Q1},{id:Y1,sourceNodeId:`tpl-west`,targetNodeId:`tpl-sw`,linkType:U1,sourceRoundNumber:2,targetRoundNumber:1,label:`R2 losers → R1`},{id:X1,sourceNodeId:`tpl-north`,targetNodeId:`tpl-nw`,linkType:U1,sourceRoundNumber:1,targetRoundNumber:1,label:Q1},{id:Z1,sourceNodeId:`tpl-south`,targetNodeId:`tpl-se`,linkType:U1,sourceRoundNumber:1,targetRoundNumber:1,label:Q1}]}},{name:`Round Robin + Playoff`,description:`Round robin groups with winners and consolation playoffs`,state:{drawName:`RR + Playoff`,nodes:[{id:`tpl-main`,structureName:`Main Draw`,stage:R1,structureType:I1,drawSize:16,structureOptions:{groupSize:4},position:{x:40,y:40}},{id:`tpl-playoff-gold`,structureName:`Gold Flight`,stage:V1,structureType:P1,drawSize:8,position:{x:320,y:40}},{id:`tpl-playoff-silver`,structureName:`Silver Flight`,stage:V1,structureType:P1,drawSize:8,position:{x:320,y:220}}],edges:[{id:G1,sourceNodeId:`tpl-main`,targetNodeId:`tpl-playoff-gold`,linkType:W1,finishingPositions:[1,2],label:`positions 1,2`},{id:K1,sourceNodeId:`tpl-main`,targetNodeId:`tpl-playoff-silver`,linkType:W1,finishingPositions:[3,4],label:`positions 3,4`}]}},{name:`Lucky Draw + Consolation`,description:`Lucky draw main with consolation receiving R1 losers`,state:{drawName:`Lucky + Consolation`,nodes:[{id:`tpl-main`,structureName:`Main Draw`,stage:R1,structureType:L1,drawSize:11,position:{x:40,y:40}},{id:`tpl-cons`,structureName:`Consolation`,stage:B1,structureType:P1,drawSize:4,position:{x:340,y:40}}],edges:[{id:G1,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:U1,sourceRoundNumber:1,targetRoundNumber:1,label:Q1}]}},{name:`Lucky Draw → Round Robin`,description:`Lucky draw main with R1 losers feeding into round robin consolation`,state:{drawName:`Lucky → RR`,nodes:[{id:`tpl-main`,structureName:`Main Draw`,stage:R1,structureType:L1,drawSize:25,position:{x:40,y:40}},{id:`tpl-cons-rr`,structureName:`Consolation RR`,stage:B1,structureType:I1,drawSize:12,structureOptions:{groupSize:4},position:{x:500,y:40}}],edges:[{id:G1,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons-rr`,linkType:U1,sourceRoundNumber:1,targetRoundNumber:1,label:Q1}]}},{name:`Adaptive (drawSize 11)`,description:`Compass-like multi-structure topology with lucky draw structures`,state:{drawName:`Adaptive`,nodes:[{id:`tpl-east`,structureName:`East`,stage:R1,structureType:L1,drawSize:11,position:{x:40,y:40}},{id:`tpl-west`,structureName:`West`,stage:B1,structureType:L1,drawSize:6,position:{x:340,y:40}},{id:`tpl-north`,structureName:`North`,stage:B1,structureType:P1,drawSize:2,position:{x:340,y:250}},{id:`tpl-south`,structureName:`South`,stage:B1,structureType:P1,drawSize:2,position:{x:600,y:40}}],edges:[{id:G1,sourceNodeId:`tpl-east`,targetNodeId:`tpl-west`,linkType:U1,sourceRoundNumber:1,targetRoundNumber:1,label:`R1 losers → R1 (6 losers)`},{id:K1,sourceNodeId:`tpl-east`,targetNodeId:`tpl-north`,linkType:U1,sourceRoundNumber:2,targetRoundNumber:1,label:`R2 losers → R1 (2 losers)`},{id:q1,sourceNodeId:`tpl-west`,targetNodeId:`tpl-south`,linkType:U1,sourceRoundNumber:1,targetRoundNumber:1,label:`R1 losers → R1 (2 losers)`}]}}],{MAIN:e0,QUALIFYING:t0,CONSOLATION:n0,PLAY_OFF:r0,SINGLE_ELIMINATION:i0,LUCKY_DRAW:a0,WINNER:o0,LOSER:s0}=t.drawDefinitionConstants,c0=`POSITION`,l0=class{constructor(e={}){this.config=e,this.store=new e$(e.initialState);let t=[...$1,...e.templates||[]],n=!!e.readOnly,r=this.buildToolbarPanel(t,n),i=this.buildCanvasPanel(n),a=K$({onUpdateNode:n?()=>{}:(e,t)=>this.store.updateNode(e,t),onUpdateEdge:n?()=>{}:(e,t)=>this.store.updateEdge(e,t),onDeleteNode:n?()=>{}:e=>this.store.removeNode(e),readOnly:n,hideDelete:e.hideDelete}),o=a1({onUpdateEdge:n?()=>{}:(e,t)=>this.store.updateEdge(e,t),onDeleteEdge:n?()=>{}:e=>this.store.removeEdge(e),readOnly:n});this.layout=N1({toolbar:r,canvas:i,nodeEditor:a,edgeEditor:o}),this.unsubscribe=this.store.subscribe(e=>{this.layout.update(e)}),this.layout.update(this.store.getState())}buildToolbarPanel(e,t){return M1({onAddStructure:(e,t)=>this.addDefaultStructure(e,t),onLoadTemplate:e=>{this.store.loadState({...e.state,selectedNodeId:null,selectedEdgeId:null,templateName:e.name})},onAutoLayout:()=>{this.store.autoLayout();let e=this.store.getState();this.store.loadState(e)},onGenerate:()=>this.handleGenerate(),onSaveTemplate:this.config.onSaveTemplate?()=>this.config.onSaveTemplate(this.store.getState()):void 0,onClear:this.config.onClear},e,{hideTemplates:this.config.hideTemplates,hideGenerate:this.config.hideGenerate,readOnly:t})}buildCanvasPanel(e){return S$({onSelectNode:e=>this.store.selectNode(e),onSelectEdge:e=>this.store.selectEdge(e),onDoubleClickNode:this.config.onDoubleClickNode?e=>{let t=this.store.getState(),n=t.nodes.find(t=>t.id===e);n&&this.config.onDoubleClickNode(n,t)}:void 0,onMoveNode:(e,t,n)=>this.store.updateNode(e,{position:{x:t,y:n}}),onCreateEdge:e?()=>{}:(e,t,n)=>{this.handleCreateEdge(e,t,n)},onPortMouseDown:()=>{}})}handleCreateEdge(e,t,n){let r=this.store.getState().nodes.find(t=>t.id===e);if(n===c0){let i=this.store.getState().edges.filter(t=>t.sourceNodeId===e&&t.linkType===c0),a=new Set(i.flatMap(e=>e.finishingPositions||[])),o=r?.structureOptions?.groupSize||4,s=1;for(let e=1;e<=o;e++)if(!a.has(e)){s=e;break}this.store.addEdge({sourceNodeId:e,targetNodeId:t,linkType:n,finishingPositions:[s]})}else if(n===s0){let i=this.store.getState().edges.filter(t=>t.sourceNodeId===e&&t.linkType===s0),a=new Set(i.map(e=>e.sourceRoundNumber)),o=r?dQ(r.structureType,r.drawSize,r.structureOptions):1,s=1;for(let e=1;e<=o;e++)if(!a.has(e)){s=e;break}this.store.addEdge({sourceNodeId:e,targetNodeId:t,linkType:n,sourceRoundNumber:s})}else{let i=n===o0&&r?.stage===t0;this.store.addEdge({sourceNodeId:e,targetNodeId:t,linkType:n,...i&&{targetRoundNumber:1}})}}render(e){e.appendChild(this.layout.element)}destroy(){this.unsubscribe(),this.layout.destroy?.(),this.layout.element.remove()}autoLayout(){this.store.autoLayout();let e=this.store.getState();this.store.loadState(e)}getState(){return this.store.getState()}loadState(e){this.store.loadState(e)}addDefaultStructure(e,t){let n=t===a0,r=this.store.getState().nodes.filter(t=>t.stage===e).length,i={[e0]:n?`Lucky Draw`:`Main Draw`,[t0]:`Qualifying ${r+1}`,[n0]:`Consolation`,[r0]:`Playoff ${r+1}`},a={[e0]:n?11:32,[t0]:16,[n0]:16,[r0]:4}[e]||16,o=this.store.addNode({structureName:i[e]||e,stage:e,structureType:t||i0,drawSize:a,...e===t0&&{qualifyingPositions:Math.floor(a/4)}});this.scrollCanvasToNode(o)}scrollCanvasToNode(e){let t=this.layout.element.querySelector(`.tb-canvas`);t&&requestAnimationFrame(()=>{let n=e.position.x+zQ(e)+40;n>t.scrollLeft+t.clientWidth&&t.scrollTo({left:n-t.clientWidth,behavior:`smooth`})})}handleGenerate(){let e=this.store.getState(),t=p1(e);t.some(e=>e.severity===`error`)&&console.warn(`Topology validation errors:`,t),this.config.onGenerate&&this.config.onGenerate(e)}},{MAIN:u0,CONSOLATION:d0,QUALIFYING:f0,PLAY_OFF:p0,SINGLE_ELIMINATION:m0,FEED_IN:h0,FIRST_MATCH_LOSER_CONSOLATION:g0,FEED_IN_CHAMPIONSHIP:_0,COMPASS:v0,LOSER:y0,ROUND_ROBIN:b0,AD_HOC:x0,LUCKY_DRAW:S0}=t.drawDefinitionConstants;function C0(e,t){let n=e.nodes.filter(e=>e.stage===d0),r=e.nodes.filter(e=>e.stage===f0),i=e.nodes.filter(e=>e.stage===p0);if(t.structureType===b0)return e.edges.some(n=>n.sourceNodeId===t.id&&s$(n,e.nodes)&&e.nodes.some(e=>e.id===n.targetNodeId&&e.stage===p0))?`ROUND_ROBIN_WITH_PLAYOFF`:b0;if(t.structureType===x0)return x0;if(t.structureType===h0)return h0;if(t.structureType===S0)return S0;if(n.length===7&&r.length===0&&i.length===0){let n=e.edges.filter(e=>e.linkType===y0&&e.sourceNodeId===t.id),r=new Set(n.map(e=>e.sourceRoundNumber));if(r.has(1)&&r.has(2)&&r.has(3))return v0}if(n.length===1&&r.length===0&&i.length===0){let r=n[0],i=e.edges.filter(e=>e.linkType===y0&&e.sourceNodeId===t.id&&e.targetNodeId===r.id);if(r.structureType===h0||i.length>1)return _0;if(i.length===1&&i[0].sourceRoundNumber===1)return g0}return m0}function w0(e){let t=e.nodes.find(e=>e.stage===u0);if(!t)throw Error(`No main structure node found`);let n=e.nodes.filter(e=>e.stage===f0),r=e.nodes.filter(e=>e.stage===p0),i=C0(e,t);i===m0&&!k0(t.drawSize)&&(i=h0);let a={drawName:e.drawName,drawType:i,drawSize:t.drawSize,matchUpFormat:t.matchUpFormat||void 0,structureOptions:t.structureOptions||void 0,automated:!0};n.length>0&&D0(a,n,e);let o=[];return T0(e,t,i,o),E0(e,t,r,a),{drawOptions:a,postGenerationMethods:o}}function T0(e,t,n,r){let i=e.nodes.filter(e=>e.stage===d0),a=[g0,_0,v0].includes(n),o=e.edges.filter(e=>e.linkType===y0&&i.some(t=>t.id===e.targetNodeId)&&!(a&&e.sourceNodeId===t.id));if(o.length===0)return;let s=new Map;for(let e of o){let t=`${e.sourceNodeId}→${e.targetNodeId}`;s.has(t)||s.set(t,[]),s.get(t).push(e)}for(let t of s.values()){let n=i.find(e=>e.id===t[0].targetNodeId),a=e.nodes.find(e=>e.id===t[0].sourceNodeId);if(!n||!a)continue;let o=t.map(e=>({sourceRoundNumber:e.sourceRoundNumber||1,targetRoundNumber:e.targetRoundNumber||1}));r.push({method:`attachConsolationStructures`,params:{structureName:n.structureName,structureType:n.structureType,drawSize:n.drawSize,matchUpFormat:n.matchUpFormat||void 0,structureOptions:n.structureOptions||void 0,sourceStructureName:a.structureName,sourceStage:a.stage,links:o}})}}function E0(e,t,n,r){let i=t.structureType===b0,a=i?e.edges.filter(r=>r.sourceNodeId===t.id&&s$(r,e.nodes)&&n.some(e=>e.id===r.targetNodeId)):[];if(i&&a.length>0){let e=new Map;for(let t of a)e.has(t.targetNodeId)||e.set(t.targetNodeId,[]),e.get(t.targetNodeId).push(t);let t=[];for(let[r,i]of e){let e=n.find(e=>e.id===r);if(!e)continue;let a=Array.from(new Set(i.flatMap(e=>e.finishingPositions||[]))).sort((e,t)=>e-t),o=e.structureOptions?.playoffDrawType||m0,s={finishingPositions:a,structureName:e.structureName,drawType:o};o===b0&&e.structureOptions?.groupSize&&(s.structureOptions={groupSize:e.structureOptions.groupSize}),t.push(s)}t.length>0&&(r.structureOptions={...r.structureOptions,playoffGroups:t})}else if(n.length>0){let i=O0(t.id,n,e.edges);i&&(r.withPlayoffs=i)}}function D0(e,t,n){let r=n.edges.filter(e=>u$(e,n.nodes)),i={};for(let e of t){let t=r.find(t=>t.sourceNodeId===e.id),n=t?.targetRoundNumber||1;i[n]||(i[n]=[]),i[n].push({node:e,edge:t})}let a=0;e.qualifyingProfiles=Object.entries(i).map(([e,t])=>{let n=t.map(({node:e,edge:t})=>{let n=e.qualifyingPositions||t?.qualifyingPositions||Math.floor(e.drawSize/4);return a+=n,{structureName:e.structureName,drawType:e.structureType,drawSize:e.drawSize,qualifyingPositions:n,seedsCount:e.seedsCount??0}});return{roundTarget:Number(e),structureProfiles:n}}),e.qualifiersCount=a,e.qualifyingPlaceholder=!0}function O0(e,t,n){let r=n.filter(n=>n.sourceNodeId===e&&n.linkType===y0&&t.some(e=>e.id===n.targetNodeId));if(!r.length)return;let i=[],a={},o={};for(let e of r){if(!e.sourceRoundNumber)continue;let r=t.find(t=>t.id===e.targetNodeId);if(!r)continue;i.push({[e.sourceRoundNumber]:1});let s=`0-${i.length}`;a[s]={name:r.structureName,abbreviation:r.structureName.substring(0,3)};let c=O0(r.id,t,n);c&&(o[e.sourceRoundNumber]=c)}if(i.length)return{roundProfiles:i,...Object.keys(a).length>0&&{playoffAttributes:a},...Object.keys(o).length>0&&{roundPlayoffs:o}}}function k0(e){return e>0&&!(e&e-1)}var{MAIN:qee}=t.drawDefinitionConstants,A0=()=>`spl-layout`,j0=()=>`spl-left`,M0=()=>`spl-toggle`,N0=()=>`spl-center`,P0=()=>`spl-center-header`,F0=()=>`spl-center-title`,I0=()=>`spl-center-actions`,L0=()=>`spl-center-leading`,R0=()=>`spl-grid-slot`,z0=()=>`spl-right`,B0=()=>`spl-matchup-card`,V0=()=>`spl-card-title`,H0=()=>`spl-card-sides`,U0=()=>`spl-card-meta`,W0=()=>`spl-card-chips`,G0=()=>`spl-card-chip`,K0=()=>`sp-panel`,q0=()=>`sp-panel-header`,J0=()=>`sp-panel-title`,Y0=()=>`sp-panel-meta`,X0=()=>`sp-date-strip`,Z0=()=>`sp-date-chip`,Q0=()=>`sp-badges`,$0=()=>`sp-catalog`,e2=()=>`sp-catalog-toolbar`,t2=()=>`sp-input`,n2=()=>`sp-select`,r2=()=>`sp-group`,i2=()=>`sp-group-header`,a2=()=>`sp-group-body`,o2=()=>`sp-group-chevron`,s2=()=>`sp-issues`,c2=()=>`sp-issue`,l2=()=>`sp-issue-code`,u2=()=>`sp-issue-msg`,d2=()=>`sp-inspector`,f2=()=>`sp-kv`,p2=()=>`sp-kv-key`,m2=()=>`sp-kv-value`,h2=()=>`sp-small`,g2=`aria-label`,_2={ArrowRight:[1,0],ArrowLeft:[-1,0],ArrowDown:[0,1],ArrowUp:[0,-1]};function v2(e,t,n){let r=(e,t)=>Number.isFinite(e)?e:t,i=Math.min(Math.max(280,r(e.width,340)),Math.max(1,t-16)),a=Math.min(Math.max(180,r(e.height,380)),Math.max(1,n-16));return{width:i,height:a,left:Math.max(8,Math.min(r(e.left,t-i-24),t-i-8)),top:Math.max(8,Math.min(r(e.top,100),n-a-8))}}function y2(e,t){let n=document.createElement(`section`);n.className=`spl-floating-inspector`,n.setAttribute(`role`,`dialog`),n.setAttribute(g2,`MatchUp inspector`),n.hidden=!0;let r=document.createElement(`div`);r.className=`spl-floating-header`,r.tabIndex=0,r.setAttribute(g2,`Move inspector with arrow keys`);let i=document.createElement(`strong`);i.textContent=`Inspector`,r.appendChild(i);let a=null;function o(e,t){let n=document.createElement(`button`);return n.type=`button`,n.textContent=e,n.addEventListener(`click`,t),r.appendChild(n),n}o(`Reset position`,()=>{l=v2({},globalThis.innerWidth,globalThis.innerHeight),d(!0)}),o(`Dock`,()=>{t.onDock(),a?.focus()}),o(`Close`,()=>{t.onClose(),a?.focus()});let s=document.createElement(`div`);s.className=`spl-floating-content`;let c=document.createElement(`button`);c.type=`button`,c.className=`spl-floating-resize`,c.textContent=`↘`,c.setAttribute(g2,`Resize inspector with arrow keys`),n.append(r,s,c);let l=v2(t.geometry??{},globalThis.innerWidth,globalThis.innerHeight),u=null;function d(e=!1){l=v2(l,globalThis.innerWidth,globalThis.innerHeight),Object.assign(n.style,{left:`${l.left}px`,top:`${l.top}px`,width:`${l.width}px`,height:`${l.height}px`}),e&&t.onGeometryChange?.({...l})}function f(e,t){if(e.button!==0||!t&&e.target.closest(`button`))return;let n=t?c:r;u={id:e.pointerId,x:e.clientX,y:e.clientY,geometry:{...l},resizing:t,target:n},n.setPointerCapture(e.pointerId),e.preventDefault()}function p(e){if(!u||u.id!==e.pointerId)return;let t=e.clientX-u.x,n=e.clientY-u.y;l=u.resizing?{...u.geometry,width:u.geometry.width+t,height:u.geometry.height+n}:{...u.geometry,left:u.geometry.left+t,top:u.geometry.top+n},d()}function m(){if(!u)return;let e=u;u=null,e.target.hasPointerCapture(e.id)&&e.target.releasePointerCapture(e.id),d(!0)}function h(e,t){if(e.target!==e.currentTarget)return;let n=e.shiftKey?40:10,r=_2[e.key];if(!r)return;let i=r[0]*n,a=r[1]*n;e.preventDefault(),l=t?{...l,width:l.width+i,height:l.height+a}:{...l,left:l.left+i,top:l.top+a},d(!0)}r.addEventListener(`pointerdown`,e=>f(e,!1)),c.addEventListener(`pointerdown`,e=>f(e,!0)),r.addEventListener(`keydown`,e=>h(e,!1)),c.addEventListener(`keydown`,e=>h(e,!0)),n.addEventListener(`pointermove`,p),n.addEventListener(`pointerup`,m),n.addEventListener(`pointercancel`,m);let g=()=>d(!0),_=!1;function v(e){n.hidden=!e,e&&!_?(globalThis.addEventListener(`resize`,g),d()):!e&&_&&globalThis.removeEventListener(`resize`,g),_=e}return d(),{element:n,content:s,setVisible:v,rememberFocus:()=>{n.contains(document.activeElement)||(a=document.activeElement)},destroy:()=>{m(),globalThis.removeEventListener(`resize`,g),n.remove(),e.remove()}}}function b2(e,t,n){let r=!!n?.hideLeft,i=(n?.catalogPlacement??n?.catalogSide)===`left`,a=n?.catalogPlacement??n?.catalogSide??`right`,o=n?.inspectorPlacement??`docked`,s=document.createElement(`div`);s.className=A0();let c=null,l=null;if(r)i?s.classList.add(`spl-catalog-left`):s.classList.add(`spl-no-left`);else{c=document.createElement(`div`),c.className=j0(),l=document.createElement(`button`),l.className=M0(),l.textContent=`◀`,l.title=`Toggle sidebar`,l.addEventListener(`click`,()=>t.onToggleLeft()),c.appendChild(l);let n=document.createElement(`div`);n.className=`spl-left-content`,n.style.cssText=`display:flex;flex-direction:column;gap:12px;flex:1;min-height:0`,e.dateStrip.element.style.flex=`1`,e.dateStrip.element.style.minHeight=`0`,e.dateStrip.element.style.overflow=`auto`,n.appendChild(e.dateStrip.element),e.issuesPanel.element.style.flex=`1`,e.issuesPanel.element.style.minHeight=`0`,e.issuesPanel.element.style.overflow=`auto`,n.appendChild(e.issuesPanel.element),c.appendChild(n)}let u=e.courtGridSlot.element,d=document.createElement(`div`);d.className=z0(),d.dataset.panel=`catalog-region`;let f=document.createElement(`div`);f.className=`spl-catalog-region`,d.appendChild(f),e.matchUpCatalog.element.style.flex=`3`,e.matchUpCatalog.element.style.minHeight=`0`,e.matchUpCatalog.element.style.overflow=`auto`,f.appendChild(e.matchUpCatalog.element),e.inspectorPanel.element.style.flex=`1`,e.inspectorPanel.element.style.minHeight=`120px`,e.inspectorPanel.element.style.overflow=`auto`,d.appendChild(e.inspectorPanel.element),c&&s.appendChild(c),i&&r?(s.appendChild(d),s.appendChild(u)):(s.appendChild(u),s.appendChild(d));let p=y2(e.inspectorPanel.element,{geometry:n?.inspectorGeometry,onGeometryChange:n?.onInspectorGeometryChange,onClose:()=>t.onInspectorClose?.(),onDock:()=>_(`docked`)});s.appendChild(p.element);function m(){s.dataset.catalogPlacement=a,s.dataset.inspectorPlacement=o,s.classList.toggle(`spl-catalog-left`,a===`left`&&r),s.classList.toggle(`spl-no-left`,a===`right`&&r);let t=o===`floating`?p.content:d;e.inspectorPanel.element.parentElement!==t&&t.appendChild(e.inspectorPanel.element),p.setVisible(o===`floating`&&e.inspectorPanel.element.style.display!==`none`)}function h(e){a=e,m()}function g(e){s.dataset.catalogVisible=String(e),s.classList.remove(`spl-sidebar-collapsed`)}function _(e){p.rememberFocus(),o=e,m(),n?.onInspectorPlacementChange?.(e)}m();function v(t){r||(t.leftCollapsed?(s.classList.add(`spl-left-collapsed`),l&&(l.textContent=`▶`)):(s.classList.remove(`spl-left-collapsed`),l&&(l.textContent=`◀`)),e.dateStrip.update(t),e.issuesPanel.update(t)),e.courtGridSlot.update(t),e.matchUpCatalog.update(t),e.inspectorPanel.element.style.display=t.inspectorVisible===!1?`none`:``,e.inspectorPanel.update(t),p.setVisible(o===`floating`&&t.inspectorVisible!==!1)}return{element:s,update:v,setCatalogPlacement:h,setCatalogVisible:g,setInspectorPlacement:_,catalogRegion:f,destroy:()=>{p.destroy(),Object.values(e).forEach(e=>e.destroy?.())}}}function x2(e){let t=e.sides;if(t?.length===2){let e=S2(t[0]),n=S2(t[1]);if(e&&n)return`${e} vs ${n}`;if(e)return`${e} vs TBD`;if(n)return`TBD vs ${n}`}return`TBD vs TBD`}function S2(e){return e?`${e.participantName??``}${e.seedNumber?` [${e.seedNumber}]`:``}`:``}function C2(e){return(e?.individualParticipants??[]).map(e=>e.participantName).filter(e=>!!e).join(` / `)}function w2(e){let t=[e.eventName,e.drawName??``,e.roundName??``];if(e.sides)for(let n of e.sides){n.participantName&&t.push(n.participantName);for(let e of n.individualParticipants??[])e.participantName&&t.push(e.participantName)}return t.join(` `).toLowerCase()}function T2(e={}){let t=document.createElement(`div`);t.className=K0(),t.dataset.panel=`inspector`;let n=document.createElement(`div`);n.className=q0();let r=document.createElement(`div`);r.className=J0(),r.textContent=`Inspector`,n.appendChild(r),t.appendChild(n);let i=document.createElement(`div`);i.className=d2(),t.appendChild(i);function a(t){i.innerHTML=``;let n=t.selectedMatchUp;if(!n){let e=document.createElement(`div`);e.className=h2(),e.textContent=`Select a matchUp in the catalog to see details.`,i.appendChild(e);return}if(D2(i,`Event`,n.eventName),D2(i,`Draw`,n.drawName??n.drawId),D2(i,`Round`,n.roundName??`Round ${n.roundNumber}`),D2(i,`Type`,n.matchUpType??`—`),D2(i,`Format`,n.matchUpFormat??`—`),D2(i,`Scheduled`,n.isScheduled?`Yes`:`No`),n.scheduledTime&&D2(i,`Time`,n.scheduledTime),n.scheduledCourtName&&D2(i,`Court`,n.scheduledCourtName),n.sides?.length){let e=document.createElement(`div`);e.className=h2(),e.style.marginTop=`8px`,e.textContent=`Participants:`,i.appendChild(e);let t=document.createElement(`div`);t.className=`spl-inspector-sides`;for(let e of n.sides){let n=document.createElement(`div`);n.className=`spl-inspector-side`;let r=document.createElement(`span`);if(r.textContent=S2(e)||`TBD`,n.appendChild(r),e.ranking){let t=document.createElement(`span`);t.className=`spl-inspector-seed`,t.textContent=`#${e.ranking}`,n.appendChild(t)}t.appendChild(n)}i.appendChild(t)}E2(i,e,n,t)}return{element:t,update:a}}function E2(e,t,n,r){if(t.renderExtra)try{let i=t.renderExtra(n,r);i&&e.appendChild(i)}catch(e){console.error(`[schedule-page] inspector renderExtra threw`,e)}}function D2(e,t,n){let r=document.createElement(`div`);r.className=f2();let i=document.createElement(`div`);i.className=p2(),i.textContent=t;let a=document.createElement(`div`);a.className=m2(),a.textContent=n,r.appendChild(i),r.appendChild(a),e.appendChild(r)}var O2=new Set([`COMPLETED`,`RETIRED`,`WALKOVER`,`DEFAULTED`,`DOUBLE_WALKOVER`,`DOUBLE_DEFAULT`,`CANCELLED`,`ABANDONED`,`DEAD_RUBBER`]);function k2(e){return!!e&&O2.has(e)}function A2(e,t,n=`dim`,r,i=!1){let a=t.toLowerCase().trim();return e.filter(e=>n===`hide`&&e.isScheduled||!i&&k2(e.matchUpStatus)||r&&(r.eventType&&e.matchUpType!==r.eventType||r.eventName&&e.eventName!==r.eventName||r.drawName&&(e.drawName??e.drawId)!==r.drawName||r.gender&&e.gender!==r.gender||r.roundName&&e.roundName!==r.roundName)?!1:!a||w2(e).includes(a))}function j2(e){let t=new Map;for(let n of e){if(n.isScheduled||k2(n.matchUpStatus))continue;let e=t.get(n.eventId);(e===void 0||n.roundNumber<e)&&t.set(n.eventId,n.roundNumber)}return t}var M2={CONSOLATION:`Consolation`,PLAYOFF:`Playoff`,QUALIFYING:`Qualifying`,ROUND_ROBIN:`Round Robin`,PLAY_OFF:`Playoff`,Q_PLAYOFF:`Qualifying Playoff`,COMPASS:`Compass`,VOLUNTARY_CONSOLATION:`Voluntary Consolation`},N2=`Unscheduled`;function P2(e){if(e.structureName&&e.structureName.trim())return e.structureName.trim();let t=e.stage;return!t||t===`MAIN`?``:M2[t]??t.charAt(0)+t.slice(1).toLowerCase().replace(/_/g,` `)}function F2(e){let t;for(let n of e){let e=n.scheduledTime;e&&(t===void 0||e.localeCompare(t)<0)&&(t=e)}return t}function I2(e){let t=(e.sides??[]).filter(e=>!!e.participantId).length;return t>2?2:t}function L2(e){let t=0;for(let n of e){let e=I2(n);if(e>t&&(t=e),t===2)break}return t}function R2(e){return e.map((e,t)=>({item:e,index:t,readiness:I2(e)})).sort((e,t)=>t.readiness-e.readiness||e.index-t.index).map(e=>e.item)}function z2(e,t){let n=new Map,r=e=>{if(t===`draw`)return`${e.eventName} \u2014 ${e.drawName??e.drawId}`;if(t===`round`)return e.roundName??`Round ${e.roundNumber}`;if(t===`structure`){let t=P2(e);return t?`${e.eventName} \u2014 ${t}`:e.eventName}return t===`time`?e.scheduledTime??N2:e.eventName};for(let t of e){let e=r(t),i=n.get(e);i?i.push(t):n.set(e,[t])}return new Map([...n.entries()].map(([e,t])=>[e,R2(t)]).sort((e,t)=>{let n=L2(e[1]),r=L2(t[1]);if(n!==r)return r-n;let i=F2(e[1]),a=F2(t[1]);return i!==void 0&&a!==void 0&&i!==a?i.localeCompare(a):i!==void 0&&a===void 0?-1:i===void 0&&a!==void 0?1:e[0].localeCompare(t[0],void 0,{numeric:!0})}))}function B2(e){let t=e.showScheduled?e.scheduledBehavior:`hide`;return z2(A2(e.matchUpCatalog,e.catalogSearchQuery,t,e.catalogFilters,e.showCompleted),e.catalogGroupBy)}function V2(e){let t=[...B2(e).keys()],n=new Set(e.catalogCollapsedGroups??[]);return t.length>0&&t.every(e=>n.has(e))}function H2(e){return(e.find(e=>e.isActive)??e[0])?.date??null}var U2=class{constructor(e){this.listeners=new Set,this.batchDepth=0,this.emitDeferred=!1,this.config=e;let t=e.initialCatalogState??{};this.state={matchUpCatalog:e.matchUpCatalog,scheduleDates:e.scheduleDates,issues:e.issues??[],selectedDate:H2(e.scheduleDates),selectedMatchUp:null,catalogSearchQuery:t.catalogSearchQuery??``,catalogGroupBy:t.catalogGroupBy??`event`,catalogFilters:t.catalogFilters??{},showCompleted:t.showCompleted??!1,showScheduled:t.showScheduled??!1,catalogCollapsedGroups:t.catalogCollapsedGroups??[],scheduledBehavior:e.scheduledBehavior??`dim`,schedulingMode:e.schedulingMode??`immediate`,pendingActions:[],hasUnsavedChanges:!1,leftCollapsed:!!e.hideLeft,hideLeft:!!e.hideLeft,activeStripVisible:e.activeStripVisible??!0,inspectorVisible:e.inspectorVisible??!0}}getState(){return this.state}setMatchUpCatalog(e){let t=this.state.selectedMatchUp?e.find(e=>e.matchUpId===this.state.selectedMatchUp?.matchUpId)??null:null;this.setState({matchUpCatalog:e,selectedMatchUp:t})}setScheduleDates(e){let t=H2(e),n=H2(this.state.scheduleDates),r=!!t&&t!==n;this.setState({scheduleDates:e,selectedDate:r?t:this.state.selectedDate})}setIssues(e){this.setState({issues:e})}handleMatchUpDrop(e,t){if(this.state.schedulingMode===`immediate`)this.config.onMatchUpDrop?.(e,t);else{let n={kind:`schedule`,matchUpId:e.matchUp.matchUpId,matchUp:e.matchUp,event:t};this.setState({pendingActions:[...this.state.pendingActions,n],hasUnsavedChanges:!0})}}handleMatchUpRemove(e){if(this.state.schedulingMode===`immediate`)this.config.onMatchUpRemove?.(e);else{let t=this.state.pendingActions.findIndex(t=>t.kind===`schedule`&&t.matchUpId===e);if(t>=0){let e=[...this.state.pendingActions];e.splice(t,1),this.setState({pendingActions:e,hasUnsavedChanges:e.length>0})}else{let t={kind:`unschedule`,matchUpId:e};this.setState({pendingActions:[...this.state.pendingActions,t],hasUnsavedChanges:!0})}}}save(){let e=this.state.pendingActions;return e.length?(this.config.onBulkSave?.(e),this.setState({pendingActions:[],hasUnsavedChanges:!1}),e):[]}discardPending(){this.setState({pendingActions:[],hasUnsavedChanges:!1})}getPendingActions(){return this.state.pendingActions}selectDate(e){this.state.selectedDate!==e&&(this.setState({selectedDate:e}),this.config.onDateSelected?.(e))}selectMatchUp(e){this.setState({selectedMatchUp:e}),this.config.onMatchUpSelected?.(e)}setCatalogSearch(e){this.setState({catalogSearchQuery:e})}setCatalogGroupBy(e){e!==this.state.catalogGroupBy&&this.setState({catalogGroupBy:e,catalogCollapsedGroups:[]})}toggleCatalogGroupCollapsed(e){let t=new Set(this.state.catalogCollapsedGroups??[]);t.has(e)?t.delete(e):t.add(e),this.setState({catalogCollapsedGroups:[...t]})}setAllCatalogGroupsCollapsed(e){this.setState({catalogCollapsedGroups:e?[...B2(this.state).keys()]:[]})}setCatalogFilters(e){this.setState({catalogFilters:e})}setShowCompleted(e){this.setState({showCompleted:e})}setShowScheduled(e){this.setState({showScheduled:e})}toggleLeftPanel(){this.setState({leftCollapsed:!this.state.leftCollapsed})}setActiveStripVisible(e){this.state.activeStripVisible!==e&&this.setState({activeStripVisible:e})}toggleActiveStrip(){this.setState({activeStripVisible:!this.state.activeStripVisible})}setInspectorVisible(e){this.state.inspectorVisible!==e&&this.setState({inspectorVisible:e})}toggleInspector(){this.setState({inspectorVisible:!this.state.inspectorVisible})}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setState(e){this.state={...this.state,...e},this.emit()}batch(e){this.batchDepth+=1;try{e()}finally{--this.batchDepth,!this.batchDepth&&this.emitDeferred&&(this.emitDeferred=!1,this.emit())}}emit(){if(this.batchDepth){this.emitDeferred=!0;return}for(let e of this.listeners)e(this.state)}};function W2(e){let t={ERROR:[],WARN:[],INFO:[]},n={},r={total:e.length,ERROR:0,WARN:0,INFO:0},i={},a=e=>e===`ERROR`?0:e===`WARN`?1:2;for(let a of e)if(t[a.severity].push(a),r[a.severity]++,a.date){(n[a.date]??=[]).push(a);let e=i[a.date]??={total:0,ERROR:0,WARN:0,INFO:0};e.total++,e[a.severity]++}let o=(e,t)=>a(e.severity)-a(t.severity)||e.message.localeCompare(t.message),s=[...e].sort(o);for(let e of Object.keys(t))t[e].sort(o);for(let e of Object.keys(n))n[e].sort(o);return{all:s,bySeverity:t,byDate:n,counts:r,countsByDate:i}}var G2=`spl-cell--issue-pulse`;function K2(){let e=document.createElement(`div`);e.className=K0();let t=document.createElement(`div`);t.className=q0();let n=document.createElement(`div`);n.className=J0(),n.textContent=`Issues`;let r=document.createElement(`div`);r.className=Y0(),t.appendChild(n),t.appendChild(r),e.appendChild(t);let i=document.createElement(`div`);i.className=s2(),e.appendChild(i);function a(e){let t=W2(e.issues);if(r.textContent=`${t.counts.total} total (${t.counts.ERROR} errors)`,i.innerHTML=``,!t.all.length){let e=document.createElement(`div`);e.className=h2(),e.textContent=`No scheduling conflicts.`,i.appendChild(e);return}for(let e of t.all.slice(0,30)){let t=document.createElement(`div`);t.className=c2(),e.severity===`ERROR`?t.classList.add(`error`):e.severity===`WARN`?t.classList.add(`warn`):t.classList.add(`info`);let n=document.createElement(`div`);n.className=l2(),n.textContent=e.severity;let r=document.createElement(`div`);if(r.className=u2(),e.participants){if(e.prefix){let t=document.createElement(`span`);t.textContent=e.prefix,t.style.opacity=`0.7`,r.appendChild(t)}let t=document.createElement(`span`);t.textContent=(e.issueType||``)+`: `,t.style.opacity=`0.7`,r.appendChild(t);let n=document.createElement(`span`);if(n.textContent=e.participants,n.style.color=`var(--spl-issue-participant1, #4fc3f7)`,n.style.fontWeight=`600`,r.appendChild(n),e.conflictParticipants?.length){let t=document.createElement(`span`);t.textContent=` conflicts with `,t.style.opacity=`0.7`,r.appendChild(t),e.conflictParticipants.forEach((e,t)=>{if(t>0){let e=document.createElement(`span`);e.textContent=`, `,e.style.opacity=`0.7`,r.appendChild(e)}let n=document.createElement(`span`);n.textContent=e,n.style.color=`var(--spl-issue-participant2, #ffb74d)`,n.style.fontWeight=`600`,r.appendChild(n)})}}else r.textContent=e.message;if(e.matchUpId){t.style.cursor=`pointer`;let n=e.matchUpId;t.addEventListener(`click`,()=>{console.log(`[issuesPanel] clicked issue row, matchUpId:`,n),o(n)})}else console.log(`[issuesPanel] issue has no matchUpId:`,e.message);t.appendChild(n),t.appendChild(r),i.appendChild(t)}}function o(e){let t=`.spl-grid-cell[data-matchup-id="${e}"]`,n=document.querySelector(t);console.log(`[issuesPanel] scrollToMatchUp selector:`,t,`found:`,!!n),n&&(n.scrollIntoView({behavior:`smooth`,block:`center`,inline:`center`}),n.classList.remove(G2),n.offsetWidth,n.classList.add(G2),n.addEventListener(`animationend`,()=>n.classList.remove(G2),{once:!0}))}return{element:e,update:a}}var q2=`spl-related-highlight`;function J2(){for(let e of document.querySelectorAll(`.${q2}`))e.classList.remove(q2)}function Y2(e){J2();for(let t of e)for(let e of document.querySelectorAll(`[data-matchup-id="${CSS.escape(t)}"]`))e.classList.add(q2)}function X2(e,t){e.addEventListener(`mouseenter`,()=>{let n=t();n.length&&Y2([...n,e.dataset.matchupId??``])}),e.addEventListener(`mouseleave`,J2),e.addEventListener(`dragstart`,J2)}function Z2(e,t,n={}){let r=document.createElement(`div`);r.className=B0(),r.setAttribute(`data-matchup-id`,e.matchUpId);let i=k2(e.matchUpStatus);e.isScheduled?(r.classList.add(`scheduled`),r.draggable=!1):i?(r.classList.add(`completed`),r.draggable=!1):(r.draggable=!0,r.addEventListener(`dragstart`,t=>{t.stopPropagation(),t.dataTransfer.setDragImage(r,r.offsetWidth/2,20),t.dataTransfer.setData(`application/json`,JSON.stringify({type:`CATALOG_MATCHUP`,matchUp:e})),t.dataTransfer.effectAllowed=`copyMove`})),n.relatedMatchUpIds&&X2(r,()=>n.relatedMatchUpIds(e)),t.onClick&&r.addEventListener(`click`,n=>{n.stopPropagation(),t.onClick(e)});let a=Q2(e,n);r.appendChild(a);let o=document.createElement(`div`);o.className=H0(),o.textContent=x2(e),r.appendChild(o);let s=document.createElement(`div`);s.className=U0();let c=[];e.drawName&&c.push(e.drawName),e.matchUpType&&c.push(e.matchUpType.toLowerCase()),s.textContent=c.join(` · `),r.appendChild(s);let l=document.createElement(`div`);if(l.className=W0(),e.scheduledTime&&!n.prominentTime&&l.appendChild(t4(e.scheduledTime,`time`)),e.scheduledCourtName&&l.appendChild(t4(e.scheduledCourtName,`court`)),e.matchUpFormat&&l.appendChild(t4(e.matchUpFormat,`type`)),i&&e.matchUpStatus){let t=e.matchUpStatus.replace(/_/g,` `);l.appendChild(t4(t,`status`))}if(e.stage&&e.stage!==`MAIN`){let t=e.stage.replace(/_/g,` `);l.appendChild(t4(t,`stage`))}if(l.children.length&&r.appendChild(l),e4(r,e,n),e.isScheduled){let e=document.createElement(`span`);e.className=`spl-matchup-check`,e.textContent=`✓`,r.appendChild(e)}return r}function Q2(e,t){let n=document.createElement(`div`);if(n.className=V0(),typeof t.roundOffset==`number`){let e=t.roundOffset===0?`spl-card-title--round-current`:t.roundOffset===1?`spl-card-title--round-next`:`spl-card-title--round-later`;n.classList.add(e)}let r=`${e.eventName} \u2014 ${e.roundName??`Round `+e.roundNumber}`;if(!(t.prominentTime&&e.scheduledTime))return n.textContent=r,n;n.classList.add(`with-time`);let i=document.createElement(`span`);return i.className=`spl-card-title-text`,i.textContent=r,n.appendChild(i),n.appendChild($2(e.scheduledTime,t)),n}function $2(e,t){let n=document.createElement(`span`);return n.className=`spl-card-time-header`,t.timeStatus&&(n.dataset.timeStatus=t.timeStatus,t.timeStatus!==`ok`&&n.classList.add(`spl-card-time-header--${t.timeStatus}`)),t.timeTitle&&(n.title=t.timeTitle),n.textContent=e,n}function e4(e,t,n){if(n.renderExtra)try{let r=n.renderExtra(t);if(!r)return;let i=document.createElement(`div`);i.className=`spl-card-extra`,i.appendChild(r),e.appendChild(i)}catch(e){console.error(`[schedule-page] card renderExtra threw`,e)}}function t4(e,t){let n=document.createElement(`div`);return n.className=G0()+` `+t,n.textContent=e,n}var n4=`aria-label`;function r4(e,t){let n=new Set;for(let r of e){let e=t(r);e&&n.add(e)}return[...n].sort((e,t)=>e.localeCompare(t,void 0,{numeric:!0}))}function i4(e){let t=document.createElement(`div`);t.className=K0(),t.dataset.panel=`catalog`;let n=`spl-catalog-drop-over`,r=`is-filtering`,i=null,a=null,o,s={};t.addEventListener(`dragover`,e=>{e.preventDefault(),t.classList.add(n),e.dataTransfer.dropEffect=`move`}),t.addEventListener(`dragleave`,e=>{t.contains(e.relatedTarget)||t.classList.remove(n)}),t.addEventListener(`drop`,r=>{if(t.classList.remove(n),r.preventDefault(),!e.onDropRemove)return;let i;try{i=JSON.parse(r.dataTransfer.getData(`application/json`))}catch{return}(i.type===`CATALOG_MATCHUP`||i.type===`GRID_MATCHUP`)&&e.onDropRemove(i.matchUp.matchUpId)});let c=document.createElement(`div`);c.className=q0();let l=document.createElement(`div`);l.className=`spl-catalog-title-row`;let u=document.createElement(`div`);u.className=J0(),u.textContent=`MatchUp Catalog`;let d=document.createElement(`button`);d.className=`spl-catalog-filter-btn`,d.title=`Filter matchUps`,d.innerHTML=`<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"/></svg>`,l.appendChild(u),l.appendChild(d);let f=document.createElement(`div`);f.className=Y0(),c.appendChild(l),c.appendChild(f),t.appendChild(c);let p=document.createElement(`div`);p.className=e2();let m=document.createElement(`input`);m.type=`text`,m.placeholder=`Search matchUps...`,m.className=t2(),m.addEventListener(`input`,()=>e.onSearchChange(m.value));let h=sO(m,()=>{m.value=``,e.onSearchChange(``),m.focus()}),g=document.createElement(`select`);g.className=n2();for(let[e,t]of[[`event`,`By Event`],[`draw`,`By Draw`],[`round`,`By Round`],[`structure`,`By Structure`]]){let n=document.createElement(`option`);n.value=e,n.textContent=t,g.appendChild(n)}g.addEventListener(`change`,()=>e.onGroupByChange(g.value)),p.appendChild(h),p.appendChild(g),m.setAttribute(n4,`Search matchUps`),g.setAttribute(n4,`Group matchUps`);for(let[e,t]of[[`Previous cards`,-1],[`Next cards`,1]]){let n=document.createElement(`button`);n.type=`button`,n.className=`spl-catalog-scroll`,n.textContent=t<0?`◀`:`▶`,n.setAttribute(n4,e),n.addEventListener(`click`,()=>x.scrollBy({left:t*Math.max(280,x.clientWidth*.8),behavior:`smooth`})),p.appendChild(n)}t.appendChild(p);function _(){o&&=(o.destroy(),void 0)}function v(){return!!(s.eventType||s.eventName||s.drawName||s.gender||s.roundName)}function y(){d.classList.toggle(`active`,v())}function b(){let t=i?.matchUpCatalog??[],n=document.createElement(`div`);n.className=`spl-filter-popover`;let a=document.createElement(`div`);a.className=`spl-filter-header`;let o=document.createElement(`button`);o.className=`spl-filter-clear-btn`,o.textContent=`Clear All`,o.addEventListener(`click`,t=>{t.stopPropagation(),s={},e.onFilterChange(s),y();for(let e of n.querySelectorAll(`select`)){e.value=``,e.classList.remove(r);let t=e.previousElementSibling;t?.classList.contains(`spl-filter-label`)&&t.classList.remove(r)}}),a.appendChild(o);let c=document.createElement(`button`);c.className=`spl-filter-close-btn`,c.textContent=`×`,c.addEventListener(`click`,e=>{e.stopPropagation(),_()}),a.appendChild(c),n.appendChild(a);let l=[{label:`All Event Types`,key:`eventType`,values:r4(t,e=>e.matchUpType)},{label:`All Events`,key:`eventName`,values:r4(t,e=>e.eventName)},{label:`All Flights`,key:`drawName`,values:r4(t,e=>e.drawName)},{label:`All Genders`,key:`gender`,values:r4(t,e=>e.gender)},{label:`All Rounds`,key:`roundName`,values:r4(t,e=>e.roundName)}];for(let t of l){if(t.values.length<2)continue;let i=document.createElement(`label`);i.className=`spl-filter-label`,i.textContent=t.label,n.appendChild(i);let a=document.createElement(`select`);a.className=`spl-filter-select`;let o=document.createElement(`option`);o.value=``,o.textContent=t.label,a.appendChild(o);for(let e of t.values){let t=document.createElement(`option`);t.value=e,t.textContent=e,a.appendChild(t)}a.value=s[t.key]??``;let c=()=>{let e=a.value!==``;a.classList.toggle(r,e),i.classList.toggle(r,e)};c(),a.addEventListener(`change`,()=>{s={...s,[t.key]:a.value||void 0},e.onFilterChange(s),y(),c()}),n.appendChild(a)}let u=document.createElement(`label`);u.className=`spl-filter-toggle`;let d=document.createElement(`input`);d.type=`checkbox`,d.checked=i?.showScheduled??!1,d.addEventListener(`change`,()=>{e.onShowScheduledChange?.(d.checked)}),u.appendChild(d),u.appendChild(document.createTextNode(` Show assigned`)),n.appendChild(u);let f=document.createElement(`label`);f.className=`spl-filter-toggle`;let p=document.createElement(`input`);return p.type=`checkbox`,p.checked=i?.showCompleted??!1,p.addEventListener(`change`,()=>{e.onShowCompletedChange(p.checked)}),f.appendChild(p),f.appendChild(document.createTextNode(` Show completed`)),n.appendChild(f),n}d.addEventListener(`click`,()=>{_(),o=uy(d,{content:b(),placement:t.closest(`[data-catalog-placement="bottom"]`)?`top-start`:`bottom-start`,interactive:!0,trigger:`manual`,appendTo:()=>document.body,onClickOutside:()=>_(),theme:``}),o.show()});let x=document.createElement(`div`);x.className=$0(),t.appendChild(x);function S(e){return[e.matchUpCatalog,e.catalogSearchQuery,e.catalogGroupBy,e.catalogFilters,e.showCompleted,e.showScheduled,e.scheduledBehavior,e.catalogCollapsedGroups]}function C(e){for(let t of x.querySelectorAll(`[data-match-up-id]`))t.classList.toggle(`selected`,t.dataset.matchUpId===e)}function w(t){i=t,s=t.catalogFilters??{},y();let n=S(t);if(a?.every((e,t)=>e===n[t])){C(t.selectedMatchUp?.matchUpId);return}a=n;let r=j2(t.matchUpCatalog),o=B2(t),c=new Set(t.catalogCollapsedGroups??[]),l=[...o.values()].flat().filter(e=>!e.isScheduled).length;f.textContent=`${l} unscheduled`,m.value!==t.catalogSearchQuery&&(m.value=t.catalogSearchQuery,cO(h)),g.value!==t.catalogGroupBy&&(g.value=t.catalogGroupBy),J2(),x.innerHTML=``;for(let[n,i]of o){let a=document.createElement(`div`);a.className=r2();let o=c.has(n),s=document.createElement(`button`);s.type=`button`,s.setAttribute(`aria-expanded`,String(!o)),s.className=i2();let l=document.createElement(`span`);l.className=o2(),l.textContent=o?`▶`:`▼`;let u=document.createElement(`span`);u.textContent=`${n} (${i.length})`,s.appendChild(l),s.appendChild(u),s.addEventListener(`click`,()=>e.onToggleGroupCollapsed?.(n));let d=document.createElement(`div`);d.className=a2(),o&&(d.style.display=`none`);for(let n of o?[]:i){let i=r.get(n.eventId),a=Z2(n,{onClick:t=>e.onMatchUpSelected?.(t)},{roundOffset:i!==void 0&&!n.isScheduled&&!k2(n.matchUpStatus)?Math.max(0,n.roundNumber-i):void 0,renderExtra:e.renderCardExtra,relatedMatchUpIds:e.relatedMatchUpIds});a.dataset.matchUpId=n.matchUpId,t.selectedMatchUp?.matchUpId===n.matchUpId&&a.classList.add(`selected`),d.appendChild(a)}a.appendChild(s),a.appendChild(d),x.appendChild(a)}}return{element:t,update:w,destroy:_}}function a4(e){let t=document.createElement(`div`);t.className=K0();let n=document.createElement(`div`);n.className=q0();let r=document.createElement(`div`);r.className=J0(),r.textContent=`Dates`;let i=document.createElement(`div`);i.className=Y0(),n.appendChild(r),n.appendChild(i),t.appendChild(n);let a=document.createElement(`div`);a.className=X0(),t.appendChild(a);function o(t){let n=t.scheduleDates;i.textContent=`${n.length} dates`,a.innerHTML=``;for(let r of n){let n=document.createElement(`div`);n.className=Z0(),r.date===t.selectedDate&&n.classList.add(`selected`),r.isActive||n.classList.add(`inactive`),n.setAttribute(`data-date`,r.date);let i=document.createElement(`div`),o=document.createElement(`div`);o.style.cssText=`font-weight:800;font-size:0.75rem`,o.textContent=r.date;let s=document.createElement(`div`);s.style.cssText=`font-size:0.6875rem;color:var(--sp-muted)`,s.textContent=r.isActive?`Active`:`Inactive`,i.appendChild(o),i.appendChild(s);let c=document.createElement(`div`);if(c.className=Q0(),r.matchUpCount!=null){let e=document.createElement(`div`);e.className=`spl-date-badge matchups`,e.textContent=`${r.matchUpCount} matchUps`,c.appendChild(e)}if(r.issueCount&&r.issueCount>0){let e=document.createElement(`div`);e.className=`spl-date-badge issues`,e.textContent=`${r.issueCount} issues`,c.appendChild(e)}n.appendChild(i),n.appendChild(c),n.addEventListener(`click`,()=>e.onDateSelected(r.date)),a.appendChild(n)}}return{element:t,update:o}}function o4(e,t,n){let r=document.createElement(`div`);r.className=N0();let i=document.createElement(`div`);i.className=P0();let a=n?.titleLeadingActions,o;if(n?.titleSlot?o=n.titleSlot:(o=document.createElement(`div`),o.className=F0(),o.textContent=`Court Grid`),a){let e=document.createElement(`div`);e.className=L0();let t=Array.isArray(a)?a:[a];for(let n of t)e.appendChild(n);e.appendChild(o),i.appendChild(e)}else i.appendChild(o);let s=n?.headerActions;if(s){let e=document.createElement(`div`);e.className=I0();let t=Array.isArray(s)?s:[s];for(let n of t)e.appendChild(n);i.appendChild(e)}r.appendChild(i);let c=document.createElement(`div`);c.className=R0(),n?.gridMaxHeight&&(c.style.maxHeight=n.gridMaxHeight),e&&c.appendChild(e),c.addEventListener(`dragover`,e=>{e.preventDefault(),e.dataTransfer.dropEffect=`move`}),c.addEventListener(`drop`,e=>{if(e.preventDefault(),!t.onMatchUpDrop)return;let n;try{n=JSON.parse(e.dataTransfer.getData(`application/json`))}catch{return}(n.type===`CATALOG_MATCHUP`||n.type===`GRID_MATCHUP`)&&t.onMatchUpDrop(n,e)}),r.appendChild(c);function l(e){}return{element:r,update:l}}var s4=class{constructor(e){this.container=null,this.store=new U2(e);let t=a4({onDateSelected:e=>this.store.selectDate(e)}),n=K2(),r=o4(e.courtGridElement,{onMatchUpDrop:(e,t)=>{this.store.handleMatchUpDrop(e,t)}},{gridMaxHeight:e.gridMaxHeight,headerActions:e.headerActions,titleLeadingActions:e.titleLeadingActions,titleSlot:e.titleSlot}),i=i4({onSearchChange:e=>this.store.setCatalogSearch(e),onGroupByChange:e=>this.store.setCatalogGroupBy(e),onFilterChange:e=>this.store.setCatalogFilters(e),onShowCompletedChange:e=>this.store.setShowCompleted(e),onShowScheduledChange:e=>this.store.setShowScheduled(e),onMatchUpSelected:e=>this.store.selectMatchUp(e),onDropRemove:e=>{this.store.handleMatchUpRemove(e)},renderCardExtra:e.renderCardExtra,relatedMatchUpIds:e.relatedMatchUpIds,onToggleGroupCollapsed:e=>this.store.toggleCatalogGroupCollapsed(e)}),a=T2({renderExtra:e.renderInspectorExtra});this.layout=b2({dateStrip:t,issuesPanel:n,courtGridSlot:r,matchUpCatalog:i,inspectorPanel:a},{onToggleLeft:()=>this.store.toggleLeftPanel(),onInspectorClose:()=>this.store.setInspectorVisible(!1)},e),this.unsubscribe=this.store.subscribe(e=>{this.layout.update(e)}),this.layout.update(this.store.getState())}render(e){this.container=e,e.appendChild(this.layout.element)}destroy(){this.unsubscribe(),this.layout.destroy(),this.container&&this.layout.element.parentNode===this.container&&this.layout.element.remove(),this.container=null}setCatalogPlacement(e){this.layout.setCatalogPlacement(e)}setCatalogVisible(e){this.layout.setCatalogVisible(e)}setInspectorPlacement(e){this.layout.setInspectorPlacement(e)}getCatalogRegion(){return this.layout.catalogRegion}setMatchUpCatalog(e){this.store.setMatchUpCatalog(e)}setScheduleDates(e){this.store.setScheduleDates(e)}setIssues(e){this.store.setIssues(e)}batch(e){this.store.batch(e)}setActiveStripVisible(e){this.store.setActiveStripVisible(e)}toggleActiveStrip(){this.store.toggleActiveStrip()}get activeStripVisible(){return this.store.getState().activeStripVisible}setInspectorVisible(e){this.store.setInspectorVisible(e)}toggleInspector(){this.store.toggleInspector()}get inspectorVisible(){return this.store.getState().inspectorVisible}save(){return this.store.save()}discardPending(){this.store.discardPending()}get hasUnsavedChanges(){return this.store.getState().hasUnsavedChanges}getStore(){return this.store}},c4=new Set([`IN_PROGRESS`]),l4=new Set([`SUSPENDED`]),u4=new Set([`CANCELLED`,`ABANDONED`,`COMPLETED`,`DEAD_RUBBER`,`DEFAULTED`,`DOUBLE_WALKOVER`,`DOUBLE_DEFAULT`,`RETIRED`,`WALKOVER`]),d4=`in-progress`,f4=`suspended`,p4=`pending`,m4=`completed`;function h4(e,t,n,r){let i=e.matchUpStatus;return i&&n.has(i)?f4:i&&t.has(i)||e.hasScore&&e.winningSide===void 0&&(!i||!r.has(i))?d4:i&&r.has(i)||e.winningSide!==void 0?m4:p4}function g4(e,t){let n=t?.inProgressStatuses??c4,r=t?.suspendedStatuses??l4,i=t?.completedStatuses??u4,a=t?.dueMatchUpIds,o=e.cells,s=-1,c=-1;for(let t=0;t<o.length;t++){let l=o[t];if(!l)continue;let u=h4(l,n,r,i);if(u===d4||u===f4)return{courtId:e.courtId,state:u,matchUp:l,rowIndex:t};u===p4&&l.calledAt&&s===-1&&(s=t),u===p4&&!l.calledAt&&c===-1&&a?.has(l.matchUpId)&&(c=t)}return s===-1?c===-1?{courtId:e.courtId,state:`free`}:{courtId:e.courtId,state:`due`,matchUp:o[c],rowIndex:c}:{courtId:e.courtId,state:`next`,matchUp:o[s],rowIndex:s}}function _4(e,t){return e.columns.map(e=>g4(e,t))}function v4(e,t){if(t.size===0)return!1;for(let n of e.participantIds)if(t.has(n))return!0;return!1}function y4(e,t){return t.roundNumber!==void 0&&t.drawId!==void 0&&e.drawId===t.drawId&&e.roundNumber!==void 0&&e.roundNumber<t.roundNumber}function b4(e,t){let n=new Set(t.participantIds??[]),r=-1,i=-1;for(let a of e.columns)for(let e=0;e<a.cells.length;e++){let o=a.cells[e];o&&o.matchUpId!==t.matchUpId&&(e>r&&v4(o,n)&&(r=e),e>i&&y4(o,t)&&(i=e))}return{participantFloor:r,earlierRoundFloor:i}}function x4(e,t,n){let r=t;for(;r<e.cells.length;){let t=e.cells[r];if(!t||t.matchUpId===n)return r;r++}return r}function S4(e,t,n,r){let i=e.columns.find(e=>e.courtId===t);if(!i)throw Error(`computeActiveStripDropTarget: court "${t}" not present in grid`);let{participantFloor:a,earlierRoundFloor:o}=b4(e,n),s=g4(i,r),c=s.state!==`free`&&s.rowIndex!==void 0?s.rowIndex:-1;return{courtId:t,rowIndex:x4(i,Math.max(0,a+1,o+1,c),n.matchUpId)}}function C4(e,t){if(t.roundNumber===void 0||t.drawId===void 0)return 1/0;for(let n=0;n<e.cells.length;n++){let r=e.cells[n];if(r&&r.matchUpId!==t.matchUpId&&r.drawId===t.drawId&&r.roundNumber!==void 0&&r.roundNumber>t.roundNumber)return n}return 1/0}function w4(e,t){let n=e.columns.map(e=>({courtId:e.courtId,cells:e.cells.slice()})),r={columns:n},i=new Map(n.map(e=>[e.courtId,e]));return t.toSorted((e,t)=>(e.roundNumber??0)-(t.roundNumber??0)||e.matchUpId.localeCompare(t.matchUpId)).map(e=>{let t=e.courtId?i.get(e.courtId):void 0;if(!t)return{matchUpId:e.matchUpId,placed:!1};let n={matchUpId:e.matchUpId,drawId:e.drawId,roundNumber:e.roundNumber,participantIds:e.participantIds},{participantFloor:a,earlierRoundFloor:o}=b4(r,n),s=Math.max(0,a+1,o+1),c=C4(t,e),l=-1;for(let n=s;n<=t.cells.length&&n<c;n++){let r=t.cells[n];if(!r||r.matchUpId===e.matchUpId){l=n;break}}return l===-1?{matchUpId:e.matchUpId,placed:!1}:(t.cells[l]={matchUpId:e.matchUpId,drawId:e.drawId,roundNumber:e.roundNumber,participantIds:e.participantIds},{matchUpId:e.matchUpId,courtId:e.courtId,rowIndex:l,placed:!0})})}var T4=`drop-over`;function E4(e,t,n,r,i){e.addEventListener(`dragover`,t=>{t.preventDefault(),e.classList.add(T4),t.dataTransfer&&(t.dataTransfer.dropEffect=`move`)}),e.addEventListener(`dragleave`,()=>{e.classList.remove(T4)}),e.addEventListener(`drop`,a=>{if(e.classList.remove(T4),a.preventDefault(),!n.onMatchUpDrop)return;let o;try{o=JSON.parse(a.dataTransfer?.getData(`application/json`)??``)}catch{return}if(o.type!==`CATALOG_MATCHUP`&&o.type!==`GRID_MATCHUP`)return;let s={matchUpId:o.matchUp.matchUpId,drawId:o.matchUp.drawId,roundNumber:o.matchUp.roundNumber,participantIds:(o.matchUp.sides??[]).map(e=>e.participantId).filter(e=>!!e)},c=S4(r(),t.courtId,s,i);n.onMatchUpDrop(o,c,a)})}function D4(e){return e===`in-progress`?`LIVE`:e===`suspended`?`SUSP`:e===`next`?`NEXT`:e===`due`?`DUE`:null}function O4(e,t,n,r,i,a){let o=document.createElement(`div`);if(o.className=`spl-active-strip-cell state-${e.state}`,i&&(o.classList.add(`has-availability-block`),e.state!==`free`&&e.matchUp&&o.classList.add(`has-block-conflict`)),o.dataset.courtId=e.courtId,e.rowIndex!==void 0&&(o.dataset.rowIndex=String(e.rowIndex)),r.cellHeight&&(o.style.minHeight=r.cellHeight),i){let e=document.createElement(`div`);e.className=`spl-active-strip-block-banner block-${i.type.toLowerCase()}`;let t=document.createElement(`span`);if(t.className=`spl-active-strip-block-label`,t.textContent=i.label,e.appendChild(t),i.detail){let t=document.createElement(`span`);t.className=`spl-active-strip-block-detail`,t.textContent=i.detail,e.appendChild(t)}o.appendChild(e)}if(e.state!==`free`&&e.matchUp){let t=r.renderCell?.(e.matchUp);if(t)o.appendChild(t);else{let t=document.createElement(`div`);t.className=`spl-active-strip-body`,t.textContent=e.matchUp.participantIds.join(` – `)||e.matchUp.matchUpId,o.appendChild(t)}}let s=e.state!==`free`&&!!e.matchUp;if(!s&&!i&&a?.upcoming){let e=document.createElement(`div`);e.className=`spl-active-strip-runway block-${a.upcoming.type.toLowerCase()}`,e.textContent=a.upcoming.label,a.upcoming.title&&(e.title=a.upcoming.title),o.appendChild(e)}s&&a?.edge&&(o.classList.add(`has-block-edge`,`edge-${a.edge.type.toLowerCase()}`),a.edge.title&&(o.title=a.edge.title));let c=D4(e.state);if(c){let t=document.createElement(`span`);t.className=`spl-active-strip-state-pill`,t.textContent=c,e.state===`suspended`&&(t.title=`Suspended`),e.state===`due`&&(t.title=`Should have started — not called to court`),o.appendChild(t)}return E4(o,e,t,n,r.statusOptions),o}function k4(e){let t=document.createElement(`div`);if(t.className=`spl-active-strip-spacer`,e.cellHeight&&(t.style.minHeight=e.cellHeight),e.spacerLabel){let n=document.createElement(`span`);n.className=`spl-active-strip-spacer-label`,n.textContent=e.spacerLabel,t.appendChild(n)}return t}function A4(e={},t={}){let n=document.createElement(`div`);n.className=`spl-active-strip`;let r={grid:{columns:[]},courts:[]};function i(){return r.grid}function a(){n.innerHTML=``,r.gridTemplateColumns?(n.style.display=`grid`,n.style.gridTemplateColumns=r.gridTemplateColumns):(n.style.display=``,n.style.gridTemplateColumns=``),n.style.minWidth=r.minWidth??``,n.appendChild(k4(t));let a=r.dueMatchUpIds?{...t.statusOptions,dueMatchUpIds:new Set(r.dueMatchUpIds)}:t.statusOptions,o=_4(r.grid,a);for(let a of o){let o=r.courtBlocks?.[a.courtId],s={upcoming:r.courtUpcomingBlocks?.[a.courtId],edge:r.courtBlockEdges?.[a.courtId]};n.appendChild(O4(a,e,i,t,o,s))}}function o(e){r=e,a()}function s(e){n.hidden=!e.activeStripVisible}return{element:n,setData:o,update:s}}var j4=`spl-cell--conflict-highlight`,M4=`spl-cell--complete`,N4={header:[`time`],body:[`eventRound`,`participants`],footer:[`score`],participantDisplay:{nameFormat:`full`,showSeed:!1,showRanking:!1,showNationality:!1,boldWinner:!0,showPotentials:!0}};function P4(e,t){let n=t??N4;return e.isBlocked?I4(e):e.isReserved?F4(e):e.matchUpId?R4(e,n):L4()}function F4(e){let t=document.createElement(`div`);t.className=`spl-grid-cell spl-cell--reserved`,t.dataset.reserved=`true`;let n=document.createElement(`div`);n.className=`spl-grid-cell__reserved-label`;let r=document.createElement(`div`);r.className=`spl-grid-cell__reserved-type`,r.textContent=`Reserved`,n.appendChild(r);let i=e.reservation?.tournamentName;if(i){let e=document.createElement(`div`);e.className=`spl-grid-cell__reserved-name`,e.textContent=i,n.appendChild(e)}let a=e.reservation?.scheduledTime??e.schedule?.scheduledTime;if(a){let e=document.createElement(`div`);e.className=`spl-grid-cell__reserved-time`,e.textContent=a,n.appendChild(e)}return t.appendChild(n),t}function I4(e){let t=document.createElement(`div`);t.className=`spl-grid-cell spl-cell--blocked`;let n=e.booking?.bookingType||`BLOCKED`;t.dataset.bookingType=n;let r=document.createElement(`div`);r.className=`spl-grid-cell__block-label`;let i=document.createElement(`div`);if(i.className=`spl-grid-cell__block-type`,i.textContent=n,r.appendChild(i),e.booking?.rowCount){let t=document.createElement(`div`);t.className=`spl-grid-cell__block-rows`,t.textContent=`${e.booking.rowCount} rows`,r.appendChild(t)}if(e.booking?.notes){let t=document.createElement(`div`);t.className=`spl-grid-cell__block-notes`,t.textContent=e.booking.notes,r.appendChild(t)}let a=e.booking?.registrations??[];if(a.length){let e=document.createElement(`ul`);e.className=`spl-grid-cell__block-registrations`;for(let t of a){let n=document.createElement(`li`);n.className=`spl-grid-cell__block-registration`,n.textContent=t,e.appendChild(n)}r.appendChild(e)}return t.appendChild(r),t}function L4(){let e=document.createElement(`div`);return e.className=`spl-grid-cell spl-cell--empty`,e}function R4(e,t){let n=document.createElement(`div`);if(n.className=`spl-grid-cell`,n.dataset.matchupId=e.matchUpId,e.drawId&&(n.dataset.drawId=e.drawId),e.gender&&(n.dataset.gender=e.gender),z4(n,e),t.header.length){let r=document.createElement(`div`);r.className=`spl-grid-cell__header`,B4(r,t.header,e,t),n.appendChild(r)}if(t.body.length){let r=document.createElement(`div`);r.className=`spl-grid-cell__body`,B4(r,t.body,e,t),n.appendChild(r)}if(t.footer.length){let r=document.createElement(`div`);r.className=`spl-grid-cell__footer`,B4(r,t.footer,e,t),n.appendChild(r)}return e.issueIds?.length&&(n.addEventListener(`mouseenter`,()=>{n.classList.add(j4);for(let t of e.issueIds)document.querySelectorAll(`[data-matchup-id="${t}"]`).forEach(e=>e.classList.add(j4))}),n.addEventListener(`mouseleave`,()=>{n.classList.remove(j4);for(let t of e.issueIds)document.querySelectorAll(`[data-matchup-id="${t}"]`).forEach(e=>e.classList.remove(j4))})),n}function z4(e,t){let n=t.matchUpStatus?.toUpperCase();n===`COMPLETED`||n===`RETIRED`||n===`DEFAULTED`||n===`WALKOVER`?e.classList.add(M4):n===`IN_PROGRESS`?e.classList.add(`spl-cell--inprogress`):n===`ABANDONED`?e.classList.add(`spl-cell--abandoned`):n===`CANCELLED`?e.classList.add(`spl-cell--cancelled`):n===`DOUBLE_WALKOVER`&&e.classList.add(`spl-cell--double-walkover`);let r=t.scheduleState?.toUpperCase();r===`SCHEDULE_ERROR`||r===`ERROR`?e.classList.add(`spl-cell--error`):r===`SCHEDULE_CONFLICT`||r===`CONFLICT`?e.classList.add(`spl-cell--conflict`):r===`SCHEDULE_WARNING`||r===`WARNING`?e.classList.add(`spl-cell--warning`):(r===`SCHEDULE_ISSUE`||r===`ISSUE`)&&e.classList.add(`spl-cell--issue`),(t.issueType===`DOUBLE_BOOKING`||t.issueType===`courtDoubleBooking`)&&e.classList.add(`spl-cell--double-booking`)}function B4(e,t,n,r){for(let i of t){let t=V4(i,n,r);t&&e.appendChild(t)}}function V4(e,t,n){switch(e){case`time`:return H4(t);case`eventRound`:return U4(t);case`participants`:return W4(t,n.participantDisplay);case`score`:return Y4(t);case`matchUpStatus`:return X4(t);case`matchUpFormat`:return Z4(t);case`umpire`:return Q4(t);default:return null}}function H4(e){let t=e.schedule?.scheduledTime||e.schedule?.startTime,n=e.schedule?.timeModifiers,r=e.schedule?.courtAnnotation;if(!t&&!n?.length&&!r)return null;let i=document.createElement(`div`);i.className=`spl-grid-cell__time`;let a=[];if(n?.length&&a.push(n.join(` `)),t&&a.push(t),i.textContent=a.join(` `)||``,r){let e=document.createElement(`span`);e.className=`spl-grid-cell__court-annotation`,e.textContent=` ${r}`,i.appendChild(e)}return i}function U4(e){let t=[e.eventName,e.roundName].filter(Boolean);if(!t.length)return null;let n=document.createElement(`div`);return n.className=`spl-grid-cell__event-round`,n.textContent=t.join(` `),n}function W4(e,t){let n=t??N4.participantDisplay,r=document.createElement(`div`);r.className=`spl-grid-cell__participants`;let i=e.sides||[],a=e.matchUpStatus?.toUpperCase()===`BYE`,o=i.some(e=>e.bye);if(i.length===0&&n.showPotentials!==!1&&e.potentialParticipants?.length){for(let t=0;t<e.potentialParticipants.length;t++){t>0&&r.appendChild(q4());let n=e.potentialParticipants[t].map(e=>e?.participantName||`TBD`).join(` / `),i=document.createElement(`div`);i.className=`spl-grid-cell__side spl-grid-cell__potential`,i.textContent=n||`TBD`,r.appendChild(i)}return r}if(i.length===0)return null;for(let t=0;t<i.length;t++){let a=i[t];a.bye?r.appendChild(K4()):(t>0&&!i[t-1]?.bye&&r.appendChild(q4()),r.appendChild(G4(a,e,n,a.sideNumber??t+1)))}return(a||o)&&i.length===1&&!i[0].bye&&r.appendChild(K4()),r}function G4(e,t,n,r){let i=document.createElement(`div`);i.className=`spl-grid-cell__side`;let a=document.createElement(`span`);a.className=`spl-grid-cell__name`;let o=J4(e.participantName,n.nameFormat)||`TBD`;n.showSeed&&e.seedNumber&&(o+=` [${e.seedNumber}]`),n.showRanking&&e.ranking&&(o+=` (#${e.ranking})`),n.showNationality&&e.nationality&&(o+=` ${e.nationality}`),a.textContent=o;let s=C2(e);if(s&&(a.title=s),n.boldWinner!==!1&&t.winningSide===r&&(a.style.fontWeight=`bold`),i.appendChild(a),e.teamName){let t=document.createElement(`div`);t.className=`spl-grid-cell__team-name`,t.textContent=e.teamName,i.appendChild(t)}return i}function K4(){let e=document.createElement(`div`);return e.className=`spl-grid-cell__bye`,e.textContent=`BYE`,e}function q4(){let e=document.createElement(`div`);return e.className=`spl-grid-cell__vs`,e.textContent=`vs.`,e}function J4(e,t){if(!e)return``;switch(t){case`last`:return e.includes(`,`)?e.split(`,`)[0].trim():e.trim().split(/\s+/).at(-1);case`lastFirst`:{if(e.includes(`,`))return e.trim();let t=e.trim().split(/\s+/);return t.length<2?e:`${t.at(-1)}, ${t.slice(0,-1).join(` `)}`}case`firstLast`:{if(!e.includes(`,`))return e.trim();let[t,...n]=e.split(`,`);return`${n.join(`,`).trim()} ${t.trim()}`}default:return e}}function Y4(e){let t=e.score?.scoreStringSide1,n=e.matchUpStatus?.toUpperCase(),r=n===`WALKOVER`?`WALKOVER`:n===`DEFAULTED`?`DEFAULT`:n===`RETIRED`?`RET.`:n===`DOUBLE_WALKOVER`?`D.W/O`:n===`ABANDONED`?`ABN.`:null;if(!t&&!r)return null;let i=document.createElement(`div`);return i.className=`spl-grid-cell__score`,i.textContent=t||r||``,i}function X4(e){if(!e.matchUpStatus)return null;let t=document.createElement(`div`);t.className=`spl-grid-cell__status-badge`;let n=e.matchUpStatus.toUpperCase();return n===`IN_PROGRESS`?(t.textContent=`LIVE`,t.classList.add(`spl-grid-cell__status-badge--live`)):n===`COMPLETED`||n===`RETIRED`||n===`DEFAULTED`||n===`WALKOVER`?(t.textContent=`DONE`,t.classList.add(`spl-grid-cell__status-badge--done`)):t.textContent=e.matchUpStatus.replaceAll(`_`,` `),t}function Z4(e){if(!e.matchUpFormat)return null;let t=document.createElement(`div`);return t.className=`spl-grid-cell__format`,t.textContent=e.matchUpFormat,t}function Q4(e){if(!e.umpire)return null;let t=document.createElement(`div`);return t.className=`spl-grid-cell__umpire`,t.textContent=e.umpire,t}function $4(e){if(!e)return{matchUpId:``};if(e.isBlocked)return{matchUpId:``,isBlocked:!0,booking:e.booking};let t=(e.sides||[]).map((e,t)=>({sideNumber:e.sideNumber??t+1,participantName:e.participant?.participantName??e.participantName,participantId:e.participantId??e.participant?.participantId,seedNumber:e.seedValue??e.seedNumber,ranking:e.ranking,nationality:e.participant?.nationalityCode??e.participant?.person?.nationalityCode??e.nationalityCode,teamName:e.teamParticipant?.participantName??e.teamName,individualParticipants:e.participant?.individualParticipants,bye:e.bye||void 0}));return{matchUpId:e.matchUpId,drawId:e.drawId,eventName:e.eventName,roundName:e.roundName,matchUpFormat:e.matchUpFormat,matchUpType:e.matchUpType,matchUpStatus:e.matchUpStatus,winningSide:e.winningSide,gender:e.gender??e.eventGender,sides:t,potentialParticipants:e.potentialParticipants,schedule:e.schedule?{scheduledTime:e.schedule.scheduledTime,startTime:e.schedule.startTime,timeModifiers:e.schedule.timeModifiers,courtAnnotation:e.schedule.courtAnnotation,courtId:e.schedule.courtId,courtOrder:e.schedule.courtOrder,venueId:e.schedule.venueId}:void 0,score:e.score?{scoreStringSide1:e.score.scoreStringSide1,scoreStringSide2:e.score.scoreStringSide2}:void 0,umpire:e.umpire?.participantName??e.umpireName,scheduleState:e.scheduleState,issueType:e.issueType,issueIds:e.issueIds}}function e3({cell:e,listProvider:t,onSelect:n,onCancel:r}){let i=e.innerHTML,a=[],o=!1,s=!1;e.classList.add(`spl-cell--typeahead`),e.innerHTML=``;let c=document.createElement(`div`);c.className=`spl-cell--typeahead-wrapper`,e.appendChild(c);let l=document.createElement(`input`);l.type=`text`,l.placeholder=`Search matchUps...`,l.setAttribute(`inputmode`,`search`),l.setAttribute(`autocapitalize`,`off`),l.setAttribute(`enterkeyhint`,`search`),l.setAttribute(`autocomplete`,`off`),c.appendChild(l);let u=e,d=0;for(;u&&d<10;){let e=window.getComputedStyle(u);(e.overflow!==`visible`||e.overflowX!==`visible`||e.overflowY!==`visible`)&&(a.push({el:u,overflow:u.style.overflow,overflowX:u.style.overflowX,overflowY:u.style.overflowY}),u.style.setProperty(`overflow`,`visible`,`important`),u.style.setProperty(`overflow-x`,`visible`,`important`),u.style.setProperty(`overflow-y`,`visible`,`important`)),u=u.parentElement,d++}ge({list:t(),element:l,listProvider:t,callback:e=>{e&&!s&&(o=!0,p(),n(e))}}),l.addEventListener(`keydown`,e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),p(),r?.())}),l.addEventListener(`blur`,()=>{setTimeout(()=>{!o&&!s&&(p(),r?.())},200)});let f=e=>{e.target!==l&&!c.contains(e.target)&&(e.preventDefault(),l.blur())};e.addEventListener(`mousedown`,f),c.addEventListener(`click`,e=>{e.stopPropagation()}),setTimeout(()=>l.focus(),0);function p(){if(!s){s=!0,e.removeEventListener(`mousedown`,f),e.classList.remove(`spl-cell--typeahead`),e.innerHTML=i;for(let{el:e,overflow:t,overflowX:n,overflowY:r}of a)t?e.style.overflow=t:e.style.removeProperty(`overflow`),n?e.style.overflowX=n:e.style.removeProperty(`overflow-x`),r?e.style.overflowY=r:e.style.removeProperty(`overflow-y`)}}return{destroy:p}}function t3(e,t){let n=new s4(e);return n.render(t),n}var n3=class{constructor(e){this.listeners=new Set,this.config=e,this.state={compositionName:e.compositionName||`Custom`,theme:e.composition?.theme||``,configuration:{...e.composition?.configuration||{}},colors:e.composition?.colors?{...e.composition.colors}:void 0,expandedSections:new Set([`theme`,`display`]),isDirty:!1,readOnly:e.readOnly||!1}}getState(){return this.state}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}toggleSection(e){let t=new Set(this.state.expandedSections);t.has(e)?t.delete(e):t.add(e),this.setState({expandedSections:t})}setTheme(e){this.setState({theme:e,isDirty:!0}),this.notifyChange()}setColorField(e,t){let n={...this.state.colors||{}};t===void 0||t===``?delete n[e]:n[e]=t;let r=Object.keys(n).length>0;this.setState({colors:r?n:void 0,isDirty:!0}),this.notifyChange()}clearColors(){this.setState({colors:void 0,isDirty:!0}),this.notifyChange()}setCompositionName(e){this.setState({compositionName:e,isDirty:!0})}setConfigField(e,t){let n={...this.state.configuration,[e]:t};this.setState({configuration:n,isDirty:!0}),this.notifyChange()}setConfigNestedField(e,t,n){let r={...this.state.configuration[e]||{},[t]:n};this.setConfigField(e,r)}setConfiguration(e){this.setState({configuration:{...e},isDirty:!0}),this.notifyChange()}loadComposition(e,t,n,r){this.setState({compositionName:e,theme:t,configuration:{...n},colors:r?{...r}:void 0,isDirty:!1}),this.notifyChange()}resetToInitial(){this.setState({compositionName:this.config.compositionName||`Custom`,theme:this.config.composition?.theme||``,configuration:{...this.config.composition?.configuration||{}},colors:this.config.composition?.colors?{...this.config.composition.colors}:void 0,isDirty:!1}),this.notifyChange()}setState(e){this.state={...this.state,...e},this.emit()}emit(){for(let e of this.listeners)e(this.state)}notifyChange(){this.config.onChange?.({theme:this.state.theme,configuration:this.state.configuration,...this.state.colors?{colors:{...this.state.colors}}:{}})}},r3=()=>`ce-layout`,i3=()=>`ce-left`,a3=()=>`ce-right`,o3=()=>`ce-name-row`,s3=()=>`ce-name-label`,c3=()=>`ce-name-input`,l3=()=>`ce-section`,u3=()=>`ce-section-header`,d3=()=>`ce-section-chevron`,f3=()=>`ce-section-body`,p3=()=>`ce-field`,m3=()=>`ce-field-label`,h3=()=>`ce-field-control`,g3=()=>`ce-select`,_3=()=>`ce-text-input`,v3=()=>`ce-color-input`,y3=()=>`ce-toggle`,b3=()=>`ce-toggle-track`,x3=()=>`ce-preview`,S3=()=>`ce-preview-header`,C3=()=>`ce-preview-body`,w3=()=>`ce-preview-matchup`,T3=()=>`ce-subgroup`,E3=()=>`ce-subgroup-title`;function D3(e,t){let n=document.createElement(`div`);n.className=l3();let r=document.createElement(`div`);r.className=u3();let i=document.createElement(`span`);i.className=d3();let a=document.createElement(`span`);a.textContent=e.label,r.appendChild(i),r.appendChild(a),r.addEventListener(`click`,()=>t.toggleSection(e.id));let o=document.createElement(`div`);o.className=f3();let s=e.factory(t);o.appendChild(s.element),n.appendChild(r),n.appendChild(o);function c(t){let n=t.expandedSections.has(e.id);i.textContent=n?`▼`:`▶`,o.style.display=n?`block`:`none`,n&&s.update(t)}return{element:n,update:c}}function O3(e,t,n,r=!1){let i=document.createElement(`div`);i.className=p3();let a=document.createElement(`span`);a.className=m3(),a.textContent=e,i.appendChild(a);let o=document.createElement(`label`);o.className=y3();let s=document.createElement(`input`);s.type=`checkbox`,s.checked=t,s.disabled=r,s.addEventListener(`change`,()=>n(s.checked));let c=document.createElement(`span`);c.className=b3(),o.appendChild(s),o.appendChild(c);let l=document.createElement(`div`);return l.className=h3(),l.appendChild(o),i.appendChild(l),{element:i,setChecked:e=>{s.checked=e},setDisabled:e=>{s.disabled=e}}}function k3(e,t,n,r,i=!1){let a=document.createElement(`div`);a.className=p3();let o=document.createElement(`span`);o.className=m3(),o.textContent=e,a.appendChild(o);let s=document.createElement(`select`);s.className=g3(),s.disabled=i;for(let e of t){let t=document.createElement(`option`);t.value=e.value,t.textContent=e.label,e.value===n&&(t.selected=!0),s.appendChild(t)}s.addEventListener(`change`,()=>r(s.value));let c=document.createElement(`div`);return c.className=h3(),c.appendChild(s),a.appendChild(c),{element:a,setValue:e=>{s.value=e}}}function A3(e,t,n,r=``,i=!1){let a=document.createElement(`div`);a.className=p3();let o=document.createElement(`span`);o.className=m3(),o.textContent=e,a.appendChild(o);let s=document.createElement(`input`);s.type=`text`,s.className=_3(),s.value=t,s.placeholder=r,s.disabled=i,s.addEventListener(`input`,()=>n(s.value));let c=document.createElement(`div`);return c.className=h3(),c.appendChild(s),a.appendChild(c),{element:a,setValue:e=>{s.value=e}}}function j3(e,t,n,r=!1){let i=document.createElement(`div`);i.className=p3();let a=document.createElement(`span`);a.className=m3(),a.textContent=e,i.appendChild(a);let o=document.createElement(`input`);o.type=`color`,o.className=v3(),o.value=t||`#000000`,o.disabled=r,o.addEventListener(`input`,()=>n(o.value));let s=document.createElement(`div`);return s.className=h3(),s.appendChild(o),i.appendChild(s),{element:i,setValue:e=>{o.value=e||`#000000`}}}var M3=[],N3=new Set;for(let[,e]of Object.entries(ki))if(!N3.has(e.theme)){N3.add(e.theme);let t=e.theme.replace(`chc-theme-`,``).replace(/-/g,` `).replace(/\b\w/g,e=>e.toUpperCase());M3.push({value:e.theme,label:t})}function P3(e){let t=document.createElement(`div`),n=k3(`Load preset`,[{value:``,label:`— Load preset —`},...Object.keys(ki).map(e=>({value:e,label:e}))],``,t=>{if(!t)return;let r=ki[t];r&&e.loadComposition(t,r.theme,r.configuration||{},r.colors),n.setValue(``)},e.getState().readOnly);t.appendChild(n.element);let r=document.createElement(`div`);r.style.cssText=`font-size:0.7rem; color:var(--chc-text-secondary, #999); padding:0 0 0.3rem; line-height:1.3;`,r.textContent=`Replaces all settings with a built-in composition.`,t.appendChild(r);let i=k3(`Color theme`,M3,e.getState().theme,t=>e.setTheme(t),e.getState().readOnly);t.appendChild(i.element);let a=document.createElement(`div`);a.style.cssText=`font-size:0.7rem; color:var(--chc-text-secondary, #999); padding:0 0 0.3rem; line-height:1.3;`,a.textContent=`Changes only the color scheme, not the display settings.`,t.appendChild(a);function o(e){i.setValue(e.theme)}return{element:t,update:o}}var F3=[{key:`border`,label:`MatchUp border`},{key:`borderHover`,label:`MatchUp border (hover)`},{key:`borderInlineStart`,label:`Left-edge accent`},{key:`connector`,label:`Connector lines`,hint:`Use "transparent" to hide`},{key:`matchUpBackground`,label:`MatchUp background`},{key:`internalDividers`,label:`Participant dividers`},{key:`score`,label:`[Score] placeholder text`},{key:`roundHeader`,label:`Round header text`},{key:`roundHeaderBackground`,label:`Round header background`,hint:`Leave blank for transparent`},{key:`roundHeaderUnderline`,label:`Round header underline`,hint:`Divider below header`},{key:`matchUpFooterText`,label:`MatchUp footer text`},{key:`matchUpFooterBackground`,label:`MatchUp footer background`},{key:`matchUpFooterDivider`,label:`MatchUp footer divider`,hint:`Border above footer`}],I3=/^#[0-9a-f]{6}$/i;function L3(e,t,n,r){let i=document.createElement(`div`);i.className=p3();let a=document.createElement(`span`);a.className=m3(),a.textContent=e.label,i.appendChild(a);let o=document.createElement(`div`);o.className=h3(),o.style.display=`flex`,o.style.gap=`0.4rem`,o.style.alignItems=`center`;let s=document.createElement(`input`);s.type=`color`,s.className=v3(),s.disabled=r;let c=document.createElement(`input`);c.type=`text`,c.className=_3(),c.placeholder=e.hint||`#rrggbb or color name`,c.disabled=r,c.style.flex=`1`;function l(e){c.value=e||``,e&&I3.test(e)?(s.value=e,s.style.opacity=`1`):(s.value=`#000000`,s.style.opacity=e?`0.4`:`1`)}return l(t),s.addEventListener(`input`,()=>{c.value=s.value,s.style.opacity=`1`,n(s.value)}),c.addEventListener(`input`,()=>{let e=c.value.trim();e&&I3.test(e)?(s.value=e,s.style.opacity=`1`):s.style.opacity=e?`0.4`:`1`,n(e||void 0)}),o.appendChild(s),o.appendChild(c),i.appendChild(o),{element:i,setValue:l}}function R3(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=document.createElement(`div`);r.style.cssText=`font-size:0.7rem; color:var(--chc-text-secondary, #999); padding:0 0 0.4rem; line-height:1.3;`,r.textContent=`Per-composition overrides. Leave blank to inherit from the selected theme.`,t.appendChild(r);let i=F3.map(r=>{let i=L3(r,e.getState().colors?.[r.key],t=>e.setColorField(r.key,t),n);return t.appendChild(i.element),{def:r,ctrl:i}}),a=document.createElement(`div`);a.className=p3();let o=document.createElement(`span`);o.className=m3(),o.textContent=`Left-edge width`,a.appendChild(o);let s=document.createElement(`div`);s.className=h3();let c=document.createElement(`input`);c.type=`text`,c.className=_3(),c.placeholder=`e.g. 10px`,c.disabled=n,c.value=e.getState().colors?.borderInlineStartWidth||``,c.addEventListener(`input`,()=>{let t=c.value.trim();e.setColorField(`borderInlineStartWidth`,t||void 0)}),s.appendChild(c),a.appendChild(s),t.appendChild(a);let l=document.createElement(`button`);l.type=`button`,l.textContent=`Clear color overrides`,l.disabled=n,l.style.cssText=`margin-top:0.6rem; padding:0.25rem 0.5rem; font-size:0.75rem; cursor:pointer; background:transparent; border:1px solid var(--chc-border-secondary, #ccc); border-radius:4px;`,l.addEventListener(`click`,()=>e.clearColors()),t.appendChild(l);function u(e){for(let{def:t,ctrl:n}of i)n.setValue(e.colors?.[t.key]);c.value=e.colors?.borderInlineStartWidth||``}return{element:t,update:u}}function z3(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=O3(`Nationality flags`,!!r.flags,t=>e.setConfigField(`flags`,t),n),a=k3(`Seeding style`,[{value:``,label:`None`},{value:`true`,label:`Parentheses`},{value:`square`,label:`Square brackets`}],r.bracketedSeeds===`square`?`square`:r.bracketedSeeds?`true`:``,t=>{t===`square`?e.setConfigField(`bracketedSeeds`,`square`):t===`true`?e.setConfigField(`bracketedSeeds`,!0):e.setConfigField(`bracketedSeeds`,void 0)},n),o=k3(`Seed element`,[{value:``,label:`Default`},{value:`sup`,label:`Superscript`},{value:`span`,label:`Inline`}],r.seedingElement||``,t=>e.setConfigField(`seedingElement`,t||void 0),n),s=O3(`Draw positions (1st round)`,!!r.drawPositions,t=>e.setConfigField(`drawPositions`,t),n),c=O3(`Draw positions (all rounds)`,!!r.allDrawPositions,t=>e.setConfigField(`allDrawPositions`,t),n),l=O3(`Team logo`,r.teamLogo!==!1,t=>e.setConfigField(`teamLogo`,t),n);t.appendChild(i.element),t.appendChild(a.element),t.appendChild(o.element),t.appendChild(s.element),t.appendChild(c.element),t.appendChild(l.element);function u(e){let t=e.configuration;i.setChecked(!!t.flags),a.setValue(t.bracketedSeeds===`square`?`square`:t.bracketedSeeds?`true`:``),o.setValue(t.seedingElement||``),s.setChecked(!!t.drawPositions),c.setChecked(!!t.allDrawPositions),l.setChecked(t.teamLogo!==!1)}return{element:t,update:u}}function B3(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=O3(`Score box`,!!r.scoreBox,t=>e.setConfigField(`scoreBox`,t),n),a=O3(`Game score only`,!!r.gameScoreOnly,t=>e.setConfigField(`gameScoreOnly`,t),n);t.appendChild(i.element),t.appendChild(a.element);let o=document.createElement(`div`);o.className=T3();let s=document.createElement(`div`);s.className=E3(),s.textContent=`Game Score Display`,o.appendChild(s);let c=k3(`Position`,[{value:``,label:`Default`},{value:`leading`,label:`Leading`},{value:`trailing`,label:`Trailing`}],r.gameScore?.position||``,t=>e.setConfigNestedField(`gameScore`,`position`,t||void 0),n),l=O3(`Inverted`,!!r.gameScore?.inverted,t=>e.setConfigNestedField(`gameScore`,`inverted`,t),n);o.appendChild(c.element),o.appendChild(l.element),t.appendChild(o);function u(e){let t=e.configuration;i.setChecked(!!t.scoreBox),a.setChecked(!!t.gameScoreOnly),c.setValue(t.gameScore?.position||``),l.setChecked(!!t.gameScore?.inverted)}return{element:t,update:u}}function V3(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=O3(`Gender color`,!!r.genderColor,t=>e.setConfigField(`genderColor`,t),n),a=O3(`Winner color`,!!r.winnerColor,t=>e.setConfigField(`winnerColor`,t),n),o=k3(`Detail`,[{value:``,label:`Default`},{value:`TEAM`,label:`Team`},{value:`ADDRESS`,label:`Address`}],r.participantDetail||``,t=>{e.setConfigField(`participantDetail`,t||void 0),e.setConfigField(`showAddress`,t===`ADDRESS`)},n),s=A3(`Position color`,r.drawPositionColor||``,t=>e.setConfigField(`drawPositionColor`,t||void 0),`#999`,n);t.appendChild(i.element),t.appendChild(a.element),t.appendChild(o.element),t.appendChild(s.element);function c(e){let t=e.configuration;i.setChecked(!!t.genderColor),a.setChecked(!!t.winnerColor),o.setValue(t.participantDetail||``),s.setValue(t.drawPositionColor||``)}return{element:t,update:c}}function H3(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=A3(`TBD text`,r.placeHolders?.tbd||``,t=>e.setConfigNestedField(`placeHolders`,`tbd`,t||void 0),`TBD`,n),a=A3(`Bye text`,r.placeHolders?.bye||``,t=>e.setConfigNestedField(`placeHolders`,`bye`,t||void 0),`Bye`,n),o=A3(`Qualifier text`,r.placeHolders?.qualifier||``,t=>e.setConfigNestedField(`placeHolders`,`qualifier`,t||void 0),`Qualifier`,n);t.appendChild(i.element),t.appendChild(a.element),t.appendChild(o.element);function s(e){let t=e.configuration;i.setValue(t.placeHolders?.tbd||``),a.setValue(t.placeHolders?.bye||``),o.setValue(t.placeHolders?.qualifier||``)}return{element:t,update:s}}var U3=[{scaleName:`WTN`,accessor:`wtnRating`,label:`WTN`},{scaleName:`UTR`,accessor:`utrRating`,label:`UTR`},{scaleName:`NTRP`,accessor:`ntrpRating`,label:`NTRP`},{scaleName:`ELO`,accessor:`eloRating`,label:`ELO`}];function W3(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration.scaleAttributes||{},i=k3(`Scale type`,[{value:``,label:`None`},{value:`RATING`,label:`Rating`},{value:`RANKING`,label:`Ranking`},{value:`SEEDING`,label:`Seeding`}],r.scaleType||``,t=>e.setConfigNestedField(`scaleAttributes`,`scaleType`,t||void 0),n),a=k3(`Scale name`,[{value:``,label:`None`},...U3.map(e=>({value:e.scaleName,label:e.label}))],r.scaleName||``,t=>{e.setConfigNestedField(`scaleAttributes`,`scaleName`,t||void 0);let n=U3.find(e=>e.scaleName===t);e.setConfigNestedField(`scaleAttributes`,`accessor`,n?.accessor||void 0)},n),o=j3(`Color`,r.scaleColor||`#ff0000`,t=>e.setConfigNestedField(`scaleAttributes`,`scaleColor`,t),n),s=k3(`Event type`,[{value:``,label:`Any`},{value:`SINGLES`,label:`Singles`},{value:`DOUBLES`,label:`Doubles`}],r.eventType||``,t=>e.setConfigNestedField(`scaleAttributes`,`eventType`,t||void 0),n),c=O3(`Fallback`,!!r.fallback,t=>e.setConfigNestedField(`scaleAttributes`,`fallback`,t),n),l=O3(`Right of name`,r.scalePosition===`right`,t=>e.setConfigNestedField(`scaleAttributes`,`scalePosition`,t?`right`:`left`),n);t.appendChild(i.element),t.appendChild(a.element),t.appendChild(o.element),t.appendChild(s.element),t.appendChild(c.element),t.appendChild(l.element);function u(e){let t=e.configuration.scaleAttributes||{},n=!!e.configuration.flags;i.setValue(t.scaleType||``),a.setValue(t.scaleName||``),o.setValue(t.scaleColor||`#ff0000`),s.setValue(t.eventType||``),c.setChecked(!!t.fallback),n?(l.setChecked(!0),l.setDisabled(!0)):(l.setChecked(t.scalePosition===`right`),l.setDisabled(!1))}return{element:t,update:u}}function G3(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=O3(`Schedule info`,!!r.scheduleInfo,t=>e.setConfigField(`scheduleInfo`,t),n),a=O3(`Round header`,!!r.roundHeader,t=>e.setConfigField(`roundHeader`,t),n),o=O3(`MatchUp footer`,!!r.matchUpFooter,t=>e.setConfigField(`matchUpFooter`,t),n),s=O3(`Center info`,!!r.centerInfo,t=>e.setConfigField(`centerInfo`,t),n),c=O3(`Set number`,!!r.resultsInfo,t=>e.setConfigField(`resultsInfo`,t),n),l=O3(`Winner chevron`,!!r.winnerChevron,t=>e.setConfigField(`winnerChevron`,t),n);t.appendChild(i.element),t.appendChild(a.element),t.appendChild(o.element),t.appendChild(s.element),t.appendChild(c.element),t.appendChild(l.element);function u(e){let t=e.configuration;i.setChecked(!!t.scheduleInfo),a.setChecked(!!t.roundHeader),o.setChecked(!!t.matchUpFooter),s.setChecked(!!t.centerInfo),c.setChecked(!!t.resultsInfo),l.setChecked(!!t.winnerChevron)}return{element:t,update:u}}var{DOUBLES:K3,SINGLES:q3}=t.eventConstants,{AD_HOC:J3}=t.drawDefinitionConstants,{INDIVIDUAL:Y3}=t.participantConstants;function X3({matchUpFormat:e=`SET5-S:6/TB7`,randomWinningSide:n=!0,qualifyingProfiles:r,participantsCount:i,completionGoal:a,drawSize:o=4,eventType:s,outcomes:c,drawType:l,withRatings:u,withAllRatings:d}={}){let f=a<100?Math.floor(o*.01*a):void 0,p=`venueId`,m=[{venueName:`Challenge Courts`,venueAbbreviation:`CC`,startTime:`08:00`,endTime:`20:00`,venueId:p,courtNames:[`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`],courtIds:[`c1`,`c2`,`c3`,`c4`],courtsCount:8}],h={eventType:s===K3?K3:q3,completionGoal:f,qualifyingProfiles:r,participantsCount:i,seedsCount:8,matchUpFormat:e,drawSize:o,drawType:l,outcomes:c};l===J3&&Object.assign(h,{drawMatic:!0,roundsCount:3});let{tournamentRecord:g}=t.mocksEngine.generateTournamentRecord({drawProfiles:[h],completeAllMatchUps:!0,randomWinningSide:n,venueProfiles:m});t.tournamentEngine.setState(g),t.tournamentEngine.createTeamsFromParticipantAttributes({personAttribute:`nationalityCode`,addParticipants:!0});let _=d||(u?[{...u,accessor:u.scaleName}]:[]);if(_.length>0){let{participants:e}=t.tournamentEngine.getParticipants({participantFilters:{participantTypes:[Y3]}});for(let n of _)e.forEach(e=>{let r=+(10+Math.random()*6).toFixed(2);t.tournamentEngine.setParticipantScaleItem({participantId:e.participantId,scaleItem:{scaleValue:{[n.accessor]:r},scaleName:n.scaleName,scaleType:n.scaleType||`RATING`,eventType:n.eventType||q3}})})}let{matchUps:v}=t.tournamentEngine.allTournamentMatchUps({participantsProfile:{withGroupings:!0}}),y=v.map(({matchUpId:e})=>e),b={startTime:`08:00`,endTime:`10:00`,scheduledTime:`07:00`,scheduledDate:`2021-01-01`,courtId:`c1`,venueId:p};t.tournamentEngine.bulkScheduleMatchUps({matchUpIds:y,schedule:b});let{matchUps:x}=t.tournamentEngine.allTournamentMatchUps({participantsProfile:{withISO2:!0,withIOC:!0,withScaleValues:!!(u||d)}});return{matchUps:x}}var Z3=null;function Q3(){if(!Z3){let{matchUps:e}=X3({drawSize:8,eventType:`SINGLES`,randomWinningSide:!0,matchUpFormat:`SET3-S:6/TB7`,withAllRatings:U3.map(e=>({scaleName:e.scaleName,accessor:e.accessor}))}),t=e.filter(e=>e.roundNumber===1).slice(0,2),n=t[0]?.sides?.[0]?.participant,r=t[0]?.sides?.[1]?.participant,i={matchUpId:`preview-in-progress`,matchUpType:`SINGLES`,matchUpStatus:`IN_PROGRESS`,roundNumber:1,sides:[{sideNumber:1,drawPosition:5,seedNumber:3,seedValue:`3`,participant:n},{sideNumber:2,drawPosition:6,seedNumber:6,seedValue:`6`,participant:r}],score:{scoreStringSide1:`6-4 3-2`,scoreStringSide2:`4-6 2-3`,sets:[{setNumber:1,side1Score:6,side2Score:4,winningSide:1},{setNumber:2,side1Score:3,side2Score:2,side1PointScore:`30`,side2PointScore:`15`}]}},a={matchUpId:`preview-bye`,matchUpType:`SINGLES`,matchUpStatus:`BYE`,roundNumber:1,sides:[{sideNumber:1,drawPosition:7,seedNumber:2,seedValue:`2`,participant:n},{sideNumber:2,drawPosition:8,bye:!0}]},o={matchUpId:`preview-tbd`,matchUpType:`SINGLES`,matchUpStatus:`TO_BE_PLAYED`,roundNumber:1,sides:[{sideNumber:1,drawPosition:9,seedNumber:3,seedValue:`3`,participant:n},{sideNumber:2,drawPosition:10}]},s={matchUpId:`preview-qualifier`,matchUpType:`SINGLES`,matchUpStatus:`TO_BE_PLAYED`,roundNumber:1,sides:[{sideNumber:1,drawPosition:11,qualifier:!0},{sideNumber:2,drawPosition:12,seedNumber:4,seedValue:`4`,participant:n}]};Z3=[...t,i,a,o,s]}return Z3}var $3=null;function e6(){if(!$3){let{matchUps:e}=X3({drawSize:4,eventType:`SINGLES`,matchUpFormat:`SET3-S:6/TB7`,completionGoal:50,randomWinningSide:!0});$3=e}return $3}function t6(){let e=document.createElement(`div`);e.className=x3();let t=document.createElement(`div`);t.className=S3(),t.textContent=`Preview`,e.appendChild(t);let n=document.createElement(`div`);n.className=C3(),e.appendChild(n);let r=``,i=``,a=``;function o(e){let t=JSON.stringify(e.configuration),o=JSON.stringify(e.colors||{});if(e.theme===r&&t===i&&o===a)return;r=e.theme,i=t,a=o,n.innerHTML=``,Fr(n),Pr(n,e.colors);let s={theme:e.theme,configuration:{...e.configuration,matchUpFooter:!0},colors:e.colors?{...e.colors}:void 0},c=Mr({roundNumber:1,roundProfile:{1:{roundName:`Round 1`}}});n.appendChild(c);let l=Q3();for(let e of l){let t=document.createElement(`div`);t.className=w3();let r=hi({matchUp:e,composition:s,isLucky:!0});t.appendChild(r),n.appendChild(t)}let u=document.createElement(`div`);u.style.cssText=`margin-top:1.5rem; padding:0 0.25rem; font-size:0.7rem; color:var(--chc-text-secondary, #999); text-transform:uppercase; letter-spacing:0.05em;`,u.textContent=`Connector preview`,n.appendChild(u);let d=_i({matchUps:e6(),composition:s});n.appendChild(d)}return{element:e,update:o}}var n6=[{id:`theme`,label:`Theme & Preset`,factory:P3},{id:`colors`,label:`Colors`,factory:R3},{id:`display`,label:`Display`,factory:z3},{id:`score`,label:`Score`,factory:B3},{id:`participant`,label:`Participant`,factory:V3},{id:`placeholder`,label:`Placeholders`,factory:H3},{id:`scale`,label:`Scale Attributes`,factory:W3},{id:`layout`,label:`Layout & Info`,factory:G3}];function r6(e,t){let n=new n3(t),r=document.createElement(`div`);r.className=r3();let i=document.createElement(`div`);i.className=i3();let a=document.createElement(`div`);a.className=o3();let o=document.createElement(`span`);o.className=s3(),o.textContent=`Name`;let s=document.createElement(`input`);s.type=`text`,s.className=c3(),s.value=n.getState().compositionName,s.disabled=n.getState().readOnly,s.addEventListener(`input`,()=>n.setCompositionName(s.value)),a.appendChild(o),a.appendChild(s),i.appendChild(a);let c=n6.map(e=>{let t=D3(e,n);return i.appendChild(t.element),t}),l=document.createElement(`div`);l.className=a3();let u=t6();l.appendChild(u.element),r.appendChild(i),r.appendChild(l),e.appendChild(r);let d=n.subscribe(e=>{s.value=e.compositionName;for(let t of c)t.update(e);u.update(e)}),f=n.getState();for(let e of c)e.update(f);return u.update(f),{destroy:()=>{d(),e.contains(r)&&e.removeChild(r)},getComposition:()=>{let e=n.getState(),{participantProvider:t,persistInputFields:r,inlineAssignment:i,...a}=e.configuration;return{compositionName:e.compositionName,theme:e.theme,configuration:a,...e.colors?{colors:{...e.colors}}:{},version:1}}}}var i6=[`grand-slam`,`itf`,`minimal`,`none`],a6=[`standard`,`seedings`,`officials`,`none`],o6=[`a4`,`letter`],s6=[`auto`,`portrait`,`landscape`],c6={page:{pageSize:`a4`,orientation:`auto`,margins:{top:15,right:10,bottom:15,left:10}},header:{layout:`itf`,tournamentName:``},footer:{layout:`standard`,showTimestamp:!0,showPageNumbers:!0},content:{}};function l6(e,t){let n=S6(c6,t.config??{}),r=!!t.readOnly,i=Q(`div`,`pce-root`),a=Q(`div`,`pce-form`),o=Q(`div`,`pce-aside`);i.appendChild(a),i.appendChild(o);let s=null;function c(){a.innerHTML=``,a.appendChild(u6(n,r,l)),a.appendChild(d6(n,r,l)),a.appendChild(f6(n,r,l)),a.appendChild(p6(n,r,t.printType,l)),!r&&t.onSave&&a.appendChild(m6(()=>t.onSave?.(C6(n)))),o.innerHTML=``;let e=Q(`div`,`pce-aside-title`);e.textContent=`Print Type`,o.appendChild(e);let i=Q(`span`,`pce-print-type-pill`);i.textContent=t.printType,o.appendChild(i);let c=Q(`div`,`pce-aside-title`);c.textContent=`Resolved Config`,c.style.marginTop=`8px`,o.appendChild(c),s=Q(`div`,`pce-preview-stub`),s.textContent=JSON.stringify(n,null,2),o.appendChild(s);let u=Q(`div`,`pce-preview-note`);u.textContent=`Live PDF preview not yet wired — see admin-client integration.`,o.appendChild(u)}function l(){s&&(s.textContent=JSON.stringify(n,null,2)),t.onChange?.(C6(n))}return c(),e.appendChild(i),{destroy:()=>{i.parentNode&&i.parentNode.removeChild(i)},getConfig:()=>C6(n),setConfig:e=>{Object.assign(n,S6(c6,e)),c()}}}function u6(e,t,n){let{section:r,body:i}=y6(`Page`);i.appendChild(h6(`Size`,o6,e.page?.pageSize??`a4`,t,t=>{x6(e,`page`).pageSize=t,n()})),i.appendChild(h6(`Orientation`,s6,e.page?.orientation??`auto`,t,t=>{x6(e,`page`).orientation=t,n()}));let a=Q(`div`,`pce-field pce-field-full`);a.appendChild(b6(`Margins (mm)`));let o=Q(`div`);return o.style.display=`grid`,o.style.gridTemplateColumns=`repeat(4, 1fr)`,o.style.gap=`6px`,[`top`,`right`,`bottom`,`left`].forEach(r=>{o.appendChild(_6(r,e.page?.margins?.[r]??10,t,t=>{let i=x6(x6(e,`page`),`margins`);i[r]=t,n()}))}),a.appendChild(o),i.appendChild(a),r}function d6(e,t,n){let{section:r,body:i}=y6(`Header`);return i.appendChild(h6(`Layout`,i6,e.header?.layout??`itf`,t,t=>{x6(e,`header`).layout=t,n()})),i.appendChild(g6(`Tournament name`,e.header?.tournamentName??``,t,t=>{x6(e,`header`).tournamentName=t,n()})),i.appendChild(g6(`Subtitle`,e.header?.subtitle??``,t,t=>{x6(e,`header`).subtitle=t||void 0,n()})),r}function f6(e,t,n){let{section:r,body:i}=y6(`Footer`);return i.appendChild(h6(`Layout`,a6,e.footer?.layout??`standard`,t,t=>{x6(e,`footer`).layout=t,n()})),i.appendChild(v6(`Show timestamp`,e.footer?.showTimestamp??!0,t,t=>{x6(e,`footer`).showTimestamp=t,n()})),i.appendChild(v6(`Show page numbers`,e.footer?.showPageNumbers??!0,t,t=>{x6(e,`footer`).showPageNumbers=t,n()})),r}function p6(e,t,n,r){let{section:i,body:a}=y6(`Content — ${n}`);if(n===`draw`){let n=x6(x6(e,`content`),`draw`);a.appendChild(v6(`Include seedings`,!!n.includeSeedings,t,e=>{n.includeSeedings=e,r()})),a.appendChild(v6(`Include scores`,!!n.includeScores,t,e=>{n.includeScores=e,r()})),a.appendChild(v6(`Show byes`,!!n.showByes,t,e=>{n.showByes=e,r()})),a.appendChild(v6(`Show draw positions`,!!n.showDrawPositions,t,e=>{n.showDrawPositions=e,r()}))}else if(n===`schedule`){let n=x6(x6(e,`content`),`schedule`);a.appendChild(h6(`Cell style`,[`detailed`,`compact`],n.cellStyle??`detailed`,t,e=>{n.cellStyle=e,r()})),a.appendChild(v6(`Show match numbers`,!!n.showMatchNumbers,t,e=>{n.showMatchNumbers=e,r()})),a.appendChild(g6(`Alert banner`,n.alertBanner??``,t,e=>{n.alertBanner=e||void 0,r()}))}else{let e=Q(`div`,`pce-field pce-field-full`),t=Q(`div`,`pce-preview-note`);t.textContent=`Content options for "${n}" not yet implemented.`,e.appendChild(t),a.appendChild(e)}return i}function m6(e){let t=Q(`div`,`pce-actions`),n=Q(`button`,`pce-button pce-button-primary`);return n.type=`button`,n.textContent=`Save`,n.addEventListener(`click`,e),t.appendChild(n),t}function h6(e,t,n,r,i){let a=Q(`div`,`pce-field`);a.appendChild(b6(e));let o=Q(`select`,`pce-select`);return o.disabled=r,t.forEach(e=>{let t=document.createElement(`option`);t.value=e,t.textContent=e,e===n&&(t.selected=!0),o.appendChild(t)}),o.addEventListener(`change`,()=>i(o.value)),a.appendChild(o),a}function g6(e,t,n,r){let i=Q(`div`,`pce-field`);i.appendChild(b6(e));let a=Q(`input`,`pce-input`);return a.type=`text`,a.value=t,a.disabled=n,a.addEventListener(`input`,()=>r(a.value)),i.appendChild(a),i}function _6(e,t,n,r){let i=Q(`div`,`pce-field`);i.appendChild(b6(e));let a=Q(`input`,`pce-input`);return a.type=`number`,a.value=String(t),a.disabled=n,a.addEventListener(`input`,()=>{let e=parseFloat(a.value);Number.isNaN(e)||r(e)}),i.appendChild(a),i}function v6(e,t,n,r){let i=Q(`div`,`pce-field pce-checkbox-row pce-field-full`),a=Q(`input`);a.type=`checkbox`,a.checked=t,a.disabled=n,a.addEventListener(`change`,()=>r(a.checked)),i.appendChild(a);let o=b6(e);return o.style.fontSize=`13px`,o.style.color=`var(--chc-text-primary, #222)`,i.appendChild(o),i}function y6(e){let t=Q(`div`,`pce-section`),n=Q(`div`,`pce-section-header`);n.textContent=e;let r=Q(`div`,`pce-section-body`);return t.appendChild(n),t.appendChild(r),{section:t,body:r}}function Q(e,t){let n=document.createElement(e);return t&&(n.className=t),n}function b6(e){let t=Q(`label`,`pce-field-label`);return t.textContent=e,t}function x6(e,t){return(e[t]===void 0||e[t]===null)&&(e[t]={}),e[t]}function S6(e,t){return{name:t.name??e.name,page:{...e.page,...t.page,margins:{...e.page?.margins,...t.page?.margins}},header:{...e.header,...t.header},footer:{...e.footer,...t.footer},content:{...e.content,...t.content}}}function C6(e){return structuredClone(e)}var w6=`chc-scorecard-side-score--winner`;function T6({matchUp:e,composition:t,eventHandlers:n,swapSides:r}){let i=document.createElement(`div`);i.className=`chc-scorecard`;let a=r?2:1,o=r?1:2,s=P6(e,a)||``,c=P6(e,o)||``,l=r?j6(e.winningSide):e.winningSide,u=E6({side1Name:s,side2Name:c,sets:r?M6(e.score?.sets):e.score?.sets,winningSide:l,side1Id:`chc-sc-side1`,side2Id:`chc-sc-side2`});i.appendChild(u);let d=e.tieFormat?.collectionDefinitions?.slice().sort((e,t)=>(e.collectionOrder||0)-(t.collectionOrder||0))||[];for(let a of d){let o=A6({collectionDefinition:a,collectionMatchUps:(e.tieMatchUps||[]).filter(e=>e.collectionId===a.collectionId).sort((e,t)=>(e.collectionPosition||0)-(t.collectionPosition||0)),composition:t,eventHandlers:n,swapSides:r});i.appendChild(o)}return i}function E6({side1Name:e,side2Name:t,sets:n,winningSide:r,side1Id:i,side2Id:a}){let o=document.createElement(`div`);o.className=`chc-scorecard-header`;let s=document.createElement(`div`);s.className=`chc-scorecard-header-body`;let c=O6(e,`end`),l=O6(t,`start`),u=k6(n,1,r,i),d=k6(n,2,r,a),f=document.createElement(`div`);f.className=`chc-scorecard-score-box`;let p=document.createElement(`div`);p.className=`chc-scorecard-score-flex`;let m=document.createElement(`div`);return m.className=`chc-scorecard-vs`,m.textContent=`vs`,p.appendChild(u),p.appendChild(m),p.appendChild(d),f.appendChild(p),s.appendChild(c),s.appendChild(f),s.appendChild(l),o.appendChild(s),o}function D6(e,t=`chc-sc-side1`,n=`chc-sc-side2`,r){let i=e?.score?.sets?.[0];if(!i)return;let a=document.getElementById(t),o=document.getElementById(n);if(!a||!o)return;a.classList.remove(w6),o.classList.remove(w6);let s=r?`side2Score`:`side1Score`,c=r?`side1Score`:`side2Score`;a.textContent=String(i[s]??0),o.textContent=String(i[c]??0);let l=r?j6(e.winningSide):e.winningSide;l===1&&a.classList.add(w6),l===2&&o.classList.add(w6)}function O6(e,t){let n=document.createElement(`div`);n.className=`chc-scorecard-side chc-scorecard-side--${t}`;let r=document.createElement(`div`);return r.className=`chc-scorecard-side-name`,r.textContent=e,n.appendChild(r),n}function k6(e,t,n,r){let i=e?.[0]?.[`side${t}Score`]??0,a=document.createElement(`span`);return a.className=`chc-scorecard-side-score`,r&&(a.id=r),t===1?a.style.paddingLeft=`1rem`:a.style.paddingRight=`1rem`,t===n&&a.classList.add(w6),a.textContent=String(i),a}function A6({collectionDefinition:e,collectionMatchUps:t,composition:n,eventHandlers:r,swapSides:i}){let a=document.createElement(`div`);a.className=`chc-scorecard-panel`;let o=document.createElement(`div`);o.className=`chc-scorecard-panel-header`;let s=document.createElement(`div`);s.className=`chc-scorecard-panel-name`,s.textContent=e.collectionName||`Collection`;let c=document.createElement(`div`);c.className=`chc-scorecard-panel-meta`;let l=(e.matchUpType||``).toUpperCase(),u=document.createElement(`span`);u.className=`chc-scorecard-type-badge chc-scorecard-type-badge--${l===`DOUBLES`?`doubles`:`singles`}`,u.textContent=l===`DOUBLES`?`D`:`S`;let d=document.createElement(`span`);d.className=`chc-scorecard-count-badge`,d.textContent=String(t.length),c.appendChild(u),c.appendChild(d),o.appendChild(s),o.appendChild(c),a.appendChild(o);let f=document.createElement(`div`);f.className=`chc-scorecard-grid`;for(let e of t){let t=hi({matchUp:i?N6(e):e,isLucky:!0,eventHandlers:r,composition:n});t.classList.add(`chc-scorecard-card`),f.appendChild(t)}return a.appendChild(f),a}function j6(e){if(e===1)return 2;if(e===2)return 1}function M6(e){if(e)return e.map(e=>({...e,side1Score:e.side2Score,side2Score:e.side1Score,side1TiebreakScore:e.side2TiebreakScore,side2TiebreakScore:e.side1TiebreakScore}))}function N6(e){let t=e.sides?.map(e=>({...e,sideNumber:e.sideNumber===1?2:1}));return{...e,sides:t,score:e.score?{...e.score,sets:M6(e.score.sets)}:e.score,winningSide:j6(e.winningSide)}}function P6(e,t){return e.sides?.find(e=>e.sideNumber===t)?.participant?.participantName}function F6(e){let{matchUpId:t,manager:n,baseMatchUp:r,onUpdate:i,showSituation:a}=e,o=document.createElement(`div`);o.className=`chc-inline-scoring-footer`;let s=document.createElement(`div`);s.className=`chc-inline-scoring-buttons`;let c=(e,t)=>{let n=document.createElement(`button`);return n.textContent=e,n.className=`chc-inline-scoring-btn ${t}`,n},l=c(`Undo`,`chc-is-undo`),u=c(`Redo`,`chc-is-redo`),d=c(`Clear`,`chc-is-clear`),f=c(`Submit`,`chc-is-submit`),p;a&&(p=document.createElement(`span`),p.className=`chc-inline-scoring-situation`),l.onclick=e=>{e.stopPropagation();let a=n.undo(t,r);a&&(i(a),m())},u.onclick=e=>{e.stopPropagation();let a=n.redo(t,r);a&&(i(a),m())},d.onclick=e=>{e.stopPropagation();let a=n.reset(t,r);a&&(i(a),m())},f.onclick=e=>{e.stopPropagation();let i=n.get(t);if(i){let e=n.getMatchUp(t,r);n.callbacks?.onSubmit?.({matchUpId:t,matchUp:e,engine:i.engine})}},s.append(l,u,d,f),o.appendChild(s),p&&o.appendChild(p);function m(){let e=n.canUndo(t),r=n.canRedo(t),i=n.isComplete(t);if(l.disabled=!e,u.disabled=!r,d.disabled=!e&&!r,p){let e=n.getSituation(t);if(e&&!i){let t=[e.isTiebreak&&`TB`,e.isBreakPoint&&`Break`,e.isGamePoint&&`Game`,e.isSetPoint&&`Set`,e.isMatchPoint&&`Match`].filter(Boolean);p.textContent=t.length?t.join(` • `):``}else p.textContent=i?`Complete`:``}}return m(),{element:o,update:m}}var I6=`chc-iss-score-cell`;function L6(e){if(!e?.matchUpId)throw Error(`buildInteractiveScoringShell: matchUpId is required`);if(!e?.matchUpFormat)throw Error(`buildInteractiveScoringShell: matchUpFormat is required`);let t=e.initialMatchUp??R6(e),n=new Set,r=new Kl({onScoreChange:({matchUp:e})=>{a(e,!1)},onMatchComplete:({winningSide:n})=>{a(r.getMatchUp(e.matchUpId,t),!0,n)}});r.getOrCreate(e.matchUpId,e.matchUpFormat,t);let i=document.createElement(`div`);i.className=`chc-interactive-scoring-shell`,i.dataset.matchupId=e.matchUpId,i.dataset.tournamentId=e.tournamentId,l();function a(t,r,i){let a={matchUpId:e.matchUpId,matchUp:t,isComplete:r,winningSide:i??t.winningSide},o=new CustomEvent(`stateChanged`,{detail:a});n.forEach(e=>{try{e(o)}catch(e){console.warn(`[interactive-scoring] listener threw`,e)}})}function o(n){r.isComplete(e.matchUpId)||(r.addPoint(e.matchUpId,n,t),l())}function s(){r.canUndo(e.matchUpId)&&(r.undo(e.matchUpId,t),l(),a(r.getMatchUp(e.matchUpId,t),r.isComplete(e.matchUpId)))}async function c(){(!e.confirmReset||await e.confirmReset())&&(r.reset(e.matchUpId,t),l(),a(r.getMatchUp(e.matchUpId,t),!1))}function l(){i.innerHTML=``,i.append(z6(e),B6(r,e,t),V6(r,e,o),H6(r,e,s,c))}return{element:i,getState:()=>r.getMatchUp(e.matchUpId,t),reset:()=>{r.reset(e.matchUpId,t),l(),a(r.getMatchUp(e.matchUpId,t),!1)},destroy:()=>{n.clear(),r.remove(e.matchUpId),i.innerHTML=``},addEventListener:(e,t)=>{e===`stateChanged`&&n.add(t)},removeEventListener:(e,t)=>{e===`stateChanged`&&n.delete(t)}}}function R6(e){return{matchUpId:e.matchUpId,tournamentId:e.tournamentId,matchUpFormat:e.matchUpFormat,matchUpStatus:`TO_BE_PLAYED`,score:{sets:[]},sides:[{sideNumber:1,participant:{participantName:e.side1Name}},{sideNumber:2,participant:{participantName:e.side2Name}}]}}function z6(e){let t=document.createElement(`div`);t.className=`chc-iss-header`;let n=document.createElement(`div`);n.className=`chc-iss-header-side chc-iss-header-side1`,n.textContent=e.side1Name||`Side 1`;let r=document.createElement(`div`);r.className=`chc-iss-header-vs`,r.textContent=`vs`;let i=document.createElement(`div`);return i.className=`chc-iss-header-side chc-iss-header-side2`,i.textContent=e.side2Name||`Side 2`,t.append(n,r,i),t}function B6(e,t,n){let r=document.createElement(`div`);r.className=`chc-iss-score-display`;let i=e.getMatchUp(t.matchUpId,n),a=i.score?.sets??[],o=document.createElement(`div`);o.className=`chc-iss-score-grid`,o.style.setProperty(`--sets`,String(Math.max(a.length,1)));let s=document.createElement(`div`);s.className=`chc-iss-score-row chc-iss-score-row-side1`;let c=document.createElement(`div`);c.className=`chc-iss-score-row chc-iss-score-row-side2`;for(let e of a){let t=document.createElement(`div`);t.className=I6,t.textContent=String(e.side1Score??0),e.winningSide===1&&t.classList.add(`chc-iss-score-cell-won`),s.append(t);let n=document.createElement(`div`);n.className=I6,n.textContent=String(e.side2Score??0),e.winningSide===2&&n.classList.add(`chc-iss-score-cell-won`),c.append(n)}if(a.length===0){let e=document.createElement(`div`);e.className=I6,e.textContent=`0`,s.append(e);let t=document.createElement(`div`);t.className=I6,t.textContent=`0`,c.append(t)}o.append(s,c),r.append(o);let l=a.at(-1);if(l&&!l.winningSide&&l.side1PointScore!=null){let e=document.createElement(`div`);e.className=`chc-iss-game-score`;let t=document.createElement(`span`);t.className=`chc-iss-game-score-side1`,t.textContent=String(l.side1PointScore);let n=document.createElement(`span`);n.className=`chc-iss-game-score-sep`,n.textContent=` — `;let i=document.createElement(`span`);i.className=`chc-iss-game-score-side2`,i.textContent=String(l.side2PointScore),e.append(t,n,i),r.append(e)}if(e.isComplete(t.matchUpId)){let e=document.createElement(`div`);e.className=`chc-iss-match-complete`,e.textContent=`${(i.winningSide===1?t.side1Name:t.side2Name)||`Match`} wins`,r.append(e)}return r}function V6(e,t,n){let r=document.createElement(`div`);r.className=`chc-iss-point-buttons`;let i=e.isComplete(t.matchUpId),a=document.createElement(`button`);a.type=`button`,a.className=`chc-iss-point-button chc-iss-point-button-side1`,a.disabled=i,a.setAttribute(`aria-label`,`${t.side1Name} won the point`);let o=document.createElement(`span`);o.className=`chc-iss-point-button-label`,o.textContent=t.side1Name||`Side 1`;let s=document.createElement(`span`);s.className=`chc-iss-point-button-hint`,s.textContent=`won the point`,a.append(o,s),a.addEventListener(`click`,()=>n(0));let c=document.createElement(`button`);c.type=`button`,c.className=`chc-iss-point-button chc-iss-point-button-side2`,c.disabled=i,c.setAttribute(`aria-label`,`${t.side2Name} won the point`);let l=document.createElement(`span`);l.className=`chc-iss-point-button-label`,l.textContent=t.side2Name||`Side 2`;let u=document.createElement(`span`);return u.className=`chc-iss-point-button-hint`,u.textContent=`won the point`,c.append(l,u),c.addEventListener(`click`,()=>n(1)),r.append(a,c),r}function H6(e,t,n,r){let i=document.createElement(`div`);i.className=`chc-iss-control-bar`;let a=document.createElement(`button`);a.type=`button`,a.className=`chc-iss-control-button chc-iss-control-undo`,a.textContent=`Undo`,a.disabled=!e.canUndo(t.matchUpId),a.addEventListener(`click`,n);let o=document.createElement(`button`);return o.type=`button`,o.className=`chc-iss-control-button chc-iss-control-reset`,o.textContent=`Reset`,o.addEventListener(`click`,()=>{r()}),i.append(a,o),i}function U6(){return{policyName:`New Ranking Policy`,policyVersion:`1.0`,awardProfiles:[{profileName:`Default`,finishingPositionRanges:{1:100,2:70,4:50,8:30,16:15,32:8}}],requireWinForPoints:!0,doublesAttribution:`fullToEach`}}function $(e){return structuredClone(e)}var W6=class{constructor(e){this.listeners=new Set,this.config=e;let t=$(e.initialPolicy??U6()),n=t.awardProfiles?.length??0;this.state={draft:t,expandedSections:new Set(n>5?[`awardProfiles`]:[`metadata`,`awardProfiles`,`qualityWinProfiles`,`aggregationRules`]),expandedProfiles:new Set(n<=5?Array.from({length:n},(e,t)=>t):[]),profileFilter:``,dirty:!1,readonly:e.readonly??!1}}getState(){return this.state}getData(){return $(this.state.draft)}setData(e){let t=e.awardProfiles?.length??0;this.state={...this.state,draft:$(e),expandedProfiles:new Set(t<=5?Array.from({length:t},(e,t)=>t):[]),profileFilter:``,dirty:!1},this.emit()}toggleSection(e){let t=new Set(this.state.expandedSections);t.has(e)?t.delete(e):t.add(e),this.state={...this.state,expandedSections:t},this.emit()}toggleProfile(e){let t=new Set(this.state.expandedProfiles);t.has(e)?t.delete(e):t.add(e),this.state={...this.state,expandedProfiles:t},this.emit()}setProfileFilter(e){this.state={...this.state,profileFilter:e},this.emit()}setPolicyName(e){let t=$(this.state.draft);t.policyName=e,this.commitDraft(t)}setPolicyVersion(e){let t=$(this.state.draft);t.policyVersion=e,this.commitDraft(t)}setValidDateRange(e,t){let n=$(this.state.draft);n.validDateRange||={},n.validDateRange[e]=t||void 0,this.commitDraft(n)}setGlobalFlag(e,t){let n=$(this.state.draft);n[e]=t,this.commitDraft(n)}setDoublesAttribution(e){let t=$(this.state.draft);t.doublesAttribution=e||void 0,this.commitDraft(t)}setCategoryResolution(e){let t=$(this.state.draft);t.categoryResolution=e||void 0,this.commitDraft(t)}addProfile(){let e=$(this.state.draft);e.awardProfiles||=[],e.awardProfiles.push({profileName:`Profile ${e.awardProfiles.length+1}`,finishingPositionRanges:{1:100,2:70,4:50,8:30}});let t=new Set(this.state.expandedProfiles);t.add(e.awardProfiles.length-1),this.state={...this.state,expandedProfiles:t},this.commitDraft(e)}removeProfile(e){let t=$(this.state.draft);if(!t.awardProfiles||e<0||e>=t.awardProfiles.length)return;t.awardProfiles.splice(e,1);let n=new Set;for(let t of this.state.expandedProfiles)t<e?n.add(t):t>e&&n.add(t-1);this.state={...this.state,expandedProfiles:n},this.commitDraft(t)}duplicateProfile(e){let t=$(this.state.draft);if(!t.awardProfiles||e<0||e>=t.awardProfiles.length)return;let n=$(t.awardProfiles[e]);n.profileName=`${n.profileName??`Profile`} (Copy)`,t.awardProfiles.splice(e+1,0,n);let r=new Set;for(let t of this.state.expandedProfiles)t<=e?r.add(t):r.add(t+1);r.add(e+1),this.state={...this.state,expandedProfiles:r},this.commitDraft(t)}moveProfile(e,t){let n=$(this.state.draft);if(!n.awardProfiles||e<0||e>=n.awardProfiles.length||t<0||t>=n.awardProfiles.length)return;let[r]=n.awardProfiles.splice(e,1);n.awardProfiles.splice(t,0,r),this.commitDraft(n)}setProfileName(e,t){let n=$(this.state.draft);n.awardProfiles?.[e]&&(n.awardProfiles[e].profileName=t,this.commitDraft(n))}setProfileFlag(e,t,n){let r=$(this.state.draft);r.awardProfiles?.[e]&&(n===void 0?delete r.awardProfiles[e][t]:r.awardProfiles[e][t]=n,this.commitDraft(r))}setFlatPositionPoints(e,t,n){let r=$(this.state.draft),i=r.awardProfiles?.[e];i&&(i.finishingPositionRanges||={},i.finishingPositionRanges[t]=n,this.commitDraft(r))}addPositionRow(e,t){let n=$(this.state.draft),r=n.awardProfiles?.[e];r&&(r.finishingPositionRanges||={},r.finishingPositionRanges[t]===void 0&&(r.finishingPositionRanges[t]=0,this.commitDraft(n)))}removePositionRow(e,t){let n=$(this.state.draft),r=n.awardProfiles?.[e];r?.finishingPositionRanges&&(delete r.finishingPositionRanges[t],this.commitDraft(n))}setPointsPerWin(e,t){let n=$(this.state.draft),r=n.awardProfiles?.[e];r&&(t===void 0?delete r.pointsPerWin:r.pointsPerWin=t,this.commitDraft(n))}addBonusPoint(e){let t=$(this.state.draft),n=t.awardProfiles?.[e];n&&(n.bonusPoints||=[],n.bonusPoints.push({finishingPositions:[1],value:0}),this.commitDraft(t))}removeBonusPoint(e,t){let n=$(this.state.draft),r=n.awardProfiles?.[e];r?.bonusPoints&&(r.bonusPoints.splice(t,1),r.bonusPoints.length||delete r.bonusPoints,this.commitDraft(n))}setBonusPointPositions(e,t,n){let r=$(this.state.draft),i=r.awardProfiles?.[e]?.bonusPoints?.[t];i&&(i.finishingPositions=n,this.commitDraft(r))}setBonusPointValue(e,t,n){let r=$(this.state.draft),i=r.awardProfiles?.[e]?.bonusPoints?.[t];i&&(i.value=n,this.commitDraft(r))}setLevelPositionPoints(e,t,n,r){let i=$(this.state.draft),a=i.awardProfiles?.[e];if(!a)return;a.finishingPositionRanges||={};let o=a.finishingPositionRanges[t];o&&typeof o==`object`&&o.level&&(o.level[n]=r),this.commitDraft(i)}addLevel(e,t){let n=$(this.state.draft),r=n.awardProfiles?.[e];if(r?.finishingPositionRanges){for(let e of Object.keys(r.finishingPositionRanges)){let n=r.finishingPositionRanges[e];n&&typeof n==`object`&&n.level&&n.level[t]===void 0&&(n.level[t]=0)}r.levels&&!r.levels.includes(t)&&(r.levels.push(t),r.levels.sort((e,t)=>e-t)),this.commitDraft(n)}}removeLevel(e,t){let n=$(this.state.draft),r=n.awardProfiles?.[e];if(r?.finishingPositionRanges){for(let e of Object.keys(r.finishingPositionRanges)){let n=r.finishingPositionRanges[e];n&&typeof n==`object`&&n.level&&delete n.level[t]}r.levels&&=r.levels.filter(e=>e!==t),this.commitDraft(n)}}setProfileScope(e,t,n){let r=$(this.state.draft),i=r.awardProfiles?.[e];i&&(n.length?i[t]=n:delete i[t],this.commitDraft(r))}setProfileField(e,t,n){let r=$(this.state.draft),i=r.awardProfiles?.[e];i&&(n===void 0||n===``?delete i[t]:i[t]=n,this.commitDraft(r))}addQualityWinProfile(){let e=$(this.state.draft);e.qualityWinProfiles||=[],e.qualityWinProfiles.push({rankingScaleName:`New Profile`,rankingRanges:[{rankRange:[1,10],value:10}]}),this.commitDraft(e)}removeQualityWinProfile(e){let t=$(this.state.draft);t.qualityWinProfiles&&(t.qualityWinProfiles.splice(e,1),t.qualityWinProfiles.length||delete t.qualityWinProfiles,this.commitDraft(t))}setQualityWinField(e,t,n){let r=$(this.state.draft),i=r.qualityWinProfiles?.[e];i&&(n===void 0||n===``?delete i[t]:i[t]=n,this.commitDraft(r))}addQualityWinRange(e){let t=$(this.state.draft),n=t.qualityWinProfiles?.[e];if(!n)return;let r=n.rankingRanges.at(-1),i=r?r.rankRange[1]+1:1;n.rankingRanges.push({rankRange:[i,i+9],value:0}),this.commitDraft(t)}removeQualityWinRange(e,t){let n=$(this.state.draft),r=n.qualityWinProfiles?.[e];r&&(r.rankingRanges.splice(t,1),this.commitDraft(n))}setQualityWinRange(e,t,n,r){let i=$(this.state.draft),a=i.qualityWinProfiles?.[e]?.rankingRanges?.[t];a&&(n===`rankRange`?a.rankRange=r:a.value=r,this.commitDraft(i))}setAggregationField(e,t){let n=$(this.state.draft);n.aggregationRules||={},t===void 0||t===``?delete n.aggregationRules[e]:n.aggregationRules[e]=t,this.commitDraft(n)}addTiebreakCriterion(e){let t=$(this.state.draft);t.aggregationRules||={},t.aggregationRules.tiebreakCriteria||(t.aggregationRules.tiebreakCriteria=[]),t.aggregationRules.tiebreakCriteria.push(e),this.commitDraft(t)}removeTiebreakCriterion(e){let t=$(this.state.draft);t.aggregationRules?.tiebreakCriteria&&(t.aggregationRules.tiebreakCriteria.splice(e,1),t.aggregationRules.tiebreakCriteria.length||delete t.aggregationRules.tiebreakCriteria,this.commitDraft(t))}addCountingBucket(){let e=$(this.state.draft);e.aggregationRules||={},e.aggregationRules.countingBuckets||(e.aggregationRules.countingBuckets=[]),e.aggregationRules.countingBuckets.push({bucketName:`New Bucket`}),this.commitDraft(e)}removeCountingBucket(e){let t=$(this.state.draft);t.aggregationRules?.countingBuckets&&(t.aggregationRules.countingBuckets.splice(e,1),t.aggregationRules.countingBuckets.length||delete t.aggregationRules.countingBuckets,this.commitDraft(t))}setCountingBucketField(e,t,n){let r=$(this.state.draft),i=r.aggregationRules?.countingBuckets?.[e];i&&(n===void 0||n===``?delete i[t]:i[t]=n,this.commitDraft(r))}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}commitDraft(e){this.state={...this.state,draft:e,dirty:!0},this.emit(),this.config.onChange?.($(e))}emit(){for(let e of this.listeners)e(this.state)}},G6=()=>`re-section`,K6=()=>`re-section-header`,q6=()=>`re-section-chevron`,J6=()=>`re-section-count`,Y6=()=>`re-section-body`,X6=()=>`re-field-row`,Z6=()=>`re-field-label`,Q6=()=>`re-field-input re-field-input--text`,$6=()=>`re-field-input re-field-input--number`,e8=()=>`re-field-input re-field-input--date`,t8=()=>`re-field-select`,n8=()=>`re-checkbox-row`,r8=()=>`re-points-input`,i8=()=>`re-profile-card`,a8=()=>`re-profile-header`,o8=()=>`re-profile-name-input`,s8=()=>`re-profile-body`,c8=()=>`re-profile-actions`,l8=()=>`re-icon-btn`,u8=()=>`re-icon-btn re-icon-btn--danger`,d8=()=>`re-empty`,f8=()=>`re-editor`,p8=[`totalPoints`,`bestResult`,`headToHead`,`numberOfWins`,`recentResults`,`drawSize`,`numberOfResults`];function m8(e){let t=document.createElement(`div`),n=``;function r(t,n,r,i,a,o){let s=document.createElement(`div`);s.className=X6();let c=document.createElement(`div`);if(c.className=Z6(),c.textContent=n,s.appendChild(c),o){let e=document.createElement(`span`);e.style.cssText=`font-size:0.85rem;color:var(--sp-text)`,e.textContent=String(i),s.appendChild(e)}else if(r===`select`){let n=document.createElement(`select`);n.className=t8();let r=document.createElement(`option`);r.value=``,r.textContent=`(none)`,n.appendChild(r);for(let e of a??[]){let t=document.createElement(`option`);t.value=e,t.textContent=e,n.appendChild(t)}n.value=i??``,n.addEventListener(`change`,()=>e.setAggregationField(t,n.value||void 0)),s.appendChild(n)}else{let n=document.createElement(`input`);n.type=`number`,n.className=$6(),n.value=i===void 0?``:String(i),n.placeholder=`—`,n.addEventListener(`change`,()=>{let r=n.value.trim();e.setAggregationField(t,r?Number.parseInt(r,10):void 0)}),s.appendChild(n)}return s}function i(n,r){let i=document.createElement(`div`);if(i.style.cssText=`font-weight:600;font-size:0.8rem;margin:0.5rem 0 0.3rem;color:var(--sp-text)`,i.textContent=`Tiebreak Order`,t.appendChild(i),n.length){let i=document.createElement(`ol`);i.style.cssText=`font-size:0.8rem;margin:0;padding-left:1.5rem;color:var(--sp-text)`;for(let t=0;t<n.length;t++){let a=document.createElement(`li`);a.style.cssText=`display:flex;align-items:center;gap:6px;margin-bottom:2px`;let o=document.createElement(`span`);if(o.textContent=n[t],a.appendChild(o),!r){let n=document.createElement(`span`);n.className=u8(),n.textContent=`×`,n.style.cursor=`pointer`,n.addEventListener(`click`,()=>e.removeTiebreakCriterion(t)),a.appendChild(n)}i.appendChild(a)}t.appendChild(i)}else if(r){let e=document.createElement(`div`);e.className=d8(),e.textContent=`No tiebreak criteria`,t.appendChild(e)}if(!r){let r=document.createElement(`div`);r.style.cssText=`display:flex;align-items:center;gap:4px;margin-top:4px`;let i=document.createElement(`select`);i.className=t8(),i.style.fontSize=`0.75rem`;let a=new Set(n),o=p8.filter(e=>!a.has(e));for(let e of o){let t=document.createElement(`option`);t.value=e,t.textContent=e,i.appendChild(t)}let s=document.createElement(`button`);s.className=`sp-btn sp-btn--sm sp-btn--outline`,s.textContent=`+ Add`,s.addEventListener(`click`,()=>{i.value&&e.addTiebreakCriterion(i.value)}),o.length&&(r.appendChild(i),r.appendChild(s),t.appendChild(r))}}function a(t,n,r){let i=document.createElement(`div`);i.style.cssText=`border:1px solid var(--sp-border);border-radius:8px;padding:0.4rem;margin-bottom:0.4rem;font-size:0.8rem`;let a=document.createElement(`div`);if(a.style.cssText=`display:flex;align-items:center;gap:6px;margin-bottom:0.2rem`,r){let e=document.createElement(`span`);e.style.cssText=`font-weight:600;color:var(--sp-text)`,e.textContent=t.bucketName||`Bucket`,a.appendChild(e)}else{let r=document.createElement(`input`);r.type=`text`,r.className=`re-field-input re-field-input--text`,r.style.cssText=`width:120px;font-size:0.75rem;font-weight:600`,r.value=t.bucketName||``,r.placeholder=`Bucket name`,r.addEventListener(`change`,()=>e.setCountingBucketField(n,`bucketName`,r.value)),a.appendChild(r);let i=document.createElement(`div`);i.style.flexGrow=`1`,a.appendChild(i);let o=document.createElement(`span`);o.className=u8(),o.textContent=`✕`,o.style.cursor=`pointer`,o.addEventListener(`click`,()=>e.removeCountingBucket(n)),a.appendChild(o)}i.appendChild(a);let o=[];if(t.eventTypes?.length&&o.push(`Events: ${t.eventTypes.join(`, `)}`),t.bestOfCount!==void 0&&o.push(`Best of: ${t.bestOfCount}`),t.levels?.length&&o.push(`Levels: ${t.levels.join(`, `)}`),t.minResults!==void 0&&o.push(`Min: ${t.minResults}`),r&&o.length){let e=document.createElement(`div`);e.style.cssText=`color:var(--sp-muted);font-size:0.75rem`,e.textContent=o.join(` | `),i.appendChild(e)}else if(!r){let r=document.createElement(`div`);r.className=X6();let a=document.createElement(`div`);a.className=Z6(),a.style.cssText=`min-width:70px;font-size:0.75rem`,a.textContent=`Best of`,r.appendChild(a);let o=document.createElement(`input`);o.type=`number`,o.className=$6(),o.style.fontSize=`0.75rem`,o.value=t.bestOfCount===void 0?``:String(t.bestOfCount),o.addEventListener(`change`,()=>{let t=o.value.trim();e.setCountingBucketField(n,`bestOfCount`,t?Number.parseInt(t,10):void 0)}),r.appendChild(o),i.appendChild(r)}return i}function o(n){let o=n.draft.aggregationRules;if(t.innerHTML=``,!o&&n.readonly){let e=document.createElement(`div`);e.className=d8(),e.textContent=`No aggregation rules defined (all results summed)`,t.appendChild(e);return}let s=[[`rollingPeriodDays`,`Rolling period (days)`,`number`,o?.rollingPeriodDays],[`bestOfCount`,`Best of count`,`number`,o?.bestOfCount],[`minCountableResults`,`Min countable results`,`number`,o?.minCountableResults],[`decayFunction`,`Decay function`,`select`,o?.decayFunction,[`none`,`linear`,`exponential`,`step`]]];for(let[e,i,a,o,c]of s)o===void 0&&n.readonly||t.appendChild(r(e,i,a,o,c,n.readonly));let c=[[`separateByGender`,`Separate by gender`,o?.separateByGender],[`perCategory`,`Per category`,o?.perCategory]];for(let[r,i,a]of c){if(a===void 0&&n.readonly)continue;let o=document.createElement(`div`);o.className=n8();let s=document.createElement(`input`);s.type=`checkbox`,s.checked=a??!1,s.disabled=n.readonly,s.addEventListener(`change`,()=>e.setAggregationField(r,s.checked));let c=document.createElement(`label`);c.textContent=i,o.appendChild(s),o.appendChild(c),t.appendChild(o)}i(o?.tiebreakCriteria??[],n.readonly);let l=o?.countingBuckets??[];if(l.length||!n.readonly){let r=document.createElement(`div`);r.style.cssText=`font-weight:600;font-size:0.8rem;margin:0.5rem 0 0.3rem;color:var(--sp-text)`,r.textContent=`Counting Buckets`,t.appendChild(r);for(let e=0;e<l.length;e++)t.appendChild(a(l[e],e,n.readonly));if(!n.readonly){let n=document.createElement(`button`);n.className=`sp-btn sp-btn--sm sp-btn--outline re-add-btn`,n.textContent=`+ Add Bucket`,n.addEventListener(`click`,()=>e.addCountingBucket()),t.appendChild(n)}}}function s(e){let t=JSON.stringify(e.draft.aggregationRules??{});t!==n&&(n=t,o(e))}return{element:t,update:s}}function h8(e){let t=document.createElement(`div`),n=``;function r(t,n,r){let i=document.createElement(`div`);if(i.style.cssText=`display:flex;align-items:center;gap:0.5rem;margin-bottom:0.4rem`,r){let e=document.createElement(`span`);e.style.cssText=`font-weight:600;font-size:0.85rem;color:var(--sp-text)`,e.textContent=n.rankingScaleName,i.appendChild(e)}else{let r=document.createElement(`input`);r.type=`text`,r.className=Q6(),r.style.cssText=`width:150px;font-weight:600`,r.value=n.rankingScaleName,r.addEventListener(`change`,()=>e.setQualityWinField(t,`rankingScaleName`,r.value)),i.appendChild(r);let a=document.createElement(`div`);a.style.flexGrow=`1`,i.appendChild(a);let o=document.createElement(`span`);o.className=u8(),o.textContent=`✕`,o.title=`Delete profile`,o.style.cursor=`pointer`,o.addEventListener(`click`,()=>e.removeQualityWinProfile(t)),i.appendChild(o)}return i}let i=`text-align:right;padding:2px 4px`,a=`text-align:right;width:4rem`;function o(t,n,r,a){let o=document.createElement(`tr`);if(a)for(let e of[r.rankRange[0],r.rankRange[1],r.value]){let t=document.createElement(`td`);t.style.cssText=`text-align:right;font-variant-numeric:tabular-nums;padding:2px 4px`,t.textContent=e.toLocaleString(),o.appendChild(t)}else{let a=document.createElement(`td`);a.style.cssText=i,a.appendChild(g8(r.rankRange[0],i=>{e.setQualityWinRange(t,n,`rankRange`,[i,r.rankRange[1]])})),o.appendChild(a);let s=document.createElement(`td`);s.style.cssText=i,s.appendChild(g8(r.rankRange[1],i=>{e.setQualityWinRange(t,n,`rankRange`,[r.rankRange[0],i])})),o.appendChild(s);let c=document.createElement(`td`);c.style.cssText=i,c.appendChild(g8(r.value,r=>{e.setQualityWinRange(t,n,`value`,r)})),o.appendChild(c);let l=document.createElement(`td`);l.style.cssText=`text-align:center;padding:2px`;let u=document.createElement(`span`);u.className=u8(),u.textContent=`×`,u.style.cursor=`pointer`,u.addEventListener(`click`,()=>e.removeQualityWinRange(t,n)),l.appendChild(u),o.appendChild(l)}return o}function s(e,t,n){let r=document.createElement(`table`);r.style.cssText=`font-size:0.8rem;margin-bottom:0.3rem;border-collapse:collapse`;let i=document.createElement(`thead`),s=document.createElement(`tr`);for(let[e,t]of[[`From`,a],[`To`,a],[`Bonus`,a]]){let n=document.createElement(`th`);n.textContent=e,n.style.cssText=t+`;padding:2px 4px`,s.appendChild(n)}if(!n){let e=document.createElement(`th`);e.style.cssText=`width:2rem;padding:2px`,s.appendChild(e)}i.appendChild(s),r.appendChild(i);let c=document.createElement(`tbody`);for(let r=0;r<t.rankingRanges.length;r++)c.appendChild(o(e,r,t.rankingRanges[r],n));return r.appendChild(c),r}function c(t,n,r,i,a){let o=document.createElement(`div`);o.className=X6();let s=document.createElement(`div`);if(s.className=Z6(),s.style.minWidth=`100px`,s.style.fontSize=`0.75rem`,s.textContent=r,o.appendChild(s),a){let e=document.createElement(`span`);e.style.cssText=`font-size:0.75rem;color:var(--sp-muted)`,e.textContent=String(i),o.appendChild(e)}else{let r=document.createElement(`input`);r.type=typeof i==`number`?`number`:`text`,r.className=typeof i==`number`?$6():Q6(),r.style.fontSize=`0.75rem`,r.value=i===void 0?``:String(i),r.addEventListener(`change`,()=>{let a=r.value.trim();typeof i==`number`||n===`maxBonusPerTournament`?e.setQualityWinField(t,n,a?Number.parseFloat(a):void 0):e.setQualityWinField(t,n,a||void 0)}),o.appendChild(r)}return o}function l(n){let i=n.draft.qualityWinProfiles;if(t.innerHTML=``,!i?.length){let r=document.createElement(`div`);if(r.className=d8(),r.textContent=`No quality win profiles defined`,t.appendChild(r),!n.readonly){let n=document.createElement(`button`);n.className=`sp-btn sp-btn--sm sp-btn--outline re-add-btn`,n.textContent=`+ Add Quality Win Profile`,n.addEventListener(`click`,()=>e.addQualityWinProfile()),t.appendChild(n)}return}for(let a=0;a<i.length;a++){let o=i[a],l=document.createElement(`div`);if(l.style.cssText=`border:1px solid var(--sp-border);border-radius:10px;padding:0.5rem;margin-bottom:0.5rem`,l.appendChild(r(a,o,n.readonly)),o.rankingRanges?.length&&(l.appendChild(s(a,o,n.readonly)),!n.readonly)){let t=document.createElement(`button`);t.className=`sp-btn sp-btn--sm sp-btn--outline`,t.textContent=`+ Range`,t.style.marginBottom=`0.3rem`,t.addEventListener(`click`,()=>e.addQualityWinRange(a)),l.appendChild(t)}let u=[[`maxBonusPerTournament`,`Max bonus/tournament`,o.maxBonusPerTournament],[`rankingSnapshot`,`Ranking snapshot`,o.rankingSnapshot]];for(let[e,t,r]of u)r===void 0&&n.readonly||l.appendChild(c(a,e,t,r,n.readonly));if(o.includeWalkovers!==void 0||!n.readonly){let t=document.createElement(`div`);t.className=n8();let r=document.createElement(`input`);r.type=`checkbox`,r.checked=o.includeWalkovers??!1,r.disabled=n.readonly,r.addEventListener(`change`,()=>e.setQualityWinField(a,`includeWalkovers`,r.checked));let i=document.createElement(`label`);i.textContent=`Include walkovers`,i.style.fontSize=`0.75rem`,t.appendChild(r),t.appendChild(i),l.appendChild(t)}t.appendChild(l)}if(!n.readonly){let n=document.createElement(`button`);n.className=`sp-btn sp-btn--sm sp-btn--outline re-add-btn`,n.textContent=`+ Add Quality Win Profile`,n.addEventListener(`click`,()=>e.addQualityWinProfile()),t.appendChild(n)}}function u(e){let t=JSON.stringify(e.draft.qualityWinProfiles??[]);t!==n&&(n=t,l(e))}return{element:t,update:u}}function g8(e,t){let n=document.createElement(`input`);return n.type=`number`,n.className=r8(),n.value=String(e),n.addEventListener(`change`,()=>{let e=Number.parseFloat(n.value);Number.isNaN(e)||t(e)}),n}function _8(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=X6();let r=document.createElement(`div`);r.className=Z6(),r.textContent=`Name`;let i=document.createElement(`input`);i.type=`text`,i.className=Q6(),i.placeholder=`Policy name`,i.addEventListener(`change`,()=>e.setPolicyName(i.value)),n.appendChild(r),n.appendChild(i),t.appendChild(n);let a=document.createElement(`div`);a.className=X6();let o=document.createElement(`div`);o.className=Z6(),o.textContent=`Version`;let s=document.createElement(`input`);s.type=`text`,s.className=Q6(),s.placeholder=`1.0`,s.style.width=`80px`,s.addEventListener(`change`,()=>e.setPolicyVersion(s.value)),a.appendChild(o),a.appendChild(s),t.appendChild(a);let c=document.createElement(`div`);c.className=X6();let l=document.createElement(`div`);l.className=Z6(),l.textContent=`Valid from`;let u=document.createElement(`input`);u.type=`date`,u.className=e8(),u.addEventListener(`change`,()=>e.setValidDateRange(`startDate`,u.value)),c.appendChild(l),c.appendChild(u),t.appendChild(c);let d=document.createElement(`div`);d.className=X6();let f=document.createElement(`div`);f.className=Z6(),f.textContent=`Valid until`;let p=document.createElement(`input`);p.type=`date`,p.className=e8(),p.addEventListener(`change`,()=>e.setValidDateRange(`endDate`,p.value)),d.appendChild(f),d.appendChild(p),t.appendChild(d);let m=document.createElement(`div`);m.className=X6();let h=document.createElement(`div`);h.className=Z6(),h.textContent=`Doubles attribution`;let g=document.createElement(`select`);g.className=t8();for(let[e,t]of[[``,`(none)`],[`fullToEach`,`Full to each`],[`halfToEach`,`Half to each`],[`split`,`Split`]]){let n=document.createElement(`option`);n.value=e,n.textContent=t,g.appendChild(n)}g.addEventListener(`change`,()=>e.setDoublesAttribution(g.value)),m.appendChild(h),m.appendChild(g),t.appendChild(m);let _=document.createElement(`div`);_.className=X6();let v=document.createElement(`div`);v.className=Z6(),v.textContent=`Category resolution`;let y=document.createElement(`select`);y.className=t8();for(let[e,t]of[[``,`(none)`],[`matchCategory`,`Match category`],[`eventCategory`,`Event category`]]){let n=document.createElement(`option`);n.value=e,n.textContent=t,y.appendChild(n)}y.addEventListener(`change`,()=>e.setCategoryResolution(y.value)),_.appendChild(v),_.appendChild(y),t.appendChild(_);let b=document.createElement(`div`);b.className=n8();let x=document.createElement(`input`);x.type=`checkbox`,x.id=`re-require-win`;let S=document.createElement(`label`);S.htmlFor=`re-require-win`,S.textContent=`Require win for points`,x.addEventListener(`change`,()=>e.setGlobalFlag(`requireWinForPoints`,x.checked)),b.appendChild(x),b.appendChild(S),t.appendChild(b);let C=document.createElement(`div`);C.className=n8();let w=document.createElement(`input`);w.type=`checkbox`,w.id=`re-require-win-r1`;let T=document.createElement(`label`);T.htmlFor=`re-require-win-r1`,T.textContent=`Require win in first round`,w.addEventListener(`change`,()=>e.setGlobalFlag(`requireWinFirstRound`,w.checked)),C.appendChild(w),C.appendChild(T),t.appendChild(C);let E=[i,s,u,p],D=[g,y],O=[x,w];function k(e){let{draft:t}=e;document.activeElement!==i&&(i.value=t.policyName??``),document.activeElement!==s&&(s.value=t.policyVersion??``),document.activeElement!==u&&(u.value=t.validDateRange?.startDate??``),document.activeElement!==p&&(p.value=t.validDateRange?.endDate??``),document.activeElement!==g&&(g.value=t.doublesAttribution??``),document.activeElement!==y&&(y.value=t.categoryResolution??``),x.checked=t.requireWinForPoints??!1,w.checked=t.requireWinFirstRound??!1;let n=e.readonly;for(let e of E)e.disabled=n;for(let e of D)e.disabled=n;for(let e of O)e.disabled=n}return{element:t,update:k}}var v8={1:`W`,2:`F`,4:`SF`,8:`QF`,16:`R16`,32:`R32`,64:`R64`,128:`R128`,256:`R256`},y8=`level-keyed`;function b8(e){return v8[e]??`R${e}`}function x8(e){if(!e)return{type:`flat`};let t=Object.values(e);if(!t.length||t.every(e=>typeof e==`number`))return{type:`flat`};let n=S8(t);return n.hasConditionalArray?{type:`conditional`}:n.hasLevelFlightNesting?C8(t,n.allLevels):n.allLevels.size>0?{type:`level-columns`,levels:[...n.allLevels].sort((e,t)=>e-t)}:n.allFlights.size>0?{type:`flight-columns`,flights:[...n.allFlights].sort((e,t)=>e-t)}:{type:`flat`}}function S8(e){let t=new Set,n=new Set,r=!1,i=!1;for(let a of e){let e=w8(a);if(e.type===y8){for(let n of e.levels)t.add(n);e.hasFlightNesting&&(i=!0)}else if(e.type===`flight-keyed`)for(let t=0;t<e.flightCount;t++)n.add(t+1);else e.type===`conditional-array`&&(r=!0)}return{allLevels:t,allFlights:n,hasConditionalArray:r,hasLevelFlightNesting:i}}function C8(e,t){let n={},r=[...t].sort((e,t)=>e-t);for(let t of e){let e=w8(t);if(e.type===y8&&e.flightDetails)for(let[t,r]of Object.entries(e.flightDetails)){let e=Number(t);n[e]||(n[e]=[]);for(let t of r)n[e].includes(t)||n[e].push(t)}}return{type:`level-flight-tabs`,levels:r,flightsPerLevel:n}}function w8(e){if(typeof e==`number`)return{type:`flat`,levels:[],flightCount:0,hasFlightNesting:!1};if(Array.isArray(e))return{type:`conditional-array`,levels:[],flightCount:0,hasFlightNesting:!1};if(typeof e!=`object`||!e)return{type:`flat`,levels:[],flightCount:0,hasFlightNesting:!1};if(e.level!==void 0){if(Array.isArray(e.level))return{type:y8,levels:e.level.map((e,t)=>t+1),flightCount:0,hasFlightNesting:!1};if(typeof e.level==`object`){let t=Object.keys(e.level).map(Number).filter(e=>!Number.isNaN(e)),n=!1,r={};for(let[t,i]of Object.entries(e.level))typeof i==`object`&&i&&i.flights&&(n=!0,r[Number(t)]=i.flights.map((e,t)=>t+1));return{type:y8,levels:t,flightCount:0,hasFlightNesting:n,flightDetails:r}}}return e.flights!==void 0||e.f!==void 0?{type:`flight-keyed`,levels:[],flightCount:(e.flights??e.f??[]).length,hasFlightNesting:!1}:e.value===void 0?{type:`flat`,levels:[],flightCount:0,hasFlightNesting:!1}:{type:`explicit-flat`,levels:[],flightCount:0,hasFlightNesting:!1}}function T8(e,t={}){if(typeof e==`number`)return e;if(e!=null){if(Array.isArray(e))return E8(e,t);if(typeof e==`object`){if(e.level!==void 0&&t.level!==void 0)return D8(e,t);if(t.flight!==void 0){let n=e.flights??e.f;if(Array.isArray(n))return n[t.flight-1]}if(e.value!==void 0)return e.value}}}function E8(e,t){for(let n of e){if(n.drawSizes&&t.drawSize&&n.drawSizes.includes(t.drawSize))return T8(n,t);if(n.drawSize!==void 0&&t.drawSize!==void 0&&(n.threshold?t.drawSize>=n.drawSize:t.drawSize===n.drawSize))return T8({...n,drawSize:void 0,drawSizes:void 0,threshold:void 0},t);if(n.drawSize===void 0&&n.drawSizes===void 0)return T8(n,t)}}function D8(e,t){let n=Array.isArray(e.level)?e.level[t.level-1]:e.level[t.level];if(n!==void 0)return typeof n==`object`&&n?T8(n,t):typeof n==`number`?n:void 0}function O8(e){let t=[],n=Object.keys(e.finishingPositionRanges??{}).length;return n&&t.push(`${n} positions`),(e.perWinPoints||e.pointsPerWin)&&t.push(`per-win`),e.bonusPoints?.length&&t.push(`${e.bonusPoints.length} bonus`),t.join(`, `)||`empty`}function k8(e){let t=[];for(let n of e.eventTypes??[])t.push({label:n,intent:`re-badge--accent`});for(let n of e.stages??[])t.push({label:n,intent:`re-badge--success`});for(let n of e.levels??[])t.push({label:`L${n}`,intent:`re-badge--warn`});for(let n of e.drawTypes??[])t.push({label:n.replaceAll(`_`,` `),intent:`re-badge--primary`});return e.participationOrder!==void 0&&t.push({label:`PO:${e.participationOrder}`,intent:`re-badge--info`}),t}function A8(e){return e==null?`--`:e.toLocaleString()}var j8=[1,2,4,8,16,32,64,128],M8=`font-size:0.8rem;margin-bottom:0;border-collapse:collapse`,N8=`width:3.5rem;text-align:center`;function P8(e,t){let n=document.createElement(`div`);n.style.cssText=`overflow-x:auto`;let r=``;function i(r){let i=r.draft.awardProfiles?.[t]?.finishingPositionRanges;if(n.innerHTML=``,!i||!Object.keys(i).length){let i=document.createElement(`div`);if(i.className=d8(),i.textContent=`No finishing position points defined`,!r.readonly){let n=document.createElement(`button`);n.className=`sp-btn sp-btn--sm sp-btn--outline re-add-btn`,n.textContent=`+ Add position`,n.style.marginLeft=`8px`,n.addEventListener(`click`,()=>e.addPositionRow(t,1)),i.appendChild(n)}n.appendChild(i);return}let a=x8(i),o=Object.keys(i).map(Number).sort((e,t)=>e-t);a.type===`flat`?F8(n,o,i,r.readonly,e,t):a.type===`level-columns`?I8(n,o,i,a.levels,r.readonly,e,t):L8(n,o,i,a)}function a(e){let n=e.draft.awardProfiles?.[t],a=JSON.stringify(n?.finishingPositionRanges??{});a!==r&&(r=a,i(e))}return{element:n,update:a}}function F8(e,t,n,r,i,a){let o=document.createElement(`table`);o.style.cssText=M8;let s=document.createElement(`thead`),c=document.createElement(`tr`);R8(c,`Pos`,N8),R8(c,`Points`,`text-align:right`),r||R8(c,``,`width:2rem`),s.appendChild(c),o.appendChild(s);let l=document.createElement(`tbody`);for(let e of t){let t=document.createElement(`tr`);z8(t,e);let o=document.createElement(`td`);o.style.cssText=`text-align:right;padding:2px 4px`,r?(o.style.fontVariantNumeric=`tabular-nums`,o.textContent=A8(typeof n[e]==`number`?n[e]:T8(n[e]))):o.appendChild(V8(typeof n[e]==`number`?n[e]:T8(n[e])??0,t=>i.setFlatPositionPoints(a,e,t))),t.appendChild(o),r||B8(t,()=>i.removePositionRow(a,e)),l.appendChild(t)}o.appendChild(l),e.appendChild(o),r||H8(e,t,i,a)}function I8(e,t,n,r,i,a,o){let s=document.createElement(`table`);s.style.cssText=M8;let c=document.createElement(`thead`),l=document.createElement(`tr`);R8(l,`Pos`,N8);for(let e of r){let t=document.createElement(`th`);if(t.style.cssText=`text-align:right;min-width:3.5rem;padding:2px 4px`,i)t.textContent=`L${e}`;else{let n=document.createElement(`div`);n.style.cssText=`display:flex;align-items:center;justify-content:flex-end;gap:4px`;let r=document.createElement(`span`);r.textContent=`L${e}`,n.appendChild(r);let i=document.createElement(`span`);i.className=u8(),i.textContent=`×`,i.title=`Remove level ${e}`,i.style.cssText=`cursor:pointer;font-size:0.65rem`,i.addEventListener(`click`,()=>a.removeLevel(o,e)),n.appendChild(i),t.appendChild(n)}l.appendChild(t)}i||R8(l,``,`width:2rem`),c.appendChild(l),s.appendChild(c);let u=document.createElement(`tbody`);for(let e of t){let t=document.createElement(`tr`);z8(t,e);for(let s of r){let r=document.createElement(`td`);r.style.cssText=`text-align:right;padding:2px 4px`;let c=T8(n[e],{level:s});i?(r.style.fontVariantNumeric=`tabular-nums`,r.textContent=A8(c),c===void 0&&(r.style.color=`var(--sp-muted)`)):r.appendChild(V8(c??0,t=>a.setLevelPositionPoints(o,e,s,t))),t.appendChild(r)}i||B8(t,()=>a.removePositionRow(o,e)),u.appendChild(t)}if(s.appendChild(u),e.appendChild(s),!i){let n=document.createElement(`div`);n.style.cssText=`display:flex;gap:8px;margin-top:6px;flex-wrap:wrap`;let i=document.createElement(`div`);i.style.cssText=`display:flex;align-items:center;gap:4px`;let s=document.createElement(`input`);s.type=`number`,s.className=r8(),s.style.width=`50px`,s.placeholder=`L#`,s.min=`1`;let c=document.createElement(`button`);c.className=`sp-btn sp-btn--sm sp-btn--outline`,c.textContent=`+ Level`,c.addEventListener(`click`,()=>{let e=Number.parseInt(s.value,10);!Number.isNaN(e)&&e>0&&!r.includes(e)&&(a.addLevel(o,e),s.value=``)}),i.appendChild(s),i.appendChild(c),n.appendChild(i),U8(n,t,a,o),e.appendChild(n)}}function L8(e,t,n,r){let i=document.createElement(`div`);i.style.cssText=`font-size:0.7rem;color:var(--sp-muted);margin-bottom:4px;font-style:italic`,i.textContent=`(${r.type} layout — view only)`,e.appendChild(i);let a=document.createElement(`table`);a.style.cssText=M8;let o=document.createElement(`thead`),s=document.createElement(`tr`);if(R8(s,`Pos`,N8),r.type===`flight-columns`)for(let e of r.flights)R8(s,`F${e}`,`text-align:right;min-width:3.5rem`);else R8(s,`Points`,`text-align:right`);o.appendChild(s),a.appendChild(o);let c=document.createElement(`tbody`);for(let e of t){let t=document.createElement(`tr`);z8(t,e);let i=n[e];if(r.type===`flight-columns`)for(let e of r.flights){let n=document.createElement(`td`);n.style.cssText=`text-align:right;font-variant-numeric:tabular-nums;padding:2px 4px`;let r=T8(i,{flight:e});n.textContent=A8(r),r===void 0&&(n.style.color=`var(--sp-muted)`),t.appendChild(n)}else{let e=document.createElement(`td`);if(e.style.cssText=`text-align:right;font-variant-numeric:tabular-nums;padding:2px 4px`,e.textContent=A8(T8(i)),Array.isArray(i)){let t=document.createElement(`span`);t.style.cssText=`margin-left:0.3rem;font-size:0.65rem;color:var(--sp-muted)`,t.textContent=`${i.length} variants`,t.title=JSON.stringify(i,null,2),e.appendChild(t)}t.appendChild(e)}c.appendChild(t)}a.appendChild(c),e.appendChild(a)}function R8(e,t,n){let r=document.createElement(`th`);r.textContent=t,r.style.cssText=n+`;padding:2px 4px`,e.appendChild(r)}function z8(e,t){let n=document.createElement(`td`);n.style.cssText=`text-align:center;font-weight:600;color:var(--sp-text);padding:2px 4px`,n.textContent=b8(t),e.appendChild(n)}function B8(e,t){let n=document.createElement(`td`);n.style.cssText=`text-align:center;vertical-align:middle;padding:2px`;let r=document.createElement(`span`);r.className=u8(),r.textContent=`×`,r.title=`Remove position`,r.style.cursor=`pointer`,r.addEventListener(`click`,t),n.appendChild(r),e.appendChild(n)}function V8(e,t){let n=document.createElement(`input`);return n.type=`number`,n.className=r8(),n.value=String(e),n.addEventListener(`change`,()=>{let e=Number.parseFloat(n.value);Number.isNaN(e)||t(e)}),n}function H8(e,t,n,r){let i=document.createElement(`div`);i.style.cssText=`display:flex;gap:8px;margin-top:6px;flex-wrap:wrap`,U8(i,t,n,r),e.appendChild(i)}function U8(e,t,n,r){let i=new Set(t),a=j8.filter(e=>!i.has(e));if(!a.length)return;let o=document.createElement(`div`);o.style.cssText=`display:flex;align-items:center;gap:4px`;let s=document.createElement(`select`);s.className=`re-field-select`,s.style.cssText=`min-width:80px;font-size:11px;padding:4px 6px`;for(let e of a){let t=document.createElement(`option`);t.value=String(e),t.textContent=b8(e),s.appendChild(t)}let c=document.createElement(`button`);c.className=`sp-btn sp-btn--sm sp-btn--outline`,c.textContent=`+ Position`,c.addEventListener(`click`,()=>{let e=Number.parseInt(s.value,10);Number.isNaN(e)||n.addPositionRow(r,e)}),o.appendChild(s),o.appendChild(c),e.appendChild(o)}function W8(e,t){let n=document.createElement(`div`);n.style.cssText=`padding:0.25rem 0;font-size:0.8rem`;let r=document.createElement(`div`);r.className=X6();let i=document.createElement(`div`);i.className=Z6(),i.textContent=`Per-Win`,i.style.minWidth=`80px`;let a=document.createElement(`input`);a.type=`number`,a.className=r8(),a.placeholder=`—`,a.addEventListener(`change`,()=>{let n=a.value.trim();e.setPointsPerWin(t,n===``?void 0:parseFloat(n))});let o=document.createElement(`div`);o.style.cssText=`font-size:0.75rem;color:var(--sp-muted)`,r.appendChild(i),r.appendChild(a),n.appendChild(r),n.appendChild(o);function s(e){let r=e.draft.awardProfiles?.[t];if(!r){n.style.display=`none`;return}let i=r.perWinPoints,s=r.pointsPerWin;if(!i&&s===void 0){n.style.display=`none`;return}if(n.style.display=``,a.disabled=e.readonly,s!==void 0&&typeof s==`number`)a.style.display=``,o.style.display=`none`,document.activeElement!==a&&(a.value=String(s));else if(s!==void 0){a.style.display=`none`,o.style.display=``;let e=T8(s);o.textContent=`${A8(e)} pts/win (complex)`}else if(i){a.style.display=`none`,o.style.display=``;let e=(Array.isArray(i)?i:[i]).map(e=>{let t=[];return e.participationOrders?.length&&t.push(`PO:${e.participationOrders.join(`,`)}`),e.value!==void 0&&t.push(`${e.value} pts/win`),e.limit!==void 0&&t.push(`limit: ${e.limit}`),t.join(` | `)});o.textContent=e.join(`; `)}if(r.maxCountableMatches!==void 0){let e=typeof r.maxCountableMatches==`number`?r.maxCountableMatches:`level-keyed`;o.style.display=``;let t=o.textContent;o.textContent=t?`${t} — max countable: ${e}`:`Max countable: ${e}`}}return{element:n,update:s}}function G8(e,t){let n=document.createElement(`div`);n.style.cssText=`padding:0.25rem 0;font-size:0.8rem`;let r=``;function i(r){let i=r.draft.awardProfiles?.[t]?.bonusPoints;if(n.innerHTML=``,!i?.length&&r.readonly){n.style.display=`none`;return}n.style.display=``;let a=document.createElement(`div`);if(a.style.cssText=`font-weight:600;color:var(--sp-text);margin-bottom:4px`,a.textContent=`Bonus Points`,n.appendChild(a),i?.length)for(let a=0;a<i.length;a++){let o=i[a],s=document.createElement(`div`);if(s.style.cssText=`display:flex;align-items:center;gap:6px;margin-bottom:4px;padding-left:0.5rem`,r.readonly){let e=o.finishingPositions.map(b8).join(`, `),t=document.createElement(`span`);t.textContent=`${e}: `,s.appendChild(t);let n=document.createElement(`span`);n.style.fontVariantNumeric=`tabular-nums`,n.textContent=typeof o.value==`number`?o.value.toLocaleString():String(o.value??`—`),s.appendChild(n)}else{let n=document.createElement(`span`);n.style.cssText=`font-size:0.75rem;color:var(--sp-muted);min-width:30px`,n.textContent=`Pos:`,s.appendChild(n);let r=document.createElement(`input`);r.type=`text`,r.className=r8(),r.style.width=`80px`,r.value=o.finishingPositions.join(`, `),r.title=`Comma-separated positions (e.g. 1, 2)`,r.addEventListener(`change`,()=>{let n=r.value.split(`,`).map(e=>Number.parseInt(e.trim(),10)).filter(e=>!Number.isNaN(e)&&e>0);n.length&&e.setBonusPointPositions(t,a,n)}),s.appendChild(r);let i=document.createElement(`span`);i.style.cssText=`font-size:0.75rem;color:var(--sp-muted)`,i.textContent=`Pts:`,s.appendChild(i);let c=document.createElement(`input`);c.type=`number`,c.className=r8(),c.value=typeof o.value==`number`?String(o.value):``,c.addEventListener(`change`,()=>{let n=Number.parseFloat(c.value);Number.isNaN(n)||e.setBonusPointValue(t,a,n)}),s.appendChild(c);let l=document.createElement(`span`);l.className=u8(),l.textContent=`×`,l.title=`Remove bonus`,l.style.cursor=`pointer`,l.addEventListener(`click`,()=>e.removeBonusPoint(t,a)),s.appendChild(l)}n.appendChild(s)}if(!r.readonly){let r=document.createElement(`button`);r.className=`sp-btn sp-btn--sm sp-btn--outline`,r.textContent=`+ Add bonus`,r.style.cssText=`margin-top:4px;margin-left:0.5rem`,r.addEventListener(`click`,()=>e.addBonusPoint(t)),n.appendChild(r)}}function a(e){let n=e.draft.awardProfiles?.[t],a=JSON.stringify(n?.bonusPoints??[]);a!==r&&(r=a,i(e))}return{element:n,update:a}}function K8(e){let t=document.createElement(`div`);t.style.cssText=`display:inline-flex;gap:0.25rem;flex-wrap:wrap;margin-bottom:0`;let n=k8(e);if(!n.length){let e=document.createElement(`span`);return e.className=`re-badge re-badge--neutral`,e.textContent=`All`,t.appendChild(e),t}for(let e of n){let n=document.createElement(`span`);n.className=`re-badge ${e.intent}`,n.textContent=e.label,t.appendChild(n)}return t}var q8=[{field:`eventTypes`,label:`Event types`,options:[`SINGLES`,`DOUBLES`,`TEAM`]},{field:`drawTypes`,label:`Draw types`,options:[`SINGLE_ELIMINATION`,`DOUBLE_ELIMINATION`,`ROUND_ROBIN`,`COMPASS`,`FEED_IN`,`AD_HOC`,`LUCKY_DRAW`]},{field:`stages`,label:`Stages`,options:[`MAIN`,`QUALIFYING`,`CONSOLATION`,`PLAY_OFF`]},{field:`levels`,label:`Levels`,options:[],isNumeric:!0}],J8=[[`maxDrawSize`,`Max draw size`],[`maxLevel`,`Max level`],[`priority`,`Priority`],[`participationOrder`,`Participation order`]];function Y8(e,t){let n=document.createElement(`div`);n.style.cssText=`padding:0.25rem 0`;let r=document.createElement(`div`);r.style.cssText=`font-weight:600;font-size:0.8rem;color:var(--sp-text);margin-bottom:4px`,r.textContent=`Scope`,n.appendChild(r);let i=document.createElement(`div`);n.appendChild(i);let a=``;function o(n,r){if(n.isNumeric){let i=document.createElement(`input`);return i.type=`number`,i.min=`1`,i.placeholder=`+`,i.style.cssText=`width:36px;font-size:0.7rem;padding:2px 4px;border:1px dashed var(--sp-border);border-radius:4px;background:transparent;color:var(--sp-text);outline:none;text-align:center`,i.addEventListener(`keydown`,a=>{if(a.key===`Enter`){let a=Number.parseInt(i.value,10);!Number.isNaN(a)&&a>0&&!r.includes(a)&&(e.setProfileScope(t,n.field,[...r,a].sort((e,t)=>e-t)),i.value=``)}}),i}let i=n.options.filter(e=>!r.includes(e));if(!i.length)return;let a=document.createElement(`select`);a.style.cssText=`font-size:0.65rem;padding:2px 4px;border:1px dashed var(--sp-border);border-radius:4px;background:transparent;color:var(--sp-muted);outline:none;cursor:pointer`;let o=document.createElement(`option`);o.value=``,o.textContent=`+`,a.appendChild(o);for(let e of i){let t=document.createElement(`option`);t.value=e,t.textContent=e,a.appendChild(t)}return a.addEventListener(`change`,()=>{a.value&&e.setProfileScope(t,n.field,[...r,a.value])}),a}function s(n,r,i){let a=document.createElement(`div`);a.style.cssText=`margin-bottom:6px`;let s=document.createElement(`div`);s.style.cssText=`font-size:0.7rem;color:var(--sp-muted);margin-bottom:2px`,s.textContent=n.label,a.appendChild(s);let c=document.createElement(`div`);c.style.cssText=`display:flex;flex-wrap:wrap;gap:4px;align-items:center`;for(let a of r){let o=document.createElement(`span`);if(o.className=`re-badge re-badge--accent`,o.style.cssText=`display:inline-flex;align-items:center;gap:3px`,o.textContent=n.isNumeric?`L${a}`:String(a),!i){let i=document.createElement(`span`);i.style.cssText=`cursor:pointer;font-size:0.6rem;opacity:0.7`,i.textContent=`×`,i.addEventListener(`click`,()=>{e.setProfileScope(t,n.field,r.filter(e=>e!==a))}),o.appendChild(i)}c.appendChild(o)}if(!i){let e=o(n,r);e&&c.appendChild(e)}return a.appendChild(c),a}function c(r){i.innerHTML=``;let a=r.draft.awardProfiles?.[t];if(!a)return;let o=r.readonly;for(let e of q8){let t=a[e.field]??[];(!o||t.length)&&i.appendChild(s(e,t,o))}for(let[n,r]of J8){let s=a[n];if(o&&s===void 0)continue;let c=document.createElement(`div`);c.className=X6();let l=document.createElement(`div`);if(l.className=Z6(),l.style.cssText=`min-width:110px;font-size:0.75rem`,l.textContent=r,c.appendChild(l),o){let e=document.createElement(`span`);e.style.cssText=`font-size:0.75rem;color:var(--sp-text)`,e.textContent=String(s),c.appendChild(e)}else{let r=document.createElement(`input`);r.type=`number`,r.className=$6(),r.style.fontSize=`0.75rem`,r.value=s===void 0?``:String(s),r.placeholder=`—`,r.addEventListener(`change`,()=>{let i=r.value.trim();e.setProfileField(t,n,i?Number.parseInt(i,10):void 0)}),c.appendChild(r)}i.appendChild(c)}let c=i.children.length>0;n.style.display=c?``:`none`}function l(e){let n=e.draft.awardProfiles?.[t],r=q8.map(e=>n?.[e.field]??[]),i=J8.map(([e])=>n?.[e]),o=JSON.stringify([r,i,e.readonly]);o!==a&&(a=o,c(e))}return{element:n,update:l}}function X8(e,t){let n=document.createElement(`div`);n.className=i8();let r=document.createElement(`div`);r.className=a8();let i=document.createElement(`span`);i.className=q6(),i.style.flexShrink=`0`,r.appendChild(i);let a=document.createElement(`input`);a.type=`text`,a.className=o8(),a.addEventListener(`click`,e=>e.stopPropagation()),a.addEventListener(`change`,()=>e.setProfileName(t,a.value)),r.appendChild(a);let o=document.createElement(`div`);o.style.cssText=`flex-grow:1;display:inline-flex;gap:0.25rem;flex-wrap:wrap`,r.appendChild(o);let s=document.createElement(`span`);s.style.cssText=`font-size:0.75rem;color:var(--sp-muted);white-space:nowrap;flex-shrink:0`,r.appendChild(s);let c=document.createElement(`div`);c.className=c8();let l=document.createElement(`button`);l.className=l8(),l.textContent=`⎘`,l.title=`Duplicate profile`,l.addEventListener(`click`,n=>{n.stopPropagation(),e.duplicateProfile(t)});let u=document.createElement(`button`);u.className=u8(),u.textContent=`✕`,u.title=`Delete profile`,u.addEventListener(`click`,n=>{n.stopPropagation(),e.removeProfile(t)}),c.appendChild(l),c.appendChild(u),r.appendChild(c),r.addEventListener(`click`,()=>e.toggleProfile(t)),n.appendChild(r);let d=document.createElement(`div`);d.className=s8();let f=document.createElement(`div`);f.style.cssText=`font-weight:600;font-size:0.85rem;color:var(--sp-text);margin-bottom:6px`,d.appendChild(f);let p=P8(e,t);d.appendChild(p.element);let m=W8(e,t);d.appendChild(m.element);let h=G8(e,t);d.appendChild(h.element);let g=Y8(e,t);d.appendChild(g.element);let _=document.createElement(`div`);_.style.cssText=`padding:0.25rem 0;font-size:0.75rem;color:var(--sp-muted)`,d.appendChild(_),n.appendChild(d);function v(e){let r=e.draft.awardProfiles?.[t];if(!r){n.style.display=`none`;return}n.style.display=``;let l=e.expandedProfiles.has(t),u=e.readonly;i.textContent=l?`▼`:`▶`;let v=r.profileName||`Profile ${t+1}`;document.activeElement!==a&&(a.value=v),a.title=v,a.disabled=u,o.innerHTML=``;let y=K8(r);if(y.style.flexGrow=`1`,o.appendChild(y),s.textContent=l?``:O8(r),c.style.display=u?`none`:`flex`,d.style.display=l?``:`none`,l){f.textContent=v,p.update(e),m.update(e),h.update(e),g.update(e);let t=[];r.requireWinForPoints!==void 0&&t.push(`requireWin: ${r.requireWinForPoints}`),r.requireWinFirstRound!==void 0&&t.push(`requireWinR1: ${r.requireWinFirstRound}`),_.textContent=t.join(` | `),_.style.display=t.length?``:`none`}}return{element:n,update:v}}function Z8(e,t){let n=document.createElement(`div`);n.className=f8();let r=_8(e),i=h8(e),a=m8(e),o=[{id:`metadata`,label:`Metadata`},{id:`awardProfiles`,label:`Award Profiles`,countFn:e=>e.draft.awardProfiles?.length??0},{id:`qualityWinProfiles`,label:`Quality Win Profiles`,countFn:e=>e.draft.qualityWinProfiles?.length??0},{id:`aggregationRules`,label:`Aggregation Rules`}],s=[];for(let t of o){let o=document.createElement(`div`);o.className=G6();let c=document.createElement(`div`);c.className=K6();let l=document.createElement(`span`);l.className=q6();let u=document.createElement(`span`);u.textContent=t.label;let d=document.createElement(`span`);d.className=J6(),c.appendChild(l),c.appendChild(u),c.appendChild(d),c.addEventListener(`click`,()=>e.toggleSection(t.id));let f=document.createElement(`div`);f.className=Y6(),t.id===`metadata`&&f.appendChild(r.element),t.id===`qualityWinProfiles`&&f.appendChild(i.element),t.id===`aggregationRules`&&f.appendChild(a.element),o.appendChild(c),o.appendChild(f),n.appendChild(o),s.push({id:t.id,chevron:l,countEl:d,bodyEl:f})}let c=[],l=-1,u=``,d=null;function f(e,t){for(let n=0;n<o.length;n++){let r=o[n],i=s[n],a=e.has(r.id);if(i.chevron.textContent=a?`▼`:`▶`,i.bodyEl.style.display=a?`block`:`none`,r.countFn){let e=r.countFn(t);i.countEl.textContent=e?`(${e})`:``}}}function p(t,n){let r=s[1].bodyEl;r.innerHTML=``,c=[];let i=t.draft.awardProfiles??[],a=0;for(let t=0;t<i.length;t++){let o=i[t];if(n&&![o.profileName??``,...o.eventTypes??[],...o.stages??[],...(o.levels??[]).map(e=>`L${e}`),...o.drawTypes??[]].join(` `).toLowerCase().includes(n))continue;let s=X8(e,t);c.push(s),r.appendChild(s.element),a++}if(!a){let e=document.createElement(`div`);e.className=d8(),e.textContent=n?`No profiles match filter`:`No award profiles defined`,r.appendChild(e)}t.readonly||(d=document.createElement(`button`),d.className=`sp-btn sp-btn--sm sp-btn--outline re-add-btn`,d.textContent=`+ Add Profile`,d.addEventListener(`click`,()=>e.addProfile()),r.appendChild(d))}return{element:n,update:e=>{let{draft:t,expandedSections:n,profileFilter:o}=e;if(f(n,e),n.has(`metadata`)&&r.update(e),n.has(`awardProfiles`)){let n=t.awardProfiles?.length??0,r=o.toLowerCase();(n!==l||r!==u)&&(l=n,u=r,p(e,r));for(let t of c)t.update(e);d&&(d.style.display=e.readonly?`none`:``)}n.has(`qualityWinProfiles`)&&i.update(e),n.has(`aggregationRules`)&&a.update(e)}}}var Q8=class e{constructor(e){this.container=null,this.store=new W6(e),this.panel=Z8(this.store,e),this.unsubscribe=this.store.subscribe(e=>{this.panel.update(e)}),this.panel.update(this.store.getState())}render(e){this.container=e,e.appendChild(this.panel.element)}destroy(){this.unsubscribe(),this.container&&this.panel.element.parentNode===this.container&&this.panel.element.remove(),this.container=null}getData(){return this.store.getData()}setData(e){this.store.setData(e)}getStore(){return this.store}static createEditorInstance(t){let n={initialPolicy:t.initialData,onChange:e=>t.onChange(e),readonly:t.readonly},r=new e(n);return{element:r.panel.element,setData(e){r.setData(e)},getData(){return r.getData()},destroy(){r.destroy()}}}};function $8(e){return e5[e]??e}var e5={"SET3-S:6/TB7":`Best of 3 TB sets`,"SET3-S:6/TB7-F:TB10":`2 TB sets, MTB10`,"SET3-S:6/TB7-F:TB7":`2 TB sets, MTB7`,"SET3-S:4NOAD-F:TB7":`2 short sets (4, NOAD), MTB7`,"SET3-S:4/TB7":`Best of 3 short sets (4)`,"SET3-S:4/TB7-F:TB7":`2 short sets (4), MTB7`,"SET3-S:4/TB7-F:TB10":`2 short sets (4), MTB10`,"SET3-S:4/TB5@3":`3 short sets (4), TB5@3`,"SET1-S:8/TB7":`8-game pro-set, TB7`,"SET1-S:8/TB7@7":`8-game pro-set, TB7@7`,"SET1-S:5/TB9@4":`1 set to 5, TB9@4`,"SET1-S:6/TB7":`1 TB set`,"SET1-S:6NOAD":`1 set to 6, NOAD`,"SET1-S:4/TB7":`1 short set (4), TB7`,"SET1-S:4/TB5@3":`1 short set (4), TB5@3`,"SET1-S:4NOAD":`1 short set (4), NOAD`,"SET3-S:TB10":`Best of 3 TB10 games`,"SET1-S:T20":`Timed 20 min`,"SET1-S:TB10":`1 TB10 game`,"SET5-S:6/TB7":`Best of 5 TB sets`,"SET5-S:6/TB7-F:TB10":`5 sets, MTB10`,"SET1-S:6/TB10":`1 set, TB10`,"SET1-S:8":`Pro-set to 8`,"SET1-S:10":`Pro-set to 10`,"SET1-S:T7":`TB7 only`,"SET1-S:T21":`TB21 only`};function t5(){return{allowModificationWhenMatchUpsScheduled:{courts:!1,venues:!1},defaultTimes:{averageTimes:[{categoryNames:[],minutes:{default:90}}],recoveryTimes:[{minutes:{default:60}}]},defaultDailyLimits:{SINGLES:2,DOUBLES:2,total:3},matchUpAverageTimes:[],matchUpRecoveryTimes:[],matchUpDailyLimits:[]}}function n5(e){return structuredClone(e)}var r5=class{constructor(e){this.listeners=new Set,this.config=e,this.state={draft:n5(e.initialPolicy??t5()),expandedSections:new Set([`modificationFlags`,`dailyLimits`,`defaultTimes`,`averageTimes`,`recoveryTimes`]),dirty:!1}}getState(){return this.state}getData(){return n5(this.state.draft)}setData(e){this.state={...this.state,draft:n5(e),dirty:!1},this.emit()}toggleSection(e){let t=new Set(this.state.expandedSections);t.has(e)?t.delete(e):t.add(e),this.state={...this.state,expandedSections:t},this.emit()}setModificationFlag(e,t){let n=n5(this.state.draft);n.allowModificationWhenMatchUpsScheduled||={courts:!1,venues:!1},n.allowModificationWhenMatchUpsScheduled[e]=t,this.commitDraft(n)}setDailyLimit(e,t){let n=n5(this.state.draft);n.defaultDailyLimits||={},n.defaultDailyLimits[e]=t,this.commitDraft(n)}setDefaultAverageTime(e,t,n){let r=n5(this.state.draft);r.defaultTimes||={},r.defaultTimes.averageTimes||(r.defaultTimes.averageTimes=[{categoryNames:[],minutes:{default:90}}]);let i=r.defaultTimes.averageTimes[e];i&&(t===`DOUBLES`?n===void 0?delete i.minutes.DOUBLES:i.minutes.DOUBLES=n:i.minutes.default=n??0,this.commitDraft(r))}setDefaultRecoveryTime(e,t,n){let r=n5(this.state.draft);r.defaultTimes||={},r.defaultTimes.recoveryTimes||(r.defaultTimes.recoveryTimes=[{minutes:{default:60}}]);let i=r.defaultTimes.recoveryTimes[e];i&&(t===`DOUBLES`?n===void 0?delete i.minutes.DOUBLES:i.minutes.DOUBLES=n:i.minutes.default=n??0,this.commitDraft(r))}addAverageFormatGroup(){let e=n5(this.state.draft);e.matchUpAverageTimes||=[],e.matchUpAverageTimes.push({matchUpFormatCodes:[],averageTimes:[{categoryNames:[],minutes:{default:60}}]}),this.commitDraft(e)}removeAverageFormatGroup(e){let t=n5(this.state.draft);t.matchUpAverageTimes&&(t.matchUpAverageTimes.splice(e,1),this.commitDraft(t))}setAverageFormatCodes(e,t){let n=n5(this.state.draft),r=n.matchUpAverageTimes?.[e];r&&(r.matchUpFormatCodes=t,this.commitDraft(n))}setAverageTime(e,t,n,r){let i=n5(this.state.draft),a=i.matchUpAverageTimes?.[e]?.averageTimes?.[t];a&&(n===`DOUBLES`?r===void 0?delete a.minutes.DOUBLES:a.minutes.DOUBLES=r:a.minutes.default=r??0,this.commitDraft(i))}addAverageCategoryOverride(e){let t=n5(this.state.draft),n=t.matchUpAverageTimes?.[e];n&&(n.averageTimes.push({categoryTypes:[],minutes:{default:60}}),this.commitDraft(t))}removeAverageCategoryOverride(e,t){let n=n5(this.state.draft),r=n.matchUpAverageTimes?.[e];r&&(r.averageTimes.splice(t,1),this.commitDraft(n))}setAverageOverrideCategories(e,t,n,r){let i=n5(this.state.draft),a=i.matchUpAverageTimes?.[e]?.averageTimes?.[t];a&&(n===`categoryNames`?(delete a.categoryTypes,a.categoryNames=r):(delete a.categoryNames,a.categoryTypes=r),this.commitDraft(i))}addRecoveryFormatGroup(){let e=n5(this.state.draft);e.matchUpRecoveryTimes||=[],e.matchUpRecoveryTimes.push({matchUpFormatCodes:[],recoveryTimes:[{categoryNames:[],minutes:{default:30}}]}),this.commitDraft(e)}removeRecoveryFormatGroup(e){let t=n5(this.state.draft);t.matchUpRecoveryTimes&&(t.matchUpRecoveryTimes.splice(e,1),this.commitDraft(t))}setRecoveryFormatCodes(e,t){let n=n5(this.state.draft),r=n.matchUpRecoveryTimes?.[e];r&&(r.matchUpFormatCodes=t,this.commitDraft(n))}setRecoveryTime(e,t,n,r){let i=n5(this.state.draft),a=i.matchUpRecoveryTimes?.[e]?.recoveryTimes?.[t];a&&(n===`DOUBLES`?r===void 0?delete a.minutes.DOUBLES:a.minutes.DOUBLES=r:a.minutes.default=r??0,this.commitDraft(i))}addRecoveryCategoryOverride(e){let t=n5(this.state.draft),n=t.matchUpRecoveryTimes?.[e];n&&(n.recoveryTimes.push({categoryTypes:[],minutes:{default:30}}),this.commitDraft(t))}removeRecoveryCategoryOverride(e,t){let n=n5(this.state.draft),r=n.matchUpRecoveryTimes?.[e];r&&(r.recoveryTimes.splice(t,1),this.commitDraft(n))}setRecoveryOverrideCategories(e,t,n,r){let i=n5(this.state.draft),a=i.matchUpRecoveryTimes?.[e]?.recoveryTimes?.[t];a&&(n===`categoryNames`?(delete a.categoryTypes,a.categoryNames=r):(delete a.categoryNames,a.categoryTypes=r),this.commitDraft(i))}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}commitDraft(e){this.state={...this.state,draft:e,dirty:!0},this.emit(),this.config.onChange?.(n5(e))}emit(){for(let e of this.listeners)e(this.state)}},i5=()=>`se-section`,a5=()=>`se-section-header`,o5=()=>`se-section-chevron`,s5=()=>`se-section-body`,c5=()=>`se-field-row`,l5=()=>`se-field-label`,u5=()=>`se-field-input`,d5=()=>`se-field-unit`,f5=()=>`se-checkbox-row`,p5=()=>`se-format-group`,m5=()=>`se-format-group-header`,h5=()=>`se-format-group-label`,g5=()=>`se-tag-picker`,_5=()=>`sp-chip`,v5=()=>`sp-chip__remove`,y5=()=>`se-tag-add-wrap`,b5=()=>`sp-btn-icon`,x5=()=>`se-override-row`,S5=()=>`se-override-categories`,C5=()=>`se-override-remove`,w5=()=>`sp-btn sp-btn--sm sp-btn--outline se-add-btn`,T5=()=>`sp-btn-icon sp-btn-icon--danger`,E5=()=>`se-editor`;function D5(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=f5();let r=document.createElement(`input`);r.type=`checkbox`,r.id=`se-mod-courts`;let i=document.createElement(`label`);i.htmlFor=`se-mod-courts`,i.textContent=`Allow court modifications when matchUps scheduled`,r.addEventListener(`change`,()=>{e.setModificationFlag(`courts`,r.checked)}),n.appendChild(r),n.appendChild(i);let a=document.createElement(`div`);a.className=f5();let o=document.createElement(`input`);o.type=`checkbox`,o.id=`se-mod-venues`;let s=document.createElement(`label`);s.htmlFor=`se-mod-venues`,s.textContent=`Allow venue modifications when matchUps scheduled`,o.addEventListener(`change`,()=>{e.setModificationFlag(`venues`,o.checked)}),a.appendChild(o),a.appendChild(s),t.appendChild(n),t.appendChild(a);function c(e){let t=e.draft.allowModificationWhenMatchUpsScheduled;r.checked=t?.courts??!1,o.checked=t?.venues??!1}return{element:t,update:c}}var O5=`is-success`,k5=`is-danger`;function A5(e){if(e===``)return!0;let t=parseInt(e,10);return!isNaN(t)&&t>=0&&String(t)===e.trim()}function j5(e,t){if(t===``){e.classList.remove(O5,k5);return}A5(t)?(e.classList.remove(k5),e.classList.add(O5)):(e.classList.remove(O5),e.classList.add(k5))}function M5(e){let t=document.createElement(`div`),n=[];for(let[r,i]of[[`SINGLES`,`Singles limit`],[`DOUBLES`,`Doubles limit`],[`total`,`Total limit`]]){let a=document.createElement(`div`);a.className=c5();let o=document.createElement(`div`);o.className=l5(),o.textContent=i;let s=document.createElement(`input`);s.type=`text`,s.className=u5(),s.placeholder=`0`,s.addEventListener(`input`,()=>{j5(s,s.value)}),s.addEventListener(`change`,()=>{let t=parseInt(s.value,10);!isNaN(t)&&t>=0&&e.setDailyLimit(r,t)}),a.appendChild(o),a.appendChild(s),t.appendChild(a),n.push({key:r,label:i,input:s})}function r(e){let t=e.draft.defaultDailyLimits;for(let e of n){let n=t?.[e.key];document.activeElement!==e.input&&(e.input.value=n===void 0?``:String(n))}}return{element:t,update:r}}var N5=`is-success`,P5=`is-danger`;function F5(e){if(e===``)return!0;let t=parseInt(e,10);return!isNaN(t)&&t>=0&&String(t)===e.trim()}function I5(e,t,n){if(t===``&&n){e.classList.remove(N5,P5);return}F5(t)&&(t!==``||n)?(e.classList.remove(P5),e.classList.add(N5)):(e.classList.remove(N5),e.classList.add(P5))}function L5(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.style.cssText=`font-size:11px;font-weight:700;color:var(--sp-muted);margin-bottom:6px;`,n.textContent=`Default Average Times`,t.appendChild(n);let r=R5(`Default`,`min`,!1),i=R5(`Doubles override`,`min`,!0);t.appendChild(r.row),t.appendChild(i.row),r.input.addEventListener(`input`,()=>{I5(r.input,r.input.value,!1)}),r.input.addEventListener(`change`,()=>{let t=parseInt(r.input.value,10);!isNaN(t)&&t>=0&&e.setDefaultAverageTime(0,`default`,t)}),i.input.addEventListener(`input`,()=>{I5(i.input,i.input.value,!0)}),i.input.addEventListener(`change`,()=>{let t=i.input.value.trim();if(t===``||t===`-`)e.setDefaultAverageTime(0,`DOUBLES`,void 0);else{let n=parseInt(t,10);!isNaN(n)&&n>=0&&e.setDefaultAverageTime(0,`DOUBLES`,n)}});let a=document.createElement(`div`);a.style.height=`12px`,t.appendChild(a);let o=document.createElement(`div`);o.style.cssText=`font-size:11px;font-weight:700;color:var(--sp-muted);margin-bottom:6px;`,o.textContent=`Default Recovery Times`,t.appendChild(o);let s=R5(`Default`,`min`,!1),c=R5(`Doubles override`,`min`,!0);t.appendChild(s.row),t.appendChild(c.row),s.input.addEventListener(`input`,()=>{I5(s.input,s.input.value,!1)}),s.input.addEventListener(`change`,()=>{let t=parseInt(s.input.value,10);!isNaN(t)&&t>=0&&e.setDefaultRecoveryTime(0,`default`,t)}),c.input.addEventListener(`input`,()=>{I5(c.input,c.input.value,!0)}),c.input.addEventListener(`change`,()=>{let t=c.input.value.trim();if(t===``||t===`-`)e.setDefaultRecoveryTime(0,`DOUBLES`,void 0);else{let n=parseInt(t,10);!isNaN(n)&&n>=0&&e.setDefaultRecoveryTime(0,`DOUBLES`,n)}});function l(e){let t=e.draft.defaultTimes?.averageTimes?.[0];document.activeElement!==r.input&&(r.input.value=t?String(t.minutes.default):``),document.activeElement!==i.input&&(i.input.value=t?.minutes.DOUBLES===void 0?``:String(t.minutes.DOUBLES)),i.input.placeholder=`—`;let n=e.draft.defaultTimes?.recoveryTimes?.[0];document.activeElement!==s.input&&(s.input.value=n?String(n.minutes.default):``),document.activeElement!==c.input&&(c.input.value=n?.minutes.DOUBLES===void 0?``:String(n.minutes.DOUBLES)),c.input.placeholder=`—`}return{element:t,update:l}}function R5(e,t,n){let r=document.createElement(`div`);r.className=c5();let i=document.createElement(`div`);i.className=l5(),i.textContent=e;let a=document.createElement(`input`);a.type=`text`,a.className=u5(),a.placeholder=n?`—`:`0`;let o=document.createElement(`div`);return o.className=d5(),o.textContent=t,r.appendChild(i),r.appendChild(a),r.appendChild(o),{row:r,input:a}}var z5=`is-success`,B5=`is-danger`;function V5(e){if(e===``)return!0;let t=parseInt(e,10);return!isNaN(t)&&t>=0&&String(t)===e.trim()}function H5(e,t,n){if(t===``&&n){e.classList.remove(z5,B5);return}V5(t)&&(t!==``||n)?(e.classList.remove(B5),e.classList.add(z5)):(e.classList.remove(z5),e.classList.add(B5))}function U5(e){let t=document.createElement(`div`);t.className=p5();let n=document.createElement(`div`);n.className=m5();let r=document.createElement(`div`);r.style.flex=`1`;let i=document.createElement(`div`);i.className=h5(),i.textContent=`Formats`,r.appendChild(i);let a=document.createElement(`div`);a.className=g5();for(let t of e.formatCodes){let n=document.createElement(`span`);n.className=_5(),n.title=`${t} — click to edit`;let r=document.createElement(`span`);r.textContent=$8(t),n.addEventListener(`click`,()=>{Ko({existingMatchUpFormat:t,callback:n=>{if(!n||n===t)return;let r=e.formatCodes.map(e=>e===t?n:e);e.onFormatCodesChange(r)}})});let i=document.createElement(`span`);i.className=v5(),i.textContent=`×`,i.addEventListener(`click`,n=>{n.stopPropagation(),e.onFormatCodesChange(e.formatCodes.filter(e=>e!==t))}),n.appendChild(r),n.appendChild(i),a.appendChild(n)}let o=document.createElement(`div`);o.className=y5();let s=document.createElement(`button`);s.className=b5(),s.textContent=`+`,s.type=`button`,s.title=`Add format code`,s.addEventListener(`click`,t=>{t.stopPropagation(),Ko({existingMatchUpFormat:`SET3-S:6/TB7`,callback:t=>{t&&!e.formatCodes.includes(t)&&e.onFormatCodesChange([...e.formatCodes,t])}})}),o.appendChild(s),a.appendChild(o),r.appendChild(a);let c=document.createElement(`button`);c.className=T5(),c.textContent=`×`,c.type=`button`,c.title=`Remove format group`,c.addEventListener(`click`,()=>e.onRemoveGroup()),n.appendChild(r),n.appendChild(c),t.appendChild(n);for(let n=0;n<e.overrides.length;n++){let r=e.overrides[n],i=document.createElement(`div`);i.className=x5();let a=document.createElement(`div`);a.className=`${S5()}${r.isDefault?` all`:``}`,a.textContent=r.categoryLabel;let o=document.createElement(`input`);o.type=`text`,o.className=u5(),o.value=String(r.defaultMinutes),o.placeholder=`0`;let s=n;o.addEventListener(`input`,()=>{H5(o,o.value,!1)}),o.addEventListener(`change`,()=>{let t=parseInt(o.value,10);!isNaN(t)&&t>=0&&e.onTimeChange(s,`default`,t)});let c=document.createElement(`span`);c.className=d5(),c.textContent=`min`;let l=document.createElement(`span`);l.style.cssText=`font-size:11px;color:var(--sp-muted);margin-left:8px;`,l.textContent=`Doubles:`;let u=document.createElement(`input`);if(u.type=`text`,u.className=u5(),u.value=r.doublesMinutes===void 0?``:String(r.doublesMinutes),u.placeholder=`—`,u.addEventListener(`input`,()=>{H5(u,u.value,!0)}),u.addEventListener(`change`,()=>{let t=u.value.trim();if(t===``||t===`-`)e.onTimeChange(s,`DOUBLES`,void 0);else{let n=parseInt(t,10);!isNaN(n)&&n>=0&&e.onTimeChange(s,`DOUBLES`,n)}}),i.appendChild(a),i.appendChild(o),i.appendChild(c),i.appendChild(l),i.appendChild(u),!r.isDefault){let t=document.createElement(`span`);t.className=C5(),t.textContent=`×`,t.addEventListener(`click`,()=>e.onRemoveOverride(s)),i.appendChild(t)}t.appendChild(i)}let l=document.createElement(`button`);return l.className=w5(),l.textContent=`+ Add Override`,l.type=`button`,l.addEventListener(`click`,()=>e.onAddOverride()),t.appendChild(l),t}function W5(e,t){let n=document.createElement(`div`),r=document.createElement(`div`);n.appendChild(r);let i=document.createElement(`button`);i.className=w5(),i.textContent=`+ Add Format Group`,i.type=`button`,i.addEventListener(`click`,()=>e.addAverageFormatGroup()),n.appendChild(i);function a(n){r.innerHTML=``;let i=n.draft.matchUpAverageTimes??[];for(let n=0;n<i.length;n++){let a=i[n],o=a.averageTimes.map((e,t)=>{let n=e.categoryTypes??e.categoryNames??[];return{categoryLabel:n.length===0&&t===0?`All categories`:n.join(`, `)||`All categories`,isDefault:n.length===0&&t===0,defaultMinutes:e.minutes.default,doublesMinutes:e.minutes.DOUBLES}}),s=n,c=U5({formatCodes:a.matchUpFormatCodes,overrides:o,availableFormats:t.matchUpFormatCodes??G5(),onFormatCodesChange:t=>e.setAverageFormatCodes(s,t),onTimeChange:(t,n,r)=>e.setAverageTime(s,t,n,r),onAddOverride:()=>e.addAverageCategoryOverride(s),onRemoveOverride:t=>e.removeAverageCategoryOverride(s,t),onRemoveGroup:()=>e.removeAverageFormatGroup(s)});r.appendChild(c)}if(i.length===0){let e=document.createElement(`div`);e.style.cssText=`font-size:12px;color:var(--sp-muted);padding:8px 0;`,e.textContent=`No format-specific average times configured. Add a format group to set per-format times.`,r.appendChild(e)}}return{element:n,update:a}}function G5(){return[`SET3-S:6/TB7`,`SET3-S:6/TB7-F:TB10`,`SET3-S:6/TB7-F:TB7`,`SET3-S:4NOAD-F:TB7`,`SET3-S:4/TB7`,`SET3-S:4/TB7-F:TB7`,`SET3-S:4/TB7-F:TB10`,`SET3-S:4/TB5@3`,`SET1-S:8/TB7`,`SET1-S:8/TB7@7`,`SET1-S:5/TB9@4`,`SET1-S:6/TB7`,`SET1-S:6NOAD`,`SET1-S:4/TB7`,`SET1-S:4/TB5@3`,`SET1-S:4NOAD`,`SET3-S:TB10`,`SET1-S:T20`,`SET1-S:TB10`]}function K5(e,t){let n=document.createElement(`div`),r=document.createElement(`div`);n.appendChild(r);let i=document.createElement(`button`);i.className=w5(),i.textContent=`+ Add Format Group`,i.type=`button`,i.addEventListener(`click`,()=>e.addRecoveryFormatGroup()),n.appendChild(i);function a(n){r.innerHTML=``;let i=n.draft.matchUpRecoveryTimes??[];for(let n=0;n<i.length;n++){let a=i[n],o=a.recoveryTimes.map((e,t)=>{let n=e.categoryTypes??e.categoryNames??[];return{categoryLabel:n.length===0&&t===0?`All categories`:n.join(`, `)||`All categories`,isDefault:n.length===0&&t===0,defaultMinutes:e.minutes.default,doublesMinutes:e.minutes.DOUBLES}}),s=n,c=U5({formatCodes:a.matchUpFormatCodes,overrides:o,availableFormats:t.matchUpFormatCodes??q5(),onFormatCodesChange:t=>e.setRecoveryFormatCodes(s,t),onTimeChange:(t,n,r)=>e.setRecoveryTime(s,t,n,r),onAddOverride:()=>e.addRecoveryCategoryOverride(s),onRemoveOverride:t=>e.removeRecoveryCategoryOverride(s,t),onRemoveGroup:()=>e.removeRecoveryFormatGroup(s)});r.appendChild(c)}if(i.length===0){let e=document.createElement(`div`);e.style.cssText=`font-size:12px;color:var(--sp-muted);padding:8px 0;`,e.textContent=`No format-specific recovery times configured. Add a format group to set per-format recovery.`,r.appendChild(e)}}return{element:n,update:a}}function q5(){return[`SET3-S:6/TB7`,`SET3-S:6/TB7-F:TB10`,`SET3-S:6/TB7-F:TB7`,`SET3-S:4NOAD-F:TB7`,`SET3-S:4/TB7`,`SET3-S:4/TB7-F:TB7`,`SET3-S:4/TB7-F:TB10`,`SET3-S:4/TB5@3`,`SET1-S:8/TB7`,`SET1-S:8/TB7@7`,`SET1-S:5/TB9@4`,`SET1-S:6/TB7`,`SET1-S:6NOAD`,`SET1-S:4/TB7`,`SET1-S:4/TB5@3`,`SET1-S:4NOAD`,`SET3-S:TB10`,`SET1-S:T20`,`SET1-S:TB10`]}function J5(e,t){let n=document.createElement(`div`);n.className=E5();let r=[{id:`modificationFlags`,label:`Modification Flags`,factory:()=>D5(e)},{id:`dailyLimits`,label:`Daily Limits`,factory:()=>M5(e)},{id:`defaultTimes`,label:`Default Times`,factory:()=>L5(e)},{id:`averageTimes`,label:`Match Average Times`,factory:()=>W5(e,t)},{id:`recoveryTimes`,label:`Match Recovery Times`,factory:()=>K5(e,t)}],i=[];for(let t of r){let r=document.createElement(`div`);r.className=i5();let a=document.createElement(`div`);a.className=a5();let o=document.createElement(`span`);o.className=o5();let s=document.createElement(`span`);s.textContent=t.label,a.appendChild(o),a.appendChild(s),a.addEventListener(`click`,()=>e.toggleSection(t.id));let c=document.createElement(`div`);c.className=s5();let l=t.factory();c.appendChild(l.element),r.appendChild(a),r.appendChild(c),n.appendChild(r),i.push({id:t.id,chevron:o,bodyEl:c,inner:l})}function a(e){for(let t of i){let n=e.expandedSections.has(t.id);t.chevron.textContent=n?`▼`:`▶`,t.bodyEl.style.display=n?`block`:`none`,n&&t.inner.update(e)}}return{element:n,update:a}}var Y5=class e{constructor(e){this.container=null,this.store=new r5(e),this.panel=J5(this.store,e),this.unsubscribe=this.store.subscribe(e=>{this.panel.update(e)}),this.panel.update(this.store.getState())}render(e){this.container=e,e.appendChild(this.panel.element)}destroy(){this.unsubscribe(),this.container&&this.panel.element.parentNode===this.container&&this.container.removeChild(this.panel.element),this.container=null}getData(){return this.store.getData()}setData(e){this.store.setData(e)}getStore(){return this.store}static createEditorInstance(t){let n={initialPolicy:t.initialData,onChange:e=>t.onChange(e)},r=new e(n);return{element:r.panel.element,setData(e){r.setData(e)},getData(){return r.getData()},destroy(){r.destroy()}}}};function X5(e,t){let n=new Y5(e);return n.render(t),n}var Z5=Mo,Q5=(()=>{let e=new Map;for(let t of Z5)t.format&&e.set(t.format,t);return e})();function $5(e){if(e)return Q5.get(e)}var e7=Z5.filter(e=>e.format&&e.name).sort((e,t)=>(e.name??``).localeCompare(t.name??``));function t7(e){return typeof e==`string`?e:e.matchUpFormat}function n7(e){return(typeof e==`string`?``:e.name??``)||($5(t7(e))?.name??``)}function r7(e){return(typeof e==`string`?``:e.description??``)||($5(t7(e))?.desc??``)}function i7(e){return typeof e==`string`?{matchUpFormat:e}:{...e}}var a7=`SET3-S:6/TB7`;function o7(){return{defaultMatchUpFormat:a7,matchUpFormats:[],requireParticipantsForScoring:!1,allowChangePropagation:!1,allowDeletionWithScoresPresent:{drawDefinitions:!1,structures:!1},matchUpStatusCodes:{ABANDONED:[],CANCELLED:[],DEFAULTED:[],INCOMPLETE:[],RETIRED:[],WALKOVER:[]}}}function s7(e){return structuredClone(e)}var c7=class{constructor(e){this.listeners=new Set,this.config=e,this.state={draft:s7(e.initialPolicy??o7()),expandedSections:new Set([`defaults`,`allowedFormats`]),expandedStatuses:new Set,advancedOpen:!1,dirty:!1}}isReadonly(){return this.config.readonly===!0}getState(){return this.state}getData(){return s7(this.state.draft)}setData(e){this.state={...this.state,draft:s7(e),dirty:!1},this.emit()}toggleSection(e){let t=new Set(this.state.expandedSections);t.has(e)?t.delete(e):t.add(e),this.state={...this.state,expandedSections:t},this.emit()}toggleStatus(e){let t=new Set(this.state.expandedStatuses);t.has(e)?t.delete(e):t.add(e),this.state={...this.state,expandedStatuses:t},this.emit()}setAdvancedOpen(e){this.state.advancedOpen!==e&&(this.state={...this.state,advancedOpen:e},this.emit())}setDefaultMatchUpFormat(e){if(this.isReadonly())return;let t=s7(this.state.draft);t.defaultMatchUpFormat=e,this.commitDraft(t)}setRequireParticipants(e){if(this.isReadonly())return;let t=s7(this.state.draft);t.requireParticipantsForScoring=e,this.commitDraft(t)}setRequireAllPositions(e){if(this.isReadonly())return;let t=s7(this.state.draft);e==="default"?delete t.requireAllPositionsAssigned:t.requireAllPositionsAssigned=e===`true`,this.commitDraft(t)}setAllowChangePropagation(e){if(this.isReadonly())return;let t=s7(this.state.draft);t.allowChangePropagation=e,this.commitDraft(t)}setAllowDeletionDraws(e){if(this.isReadonly())return;let t=s7(this.state.draft);t.allowDeletionWithScoresPresent??={},t.allowDeletionWithScoresPresent.drawDefinitions=e,this.commitDraft(t)}setAllowDeletionStructures(e){if(this.isReadonly())return;let t=s7(this.state.draft);t.allowDeletionWithScoresPresent??={},t.allowDeletionWithScoresPresent.structures=e,this.commitDraft(t)}addAllowedFormat(e){if(this.isReadonly())return;let t=s7(this.state.draft);t.matchUpFormats??=[];let n={matchUpFormat:``,...e};t.matchUpFormats.push(n),this.commitDraft(t)}removeAllowedFormat(e){if(this.isReadonly())return;let t=s7(this.state.draft);t.matchUpFormats&&(t.matchUpFormats.splice(e,1),this.commitDraft(t))}setAllowedFormatField(e,t,n){if(this.isReadonly())return;let r=s7(this.state.draft);if(!r.matchUpFormats?.[e])return;let i=i7(r.matchUpFormats[e]);t===`name`?i.name=n:t===`description`?i.description=n:i.matchUpFormat=n,i.name===``&&delete i.name,i.description===``&&delete i.description,r.matchUpFormats[e]=i,this.commitDraft(r)}isAllowedFormatDuplicate(e,t){let n=e.trim();return n?(this.state.draft.matchUpFormats??[]).some((e,r)=>r!==t&&t7(e)===n):!1}addAllowedFormatCategory(e,t,n){if(this.isReadonly())return;let r=n.trim();if(!r)return;let i=s7(this.state.draft);if(!i.matchUpFormats?.[e])return;let a=i7(i.matchUpFormats[e]);a[t]??=[],!a[t].includes(r)&&(a[t].push(r),i.matchUpFormats[e]=a,this.commitDraft(i))}removeAllowedFormatCategory(e,t,n){if(this.isReadonly())return;let r=s7(this.state.draft),i=r.matchUpFormats?.[e];if(!i)return;let a=i7(i),o=a[t];o&&(o.splice(n,1),o.length===0&&delete a[t],r.matchUpFormats[e]=a,this.commitDraft(r))}addStatusCode(e,t){if(this.isReadonly())return;let n=t.trim();if(!n)return;let r=s7(this.state.draft);r.matchUpStatusCodes??={},r.matchUpStatusCodes[e]??=[],!r.matchUpStatusCodes[e].some(e=>ff(e)===n)&&(r.matchUpStatusCodes[e].push({matchUpStatusCode:n}),this.commitDraft(r))}removeStatusCode(e,t){if(this.isReadonly())return;let n=s7(this.state.draft),r=n.matchUpStatusCodes?.[e];r&&(r.splice(t,1),this.commitDraft(n))}addProcessCode(e){if(this.isReadonly())return;let t=e.trim();if(!t)return;let n=s7(this.state.draft);n.processCodes??={},n.processCodes.incompleteAssignmentsOnDefault??=[],!n.processCodes.incompleteAssignmentsOnDefault.includes(t)&&(n.processCodes.incompleteAssignmentsOnDefault.push(t),this.commitDraft(n))}removeProcessCode(e){if(this.isReadonly())return;let t=s7(this.state.draft),n=t.processCodes?.incompleteAssignmentsOnDefault;n&&(n.splice(e,1),this.commitDraft(t))}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}commitDraft(e){this.state={...this.state,draft:e,dirty:!0},this.emit(),this.config.onChange?.(s7(e))}emit(){for(let e of this.listeners)e(this.state)}},l7=`__custom__`,u7=`standard`,d7=`tiebreak`,f7=`timed`,p7=`sc-format-row`,m7=`sc-format-label`,h7=`sc-format-select`;function g7(){return{bestOf:3,setType:u7,setTo:6,hasTiebreak:!0,tiebreakTo:7,tiebreakAt:`same`,noAd:!1,tbOnlyTo:11,tbOnlyModifier:``,tbOnlyNoAd:!1,minutes:20,timedBasis:`G`,differentFinal:!1,finalKind:`matchTiebreak`,finalSetTo:6,finalTbTo:7,finalMatchTbTo:10}}function _7(e){let n=g7(),r=t.matchUpFormatCode.parse?.(e);return r?(typeof r.bestOf==`number`&&(n.bestOf=r.bestOf),r.setFormat&&v7(n,r.setFormat),r.finalSetFormat&&y7(n,r.finalSetFormat),n):n}function v7(e,t){if(t.timed){e.setType=f7,typeof t.minutes==`number`&&(e.minutes=t.minutes),e.timedBasis=t.based===`P`?`P`:`G`;return}if(t.tiebreakSet){e.setType=d7,typeof t.tiebreakSet.tiebreakTo==`number`&&(e.tbOnlyTo=t.tiebreakSet.tiebreakTo),e.tbOnlyModifier=t.tiebreakSet.modifier===`RALLY`?`RALLY`:``,e.tbOnlyNoAd=!!t.tiebreakSet.NoAD;return}e.setType=u7,typeof t.setTo==`number`&&(e.setTo=t.setTo),e.noAd=!!t.NoAD,e.hasTiebreak=!t.noTiebreak&&!!t.tiebreakFormat,t.tiebreakFormat?.tiebreakTo&&(e.tiebreakTo=t.tiebreakFormat.tiebreakTo),typeof t.tiebreakAt==`number`&&t.tiebreakAt!==t.setTo&&(e.tiebreakAt=t.tiebreakAt)}function y7(e,t){if(e.differentFinal=!0,t.tiebreakSet){e.finalKind=`matchTiebreak`,typeof t.tiebreakSet.tiebreakTo==`number`&&(e.finalMatchTbTo=t.tiebreakSet.tiebreakTo);return}e.finalKind=`standard`,typeof t.setTo==`number`&&(e.finalSetTo=t.setTo),t.tiebreakFormat?.tiebreakTo&&(e.finalTbTo=t.tiebreakFormat.tiebreakTo)}function b7(e){let t={bestOf:e.bestOf};if(e.setType===f7)t.setFormat={timed:!0,minutes:e.minutes},e.timedBasis===`P`&&(t.setFormat.based=`P`);else if(e.setType===d7)t.setFormat={tiebreakSet:{tiebreakTo:e.tbOnlyTo,...e.tbOnlyModifier?{modifier:e.tbOnlyModifier}:{},...e.tbOnlyNoAd?{NoAD:!0}:{}}};else{let n={setTo:e.setTo};e.noAd&&(n.NoAD=!0),e.hasTiebreak?(n.tiebreakFormat={tiebreakTo:e.tiebreakTo},n.tiebreakAt=e.tiebreakAt===`same`?e.setTo:e.tiebreakAt):n.noTiebreak=!0,t.setFormat=n}return e.differentFinal&&(t.finalSetFormat=e.finalKind===`matchTiebreak`?{tiebreakSet:{tiebreakTo:e.finalMatchTbTo}}:{setTo:e.finalSetTo,tiebreakAt:e.finalSetTo,tiebreakFormat:{tiebreakTo:e.finalTbTo}}),t}function x7(e){try{return t.matchUpFormatCode.stringify?.(e)}catch{return}}function S7(e){return e?!!t.matchUpFormatCode.parse?.(e):!1}function C7(e){let t=e.initialValue||`SET3-S:6/TB7`,n=_7(t),r=document.createElement(`div`);r.className=`sc-format-picker`;let i=document.createElement(`div`);i.className=p7;let a=document.createElement(`label`);a.textContent=`Preset`,a.className=m7;let o=document.createElement(`select`);o.className=h7;for(let e of e7){let t=document.createElement(`option`);t.value=e.format??``,t.textContent=e.desc?`${e.name} — ${e.desc}`:e.name??``,o.appendChild(t)}let s=document.createElement(`option`);s.value=l7,s.textContent=`Custom…`,o.appendChild(s),i.appendChild(a),i.appendChild(o),r.appendChild(i);let c=document.createElement(`div`);c.className=`sc-format-row sc-format-custom-row`,c.style.display=`none`;let l=document.createElement(`label`);l.textContent=`Format string`,l.className=m7;let u=document.createElement(`input`);u.type=`text`,u.className=`sc-format-input`,u.placeholder=`e.g. SET3-S:6/TB7-F:TB10`,c.appendChild(l),c.appendChild(u),r.appendChild(c);let d=document.createElement(`button`);d.type=`button`,d.className=`sc-format-builder-toggle`,d.textContent=`▸ Build a custom format`,r.appendChild(d);let f=document.createElement(`div`);f.className=`sc-format-builder-body`,f.style.display=`none`,r.appendChild(f);let p=!1;d.addEventListener(`click`,()=>{p=!p,f.style.display=p?`block`:`none`,d.textContent=p?`▾ Build a custom format`:`▸ Build a custom format`,p&&y()});let m=document.createElement(`div`);m.className=`sc-format-result`;let h=document.createElement(`code`);h.className=`sc-format-chip`;let g=document.createElement(`span`);g.className=`sc-format-validity`,m.appendChild(document.createTextNode(`Result:`)),m.appendChild(h),m.appendChild(g),r.appendChild(m);function _(r,i={}){t=r,i.skipBuilderResync||(n=_7(r)),v(),p&&y(),e.onChange(r)}function v(){let e=$5(t);e?.format?(o.value=e.format,c.style.display=`none`):(o.value=l7,c.style.display=``,u.value=t),h.textContent=t;let n=S7(t);g.textContent=n?`✓ valid`:`✗ invalid`,g.dataset.valid=n?`true`:`false`}o.addEventListener(`change`,()=>{let e=o.value;if(e===l7){c.style.display=``,u.value=t,u.focus();return}_(e)}),u.addEventListener(`input`,()=>{_(u.value,{skipBuilderResync:!0})});function y(){f.innerHTML=``,f.appendChild(w7(`Best of`,[1,3,5],n.bestOf,e=>{n.bestOf=e,b()})),f.appendChild(T7(`Set type`,[{value:u7,label:`Standard`},{value:d7,label:`Tiebreak set`},{value:f7,label:`Timed`}],n.setType,e=>{n.setType=e,b()})),n.setType===u7?(f.appendChild(w7(`Games to`,[4,6,8,10],n.setTo,e=>{n.setTo=e,(n.tiebreakAt===`same`||n.tiebreakAt===n.setTo)&&(n.tiebreakAt=`same`),b()})),f.appendChild(E7(`Tiebreak at set end`,n.hasTiebreak,e=>{n.hasTiebreak=e,b()})),n.hasTiebreak&&f.appendChild(w7(`Tiebreak first to`,[5,7,10,12,15,21],n.tiebreakTo,e=>{n.tiebreakTo=e,b()})),f.appendChild(E7(`No-advantage games`,n.noAd,e=>{n.noAd=e,b()}))):n.setType===d7?(f.appendChild(w7(`First to`,[7,10,11,15,21],n.tbOnlyTo,e=>{n.tbOnlyTo=e,b()})),f.appendChild(T7(`Scoring`,[{value:``,label:`Sideout`},{value:`RALLY`,label:`Rally`}],n.tbOnlyModifier,e=>{n.tbOnlyModifier=e,b()})),f.appendChild(E7(`No-advantage`,n.tbOnlyNoAd,e=>{n.tbOnlyNoAd=e,b()}))):(f.appendChild(w7(`Minutes`,[10,15,20,25,30,45],n.minutes,e=>{n.minutes=e,b()})),f.appendChild(T7(`Basis`,[{value:`G`,label:`Games`},{value:`P`,label:`Points`}],n.timedBasis,e=>{n.timedBasis=e,b()}))),f.appendChild(E7(`Different final-set rules`,n.differentFinal,e=>{n.differentFinal=e,b()})),n.differentFinal&&(f.appendChild(T7(`Final set`,[{value:`standard`,label:`Standard set`},{value:`matchTiebreak`,label:`Match tiebreak`}],n.finalKind,e=>{n.finalKind=e,b()})),n.finalKind===`standard`?(f.appendChild(w7(`Final games to`,[4,6,8],n.finalSetTo,e=>{n.finalSetTo=e,b()})),f.appendChild(w7(`Final tiebreak to`,[7,10,12,15],n.finalTbTo,e=>{n.finalTbTo=e,b()}))):f.appendChild(w7(`Match tiebreak to`,[7,10,15,21],n.finalMatchTbTo,e=>{n.finalMatchTbTo=e,b()})))}function b(){let e=x7(b7(n));typeof e==`string`?_(e,{skipBuilderResync:!0}):y()}return e.readonly&&(o.disabled=!0,u.disabled=!0,d.disabled=!0),v(),{element:r,setValue(e){let r=e||`SET3-S:6/TB7`;r!==t&&(t=r,n=_7(r),v(),p&&y())},destroy(){r.remove()}}}function w7(e,t,n,r){let i=document.createElement(`div`);i.className=p7;let a=document.createElement(`label`);a.textContent=e,a.className=m7;let o=document.createElement(`select`);o.className=h7;for(let e of t){let t=document.createElement(`option`);t.value=String(e),t.textContent=String(e),o.appendChild(t)}return o.value=String(n),o.addEventListener(`change`,()=>r(Number(o.value))),i.appendChild(a),i.appendChild(o),i}function T7(e,t,n,r){let i=document.createElement(`div`);i.className=p7;let a=document.createElement(`span`);a.textContent=e,a.className=m7;let o=document.createElement(`div`);o.className=`sc-format-radio-group`;let s=`sc-fmt-radio-${Math.floor(Math.random()*1e9).toString(36)}`;for(let e of t){let t=document.createElement(`label`);t.className=`sc-format-radio-option`;let i=document.createElement(`input`);i.type=`radio`,i.name=s,i.value=e.value,i.checked=e.value===n,i.addEventListener(`change`,()=>{i.checked&&r(i.value)}),t.appendChild(i),t.appendChild(document.createTextNode(e.label)),o.appendChild(t)}return i.appendChild(a),i.appendChild(o),i}function E7(e,t,n){let r=document.createElement(`div`);r.className=`sc-format-row sc-format-checkbox-row`;let i=document.createElement(`label`);i.className=`sc-format-checkbox-label`;let a=document.createElement(`input`);return a.type=`checkbox`,a.checked=t,a.addEventListener(`change`,()=>n(a.checked)),i.appendChild(a),i.appendChild(document.createTextNode(e)),r.appendChild(i),r}function D7(e){let t=document.createElement(`div`);t.className=`sc-section-body-inner`;let n=document.createElement(`div`);n.className=`sc-field-block`;let r=document.createElement(`div`);r.className=`sc-field-block-label`,r.textContent=`Default match-up format`;let i=document.createElement(`div`);i.className=`sc-field-help`,i.textContent=`Used when an event or draw does not specify its own format.`,n.appendChild(r),n.appendChild(i);let a=C7({initialValue:e.getData().defaultMatchUpFormat,readonly:e.isReadonly(),onChange:t=>e.setDefaultMatchUpFormat(t)});n.appendChild(a.element),t.appendChild(n);let o=O7({label:`Require both participants before scoring`,help:`Block score entry until both sides have a participant assigned.`,initial:!!e.getData().requireParticipantsForScoring,readonly:e.isReadonly(),onChange:t=>e.setRequireParticipants(t)});t.appendChild(o.element);let s=document.createElement(`div`);s.className=`sc-field-row`;let c=document.createElement(`label`);c.className=`sc-field-label`,c.textContent=`Require all positions assigned`;let l=document.createElement(`select`);l.className=`sc-field-input`;for(let e of[{value:`default`,label:`Default (required in MAIN stage)`},{value:`true`,label:`Always required`},{value:`false`,label:`Never required`}]){let t=document.createElement(`option`);t.value=e.value,t.textContent=e.label,l.appendChild(t)}l.addEventListener(`change`,()=>{e.setRequireAllPositions(l.value)}),e.isReadonly()&&(l.disabled=!0),s.appendChild(c),s.appendChild(l),t.appendChild(s);let u=O7({label:`Allow change propagation`,help:`Editing a completed matchUp's winningSide updates all downstream matchUps in the structure.`,initial:!!e.getData().allowChangePropagation,readonly:e.isReadonly(),onChange:t=>e.setAllowChangePropagation(t)});t.appendChild(u.element);let d=document.createElement(`div`);d.className=`sc-field-block`;let f=document.createElement(`div`);f.className=`sc-field-block-label`,f.textContent=`Allow deletion with scores present`;let p=document.createElement(`div`);p.className=`sc-field-help`,p.textContent=`When off, the corresponding entity cannot be deleted while it has scored matchUps.`,d.appendChild(f),d.appendChild(p);let m=O7({label:`Draw definitions`,help:``,initial:!!e.getData().allowDeletionWithScoresPresent?.drawDefinitions,readonly:e.isReadonly(),onChange:t=>e.setAllowDeletionDraws(t)}),h=O7({label:`Structures`,help:``,initial:!!e.getData().allowDeletionWithScoresPresent?.structures,readonly:e.isReadonly(),onChange:t=>e.setAllowDeletionStructures(t)});d.appendChild(m.element),d.appendChild(h.element),t.appendChild(d);function g(e){let t=e.draft;a.setValue(t.defaultMatchUpFormat||``),o.setChecked(!!t.requireParticipantsForScoring),t.requireAllPositionsAssigned===void 0?l.value=`default`:l.value=t.requireAllPositionsAssigned?`true`:`false`,u.setChecked(!!t.allowChangePropagation),m.setChecked(!!t.allowDeletionWithScoresPresent?.drawDefinitions),h.setChecked(!!t.allowDeletionWithScoresPresent?.structures)}return{element:t,update:g}}function O7(e){let t=document.createElement(`div`);t.className=`sc-checkbox-row`;let n=document.createElement(`input`);n.type=`checkbox`,n.checked=e.initial,e.readonly&&(n.disabled=!0),n.addEventListener(`change`,()=>e.onChange(n.checked));let r=document.createElement(`div`);r.className=`sc-checkbox-text`;let i=document.createElement(`label`);if(i.textContent=e.label,r.appendChild(i),e.help){let t=document.createElement(`div`);t.className=`sc-checkbox-help`,t.textContent=e.help,r.appendChild(t)}return t.appendChild(n),t.appendChild(r),{element:t,setChecked(e){n.checked=e}}}function k7(e){let t=document.createElement(`div`);t.className=`sc-taglist`;let n=document.createElement(`div`);n.className=`sc-taglist-chips`,t.appendChild(n);let r=document.createElement(`div`);r.className=`sc-taglist-input-row`;let i=document.createElement(`input`);i.type=`text`,i.className=`sc-taglist-input`,e.placeholder&&(i.placeholder=e.placeholder);let a=document.createElement(`button`);a.type=`button`,a.className=`sp-btn sp-btn--sm sp-btn--outline`,a.textContent=`Add`;let o=document.createElement(`div`);o.className=`sc-taglist-error`,o.style.display=`none`,r.appendChild(i),r.appendChild(a),t.appendChild(r),t.appendChild(o);let s=[...e.values];function c(){if(n.innerHTML=``,s.length===0){let e=document.createElement(`span`);e.className=`sc-taglist-empty`,e.textContent=`none`,n.appendChild(e);return}s.forEach((t,r)=>{let i=document.createElement(`span`);i.className=`sc-taglist-chip`;let a=document.createElement(`code`);if(a.textContent=t,i.appendChild(a),!e.readonly){let n=document.createElement(`button`);n.type=`button`,n.className=`sc-taglist-chip-remove`,n.setAttribute(`aria-label`,`Remove ${t}`),n.textContent=`×`,n.addEventListener(`click`,()=>e.onRemove(r)),i.appendChild(n)}n.appendChild(i)})}function l(){let t=i.value.trim();if(t){if(e.validate&&!e.validate(t)){o.textContent=e.invalidMessage??`Invalid value`,o.style.display=``;return}o.style.display=`none`,i.value=``,e.onAdd(t)}}return a.addEventListener(`click`,l),i.addEventListener(`keydown`,e=>{e.key===`Enter`&&(e.preventDefault(),l())}),e.readonly&&(i.disabled=!0,a.disabled=!0,r.style.display=`none`),c(),{element:t,setValues(e){s=[...e],c()},destroy(){t.remove()}}}function A7(e){let t=document.createElement(`div`);t.className=`sc-section-body-inner`;let n=document.createElement(`div`);n.className=`sc-field-help`,n.textContent=`Restrict which formats events under this policy can use. Each entry surfaces in the MatchUp Format Dialog using Name as the dropdown label and Description as the sub-text. Empty list = no restriction.`,t.appendChild(n);let r=document.createElement(`div`);r.className=`sc-format-list-header`,r.appendChild(j7(``)),r.appendChild(j7(`Name`)),r.appendChild(j7(`Format`)),r.appendChild(j7(`Description`)),r.appendChild(j7(``)),t.appendChild(r);let i=document.createElement(`div`);i.className=`sc-format-list-rows`,t.appendChild(i);let a=document.createElement(`div`);a.className=`sc-format-list-empty`,a.textContent=`No allowed formats — any format will be accepted.`,t.appendChild(a);let o=document.createElement(`div`);o.className=`sc-format-list-actions`;let s=document.createElement(`button`);s.type=`button`,s.className=`sp-btn sp-btn--sm sp-btn--outline`,s.textContent=`+ Add format`,s.addEventListener(`click`,()=>e.addAllowedFormat());let c=document.createElement(`select`);c.className=`sc-format-list-preset-picker`;let l=document.createElement(`option`);l.value=``,l.textContent=`Add from preset…`,c.appendChild(l);for(let e of e7){let t=document.createElement(`option`);t.value=e.format??``,t.textContent=e.desc?`${e.name} — ${e.desc}`:e.name??``,c.appendChild(t)}c.addEventListener(`change`,()=>{let t=c.value;if(!t)return;let n=e7.find(e=>e.format===t);n?.format&&e.addAllowedFormat({matchUpFormat:n.format,name:n.name,description:n.desc}),c.value=``}),o.appendChild(s),o.appendChild(c),t.appendChild(o),e.isReadonly()&&(s.disabled=!0,c.disabled=!0);let u=[];function d(t){for(a.style.display=t.length===0?``:`none`,r.style.display=t.length===0?`none`:``;u.length>t.length;)u.pop()?.destroy();for(;u.length<t.length;){let t=u.length,n=M7(e,t);i.appendChild(n.element),u.push(n)}for(let e=0;e<t.length;e+=1)u[e].setIndex(e),u[e].setEntry(t[e])}d(e.getData().matchUpFormats??[]);function f(e){d(e.draft.matchUpFormats??[])}return{element:t,update:f}}function j7(e){let t=document.createElement(`div`);return t.className=`sc-format-list-header-label`,t.textContent=e,t}function M7(e,n){let r=n,i=!1,a=e.isReadonly(),o=document.createElement(`div`);o.className=`sc-format-list-row-wrap`;let s=document.createElement(`div`);s.className=`sc-format-list-row`;let c=document.createElement(`button`);c.type=`button`,c.className=`sc-format-list-row-expand`,c.setAttribute(`aria-label`,`Expand advanced fields`),c.textContent=`▸`;let l=P7(`Display name`,a),u=P7(`SET3-S:6/TB7`,a);u.classList.add(`sc-format-list-format-input`);let d=P7(`Description shown beneath the name`,a),f=document.createElement(`span`);f.className=`sc-format-list-validity`;let p=document.createElement(`button`);p.type=`button`,p.className=`sc-format-list-row-remove`,p.setAttribute(`aria-label`,`Remove format`),p.textContent=`×`,a&&(p.disabled=!0),p.addEventListener(`click`,()=>e.removeAllowedFormat(r));let m=document.createElement(`div`);m.className=`sc-format-list-format-cell`,m.appendChild(u),m.appendChild(f),s.appendChild(c),s.appendChild(l),s.appendChild(m),s.appendChild(d),s.appendChild(p);let h=document.createElement(`div`);h.className=`sc-format-list-row-advanced`,h.style.display=`none`;let g=document.createElement(`div`);g.className=`sc-field-help`,g.textContent=`Category filters scope this format to events with matching categoryNames / categoryTypes. Empty = applies to all categories.`,h.appendChild(g);let _=N7({label:`Category names`,placeholder:`e.g. U18`,initial:[],readonly:a,onAdd:t=>e.addAllowedFormatCategory(r,`categoryNames`,t),onRemove:t=>e.removeAllowedFormatCategory(r,`categoryNames`,t)});h.appendChild(_.element);let v=N7({label:`Category types`,placeholder:`e.g. AGE`,initial:[],readonly:a,onAdd:t=>e.addAllowedFormatCategory(r,`categoryTypes`,t),onRemove:t=>e.removeAllowedFormatCategory(r,`categoryTypes`,t)});h.appendChild(v.element),o.appendChild(s),o.appendChild(h),c.addEventListener(`click`,()=>{i=!i,c.textContent=i?`▾`:`▸`,h.style.display=i?``:`none`}),l.addEventListener(`input`,()=>e.setAllowedFormatField(r,`name`,l.value)),u.addEventListener(`input`,()=>{e.setAllowedFormatField(r,`matchUpFormat`,u.value),y()}),d.addEventListener(`input`,()=>e.setAllowedFormatField(r,`description`,d.value));function y(){let e=u.value.trim();if(!e){f.textContent=``,f.dataset.state=`empty`;return}t.matchUpFormatCode.parse?.(e)?(f.textContent=`✓`,f.dataset.state=`valid`):(f.textContent=`✗`,f.dataset.state=`invalid`)}return{element:o,setEntry(e){let t=i7(e),n=n7(e),r=t7(e),i=r7(e);l.value!==n&&(l.value=n),u.value!==r&&(u.value=r),d.value!==i&&(d.value=i),_.tagList.setValues(t.categoryNames??[]),v.tagList.setValues(t.categoryTypes??[]);let a=(t.categoryNames?.length??0)+(t.categoryTypes?.length??0)>0;c.dataset.hasContent=a?`true`:`false`,y()},setIndex(e){r=e},destroy(){o.remove()}}}function N7(e){let t=document.createElement(`div`);t.className=`sc-format-list-category-field`;let n=document.createElement(`div`);n.className=`sc-format-list-category-label`,n.textContent=e.label,t.appendChild(n);let r=k7({values:e.initial,placeholder:e.placeholder,readonly:e.readonly,onAdd:e.onAdd,onRemove:e.onRemove});return t.appendChild(r.element),{element:t,tagList:r}}function P7(e,t){let n=document.createElement(`input`);return n.type=`text`,n.className=`sc-format-list-input`,n.placeholder=e,t&&(n.disabled=!0),n}var F7=[`ABANDONED`,`CANCELLED`,`DEFAULTED`,`INCOMPLETE`,`RETIRED`,`WALKOVER`];function I7(e){let t=document.createElement(`div`);t.className=`sc-section-body-inner`;let n=F7.map(t=>R7(e,t));for(let r of n)t.appendChild(z7(r,()=>e.toggleStatus(r.key)));let r=document.createElement(`div`);r.className=`sc-advanced`;let i=document.createElement(`div`);i.className=`sc-advanced-header`;let a=document.createElement(`span`);a.className=`sc-advanced-chevron`;let o=document.createElement(`span`);o.textContent=`Advanced — process codes`,i.appendChild(a),i.appendChild(o),i.addEventListener(`click`,()=>e.setAdvancedOpen(!e.getState().advancedOpen));let s=document.createElement(`div`);s.className=`sc-advanced-body`,s.style.display=`none`;let c=document.createElement(`div`);c.className=`sc-field-help`,c.textContent=`Tokens passed to downstream governors when assignments are incomplete on default. The factory default ships ["RANKING.IGNORE"].`,s.appendChild(c);let l=k7({values:e.getData().processCodes?.incompleteAssignmentsOnDefault??[],placeholder:`e.g. RANKING.IGNORE`,readonly:e.isReadonly(),onAdd:t=>e.addProcessCode(t),onRemove:t=>e.removeProcessCode(t)});s.appendChild(l.element),r.appendChild(i),r.appendChild(s),t.appendChild(r);function u(e){for(let t of n){let n=e.draft.matchUpStatusCodes?.[t.key]??[];t.countEl.textContent=String(n.length);let r=e.expandedStatuses.has(t.key);t.chevron.textContent=r?`▾`:`▸`,t.body.style.display=r?`block`:`none`,t.tagList.setValues(n.map(L7))}a.textContent=e.advancedOpen?`▾`:`▸`,s.style.display=e.advancedOpen?`block`:`none`,l.setValues(e.draft.processCodes?.incompleteAssignmentsOnDefault??[])}return{element:t,update:u}}function L7(e){let t=ff(e)??``,n=e?.matchUpStatusCodeDisplay||e?.label;return n&&n!==t?`${t} — ${n}`:t}function R7(e,t){let n=document.createElement(`span`);n.className=`sc-status-chevron`;let r=document.createElement(`span`);r.className=`sc-status-count`;let i=document.createElement(`div`);i.className=`sc-status-body`;let a=k7({values:(e.getData().matchUpStatusCodes?.[t]??[]).map(L7),placeholder:`e.g. INJURY`,readonly:e.isReadonly(),onAdd:n=>e.addStatusCode(t,n),onRemove:n=>e.removeStatusCode(t,n)});return i.appendChild(a.element),{key:t,chevron:n,countEl:r,body:i,tagList:a}}function z7(e,t){let n=document.createElement(`div`);n.className=`sc-status-group`;let r=document.createElement(`div`);r.className=`sc-status-header`;let i=document.createElement(`span`);i.className=`sc-status-label`,i.textContent=B7(e.key),r.appendChild(e.chevron),r.appendChild(i);let a=document.createElement(`span`);return a.className=`sc-status-count-wrap`,a.appendChild(document.createTextNode(`(`)),a.appendChild(e.countEl),a.appendChild(document.createTextNode(`)`)),r.appendChild(a),r.addEventListener(`click`,t),n.appendChild(r),n.appendChild(e.body),n}function B7(e){return e.charAt(0)+e.slice(1).toLowerCase()}function V7(e){let t=document.createElement(`div`);t.className=`sc-editor`;let n=[{id:`defaults`,label:`Defaults`,factory:()=>D7(e)},{id:`allowedFormats`,label:`Allowed match-up formats`,factory:()=>A7(e)},{id:`statusCodes`,label:`Status code refinements`,factory:()=>I7(e)}],r=[];for(let i of n){let n=document.createElement(`div`);n.className=`sc-section`;let a=document.createElement(`div`);a.className=`sc-section-header`;let o=document.createElement(`span`);o.className=`sc-section-chevron`;let s=document.createElement(`span`);s.textContent=i.label,a.appendChild(o),a.appendChild(s),a.addEventListener(`click`,()=>e.toggleSection(i.id));let c=document.createElement(`div`);c.className=`sc-section-body`;let l=i.factory();c.appendChild(l.element),n.appendChild(a),n.appendChild(c),t.appendChild(n),r.push({id:i.id,chevron:o,bodyEl:c,inner:l})}function i(e){for(let t of r){let n=e.expandedSections.has(t.id);t.chevron.textContent=n?`▾`:`▸`,t.bodyEl.style.display=n?`block`:`none`,n&&t.inner.update(e)}}return{element:t,update:i}}var H7=class e{constructor(e){this.container=null,this.store=new c7(e),this.panel=V7(this.store),this.unsubscribe=this.store.subscribe(e=>{this.panel.update(e)}),this.panel.update(this.store.getState())}render(e){this.container=e,e.appendChild(this.panel.element)}destroy(){this.unsubscribe(),this.container&&this.panel.element.parentNode===this.container&&this.container.removeChild(this.panel.element),this.container=null}getData(){return this.store.getData()}setData(e){this.store.setData(e)}getStore(){return this.store}static createEditorInstance(t){let n={initialPolicy:t.initialData,readonly:t.readonly,onChange:e=>t.onChange(e)},r=new e(n);return{element:r.panel.element,setData(e){r.setData(e)},getData(){return r.getData()},destroy(){r.destroy()}}}},U7=[{value:`SEPARATE`,label:`Separate`,description:`Each seed placed in its own section of the draw`},{value:`WATERFALL`,label:`Waterfall`,description:`Seeds cascade down section by section`},{value:`CLUSTER`,label:`Cluster`,description:`Seeds grouped in clusters (e.g. 5-8 together)`}],W7=[`SINGLE_ELIMINATION`,`DOUBLE_ELIMINATION`,`ROUND_ROBIN`,`ROUND_ROBIN_WITH_PLAYOFF`,`FEED_IN`,`FEED_IN_CHAMPIONSHIP`,`FEED_IN_CHAMPIONSHIP_TO_SF`,`FEED_IN_CHAMPIONSHIP_TO_QF`,`FEED_IN_CHAMPIONSHIP_TO_R16`,`FIRST_MATCH_LOSER_CONSOLATION`,`CURTIS_CONSOLATION`,`COMPASS`,`OLYMPIC`];function G7(){return{policyName:``,seedingProfile:{positioning:`SEPARATE`},validSeedPositions:{ignore:!0},duplicateSeedNumbers:!0,drawSizeProgression:!0,seedsCountThresholds:[{drawSize:4,minimumParticipantCount:3,seedsCount:2},{drawSize:16,minimumParticipantCount:12,seedsCount:4},{drawSize:32,minimumParticipantCount:24,seedsCount:8},{drawSize:64,minimumParticipantCount:48,seedsCount:16}]}}function K7(e){return e===`ADJACENT`?`CLUSTER`:e}function q7(e){if(e!==void 0)return typeof e==`string`?{positioning:e}:e}function J7(e){if(e===void 0)return;if(typeof e==`string`)return{positioning:e};let{drawTypes:t,...n}=e;if(!t)return n;let r={};for(let[e,n]of Object.entries(t)){let t=q7(n);t&&(r[e]=t)}return{...n,drawTypes:r}}function Y7(e){return{...e,seedingProfile:J7(e.seedingProfile)}}function X7(e){return structuredClone(e)}var Z7=class{constructor(e){this.listeners=new Set,this.config=e,this.state={draft:Y7(X7(e.initialPolicy??G7())),expandedSections:new Set([`profile`,`flags`,`thresholds`,`drawTypeOverrides`]),dirty:!1}}getState(){return this.state}getData(){return X7(this.state.draft)}setData(e){this.state={...this.state,draft:Y7(X7(e)),dirty:!1},this.emit()}toggleSection(e){let t=new Set(this.state.expandedSections);t.has(e)?t.delete(e):t.add(e),this.state={...this.state,expandedSections:t},this.emit()}setPolicyName(e){let t=X7(this.state.draft);t.policyName=e,this.commitDraft(t)}setPositioning(e){let t=X7(this.state.draft);t.seedingProfile??={},t.seedingProfile.positioning=e,this.commitDraft(t)}setValidSeedPositionsIgnore(e){let t=X7(this.state.draft);t.validSeedPositions={ignore:e},this.commitDraft(t)}setDuplicateSeedNumbers(e){let t=X7(this.state.draft);t.duplicateSeedNumbers=e,this.commitDraft(t)}setDrawSizeProgression(e){let t=X7(this.state.draft);t.drawSizeProgression=e,this.commitDraft(t)}addThreshold(){let e=X7(this.state.draft);e.seedsCountThresholds??=[];let t=e.seedsCountThresholds.at(-1),n=t?t.drawSize*2:4;e.seedsCountThresholds.push({drawSize:n,minimumParticipantCount:Math.max(1,Math.floor(n*.75)),seedsCount:Math.max(2,Math.floor(n/4))}),this.commitDraft(e)}removeThreshold(e){let t=X7(this.state.draft);t.seedsCountThresholds&&(t.seedsCountThresholds.splice(e,1),this.commitDraft(t))}setThresholdField(e,t,n){let r=X7(this.state.draft),i=r.seedsCountThresholds?.[e];i&&(i[t]=n,this.commitDraft(r))}sortThresholds(){let e=X7(this.state.draft);e.seedsCountThresholds&&(e.seedsCountThresholds.sort((e,t)=>e.drawSize-t.drawSize),this.commitDraft(e))}addDrawTypeOverride(e,t){if(!e)return;let n=X7(this.state.draft);n.seedingProfile??={},n.seedingProfile.drawTypes??={},n.seedingProfile.drawTypes[e]={positioning:t},this.commitDraft(n)}removeDrawTypeOverride(e){let t=X7(this.state.draft);t.seedingProfile?.drawTypes&&(delete t.seedingProfile.drawTypes[e],Object.keys(t.seedingProfile.drawTypes).length===0&&delete t.seedingProfile.drawTypes,this.commitDraft(t))}setDrawTypeOverridePositioning(e,t){let n=X7(this.state.draft),r=n.seedingProfile?.drawTypes;r?.[e]&&(r[e]={positioning:t},this.commitDraft(n))}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}commitDraft(e){this.state={...this.state,draft:e,dirty:!0},this.emit(),this.config.onChange?.(X7(e))}emit(){for(let e of this.listeners)e(this.state)}},Q7=()=>`sd-editor`,$7=()=>`sd-section`,e9=()=>`sd-section-header`,t9=()=>`sd-section-chevron`,n9=()=>`sd-section-body`,r9=()=>`sd-field-row`,i9=()=>`sd-field-label`,a9=()=>`sd-field-input`,o9=()=>`sd-checkbox-row`,s9=()=>`sd-checkbox-desc`,c9=()=>`sd-radio-group`,l9=()=>`sd-radio-option`,u9=()=>`sp-btn sp-btn--sm sp-btn--outline sd-add-btn`,d9=()=>`sp-btn sp-btn--sm sp-btn--ghost sd-sort-btn`,f9=()=>`sp-btn-icon sp-btn-icon--danger sd-remove-btn`,p9=()=>`sd-table-wrap`,Jee=()=>`sd-table`,Yee=()=>`sd-number-cell-input`,m9=()=>`sd-empty`,h9=()=>`sd-actions-row`,Xee=()=>`sd-override-row`,Zee=()=>`sd-override-add-row`,Qee=()=>`sd-override-drawtype`,g9=()=>`sd-select`;function $ee(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=r9();let r=document.createElement(`div`);r.className=i9(),r.textContent=`Policy name`;let i=document.createElement(`input`);i.type=`text`,i.className=a9()+` sd-field-input--wide`,i.placeholder=`e.g. USTA SEEDING`,i.addEventListener(`input`,()=>e.setPolicyName(i.value)),n.appendChild(r),n.appendChild(i),t.appendChild(n);let a=document.createElement(`div`);a.className=r9()+` sd-field-row--top`;let o=document.createElement(`div`);o.className=i9(),o.textContent=`Default positioning`,a.appendChild(o);let s=document.createElement(`div`);s.className=c9();let c=[];for(let t of U7){let n=document.createElement(`label`);n.className=l9();let r=document.createElement(`input`);r.type=`radio`,r.name=`sd-positioning`,r.value=t.value,r.addEventListener(`change`,()=>{r.checked&&e.setPositioning(t.value)});let i=document.createElement(`span`);i.innerHTML=`<strong>${t.label}</strong><div class="sd-radio-desc">${t.description}</div>`,n.appendChild(r),n.appendChild(i),s.appendChild(n),c.push({value:t.value,input:r})}a.appendChild(s),t.appendChild(a);function l(e){document.activeElement!==i&&(i.value=e.draft.policyName??``);let t=K7(e.draft.seedingProfile?.positioning);for(let e of c)e.input.checked=e.value===t}return{element:t,update:l}}function ete(e){let t=document.createElement(`div`),n=[{id:`sd-valid-seed-positions-ignore`,label:`Ignore valid seed positions`,description:`Allow seeds to be placed at any drawPosition (rather than only canonical seeded positions).`,read:e=>e.draft.validSeedPositions?.ignore??!1,write:t=>e.setValidSeedPositionsIgnore(t)},{id:`sd-duplicate-seed-numbers`,label:`Allow duplicate seed numbers`,description:`Permit shared seed numbers (e.g. multiple #5 seeds in CLUSTER positioning).`,read:e=>e.draft.duplicateSeedNumbers??!1,write:t=>e.setDuplicateSeedNumbers(t)},{id:`sd-draw-size-progression`,label:`Draw size progression`,description:`Apply thresholds at or below the matched draw size, instead of requiring an exact match.`,read:e=>e.draft.drawSizeProgression??!1,write:t=>e.setDrawSizeProgression(t)}],r=[];for(let e of n){let n=document.createElement(`div`);n.className=o9();let i=document.createElement(`input`);i.type=`checkbox`,i.id=e.id,i.addEventListener(`change`,()=>e.write(i.checked));let a=document.createElement(`label`);a.htmlFor=e.id,a.textContent=e.label;let o=document.createElement(`div`);o.className=s9(),o.textContent=e.description;let s=document.createElement(`div`);s.appendChild(a),s.appendChild(o),n.appendChild(i),n.appendChild(s),t.appendChild(n),r.push({def:e,input:i})}function i(e){for(let t of r)t.input.checked=t.def.read(e)}return{element:t,update:i}}var _9=[{field:`drawSize`,label:`Draw size`,min:2,placeholder:`32`},{field:`minimumParticipantCount`,label:`Min participants`,min:0,placeholder:`24`},{field:`seedsCount`,label:`Seeds`,min:0,placeholder:`8`}];function tte(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=p9();let r=document.createElement(`table`);r.className=Jee();let i=document.createElement(`thead`),a=document.createElement(`tr`);for(let e of _9){let t=document.createElement(`th`);t.textContent=e.label,a.appendChild(t)}let o=document.createElement(`th`);o.setAttribute(`aria-label`,`Actions`),a.appendChild(o),i.appendChild(a),r.appendChild(i);let s=document.createElement(`tbody`);r.appendChild(s),n.appendChild(r),t.appendChild(n);let c=document.createElement(`div`);c.className=m9(),c.textContent=`No seed-count thresholds defined. Add a row to configure seeds per draw size.`,t.appendChild(c);let l=document.createElement(`div`);l.className=h9();let u=document.createElement(`button`);u.type=`button`,u.className=u9(),u.textContent=`+ Add threshold`,u.addEventListener(`click`,()=>e.addThreshold());let d=document.createElement(`button`);d.type=`button`,d.className=d9(),d.textContent=`Sort by draw size`,d.addEventListener(`click`,()=>e.sortThresholds()),l.appendChild(u),l.appendChild(d),t.appendChild(l);function f(t){let n=t.draft.seedsCountThresholds??[];if(s.innerHTML=``,n.length===0){r.style.display=`none`,c.style.display=`block`,d.disabled=!0;return}r.style.display=``,c.style.display=`none`,d.disabled=n.length<2;for(let t=0;t<n.length;t++){let r=n[t],i=document.createElement(`tr`);for(let n of _9){let a=document.createElement(`td`),o=document.createElement(`input`);o.type=`number`,o.min=String(n.min),o.className=Yee(),o.value=String(r[n.field]),n.placeholder&&(o.placeholder=n.placeholder);let s=t,c=n.field;o.addEventListener(`change`,()=>{let t=parseInt(o.value,10);!isNaN(t)&&t>=n.min?e.setThresholdField(s,c,t):o.value=String(r[n.field])}),a.appendChild(o),i.appendChild(a)}let a=document.createElement(`td`),o=document.createElement(`button`);o.type=`button`,o.className=f9(),o.setAttribute(`aria-label`,`Remove threshold row ${t+1}`),o.textContent=`×`;let c=t;o.addEventListener(`click`,()=>e.removeThreshold(c)),a.appendChild(o),i.appendChild(a),s.appendChild(i)}}return{element:t,update:f}}function v9(e,t){let n=document.createElement(`select`);n.className=g9();for(let e of U7){let t=document.createElement(`option`);t.value=e.value,t.textContent=e.label,n.appendChild(t)}return n.value=e,n.addEventListener(`change`,()=>t(n.value)),n}function nte(e,t){let n=document.createElement(`div`),r=t.drawTypes??W7,i=document.createElement(`div`);n.appendChild(i);let a=document.createElement(`div`);a.className=m9(),a.textContent=`No draw-type overrides. The default positioning is used for every drawType.`,n.appendChild(a);let o=document.createElement(`div`);o.className=Zee();let s=document.createElement(`select`);s.className=g9();function c(e){s.innerHTML=``;let t=document.createElement(`option`);t.value=``,t.textContent=`Select drawType…`,s.appendChild(t);for(let t of r){if(e.has(t))continue;let n=document.createElement(`option`);n.value=t,n.textContent=t,s.appendChild(n)}}let l=v9(`WATERFALL`,()=>{}),u=document.createElement(`button`);u.type=`button`,u.className=u9(),u.textContent=`+ Add override`,u.addEventListener(`click`,()=>{let t=s.value;t&&e.addDrawTypeOverride(t,l.value)});let d=document.createElement(`div`);d.className=h9(),d.appendChild(s),d.appendChild(l),d.appendChild(u),o.appendChild(d),n.appendChild(o);function f(t){let n=t.draft.seedingProfile?.drawTypes??{},r=Object.entries(n);if(i.innerHTML=``,r.length===0)a.style.display=`block`;else{a.style.display=`none`;for(let[t,{positioning:n}]of r){let r=document.createElement(`div`);r.className=Xee();let a=document.createElement(`div`);a.className=Qee(),a.textContent=t;let o=v9(K7(n),n=>e.setDrawTypeOverridePositioning(t,n)),s=document.createElement(`button`);s.type=`button`,s.className=f9(),s.setAttribute(`aria-label`,`Remove override for ${t}`),s.textContent=`×`,s.addEventListener(`click`,()=>e.removeDrawTypeOverride(t)),r.appendChild(a),r.appendChild(o),r.appendChild(s),i.appendChild(r)}}c(new Set(Object.keys(n))),u.disabled=s.options.length<=1}return{element:n,update:f}}function rte(e,t){let n=document.createElement(`div`);n.className=Q7();let r=[{id:`profile`,label:`Profile`,factory:()=>$ee(e)},{id:`flags`,label:`Flags`,factory:()=>ete(e)},{id:`thresholds`,label:`Seed Count Thresholds`,factory:()=>tte(e)},{id:`drawTypeOverrides`,label:`Draw Type Overrides`,factory:()=>nte(e,t)}],i=[];for(let t of r){let r=document.createElement(`div`);r.className=$7();let a=document.createElement(`div`);a.className=e9();let o=document.createElement(`span`);o.className=t9();let s=document.createElement(`span`);s.textContent=t.label,a.appendChild(o),a.appendChild(s),a.addEventListener(`click`,()=>e.toggleSection(t.id));let c=document.createElement(`div`);c.className=n9();let l=t.factory();c.appendChild(l.element),r.appendChild(a),r.appendChild(c),n.appendChild(r),i.push({id:t.id,chevron:o,bodyEl:c,inner:l})}function a(e){for(let t of i){let n=e.expandedSections.has(t.id);t.chevron.textContent=n?`▼`:`▶`,t.bodyEl.style.display=n?`block`:`none`,n&&t.inner.update(e)}}return{element:n,update:a}}var ite=class e{constructor(e){this.container=null,this.store=new Z7(e),this.panel=rte(this.store,e),this.unsubscribe=this.store.subscribe(e=>{this.panel.update(e)}),this.panel.update(this.store.getState())}render(e){this.container=e,e.appendChild(this.panel.element)}destroy(){this.unsubscribe(),this.container&&this.panel.element.parentNode===this.container&&this.container.removeChild(this.panel.element),this.container=null}getData(){return this.store.getData()}setData(e){this.store.setData(e)}getStore(){return this.store}static createEditorInstance(t){let n={initialPolicy:t.initialData,onChange:e=>t.onChange(e)},r=new e(n);return{element:r.panel.element,setData(e){r.setData(e)},getData(){return r.getData()},destroy(){r.destroy()}}}},ate=t.factoryConstants.policyConstants.POLICY_TYPE_PARTICIPANT;function y9(e){return structuredClone(e)}function b9(){return y9(t.fixtures.policies.POLICY_PRIVACY_DEFAULT[ate])}function x9(e){return e?.participant??{}}var ote=new Set([`person`,`individualParticipants`]);function S9(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function C9(e,t){return typeof t==`boolean`||S9(t)&&!ote.has(e)}function w9(e){let t=x9(e);return[{participant:t,person:t.person},{participant:t.individualParticipants,person:t.individualParticipants?.person}]}function T9(e){let t=e.replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/([A-Z]+)([A-Z][a-z])/g,`$1 $2`);return t.charAt(0).toUpperCase()+t.slice(1)}function ste(e=b9()){let t=x9(e),n=Object.keys(t).filter(e=>C9(e,t[e])).map(e=>({field:e,group:`participant`,label:T9(e)})),r=Object.keys(t.person??{}).filter(e=>C9(e,t.person[e])).map(e=>({field:e,group:`person`,label:T9(e)}));return[...n,...r]}function cte(e,t,n){let r=x9(e),i=t===`person`?r.person?.[n]:r[n];return i===!0||S9(i)}function lte(e,t,n,r,i=b9()){let a=w9(i);w9(e).forEach((e,i)=>{let o=e[t],s=a[i]?.[t];if(!o||!(n in o||s&&n in s))return;let c=s?.[n];o[n]=r?!S9(c)||y9(c):!1})}function E9(e,t=b9()){let n=w9(t);return w9(e).forEach((e,t)=>{for(let r of[`participant`,`person`]){let i=e[r],a=n[t]?.[r];if(i&&a)for(let[e,t]of Object.entries(a))!(e in i)&&C9(e,t)&&(i[e]=y9(t))}}),e}function ute(e){return e?.policyName??``}function dte(e,t){e&&(e.policyName=t)}function D9(e){return structuredClone(e)}var fte=class{constructor(e){this.listeners=new Set,this.config=e,this.state={draft:E9(D9(e.initialPolicy??b9())),dirty:!1}}getState(){return this.state}getData(){return D9(this.state.draft)}setData(e){this.state={...this.state,draft:E9(D9(e)),dirty:!1},this.emit()}setPolicyName(e){let t=D9(this.state.draft);dte(t,e),this.commitDraft(t)}setField(e,t,n){let r=D9(this.state.draft);lte(r,e,t,n),this.commitDraft(r)}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}commitDraft(e){this.state={...this.state,draft:e,dirty:!0},this.emit(),this.config.onChange?.(D9(e))}emit(){for(let e of this.listeners)e(this.state)}};function pte(e,t){let n=document.createElement(`div`);n.className=`privacy-editor`;let r=document.createElement(`p`);r.className=`privacy-editor__intro`,r.textContent=`Choose which participant details are published publicly. Unchecked = kept private.`,n.appendChild(r);let i=document.createElement(`label`);i.className=`privacy-editor__name`;let a=document.createElement(`span`);a.textContent=`Policy name`;let o=document.createElement(`input`);o.type=`text`,o.placeholder=`e.g. Public roster privacy`,o.addEventListener(`input`,()=>e.setPolicyName(o.value)),i.append(a,o),n.appendChild(i);let s=ste(),c=new Map,l=(t,r)=>{let i=document.createElement(`section`);i.className=`privacy-editor__group`;let a=document.createElement(`h4`);a.textContent=r,i.appendChild(a);let o=document.createElement(`div`);o.className=`privacy-editor__grid`;for(let n of s.filter(e=>e.group===t)){let r=document.createElement(`label`);r.className=`privacy-editor__toggle`;let i=document.createElement(`input`);i.type=`checkbox`,i.addEventListener(`change`,()=>e.setField(t,n.field,i.checked));let a=document.createElement(`span`);a.textContent=n.label,r.append(i,a),o.appendChild(r),c.set(`${t}.${n.field}`,i)}i.appendChild(o),n.appendChild(i)};return l(`person`,`Person details`),l(`participant`,`Participant details`),{element:n,update:e=>{o.value=ute(e.draft);for(let t of s){let n=c.get(`${t.group}.${t.field}`);n&&(n.checked=cte(e.draft,t.group,t.field))}}}}var mte=class e{constructor(e){this.container=null,this.store=new fte(e),this.panel=pte(this.store,e),this.unsubscribe=this.store.subscribe(e=>this.panel.update(e)),this.panel.update(this.store.getState())}render(e){this.container=e,e.appendChild(this.panel.element)}destroy(){this.unsubscribe(),this.container&&this.panel.element.parentNode===this.container&&this.container.removeChild(this.panel.element),this.container=null}getData(){return this.store.getData()}setData(e){this.store.setData(e)}getStore(){return this.store}static createEditorInstance(t){let n={initialPolicy:t.initialData,onChange:e=>t.onChange(e)},r=new e(n);return{element:r.panel.element,setData(e){r.setData(e)},getData(){return r.getData()},destroy(){r.destroy()}}}},hte=()=>`pc-layout`,O9=()=>`pc-panel`,gte=()=>`pc-panel-header`,k9=()=>`pc-panel-title`,_te=()=>`pc-panel-meta`,vte=()=>`pc-toolbar`,yte=()=>`pc-input`,bte=()=>`pc-select`,xte=()=>`pc-catalog`,Ste=()=>`pc-group`,Cte=()=>`pc-group-header`,wte=()=>`pc-group-chevron`,Tte=()=>`pc-group-body`,Ete=()=>`pc-card`,Dte=()=>`pc-card-title`,Ote=()=>`pc-card-meta`,A9=()=>`pc-type-badge`,kte=()=>`pc-editor`,Ate=()=>`pc-editor-header`,jte=()=>`pc-editor-header-left`,j9=()=>`pc-editor-actions`,M9=()=>`sp-btn sp-btn--sm`,N9=()=>`sp-btn sp-btn--sm sp-btn--accent`,Mte=()=>`pc-dirty-dot`,Nte=()=>`pc-editor-body`,Pte=()=>`pc-empty`,Fte=()=>`pc-json-editor`,Ite=()=>`pc-json-error`;function P9(e){let t=document.createElement(`div`);t.className=hte(),t.appendChild(e.catalogPanel.element),t.appendChild(e.editorShell.element);function n(t){e.catalogPanel.update(t),e.editorShell.update(t)}return{element:t,update:n}}var Lte=`scheduling`,Rte=`scoring`,zte=`seeding`,Bte=`draws`,Vte=`avoidance`,Hte=`feedIn`,Ute=`progression`,Wte=`roundNaming`,Gte=`positionActions`,Kte=`matchUpActions`,qte=`roundRobinTally`,Jte=`rankingPoints`,Yte=`competitiveBands`,Xte=`voluntaryConsolation`,Zte=`participant`,Qte=`display`,$te=`audit`,F9=`Tournament Operations`,I9=`Scoring & Results`,L9=`Ranking Points`,R9=`Draw Configuration`,z9=`Participants`,B9=`Display & Audit`,V9=(e,t,n,r,i)=>({policyType:e,label:t,description:n,group:r,hasEditor:i}),H9=[V9(Lte,`Scheduling`,`Match scheduling, average times, recovery times, daily limits`,F9,!0),V9(Gte,`Position Actions`,`Allowed position actions (alternates, walkovers, withdrawals)`,F9,!1),V9(Kte,`MatchUp Actions`,`Allowed matchUp status transitions and actions`,F9,!1),V9(Vte,`Avoidance`,`Draw placement avoidance rules (club, nationality, region)`,F9,!1),V9(Rte,`Scoring`,`Score entry validation and completion rules`,I9,!0),V9(qte,`Round Robin Tally`,`Round-robin group standing calculation method`,I9,!1),V9(Jte,`Ranking Points`,`Point allocation by draw size, round, and result`,L9,!0),V9(Yte,`Competitive Bands`,`Rating/ranking band definitions for competitive grouping`,I9,!1),V9(Bte,`Draws`,`Draw generation rules and structure options`,R9,!1),V9(zte,`Seeding`,`Seeding thresholds and placement rules by draw size`,R9,!0),V9(Hte,`Feed-In`,`Feed-in consolation structure rules`,R9,!1),V9(Ute,`Progression`,`Player progression between draw structures`,R9,!1),V9(Xte,`Voluntary Consolation`,`Voluntary consolation entry rules`,R9,!1),V9(Wte,`Round Naming`,`Custom round name labels (QF, SF, F, etc.)`,R9,!1),V9(Zte,`Participant Privacy`,`Which participant details are published publicly`,z9,!0),V9(Qte,`Display`,`Client display configuration (public vs admin views)`,B9,!1),V9($te,`Audit`,`Audit trail and change logging configuration`,B9,!1)];function U9(e){return H9.find(t=>t.policyType===e)}function ene(e){return e===`rankingPoints`?U6():e===`scheduling`?t5():e===`scoring`?o7():e===`seeding`?G7():e===`participant`?b9():{}}var W9=[F9,I9,L9,R9,z9,B9];function G9(e,t){let n=t.toLowerCase().trim();return n?e.filter(e=>{let t=U9(e.policyType);return[e.name,e.description,e.policyType,t?.label??``,e.source].join(` `).toLowerCase().includes(n)}):e}function K9(e,t){let n=new Map;if(t===`type`){for(let e of W9)n.set(e,[]);for(let t of e){let e=U9(t.policyType)?.group??`Display & Audit`,r=n.get(e);r?r.push(t):n.set(e,[t])}for(let[e,t]of n)t.length===0&&n.delete(e)}else for(let t of e){let e=t.source===`builtin`?`Built-in Policies`:`User Policies`,r=n.get(e);r?r.push(t):n.set(e,[t])}return n}function q9(e){let t=document.createElement(`div`);t.className=O9(),t.style.overflowY=`auto`,t.style.scrollbarWidth=`thin`,t.style.scrollbarColor=`var(--sp-scrollbar) transparent`;let n=new Set,r=null,i=document.createElement(`div`);i.className=gte();let a=document.createElement(`div`);a.className=k9(),a.textContent=`Policy Catalog`;let o=document.createElement(`div`);o.className=_te(),i.appendChild(a),i.appendChild(o),t.appendChild(i);let s=document.createElement(`div`);s.className=vte();let c=document.createElement(`input`);c.type=`text`,c.placeholder=`Search policies...`,c.className=yte(),c.addEventListener(`input`,()=>e.onSearchChange(c.value));let l=document.createElement(`select`);l.className=bte();for(let[e,t]of[[`type`,`By Type`],[`source`,`By Source`]]){let n=document.createElement(`option`);n.value=e,n.textContent=t,l.appendChild(n)}l.addEventListener(`change`,()=>e.onGroupByChange(l.value));let u=document.createElement(`div`);u.style.cssText=`position:relative;flex-shrink:0`;let d=document.createElement(`button`);d.className=`sp-btn-icon`,d.textContent=`+`,d.title=`New policy`,d.style.cssText=`font-size:1rem;font-weight:700`;let f=document.createElement(`div`);f.style.cssText=`display:none;position:absolute;top:100%;right:0;z-index:100;min-width:180px;background:var(--sp-panel-bg);border:1px solid var(--sp-border);border-radius:12px;box-shadow:var(--sp-panel-shadow);padding:4px;margin-top:4px`;let p=H9.filter(e=>e.hasEditor);for(let t of p){let n=document.createElement(`div`);n.style.cssText=`padding:6px 10px;font-size:12px;border-radius:8px;cursor:pointer;color:var(--sp-text)`,n.textContent=t.label,n.addEventListener(`mouseenter`,()=>{n.style.background=`var(--sp-hover-bg)`}),n.addEventListener(`mouseleave`,()=>{n.style.background=``}),n.addEventListener(`click`,n=>{n.stopPropagation(),f.style.display=`none`,e.onNewPolicy?.(t.policyType)}),f.appendChild(n)}d.addEventListener(`click`,e=>{e.stopPropagation(),f.style.display=f.style.display===`none`?`block`:`none`}),document.addEventListener(`click`,()=>{f.style.display=`none`}),u.appendChild(d),u.appendChild(f),s.appendChild(c),s.appendChild(l),s.appendChild(u),t.appendChild(s);let m=document.createElement(`div`);m.className=xte(),t.appendChild(m);function h(t){r=t;let i=G9(t.catalog,t.searchQuery),a=K9(i,t.groupBy);o.textContent=`${i.length} policies`,c.value!==t.searchQuery&&(c.value=t.searchQuery),l.value!==t.groupBy&&(l.value=t.groupBy),m.innerHTML=``;for(let[i,o]of a){let a=document.createElement(`div`);a.className=Ste();let s=n.has(i),c=document.createElement(`div`);c.className=Cte();let l=document.createElement(`span`);l.className=wte(),l.textContent=s?`▶`:`▼`;let u=document.createElement(`span`);u.textContent=`${i} (${o.length})`,c.appendChild(l),c.appendChild(u),c.addEventListener(`click`,()=>{n.has(i)?n.delete(i):n.add(i),r&&h(r)});let d=document.createElement(`div`);d.className=Tte(),s&&(d.style.display=`none`);for(let n of o){let r=document.createElement(`div`);r.className=Ete(),n.id===t.selectedId&&r.classList.add(`active`),r.addEventListener(`click`,()=>e.onSelectPolicy(n.id));let i=document.createElement(`div`);i.style.cssText=`display:flex;align-items:center;gap:4px`;let a=document.createElement(`div`);if(a.className=Dte(),a.style.flex=`1`,a.textContent=n.name,i.appendChild(a),e.onDuplicatePolicy){let t=document.createElement(`span`);t.style.cssText=`font-size:10px;cursor:pointer;color:var(--sp-muted);padding:2px`,t.textContent=`⎘`,t.title=`Duplicate`,t.addEventListener(`click`,t=>{t.stopPropagation(),e.onDuplicatePolicy?.(n.id)}),i.appendChild(t)}if(n.source===`user`&&e.onDeletePolicy){let t=document.createElement(`span`);t.style.cssText=`font-size:10px;cursor:pointer;color:var(--sp-muted);padding:2px`,t.textContent=`✕`,t.title=`Delete`,t.addEventListener(`click`,t=>{t.stopPropagation(),e.onDeletePolicy?.(n.id)}),i.appendChild(t)}r.appendChild(i);let o=document.createElement(`div`);o.className=Ote();let s=U9(n.policyType),c=document.createElement(`span`);c.className=A9(),c.textContent=s?.label??n.policyType;let l=document.createElement(`span`);l.className=`${A9()} ${n.source}`,l.textContent=n.source,o.appendChild(c),o.appendChild(l),r.appendChild(o),d.appendChild(r)}a.appendChild(c),a.appendChild(d),m.appendChild(a)}}return{element:t,update:h}}function J9(e){return structuredClone(e)}var Y9=class{constructor(e){this.listeners=new Set,this.localIdCounter=0,this.config=e;let t=new Set((e.builtinPolicies??[]).map(e=>e.id)),n=[...e.builtinPolicies??[],...(e.userPolicies??[]).filter(e=>!t.has(e.id))];this.state={catalog:n,searchQuery:``,groupBy:`type`,selectedId:null,editorDraft:null,editedName:null,dirty:!1}}getState(){return this.state}getSelectedItem(){return this.state.selectedId?this.state.catalog.find(e=>e.id===this.state.selectedId)??null:null}setCatalogSearch(e){this.setState({searchQuery:e})}setCatalogGroupBy(e){this.setState({groupBy:e})}selectPolicy(e){if(this.state.selectedId===e)return;let t=this.state.catalog.find(t=>t.id===e);t&&(this.setState({selectedId:e,editorDraft:J9(t.policyData),editedName:t.name,dirty:!1}),this.config.onSelectionChanged?.(t))}clearSelection(){this.state.selectedId&&(this.setState({selectedId:null,editorDraft:null,editedName:null,dirty:!1}),this.config.onSelectionChanged?.(null))}renamePolicy(e){if(!this.state.selectedId)return;let t=this.getSelectedItem();t&&t.source!==`builtin`&&this.state.editedName!==e&&this.setState({editedName:e,dirty:!0})}updateEditorDraft(e){this.setState({editorDraft:e,dirty:!0})}markDirty(){this.state.dirty||this.setState({dirty:!0})}markClean(){this.state.dirty&&this.setState({dirty:!1})}savePolicy(){let e=this.getSelectedItem();if(!e||!this.state.editorDraft)return;let t={...e,name:this.state.editedName??e.name,policyData:J9(this.state.editorDraft)},n=this.state.catalog.map(e=>e.id===t.id?t:e);this.state={...this.state,catalog:n,dirty:!1},this.emit(),this.config.onPolicySaved?.(t)}resetDraft(){let e=this.getSelectedItem();e&&this.setState({editorDraft:J9(e.policyData),editedName:e.name,dirty:!1})}applyPolicy(){let e=this.getSelectedItem();if(!e)return;let t={...e,policyData:this.state.editorDraft?J9(this.state.editorDraft):J9(e.policyData)};this.config.onPolicyApplied?.(t)}addNewPolicy(e){let t=this.nextLocalId(e),n={id:t,name:`New ${e} policy`,policyType:e,source:`user`,description:``,policyData:ene(e)};return this.appendAndSelect(n),this.runCreateAndReconcile(n),t}duplicatePolicy(e){let t=this.state.catalog.find(t=>t.id===e);if(!t)return null;let n=this.nextLocalId(t.policyType),r={id:n,name:`${t.name} (Copy)`,policyType:t.policyType,source:`user`,description:t.description,policyData:J9(t.policyData)};return this.appendAndSelect(r),this.runCreateAndReconcile(r),n}reconcilePolicyId(e,t){if(e===t||this.state.catalog.findIndex(t=>t.id===e)===-1)return;let n=this.state.catalog.map(n=>n.id===e?{...n,id:t}:n),r=this.state.selectedId===e;this.state={...this.state,catalog:n,...r?{selectedId:t}:{}},this.emit()}deletePolicy(e){let t=this.state.catalog.find(t=>t.id===e);if(!t||t.source===`builtin`)return;let n=this.state.catalog.filter(t=>t.id!==e),r=this.state.selectedId===e;this.state={...this.state,catalog:n,...r?{selectedId:null,editorDraft:null,dirty:!1}:{}},this.emit(),this.config.onPolicyDeleted?.(e),r&&this.config.onSelectionChanged?.(null)}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setState(e){this.state={...this.state,...e},this.emit()}emit(){for(let e of this.listeners)e(this.state)}nextLocalId(e){return this.localIdCounter+=1,`user-${e}-${Date.now()}-${this.localIdCounter}`}appendAndSelect(e){let t=[...this.state.catalog,e];this.state={...this.state,catalog:t,selectedId:e.id,editorDraft:J9(e.policyData),editedName:e.name,dirty:!1},this.emit(),this.config.onSelectionChanged?.(e)}runCreateAndReconcile(e){let t=this.config.onPolicyCreated?.(e);if(t!==void 0){if(typeof t==`string`){this.reconcilePolicyId(e.id,t);return}Promise.resolve(t).then(t=>{typeof t==`string`&&this.reconcilePolicyId(e.id,t)}).catch(()=>{})}}};function X9(e){let t=document.createElement(`div`);t.className=O9();let n=document.createElement(`div`);n.className=kte();let r=document.createElement(`div`);r.className=Ate();let i=document.createElement(`div`);i.className=jte();let a=document.createElement(`div`);a.className=k9();let o=document.createElement(`input`);o.type=`text`,o.className=`${k9()} pc-name-input`,o.setAttribute(`aria-label`,`Policy name`),o.setAttribute(`data-testid`,`pc-name-input`),o.placeholder=`Policy name`,o.addEventListener(`input`,()=>e.onRename(o.value));let s=document.createElement(`span`);s.className=A9();let c=document.createElement(`span`);c.className=A9(),c.textContent=`read-only`,c.style.display=`none`;let l=document.createElement(`div`);l.className=Mte(),l.style.display=`none`,l.title=`Unsaved changes`,i.appendChild(l),i.appendChild(a),i.appendChild(o),i.appendChild(s),i.appendChild(c);let u=document.createElement(`div`);u.className=j9();let d=document.createElement(`button`);d.className=M9(),d.textContent=`Reset`,d.addEventListener(`click`,()=>e.onReset());let f=document.createElement(`button`);f.className=N9(),f.textContent=`Save`,f.addEventListener(`click`,()=>e.onSave());let p=document.createElement(`button`);p.className=M9(),p.textContent=`Apply`,p.addEventListener(`click`,()=>e.onApply());let m=document.createElement(`button`);m.className=M9(),m.textContent=`Duplicate`,m.addEventListener(`click`,()=>e.onDuplicate()),u.appendChild(d),u.appendChild(f),u.appendChild(p),u.appendChild(m);let h=document.createElement(`div`);h.className=j9();let g=document.createElement(`button`);g.className=N9(),g.textContent=`Use as Template`,g.addEventListener(`click`,()=>e.onDuplicate()),h.appendChild(g),r.appendChild(i),r.appendChild(u),r.appendChild(h);let _=document.createElement(`div`);_.className=Nte(),n.appendChild(r),n.appendChild(_);let v=document.createElement(`div`);v.className=Pte(),v.textContent=`Select a policy to edit`,t.appendChild(n),t.appendChild(v);function y(e){let t=e.selectedId!==null;if(n.style.display=t?`flex`:`none`,v.style.display=t?`none`:`flex`,!t)return;let r=e.catalog.find(t=>t.id===e.selectedId);if(!r)return;let i=r.source===`builtin`,d=e.editedName??r.name;a.textContent=d,document.activeElement!==o&&o.value!==d&&(o.value=d);let f=U9(r.policyType);s.textContent=f?.label??r.policyType,a.style.display=i?``:`none`,o.style.display=i?`none`:``,c.style.display=i?``:`none`,u.style.display=i?`none`:`flex`,h.style.display=i?`flex`:`none`,l.style.display=!i&&e.dirty?`block`:`none`}return{element:t,update:y,bodyElement:_}}function Z9(e){let t=document.createElement(`div`);t.className=Fte();let n=document.createElement(`textarea`);n.value=JSON.stringify(e.initialData,null,2);let r=document.createElement(`div`);r.className=Ite(),r.style.display=`none`;let i={...e.initialData};return n.addEventListener(`input`,()=>{try{let t=JSON.parse(n.value);i=t,r.style.display=`none`,e.onChange(t)}catch(e){r.style.display=`block`,r.textContent=`Invalid JSON: ${e.message}`}}),t.appendChild(n),t.appendChild(r),{element:t,setData(e){i={...e},n.value=JSON.stringify(e,null,2),r.style.display=`none`},getData(){return{...i}},destroy(){t.remove()}}}var Q9=class{constructor(e){this.currentEditor=null,this.container=null,this.store=new Y9(e);let t=q9({onSearchChange:e=>this.store.setCatalogSearch(e),onGroupByChange:e=>this.store.setCatalogGroupBy(e),onSelectPolicy:e=>this.handleSelectPolicy(e),onNewPolicy:e=>{this.store.addNewPolicy(e),this.mountEditorForSelection()},onDuplicatePolicy:e=>{this.store.duplicatePolicy(e),this.mountEditorForSelection()},onDeletePolicy:e=>{this.store.deletePolicy(e),this.store.getSelectedItem()||this.destroyCurrentEditor()}});this.editorShell=X9({onSave:()=>this.store.savePolicy(),onReset:()=>{this.store.resetDraft(),this.syncEditorFromStore()},onApply:()=>this.store.applyPolicy(),onDuplicate:()=>{let e=this.store.getSelectedItem();e&&(this.store.duplicatePolicy(e.id),this.mountEditorForSelection())},onRename:e=>this.store.renamePolicy(e)}),this.layout=P9({catalogPanel:t,editorShell:this.editorShell}),this.unsubscribe=this.store.subscribe(e=>{this.layout.update(e)}),this.layout.update(this.store.getState())}render(e){this.container=e,e.appendChild(this.layout.element)}destroy(){this.destroyCurrentEditor(),this.unsubscribe(),this.container&&this.layout.element.parentNode===this.container&&this.layout.element.remove(),this.container=null}getStore(){return this.store}handleSelectPolicy(e){this.store.selectPolicy(e),this.mountEditorForSelection()}mountEditorForSelection(){this.destroyCurrentEditor();let e=this.store.getSelectedItem();if(!e)return;let t=e.source===`builtin`,n={initialData:{...e.policyData},onChange:e=>{this.store.updateEditorDraft(e)},readonly:t};this.currentEditor=e.policyType===`scheduling`?Y5.createEditorInstance(n):e.policyType===`rankingPoints`?Q8.createEditorInstance(n):e.policyType===`seeding`?ite.createEditorInstance(n):e.policyType===`scoring`?H7.createEditorInstance(n):e.policyType===`participant`?mte.createEditorInstance(n):Z9(n),this.editorShell.bodyElement.innerHTML=``,this.editorShell.bodyElement.appendChild(this.currentEditor.element)}syncEditorFromStore(){let e=this.store.getState();this.currentEditor&&e.editorDraft&&this.currentEditor.setData(e.editorDraft)}destroyCurrentEditor(){this.currentEditor&&=(this.currentEditor.destroy(),null),this.editorShell.bodyElement.innerHTML=``}};function $9(e,t,n,r){e!==void 0&&e<0&&r.push({severity:`error`,path:t,message:n})}function tne(e,t){if(!e.defaultTimes)return;let n=e.defaultTimes.averageTimes;if(n)for(let e=0;e<n.length;e++)$9(n[e].minutes.default,`defaultTimes.averageTimes[${e}].minutes.default`,`Default average time must be non-negative`,t),$9(n[e].minutes.DOUBLES,`defaultTimes.averageTimes[${e}].minutes.DOUBLES`,`Doubles average time must be non-negative`,t);let r=e.defaultTimes.recoveryTimes;if(r)for(let e=0;e<r.length;e++)$9(r[e].minutes.default,`defaultTimes.recoveryTimes[${e}].minutes.default`,`Default recovery time must be non-negative`,t)}function nne(e,t){if(!e.defaultDailyLimits)return;let n=e.defaultDailyLimits;$9(n.SINGLES,`defaultDailyLimits.SINGLES`,`Singles daily limit must be non-negative`,t),$9(n.DOUBLES,`defaultDailyLimits.DOUBLES`,`Doubles daily limit must be non-negative`,t),$9(n.total,`defaultDailyLimits.total`,`Total daily limit must be non-negative`,t)}function rne(e){let t=[];return tne(e,t),nne(e,t),e.matchUpAverageTimes&&ine(e.matchUpAverageTimes,`matchUpAverageTimes`,`averageTimes`,t),e.matchUpRecoveryTimes&&ane(e.matchUpRecoveryTimes,`matchUpRecoveryTimes`,t),one(e,t),t}function ine(e,t,n,r){for(let i=0;i<e.length;i++){let a=e[i];a.matchUpFormatCodes.length||r.push({severity:`error`,path:`${t}[${i}].matchUpFormatCodes`,message:`At least one format code is required per format group`});let o=a[n];if(o)for(let e=0;e<o.length;e++)$9(o[e].minutes.default,`${t}[${i}].${n}[${e}].minutes.default`,`Time must be non-negative`,r),$9(o[e].minutes.DOUBLES,`${t}[${i}].${n}[${e}].minutes.DOUBLES`,`Doubles time must be non-negative`,r)}}function ane(e,t,n){for(let r=0;r<e.length;r++){let i=e[r];i.matchUpFormatCodes.length||n.push({severity:`error`,path:`${t}[${r}].matchUpFormatCodes`,message:`At least one format code is required per format group`});for(let e=0;e<i.recoveryTimes.length;e++)$9(i.recoveryTimes[e].minutes.default,`${t}[${r}].recoveryTimes[${e}].minutes.default`,`Recovery time must be non-negative`,n),$9(i.recoveryTimes[e].minutes.DOUBLES,`${t}[${r}].recoveryTimes[${e}].minutes.DOUBLES`,`Doubles recovery time must be non-negative`,n)}}function one(e,t){let n=(e,n)=>{if(!e)return;let r=new Map;for(let i=0;i<e.length;i++)for(let a of e[i].matchUpFormatCodes)r.has(a)?t.push({severity:`warning`,path:`${n}[${i}].matchUpFormatCodes`,message:`Format code "${a}" also appears in group ${r.get(a)}`}):r.set(a,i)};n(e.matchUpAverageTimes,`matchUpAverageTimes`),n(e.matchUpRecoveryTimes,`matchUpRecoveryTimes`)}function sne(e,t){let n=new Q9(e);return n.render(t),n}e.AvailabilityGrid=tQ,e.COMPETITIVENESS_BUCKETS=Vw,e.COMPETITIVENESS_COLORS=fR,e.COURT_SVG_RESOURCE_SUB_TYPE=Jy,e.CompositionEditorStore=n3,e.DEFAULT_COMPETITIVE_BANDS=uR,e.DEFAULT_COURT_CARD_CONFIG=bS,e.DEFAULT_COURT_LAYOUT_CONFIG=uC,e.DEFAULT_DRAW_CARD_CONFIG=aT,e.DEFAULT_EVENT_CARD_CONFIG=ZT,e.DEFAULT_SCHEDULE_CELL_CONFIG=N4,e.DEFAULT_TOURNAMENT_CARD_CONFIG=bb,e.DEFAULT_VENUE_CARD_CONFIG=Ax,e.DEFAULT_VENUE_LOCATOR_CONFIG=MC,e.DrawStateManager=iO,e.EVENT_CARD_LIGHT_MODE_THRESHOLD=QT,e.HORIZON_DIRECTION=HV,e.HORIZON_ORDER=RH,e.HORIZON_SOURCE=VV,e.HORIZON_VARIANT=zH,e.INNER_QUANTILES=RV,e.InlineScoringManager=Kl,e.MATCH_FORMATS=KD,e.MIN_HORIZON_DOMAIN=UV,e.NEUTRAL_SEGMENT_COLOR=pR,e.POLICY_TYPE_GROUPS=W9,e.POLICY_TYPE_METADATA=H9,e.PRESSURE_UNSUPPORTED=SB,e.PolicyCatalogControl=Q9,e.PolicyCatalogStore=Y9,e.ProfileStore=EG,e.RELATED_HIGHLIGHT=q2,e.SchedulePageControl=s4,e.SchedulePageStore=U2,e.SchedulingEditorControl=Y5,e.SchedulingEditorStore=r5,e.SchedulingProfileControl=zG,e.TopologyBuilderControl=l0,e.TopologyStore=e$,e.activateScheduleCellTypeAhead=e3,e.aggregateCompetitiveness=Ww,e.allCatalogGroupsCollapsed=V2,e.applyDropCommit=gG,e.applyRelatedHighlight=Y2,e.badmintonCourt=Ky,e.barButton=mU,e.baseballDiamond=Uy,e.basketballCourt=Hy,e.blockLevels=EV,e.buildActiveStripPanel=A4,e.buildCardSkeleton=yb,e.buildCompetitivenessBar=qw,e.buildCompetitivenessDonut=rT,e.buildCourtCard=BS,e.buildCourtGridSlot=o4,e.buildCourtLayout=DC,e.buildCourtSkeletonCard=nC,e.buildDateStrip=LG,e.buildDrawCard=TT,e.buildDrawOrderGame=oU,e.buildDrawSkeletonCard=WT,e.buildEdgeEditor=a1,e.buildEditorShell=X9,e.buildEventCard=TE,e.buildEventSkeletonCard=UE,e.buildHiveIDLogin=RD,e.buildHorizonRibbonSvg=lH,e.buildHorizonRowSvg=SH,e.buildHorizonRows=QV,e.buildInteractiveScoringShell=L6,e.buildIssueIndex=mG,e.buildIssuesPanel=QW,e.buildJsonEditor=Z9,e.buildLadderChart=Gz,e.buildMatchUpCard=Z2,e.buildMatchUpCatalog=i4,e.buildNodeEditor=K$,e.buildPathDifficultyBar=_V,e.buildPolicyCatalogLayout=P9,e.buildPolicyCatalogPanel=q9,e.buildPressureChart=xB,e.buildPressureHorizon=KH,e.buildPressureSeries=iV,e.buildPressureSmallMultiples=uV,e.buildPressureTable=xV,e.buildRatingDistributionChart=Rz,e.buildRoundCard=MG,e.buildRoundCatalog=qW,e.buildScheduleDateStrip=a4,e.buildScheduleGridCell=P4,e.buildScheduleInspectorPanel=T2,e.buildScheduleIssueIndex=W2,e.buildScheduleIssuesPanel=K2,e.buildSchedulePageLayout=b2,e.buildSchedulingEditorPanel=J5,e.buildSchedulingProfileLayout=AW,e.buildSegmentedBar=iT,e.buildSetScore=El,e.buildSkeletonCard=dx,e.buildStructureCard=VQ,e.buildStructureMinimap=Ri,e.buildTeamCard=Rw,e.buildToolbar=M1,e.buildTopologyBuilderLayout=N1,e.buildTopologyCanvas=S$,e.buildTournamentCard=Kb,e.buildVenueBoard=PG,e.buildVenueCard=Zx,e.buildVenueLocator=dw,e.buildVenueSkeletonCard=mS,e.burstChart=GR,e.byPathDifficulty=aV,e.cModal=se,e.calculateComplement=Sl,e.cellCardConfig=AC,e.clearRelatedHighlight=J2,e.competitivenessColor=xR,e.completeMagicLink=zD,e.compositions=ki,e.computeActiveStrip=_4,e.computeActiveStripCell=g4,e.computeBaseRoundByEvent=j2,e.computeReschedulePlacements=w4,e.consumeMagicLink=OD,e.controlBar=MU,e.courthiveComponentsVersion=GD,e.createAvailabilityGrid=nQ,e.createCardPopoverManager=jW,e.createCompositionEditor=r6,e.createCourtSvg=tb,e.createDrawOrderGame=MV,e.createInlineScoringFooter=F6,e.createNotesEditor=Py,e.createPolicyCatalog=sne,e.createPrintCompositionEditor=l6,e.createSchedulePage=t3,e.createSchedulingEditor=X5,e.createSchedulingProfile=BG,e.describeCourt=uw,e.destroyTipster=Ry,e.destroyVenueLocator=fw,e.drawer=xee,e.dropDownButton=lU,e.emptySchedulingPolicy=t5,e.engineToMatchUp=Ul,e.escapeHtml=Ds,e.extractCourtSvgSport=gb,e.extractImageURL=hb,e.filterCatalog=VW,e.filterMatchUpCatalog=A2,e.filterPolicyCatalog=G9,e.findIssuesForLocator=SG,e.formatAddress=rb,e.formatCodeLabel=$8,e.formatDateRange=pb,e.formatFeeRange=Sx,e.formatVenueLocation=ib,e.fromFactoryDrawData=iz,e.fromLegacyDraw=sz,e.generatePreviewMatchUps=_Q,e.getActualPressure=rV,e.getAgeCategoryModal=Ts,e.getCategoryModal=hee,e.getCompetitivenessBand=vR,e.getCompetitivenessFromScoreString=yR,e.getFlightProfileModal=rc,e.getGenerateTeamsModal=lee,e.getMatchUpFormatModal=Ko,e.getMatchWinner=xl,e.getMaxAllowedScore=gl,e.getMockParticipantsModal=ta,e.getPlannedRoundKeys=UW,e.getPolicyTypeMeta=U9,e.getPortPosition=HQ,e.getProjectedPressure=$B,e.getRoundAt=xG,e.getScoringConfig=il,e.getSetFormatForIndex=pl,e.getSetWinner=vl,e.getVenueRounds=bG,e.groupCatalog=HW,e.groupCourts=TC,e.groupMatchUpCatalog=z2,e.groupPolicyCatalog=K9,e.hasVenueGeo=cw,e.hockeyRink=Wy,e.initDrawer=See,e.isCompletedStatus=k2,e.isExistingUserConflict=kD,e.isMatchComplete=bl,e.isScorable=Jl,e.isSetComplete=_l,e.isSetTiebreakOnly=ml,e.isSetTimed=hl,e.mapCourtToCardData=lC,e.mapDrawDefinitionToCardData=XT,e.mapEventToCardData=oD,e.mapMatchUpToCellData=$4,e.mapTournamentToCardData=Ox,e.mapVenueToCardData=yS,e.mapVenueToLocatorData=Aw,e.matchUpLabel=x2,e.matchUpSearchKey=w2,e.maxDisplacementFor=AV,e.maxSeverity=wG,e.memberNamesLabel=C2,e.mergeCourtCardConfig=xS,e.mergeCourtLayoutConfig=dC,e.mergeDrawCardConfig=oT,e.mergeEventCardConfig=$T,e.mergeTournamentCardConfig=xb,e.mergeVenueCardConfig=jx,e.mergeVenueLocatorConfig=NC,e.moveSlot=PV,e.notesToolbar=gy,e.openCompositionEditorModal=ua,e.openScheduleCellConfigModal=fa,e.openScoreEntryDialog=nh,e.opponentSpread=BV,e.padelCourt=qy,e.participantLabel=S2,e.pickProgressionStructure=rz,e.pickleballCourt=Gy,e.ratingToElo=NB,e.renderButtons=qD,e.renderContainer=yi,e.renderField=vn,e.renderForm=Ui,e.renderInlineMatchUp=Zl,e.renderMatchUp=hi,e.renderMenu=Fy,e.renderOptions=_n,e.renderParticipant=Ar,e.renderParticipantInput=wn,e.renderRound=gi,e.renderRoundHeader=Mr,e.renderSchematicMatchUp=Bi,e.renderSchematicRound=Vi,e.renderSchematicStructure=Hi,e.renderScorecard=T6,e.renderStructure=_i,e.renderTeamVsHeader=E6,e.requestMagicLink=DD,e.resetScoringConfig=ol,e.reshuffleDrawOrder=LV,e.resolveCourtSport=$y,e.resolveEventStatus=KE,e.resolveHorizonDomain=KV,e.resolveParticipantRating=IB,e.resolvePublishedComposition=ji,e.resolveTournamentStatus=gx,e.revealDrawOrder=IV,e.scoreDrawOrder=jV,e.scoringModal=xf,e.selectItem=dU,e.setScoringConfig=al,e.settingOf=CC,e.sharedYDomain=cV,e.shouldApplySmartComplement=Cl,e.shouldCreateNextSet=Tl,e.shouldShowTiebreak=wl,e.showCourtAvailabilityModal=QZ,e.shuffleDeranged=TV,e.shuffleWithSeed=CV,e.sideParticipantName=ql,e.signup=TD,e.sortVenueCourts=lw,e.sportFromMatchUpFormat=Qy,e.standardTemplates=$1,e.summarizeCourts=EC,e.surfaceOf=wC,e.swapSlots=FV,e.syncClearVisibility=cO,e.tennisCourt=Vy,e.tipster=zy,e.toEngineOutcome=om,e.toggleOverlay=SU,e.topologyToDrawOptions=w0,e.totalBuckets=Gw,e.updateHeadingSelect=vy,e.updateTieScore=D6,e.updateToolbarState=_y,e.validateProfile=nG,e.validateSchedulingPolicy=rne,e.validateTopology=p1,e.validator=mn,Object.defineProperty(e,"validators",{enumerable:!0,get:function(){return nO}}),e.verifyExisting=ED,e.visibleCatalogGroups=B2,e.weightedQuantile=zV,e.winProbability=zB,e.wrapSearchWithClear=sO});
|