courthive-components 4.3.0 → 4.4.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.
@@ -211,7 +211,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
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&&Mm(t,r);return n&&e.push(n),e},[]);return Hp(e)?s[0]:s}Nm.defaultProps=gm,Nm.setDefaultProps=vm,Nm.currentInput=$p,Object.assign({},Kd,{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)}}),Nm.setDefaultProps({render:Om});var Pm=`#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(`.`),Fm=`notes-toolbar-recent-colors`,Im=8;function Lm(){try{return JSON.parse(localStorage.getItem(Fm)||`[]`)}catch{return[]}}function Rm(e){let t=Lm().filter(t=>t!==e);t.unshift(e),t.length>Im&&(t=t.slice(0,Im)),localStorage.setItem(Fm,JSON.stringify(t))}function zm(e={}){let t=document.createElement(`div`);return t.className=`notes-toolbar`,t.appendChild(Wm(e)),t.appendChild(Gm(e)),t.appendChild(Km(e)),t.appendChild(Xm(e)),t.appendChild($m(e)),t.appendChild(eh(e)),t.appendChild(nh(e)),t}function Bm(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 Vm(e,t){let n=e.querySelector(`[data-action="heading"]`);n&&(n.value=t===!1?`0`:String(t))}function Hm(){let e=document.createElement(`div`);return e.className=`notes-toolbar-group`,e}function Um(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 Wm(e){let t=Hm(),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 Gm(e){let t=Hm();return t.appendChild(Um(`bold`,`<b>B</b>`,`Bold`,e.onBold)),t.appendChild(Um(`italic`,`<i>I</i>`,`Italic`,e.onItalic)),t.appendChild(Um(`underline`,`<u>U</u>`,`Underline`,e.onUnderline)),t.appendChild(Um(`strike`,`<s>S</s>`,`Strikethrough`,e.onStrike)),t}function Km(e){let t=Hm();return t.appendChild(qm(`color`,`A`,`Text color`,`#000000`,t=>{Rm(t),e.onColor?.(t)})),t.appendChild(qm(`background`,`A`,`Background color`,`#ffff00`,t=>{Rm(t),e.onBackground?.(t)})),t}function qm(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=Jm(r,e=>{s.style.backgroundColor=e,i(e),c?.destroy(),c=void 0});c=Nm(a,{content:e,theme:`light-border`,trigger:`manual`,interactive:!0,placement:`bottom-start`,onHidden:()=>{c?.destroy(),c=void 0}}),c.show()}),a}function Jm(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 Pm)r.appendChild(Ym(n,n===e,t));n.appendChild(r);let i=Lm();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(Ym(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 Ym(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 Xm(e){let t=Hm();return t.appendChild(Um(`orderedList`,Zm(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(Um(`bulletList`,Zm(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 Zm(e,t,n){return`<svg width="${e}" height="${t}" viewBox="0 0 ${e} ${t}" xmlns="http://www.w3.org/2000/svg">${n}</svg>`}var Qm={alignLeft:Zm(16,16,`<path d="M1 2h14v2H1zm0 4h9v2H1zm0 4h14v2H1zm0 4h9v2H1z" fill="currentColor"/>`),alignCenter:Zm(16,16,`<path d="M1 2h14v2H1zm3.5 4h7v2h-7zM1 10h14v2H1zm3.5 4h7v2h-7z" fill="currentColor"/>`),alignRight:Zm(16,16,`<path d="M1 2h14v2H1zm6 4h8v2H7zM1 10h14v2H1zm6 4h8v2H7z" fill="currentColor"/>`),alignJustify:Zm(16,16,`<path d="M1 2h14v2H1zm0 4h14v2H1zm0 4h14v2H1zm0 4h14v2H1z" fill="currentColor"/>`)};function $m(e){let t=Hm();return t.appendChild(Um(`alignLeft`,Qm.alignLeft,`Align left`,()=>e.onAlign?.(`left`))),t.appendChild(Um(`alignCenter`,Qm.alignCenter,`Align center`,()=>e.onAlign?.(`center`))),t.appendChild(Um(`alignRight`,Qm.alignRight,`Align right`,()=>e.onAlign?.(`right`))),t.appendChild(Um(`alignJustify`,Qm.alignJustify,`Justify`,()=>e.onAlign?.(`justify`))),t}function eh(e){let t=Hm();t.appendChild(Um(`blockquote`,`“`,`Blockquote`,e.onBlockquote)),t.appendChild(Um(`codeBlock`,`</>`,`Code block`,e.onCodeBlock));let n=Um(`link`,`⇗`,`Insert link`);th(n,`Enter URL`,`https://`,t=>e.onLink?.(t)),t.appendChild(n);let r=Um(`video`,`▷`,`Insert video`);return th(r,`YouTube URL`,`https://youtube.com/...`,t=>e.onVideo?.(t)),t.appendChild(r),t}function th(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=Nm(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 nh(e){let t=Hm();return t.appendChild(Um(`clearFormatting`,`⊘`,`Clear formatting`,e.onClearFormatting)),t}function rh(e={}){let t=document.createElement(`div`);t.className=`notes-editor-content`;let l={toolbar:void 0,editorElement:t,editor:void 0,getHtml:()=>l.editor&&!l.editor.isEmpty?l.editor.getHTML():``,isEmpty:()=>!l.editor||l.editor.isEmpty,destroy:()=>{l.editor?.destroy(),l.editor=void 0}};l.toolbar=zm({onHeading:e=>{l.editor&&(e===!1?l.editor.chain().focus().setParagraph().run():l.editor.chain().focus().toggleHeading({level:e}).run())},onBold:()=>l.editor?.chain().focus().toggleBold().run(),onItalic:()=>l.editor?.chain().focus().toggleItalic().run(),onUnderline:()=>l.editor?.chain().focus().toggleUnderline().run(),onStrike:()=>l.editor?.chain().focus().toggleStrike().run(),onColor:e=>l.editor?.chain().focus().setColor(e).run(),onBackground:e=>l.editor?.chain().focus().setHighlight({color:e}).run(),onBulletList:()=>l.editor?.chain().focus().toggleBulletList().run(),onOrderedList:()=>l.editor?.chain().focus().toggleOrderedList().run(),onAlign:e=>l.editor?.chain().focus().setTextAlign(e).run(),onBlockquote:()=>l.editor?.chain().focus().toggleBlockquote().run(),onCodeBlock:()=>l.editor?.chain().focus().toggleCodeBlock().run(),onLink:e=>l.editor?.chain().focus().setLink({href:e}).run(),onVideo:e=>l.editor?.commands.setYoutubeVideo({src:e}),onClearFormatting:()=>l.editor?.chain().focus().clearNodes().unsetAllMarks().run()});let u=()=>{if(l.editor){Bm(l.toolbar,{bold:l.editor.isActive(`bold`),italic:l.editor.isActive(`italic`),underline:l.editor.isActive(`underline`),strike:l.editor.isActive(`strike`),orderedList:l.editor.isActive(`orderedList`),bulletList:l.editor.isActive(`bulletList`),blockquote:l.editor.isActive(`blockquote`),codeBlock:l.editor.isActive(`codeBlock`),alignLeft:l.editor.isActive({textAlign:`left`}),alignCenter:l.editor.isActive({textAlign:`center`}),alignRight:l.editor.isActive({textAlign:`right`}),alignJustify:l.editor.isActive({textAlign:`justify`})});for(let e=1;e<=6;e++)if(l.editor.isActive(`heading`,{level:e})){Vm(l.toolbar,e);return}Vm(l.toolbar,!1)}};return requestAnimationFrame(()=>{l.editor=new r.Editor({element:t,extensions:[o.default,i.TextStyle,n.Color,a.default.configure({multicolor:!0}),s.default.configure({types:[`heading`,`paragraph`]}),c.default.configure({inline:!1})],content:e.initialHtml||``,onSelectionUpdate:u,onTransaction:u})}),l}function ih(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 ah(e){return typeof e==`function`}var oh;function sh(e){oh&&=(oh?.destroy(!0),void 0),e?.remove&&e.remove()}function ch(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;sh();let l=document.createElement(`div`),u;return s||=i?.evt?.target,s&&(oh=Nm(s,{content:()=>{c=c?.filter(e=>!e.hide&&!e.disabled).map(e=>({...e,onClick:()=>{sh(l),ah(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?oh.setContent(`IMPLEMENT SUB MENU`):ah(e.onClick)?(sh(l),e.onClick()):ah(a)&&a&&(sh(l),a(typeof e==`object`?{...e,coords:i}:e))}}));let e=[{text:t,items:c},...r];return u=ih(l,e).focusElement,l},theme:`light-border`,trigger:`click`,onShown:()=>{u&&setTimeout(()=>u?.focus(),0)},...o}),oh.show(),oh.setProps({interactive:!0})),oh}var J=`court-line`;function Y(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 lh(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 uh(e){let t=lh(`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(Y(`path`,{d:e,class:J}));return t}function dh(e){let t=lh(`0 0 500 470`,e),n=[Y(`rect`,{x:`0`,y:`0`,width:`500`,height:`470`,class:J}),Y(`circle`,{cx:`250`,cy:`470`,r:`60`,class:J}),Y(`line`,{x1:`0`,y1:`470`,x2:`500`,y2:`470`,class:J}),Y(`rect`,{x:`170`,y:`0`,width:`160`,height:`190`,class:J}),Y(`circle`,{cx:`250`,cy:`190`,r:`60`,class:J}),Y(`line`,{x1:`220`,y1:`40`,x2:`280`,y2:`40`,class:J}),Y(`circle`,{cx:`250`,cy:`52`,r:`12`,class:J}),Y(`path`,{d:`M 30 0 L 30 90 A 220 220 0 0 0 470 90 L 470 0`,class:J})];for(let e of n)t.appendChild(e);return t}function fh(e){let t=lh(`0 0 500 440`,e),n=[Y(`path`,{d:`M 20 170 A 350 400 0 0 1 480 170`,class:J}),Y(`line`,{x1:`250`,y1:`400`,x2:`20`,y2:`170`,class:J}),Y(`line`,{x1:`250`,y1:`400`,x2:`480`,y2:`170`,class:J}),Y(`path`,{d:`M 250 400 L 314 336 L 250 273 L 186 336 Z`,class:J}),Y(`path`,{d:`M 340 355 A 100 100 0 0 1 160 355`,class:J}),Y(`line`,{x1:`340`,y1:`355`,x2:`265`,y2:`405`,class:J}),Y(`line`,{x1:`160`,y1:`355`,x2:`235`,y2:`405`,class:J}),Y(`path`,{d:`M 235 405 A 18 18 0 0 1 265 405`,class:J}),Y(`circle`,{cx:`250`,cy:`340`,r:`9`,class:J}),Y(`line`,{x1:`247`,y1:`339`,x2:`253`,y2:`339`,class:J}),Y(`path`,{d:`M 244 398 L 244 404 L 250 408 L 256 404 L 256 398 Z`,class:J}),Y(`rect`,{x:`310`,y:`332`,width:`8`,height:`8`,transform:`rotate(45 314 336)`,class:J}),Y(`rect`,{x:`246`,y:`269`,width:`8`,height:`8`,transform:`rotate(45 250 273)`,class:J}),Y(`rect`,{x:`182`,y:`332`,width:`8`,height:`8`,transform:`rotate(45 186 336)`,class:J}),Y(`rect`,{x:`230`,y:`393`,width:`8`,height:`18`,class:J}),Y(`rect`,{x:`262`,y:`393`,width:`8`,height:`18`,class:J})];for(let e of n)t.appendChild(e);return t}function ph(e){let t=lh(`0 0 850 2000`,e),n=[Y(`rect`,{x:`0`,y:`0`,width:`850`,height:`2000`,rx:`280`,ry:`280`,class:J}),Y(`line`,{x1:`0`,y1:`1000`,x2:`850`,y2:`1000`,class:J}),Y(`circle`,{cx:`425`,cy:`1000`,r:`60`,class:J}),Y(`line`,{x1:`0`,y1:`650`,x2:`850`,y2:`650`,class:J}),Y(`line`,{x1:`0`,y1:`1350`,x2:`850`,y2:`1350`,class:J}),Y(`line`,{x1:`140`,y1:`300`,x2:`710`,y2:`300`,class:J}),Y(`line`,{x1:`140`,y1:`1700`,x2:`710`,y2:`1700`,class:J}),Y(`path`,{d:`M 395 300 A 40 40 0 0 1 455 300`,class:J}),Y(`path`,{d:`M 395 1700 A 40 40 0 0 0 455 1700`,class:J}),Y(`circle`,{cx:`270`,cy:`650`,r:`50`,class:J}),Y(`circle`,{cx:`580`,cy:`650`,r:`50`,class:J}),Y(`circle`,{cx:`270`,cy:`1350`,r:`50`,class:J}),Y(`circle`,{cx:`580`,cy:`1350`,r:`50`,class:J})];for(let e of n)t.appendChild(e);return t}function mh(e){let t=lh(`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(Y(`path`,{d:e,class:J}));return t}function hh(e){let t=lh(`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(Y(`path`,{d:e,class:J}));return t}function gh(e){let t=lh(`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(Y(`path`,{d:e,class:J}));return t}var _h=`COURT_SVG`,vh={tennis:uh,basketball:dh,baseball:fh,hockey:ph,pickleball:mh,badminton:hh,padel:gh},yh={TENNIS:`tennis`,PADEL:`padel`,PICKLEBALL:`pickleball`,BADMINTON:`badminton`},bh={HAL:`basketball`,INN:`baseball`,PER:`hockey`};function xh(e){if(e){for(let[t,n]of Object.entries(bh))if(e.startsWith(t))return n;if(e.startsWith(`SET`)||e.startsWith(`T`))return e.includes(`@RALLY`)?`pickleball`:`tennis`}}function Sh(e){let t=e?.competitionFormat?.sport;return t&&yh[t]?yh[t]:xh(e?.matchUpFormat)}function Ch(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 wh(e,t=``){let n=e?vh[e]:void 0;if(n)return Ch(n(t?`court--${e} ${t}`:`court--${e}`))}function Th(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 Eh(e){if(!e)return;let t=Th(e);return t.length?t:void 0}function Dh(e){let t=e?.find(Boolean);if(!t)return;let n=t.addresses?.find(Boolean);return n?Eh(n)??t.venueName:t.venueName}var Oh=/^(\d{4})-(\d{2})-(\d{2})/,kh=864e5;function Ah(e){if(!e)return null;let t=Oh.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 jh(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 Mh(e,t){if(!t)return new Date(e.year,e.month-1,e.day+1);let n=jh(e,t),r=new Date(n.getTime()+kh),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 jh({year:a(`year`),month:a(`month`),day:a(`day`)},t)}function Nh(e){if(!e)return null;let t=Ah(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 Ph(e){return e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`})}function Fh(e){return e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`,year:`numeric`})}function Ih(e,t){if(!e&&!t)return;let n=Nh(e),r=Nh(t),i=!!n&&!Number.isNaN(n.getTime()),a=!!r&&!Number.isNaN(r.getTime());if(!(!i&&!a))return i&&a&&n.getTime()===r.getTime()?Fh(n):i&&a?n.getFullYear()===r.getFullYear()?`${Ph(n)} – ${Ph(r)}, ${r.getFullYear()}`:`${Fh(n)} – ${Fh(r)}`:Fh(i?n:r)}function Lh(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 Rh=`URL`;function zh(e,t){if(!Array.isArray(e))return;let n=e.find(e=>e?.name===t&&e?.resourceType===Rh);return n?.url??n?.identifier}function Bh(e,t){if(Array.isArray(e))return e.find(e=>e?.resourceSubType===`COURT_SVG`&&(!t||e?.name===t))?.identifier}function Vh(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 Hh(...e){for(let t of e){let e=Vh(t);if(e!==void 0)return e}}function Uh(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 Wh={showImage:!0,cornerBadges:[`status`],body:[`title`,`tier`,`location`,`dateRange`],footer:[`feeBadge`,`playerCount`]};function Gh(e){return e?{showImage:e.showImage??Wh.showImage,cornerBadges:e.cornerBadges??Wh.cornerBadges,body:e.body??Wh.body,footer:e.footer??Wh.footer}:Wh}var Kh=()=>`chc-tc-card`,qh=()=>`chc-tc-card--clickable`,Jh=()=>`chc-tc-card--offline`,Yh=()=>`chc-tc-image`,Xh=()=>`chc-tc-image-img`,Zh=()=>`chc-tc-image-svg`,Qh=()=>`chc-tc-image-placeholder`,$h=()=>`chc-tc-corner-badges`,eg=()=>`chc-tc-status-pill`,tg=()=>`chc-tc-offline-badge`,ng=()=>`chc-tc-body`,rg=()=>`chc-tc-title`,ig=()=>`chc-tc-location`,ag=()=>`chc-tc-date-range`,og=()=>`chc-tc-organizer`,sg=()=>`chc-tc-updated-at`,cg=()=>`chc-tc-footer`,lg=()=>`chc-tc-fee-badge`,ug=()=>`chc-tc-player-count`,dg=()=>`chc-tc-event-count`,fg=()=>`chc-tc-tier-badge`,pg=()=>`chc-tc-card chc-tc-skeleton`,mg=()=>`chc-tc-skeleton-line`,hg=()=>`chc-tc-skeleton-block`;function gg(e,t,n){let r=Gh(t),i=document.createElement(`div`);return i.className=Kh(),i.dataset.tournamentId=e.tournamentId,e.offline&&i.classList.add(Jh()),n?.onClick&&(i.classList.add(qh()),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(_g(e,r)),r.body.length&&i.appendChild(Sg(e,r)),r.footer.length&&i.appendChild(Ag(e,r)),i}function _g(e,t){let n=document.createElement(`div`);if(n.className=Yh(),e.tournamentImageURL){let t=document.createElement(`img`);t.className=Xh(),t.src=e.tournamentImageURL,t.alt=e.tournamentName||``,t.loading=`lazy`,t.addEventListener(`error`,()=>yg(n,e)),n.appendChild(t)}else vg(n,e);if(t.cornerBadges.length){let r=bg(e,t.cornerBadges);r&&n.appendChild(r)}return n}function vg(e,t){let n=wh(t.courtSvgSport,Zh());if(n){e.appendChild(n);return}let r=document.createElement(`div`);r.className=Qh(),e.appendChild(r)}function yg(e,t){e.querySelector(`.${Xh()}`)?.remove(),vg(e,t)}function bg(e,t){let n=[];for(let r of t){let t=xg(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=$h();for(let e of n)r.appendChild(e);return r}function xg(e,t){if(e===`status`){if(!t.status)return null;let e=document.createElement(`div`);return e.className=eg(),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=tg(),e.textContent=`Offline`,e}return null}function Sg(e,t){let n=document.createElement(`div`);n.className=ng();for(let r of t.body){let t=Cg(r,e);t&&n.appendChild(t)}return n}function Cg(e,t){switch(e){case`title`:return wg(t);case`tier`:return Tg(t);case`location`:return Eg(t);case`dateRange`:return Dg(t);case`organizerName`:return Og(t);case`updatedAt`:return kg(t);default:return null}}function wg(e){if(!e.tournamentName)return null;let t=document.createElement(`div`);return t.className=rg(),t.textContent=e.tournamentName,t.title=e.tournamentName,t}function Tg(e){let t=e.tournamentTier?.value;if(!t)return null;let n=document.createElement(`div`);return n.className=fg(),n.textContent=t,n.title=e.tournamentTier?.system?`${e.tournamentTier.system}: ${t}`:t,n}function Eg(e){if(!e.location)return null;let t=document.createElement(`div`);return t.className=ig(),t.textContent=e.location,t.title=e.location,t}function Dg(e){if(!e.dateRangeFormatted)return null;let t=document.createElement(`div`);return t.className=ag(),t.textContent=e.dateRangeFormatted,t}function Og(e){if(!e.organizerName)return null;let t=document.createElement(`div`);return t.className=og(),t.textContent=e.organizerName,t}function kg(e){if(!e.updatedAt)return null;let t=document.createElement(`div`);t.className=sg();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 Ag(e,t){let n=document.createElement(`div`);n.className=cg();for(let r of t.footer){let t=jg(r,e);t&&n.appendChild(t)}return n}function jg(e,t){switch(e){case`feeBadge`:return Mg(t);case`playerCount`:return Ng(t);case`eventCount`:return Pg(t);default:return null}}function Mg(e){if(!e.feeFormatted)return null;let t=document.createElement(`div`);return t.className=lg(),t.textContent=e.feeFormatted,t}function Ng(e){if(typeof e.participantCount!=`number`)return null;let t=document.createElement(`div`);return t.className=ug(),t.textContent=`${e.participantCount} ${e.participantCount===1?`player`:`players`}`,t}function Pg(e){if(typeof e.eventCount!=`number`)return null;let t=document.createElement(`div`);return t.className=dg(),t.textContent=`${e.eventCount} ${e.eventCount===1?`event`:`events`}`,t}function Fg(e){let t=Gh(e);return Uh({showImage:t.showImage!==!1,bodyLines:t.body.length,showFooter:t.footer.length>0,cardClass:pg(),imageClass:Yh(),bodyClass:ng(),footerClass:cg(),blockClass:hg(),lineClass:mg()})}var Ig=6048e5;function Lg(e){if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t}function Rg(e,t,n){return!t||!n?!1:t.getTime()<=e.getTime()&&e.getTime()<n.getTime()}function zg(e){return`Opens ${e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`})}`}function Bg(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=Ah(e.endDate),a=i?Mh(i,r):null;if(n===`COMPLETED`||a&&t.getTime()>=a.getTime())return{kind:`completed`,label:`Completed`};let o=Ah(e.startDate);if(Rg(t,o?jh(o,r):null,a))return{kind:`live`,label:`Live`};let s=Lg(e.entriesClose);if(s){let e=s.getTime()-t.getTime();if(e>0&&e<=Ig)return{kind:`closing-soon`,label:`Closing Soon`}}let c=Lg(e.entriesOpen);return c&&c.getTime()>t.getTime()?{kind:`registration-opens`,label:zg(c)}:null}var Vg=`–`,Hg={JPY:0,KRW:0,VND:0,CLP:0,ISK:0,KWD:3,BHD:3,OMR:3,JOD:3,TND:3};function Ug({amount:e,currencyCode:t,unit:n}){return n===`MAJOR`?e:e/10**(Hg[t]??2)}function Wg(e,t){try{return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t}).format(e)}catch{return`${e.toFixed(2)} ${t}`}}function Gg(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 Kg(e){if(!e?.length)return null;let t=Gg(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(Ug).sort((e,t)=>e-t),s=o[0],c=o.at(-1)??s;return r.length>1?`From ${a} ${Wg(s,a)}`:s===c?`${a} ${Wg(s,a)}`:`${a} ${Wg(s,a)} ${Vg} ${Wg(c,a)}`}var qg=`tournamentImage`;function Jg(e){let t=e?.registrationProfile?.entryFees;return Array.isArray(t)?t.filter(e=>e&&typeof e.amount==`number`):[]}function Yg(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 Xg(e){let t=e?.timeItems;if(Array.isArray(t))return t.find(e=>e?.itemType===`TMX`)?.itemValue?.offline}function Zg(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?Bg({tournamentStatus:e?.tournamentStatus,startDate:e?.startDate,endDate:e?.endDate,entriesOpen:e?.registrationProfile?.entriesOpen,entriesClose:e?.registrationProfile?.entriesClose,timeZone:e?.localTimeZone||e?.timeZone},t?.now):t.statusOverride,s=e?.tournamentImageURL??zh(n,qg),c=e?.courtSvgSport??Bh(n);return{tournamentId:e?.tournamentId??``,tournamentName:e?.tournamentName??``,startDate:e?.startDate,endDate:e?.endDate,dateRangeFormatted:Ih(e?.startDate,e?.endDate),location:Dh(r),tournamentImageURL:s,courtSvgSport:c,participantCount:Yg(e,i),eventCount:a.length||void 0,organizerName:e?.tournamentOrganizers?.find?.(Boolean)?.organizerName,status:o,feeFormatted:Kg(Jg(e)),updatedAt:e?.updatedAt,offline:Xg(e),tournamentTier:Qg(e)}}function Qg(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 $g={showImage:!0,showMap:!0,cornerBadges:[`primaryBadge`],body:[`title`,`address`,`courtBreakdown`],footer:[`amenityRow`]};function e_(e){return e?{showImage:e.showImage??$g.showImage,showMap:e.showMap??$g.showMap,cornerBadges:e.cornerBadges??$g.cornerBadges,body:e.body??$g.body,footer:e.footer??$g.footer}:$g}var t_=()=>`chc-vc-card`,n_=()=>`chc-vc-card--clickable`,r_=()=>`chc-vc-image`,i_=()=>`chc-vc-image-img`,a_=()=>`chc-vc-image-svg`,o_=()=>`chc-vc-image-map`,s_=()=>`chc-vc-image-placeholder`,c_=()=>`chc-vc-corner-badges`,l_=()=>`chc-vc-primary-badge`,u_=()=>`chc-vc-body`,d_=()=>`chc-vc-title`,f_=()=>`chc-vc-address`,p_=()=>`chc-vc-court-breakdown`,m_=()=>`chc-vc-footer`,h_=()=>`chc-vc-amenity-row`,g_=()=>`chc-vc-amenity`,__=()=>`chc-vc-card chc-vc-skeleton`,v_=()=>`chc-vc-skeleton-line`,y_=()=>`chc-vc-skeleton-block`;function b_(e,t,n){let r=e_(t),i=document.createElement(`div`);i.className=t_(),i.dataset.venueId=e.venueId;let a=null;r.showImage!==!1&&(a=w_(e,r,()=>f()),i.appendChild(a));let o=r.body.length?M_(e,r):null;o&&i.appendChild(o);let s=r.footer.length?I_(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(n_()),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(n_()),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 x_(e){return typeof e.latitude==`number`&&typeof e.longitude==`number`}function S_(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=o_(),a.src=i,a.loading=`lazy`,a.title=`Map of ${e.venueName}`,a}function C_(e,t){let n=wh(t.courtSvgSport,a_());if(n){e.appendChild(n);return}let r=document.createElement(`div`);r.className=s_(),e.appendChild(r)}function w_(e,t,n){let r=document.createElement(`div`);if(r.className=r_(),e.venueImageURL){let i=document.createElement(`img`);i.className=i_(),i.src=e.venueImageURL,i.alt=e.venueName||``,i.loading=`lazy`,i.addEventListener(`error`,()=>{i.remove(),t.showMap!==!1&&x_(e)?r.appendChild(S_(e)):C_(r,e),n?.()}),r.appendChild(i)}else t.showMap!==!1&&x_(e)?r.appendChild(S_(e)):C_(r,e);if(t.cornerBadges.length){let n=E_(e,t.cornerBadges);n&&r.appendChild(n)}return r}function T_(e,t){if(e===`primaryBadge`){if(!t.isPrimary)return null;let e=document.createElement(`div`);return e.className=l_(),e.textContent=`Primary`,e}return null}function E_(e,t){let n=[];for(let r of t){let t=T_(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=c_();for(let e of n)r.appendChild(e);return r}function D_(e){if(!e.venueName)return null;let t=document.createElement(`div`);return t.className=d_(),t.textContent=e.venueName,t.title=e.notes?`${e.venueName}\n${e.notes}`:e.venueName,t}function O_(e){if(!e.addressFormatted)return null;let t=document.createElement(`div`);return t.className=f_(),t.textContent=e.addressFormatted,t.title=e.addressFormatted,t}function k_(e){if(!e.courtBreakdown)return null;let t=document.createElement(`div`);return t.className=p_(),t.textContent=e.courtBreakdown,t}function A_(e){if(!e.venueAbbreviation)return null;let t=document.createElement(`div`);return t.className=p_(),t.textContent=e.venueAbbreviation,t}function j_(e,t){return e===`title`?D_(t):e===`address`?O_(t):e===`courtBreakdown`?k_(t):e===`venueAbbreviation`?A_(t):null}function M_(e,t){let n=document.createElement(`div`);n.className=u_();for(let r of t.body){let t=j_(r,e);t&&n.appendChild(t)}return n}function N_(e){let t=document.createElement(`span`);return t.className=g_(),t.textContent=e,t}function P_(e){let t=[];if(typeof e.courtCount==`number`&&t.push(N_(`${e.courtCount} ${e.courtCount===1?`court`:`courts`}`)),e.indoorCount&&t.push(N_(`${e.indoorCount} indoor`)),e.outdoorCount&&t.push(N_(`${e.outdoorCount} outdoor`)),e.floodlitCount&&t.push(N_(`${e.floodlitCount} lit`)),!t.length)return null;let n=document.createElement(`div`);n.className=h_();for(let e of t)n.appendChild(e);return n}function F_(e,t){return e===`amenityRow`?P_(t):e===`address`?O_(t):e===`courtBreakdown`?k_(t):null}function I_(e,t){let n=document.createElement(`div`);n.className=m_();for(let r of t.footer){let t=F_(r,e);t&&n.appendChild(t)}return n}function L_(e){let t=e_(e);return Uh({showImage:t.showImage!==!1,bodyLines:t.body.length,showFooter:t.footer.length>0,cardClass:__(),imageClass:r_(),bodyClass:u_(),footerClass:m_(),blockClass:y_(),lineClass:v_()})}var R_=`venueImage`;function z_(e){let t=[];return e.indoorOutdoor&&t.push(e.indoorOutdoor.toLowerCase()),e.surfaceCategory&&t.push(e.surfaceCategory.toLowerCase()),t.length?t.join(` `):`court`}function B_(e){if(!e.length)return;let t=new Map;for(let n of e){let e=z_(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 V_(e,t){let n=0;for(let r of e)t(r)&&(n+=1);return n}function H_(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:Eh(i),latitude:Vh(i?.latitude),longitude:Vh(i?.longitude),courtCount:n.length||void 0,courtBreakdown:B_(n),indoorCount:V_(n,e=>e.indoorOutdoor===`INDOOR`)||void 0,outdoorCount:V_(n,e=>e.indoorOutdoor===`OUTDOOR`)||void 0,floodlitCount:V_(n,e=>!!e.floodlit)||void 0,isPrimary:!!e?.isPrimary,venueImageURL:e?.venueImageURL??zh(r,R_),courtSvgSport:e?.courtSvgSport??Bh(r)??t?.sport,notes:e?.notes}}var U_={showImage:!0,cornerBadges:[`indoorOutdoor`,`floodlit`],body:[`title`,`surface`],footer:[`amenityRow`]};function W_(e){return e?{showImage:e.showImage??U_.showImage,cornerBadges:e.cornerBadges??U_.cornerBadges,body:e.body??U_.body,footer:e.footer??U_.footer}:U_}var G_=()=>`chc-cc-card`,K_=()=>`chc-cc-card--clickable`,q_=()=>`chc-cc-image`,J_=()=>`chc-cc-image-svg`,Y_=()=>`chc-cc-image-placeholder`,X_=()=>`chc-cc-corner-badges`,Z_=()=>`chc-cc-indoor-badge`,Q_=()=>`chc-cc-floodlit-badge`,$_=()=>`chc-cc-body`,ev=()=>`chc-cc-title`,tv=()=>`chc-cc-surface`,nv=()=>`chc-cc-availability`,rv=()=>`chc-cc-abbr`,iv=()=>`chc-cc-footer`,av=()=>`chc-cc-amenity-row`,ov=()=>`chc-cc-card chc-cc-skeleton`,sv=()=>`chc-cc-skeleton-line`,cv=()=>`chc-cc-skeleton-block`;function lv(e,t,n){let r=W_(t),i=document.createElement(`div`);return i.className=G_(),i.dataset.courtId=e.courtId,n?.onClick&&(i.classList.add(K_()),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(dv(e,r)),r.body.length&&i.appendChild(xv(e,r)),r.footer.length&&i.appendChild(wv(e,r)),i}function uv(e,t){let n=wh(t.courtSvgSport,J_());if(n){e.appendChild(n);return}let r=document.createElement(`div`);r.className=Y_(),e.appendChild(r)}function dv(e,t){let n=document.createElement(`div`);if(n.className=q_(),e.surfaceCategory&&(n.dataset.surface=e.surfaceCategory),uv(n,e),t.cornerBadges.length){let r=hv(e,t.cornerBadges);r&&n.appendChild(r)}return n}function fv(e){if(!e.indoorOutdoor)return null;let t=document.createElement(`div`);return t.className=Z_(),t.dataset.kind=e.indoorOutdoor,t.textContent=e.indoorOutdoor===`INDOOR`?`Indoor`:`Outdoor`,t}function pv(e){if(!e.floodlit)return null;let t=document.createElement(`div`);return t.className=Q_(),t.textContent=`Lit`,t}function mv(e,t){return e===`indoorOutdoor`?fv(t):e===`floodlit`?pv(t):null}function hv(e,t){let n=[];for(let r of t){let t=mv(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=X_();for(let e of n)r.appendChild(e);return r}function gv(e){if(!e.courtName)return null;let t=document.createElement(`div`);return t.className=ev(),t.textContent=e.courtName,t.title=e.notes?`${e.courtName}\n${e.notes}`:e.courtName,t}function _v(e){if(!e.surfaceLabel)return null;let t=document.createElement(`div`);return t.className=tv(),t.textContent=e.surfaceLabel,t}function vv(e){if(!e.availabilitySummary)return null;let t=document.createElement(`div`);return t.className=nv(),t.textContent=e.availabilitySummary,t}function yv(e){if(!e.courtAbbreviation)return null;let t=document.createElement(`div`);return t.className=rv(),t.textContent=e.courtAbbreviation,t}function bv(e,t){return e===`title`?gv(t):e===`surface`?_v(t):e===`availability`?vv(t):e===`abbreviation`?yv(t):null}function xv(e,t){let n=document.createElement(`div`);n.className=$_();for(let r of t.body){let t=bv(r,e);t&&n.appendChild(t)}return n}function Sv(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=av(),n.textContent=t.join(` · `),n}function Cv(e,t){return e===`amenityRow`?Sv(t):e===`availability`?vv(t):e===`surface`?_v(t):null}function wv(e,t){let n=document.createElement(`div`);n.className=iv();for(let r of t.footer){let t=Cv(r,e);t&&n.appendChild(t)}return n}function Tv(e){let t=W_(e);return Uh({showImage:t.showImage!==!1,bodyLines:t.body.length,showFooter:t.footer.length>0,cardClass:ov(),imageClass:q_(),bodyClass:$_(),footerClass:iv(),blockClass:cv(),lineClass:sv()})}var Ev=`INDOOR`,Dv=`OUTDOOR`,Ov=new Set([`HARD`,`CLAY`,`GRASS`,`ARTIFICIAL`,`CARPET`]);function kv(e){if(!e)return;let t=String(e).toUpperCase();if(t===Ev)return Ev;if(t===Dv)return Dv}function Av(e){let t=e?.surfaceCategory?String(e.surfaceCategory).toUpperCase():void 0;if(t&&Ov.has(t))return t;let n=e?.surfaceType?String(e.surfaceType).toUpperCase():void 0;return n&&Ov.has(n)?n:t}function jv(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 Mv(e,t){let n=kv(e?.indoorOutdoor),r=Av(e);return{courtId:e?.courtId??``,courtName:e?.courtName??``,courtAbbreviation:e?.courtAbbreviation,surfaceLabel:jv(n,r),indoorOutdoor:n,surfaceCategory:r,floodlit:!!e?.floodlit,courtSvgSport:t?.sport,notes:e?.notes}}var Nv={grouping:`setting`,sport:`tennis`,showGroupHeadings:!0,showSummary:!0,minCardWidth:`11rem`,emptyMessage:`No courts recorded for this venue`};function Pv(e){return e?{grouping:e.grouping??Nv.grouping,sport:e.sport??Nv.sport,showGroupHeadings:e.showGroupHeadings??Nv.showGroupHeadings,showSummary:e.showSummary??Nv.showSummary,minCardWidth:e.minCardWidth??Nv.minCardWidth,emptyMessage:e.emptyMessage??Nv.emptyMessage}:Nv}var Fv=()=>`chc-cl`,Iv=()=>`chc-cl-summary`,Lv=()=>`chc-cl-summary-count`,Rv=()=>`chc-cl-group`,zv=()=>`chc-cl-group-heading`,Bv=()=>`chc-cl-group-count`,Vv=()=>`chc-cl-grid`,Hv=()=>`chc-cl-empty`,Uv=`Unspecified`,Wv=`Unspecified surface`;function Gv(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}function Kv(e){let t=typeof e.indoorOutdoor==`string`?e.indoorOutdoor.trim():``;return t?Gv(t):Uv}function qv(e){let t=typeof e.surfaceCategory==`string`?e.surfaceCategory.trim():``;return t?Gv(t):Wv}function Jv(e,t){let n=Lh(e);if(t===`none`)return[{key:`all`,label:`All courts`,courts:n}];let r=e=>t===`setting`?Kv(e):t===`surface`?qv(e):`${Kv(e)} · ${qv(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 Yv(e){let t=new Map;for(let n of e){let e=Kv(n),r=qv(n),i=`${e===Uv?``:e.toLowerCase()} ${r===Wv?``: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 Xv(e,t,n){let r=Pv(t),i=e.courts??[],a=document.createElement(`div`);if(a.className=Fv(),e.venueId&&(a.dataset.venueId=e.venueId),!i.length){let e=document.createElement(`div`);return e.className=Hv(),e.textContent=r.emptyMessage,a.appendChild(e),a}r.showSummary&&a.appendChild(Zv(i));for(let e of Jv(i,r.grouping))a.appendChild(Qv(e,r,n));return a}function Zv(e){let t=document.createElement(`div`);t.className=Iv();let n=document.createElement(`span`);n.className=Lv(),n.textContent=`${e.length} ${e.length===1?`court`:`courts`}`;let r=document.createElement(`span`);return r.textContent=Yv(e),t.append(n,r),t}function Qv(e,t,n){let r=document.createElement(`div`);if(r.className=Rv(),r.dataset.group=e.key,t.showGroupHeadings&&t.grouping!==`none`){let t=document.createElement(`div`);t.className=zv();let n=document.createElement(`span`);n.textContent=e.label;let i=document.createElement(`span`);i.className=Bv(),i.textContent=String(e.courts.length),t.append(n,i),r.appendChild(t)}let i=document.createElement(`div`);i.className=Vv(),i.style.setProperty(`--chc-cl-min-card`,t.minCardWidth);for(let r of e.courts)i.appendChild(ey(r,t,n));return r.appendChild(i),r}function $v(e){if(e===`setting`||e===`both`)return{cornerBadges:[`floodlit`]}}function ey(e,t,n){let r=Mv(e,{sport:t.sport}),i=n?.onCourtClick?{onClick:()=>n.onCourtClick?.(e)}:void 0;return lv(r,$v(t.grouping),i)}var ty={tiles:{map:{tileLayer:`https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png`,attribution:`&copy; <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 &copy; Esri`}},darkTileLayer:{tileLayer:`https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png`,attribution:`&copy; <a href="https://openstreetmap.org">OpenStreetMap</a> Contributors &copy; <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 ny(e){return e?{tiles:e.tiles??ty.tiles,darkTileLayer:e.darkTileLayer===void 0?ty.darkTileLayer:e.darkTileLayer,view:e.view??ty.view,showViewToggle:e.showViewToggle??ty.showViewToggle,zoom:e.zoom??ty.zoom,height:e.height??ty.height,courtsLayout:e.courtsLayout??ty.courtsLayout,showHeader:e.showHeader??ty.showHeader,showPopup:e.showPopup??ty.showPopup,scrollWheelZoom:e.scrollWheelZoom??ty.scrollWheelZoom,darkTiles:e.darkTiles??ty.darkTiles}:ty}var ry=()=>`chc-vl`,iy=()=>`chc-vl-header`,ay=()=>`chc-vl-title`,oy=()=>`chc-vl-address`,sy=()=>`chc-vl-notes`,cy=()=>`chc-vl-body`,ly=()=>`chc-vl-body--below`,uy=()=>`chc-vl-mapwrap`,dy=()=>`chc-vl-map`,fy=()=>`chc-vl-map--invertible`,py=()=>`chc-vl-toggle`,my=()=>`chc-vl-toggle-btn`,hy=()=>`chc-vl-fallback`,gy=()=>`chc-vl-fallback-icon`,_y=()=>`chc-vl-courts`,vy=()=>`chc-vl-courts-title`,yy=()=>`chc-vl-court-list`,by=()=>`chc-vl-court`,xy=()=>`chc-vl-court--clickable`,Sy=()=>`chc-vl-court-name`,Cy=()=>`chc-vl-court-meta`,wy=()=>`chc-vl-pip`,Ty=()=>`chc-vl-marker`,Ey=()=>`chc-vl-popup-title`,Dy=()=>`chc-vl-popup-address`,Oy=`No coordinates for this venue`,ky=`Map unavailable`,Ay=new WeakMap;function jy(e){return Number.isFinite(e.latitude)&&Number.isFinite(e.longitude)}function My(e){return Lh(e)}function Ny(e){let t=[];return e.indoorOutdoor&&t.push(e.indoorOutdoor.toLowerCase()),e.surfaceCategory&&t.push(e.surfaceCategory.toLowerCase()),t.join(` · `)}function Py(e,t,n){let r=ny(t),i=document.createElement(`div`);i.className=ry(),i.dataset.venueId=e.venueId,r.showHeader&&i.appendChild(Iy(e));let a=document.createElement(`div`);a.className=r.courtsLayout===`side`?cy():`${cy()} ${ly()}`;let{wrap:o,mapEl:s}=Ry(e,r,n);a.appendChild(o);let c=e.courts??[];return r.courtsLayout!==`none`&&c.length&&a.appendChild(Vy(c,e,n)),i.appendChild(a),s&&jy(e)&&Uy({root:i,mapEl:s,data:e,cfg:r,callbacks:n}),i}function Fy(e){let t=Ay.get(e);t&&(t(),Ay.delete(e))}function Iy(e){let t=document.createElement(`div`);t.className=iy();let n=document.createElement(`div`);if(n.className=ay(),n.textContent=e.venueName,t.appendChild(n),e.addressFormatted){let n=document.createElement(`div`);n.className=oy(),n.textContent=e.addressFormatted,t.appendChild(n)}if(e.notes){let n=document.createElement(`div`);n.className=sy(),n.textContent=e.notes,t.appendChild(n)}return t}function Ly(e){let t=document.createElement(`div`);t.className=hy();let n=document.createElement(`div`);n.className=gy(),n.textContent=`📍`,n.setAttribute(`aria-hidden`,`true`);let r=document.createElement(`div`);return r.textContent=e,t.append(n,r),t}function Ry(e,t,n){let r=document.createElement(`div`);if(r.className=uy(),r.style.height=t.height,!jy(e))return r.appendChild(Ly(Oy)),{wrap:r,mapEl:null};let i=document.createElement(`div`);i.className=dy(),i.appendChild(Ly(``)),r.appendChild(i);let a=Object.keys(t.tiles);return t.showViewToggle&&a.length>1&&r.appendChild(zy(a,t,n)),{wrap:r,mapEl:i}}function zy(e,t,n){let r=document.createElement(`div`);r.className=py(),r.dataset.viewToggle=`true`;let i=[];for(let a of e){let e=document.createElement(`button`);e.type=`button`,e.className=my(),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 By(e,t,n){let r=!!n?.onCourtClick,i=document.createElement(r?`button`:`div`);i.className=r?`${by()} ${xy()}`:by(),i.dataset.courtId=e.courtId,r&&(i.type=`button`,i.addEventListener(`click`,()=>n?.onCourtClick?.(e,t)));let a=document.createElement(`span`);a.className=Sy(),a.textContent=e.courtName;let o=document.createElement(`span`);o.className=Cy();let s=Ny(e);if(s&&o.append(document.createTextNode(s)),e.floodlit){let e=document.createElement(`span`);e.className=wy(),e.title=`floodlit`,o.appendChild(e)}return i.append(a,o),i}function Vy(e,t,n){let r=document.createElement(`div`);r.className=_y();let i=document.createElement(`div`);i.className=vy(),i.textContent=`Courts (${e.length})`,r.appendChild(i);let a=document.createElement(`div`);a.className=yy();for(let r of My(e))a.appendChild(By(r,t,n));return r.appendChild(a),r}function Hy(e){let t=e=>e.replace(/[&<>"]/g,e=>({"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`})[e]),n=e.addressFormatted?`<div class="${Dy()}">${t(e.addressFormatted)}</div>`:``;return`<div class="${Ey()}">${t(e.venueName)}</div>${n}`}async function Uy({root:e,mapEl:t,data:n,cfg:r,callbacks:i}){let a;try{a=await import(`leaflet`)}catch(e){t.replaceChildren(Ly(ky)),i?.onMapUnavailable?.(Error(`leaflet is an optional peerDependency of courthive-components and is not installed`,{cause:e}));return}let o=a.default??a;try{t.replaceChildren();let a=o.map(t,{scrollWheelZoom:r.scrollWheelZoom,attributionControl:!0});a.setView([n.latitude,n.longitude],r.zoom);let s=r.view,c=Yy(o,a,r,s);Xy(t,r,s);let l=e=>{s=e,a.removeLayer(c),c=Yy(o,a,r,e),Xy(t,r,e)},u=o.divIcon({className:``,html:`<div class="${Ty()}"></div>`,iconSize:[14,14]}),d=o.marker([n.latitude,n.longitude],{icon:u}).addTo(a);r.showPopup&&d.bindPopup(Hy(n)),d.on(`click`,()=>i?.onVenueClick?.(n)),e.querySelector(`[data-view-toggle]`)?.addEventListener(`click`,e=>{let t=e.target?.closest(`button[data-view]`);t&&l(t.dataset.view)}),Ky(t);let f=new ResizeObserver(()=>a.invalidateSize());f.observe(t);let p,m=globalThis.document?.documentElement;if(m&&r.darkTiles!==`never`&&r.darkTileLayer){let e=qy();p=new MutationObserver(()=>{let t=qy();t!==e&&(e=t,s!==`satellite`&&l(s))}),p.observe(m,{attributes:!0,attributeFilter:[`data-theme`]})}Ay.set(e,()=>{f.disconnect(),p?.disconnect(),a.remove()})}catch(e){t.replaceChildren(Ly(ky)),i?.onMapUnavailable?.(Error(`Leaflet map failed to initialize`,{cause:e}))}}var Wy=!1;function Gy(e){return e?e!==`relative`&&e!==`absolute`:!1}function Ky(e){Wy||Gy(globalThis.getComputedStyle?.(e)?.position)&&(Wy=!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 qy(){return globalThis.document?.documentElement?.dataset.theme===`dark`}function Jy(e,t,n){let r=e.tiles[t]??e.tiles.map;return t===`satellite`||e.darkTiles===`never`||!n?r:e.darkTileLayer??r}function Yy(e,t,n,r){let i=Jy(n,r,qy());return e.tileLayer(i.tileLayer,{attribution:i.attribution,maxZoom:i.maxZoom??19}).addTo(t)}function Xy(e,t,n){let r=t.darkTiles===`auto`&&n!==`satellite`&&!t.darkTileLayer;e.classList.toggle(fy(),r)}function Zy(...e){for(let t of e)if(typeof t==`number`&&Number.isFinite(t))return t}function Qy(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:Zy(e?.courtOrder),latitude:Hh(e?.latitude),longitude:Hh(e?.longitude)}}function $y(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:Eh(n),latitude:Hh(e?.latitude,n?.latitude),longitude:Hh(e?.longitude,n?.longitude),courts:t.map(Qy),notes:e?.notes}}var eb=()=>`chc-team-card`,tb=()=>`chc-team-card--clickable`,nb=()=>`chc-team-card__title-row`,rb=()=>`chc-team-card__name`,ib=()=>`chc-team-card__nickname`,ab=()=>`chc-team-card__counts`,ob=` · `;function sb(e,t){let n=document.createElement(`div`);n.className=eb(),e.teamId&&(n.dataset.teamId=e.teamId),t?.onClick&&(n.classList.add(tb()),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(cb(e));let r=(e.countSegments??[]).map(e=>(e??``).trim()).filter(Boolean);return r.length&&n.appendChild(lb(r)),n}function cb(e){let t=document.createElement(`div`);t.className=nb();let n=document.createElement(`span`);if(n.className=rb(),n.textContent=e.teamName,t.appendChild(n),e.nickname){let n=document.createElement(`span`);n.className=ib(),n.textContent=`"${e.nickname}"`,t.appendChild(n)}return t}function lb(e){let t=document.createElement(`div`);return t.className=ab(),t.textContent=e.join(ob),t}var ub=[`COMPETITIVE`,`ROUTINE`,`DECISIVE`,`WALKOVER`],db=new Set([`WALKOVER`,`DOUBLE_WALKOVER`,`DEFAULTED`,`DOUBLE_DEFAULT`]);function fb(){return{COMPETITIVE:0,ROUTINE:0,DECISIVE:0,WALKOVER:0}}function pb(e){let t=fb();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&&db.has(e.matchUpStatus)){t.WALKOVER+=1;continue}let r=e.competitiveProfile?.competitiveness;r&&r!==`WALKOVER`&&ub.includes(r)&&(t[r]+=1)}return t}function mb(e){return ub.reduce((t,n)=>t+e[n],0)}var hb={COMPETITIVE:`Competitive`,ROUTINE:`Routine`,DECISIVE:`Decisive`,WALKOVER:`Walkover / Defaulted`};function gb(e={}){let{onSegmentClick:t}=e,n=document.createElement(`div`);n.className=`chc-cb`;let r={};for(let e of ub){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=mb(e);if(n.style.display=t>0?`flex`:`none`,t)for(let t of ub){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=`${hb[t]}: ${i}`)}},setActive:e=>{n.classList.toggle(`has-active`,!!e);for(let t of ub)r[t].classList.toggle(`is-active`,t===e)}}}var _b={COMPETITIVE:`Competitive`,ROUTINE:`Routine`,DECISIVE:`Decisive`,WALKOVER:`Walkover / Defaulted`},vb=`http://www.w3.org/2000/svg`,yb=96,bb=yb/2,xb=47,Sb=31;function Cb(e,t){return{x:bb+t*Math.cos(e),y:bb+t*Math.sin(e)}}function wb(e,t){let n=Cb(e,xb),r=Cb(t,xb),i=Cb(t,Sb),a=Cb(e,Sb),o=+(t-e>Math.PI);return[`M ${n.x} ${n.y}`,`A ${xb} ${xb} 0 ${o} 1 ${r.x} ${r.y}`,`L ${i.x} ${i.y}`,`A ${Sb} ${Sb} 0 ${o} 0 ${a.x} ${a.y}`,`Z`].join(` `)}function Tb(){let e=Cb(-Math.PI/2,xb),t=Cb(Math.PI/2,xb),n=Cb(-Math.PI/2,Sb),r=Cb(Math.PI/2,Sb);return[`M ${e.x} ${e.y}`,`A ${xb} ${xb} 0 1 1 ${t.x} ${t.y}`,`A ${xb} ${xb} 0 1 1 ${e.x} ${e.y}`,`L ${n.x} ${n.y}`,`A ${Sb} ${Sb} 0 1 0 ${r.x} ${r.y}`,`A ${Sb} ${Sb} 0 1 0 ${n.x} ${n.y}`,`Z`].join(` `)}function Eb(){let e=document.createElement(`div`);e.className=`chc-cd`;let t=document.createElementNS(vb,`svg`);t.setAttribute(`viewBox`,`0 0 ${yb} ${yb}`),t.setAttribute(`class`,`chc-cd__svg`),t.setAttribute(`role`,`img`);let n={};for(let e of ub){let r=document.createElementNS(vb,`path`);r.setAttribute(`class`,`chc-cd__arc`),r.setAttribute(`data-bucket`,e),t.appendChild(r);let i=document.createElementNS(vb,`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=mb(i);if(e.style.display=a>0?`inline-flex`:`none`,!a)return;let o=ub.filter(e=>i[e]>0),s=-Math.PI/2;for(let e of ub){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`,Tb());else{let e=t/a,n=s+e*Math.PI*2;r.setAttribute(`d`,wb(s,n)),s=n}c&&(c.textContent=`${_b[e]}: ${t}`)}r.textContent=String(a),t.setAttribute(`aria-label`,`Competitiveness across ${a} matches`)}}}function Db(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 Ob={cornerBadges:[`status`,`publishedBadge`,`embargoBadge`],body:[`title`,`drawTypeLabel`,`matchUpProgress`],footer:[`drawSize`,`entries`,`matchUpFormat`,`flightNumber`,`ratings`],showVisualization:!1};function kb(e){return e?{cornerBadges:e.cornerBadges??Ob.cornerBadges,body:e.body??Ob.body,footer:e.footer??Ob.footer,showVisualization:e.showVisualization??Ob.showVisualization}:Ob}var Ab=()=>`chc-dc-card`,jb=()=>`chc-dc-card--clickable`,Mb=()=>`chc-dc-corner-badges`,Nb=()=>`chc-dc-status-pill`,Pb=()=>`chc-dc-secondary-badge`,Fb=()=>`chc-dc-body`,Ib=()=>`chc-dc-viz`,Lb=()=>`chc-dc-title-row`,Rb=()=>`chc-dc-title`,zb=()=>`chc-dc-draw-type`,Bb=()=>`chc-dc-meta`,Vb=()=>`chc-dc-footer`,Hb=()=>`chc-dc-chip`,Ub=()=>`chc-dc-progress`,Wb=()=>`chc-dc-progress-bar`,Gb=()=>`chc-dc-progress-fill`,Kb=()=>`chc-dc-card chc-dc-skeleton`,qb=()=>`chc-dc-skeleton-line`;function Jb(e,t,n){let r=kb(t),i=document.createElement(`div`);if(i.className=Ab(),i.dataset.drawId=e.drawId,e.eventId&&(i.dataset.eventId=e.eventId),n?.onClick&&(i.classList.add(jb()),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=Ib(),t.appendChild(e.visualization),i.appendChild(t)}return(r.body.length||r.cornerBadges.length)&&i.appendChild(dx(e,r)),r.footer.length&&i.appendChild(fx(e,r)),i}function Yb(e){if(!e.status)return null;let t=document.createElement(`div`);return t.className=Nb(),t.dataset.kind=e.status.kind,t.textContent=e.status.label,t}function Xb(e){if(!e.published)return null;let t=document.createElement(`div`);return t.className=Pb(),t.dataset.kind=`published`,t.textContent=`Published`,t}function Zb(e){if(!e.embargoActive)return null;let t=document.createElement(`div`);return t.className=Pb(),t.dataset.kind=`embargo`,t.textContent=`Embargo`,t}function Qb(e,t){return e===`status`?Yb(t):e===`publishedBadge`?Xb(t):e===`embargoBadge`?Zb(t):null}function $b(e,t){let n=[];for(let r of t){let t=Qb(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=Mb();for(let e of n)r.appendChild(e);return r}function ex(e){if(!e.drawName)return null;let t=document.createElement(`div`);return t.className=Rb(),t.textContent=e.drawName,t.title=e.drawName,t}function tx(e){if(!e.drawTypeLabel)return null;let t=document.createElement(`div`);return t.className=zb(),t.textContent=e.drawTypeLabel,t}function nx(e){let t=document.createElement(`span`);return t.className=Hb(),t.textContent=e,t}function rx(e){return typeof e.drawSize==`number`?nx(`Size ${e.drawSize}`):null}function ix(e){return typeof e.entryCount==`number`?nx(`${e.entryCount} ${e.entryCount===1?`entry`:`entries`}`):null}function ax(e){return e.matchUpFormat?nx(e.matchUpFormat):null}function ox(e){return typeof e.flightNumber==`number`?nx(`Flight ${e.flightNumber}`):null}function sx(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=Bb(),n.textContent=t.join(` · `),n}function cx(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=Ub();let a=document.createElement(`div`);a.className=Bb(),a.textContent=`${n}/${t} matches · ${r}%`,i.appendChild(a);let o=document.createElement(`div`);o.className=Wb();let s=document.createElement(`div`);return s.className=Gb(),s.style.right=`${100-r}%`,o.appendChild(s),i.appendChild(o),i}function lx(e,t){return e===`title`?ex(t):e===`drawTypeLabel`?tx(t):e===`drawSize`?rx(t):e===`entries`?ix(t):e===`matchUpFormat`?ax(t):e===`flightNumber`?ox(t):e===`ratings`?sx(t):e===`matchUpProgress`?cx(t):null}function ux(e,t){let n=document.createElement(`div`);n.className=Lb();let r=ex(e);r&&n.appendChild(r);let i=$b(e,t);return i&&n.appendChild(i),n}function dx(e,t){let n=document.createElement(`div`);n.className=Fb();let r=t.body.includes(`title`),i=t.cornerBadges.length>0;if(i&&!r){let r=$b(e,t.cornerBadges);r&&n.appendChild(r)}for(let r of t.body){if(r===`title`&&i){n.appendChild(ux(e,t.cornerBadges));continue}let a=lx(r,e);a&&n.appendChild(a)}return n}function fx(e,t){let n=document.createElement(`div`);n.className=Vb();for(let r of t.footer){let t=lx(r,e);t&&n.appendChild(t)}return n}function px(){let e=document.createElement(`div`);e.className=Kb();let t=document.createElement(`div`);t.className=Fb();for(let e of[`70%`,`40%`,`85%`]){let n=document.createElement(`div`);n.className=qb(),n.style.width=e,t.appendChild(n)}return e.appendChild(t),e}var mx={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 hx(e){if(e)return mx[e]?mx[e]:e.toLowerCase().split(`_`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function gx(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 _x(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 vx(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 yx(e,t){let n=Array.isArray(e?.structures)&&e.structures.length>0,r=t?.matchUpStats??(t?.lightMode||!n?void 0:gx(e)),i=e?.drawStatus===`CANCELLED`,a=t?.statusOverride===void 0?vx({generated:n,cancelled:i,matchUpCounts:r}):t.statusOverride;return{drawId:e?.drawId??``,drawName:e?.drawName??``,drawType:e?.drawType,drawTypeLabel:hx(e?.drawType),drawSize:_x(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 bx={showImage:!0,cornerBadges:[`status`,`eventTypeBadge`,`genderBadge`],body:[`title`,`categoryLabel`,`drawSummary`],footer:[`playerCount`,`matchUpProgress`]},xx=15;function Sx(e){return e?{showImage:e.showImage??bx.showImage,cornerBadges:e.cornerBadges??bx.cornerBadges,body:e.body??bx.body,footer:e.footer??bx.footer}:bx}var Cx=()=>`chc-ec-card`,wx=()=>`chc-ec-card--clickable`,Tx=()=>`chc-ec-image`,Ex=()=>`chc-ec-image-img`,Dx=()=>`chc-ec-image-svg`,Ox=()=>`chc-ec-image-placeholder`,kx=()=>`chc-ec-corner-badges`,Ax=()=>`chc-ec-status-pill`,jx=()=>`chc-ec-eventtype-badge`,Mx=()=>`chc-ec-gender-badge`,Nx=()=>`chc-ec-body`,Px=()=>`chc-ec-title`,Fx=()=>`chc-ec-category`,Ix=()=>`chc-ec-draw-summary`,Lx=()=>`chc-ec-date-range`,Rx=()=>`chc-ec-footer`,zx=()=>`chc-ec-player-count`,Bx=()=>`chc-ec-progress`,Vx=()=>`chc-ec-progress-meta`,Hx=()=>`chc-ec-progress-bar`,Ux=()=>`chc-ec-progress-fill`,Wx=()=>`chc-ec-updated-at`,Gx=()=>`chc-ec-card chc-ec-skeleton`,Kx=()=>`chc-ec-skeleton-line`,qx=()=>`chc-ec-skeleton-block`;function Jx(e,t,n){let r=Sx(t),i=document.createElement(`div`);return i.className=Cx(),i.dataset.eventId=e.eventId,n?.onClick&&(i.classList.add(wx()),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(Xx(e,r)),r.body.length&&i.appendChild(uS(e,r)),r.footer.length&&i.appendChild(dS(e,r)),i}function Yx(e,t){let n=wh(t.courtSvgSport,Dx());if(n){e.appendChild(n);return}let r=document.createElement(`div`);r.className=Ox(),e.appendChild(r)}function Xx(e,t){let n=document.createElement(`div`);if(n.className=Tx(),e.eventImageURL){let t=document.createElement(`img`);t.className=Ex(),t.src=e.eventImageURL,t.alt=e.eventName||``,t.loading=`lazy`,t.addEventListener(`error`,()=>{t.remove(),Yx(n,e)}),n.appendChild(t)}else Yx(n,e);if(t.cornerBadges.length){let r=tS(e,t.cornerBadges);r&&n.appendChild(r)}return n}function Zx(e){if(!e.status)return null;let t=document.createElement(`div`);return t.className=Ax(),t.dataset.kind=e.status.kind,t.textContent=e.status.label,t}function Qx(e){if(!e.eventType)return null;let t=document.createElement(`div`);return t.className=jx(),t.dataset.kind=e.eventType,t.textContent=e.eventType,t}function $x(e){if(!e.gender)return null;let t=document.createElement(`div`);return t.className=Mx(),t.dataset.kind=e.gender,t.textContent=e.gender===`MALE`?`M`:e.gender===`FEMALE`?`W`:`X`,t}function eS(e,t){return e===`status`?Zx(t):e===`eventTypeBadge`?Qx(t):e===`genderBadge`?$x(t):null}function tS(e,t){let n=[];for(let r of t){let t=eS(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=kx();for(let e of n)r.appendChild(e);return r}function nS(e){if(!e.eventName)return null;let t=document.createElement(`div`);return t.className=Px(),t.textContent=e.eventName,t.title=e.eventName,t}function rS(e){if(!e.categoryLabel)return null;let t=document.createElement(`div`);return t.className=Fx(),t.textContent=e.categoryLabel,t}function iS(e){if(!e.drawSummary)return null;let t=document.createElement(`div`);return t.className=Ix(),t.textContent=e.drawSummary,t}function aS(e){if(!e.dateRangeFormatted)return null;let t=document.createElement(`div`);return t.className=Lx(),t.textContent=e.dateRangeFormatted,t}function oS(e){if(!e.updatedAt)return null;let t=document.createElement(`div`);t.className=Wx();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 sS(e){if(typeof e.entryCount!=`number`)return null;let t=document.createElement(`div`);return t.className=zx(),t.textContent=`${e.entryCount} ${e.entryCount===1?`player`:`players`}`,t}function cS(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=Bx();let a=document.createElement(`div`);a.className=Vx(),a.textContent=`${n}/${t} matches · ${r}%`,i.appendChild(a);let o=document.createElement(`div`);o.className=Hx();let s=document.createElement(`div`);return s.className=Ux(),s.style.right=`${100-r}%`,o.appendChild(s),i.appendChild(o),i}function lS(e,t){return e===`title`?nS(t):e===`categoryLabel`?rS(t):e===`drawSummary`?iS(t):e===`dateRange`?aS(t):e===`updatedAt`?oS(t):e===`playerCount`?sS(t):e===`matchUpProgress`?cS(t):null}function uS(e,t){let n=document.createElement(`div`);n.className=Nx();for(let r of t.body){let t=lS(r,e);t&&n.appendChild(t)}return n}function dS(e,t){let n=document.createElement(`div`);n.className=Rx();for(let r of t.footer){let t=lS(r,e);t&&n.appendChild(t)}return n}function fS(e){let t=Sx(e);return Uh({showImage:t.showImage!==!1,bodyLines:t.body.length,showFooter:t.footer.length>0,cardClass:Gx(),imageClass:Tx(),bodyClass:Nx(),footerClass:Rx(),blockClass:qx(),lineClass:Kx()})}function pS(e){if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t}function mS(e,t,n){return!t||!n?!1:t.getTime()<=e.getTime()&&e.getTime()<=n.getTime()}function hS(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=pS(e.startDate),i=pS(e.endDate);if(n&&(n.inProgress>0||mS(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 gS=`eventImage`,_S=`DRAFT_STATE`;function vS(e){if(!e)return;let t=String(e).toUpperCase();if(t===`SINGLES`||t===`DOUBLES`||t===`TEAM`||t===`HYBRID`)return t}function yS(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 bS(e){if(!e)return;let t=xS(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=xS(e.ageCategoryCode);if(n)return n;if(e.ratingMin&&e.ratingMax)return`Rating ${e.ratingMin}–${e.ratingMax}`}function xS(e){if(typeof e!=`string`)return;let t=e.trim();if(t&&!/^[-—–_]+$/.test(t))return t}function SS(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 CS(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 wS(e){if(e?.draftState!=null)return!0;let t=e?.extensions;return Array.isArray(t)?t.some(e=>e?.name===_S):!1}function TS(e){return e.some(e=>e?.automated?.seedsOnly===!0||wS(e))}function ES(e){return e.length!==0&&e.every(e=>e?.drawStatus===`CANCELLED`)}var DS=new Set([`DIRECT_ACCEPTANCE`,`DA`,`DIRECT_CONFIRMED`,`DC`,`ACCEPTED`,`A`,`ENTERED`,`PE`,`QUALIFIER`,`Q`,`WILDCARD`,`WC`]);function OS(e){if(!e.length)return 0;let t=0;for(let n of e)DS.has(String(n?.entryStatus))&&(t+=1);return t}function kS(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:CS(e)),o=t?.statusOverride===void 0?hS({allDrawsCancelled:ES(n),drawCount:n.length,entryCount:OS(r),startDate:e?.startDate,endDate:e?.endDate,matchUpCounts:a,hasDraftState:n.some(wS),hasSeedsOnlyDraw:TS(n)},t?.now):t.statusOverride;return{eventId:e?.eventId??``,eventName:e?.eventName??``,eventAbbreviation:e?.eventAbbreviation,categoryLabel:bS(e?.category),eventType:vS(e?.eventType),gender:yS(e?.gender),drawCount:n.length||void 0,drawSummary:SS(n),entryCount:OS(r)||void 0,matchUpCounts:a,startDate:e?.startDate,endDate:e?.endDate,dateRangeFormatted:Ih(e?.startDate,e?.endDate),status:o,eventImageURL:e?.eventImageURL??zh(i,gS),courtSvgSport:e?.courtSvgSport??Bh(i)??t?.sport,updatedAt:e?.updatedAt}}var AS=()=>`chc-hil-container`,jS=()=>`chc-hil-form`,MS=()=>`chc-hil-header`,NS=()=>`chc-hil-title`,PS=()=>`chc-hil-tabs`,FS=()=>`chc-hil-tab`,IS=()=>`chc-hil-tab--active`,LS=()=>`chc-hil-field`,RS=()=>`chc-hil-label`,zS=()=>`chc-hil-input`,BS=()=>`chc-hil-row`,VS=()=>`chc-hil-submit`,HS=()=>`chc-hil-message`,US=()=>`chc-hil-message--error`,WS=()=>`chc-hil-message--success`,GS=()=>`chc-hil-switch-mode`;function KS(e){return e.replace(/\/+$/,``)}async function qS(e,t,n,r=fetch){let i=KS(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 JS(e,t,n){return qS(e,`/auth/hiveid/signup`,t,n)}function YS(e,t,n){return qS(e,`/auth/hiveid/verify-existing`,t,n)}function XS(e,t,n){return qS(e,`/auth/hiveid/magic-link`,t,n)}function ZS(e,t,n){return qS(e,`/auth/hiveid/magic-link/consume`,t,n)}function QS(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 $S=[{value:`M`,label:`Male`},{value:`F`,label:`Female`}],eC=`signup`,tC=`login`,nC=`magic-link`,rC=[eC,tC,nC],iC=`hiveid:authenticated`,aC={[eC]:`Sign up`,[tC]:`Log in`,[nC]:`Email link`},oC={[eC]:`Create your CourtHive identity`,[tC]:`Log in to CourtHive`,[nC]:`Email me a sign-in link`};function sC(e){if(!e?.cfsBaseUrl)throw Error(`buildHiveIDLogin: cfsBaseUrl is required`);let t=e.mode??`signup`,n=!1,r=document.createElement(`div`);r.className=AS(),r.dataset.hiveidLogin=`true`;let i=document.createElement(`div`);i.className=MS();let a=document.createElement(`h2`);a.className=NS(),i.appendChild(a);let o=document.createElement(`div`);o.className=PS(),i.appendChild(o);let s={};rC.forEach(e=>{let t=document.createElement(`button`);t.type=`button`,t.className=FS(),t.textContent=aC[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=jS(),c.noValidate=!0,r.appendChild(c);let l=document.createElement(`div`);l.className=HS(),l.hidden=!0,r.appendChild(l);function u(e,t=`info`){l.textContent=e,l.className=HS(),t===`error`&&l.classList.add(US()),t===`success`&&l.classList.add(WS()),l.hidden=!e}function d(){u(``)}function f(e,t,n=`text`,r=``){let i=document.createElement(`div`);i.className=LS();let a=document.createElement(`label`);a.className=RS(),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=zS(),o.required=!0,i.appendChild(a),i.appendChild(o),c.appendChild(i),o}function p(){let e=document.createElement(`div`);return e.className=BS(),c.appendChild(e),e}function m(e){let t=document.createElement(`button`);return t.type=`submit`,t.className=VS(),t.textContent=e,c.appendChild(t),t}function h(e,t,n){let r=document.createElement(`div`);r.className=GS();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=RS(),t.textContent=e.note,c.appendChild(t)}let t=null;if(e.providers.length>1){let n=document.createElement(`div`);n.className=LS();let r=document.createElement(`label`);r.className=RS(),r.textContent=`Provider`,r.htmlFor=`chc-hil-fedProvider`;let i=document.createElement(`select`);i.id=`chc-hil-fedProvider`,i.className=zS(),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=LS();let r=document.createElement(`label`);r.className=RS(),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=zS(),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=RS(),t.textContent=e.note,c.appendChild(t)}let t=e.required!==!1,n=document.createElement(`div`);n.className=LS();let r=document.createElement(`label`);r.className=RS(),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=zS(),n.append(r,i),c.appendChild(n);let a=document.createElement(`div`);a.className=LS();let o=document.createElement(`label`);o.className=RS(),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=zS();let l=document.createElement(`option`);return l.value=``,l.textContent=`Select…`,s.appendChild(l),(e.sexOptions??$S).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),()=>uC({birthDate:i.value,sex:s.value})}function v(e){r.dispatchEvent(new CustomEvent(iC,{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 JS(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(QS(e)){u(`That email already has a CourtHive account — please verify your password.`,`info`),w(`login`);return}u(fC(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 YS(e.cfsBaseUrl,{email:r,password:i},e.fetchImpl);v({token:t.token,refreshToken:t.refreshToken,personId:t.personId,cached:t.cached??dC()}),u(`Signed in.`,`success`)}catch(e){u(fC(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 XS(e.cfsBaseUrl,{email:n},e.fetchImpl),u(`If ${n} is registered, a sign-in link is on its way.`,`success`)}catch(e){u(fC(e)??`Could not send link. Please try again.`,`error`)}}function C(){if(c.replaceChildren(),a.textContent=oC[t],rC.forEach(e=>{s[e].classList.toggle(IS(),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=zS();let r=document.createElement(`input`);r.id=`chc-hil-lastName`,r.type=`text`,r.placeholder=`Last name`,r.required=!0,r.className=zS();let i=document.createElement(`div`);i.className=LS();let a=document.createElement(`label`);a.textContent=`First name`,a.className=RS(),a.htmlFor=n.id,i.append(a,n);let o=document.createElement(`div`);o.className=LS();let s=document.createElement(`label`);s.textContent=`Last name`,s.className=RS(),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:lC(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(iC,t),()=>r.removeEventListener(iC,t)}return C(),{root:r,setMode:w,getMode:T,onAuthenticated:E}}async function cC(e,t,n){let r=await ZS(e,{code:t},n);return{token:r.token,refreshToken:r.refreshToken,personId:r.personId,cached:r.cached??dC()}}function lC(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 uC(e){let t={},n=e.birthDate?.trim(),r=e.sex?.trim();return n&&(t.birthDate=n),r&&(t.sex=r),t}function dC(){return{standardFamilyName:null,standardGivenName:null,birthDate:null,sex:null,nationalityCode:null}}function fC(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 pC={name:`courthive-components`,packageManager:`pnpm@12.3.4`,version:`4.3.0`,engines:{node:`>=22`},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/*`},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`,"test:watch":`vitest`,"test:ui":`vitest --ui`,dev:`vite`,build:`tsc && vite build`,"check-types":`tsc --noEmit`,prepublishOnly:`pnpm build`,preview:`vite preview`,storybook:`storybook dev -p 6006`,"build-storybook":`storybook build`,"test-storybook":`test-storybook --url http://localhost:6006`,"deploy-storybook":`gh-pages -d storybook-static`,"pre-commit":`lint-staged`,predeploy:`pnpm build-storybook`,lint:`eslint src --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`,"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`},"lint-staged":{"*.{js,ts}":`eslint --cache --fix`,"*":`prettier --ignore-unknown --write`},devDependencies:{"@chromatic-com/storybook":`^5.0.0`,"@commitlint/cli":`21.2.2`,"@commitlint/config-conventional":`21.2.2`,"@eslint/js":`^10.0.1`,"@fortawesome/fontawesome-free":`^7.2.0`,"@storybook/addon-docs":`^10.2.17`,"@storybook/html-vite":`^10.2.17`,"@storybook/test-runner":`^0.24.0`,"@types/d3":`^7.4.3`,"@types/leaflet":`^1.9.12`,"@types/vanillajs-datepicker":`^1.3.5`,"@typescript-eslint/eslint-plugin":`8.69.0`,"@typescript-eslint/parser":`8.69.0`,"@vitest/coverage-v8":`^5.0.0`,"@vitest/ui":`^5.0.0`,eslint:`10.10.0`,"eslint-plugin-sonarjs":`4.2.0`,"eslint-plugin-storybook":`^10.2.17`,"gh-pages":`6.3.0`,globals:`^17.3.0`,"happy-dom":`^20.8.3`,husky:`9.1.7`,leaflet:`1.9.4`,"lint-staged":`17.4.1`,playwright:`^1.57.0`,prettier:`^3.8.1`,semver:`7.8.5`,storybook:`^10.2.17`,"tabulator-tables":`6.5.2`,"tods-competition-factory":`6.38.0`,typescript:`^6.0.2`,vite:`8.2.2`,"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":`^6.0.0`,leaflet:`^1.9.4`},peerDependenciesMeta:{leaflet:{optional:!0}}};function mC(){return pC.version}var hC={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 gC(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&&B(i.onClick)&&i.onClick(),n&&B(n)&&n()},e.appendChild(t)}return{elements:r}}var _C=(e,t)=>n=>n?.trim().length>=e&&(!t||n?.trim().length<=t);function vC(e){return t.tools.isConvertableInteger(e)&&parseInt(e.toString())>=0}var yC=(e,t)=>n=>vC(n)&&Number(n)>=e&&Number(n)<=t,bC=e=>/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?\d)(?=.*?[#?!@$%^&*-]).{8,12}$/.test(e);function xC(e){return t.tools.dateTime.dateValidation.test(e)}var SC=(e,t)=>n=>{let r=(n||``).trim().split(` `).length;return r>=e&&(!t||r<=t)},CC=/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i,wC=e=>CC.exec(e),TC=_({dateValidator:()=>xC,emailValidator:()=>wC,nameValidator:()=>_C,numericRange:()=>yC,numericValidator:()=>vC,passwordValidator:()=>bC,wordValidator:()=>SC}),EC=class{constructor({tournamentRecord:e,drawId:n,structureId:r,eventId:i}){this.tournamentRecord=e,this.drawId=n,this.structureId=r,this.eventId=i||e.events?.[0]?.eventId,t.tournamentEngine.setState(e)}setRenderCallback(e){this.renderCallback=e}getDrawEntryParticipantIds(){let{event:e,drawDefinition:n}=t.tournamentEngine.getEvent({drawId:this.drawId})||{};if(!e)return[];let{flightProfile:r}=t.tournamentEngine.getFlightProfile({eventId:this.eventId})||{};return(r?.flights?.find(e=>e.drawId===this.drawId)?.drawEntries||n?.entries||[]).map(e=>e.participantId).filter(Boolean)}getAllParticipants(){t.tournamentEngine.setState(this.tournamentRecord);let e=this.getDrawEntryParticipantIds();if(!e.length)return[];let{participants:n=[]}=t.tournamentEngine.getParticipants({participantFilters:{participantIds:e}})||{};return n.map(e=>({participantId:e.participantId,participantName:e.participantName,participantType:e.participantType,person:e.person,individualParticipants:e.individualParticipants}))}getAvailableParticipants(){t.tournamentEngine.setState(this.tournamentRecord);let e=this.getAllParticipants(),{assignedParticipantIds:n=[]}=t.tournamentEngine.getAssignedParticipantIds({drawId:this.drawId})||{};return e.filter(e=>!n.includes(e.participantId))}removeAssignment({drawPosition:e}){t.tournamentEngine.setState(this.tournamentRecord);let n=this.getMatchUps().find(t=>t.sides?.some(t=>t.drawPosition===e))?.sides?.find(t=>t.drawPosition===e)?.bye===!0,r=t.tournamentEngine.removeDrawPositionAssignment({drawId:this.drawId,structureId:this.structureId,drawPosition:e});if(r.error)return{success:!1,error:r.error};let{tournamentRecord:i}=t.tournamentEngine.getState()||{};return this.tournamentRecord=i,n&&this.renderCallback&&this.renderCallback(),{success:!0}}assignParticipant({drawPosition:e,participantId:n}){t.tournamentEngine.setState(this.tournamentRecord);let r=t.tournamentEngine.assignDrawPosition({drawId:this.drawId,structureId:this.structureId,drawPosition:e,participantId:n});if(r.error)return{success:!1,error:r.error};let{tournamentRecord:i}=t.tournamentEngine.getState()||{};return this.tournamentRecord=i,this.focusDrawPosition=e+1,this.renderCallback&&this.renderCallback(),{success:!0}}getAndClearFocusDrawPosition(){let e=this.focusDrawPosition;return this.focusDrawPosition=void 0,e}assignBye({drawPosition:e}){t.tournamentEngine.setState(this.tournamentRecord);let n=t.tournamentEngine.assignDrawPositionBye({drawId:this.drawId,structureId:this.structureId,drawPosition:e});if(n.error)return{success:!1,error:n.error};let{tournamentRecord:r}=t.tournamentEngine.getState()||{};return this.tournamentRecord=r,this.focusDrawPosition=e+1,this.renderCallback&&this.renderCallback(),{success:!0}}assignQualifier({drawPosition:e}){t.tournamentEngine.setState(this.tournamentRecord);let n=t.tournamentEngine.assignDrawPosition({drawId:this.drawId,structureId:this.structureId,drawPosition:e,qualifier:!0});if(n.error)return{success:!1,error:n.error};let{tournamentRecord:r}=t.tournamentEngine.getState()||{};return this.tournamentRecord=r,this.focusDrawPosition=e+1,this.renderCallback&&this.renderCallback(),{success:!0}}getMatchUps(){t.tournamentEngine.setState(this.tournamentRecord);let{eventData:e}=t.tournamentEngine.getEventData({eventId:this.eventId})||{},n=(e?.drawsData?.find(e=>e.drawId===this.drawId))?.structures?.find(e=>e.structureId===this.structureId)?.roundMatchUps;return n?Object.values(n).flat():[]}getState(){return this.tournamentRecord}getContext(){return{drawId:this.drawId,structureId:this.structureId}}},DC=`<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>`,OC=new WeakMap;function kC(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=DC,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),OC.set(n,i),n.appendChild(r),n}function AC(e){OC.get(e)?.()}function jC(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function MC(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function NC(e){let t,n,r;e.length===2?(t=e===jC||e===MC?e:PC,n=e,r=e):(t=jC,n=(t,n)=>jC(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 PC(){return 0}function FC(e){return e===null?NaN:+e}var IC=NC(jC),LC=IC.right;IC.left,NC(FC).center;function RC(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 zC=class extends Map{constructor(e,t=UC){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(BC(this,e))}has(e){return super.has(BC(this,e))}set(e,t){return super.set(VC(this,e),t)}delete(e){return super.delete(HC(this,e))}};function BC({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):n}function VC({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function HC({_intern:e,_key:t},n){let r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function UC(e){return typeof e==`object`&&e?e.valueOf():e}var WC=Math.sqrt(50),GC=Math.sqrt(10),KC=Math.sqrt(2);function qC(e,t,n){let r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/10**i,o=a>=WC?10:a>=GC?5:a>=KC?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?qC(e,t,n*2):[s,c,l]}function JC(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?qC(t,e,n):qC(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 YC(e,t,n){return t=+t,e=+e,n=+n,qC(e,t,n)[2]}function XC(e,t,n){t=+t,e=+e,n=+n;let r=t<e,i=r?YC(t,e,n):YC(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}function ZC(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 QC(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 $C(e){return e}var ew=1,tw=2,nw=3,rw=4,iw=1e-6;function aw(e){return`translate(`+e+`,0)`}function ow(e){return`translate(0,`+e+`)`}function sw(e){return t=>+e(t)}function cw(e,t){return t=Math.max(0,e.bandwidth()-t*2)/2,e.round()&&(t=Math.round(t)),n=>+e(n)+t}function lw(){return!this.__axis}function uw(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===ew||e===rw?-1:1,u=e===rw||e===tw?`x`:`y`,d=e===ew||e===nw?aw:ow;function f(f){var p=r??(t.ticks?t.ticks.apply(t,n):t.domain()),m=i??(t.tickFormat?t.tickFormat.apply(t,n):$C),h=Math.max(a,0)+s,g=t.range(),_=+g[0]+c,v=+g[g.length-1]+c,y=(t.bandwidth?cw:sw)(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===ew?`0em`:e===nw?`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`,iw).attr(`transform`,function(e){return isFinite(e=y(e))?d(e+c):this.getAttribute(`transform`)}),w.attr(`opacity`,iw).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===rw||e===tw?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(lw).attr(`fill`,`none`).attr(`font-size`,10).attr(`font-family`,`sans-serif`).attr(`text-anchor`,e===tw?`start`:e===rw?`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 dw(e){return uw(nw,e)}function fw(e){return uw(rw,e)}var pw={value:()=>{}};function mw(){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 hw(n)}function hw(e){this._=e}function gw(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}})}hw.prototype=mw.prototype={constructor:hw,on:function(e,t){var n=this._,r=gw(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=_w(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]=vw(n[i],e.name,t);else if(t==null)for(i in n)n[i]=vw(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 hw(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 _w(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function vw(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=pw,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var yw={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 bw(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),yw.hasOwnProperty(t)?{space:yw[t],local:e}:e}function xw(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 Sw(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Cw(e){var t=bw(e);return(t.local?Sw:xw)(t)}function ww(){}function Tw(e){return e==null?ww:function(){return this.querySelector(e)}}function Ew(e){typeof e!=`function`&&(e=Tw(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 mE(r,this._parents)}function Dw(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Ow(){return[]}function kw(e){return e==null?Ow:function(){return this.querySelectorAll(e)}}function Aw(e){return function(){return Dw(e.apply(this,arguments))}}function jw(e){e=typeof e==`function`?Aw(e):kw(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 mE(r,i)}function Mw(e){return function(){return this.matches(e)}}function Nw(e){return function(t){return t.matches(e)}}var Pw=Array.prototype.find;function Fw(e){return function(){return Pw.call(this.children,e)}}function Iw(){return this.firstElementChild}function Lw(e){return this.select(e==null?Iw:Fw(typeof e==`function`?e:Nw(e)))}var Rw=Array.prototype.filter;function zw(){return Array.from(this.children)}function Bw(e){return function(){return Rw.call(this.children,e)}}function Vw(e){return this.selectAll(e==null?zw:Bw(typeof e==`function`?e:Nw(e)))}function Hw(e){typeof e!=`function`&&(e=Mw(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 mE(r,this._parents)}function Uw(e){return Array(e.length)}function Ww(){return new mE(this._enter||this._groups.map(Uw),this._parents)}function Gw(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Gw.prototype={constructor:Gw,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 Kw(e){return function(){return e}}function qw(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 Gw(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function Jw(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 Gw(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function Yw(e){return e.__data__}function Xw(e,t){if(!arguments.length)return Array.from(this,Yw);var n=t?Jw:qw,r=this._parents,i=this._groups;typeof e!=`function`&&(e=Kw(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=Zw(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 mE(o,r),o._enter=s,o._exit=c,o}function Zw(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function Qw(){return new mE(this._exit||this._groups.map(Uw),this._parents)}function $w(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 eT(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 mE(s,this._parents)}function tT(){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 nT(e){e||=rT;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 mE(i,this._parents).order()}function rT(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function iT(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function aT(){return Array.from(this)}function oT(){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 sT(){let e=0;for(let t of this)++e;return e}function cT(){return!this.node()}function lT(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 uT(e){return function(){this.removeAttribute(e)}}function dT(e){return function(){this.removeAttributeNS(e.space,e.local)}}function fT(e,t){return function(){this.setAttribute(e,t)}}function pT(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function mT(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function hT(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 gT(e,t){var n=bw(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?dT:uT:typeof t==`function`?n.local?hT:mT:n.local?pT:fT)(n,t))}function _T(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function vT(e){return function(){this.style.removeProperty(e)}}function yT(e,t,n){return function(){this.style.setProperty(e,t,n)}}function bT(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function xT(e,t,n){return arguments.length>1?this.each((t==null?vT:typeof t==`function`?bT:yT)(e,t,n??``)):ST(this.node(),e)}function ST(e,t){return e.style.getPropertyValue(t)||_T(e).getComputedStyle(e,null).getPropertyValue(t)}function CT(e){return function(){delete this[e]}}function wT(e,t){return function(){this[e]=t}}function TT(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function ET(e,t){return arguments.length>1?this.each((t==null?CT:typeof t==`function`?TT:wT)(e,t)):this.node()[e]}function DT(e){return e.trim().split(/^|\s+/)}function OT(e){return e.classList||new kT(e)}function kT(e){this._node=e,this._names=DT(e.getAttribute(`class`)||``)}kT.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 AT(e,t){for(var n=OT(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function jT(e,t){for(var n=OT(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function MT(e){return function(){AT(this,e)}}function NT(e){return function(){jT(this,e)}}function PT(e,t){return function(){(t.apply(this,arguments)?AT:jT)(this,e)}}function FT(e,t){var n=DT(e+``);if(arguments.length<2){for(var r=OT(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?PT:t?MT:NT)(n,t))}function IT(){this.textContent=``}function LT(e){return function(){this.textContent=e}}function RT(e){return function(){var t=e.apply(this,arguments);this.textContent=t??``}}function zT(e){return arguments.length?this.each(e==null?IT:(typeof e==`function`?RT:LT)(e)):this.node().textContent}function BT(){this.innerHTML=``}function VT(e){return function(){this.innerHTML=e}}function HT(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??``}}function UT(e){return arguments.length?this.each(e==null?BT:(typeof e==`function`?HT:VT)(e)):this.node().innerHTML}function WT(){this.nextSibling&&this.parentNode.appendChild(this)}function GT(){return this.each(WT)}function KT(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function qT(){return this.each(KT)}function JT(e){var t=typeof e==`function`?e:Cw(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function YT(){return null}function XT(e,t){var n=typeof e==`function`?e:Cw(e),r=t==null?YT:typeof t==`function`?t:Tw(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function ZT(){var e=this.parentNode;e&&e.removeChild(this)}function QT(){return this.each(ZT)}function $T(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function eE(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function tE(e){return this.select(e?eE:$T)}function nE(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function rE(e){return function(t){e.call(this,t,this.__data__)}}function iE(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 aE(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 oE(e,t,n){return function(){var r=this.__on,i,a=rE(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 sE(e,t,n){var r=iE(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?oE:aE,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function cE(e,t,n){var r=_T(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 lE(e,t){return function(){return cE(this,e,t)}}function uE(e,t){return function(){return cE(this,e,t.apply(this,arguments))}}function dE(e,t){return this.each((typeof t==`function`?uE:lE)(e,t))}function*fE(){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 pE=[null];function mE(e,t){this._groups=e,this._parents=t}function hE(){return new mE([[document.documentElement]],pE)}function gE(){return this}mE.prototype=hE.prototype={constructor:mE,select:Ew,selectAll:jw,selectChild:Lw,selectChildren:Vw,filter:Hw,data:Xw,enter:Ww,exit:Qw,join:$w,merge:eT,selection:gE,order:tT,sort:nT,call:iT,nodes:aT,node:oT,size:sT,empty:cT,each:lT,attr:gT,style:xT,property:ET,classed:FT,text:zT,html:UT,raise:GT,lower:qT,append:JT,insert:XT,remove:QT,clone:tE,datum:nE,on:sE,dispatch:dE,[Symbol.iterator]:fE};function _E(e){return typeof e==`string`?new mE([[document.querySelector(e)]],[document.documentElement]):new mE([[e]],pE)}function vE(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function yE(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function bE(){}var xE=.7,SE=1/xE,CE=`\\s*([+-]?\\d+)\\s*`,wE=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,TE=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,EE=/^#([0-9a-f]{3,8})$/,DE=RegExp(`^rgb\\(${CE},${CE},${CE}\\)$`),OE=RegExp(`^rgb\\(${TE},${TE},${TE}\\)$`),kE=RegExp(`^rgba\\(${CE},${CE},${CE},${wE}\\)$`),AE=RegExp(`^rgba\\(${TE},${TE},${TE},${wE}\\)$`),jE=RegExp(`^hsl\\(${wE},${TE},${TE}\\)$`),ME=RegExp(`^hsla\\(${wE},${TE},${TE},${wE}\\)$`),NE={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};vE(bE,RE,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:PE,formatHex:PE,formatHex8:FE,formatHsl:IE,formatRgb:LE,toString:LE});function PE(){return this.rgb().formatHex()}function FE(){return this.rgb().formatHex8()}function IE(){return ZE(this).formatHsl()}function LE(){return this.rgb().formatRgb()}function RE(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=EE.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?zE(t):n===3?new UE(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?BE(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?BE(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=DE.exec(e))?new UE(t[1],t[2],t[3],1):(t=OE.exec(e))?new UE(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=kE.exec(e))?BE(t[1],t[2],t[3],t[4]):(t=AE.exec(e))?BE(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=jE.exec(e))?XE(t[1],t[2]/100,t[3]/100,1):(t=ME.exec(e))?XE(t[1],t[2]/100,t[3]/100,t[4]):NE.hasOwnProperty(e)?zE(NE[e]):e===`transparent`?new UE(NaN,NaN,NaN,0):null}function zE(e){return new UE(e>>16&255,e>>8&255,e&255,1)}function BE(e,t,n,r){return r<=0&&(e=t=n=NaN),new UE(e,t,n,r)}function VE(e){return e instanceof bE||(e=RE(e)),e?(e=e.rgb(),new UE(e.r,e.g,e.b,e.opacity)):new UE}function HE(e,t,n,r){return arguments.length===1?VE(e):new UE(e,t,n,r??1)}function UE(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}vE(UE,HE,yE(bE,{brighter(e){return e=e==null?SE:SE**+e,new UE(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?xE:xE**+e,new UE(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new UE(JE(this.r),JE(this.g),JE(this.b),qE(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:WE,formatHex:WE,formatHex8:GE,formatRgb:KE,toString:KE}));function WE(){return`#${YE(this.r)}${YE(this.g)}${YE(this.b)}`}function GE(){return`#${YE(this.r)}${YE(this.g)}${YE(this.b)}${YE((isNaN(this.opacity)?1:this.opacity)*255)}`}function KE(){let e=qE(this.opacity);return`${e===1?`rgb(`:`rgba(`}${JE(this.r)}, ${JE(this.g)}, ${JE(this.b)}${e===1?`)`:`, ${e})`}`}function qE(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function JE(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function YE(e){return e=JE(e),(e<16?`0`:``)+e.toString(16)}function XE(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new $E(e,t,n,r)}function ZE(e){if(e instanceof $E)return new $E(e.h,e.s,e.l,e.opacity);if(e instanceof bE||(e=RE(e)),!e)return new $E;if(e instanceof $E)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 $E(o,s,c,e.opacity)}function QE(e,t,n,r){return arguments.length===1?ZE(e):new $E(e,t,n,r??1)}function $E(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}vE($E,QE,yE(bE,{brighter(e){return e=e==null?SE:SE**+e,new $E(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?xE:xE**+e,new $E(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 UE(nD(e>=240?e-240:e+120,i,r),nD(e,i,r),nD(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new $E(eD(this.h),tD(this.s),tD(this.l),qE(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=qE(this.opacity);return`${e===1?`hsl(`:`hsla(`}${eD(this.h)}, ${tD(this.s)*100}%, ${tD(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function eD(e){return e=(e||0)%360,e<0?e+360:e}function tD(e){return Math.max(0,Math.min(1,e||0))}function nD(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 rD=e=>()=>e;function iD(e,t){return function(n){return e+n*t}}function aD(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function oD(e){return(e=+e)==1?sD:function(t,n){return n-t?aD(t,n,e):rD(isNaN(t)?n:t)}}function sD(e,t){var n=t-e;return n?iD(e,n):rD(isNaN(e)?t:e)}var cD=(function e(t){var n=oD(t);function r(e,t){var r=n((e=HE(e)).r,(t=HE(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=sD(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 lD(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 uD(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function dD(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=Array(r),a=Array(n),o;for(o=0;o<r;++o)i[o]=bD(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 fD(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function pD(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function mD(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]=bD(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var hD=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,gD=new RegExp(hD.source,`g`);function _D(e){return function(){return e}}function vD(e){return function(t){return e(t)+``}}function yD(e,t){var n=hD.lastIndex=gD.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=hD.exec(e))&&(i=gD.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:pD(r,i)})),n=gD.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?vD(c[0].x):_D(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 bD(e,t){var n=typeof t,r;return t==null||n===`boolean`?rD(t):(n===`number`?pD:n===`string`?(r=RE(t))?(t=r,cD):yD:t instanceof RE?cD:t instanceof Date?fD:uD(t)?lD:Array.isArray(t)?dD:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?mD:pD)(e,t)}function xD(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var SD=180/Math.PI,CD={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function wD(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)*SD,skewX:Math.atan(c)*SD,scaleX:o,scaleY:s}}var TD;function ED(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?CD:wD(t.a,t.b,t.c,t.d,t.e,t.f)}function DD(e){return e==null||(TD||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),TD.setAttribute(`transform`,e),!(e=TD.transform.baseVal.consolidate()))?CD:(e=e.matrix,wD(e.a,e.b,e.c,e.d,e.e,e.f))}function OD(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:pD(e,i)},{i:c-2,x:pD(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:pD(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:pD(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:pD(e,n)},{i:s-2,x:pD(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 kD=OD(ED,`px, `,`px)`,`deg)`),AD=OD(DD,`, `,`)`,`)`),jD=0,MD=0,ND=0,PD=1e3,FD,ID,LD=0,RD=0,zD=0,BD=typeof performance==`object`&&performance.now?performance:Date,VD=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function HD(){return RD||=(VD(UD),BD.now()+zD)}function UD(){RD=0}function WD(){this._call=this._time=this._next=null}WD.prototype=GD.prototype={constructor:WD,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?HD():+n)+(t==null?0:+t),!this._next&&ID!==this&&(ID?ID._next=this:FD=this,ID=this),this._call=e,this._time=n,XD()},stop:function(){this._call&&(this._call=null,this._time=1/0,XD())}};function GD(e,t,n){var r=new WD;return r.restart(e,t,n),r}function KD(){HD(),++jD;for(var e=FD,t;e;)(t=RD-e._time)>=0&&e._call.call(void 0,t),e=e._next;--jD}function qD(){RD=(LD=BD.now())+zD,jD=MD=0;try{KD()}finally{jD=0,YD(),RD=0}}function JD(){var e=BD.now(),t=e-LD;t>PD&&(zD-=t,LD=e)}function YD(){for(var e,t=FD,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:FD=n);ID=e,XD(r)}function XD(e){jD||(MD&&=clearTimeout(MD),e-RD>24?(e<1/0&&(MD=setTimeout(qD,e-BD.now()-zD)),ND&&=clearInterval(ND)):(ND||=(LD=BD.now(),setInterval(JD,PD)),jD=1,VD(qD)))}function ZD(e,t,n){var r=new WD;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var QD=mw(`start`,`end`,`cancel`,`interrupt`),$D=[];function eO(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;iO(e,n,{name:t,index:r,group:i,on:QD,tween:$D,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function tO(e,t){var n=rO(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function nO(e,t){var n=rO(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function rO(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function iO(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=GD(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 ZD(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(ZD(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 aO(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 oO(e){return this.each(function(){aO(this,e)})}function sO(e,t){var n,r;return function(){var i=nO(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 cO(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=nO(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 lO(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=rO(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?sO:cO)(n,e,t))}function uO(e,t,n){var r=e._id;return e.each(function(){var e=nO(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return rO(e,r).value[t]}}function dO(e,t){var n;return(typeof t==`number`?pD:t instanceof RE?cD:(n=RE(t))?(t=n,cD):yD)(e,t)}function fO(e){return function(){this.removeAttribute(e)}}function pO(e){return function(){this.removeAttributeNS(e.space,e.local)}}function mO(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 hO(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 gO(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 _O(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 vO(e,t){var n=bw(e),r=n===`transform`?AD:dO;return this.attrTween(e,typeof t==`function`?(n.local?_O:gO)(n,r,uO(this,`attr.`+e,t)):t==null?(n.local?pO:fO)(n):(n.local?hO:mO)(n,r,t))}function yO(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function bO(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function xO(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&bO(e,i)),n}return i._value=t,i}function SO(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&yO(e,i)),n}return i._value=t,i}function CO(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=bw(e);return this.tween(n,(r.local?xO:SO)(r,t))}function wO(e,t){return function(){tO(this,e).delay=+t.apply(this,arguments)}}function TO(e,t){return t=+t,function(){tO(this,e).delay=t}}function EO(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?wO:TO)(t,e)):rO(this.node(),t).delay}function DO(e,t){return function(){nO(this,e).duration=+t.apply(this,arguments)}}function OO(e,t){return t=+t,function(){nO(this,e).duration=t}}function kO(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?DO:OO)(t,e)):rO(this.node(),t).duration}function AO(e,t){if(typeof t!=`function`)throw Error();return function(){nO(this,e).ease=t}}function jO(e){var t=this._id;return arguments.length?this.each(AO(t,e)):rO(this.node(),t).ease}function MO(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();nO(this,e).ease=n}}function NO(e){if(typeof e!=`function`)throw Error();return this.each(MO(this._id,e))}function PO(e){typeof e!=`function`&&(e=Mw(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 lk(r,this._parents,this._name,this._id)}function FO(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 lk(o,this._parents,this._name,this._id)}function IO(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 LO(e,t,n){var r,i,a=IO(t)?tO:nO;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function RO(e,t){var n=this._id;return arguments.length<2?rO(this.node(),n).on.on(e):this.each(LO(n,e,t))}function zO(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function BO(){return this.on(`end.remove`,zO(this._id))}function VO(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=Tw(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,eO(l[f],t,n,f,l,rO(u,n)));return new lk(a,this._parents,t,n)}function HO(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=kw(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=rO(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&eO(p,t,n,h,f,m);a.push(f),o.push(u)}return new lk(a,o,t,n)}var UO=hE.prototype.constructor;function WO(){return new UO(this._groups,this._parents)}function GO(e,t){var n,r,i;return function(){var a=ST(this,e),o=(this.style.removeProperty(e),ST(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function KO(e){return function(){this.style.removeProperty(e)}}function qO(e,t,n){var r,i=n+``,a;return function(){var o=ST(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function JO(e,t,n){var r,i,a;return function(){var o=ST(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),ST(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function YO(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=nO(this,e),l=c.on,u=c.value[a]==null?s||=KO(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function XO(e,t,n){var r=(e+=``)==`transform`?kD:dO;return t==null?this.styleTween(e,GO(e,r)).on(`end.style.`+e,KO(e)):typeof t==`function`?this.styleTween(e,JO(e,r,uO(this,`style.`+e,t))).each(YO(this._id,e)):this.styleTween(e,qO(e,r,t),n).on(`end.style.`+e,null)}function ZO(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function QO(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&ZO(e,a,n)),r}return a._value=t,a}function $O(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,QO(e,t,n??``))}function ek(e){return function(){this.textContent=e}}function tk(e){return function(){var t=e(this);this.textContent=t??``}}function nk(e){return this.tween(`text`,typeof e==`function`?tk(uO(this,`text`,e)):ek(e==null?``:e+``))}function rk(e){return function(t){this.textContent=e.call(this,t)}}function ik(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&rk(r)),t}return r._value=e,r}function ak(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,ik(e))}function ok(){for(var e=this._name,t=this._id,n=uk(),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=rO(c,t);eO(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new lk(r,this._parents,e,n)}function sk(){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=nO(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 ck=0;function lk(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function uk(){return++ck}var dk=hE.prototype;lk.prototype={constructor:lk,select:VO,selectAll:HO,selectChild:dk.selectChild,selectChildren:dk.selectChildren,filter:PO,merge:FO,selection:WO,transition:ok,call:dk.call,nodes:dk.nodes,node:dk.node,size:dk.size,empty:dk.empty,each:dk.each,on:RO,attr:vO,attrTween:CO,style:XO,styleTween:$O,text:nk,textTween:ak,remove:BO,tween:lO,delay:EO,duration:kO,ease:jO,easeVarying:NO,end:sk,[Symbol.iterator]:dk[Symbol.iterator]};function fk(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var pk={time:null,delay:0,duration:250,ease:fk};function mk(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function hk(e){var t,n;e instanceof lk?(t=e._id,e=e._name):(t=uk(),(n=pk).time=HD(),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])&&eO(c,e,t,l,o,n||mk(c,t));return new lk(r,this._parents,e,t)}hE.prototype.interrupt=oO,hE.prototype.transition=hk;var{abs:gk,max:_k,min:vk}=Math;[`w`,`e`].map(yk),[`n`,`s`].map(yk),[`n`,`w`,`e`,`s`,`nw`,`ne`,`sw`,`se`].map(yk);function yk(e){return{type:e}}var bk=Math.PI,xk=2*bk,Sk=1e-6,Ck=xk-Sk;function wk(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function Tk(e){let t=Math.floor(e);if(!(t>=0))throw Error(`invalid digits: ${e}`);if(t>15)return wk;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 Ek=class{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._=``,this._append=e==null?wk:Tk(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>Sk){if(!(Math.abs(u*s-c*l)>Sk)||!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((bk-Math.acos((m+d-h)/(2*g*_)))/2),y=v/_,b=v/g;Math.abs(y-1)>Sk&&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)>Sk||Math.abs(this._y1-l)>Sk)&&this._append`L${c},${l}`,n&&(d<0&&(d=d%xk+xk),d>Ck?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>Sk&&this._append`A${n},${n},0,${+(d>=bk)},${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._}};Ek.prototype;function Dk(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString(`en`).replace(/,/g,``):e.toString(10)}function Ok(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 kk(e){return e=Ok(Math.abs(e)),e?e[1]:NaN}function Ak(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 jk(e){return function(t){return t.replace(/[0-9]/g,function(t){return e[+t]})}}var Mk=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Nk(e){if(!(t=Mk.exec(e)))throw Error(`invalid format: `+e);var t;return new Pk({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]})}Nk.prototype=Pk.prototype;function Pk(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+``}Pk.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 Fk(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 Ik;function Lk(e,t){var n=Ok(e,t);if(!n)return Ik=void 0,e.toPrecision(t);var r=n[0],i=n[1],a=i-(Ik=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`)+Ok(e,Math.max(0,t+a-1))[0]}function Rk(e,t){var n=Ok(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 zk={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+``,d:Dk,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)=>Rk(e*100,t),r:Rk,s:Lk,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Bk(e){return e}var Vk=Array.prototype.map,Hk=[`y`,`z`,`a`,`f`,`p`,`n`,`µ`,`m`,``,`k`,`M`,`G`,`T`,`P`,`E`,`Z`,`Y`];function Uk(e){var t=e.grouping===void 0||e.thousands===void 0?Bk:Ak(Vk.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?Bk:jk(Vk.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=Nk(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`):zk[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=zk[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=Fk(e)),w&&+e==0&&f!==`+`&&(w=!1),n=(w?f===`(`?f:s:f===`-`||f===`(`?``:f)+n,r=(y===`s`&&!isNaN(e)&&Ik!==void 0?Hk[8+Ik/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(kk(t)/3)))*3,r=10**-n,i=l((e=Nk(e),e.type=`f`,e),{suffix:Hk[8+n/3]});return function(e){return i(r*e)}}return{format:l,formatPrefix:u}}var Wk,Gk,Kk;qk({thousands:`,`,grouping:[3],currency:[`$`,``]});function qk(e){return Wk=Uk(e),Gk=Wk.format,Kk=Wk.formatPrefix,Wk}function Jk(e){return Math.max(0,-kk(Math.abs(e)))}function Yk(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(kk(t)/3)))*3-kk(Math.abs(e)))}function Xk(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,kk(t)-kk(e))+1}function Zk(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 Qk(){return this.eachAfter(Zk)}function $k(e,t){let n=-1;for(let r of this)e.call(t,r,++n,this);return this}function eA(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 tA(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 nA(e,t){let n=-1;for(let r of this)if(e.call(t,r,++n,this))return r}function rA(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 iA(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}function aA(e){for(var t=this,n=oA(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 oA(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 sA(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}function cA(){return Array.from(this)}function lA(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}function uA(){var e=this,t=[];return e.each(function(n){n!==e&&t.push({source:n.parent,target:n})}),t}function*dA(){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 fA(e,t){e instanceof Map?(e=[void 0,e],t===void 0&&(t=hA)):t===void 0&&(t=mA);for(var n=new vA(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 vA(o[s])),a.parent=r,a.depth=r.depth+1;return n.eachBefore(_A)}function pA(){return fA(this).eachBefore(gA)}function mA(e){return e.children}function hA(e){return Array.isArray(e)?e[1]:null}function gA(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function _A(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function vA(e){this.data=e,this.depth=this.height=0,this.parent=null}vA.prototype=fA.prototype={constructor:vA,count:Qk,each:$k,eachAfter:tA,eachBefore:eA,find:nA,sum:rA,sort:iA,path:aA,ancestors:sA,descendants:cA,leaves:lA,links:uA,copy:pA,[Symbol.iterator]:dA};function yA(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 bA(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 xA(){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(yA),i}function a(e,t){return function(r){r.children&&bA(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 SA(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}var CA=Symbol(`implicit`);function wA(){var e=new zC,t=[],n=[],r=CA;function i(i){let a=e.get(i);if(a===void 0){if(r!==CA)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 zC;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 wA(t,n).unknown(r)},SA.apply(i,arguments),i}function TA(){var e=wA().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=QC(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 TA(t(),[r,i]).round(s).paddingInner(c).paddingOuter(l).align(u)},SA.apply(d(),arguments)}function EA(e){var t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,delete e.paddingOuter,e.copy=function(){return EA(t())},e}function DA(){return EA(TA.apply(null,arguments).paddingInner(1))}function OA(e){return function(){return e}}function kA(e){return+e}var AA=[0,1];function jA(e){return e}function MA(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:OA(isNaN(t)?NaN:.5)}function NA(e,t){var n;return e>t&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}function PA(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=MA(i,r),a=n(o,a)):(r=MA(r,i),a=n(a,o)),function(e){return a(r(e))}}function FA(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]=MA(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(t){var n=LC(e,t,1,r)-1;return a[n](i[n](t))}}function IA(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function LA(){var e=AA,t=AA,n=bD,r,i,a,o=jA,s,c,l;function u(){var n=Math.min(e.length,t.length);return o!==jA&&(o=NA(e[0],e[n-1])),s=n>2?FA:PA,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),pD))(n)))},d.domain=function(t){return arguments.length?(e=Array.from(t,kA),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=xD,u()},d.clamp=function(e){return arguments.length?(o=e?!0:jA,u()):o!==jA},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 RA(){return LA()(jA,jA)}function zA(e,t,n,r){var i=XC(e,t,n),a;switch(r=Nk(r??`,f`),r.type){case`s`:var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=Yk(i,o))&&(r.precision=a),Kk(r,o);case``:case`e`:case`g`:case`p`:case`r`:r.precision==null&&!isNaN(a=Xk(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type===`e`));break;case`f`:case`%`:r.precision==null&&!isNaN(a=Jk(i))&&(r.precision=a-(r.type===`%`)*2)}return Gk(r)}function BA(e){var t=e.domain;return e.ticks=function(e){var n=t();return JC(n[0],n[n.length-1],e??10)},e.tickFormat=function(e,n){var r=t();return zA(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=YC(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 VA(){var e=RA();return e.copy=function(){return IA(e,VA())},SA.apply(e,arguments),BA(e)}function HA(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 UA=new Date,WA=new Date;function GA(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=>GA(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)=>(UA.setTime(+t),WA.setTime(+r),e(UA),e(WA),Math.floor(n(UA,WA))),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 KA=GA(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);KA.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?GA(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):KA),KA.range;var qA=1e3,JA=qA*60,YA=JA*60,XA=YA*24,ZA=XA*7,QA=XA*30,$A=XA*365,ej=GA(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*qA)},(e,t)=>(t-e)/qA,e=>e.getUTCSeconds());ej.range;var tj=GA(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*qA)},(e,t)=>{e.setTime(+e+t*JA)},(e,t)=>(t-e)/JA,e=>e.getMinutes());tj.range;var nj=GA(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*JA)},(e,t)=>(t-e)/JA,e=>e.getUTCMinutes());nj.range;var rj=GA(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*qA-e.getMinutes()*JA)},(e,t)=>{e.setTime(+e+t*YA)},(e,t)=>(t-e)/YA,e=>e.getHours());rj.range;var ij=GA(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*YA)},(e,t)=>(t-e)/YA,e=>e.getUTCHours());ij.range;var aj=GA(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*JA)/XA,e=>e.getDate()-1);aj.range;var oj=GA(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/XA,e=>e.getUTCDate()-1);oj.range;var sj=GA(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/XA,e=>Math.floor(e/XA));sj.range;function cj(e){return GA(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())*JA)/ZA)}var lj=cj(0),uj=cj(1),dj=cj(2),fj=cj(3),pj=cj(4),mj=cj(5),hj=cj(6);lj.range,uj.range,dj.range,fj.range,pj.range,mj.range,hj.range;function gj(e){return GA(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)/ZA)}var _j=gj(0),vj=gj(1),yj=gj(2),bj=gj(3),xj=gj(4),Sj=gj(5),Cj=gj(6);_j.range,vj.range,yj.range,bj.range,xj.range,Sj.range,Cj.range;var wj=GA(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());wj.range;var Tj=GA(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());Tj.range;var Ej=GA(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());Ej.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:GA(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)}),Ej.range;var Dj=GA(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());Dj.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:GA(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)}),Dj.range;function Oj(e,t,n,r,i,a){let o=[[ej,1,qA],[ej,5,5*qA],[ej,15,15*qA],[ej,30,30*qA],[a,1,JA],[a,5,5*JA],[a,15,15*JA],[a,30,30*JA],[i,1,YA],[i,3,3*YA],[i,6,6*YA],[i,12,12*YA],[r,1,XA],[r,2,2*XA],[n,1,ZA],[t,1,QA],[t,3,3*QA],[e,1,$A]];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=NC(([,,e])=>e).right(o,i);if(a===o.length)return e.every(XC(t/$A,n/$A,r));if(a===0)return KA.every(Math.max(XC(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[kj,Aj]=Oj(Dj,Tj,_j,sj,ij,nj),[jj,Mj]=Oj(Ej,wj,lj,aj,rj,tj);function Nj(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 Pj(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 Fj(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function Ij(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=Hj(i),u=Uj(i),d=Hj(a),f=Uj(a),p=Hj(o),m=Uj(o),h=Hj(s),g=Uj(s),_=Hj(c),v=Uj(c),y={a:N,A:P,b:F,B:ee,c:null,d:uM,e:uM,f:hM,g:EM,G:OM,H:dM,I:fM,j:pM,L:mM,m:gM,M:_M,p:te,q:I,Q:ZM,s:QM,S:vM,u:yM,U:bM,V:SM,w:CM,W:wM,x:null,X:null,y:TM,Y:DM,Z:kM,"%":XM},b={a:L,A:ne,b:re,B:R,c:null,d:AM,e:AM,f:FM,g:KM,G:JM,H:jM,I:MM,j:NM,L:PM,m:IM,M:LM,p:ie,q:z,Q:ZM,s:QM,S:RM,u:zM,U:BM,V:HM,w:UM,W:WM,x:null,X:null,y:GM,Y:qM,Z:YM,"%":XM},x={a:E,A:D,b:O,B:k,c:A,d:eM,e:eM,f:oM,g:Xj,G:Yj,H:nM,I:nM,j:tM,L:aM,m:$j,M:rM,p:T,q:Qj,Q:cM,s:lM,S:iM,u:Gj,U:Kj,V:qj,w:Wj,W:Jj,x:j,X:M,y:Xj,Y:Yj,Z:Zj,"%":sM};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=Lj[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=Fj(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=Pj(Fj(r.y,0,1)),o=a.getUTCDay(),a=o>4||o===0?vj.ceil(a):vj(a),a=oj.offset(a,(r.V-1)*7),r.y=a.getUTCFullYear(),r.m=a.getUTCMonth(),r.d=a.getUTCDate()+(r.w+6)%7):(a=Nj(Fj(r.y,0,1)),o=a.getDay(),a=o>4||o===0?uj.ceil(a):uj(a),a=aj.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?Pj(Fj(r.y,0,1)).getUTCDay():Nj(Fj(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,Pj(r)):Nj(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 Lj?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 ee(e){return s[e.getMonth()]}function te(e){return i[+(e.getHours()>=12)]}function I(e){return 1+~~(e.getMonth()/3)}function L(e){return o[e.getUTCDay()]}function ne(e){return a[e.getUTCDay()]}function re(e){return c[e.getUTCMonth()]}function R(e){return s[e.getUTCMonth()]}function ie(e){return i[+(e.getUTCHours()>=12)]}function z(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 Lj={"-":``,_:` `,0:`0`},Rj=/^\s*\d+/,zj=/^%/,Bj=/[\\^$*+?|[\]().{}]/g;function X(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 Vj(e){return e.replace(Bj,`\\$&`)}function Hj(e){return RegExp(`^(?:`+e.map(Vj).join(`|`)+`)`,`i`)}function Uj(e){return new Map(e.map((e,t)=>[e.toLowerCase(),t]))}function Wj(e,t,n){var r=Rj.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function Gj(e,t,n){var r=Rj.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function Kj(e,t,n){var r=Rj.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function qj(e,t,n){var r=Rj.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function Jj(e,t,n){var r=Rj.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function Yj(e,t,n){var r=Rj.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function Xj(e,t,n){var r=Rj.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Zj(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 Qj(e,t,n){var r=Rj.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function $j(e,t,n){var r=Rj.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function eM(e,t,n){var r=Rj.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function tM(e,t,n){var r=Rj.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function nM(e,t,n){var r=Rj.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function rM(e,t,n){var r=Rj.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function iM(e,t,n){var r=Rj.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function aM(e,t,n){var r=Rj.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function oM(e,t,n){var r=Rj.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function sM(e,t,n){var r=zj.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function cM(e,t,n){var r=Rj.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function lM(e,t,n){var r=Rj.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function uM(e,t){return X(e.getDate(),t,2)}function dM(e,t){return X(e.getHours(),t,2)}function fM(e,t){return X(e.getHours()%12||12,t,2)}function pM(e,t){return X(1+aj.count(Ej(e),e),t,3)}function mM(e,t){return X(e.getMilliseconds(),t,3)}function hM(e,t){return mM(e,t)+`000`}function gM(e,t){return X(e.getMonth()+1,t,2)}function _M(e,t){return X(e.getMinutes(),t,2)}function vM(e,t){return X(e.getSeconds(),t,2)}function yM(e){var t=e.getDay();return t===0?7:t}function bM(e,t){return X(lj.count(Ej(e)-1,e),t,2)}function xM(e){var t=e.getDay();return t>=4||t===0?pj(e):pj.ceil(e)}function SM(e,t){return e=xM(e),X(pj.count(Ej(e),e)+(Ej(e).getDay()===4),t,2)}function CM(e){return e.getDay()}function wM(e,t){return X(uj.count(Ej(e)-1,e),t,2)}function TM(e,t){return X(e.getFullYear()%100,t,2)}function EM(e,t){return e=xM(e),X(e.getFullYear()%100,t,2)}function DM(e,t){return X(e.getFullYear()%1e4,t,4)}function OM(e,t){var n=e.getDay();return e=n>=4||n===0?pj(e):pj.ceil(e),X(e.getFullYear()%1e4,t,4)}function kM(e){var t=e.getTimezoneOffset();return(t>0?`-`:(t*=-1,`+`))+X(t/60|0,`0`,2)+X(t%60,`0`,2)}function AM(e,t){return X(e.getUTCDate(),t,2)}function jM(e,t){return X(e.getUTCHours(),t,2)}function MM(e,t){return X(e.getUTCHours()%12||12,t,2)}function NM(e,t){return X(1+oj.count(Dj(e),e),t,3)}function PM(e,t){return X(e.getUTCMilliseconds(),t,3)}function FM(e,t){return PM(e,t)+`000`}function IM(e,t){return X(e.getUTCMonth()+1,t,2)}function LM(e,t){return X(e.getUTCMinutes(),t,2)}function RM(e,t){return X(e.getUTCSeconds(),t,2)}function zM(e){var t=e.getUTCDay();return t===0?7:t}function BM(e,t){return X(_j.count(Dj(e)-1,e),t,2)}function VM(e){var t=e.getUTCDay();return t>=4||t===0?xj(e):xj.ceil(e)}function HM(e,t){return e=VM(e),X(xj.count(Dj(e),e)+(Dj(e).getUTCDay()===4),t,2)}function UM(e){return e.getUTCDay()}function WM(e,t){return X(vj.count(Dj(e)-1,e),t,2)}function GM(e,t){return X(e.getUTCFullYear()%100,t,2)}function KM(e,t){return e=VM(e),X(e.getUTCFullYear()%100,t,2)}function qM(e,t){return X(e.getUTCFullYear()%1e4,t,4)}function JM(e,t){var n=e.getUTCDay();return e=n>=4||n===0?xj(e):xj.ceil(e),X(e.getUTCFullYear()%1e4,t,4)}function YM(){return`+0000`}function XM(){return`%`}function ZM(e){return+e}function QM(e){return Math.floor(e/1e3)}var $M,eN;tN({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 tN(e){return $M=Ij(e),eN=$M.format,$M.parse,$M.utcFormat,$M.utcParse,$M}function nN(e){return new Date(e)}function rN(e){return e instanceof Date?+e:+new Date(+e)}function iN(e,t,n,r,i,a,o,s,c,l){var u=RA(),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,rN)):f().map(nN)},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(HA(n,e)):u},u.copy=function(){return IA(u,iN(e,t,n,r,i,a,o,s,c,l))},u}function aN(){return SA.apply(iN(jj,Mj,Ej,wj,lj,aj,rj,tj,ej,eN).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function Z(e){return function(){return e}}var oN=Math.abs,sN=Math.atan2,cN=Math.cos,lN=Math.max,uN=Math.min,dN=Math.sin,fN=Math.sqrt,pN=Math.PI,mN=pN/2,hN=2*pN;function gN(e){return e>1?0:e<-1?pN:Math.acos(e)}function _N(e){return e>=1?mN:e<=-1?-mN:Math.asin(e)}function vN(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 Ek(t)}function yN(e){return e.innerRadius}function bN(e){return e.outerRadius}function xN(e){return e.startAngle}function SN(e){return e.endAngle}function CN(e){return e&&e.padAngle}function wN(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 TN(e,t,n,r,i,a,o){var s=e-n,c=t-r,l=(o?a:-a)/fN(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)*fN(lN(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 EN(){var e=yN,t=bN,n=Z(0),r=null,i=xN,a=SN,o=CN,s=null,c=vN(l);function l(){var l,u,d=+e.apply(this,arguments),f=+t.apply(this,arguments),p=i.apply(this,arguments)-mN,m=a.apply(this,arguments)-mN,h=oN(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>hN-1e-12)s.moveTo(f*cN(p),f*dN(p)),s.arc(0,0,f,p,m,!g),d>1e-12&&(s.moveTo(d*cN(m),d*dN(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):fN(d*d+f*f)),T=uN(oN(f-d)/2,+n.apply(this,arguments)),E=T,D=T,O,k;if(w>1e-12){var A=_N(w/d*dN(C)),j=_N(w/f*dN(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*cN(_),N=f*dN(_),P=d*cN(b),F=d*dN(b);if(T>1e-12){var ee=f*cN(v),te=f*dN(v),I=d*cN(y),L=d*dN(y),ne;if(h<pN){if(ne=wN(M,N,I,L,ee,te,P,F)){var re=M-ne[0],R=N-ne[1],ie=ee-ne[0],z=te-ne[1],ae=1/dN(gN((re*ie+R*z)/(fN(re*re+R*R)*fN(ie*ie+z*z)))/2),oe=fN(ne[0]*ne[0]+ne[1]*ne[1]);E=uN(T,(d-oe)/(ae-1)),D=uN(T,(f-oe)/(ae+1))}else E=D=0}}S>1e-12?D>1e-12?(O=TN(I,L,M,N,f,D,g),k=TN(ee,te,P,F,f,D,g),s.moveTo(O.cx+O.x01,O.cy+O.y01),D<T?s.arc(O.cx,O.cy,D,sN(O.y01,O.x01),sN(k.y01,k.x01),!g):(s.arc(O.cx,O.cy,D,sN(O.y01,O.x01),sN(O.y11,O.x11),!g),s.arc(0,0,f,sN(O.cy+O.y11,O.cx+O.x11),sN(k.cy+k.y11,k.cx+k.x11),!g),s.arc(k.cx,k.cy,D,sN(k.y11,k.x11),sN(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=TN(P,F,ee,te,d,-E,g),k=TN(M,N,I,L,d,-E,g),s.lineTo(O.cx+O.x01,O.cy+O.y01),E<T?s.arc(O.cx,O.cy,E,sN(O.y01,O.x01),sN(k.y01,k.x01),!g):(s.arc(O.cx,O.cy,E,sN(O.y01,O.x01),sN(O.y11,O.x11),!g),s.arc(0,0,d,sN(O.cy+O.y11,O.cx+O.x11),sN(k.cy+k.y11,k.cx+k.x11),g),s.arc(k.cx,k.cy,E,sN(k.y11,k.x11),sN(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-pN/2;return[cN(r)*n,dN(r)*n]},l.innerRadius=function(t){return arguments.length?(e=typeof t==`function`?t:Z(+t),l):e},l.outerRadius=function(e){return arguments.length?(t=typeof e==`function`?e:Z(+e),l):t},l.cornerRadius=function(e){return arguments.length?(n=typeof e==`function`?e:Z(+e),l):n},l.padRadius=function(e){return arguments.length?(r=e==null?null:typeof e==`function`?e:Z(+e),l):r},l.startAngle=function(e){return arguments.length?(i=typeof e==`function`?e:Z(+e),l):i},l.endAngle=function(e){return arguments.length?(a=typeof e==`function`?e:Z(+e),l):a},l.padAngle=function(e){return arguments.length?(o=typeof e==`function`?e:Z(+e),l):o},l.context=function(e){return arguments.length?(s=e??null,l):s},l}Array.prototype.slice;function DN(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function ON(e){this._context=e}ON.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 kN(e){return new ON(e)}function AN(e){return e[0]}function jN(e){return e[1]}function MN(e,t){var n=Z(!0),r=null,i=kN,a=null,o=vN(s);e=typeof e==`function`?e:e===void 0?AN:Z(e),t=typeof t==`function`?t:t===void 0?jN:Z(t);function s(s){var c,l=(s=DN(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:Z(+t),s):e},s.y=function(e){return arguments.length?(t=typeof e==`function`?e:Z(+e),s):t},s.defined=function(e){return arguments.length?(n=typeof e==`function`?e:Z(!!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 NN(e,t,n){var r=null,i=Z(!0),a=null,o=kN,s=null,c=vN(l);e=typeof e==`function`?e:e===void 0?AN:Z(+e),t=typeof t==`function`?t:Z(t===void 0?0:+t),n=typeof n==`function`?n:n===void 0?jN:Z(+n);function l(l){var u,d,f,p=(l=DN(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 MN().defined(i).curve(o).context(a)}return l.x=function(t){return arguments.length?(e=typeof t==`function`?t:Z(+t),r=null,l):e},l.x0=function(t){return arguments.length?(e=typeof t==`function`?t:Z(+t),l):e},l.x1=function(e){return arguments.length?(r=e==null?null:typeof e==`function`?e:Z(+e),l):r},l.y=function(e){return arguments.length?(t=typeof e==`function`?e:Z(+e),n=null,l):t},l.y0=function(e){return arguments.length?(t=typeof e==`function`?e:Z(+e),l):t},l.y1=function(e){return arguments.length?(n=e==null?null:typeof e==`function`?e:Z(+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:Z(!!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 PN(e){return e<0?-1:1}function FN(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(PN(a)+PN(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(s))||0}function IN(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function LN(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 RN(e){this._context=e}RN.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:LN(this,this._t0,IN(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,LN(this,IN(this,n=FN(this,e,t)),n);break;default:LN(this,this._t0,n=FN(this,e,t))}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}},Object.create(RN.prototype).point=function(e,t){RN.prototype.point.call(this,t,e)};function zN(e){return new RN(e)}function BN(e,t){this._context=e,this._t=t}BN.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 VN(e){return new BN(e,1)}function HN(e,t,n){this.k=e,this.x=t,this.y=n}HN.prototype={constructor:HN,scale:function(e){return e===1?this:new HN(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new HN(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 UN=new HN(1,0,0);WN.prototype=HN.prototype;function WN(e){for(;!e.__zoom;)if(!(e=e.parentNode))return UN;return e.__zoom}function GN(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 KN={DECISIVE:20,ROUTINE:50},qN=new Set([`WALKOVER`,`DOUBLE_WALKOVER`,`DEFAULTED`,`DOUBLE_DEFAULT`]),JN={COMPETITIVE:`#16a34a`,ROUTINE:`#3b82f6`,DECISIVE:`#8e44ad`,WALKOVER:`#6b7280`},YN=`#cfd8dc`,XN=`COMPETITIVE`,ZN=`ROUTINE`,QN=`DECISIVE`,$N=`WALKOVER`;function eP(e,t=KN){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)?$N:a<=t.DECISIVE?QN:a<=t.ROUTINE?ZN:XN}function tP(e,n=KN){if(e)return eP(t.scoreGovernor.parseScoreString({scoreString:e}),n)}function nP({winningSide:e,matchUpStatus:t,sets:n,scoreString:r,bands:i}){if(t&&qN.has(t))return $N;if(e)return n?.length?eP(n,i):tP(r,i)}function rP(e,t){return e?t?.[e]??JN[e]:YN}var{WILDCARD:iP,QUALIFIER:aP,LUCKY_LOSER:oP}=t.entryStatusConstants,sP=`text-anchor`,cP=`dominant-baseline`,lP=`fill-opacity`,uP=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 dP(e){let t=Math.floor(e.length/2),n=e.slice(0,t),r=e.slice(t).reverse();return[...n,...r]}function fP(e){if(e)switch(e){case iP:return`WC`;case aP:return`Q`;case oP:return`LL`;default:return e}}function pP(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:fP(e.entryStatus),nationalityCode:e.nationalityCode,matchUp:r,depth:t,value:1})}return n}function mP(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 hP(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}=mP(e,r);return{name:s||``,participantName:s,drawPosition:l?.drawPosition??c?.drawPosition,seedNumber:c?.seedNumber??l?.seedNumber,entryStatus:fP(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 gP(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=dP(pP(r,n.length)),a=new Map;for(let e of i)e.participantName&&e.participantName!==`BYE`&&a.set(e.participantName,e);let o=hP(dP(r),i,n.length-1,a);for(let e=1;e<n.length;e++)o=hP(dP(t[n[e]]),o,n.length-1-e,a);return o.length===1?o[0]:{name:`Tournament`,depth:0,children:o}}function _P(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=VA().domain([1,32]).range([`0`,`1`]);o=VA().domain(QC(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=VA().domain(QC(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=VA().domain(QC(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),_P(n,t)})}function vP(e,t){e&&(e.competitivenessColor=e.children?.length&&e.competitiveness?rP(e.competitiveness,t):YN,e.children?.forEach(e=>vP(e,t)))}function yP(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 bP(e,t){let n=e.find(e=>e.data.participantName&&e.data.participantName!==t);return n?.data.participantName?n.data:void 0}function xP(e,t){let n=[e.participantName],r;if(t.children&&t.children.length>0)e.scoreString&&n.push(e.scoreString),r=bP(t.children,e.participantName),r&&n.push(r.participantName);else{let r=yP(e,t.depth);r&&n.push(r)}return{messageLines:n,opponentData:r}}function SP(e,t){return-(e*t/2)+t/2}function CP(e,t,n){let r=_E(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 wP(e,t,n,r,i){let a=e.append(`text`).attr(`x`,t/2).attr(`y`,n/2).attr(sP,`middle`).attr(cP,`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(sP,`middle`).attr(cP,`middle`).attr(`font-size`,`${i}px`).style(`fill`,`var(--chc-text-secondary, #666)`).attr(`pointer-events`,`none`)}}function TP(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(sP,`middle`).attr(cP,`middle`).attr(`transform`,`translate(0, ${r*a})`).text(kP(n)))}function EP(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=gP(n),m=fA(p,e=>e.children).sum(e=>e.value||0),h=Math.min(a,o)/2,g=h/2,_=e=>e*h/200;xA().size([2*Math.PI,h-g])(m),_P(p,VA().domain([0,n.drawSize||128]).range([0,1])),vP(p,i.competitivenessColors);let v=i.colorMode??`default`,y=e=>v===`competitiveness`?e.competitivenessColor||`#cfd8dc`:e.color||`#ccc`,b=m.descendants(),x=EN().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}=CP(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}=wP(S,a,o,c,l);function M(){let e=GN(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=VA().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(sP,`middle`).attr(cP,`middle`).attr(`transform`,(t,r)=>{let i=e(r);return`translate(${Math.cos(i)*n}, ${Math.sin(i)*n})`}).text(e=>kP(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(lP,e=>e.data.nationalityCode===t?.9:.3)}).on(`mouseout`,function(){F||C.selectAll(`path`).attr(lP,.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,ee;function te(e,t){let n=t.data;if(n.participantName){let{messageLines:e,opponentData:r}=xP(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=SP(e.length,u);A.attr(`y`,o/2+i),A.style(`display`,`block`),j.style(`display`,`none`)}F?n.participantName?.toLowerCase()!==ee?.toLowerCase()&&_E(e.currentTarget).attr(lP,.9):C.selectAll(`path`).attr(lP,e=>e.data.participantName===t.data.participantName?.9:.3);let r=_(30),i=g-r-10,s={flagsGroup:w,winningFlagsGroup:T,losingFlagsGroup:E};TP(T,s,n.nationalityCode,-1,!0,i,r),n.opponent&&TP(E,s,n.opponent.nationalityCode,1,!1,i,r)}function I(e,t){if(F){let n=t.data.participantName?.toLowerCase()===ee?.toLowerCase();_E(e.currentTarget).attr(lP,n?1:.2)}else C.selectAll(`path`).attr(lP,.8);N(),M()}let L=i.eventHandlers?.clickSegment;function ne(e,t){if(!L)return;let n=t.data;L({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 re=C.selectAll(`path`).data(b).join(`path`).attr(`d`,e=>x(e)).attr(`fill`,e=>y(e.data)).attr(lP,.8).attr(`stroke`,`#fff`).attr(`stroke-width`,1).on(`mouseover`,te).on(`mouseout`,I);L&&re.style(`cursor`,`pointer`).on(`click`,ne),re.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(`
214
+ `,`2) content: () => element.cloneNode(true)`].join(` `))}var s=i.reduce(function(e,t){var n=t&&Mm(t,r);return n&&e.push(n),e},[]);return Hp(e)?s[0]:s}Nm.defaultProps=gm,Nm.setDefaultProps=vm,Nm.currentInput=$p,Object.assign({},Kd,{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)}}),Nm.setDefaultProps({render:Om});var Pm=`#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(`.`),Fm=`notes-toolbar-recent-colors`,Im=8;function Lm(){try{return JSON.parse(localStorage.getItem(Fm)||`[]`)}catch{return[]}}function Rm(e){let t=Lm().filter(t=>t!==e);t.unshift(e),t.length>Im&&(t=t.slice(0,Im)),localStorage.setItem(Fm,JSON.stringify(t))}function zm(e={}){let t=document.createElement(`div`);return t.className=`notes-toolbar`,t.appendChild(Wm(e)),t.appendChild(Gm(e)),t.appendChild(Km(e)),t.appendChild(Xm(e)),t.appendChild($m(e)),t.appendChild(eh(e)),t.appendChild(nh(e)),t}function Bm(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 Vm(e,t){let n=e.querySelector(`[data-action="heading"]`);n&&(n.value=t===!1?`0`:String(t))}function Hm(){let e=document.createElement(`div`);return e.className=`notes-toolbar-group`,e}function Um(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 Wm(e){let t=Hm(),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 Gm(e){let t=Hm();return t.appendChild(Um(`bold`,`<b>B</b>`,`Bold`,e.onBold)),t.appendChild(Um(`italic`,`<i>I</i>`,`Italic`,e.onItalic)),t.appendChild(Um(`underline`,`<u>U</u>`,`Underline`,e.onUnderline)),t.appendChild(Um(`strike`,`<s>S</s>`,`Strikethrough`,e.onStrike)),t}function Km(e){let t=Hm();return t.appendChild(qm(`color`,`A`,`Text color`,`#000000`,t=>{Rm(t),e.onColor?.(t)})),t.appendChild(qm(`background`,`A`,`Background color`,`#ffff00`,t=>{Rm(t),e.onBackground?.(t)})),t}function qm(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=Jm(r,e=>{s.style.backgroundColor=e,i(e),c?.destroy(),c=void 0});c=Nm(a,{content:e,theme:`light-border`,trigger:`manual`,interactive:!0,placement:`bottom-start`,onHidden:()=>{c?.destroy(),c=void 0}}),c.show()}),a}function Jm(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 Pm)r.appendChild(Ym(n,n===e,t));n.appendChild(r);let i=Lm();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(Ym(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 Ym(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 Xm(e){let t=Hm();return t.appendChild(Um(`orderedList`,Zm(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(Um(`bulletList`,Zm(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 Zm(e,t,n){return`<svg width="${e}" height="${t}" viewBox="0 0 ${e} ${t}" xmlns="http://www.w3.org/2000/svg">${n}</svg>`}var Qm={alignLeft:Zm(16,16,`<path d="M1 2h14v2H1zm0 4h9v2H1zm0 4h14v2H1zm0 4h9v2H1z" fill="currentColor"/>`),alignCenter:Zm(16,16,`<path d="M1 2h14v2H1zm3.5 4h7v2h-7zM1 10h14v2H1zm3.5 4h7v2h-7z" fill="currentColor"/>`),alignRight:Zm(16,16,`<path d="M1 2h14v2H1zm6 4h8v2H7zM1 10h14v2H1zm6 4h8v2H7z" fill="currentColor"/>`),alignJustify:Zm(16,16,`<path d="M1 2h14v2H1zm0 4h14v2H1zm0 4h14v2H1zm0 4h14v2H1z" fill="currentColor"/>`)};function $m(e){let t=Hm();return t.appendChild(Um(`alignLeft`,Qm.alignLeft,`Align left`,()=>e.onAlign?.(`left`))),t.appendChild(Um(`alignCenter`,Qm.alignCenter,`Align center`,()=>e.onAlign?.(`center`))),t.appendChild(Um(`alignRight`,Qm.alignRight,`Align right`,()=>e.onAlign?.(`right`))),t.appendChild(Um(`alignJustify`,Qm.alignJustify,`Justify`,()=>e.onAlign?.(`justify`))),t}function eh(e){let t=Hm();t.appendChild(Um(`blockquote`,`“`,`Blockquote`,e.onBlockquote)),t.appendChild(Um(`codeBlock`,`</>`,`Code block`,e.onCodeBlock));let n=Um(`link`,`⇗`,`Insert link`);th(n,`Enter URL`,`https://`,t=>e.onLink?.(t)),t.appendChild(n);let r=Um(`video`,`▷`,`Insert video`);return th(r,`YouTube URL`,`https://youtube.com/...`,t=>e.onVideo?.(t)),t.appendChild(r),t}function th(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=Nm(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 nh(e){let t=Hm();return t.appendChild(Um(`clearFormatting`,`⊘`,`Clear formatting`,e.onClearFormatting)),t}function rh(e={}){let t=document.createElement(`div`);t.className=`notes-editor-content`;let l={toolbar:void 0,editorElement:t,editor:void 0,getHtml:()=>l.editor&&!l.editor.isEmpty?l.editor.getHTML():``,isEmpty:()=>!l.editor||l.editor.isEmpty,destroy:()=>{l.editor?.destroy(),l.editor=void 0}};l.toolbar=zm({onHeading:e=>{l.editor&&(e===!1?l.editor.chain().focus().setParagraph().run():l.editor.chain().focus().toggleHeading({level:e}).run())},onBold:()=>l.editor?.chain().focus().toggleBold().run(),onItalic:()=>l.editor?.chain().focus().toggleItalic().run(),onUnderline:()=>l.editor?.chain().focus().toggleUnderline().run(),onStrike:()=>l.editor?.chain().focus().toggleStrike().run(),onColor:e=>l.editor?.chain().focus().setColor(e).run(),onBackground:e=>l.editor?.chain().focus().setHighlight({color:e}).run(),onBulletList:()=>l.editor?.chain().focus().toggleBulletList().run(),onOrderedList:()=>l.editor?.chain().focus().toggleOrderedList().run(),onAlign:e=>l.editor?.chain().focus().setTextAlign(e).run(),onBlockquote:()=>l.editor?.chain().focus().toggleBlockquote().run(),onCodeBlock:()=>l.editor?.chain().focus().toggleCodeBlock().run(),onLink:e=>l.editor?.chain().focus().setLink({href:e}).run(),onVideo:e=>l.editor?.commands.setYoutubeVideo({src:e}),onClearFormatting:()=>l.editor?.chain().focus().clearNodes().unsetAllMarks().run()});let u=()=>{if(l.editor){Bm(l.toolbar,{bold:l.editor.isActive(`bold`),italic:l.editor.isActive(`italic`),underline:l.editor.isActive(`underline`),strike:l.editor.isActive(`strike`),orderedList:l.editor.isActive(`orderedList`),bulletList:l.editor.isActive(`bulletList`),blockquote:l.editor.isActive(`blockquote`),codeBlock:l.editor.isActive(`codeBlock`),alignLeft:l.editor.isActive({textAlign:`left`}),alignCenter:l.editor.isActive({textAlign:`center`}),alignRight:l.editor.isActive({textAlign:`right`}),alignJustify:l.editor.isActive({textAlign:`justify`})});for(let e=1;e<=6;e++)if(l.editor.isActive(`heading`,{level:e})){Vm(l.toolbar,e);return}Vm(l.toolbar,!1)}};return requestAnimationFrame(()=>{l.editor=new r.Editor({element:t,extensions:[o.default,i.TextStyle,n.Color,a.default.configure({multicolor:!0}),s.default.configure({types:[`heading`,`paragraph`]}),c.default.configure({inline:!1})],content:e.initialHtml||``,onSelectionUpdate:u,onTransaction:u})}),l}function ih(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 ah(e){return typeof e==`function`}var oh;function sh(e){oh&&=(oh?.destroy(!0),void 0),e?.remove&&e.remove()}function ch(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;sh();let l=document.createElement(`div`),u;return s||=i?.evt?.target,s&&(oh=Nm(s,{content:()=>{c=c?.filter(e=>!e.hide&&!e.disabled).map(e=>({...e,onClick:()=>{sh(l),ah(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?oh.setContent(`IMPLEMENT SUB MENU`):ah(e.onClick)?(sh(l),e.onClick()):ah(a)&&a&&(sh(l),a(typeof e==`object`?{...e,coords:i}:e))}}));let e=[{text:t,items:c},...r];return u=ih(l,e).focusElement,l},theme:`light-border`,trigger:`click`,onShown:()=>{u&&setTimeout(()=>u?.focus(),0)},...o}),oh.show(),oh.setProps({interactive:!0})),oh}var J=`court-line`;function Y(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 lh(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 uh(e){let t=lh(`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(Y(`path`,{d:e,class:J}));return t}function dh(e){let t=lh(`0 0 500 470`,e),n=[Y(`rect`,{x:`0`,y:`0`,width:`500`,height:`470`,class:J}),Y(`circle`,{cx:`250`,cy:`470`,r:`60`,class:J}),Y(`line`,{x1:`0`,y1:`470`,x2:`500`,y2:`470`,class:J}),Y(`rect`,{x:`170`,y:`0`,width:`160`,height:`190`,class:J}),Y(`circle`,{cx:`250`,cy:`190`,r:`60`,class:J}),Y(`line`,{x1:`220`,y1:`40`,x2:`280`,y2:`40`,class:J}),Y(`circle`,{cx:`250`,cy:`52`,r:`12`,class:J}),Y(`path`,{d:`M 30 0 L 30 90 A 220 220 0 0 0 470 90 L 470 0`,class:J})];for(let e of n)t.appendChild(e);return t}function fh(e){let t=lh(`0 0 500 440`,e),n=[Y(`path`,{d:`M 20 170 A 350 400 0 0 1 480 170`,class:J}),Y(`line`,{x1:`250`,y1:`400`,x2:`20`,y2:`170`,class:J}),Y(`line`,{x1:`250`,y1:`400`,x2:`480`,y2:`170`,class:J}),Y(`path`,{d:`M 250 400 L 314 336 L 250 273 L 186 336 Z`,class:J}),Y(`path`,{d:`M 340 355 A 100 100 0 0 1 160 355`,class:J}),Y(`line`,{x1:`340`,y1:`355`,x2:`265`,y2:`405`,class:J}),Y(`line`,{x1:`160`,y1:`355`,x2:`235`,y2:`405`,class:J}),Y(`path`,{d:`M 235 405 A 18 18 0 0 1 265 405`,class:J}),Y(`circle`,{cx:`250`,cy:`340`,r:`9`,class:J}),Y(`line`,{x1:`247`,y1:`339`,x2:`253`,y2:`339`,class:J}),Y(`path`,{d:`M 244 398 L 244 404 L 250 408 L 256 404 L 256 398 Z`,class:J}),Y(`rect`,{x:`310`,y:`332`,width:`8`,height:`8`,transform:`rotate(45 314 336)`,class:J}),Y(`rect`,{x:`246`,y:`269`,width:`8`,height:`8`,transform:`rotate(45 250 273)`,class:J}),Y(`rect`,{x:`182`,y:`332`,width:`8`,height:`8`,transform:`rotate(45 186 336)`,class:J}),Y(`rect`,{x:`230`,y:`393`,width:`8`,height:`18`,class:J}),Y(`rect`,{x:`262`,y:`393`,width:`8`,height:`18`,class:J})];for(let e of n)t.appendChild(e);return t}function ph(e){let t=lh(`0 0 850 2000`,e),n=[Y(`rect`,{x:`0`,y:`0`,width:`850`,height:`2000`,rx:`280`,ry:`280`,class:J}),Y(`line`,{x1:`0`,y1:`1000`,x2:`850`,y2:`1000`,class:J}),Y(`circle`,{cx:`425`,cy:`1000`,r:`60`,class:J}),Y(`line`,{x1:`0`,y1:`650`,x2:`850`,y2:`650`,class:J}),Y(`line`,{x1:`0`,y1:`1350`,x2:`850`,y2:`1350`,class:J}),Y(`line`,{x1:`140`,y1:`300`,x2:`710`,y2:`300`,class:J}),Y(`line`,{x1:`140`,y1:`1700`,x2:`710`,y2:`1700`,class:J}),Y(`path`,{d:`M 395 300 A 40 40 0 0 1 455 300`,class:J}),Y(`path`,{d:`M 395 1700 A 40 40 0 0 0 455 1700`,class:J}),Y(`circle`,{cx:`270`,cy:`650`,r:`50`,class:J}),Y(`circle`,{cx:`580`,cy:`650`,r:`50`,class:J}),Y(`circle`,{cx:`270`,cy:`1350`,r:`50`,class:J}),Y(`circle`,{cx:`580`,cy:`1350`,r:`50`,class:J})];for(let e of n)t.appendChild(e);return t}function mh(e){let t=lh(`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(Y(`path`,{d:e,class:J}));return t}function hh(e){let t=lh(`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(Y(`path`,{d:e,class:J}));return t}function gh(e){let t=lh(`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(Y(`path`,{d:e,class:J}));return t}var _h=`COURT_SVG`,vh={tennis:uh,basketball:dh,baseball:fh,hockey:ph,pickleball:mh,badminton:hh,padel:gh},yh={TENNIS:`tennis`,PADEL:`padel`,PICKLEBALL:`pickleball`,BADMINTON:`badminton`},bh={HAL:`basketball`,INN:`baseball`,PER:`hockey`};function xh(e){if(e){for(let[t,n]of Object.entries(bh))if(e.startsWith(t))return n;if(e.startsWith(`SET`)||e.startsWith(`T`))return e.includes(`@RALLY`)?`pickleball`:`tennis`}}function Sh(e){let t=e?.competitionFormat?.sport;return t&&yh[t]?yh[t]:xh(e?.matchUpFormat)}function Ch(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 wh(e,t=``){let n=e?vh[e]:void 0;if(n)return Ch(n(t?`court--${e} ${t}`:`court--${e}`))}function Th(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 Eh(e){if(!e)return;let t=Th(e);return t.length?t:void 0}function Dh(e){let t=e?.find(Boolean);if(!t)return;let n=t.addresses?.find(Boolean);return n?Eh(n)??t.venueName:t.venueName}var Oh=/^(\d{4})-(\d{2})-(\d{2})/,kh=864e5;function Ah(e){if(!e)return null;let t=Oh.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 jh(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 Mh(e,t){if(!t)return new Date(e.year,e.month-1,e.day+1);let n=jh(e,t),r=new Date(n.getTime()+kh),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 jh({year:a(`year`),month:a(`month`),day:a(`day`)},t)}function Nh(e){if(!e)return null;let t=Ah(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 Ph(e){return e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`})}function Fh(e){return e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`,year:`numeric`})}function Ih(e,t){if(!e&&!t)return;let n=Nh(e),r=Nh(t),i=!!n&&!Number.isNaN(n.getTime()),a=!!r&&!Number.isNaN(r.getTime());if(!(!i&&!a))return i&&a&&n.getTime()===r.getTime()?Fh(n):i&&a?n.getFullYear()===r.getFullYear()?`${Ph(n)} – ${Ph(r)}, ${r.getFullYear()}`:`${Fh(n)} – ${Fh(r)}`:Fh(i?n:r)}function Lh(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 Rh=`URL`;function zh(e,t){if(!Array.isArray(e))return;let n=e.find(e=>e?.name===t&&e?.resourceType===Rh);return n?.url??n?.identifier}function Bh(e,t){if(Array.isArray(e))return e.find(e=>e?.resourceSubType===`COURT_SVG`&&(!t||e?.name===t))?.identifier}function Vh(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 Hh(...e){for(let t of e){let e=Vh(t);if(e!==void 0)return e}}function Uh(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 Wh={showImage:!0,cornerBadges:[`status`],body:[`title`,`tier`,`location`,`dateRange`],footer:[`feeBadge`,`playerCount`]};function Gh(e){return e?{showImage:e.showImage??Wh.showImage,cornerBadges:e.cornerBadges??Wh.cornerBadges,body:e.body??Wh.body,footer:e.footer??Wh.footer}:Wh}var Kh=()=>`chc-tc-card`,qh=()=>`chc-tc-card--clickable`,Jh=()=>`chc-tc-card--offline`,Yh=()=>`chc-tc-image`,Xh=()=>`chc-tc-image-img`,Zh=()=>`chc-tc-image-svg`,Qh=()=>`chc-tc-image-placeholder`,$h=()=>`chc-tc-corner-badges`,eg=()=>`chc-tc-status-pill`,tg=()=>`chc-tc-offline-badge`,ng=()=>`chc-tc-body`,rg=()=>`chc-tc-title`,ig=()=>`chc-tc-location`,ag=()=>`chc-tc-date-range`,og=()=>`chc-tc-organizer`,sg=()=>`chc-tc-updated-at`,cg=()=>`chc-tc-footer`,lg=()=>`chc-tc-fee-badge`,ug=()=>`chc-tc-player-count`,dg=()=>`chc-tc-event-count`,fg=()=>`chc-tc-tier-badge`,pg=()=>`chc-tc-card chc-tc-skeleton`,mg=()=>`chc-tc-skeleton-line`,hg=()=>`chc-tc-skeleton-block`;function gg(e,t,n){let r=Gh(t),i=document.createElement(`div`);return i.className=Kh(),i.dataset.tournamentId=e.tournamentId,e.offline&&i.classList.add(Jh()),n?.onClick&&(i.classList.add(qh()),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(_g(e,r)),r.body.length&&i.appendChild(Sg(e,r)),r.footer.length&&i.appendChild(Ag(e,r)),i}function _g(e,t){let n=document.createElement(`div`);if(n.className=Yh(),e.tournamentImageURL){let t=document.createElement(`img`);t.className=Xh(),t.src=e.tournamentImageURL,t.alt=e.tournamentName||``,t.loading=`lazy`,t.addEventListener(`error`,()=>yg(n,e)),n.appendChild(t)}else vg(n,e);if(t.cornerBadges.length){let r=bg(e,t.cornerBadges);r&&n.appendChild(r)}return n}function vg(e,t){let n=wh(t.courtSvgSport,Zh());if(n){e.appendChild(n);return}let r=document.createElement(`div`);r.className=Qh(),e.appendChild(r)}function yg(e,t){e.querySelector(`.${Xh()}`)?.remove(),vg(e,t)}function bg(e,t){let n=[];for(let r of t){let t=xg(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=$h();for(let e of n)r.appendChild(e);return r}function xg(e,t){if(e===`status`){if(!t.status)return null;let e=document.createElement(`div`);return e.className=eg(),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=tg(),e.textContent=`Offline`,e}return null}function Sg(e,t){let n=document.createElement(`div`);n.className=ng();for(let r of t.body){let t=Cg(r,e);t&&n.appendChild(t)}return n}function Cg(e,t){switch(e){case`title`:return wg(t);case`tier`:return Tg(t);case`location`:return Eg(t);case`dateRange`:return Dg(t);case`organizerName`:return Og(t);case`updatedAt`:return kg(t);default:return null}}function wg(e){if(!e.tournamentName)return null;let t=document.createElement(`div`);return t.className=rg(),t.textContent=e.tournamentName,t.title=e.tournamentName,t}function Tg(e){let t=e.tournamentTier?.value;if(!t)return null;let n=document.createElement(`div`);return n.className=fg(),n.textContent=t,n.title=e.tournamentTier?.system?`${e.tournamentTier.system}: ${t}`:t,n}function Eg(e){if(!e.location)return null;let t=document.createElement(`div`);return t.className=ig(),t.textContent=e.location,t.title=e.location,t}function Dg(e){if(!e.dateRangeFormatted)return null;let t=document.createElement(`div`);return t.className=ag(),t.textContent=e.dateRangeFormatted,t}function Og(e){if(!e.organizerName)return null;let t=document.createElement(`div`);return t.className=og(),t.textContent=e.organizerName,t}function kg(e){if(!e.updatedAt)return null;let t=document.createElement(`div`);t.className=sg();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 Ag(e,t){let n=document.createElement(`div`);n.className=cg();for(let r of t.footer){let t=jg(r,e);t&&n.appendChild(t)}return n}function jg(e,t){switch(e){case`feeBadge`:return Mg(t);case`playerCount`:return Ng(t);case`eventCount`:return Pg(t);default:return null}}function Mg(e){if(!e.feeFormatted)return null;let t=document.createElement(`div`);return t.className=lg(),t.textContent=e.feeFormatted,t}function Ng(e){if(typeof e.participantCount!=`number`)return null;let t=document.createElement(`div`);return t.className=ug(),t.textContent=`${e.participantCount} ${e.participantCount===1?`player`:`players`}`,t}function Pg(e){if(typeof e.eventCount!=`number`)return null;let t=document.createElement(`div`);return t.className=dg(),t.textContent=`${e.eventCount} ${e.eventCount===1?`event`:`events`}`,t}function Fg(e){let t=Gh(e);return Uh({showImage:t.showImage!==!1,bodyLines:t.body.length,showFooter:t.footer.length>0,cardClass:pg(),imageClass:Yh(),bodyClass:ng(),footerClass:cg(),blockClass:hg(),lineClass:mg()})}var Ig=6048e5;function Lg(e){if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t}function Rg(e,t,n){return!t||!n?!1:t.getTime()<=e.getTime()&&e.getTime()<n.getTime()}function zg(e){return`Opens ${e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`})}`}function Bg(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=Ah(e.endDate),a=i?Mh(i,r):null;if(n===`COMPLETED`||a&&t.getTime()>=a.getTime())return{kind:`completed`,label:`Completed`};let o=Ah(e.startDate);if(Rg(t,o?jh(o,r):null,a))return{kind:`live`,label:`Live`};let s=Lg(e.entriesClose);if(s){let e=s.getTime()-t.getTime();if(e>0&&e<=Ig)return{kind:`closing-soon`,label:`Closing Soon`}}let c=Lg(e.entriesOpen);return c&&c.getTime()>t.getTime()?{kind:`registration-opens`,label:zg(c)}:null}var Vg=`–`,Hg={JPY:0,KRW:0,VND:0,CLP:0,ISK:0,KWD:3,BHD:3,OMR:3,JOD:3,TND:3};function Ug({amount:e,currencyCode:t,unit:n}){return n===`MAJOR`?e:e/10**(Hg[t]??2)}function Wg(e,t){try{return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t}).format(e)}catch{return`${e.toFixed(2)} ${t}`}}function Gg(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 Kg(e){if(!e?.length)return null;let t=Gg(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(Ug).sort((e,t)=>e-t),s=o[0],c=o.at(-1)??s;return r.length>1?`From ${a} ${Wg(s,a)}`:s===c?`${a} ${Wg(s,a)}`:`${a} ${Wg(s,a)} ${Vg} ${Wg(c,a)}`}var qg=`tournamentImage`;function Jg(e){let t=e?.registrationProfile?.entryFees;return Array.isArray(t)?t.filter(e=>e&&typeof e.amount==`number`):[]}function Yg(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 Xg(e){let t=e?.timeItems;if(Array.isArray(t))return t.find(e=>e?.itemType===`TMX`)?.itemValue?.offline}function Zg(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?Bg({tournamentStatus:e?.tournamentStatus,startDate:e?.startDate,endDate:e?.endDate,entriesOpen:e?.registrationProfile?.entriesOpen,entriesClose:e?.registrationProfile?.entriesClose,timeZone:e?.localTimeZone||e?.timeZone},t?.now):t.statusOverride,s=e?.tournamentImageURL??zh(n,qg),c=e?.courtSvgSport??Bh(n);return{tournamentId:e?.tournamentId??``,tournamentName:e?.tournamentName??``,startDate:e?.startDate,endDate:e?.endDate,dateRangeFormatted:Ih(e?.startDate,e?.endDate),location:Dh(r),tournamentImageURL:s,courtSvgSport:c,participantCount:Yg(e,i),eventCount:a.length||void 0,organizerName:e?.tournamentOrganizers?.find?.(Boolean)?.organizerName,status:o,feeFormatted:Kg(Jg(e)),updatedAt:e?.updatedAt,offline:Xg(e),tournamentTier:Qg(e)}}function Qg(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 $g={showImage:!0,showMap:!0,cornerBadges:[`primaryBadge`],body:[`title`,`address`,`courtBreakdown`],footer:[`amenityRow`]};function e_(e){return e?{showImage:e.showImage??$g.showImage,showMap:e.showMap??$g.showMap,cornerBadges:e.cornerBadges??$g.cornerBadges,body:e.body??$g.body,footer:e.footer??$g.footer}:$g}var t_=()=>`chc-vc-card`,n_=()=>`chc-vc-card--clickable`,r_=()=>`chc-vc-image`,i_=()=>`chc-vc-image-img`,a_=()=>`chc-vc-image-svg`,o_=()=>`chc-vc-image-map`,s_=()=>`chc-vc-image-placeholder`,c_=()=>`chc-vc-corner-badges`,l_=()=>`chc-vc-primary-badge`,u_=()=>`chc-vc-body`,d_=()=>`chc-vc-title`,f_=()=>`chc-vc-address`,p_=()=>`chc-vc-court-breakdown`,m_=()=>`chc-vc-footer`,h_=()=>`chc-vc-amenity-row`,g_=()=>`chc-vc-amenity`,__=()=>`chc-vc-card chc-vc-skeleton`,v_=()=>`chc-vc-skeleton-line`,y_=()=>`chc-vc-skeleton-block`;function b_(e,t,n){let r=e_(t),i=document.createElement(`div`);i.className=t_(),i.dataset.venueId=e.venueId;let a=null;r.showImage!==!1&&(a=w_(e,r,()=>f()),i.appendChild(a));let o=r.body.length?M_(e,r):null;o&&i.appendChild(o);let s=r.footer.length?I_(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(n_()),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(n_()),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 x_(e){return typeof e.latitude==`number`&&typeof e.longitude==`number`}function S_(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=o_(),a.src=i,a.loading=`lazy`,a.title=`Map of ${e.venueName}`,a}function C_(e,t){let n=wh(t.courtSvgSport,a_());if(n){e.appendChild(n);return}let r=document.createElement(`div`);r.className=s_(),e.appendChild(r)}function w_(e,t,n){let r=document.createElement(`div`);if(r.className=r_(),e.venueImageURL){let i=document.createElement(`img`);i.className=i_(),i.src=e.venueImageURL,i.alt=e.venueName||``,i.loading=`lazy`,i.addEventListener(`error`,()=>{i.remove(),t.showMap!==!1&&x_(e)?r.appendChild(S_(e)):C_(r,e),n?.()}),r.appendChild(i)}else t.showMap!==!1&&x_(e)?r.appendChild(S_(e)):C_(r,e);if(t.cornerBadges.length){let n=E_(e,t.cornerBadges);n&&r.appendChild(n)}return r}function T_(e,t){if(e===`primaryBadge`){if(!t.isPrimary)return null;let e=document.createElement(`div`);return e.className=l_(),e.textContent=`Primary`,e}return null}function E_(e,t){let n=[];for(let r of t){let t=T_(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=c_();for(let e of n)r.appendChild(e);return r}function D_(e){if(!e.venueName)return null;let t=document.createElement(`div`);return t.className=d_(),t.textContent=e.venueName,t.title=e.notes?`${e.venueName}\n${e.notes}`:e.venueName,t}function O_(e){if(!e.addressFormatted)return null;let t=document.createElement(`div`);return t.className=f_(),t.textContent=e.addressFormatted,t.title=e.addressFormatted,t}function k_(e){if(!e.courtBreakdown)return null;let t=document.createElement(`div`);return t.className=p_(),t.textContent=e.courtBreakdown,t}function A_(e){if(!e.venueAbbreviation)return null;let t=document.createElement(`div`);return t.className=p_(),t.textContent=e.venueAbbreviation,t}function j_(e,t){return e===`title`?D_(t):e===`address`?O_(t):e===`courtBreakdown`?k_(t):e===`venueAbbreviation`?A_(t):null}function M_(e,t){let n=document.createElement(`div`);n.className=u_();for(let r of t.body){let t=j_(r,e);t&&n.appendChild(t)}return n}function N_(e){let t=document.createElement(`span`);return t.className=g_(),t.textContent=e,t}function P_(e){let t=[];if(typeof e.courtCount==`number`&&t.push(N_(`${e.courtCount} ${e.courtCount===1?`court`:`courts`}`)),e.indoorCount&&t.push(N_(`${e.indoorCount} indoor`)),e.outdoorCount&&t.push(N_(`${e.outdoorCount} outdoor`)),e.floodlitCount&&t.push(N_(`${e.floodlitCount} lit`)),!t.length)return null;let n=document.createElement(`div`);n.className=h_();for(let e of t)n.appendChild(e);return n}function F_(e,t){return e===`amenityRow`?P_(t):e===`address`?O_(t):e===`courtBreakdown`?k_(t):null}function I_(e,t){let n=document.createElement(`div`);n.className=m_();for(let r of t.footer){let t=F_(r,e);t&&n.appendChild(t)}return n}function L_(e){let t=e_(e);return Uh({showImage:t.showImage!==!1,bodyLines:t.body.length,showFooter:t.footer.length>0,cardClass:__(),imageClass:r_(),bodyClass:u_(),footerClass:m_(),blockClass:y_(),lineClass:v_()})}var R_=`venueImage`;function z_(e){let t=[];return e.indoorOutdoor&&t.push(e.indoorOutdoor.toLowerCase()),e.surfaceCategory&&t.push(e.surfaceCategory.toLowerCase()),t.length?t.join(` `):`court`}function B_(e){if(!e.length)return;let t=new Map;for(let n of e){let e=z_(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 V_(e,t){let n=0;for(let r of e)t(r)&&(n+=1);return n}function H_(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:Eh(i),latitude:Vh(i?.latitude),longitude:Vh(i?.longitude),courtCount:n.length||void 0,courtBreakdown:B_(n),indoorCount:V_(n,e=>e.indoorOutdoor===`INDOOR`)||void 0,outdoorCount:V_(n,e=>e.indoorOutdoor===`OUTDOOR`)||void 0,floodlitCount:V_(n,e=>!!e.floodlit)||void 0,isPrimary:!!e?.isPrimary,venueImageURL:e?.venueImageURL??zh(r,R_),courtSvgSport:e?.courtSvgSport??Bh(r)??t?.sport,notes:e?.notes}}var U_={showImage:!0,cornerBadges:[`indoorOutdoor`,`floodlit`],body:[`title`,`surface`],footer:[`amenityRow`]};function W_(e){return e?{showImage:e.showImage??U_.showImage,cornerBadges:e.cornerBadges??U_.cornerBadges,body:e.body??U_.body,footer:e.footer??U_.footer}:U_}var G_=()=>`chc-cc-card`,K_=()=>`chc-cc-card--clickable`,q_=()=>`chc-cc-image`,J_=()=>`chc-cc-image-svg`,Y_=()=>`chc-cc-image-placeholder`,X_=()=>`chc-cc-corner-badges`,Z_=()=>`chc-cc-indoor-badge`,Q_=()=>`chc-cc-floodlit-badge`,$_=()=>`chc-cc-body`,ev=()=>`chc-cc-title`,tv=()=>`chc-cc-surface`,nv=()=>`chc-cc-availability`,rv=()=>`chc-cc-abbr`,iv=()=>`chc-cc-footer`,av=()=>`chc-cc-amenity-row`,ov=()=>`chc-cc-card chc-cc-skeleton`,sv=()=>`chc-cc-skeleton-line`,cv=()=>`chc-cc-skeleton-block`;function lv(e,t,n){let r=W_(t),i=document.createElement(`div`);return i.className=G_(),i.dataset.courtId=e.courtId,n?.onClick&&(i.classList.add(K_()),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(dv(e,r)),r.body.length&&i.appendChild(xv(e,r)),r.footer.length&&i.appendChild(wv(e,r)),i}function uv(e,t){let n=wh(t.courtSvgSport,J_());if(n){e.appendChild(n);return}let r=document.createElement(`div`);r.className=Y_(),e.appendChild(r)}function dv(e,t){let n=document.createElement(`div`);if(n.className=q_(),e.surfaceCategory&&(n.dataset.surface=e.surfaceCategory),uv(n,e),t.cornerBadges.length){let r=hv(e,t.cornerBadges);r&&n.appendChild(r)}return n}function fv(e){if(!e.indoorOutdoor)return null;let t=document.createElement(`div`);return t.className=Z_(),t.dataset.kind=e.indoorOutdoor,t.textContent=e.indoorOutdoor===`INDOOR`?`Indoor`:`Outdoor`,t}function pv(e){if(!e.floodlit)return null;let t=document.createElement(`div`);return t.className=Q_(),t.textContent=`Lit`,t}function mv(e,t){return e===`indoorOutdoor`?fv(t):e===`floodlit`?pv(t):null}function hv(e,t){let n=[];for(let r of t){let t=mv(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=X_();for(let e of n)r.appendChild(e);return r}function gv(e){if(!e.courtName)return null;let t=document.createElement(`div`);return t.className=ev(),t.textContent=e.courtName,t.title=e.notes?`${e.courtName}\n${e.notes}`:e.courtName,t}function _v(e){if(!e.surfaceLabel)return null;let t=document.createElement(`div`);return t.className=tv(),t.textContent=e.surfaceLabel,t}function vv(e){if(!e.availabilitySummary)return null;let t=document.createElement(`div`);return t.className=nv(),t.textContent=e.availabilitySummary,t}function yv(e){if(!e.courtAbbreviation)return null;let t=document.createElement(`div`);return t.className=rv(),t.textContent=e.courtAbbreviation,t}function bv(e,t){return e===`title`?gv(t):e===`surface`?_v(t):e===`availability`?vv(t):e===`abbreviation`?yv(t):null}function xv(e,t){let n=document.createElement(`div`);n.className=$_();for(let r of t.body){let t=bv(r,e);t&&n.appendChild(t)}return n}function Sv(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=av(),n.textContent=t.join(` · `),n}function Cv(e,t){return e===`amenityRow`?Sv(t):e===`availability`?vv(t):e===`surface`?_v(t):null}function wv(e,t){let n=document.createElement(`div`);n.className=iv();for(let r of t.footer){let t=Cv(r,e);t&&n.appendChild(t)}return n}function Tv(e){let t=W_(e);return Uh({showImage:t.showImage!==!1,bodyLines:t.body.length,showFooter:t.footer.length>0,cardClass:ov(),imageClass:q_(),bodyClass:$_(),footerClass:iv(),blockClass:cv(),lineClass:sv()})}var Ev=`INDOOR`,Dv=`OUTDOOR`,Ov=new Set([`HARD`,`CLAY`,`GRASS`,`ARTIFICIAL`,`CARPET`]);function kv(e){if(!e)return;let t=String(e).toUpperCase();if(t===Ev)return Ev;if(t===Dv)return Dv}function Av(e){let t=e?.surfaceCategory?String(e.surfaceCategory).toUpperCase():void 0;if(t&&Ov.has(t))return t;let n=e?.surfaceType?String(e.surfaceType).toUpperCase():void 0;return n&&Ov.has(n)?n:t}function jv(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 Mv(e,t){let n=kv(e?.indoorOutdoor),r=Av(e);return{courtId:e?.courtId??``,courtName:e?.courtName??``,courtAbbreviation:e?.courtAbbreviation,surfaceLabel:jv(n,r),indoorOutdoor:n,surfaceCategory:r,floodlit:!!e?.floodlit,courtSvgSport:t?.sport,notes:e?.notes}}var Nv={grouping:`setting`,sport:`tennis`,showGroupHeadings:!0,showSummary:!0,minCardWidth:`11rem`,emptyMessage:`No courts recorded for this venue`};function Pv(e){return e?{grouping:e.grouping??Nv.grouping,sport:e.sport??Nv.sport,showGroupHeadings:e.showGroupHeadings??Nv.showGroupHeadings,showSummary:e.showSummary??Nv.showSummary,minCardWidth:e.minCardWidth??Nv.minCardWidth,emptyMessage:e.emptyMessage??Nv.emptyMessage}:Nv}var Fv=()=>`chc-cl`,Iv=()=>`chc-cl-summary`,Lv=()=>`chc-cl-summary-count`,Rv=()=>`chc-cl-group`,zv=()=>`chc-cl-group-heading`,Bv=()=>`chc-cl-group-count`,Vv=()=>`chc-cl-grid`,Hv=()=>`chc-cl-empty`,Uv=`Unspecified`,Wv=`Unspecified surface`;function Gv(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}function Kv(e){let t=typeof e.indoorOutdoor==`string`?e.indoorOutdoor.trim():``;return t?Gv(t):Uv}function qv(e){let t=typeof e.surfaceCategory==`string`?e.surfaceCategory.trim():``;return t?Gv(t):Wv}function Jv(e,t){let n=Lh(e);if(t===`none`)return[{key:`all`,label:`All courts`,courts:n}];let r=e=>t===`setting`?Kv(e):t===`surface`?qv(e):`${Kv(e)} · ${qv(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 Yv(e){let t=new Map;for(let n of e){let e=Kv(n),r=qv(n),i=`${e===Uv?``:e.toLowerCase()} ${r===Wv?``: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 Xv(e,t,n){let r=Pv(t),i=e.courts??[],a=document.createElement(`div`);if(a.className=Fv(),e.venueId&&(a.dataset.venueId=e.venueId),!i.length){let e=document.createElement(`div`);return e.className=Hv(),e.textContent=r.emptyMessage,a.appendChild(e),a}r.showSummary&&a.appendChild(Zv(i));for(let e of Jv(i,r.grouping))a.appendChild(Qv(e,r,n));return a}function Zv(e){let t=document.createElement(`div`);t.className=Iv();let n=document.createElement(`span`);n.className=Lv(),n.textContent=`${e.length} ${e.length===1?`court`:`courts`}`;let r=document.createElement(`span`);return r.textContent=Yv(e),t.append(n,r),t}function Qv(e,t,n){let r=document.createElement(`div`);if(r.className=Rv(),r.dataset.group=e.key,t.showGroupHeadings&&t.grouping!==`none`){let t=document.createElement(`div`);t.className=zv();let n=document.createElement(`span`);n.textContent=e.label;let i=document.createElement(`span`);i.className=Bv(),i.textContent=String(e.courts.length),t.append(n,i),r.appendChild(t)}let i=document.createElement(`div`);i.className=Vv(),i.style.setProperty(`--chc-cl-min-card`,t.minCardWidth);for(let r of e.courts)i.appendChild(ey(r,t,n));return r.appendChild(i),r}function $v(e){if(e===`setting`||e===`both`)return{cornerBadges:[`floodlit`]}}function ey(e,t,n){let r=Mv(e,{sport:t.sport}),i=n?.onCourtClick?{onClick:()=>n.onCourtClick?.(e)}:void 0;return lv(r,$v(t.grouping),i)}var ty={tiles:{map:{tileLayer:`https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png`,attribution:`&copy; <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 &copy; Esri`}},darkTileLayer:{tileLayer:`https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png`,attribution:`&copy; <a href="https://openstreetmap.org">OpenStreetMap</a> Contributors &copy; <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 ny(e){return e?{tiles:e.tiles??ty.tiles,darkTileLayer:e.darkTileLayer===void 0?ty.darkTileLayer:e.darkTileLayer,view:e.view??ty.view,showViewToggle:e.showViewToggle??ty.showViewToggle,zoom:e.zoom??ty.zoom,height:e.height??ty.height,courtsLayout:e.courtsLayout??ty.courtsLayout,showHeader:e.showHeader??ty.showHeader,showPopup:e.showPopup??ty.showPopup,scrollWheelZoom:e.scrollWheelZoom??ty.scrollWheelZoom,darkTiles:e.darkTiles??ty.darkTiles}:ty}var ry=()=>`chc-vl`,iy=()=>`chc-vl-header`,ay=()=>`chc-vl-title`,oy=()=>`chc-vl-address`,sy=()=>`chc-vl-notes`,cy=()=>`chc-vl-body`,ly=()=>`chc-vl-body--below`,uy=()=>`chc-vl-mapwrap`,dy=()=>`chc-vl-map`,fy=()=>`chc-vl-map--invertible`,py=()=>`chc-vl-toggle`,my=()=>`chc-vl-toggle-btn`,hy=()=>`chc-vl-fallback`,gy=()=>`chc-vl-fallback-icon`,_y=()=>`chc-vl-courts`,vy=()=>`chc-vl-courts-title`,yy=()=>`chc-vl-court-list`,by=()=>`chc-vl-court`,xy=()=>`chc-vl-court--clickable`,Sy=()=>`chc-vl-court-name`,Cy=()=>`chc-vl-court-meta`,wy=()=>`chc-vl-pip`,Ty=()=>`chc-vl-marker`,Ey=()=>`chc-vl-popup-title`,Dy=()=>`chc-vl-popup-address`,Oy=`No coordinates for this venue`,ky=`Map unavailable`,Ay=new WeakMap;function jy(e){return Number.isFinite(e.latitude)&&Number.isFinite(e.longitude)}function My(e){return Lh(e)}function Ny(e){let t=[];return e.indoorOutdoor&&t.push(e.indoorOutdoor.toLowerCase()),e.surfaceCategory&&t.push(e.surfaceCategory.toLowerCase()),t.join(` · `)}function Py(e,t,n){let r=ny(t),i=document.createElement(`div`);i.className=ry(),i.dataset.venueId=e.venueId,r.showHeader&&i.appendChild(Iy(e));let a=document.createElement(`div`);a.className=r.courtsLayout===`side`?cy():`${cy()} ${ly()}`;let{wrap:o,mapEl:s}=Ry(e,r,n);a.appendChild(o);let c=e.courts??[];return r.courtsLayout!==`none`&&c.length&&a.appendChild(Vy(c,e,n)),i.appendChild(a),s&&jy(e)&&Uy({root:i,mapEl:s,data:e,cfg:r,callbacks:n}),i}function Fy(e){let t=Ay.get(e);t&&(t(),Ay.delete(e))}function Iy(e){let t=document.createElement(`div`);t.className=iy();let n=document.createElement(`div`);if(n.className=ay(),n.textContent=e.venueName,t.appendChild(n),e.addressFormatted){let n=document.createElement(`div`);n.className=oy(),n.textContent=e.addressFormatted,t.appendChild(n)}if(e.notes){let n=document.createElement(`div`);n.className=sy(),n.textContent=e.notes,t.appendChild(n)}return t}function Ly(e){let t=document.createElement(`div`);t.className=hy();let n=document.createElement(`div`);n.className=gy(),n.textContent=`📍`,n.setAttribute(`aria-hidden`,`true`);let r=document.createElement(`div`);return r.textContent=e,t.append(n,r),t}function Ry(e,t,n){let r=document.createElement(`div`);if(r.className=uy(),r.style.height=t.height,!jy(e))return r.appendChild(Ly(Oy)),{wrap:r,mapEl:null};let i=document.createElement(`div`);i.className=dy(),i.appendChild(Ly(``)),r.appendChild(i);let a=Object.keys(t.tiles);return t.showViewToggle&&a.length>1&&r.appendChild(zy(a,t,n)),{wrap:r,mapEl:i}}function zy(e,t,n){let r=document.createElement(`div`);r.className=py(),r.dataset.viewToggle=`true`;let i=[];for(let a of e){let e=document.createElement(`button`);e.type=`button`,e.className=my(),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 By(e,t,n){let r=!!n?.onCourtClick,i=document.createElement(r?`button`:`div`);i.className=r?`${by()} ${xy()}`:by(),i.dataset.courtId=e.courtId,r&&(i.type=`button`,i.addEventListener(`click`,()=>n?.onCourtClick?.(e,t)));let a=document.createElement(`span`);a.className=Sy(),a.textContent=e.courtName;let o=document.createElement(`span`);o.className=Cy();let s=Ny(e);if(s&&o.append(document.createTextNode(s)),e.floodlit){let e=document.createElement(`span`);e.className=wy(),e.title=`floodlit`,o.appendChild(e)}return i.append(a,o),i}function Vy(e,t,n){let r=document.createElement(`div`);r.className=_y();let i=document.createElement(`div`);i.className=vy(),i.textContent=`Courts (${e.length})`,r.appendChild(i);let a=document.createElement(`div`);a.className=yy();for(let r of My(e))a.appendChild(By(r,t,n));return r.appendChild(a),r}function Hy(e){let t=e=>e.replace(/[&<>"]/g,e=>({"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`})[e]),n=e.addressFormatted?`<div class="${Dy()}">${t(e.addressFormatted)}</div>`:``;return`<div class="${Ey()}">${t(e.venueName)}</div>${n}`}async function Uy({root:e,mapEl:t,data:n,cfg:r,callbacks:i}){let a;try{a=await import(`leaflet`)}catch(e){t.replaceChildren(Ly(ky)),i?.onMapUnavailable?.(Error(`leaflet is an optional peerDependency of courthive-components and is not installed`,{cause:e}));return}let o=a.default??a;try{t.replaceChildren();let a=o.map(t,{scrollWheelZoom:r.scrollWheelZoom,attributionControl:!0});a.setView([n.latitude,n.longitude],r.zoom);let s=r.view,c=Yy(o,a,r,s);Xy(t,r,s);let l=e=>{s=e,a.removeLayer(c),c=Yy(o,a,r,e),Xy(t,r,e)},u=o.divIcon({className:``,html:`<div class="${Ty()}"></div>`,iconSize:[14,14]}),d=o.marker([n.latitude,n.longitude],{icon:u}).addTo(a);r.showPopup&&d.bindPopup(Hy(n)),d.on(`click`,()=>i?.onVenueClick?.(n)),e.querySelector(`[data-view-toggle]`)?.addEventListener(`click`,e=>{let t=e.target?.closest(`button[data-view]`);t&&l(t.dataset.view)}),Ky(t);let f=new ResizeObserver(()=>a.invalidateSize());f.observe(t);let p,m=globalThis.document?.documentElement;if(m&&r.darkTiles!==`never`&&r.darkTileLayer){let e=qy();p=new MutationObserver(()=>{let t=qy();t!==e&&(e=t,s!==`satellite`&&l(s))}),p.observe(m,{attributes:!0,attributeFilter:[`data-theme`]})}Ay.set(e,()=>{f.disconnect(),p?.disconnect(),a.remove()})}catch(e){t.replaceChildren(Ly(ky)),i?.onMapUnavailable?.(Error(`Leaflet map failed to initialize`,{cause:e}))}}var Wy=!1;function Gy(e){return e?e!==`relative`&&e!==`absolute`:!1}function Ky(e){Wy||Gy(globalThis.getComputedStyle?.(e)?.position)&&(Wy=!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 qy(){return globalThis.document?.documentElement?.dataset.theme===`dark`}function Jy(e,t,n){let r=e.tiles[t]??e.tiles.map;return t===`satellite`||e.darkTiles===`never`||!n?r:e.darkTileLayer??r}function Yy(e,t,n,r){let i=Jy(n,r,qy());return e.tileLayer(i.tileLayer,{attribution:i.attribution,maxZoom:i.maxZoom??19}).addTo(t)}function Xy(e,t,n){let r=t.darkTiles===`auto`&&n!==`satellite`&&!t.darkTileLayer;e.classList.toggle(fy(),r)}function Zy(...e){for(let t of e)if(typeof t==`number`&&Number.isFinite(t))return t}function Qy(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:Zy(e?.courtOrder),latitude:Hh(e?.latitude),longitude:Hh(e?.longitude)}}function $y(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:Eh(n),latitude:Hh(e?.latitude,n?.latitude),longitude:Hh(e?.longitude,n?.longitude),courts:t.map(Qy),notes:e?.notes}}var eb=()=>`chc-team-card`,tb=()=>`chc-team-card--clickable`,nb=()=>`chc-team-card__title-row`,rb=()=>`chc-team-card__name`,ib=()=>`chc-team-card__nickname`,ab=()=>`chc-team-card__counts`,ob=` · `;function sb(e,t){let n=document.createElement(`div`);n.className=eb(),e.teamId&&(n.dataset.teamId=e.teamId),t?.onClick&&(n.classList.add(tb()),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(cb(e));let r=(e.countSegments??[]).map(e=>(e??``).trim()).filter(Boolean);return r.length&&n.appendChild(lb(r)),n}function cb(e){let t=document.createElement(`div`);t.className=nb();let n=document.createElement(`span`);if(n.className=rb(),n.textContent=e.teamName,t.appendChild(n),e.nickname){let n=document.createElement(`span`);n.className=ib(),n.textContent=`"${e.nickname}"`,t.appendChild(n)}return t}function lb(e){let t=document.createElement(`div`);return t.className=ab(),t.textContent=e.join(ob),t}var ub=[`COMPETITIVE`,`ROUTINE`,`DECISIVE`,`WALKOVER`],db=new Set([`WALKOVER`,`DOUBLE_WALKOVER`,`DEFAULTED`,`DOUBLE_DEFAULT`]);function fb(){return{COMPETITIVE:0,ROUTINE:0,DECISIVE:0,WALKOVER:0}}function pb(e){let t=fb();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&&db.has(e.matchUpStatus)){t.WALKOVER+=1;continue}let r=e.competitiveProfile?.competitiveness;r&&r!==`WALKOVER`&&ub.includes(r)&&(t[r]+=1)}return t}function mb(e){return ub.reduce((t,n)=>t+e[n],0)}var hb={COMPETITIVE:`Competitive`,ROUTINE:`Routine`,DECISIVE:`Decisive`,WALKOVER:`Walkover / Defaulted`};function gb(e={}){let{onSegmentClick:t}=e,n=document.createElement(`div`);n.className=`chc-cb`;let r={};for(let e of ub){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=mb(e);if(n.style.display=t>0?`flex`:`none`,t)for(let t of ub){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=`${hb[t]}: ${i}`)}},setActive:e=>{n.classList.toggle(`has-active`,!!e);for(let t of ub)r[t].classList.toggle(`is-active`,t===e)}}}var _b={COMPETITIVE:`Competitive`,ROUTINE:`Routine`,DECISIVE:`Decisive`,WALKOVER:`Walkover / Defaulted`},vb=`http://www.w3.org/2000/svg`,yb=96,bb=yb/2,xb=47,Sb=31;function Cb(e,t){return{x:bb+t*Math.cos(e),y:bb+t*Math.sin(e)}}function wb(e,t){let n=Cb(e,xb),r=Cb(t,xb),i=Cb(t,Sb),a=Cb(e,Sb),o=+(t-e>Math.PI);return[`M ${n.x} ${n.y}`,`A ${xb} ${xb} 0 ${o} 1 ${r.x} ${r.y}`,`L ${i.x} ${i.y}`,`A ${Sb} ${Sb} 0 ${o} 0 ${a.x} ${a.y}`,`Z`].join(` `)}function Tb(){let e=Cb(-Math.PI/2,xb),t=Cb(Math.PI/2,xb),n=Cb(-Math.PI/2,Sb),r=Cb(Math.PI/2,Sb);return[`M ${e.x} ${e.y}`,`A ${xb} ${xb} 0 1 1 ${t.x} ${t.y}`,`A ${xb} ${xb} 0 1 1 ${e.x} ${e.y}`,`L ${n.x} ${n.y}`,`A ${Sb} ${Sb} 0 1 0 ${r.x} ${r.y}`,`A ${Sb} ${Sb} 0 1 0 ${n.x} ${n.y}`,`Z`].join(` `)}function Eb(){let e=document.createElement(`div`);e.className=`chc-cd`;let t=document.createElementNS(vb,`svg`);t.setAttribute(`viewBox`,`0 0 ${yb} ${yb}`),t.setAttribute(`class`,`chc-cd__svg`),t.setAttribute(`role`,`img`);let n={};for(let e of ub){let r=document.createElementNS(vb,`path`);r.setAttribute(`class`,`chc-cd__arc`),r.setAttribute(`data-bucket`,e),t.appendChild(r);let i=document.createElementNS(vb,`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=mb(i);if(e.style.display=a>0?`inline-flex`:`none`,!a)return;let o=ub.filter(e=>i[e]>0),s=-Math.PI/2;for(let e of ub){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`,Tb());else{let e=t/a,n=s+e*Math.PI*2;r.setAttribute(`d`,wb(s,n)),s=n}c&&(c.textContent=`${_b[e]}: ${t}`)}r.textContent=String(a),t.setAttribute(`aria-label`,`Competitiveness across ${a} matches`)}}}function Db(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 Ob={cornerBadges:[`status`,`publishedBadge`,`embargoBadge`],body:[`title`,`drawTypeLabel`,`matchUpProgress`],footer:[`drawSize`,`entries`,`matchUpFormat`,`flightNumber`,`ratings`],showVisualization:!1};function kb(e){return e?{cornerBadges:e.cornerBadges??Ob.cornerBadges,body:e.body??Ob.body,footer:e.footer??Ob.footer,showVisualization:e.showVisualization??Ob.showVisualization}:Ob}var Ab=()=>`chc-dc-card`,jb=()=>`chc-dc-card--clickable`,Mb=()=>`chc-dc-corner-badges`,Nb=()=>`chc-dc-status-pill`,Pb=()=>`chc-dc-secondary-badge`,Fb=()=>`chc-dc-body`,Ib=()=>`chc-dc-viz`,Lb=()=>`chc-dc-title-row`,Rb=()=>`chc-dc-title`,zb=()=>`chc-dc-draw-type`,Bb=()=>`chc-dc-meta`,Vb=()=>`chc-dc-footer`,Hb=()=>`chc-dc-chip`,Ub=()=>`chc-dc-progress`,Wb=()=>`chc-dc-progress-bar`,Gb=()=>`chc-dc-progress-fill`,Kb=()=>`chc-dc-card chc-dc-skeleton`,qb=()=>`chc-dc-skeleton-line`;function Jb(e,t,n){let r=kb(t),i=document.createElement(`div`);if(i.className=Ab(),i.dataset.drawId=e.drawId,e.eventId&&(i.dataset.eventId=e.eventId),n?.onClick&&(i.classList.add(jb()),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=Ib(),t.appendChild(e.visualization),i.appendChild(t)}return(r.body.length||r.cornerBadges.length)&&i.appendChild(dx(e,r)),r.footer.length&&i.appendChild(fx(e,r)),i}function Yb(e){if(!e.status)return null;let t=document.createElement(`div`);return t.className=Nb(),t.dataset.kind=e.status.kind,t.textContent=e.status.label,t}function Xb(e){if(!e.published)return null;let t=document.createElement(`div`);return t.className=Pb(),t.dataset.kind=`published`,t.textContent=`Published`,t}function Zb(e){if(!e.embargoActive)return null;let t=document.createElement(`div`);return t.className=Pb(),t.dataset.kind=`embargo`,t.textContent=`Embargo`,t}function Qb(e,t){return e===`status`?Yb(t):e===`publishedBadge`?Xb(t):e===`embargoBadge`?Zb(t):null}function $b(e,t){let n=[];for(let r of t){let t=Qb(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=Mb();for(let e of n)r.appendChild(e);return r}function ex(e){if(!e.drawName)return null;let t=document.createElement(`div`);return t.className=Rb(),t.textContent=e.drawName,t.title=e.drawName,t}function tx(e){if(!e.drawTypeLabel)return null;let t=document.createElement(`div`);return t.className=zb(),t.textContent=e.drawTypeLabel,t}function nx(e){let t=document.createElement(`span`);return t.className=Hb(),t.textContent=e,t}function rx(e){return typeof e.drawSize==`number`?nx(`Size ${e.drawSize}`):null}function ix(e){return typeof e.entryCount==`number`?nx(`${e.entryCount} ${e.entryCount===1?`entry`:`entries`}`):null}function ax(e){return e.matchUpFormat?nx(e.matchUpFormat):null}function ox(e){return typeof e.flightNumber==`number`?nx(`Flight ${e.flightNumber}`):null}function sx(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=Bb(),n.textContent=t.join(` · `),n}function cx(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=Ub();let a=document.createElement(`div`);a.className=Bb(),a.textContent=`${n}/${t} matches · ${r}%`,i.appendChild(a);let o=document.createElement(`div`);o.className=Wb();let s=document.createElement(`div`);return s.className=Gb(),s.style.right=`${100-r}%`,o.appendChild(s),i.appendChild(o),i}function lx(e,t){return e===`title`?ex(t):e===`drawTypeLabel`?tx(t):e===`drawSize`?rx(t):e===`entries`?ix(t):e===`matchUpFormat`?ax(t):e===`flightNumber`?ox(t):e===`ratings`?sx(t):e===`matchUpProgress`?cx(t):null}function ux(e,t){let n=document.createElement(`div`);n.className=Lb();let r=ex(e);r&&n.appendChild(r);let i=$b(e,t);return i&&n.appendChild(i),n}function dx(e,t){let n=document.createElement(`div`);n.className=Fb();let r=t.body.includes(`title`),i=t.cornerBadges.length>0;if(i&&!r){let r=$b(e,t.cornerBadges);r&&n.appendChild(r)}for(let r of t.body){if(r===`title`&&i){n.appendChild(ux(e,t.cornerBadges));continue}let a=lx(r,e);a&&n.appendChild(a)}return n}function fx(e,t){let n=document.createElement(`div`);n.className=Vb();for(let r of t.footer){let t=lx(r,e);t&&n.appendChild(t)}return n}function px(){let e=document.createElement(`div`);e.className=Kb();let t=document.createElement(`div`);t.className=Fb();for(let e of[`70%`,`40%`,`85%`]){let n=document.createElement(`div`);n.className=qb(),n.style.width=e,t.appendChild(n)}return e.appendChild(t),e}var mx={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 hx(e){if(e)return mx[e]?mx[e]:e.toLowerCase().split(`_`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function gx(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 _x(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 vx(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 yx(e,t){let n=Array.isArray(e?.structures)&&e.structures.length>0,r=t?.matchUpStats??(t?.lightMode||!n?void 0:gx(e)),i=e?.drawStatus===`CANCELLED`,a=t?.statusOverride===void 0?vx({generated:n,cancelled:i,matchUpCounts:r}):t.statusOverride;return{drawId:e?.drawId??``,drawName:e?.drawName??``,drawType:e?.drawType,drawTypeLabel:hx(e?.drawType),drawSize:_x(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 bx={showImage:!0,cornerBadges:[`status`,`eventTypeBadge`,`genderBadge`],body:[`title`,`categoryLabel`,`drawSummary`],footer:[`playerCount`,`matchUpProgress`]},xx=15;function Sx(e){return e?{showImage:e.showImage??bx.showImage,cornerBadges:e.cornerBadges??bx.cornerBadges,body:e.body??bx.body,footer:e.footer??bx.footer}:bx}var Cx=()=>`chc-ec-card`,wx=()=>`chc-ec-card--clickable`,Tx=()=>`chc-ec-image`,Ex=()=>`chc-ec-image-img`,Dx=()=>`chc-ec-image-svg`,Ox=()=>`chc-ec-image-placeholder`,kx=()=>`chc-ec-corner-badges`,Ax=()=>`chc-ec-status-pill`,jx=()=>`chc-ec-eventtype-badge`,Mx=()=>`chc-ec-gender-badge`,Nx=()=>`chc-ec-body`,Px=()=>`chc-ec-title`,Fx=()=>`chc-ec-category`,Ix=()=>`chc-ec-draw-summary`,Lx=()=>`chc-ec-date-range`,Rx=()=>`chc-ec-footer`,zx=()=>`chc-ec-player-count`,Bx=()=>`chc-ec-progress`,Vx=()=>`chc-ec-progress-meta`,Hx=()=>`chc-ec-progress-bar`,Ux=()=>`chc-ec-progress-fill`,Wx=()=>`chc-ec-updated-at`,Gx=()=>`chc-ec-card chc-ec-skeleton`,Kx=()=>`chc-ec-skeleton-line`,qx=()=>`chc-ec-skeleton-block`;function Jx(e,t,n){let r=Sx(t),i=document.createElement(`div`);return i.className=Cx(),i.dataset.eventId=e.eventId,n?.onClick&&(i.classList.add(wx()),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(Xx(e,r)),r.body.length&&i.appendChild(uS(e,r)),r.footer.length&&i.appendChild(dS(e,r)),i}function Yx(e,t){let n=wh(t.courtSvgSport,Dx());if(n){e.appendChild(n);return}let r=document.createElement(`div`);r.className=Ox(),e.appendChild(r)}function Xx(e,t){let n=document.createElement(`div`);if(n.className=Tx(),e.eventImageURL){let t=document.createElement(`img`);t.className=Ex(),t.src=e.eventImageURL,t.alt=e.eventName||``,t.loading=`lazy`,t.addEventListener(`error`,()=>{t.remove(),Yx(n,e)}),n.appendChild(t)}else Yx(n,e);if(t.cornerBadges.length){let r=tS(e,t.cornerBadges);r&&n.appendChild(r)}return n}function Zx(e){if(!e.status)return null;let t=document.createElement(`div`);return t.className=Ax(),t.dataset.kind=e.status.kind,t.textContent=e.status.label,t}function Qx(e){if(!e.eventType)return null;let t=document.createElement(`div`);return t.className=jx(),t.dataset.kind=e.eventType,t.textContent=e.eventType,t}function $x(e){if(!e.gender)return null;let t=document.createElement(`div`);return t.className=Mx(),t.dataset.kind=e.gender,t.textContent=e.gender===`MALE`?`M`:e.gender===`FEMALE`?`W`:`X`,t}function eS(e,t){return e===`status`?Zx(t):e===`eventTypeBadge`?Qx(t):e===`genderBadge`?$x(t):null}function tS(e,t){let n=[];for(let r of t){let t=eS(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=kx();for(let e of n)r.appendChild(e);return r}function nS(e){if(!e.eventName)return null;let t=document.createElement(`div`);return t.className=Px(),t.textContent=e.eventName,t.title=e.eventName,t}function rS(e){if(!e.categoryLabel)return null;let t=document.createElement(`div`);return t.className=Fx(),t.textContent=e.categoryLabel,t}function iS(e){if(!e.drawSummary)return null;let t=document.createElement(`div`);return t.className=Ix(),t.textContent=e.drawSummary,t}function aS(e){if(!e.dateRangeFormatted)return null;let t=document.createElement(`div`);return t.className=Lx(),t.textContent=e.dateRangeFormatted,t}function oS(e){if(!e.updatedAt)return null;let t=document.createElement(`div`);t.className=Wx();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 sS(e){if(typeof e.entryCount!=`number`)return null;let t=document.createElement(`div`);return t.className=zx(),t.textContent=`${e.entryCount} ${e.entryCount===1?`player`:`players`}`,t}function cS(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=Bx();let a=document.createElement(`div`);a.className=Vx(),a.textContent=`${n}/${t} matches · ${r}%`,i.appendChild(a);let o=document.createElement(`div`);o.className=Hx();let s=document.createElement(`div`);return s.className=Ux(),s.style.right=`${100-r}%`,o.appendChild(s),i.appendChild(o),i}function lS(e,t){return e===`title`?nS(t):e===`categoryLabel`?rS(t):e===`drawSummary`?iS(t):e===`dateRange`?aS(t):e===`updatedAt`?oS(t):e===`playerCount`?sS(t):e===`matchUpProgress`?cS(t):null}function uS(e,t){let n=document.createElement(`div`);n.className=Nx();for(let r of t.body){let t=lS(r,e);t&&n.appendChild(t)}return n}function dS(e,t){let n=document.createElement(`div`);n.className=Rx();for(let r of t.footer){let t=lS(r,e);t&&n.appendChild(t)}return n}function fS(e){let t=Sx(e);return Uh({showImage:t.showImage!==!1,bodyLines:t.body.length,showFooter:t.footer.length>0,cardClass:Gx(),imageClass:Tx(),bodyClass:Nx(),footerClass:Rx(),blockClass:qx(),lineClass:Kx()})}function pS(e){if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t}function mS(e,t,n){return!t||!n?!1:t.getTime()<=e.getTime()&&e.getTime()<=n.getTime()}function hS(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=pS(e.startDate),i=pS(e.endDate);if(n&&(n.inProgress>0||mS(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 gS=`eventImage`,_S=`DRAFT_STATE`;function vS(e){if(!e)return;let t=String(e).toUpperCase();if(t===`SINGLES`||t===`DOUBLES`||t===`TEAM`||t===`HYBRID`)return t}function yS(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 bS(e){if(!e)return;let t=xS(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=xS(e.ageCategoryCode);if(n)return n;if(e.ratingMin&&e.ratingMax)return`Rating ${e.ratingMin}–${e.ratingMax}`}function xS(e){if(typeof e!=`string`)return;let t=e.trim();if(t&&!/^[-—–_]+$/.test(t))return t}function SS(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 CS(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 wS(e){if(e?.draftState!=null)return!0;let t=e?.extensions;return Array.isArray(t)?t.some(e=>e?.name===_S):!1}function TS(e){return e.some(e=>e?.automated?.seedsOnly===!0||wS(e))}function ES(e){return e.length!==0&&e.every(e=>e?.drawStatus===`CANCELLED`)}var DS=new Set([`DIRECT_ACCEPTANCE`,`DA`,`DIRECT_CONFIRMED`,`DC`,`ACCEPTED`,`A`,`ENTERED`,`PE`,`QUALIFIER`,`Q`,`WILDCARD`,`WC`]);function OS(e){if(!e.length)return 0;let t=0;for(let n of e)DS.has(String(n?.entryStatus))&&(t+=1);return t}function kS(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:CS(e)),o=t?.statusOverride===void 0?hS({allDrawsCancelled:ES(n),drawCount:n.length,entryCount:OS(r),startDate:e?.startDate,endDate:e?.endDate,matchUpCounts:a,hasDraftState:n.some(wS),hasSeedsOnlyDraw:TS(n)},t?.now):t.statusOverride;return{eventId:e?.eventId??``,eventName:e?.eventName??``,eventAbbreviation:e?.eventAbbreviation,categoryLabel:bS(e?.category),eventType:vS(e?.eventType),gender:yS(e?.gender),drawCount:n.length||void 0,drawSummary:SS(n),entryCount:OS(r)||void 0,matchUpCounts:a,startDate:e?.startDate,endDate:e?.endDate,dateRangeFormatted:Ih(e?.startDate,e?.endDate),status:o,eventImageURL:e?.eventImageURL??zh(i,gS),courtSvgSport:e?.courtSvgSport??Bh(i)??t?.sport,updatedAt:e?.updatedAt}}var AS=()=>`chc-hil-container`,jS=()=>`chc-hil-form`,MS=()=>`chc-hil-header`,NS=()=>`chc-hil-title`,PS=()=>`chc-hil-tabs`,FS=()=>`chc-hil-tab`,IS=()=>`chc-hil-tab--active`,LS=()=>`chc-hil-field`,RS=()=>`chc-hil-label`,zS=()=>`chc-hil-input`,BS=()=>`chc-hil-row`,VS=()=>`chc-hil-submit`,HS=()=>`chc-hil-message`,US=()=>`chc-hil-message--error`,WS=()=>`chc-hil-message--success`,GS=()=>`chc-hil-switch-mode`;function KS(e){return e.replace(/\/+$/,``)}async function qS(e,t,n,r=fetch){let i=KS(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 JS(e,t,n){return qS(e,`/auth/hiveid/signup`,t,n)}function YS(e,t,n){return qS(e,`/auth/hiveid/verify-existing`,t,n)}function XS(e,t,n){return qS(e,`/auth/hiveid/magic-link`,t,n)}function ZS(e,t,n){return qS(e,`/auth/hiveid/magic-link/consume`,t,n)}function QS(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 $S=[{value:`M`,label:`Male`},{value:`F`,label:`Female`}],eC=`signup`,tC=`login`,nC=`magic-link`,rC=[eC,tC,nC],iC=`hiveid:authenticated`,aC={[eC]:`Sign up`,[tC]:`Log in`,[nC]:`Email link`},oC={[eC]:`Create your CourtHive identity`,[tC]:`Log in to CourtHive`,[nC]:`Email me a sign-in link`};function sC(e){if(!e?.cfsBaseUrl)throw Error(`buildHiveIDLogin: cfsBaseUrl is required`);let t=e.mode??`signup`,n=!1,r=document.createElement(`div`);r.className=AS(),r.dataset.hiveidLogin=`true`;let i=document.createElement(`div`);i.className=MS();let a=document.createElement(`h2`);a.className=NS(),i.appendChild(a);let o=document.createElement(`div`);o.className=PS(),i.appendChild(o);let s={};rC.forEach(e=>{let t=document.createElement(`button`);t.type=`button`,t.className=FS(),t.textContent=aC[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=jS(),c.noValidate=!0,r.appendChild(c);let l=document.createElement(`div`);l.className=HS(),l.hidden=!0,r.appendChild(l);function u(e,t=`info`){l.textContent=e,l.className=HS(),t===`error`&&l.classList.add(US()),t===`success`&&l.classList.add(WS()),l.hidden=!e}function d(){u(``)}function f(e,t,n=`text`,r=``){let i=document.createElement(`div`);i.className=LS();let a=document.createElement(`label`);a.className=RS(),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=zS(),o.required=!0,i.appendChild(a),i.appendChild(o),c.appendChild(i),o}function p(){let e=document.createElement(`div`);return e.className=BS(),c.appendChild(e),e}function m(e){let t=document.createElement(`button`);return t.type=`submit`,t.className=VS(),t.textContent=e,c.appendChild(t),t}function h(e,t,n){let r=document.createElement(`div`);r.className=GS();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=RS(),t.textContent=e.note,c.appendChild(t)}let t=null;if(e.providers.length>1){let n=document.createElement(`div`);n.className=LS();let r=document.createElement(`label`);r.className=RS(),r.textContent=`Provider`,r.htmlFor=`chc-hil-fedProvider`;let i=document.createElement(`select`);i.id=`chc-hil-fedProvider`,i.className=zS(),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=LS();let r=document.createElement(`label`);r.className=RS(),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=zS(),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=RS(),t.textContent=e.note,c.appendChild(t)}let t=e.required!==!1,n=document.createElement(`div`);n.className=LS();let r=document.createElement(`label`);r.className=RS(),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=zS(),n.append(r,i),c.appendChild(n);let a=document.createElement(`div`);a.className=LS();let o=document.createElement(`label`);o.className=RS(),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=zS();let l=document.createElement(`option`);return l.value=``,l.textContent=`Select…`,s.appendChild(l),(e.sexOptions??$S).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),()=>uC({birthDate:i.value,sex:s.value})}function v(e){r.dispatchEvent(new CustomEvent(iC,{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 JS(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(QS(e)){u(`That email already has a CourtHive account — please verify your password.`,`info`),w(`login`);return}u(fC(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 YS(e.cfsBaseUrl,{email:r,password:i},e.fetchImpl);v({token:t.token,refreshToken:t.refreshToken,personId:t.personId,cached:t.cached??dC()}),u(`Signed in.`,`success`)}catch(e){u(fC(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 XS(e.cfsBaseUrl,{email:n},e.fetchImpl),u(`If ${n} is registered, a sign-in link is on its way.`,`success`)}catch(e){u(fC(e)??`Could not send link. Please try again.`,`error`)}}function C(){if(c.replaceChildren(),a.textContent=oC[t],rC.forEach(e=>{s[e].classList.toggle(IS(),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=zS();let r=document.createElement(`input`);r.id=`chc-hil-lastName`,r.type=`text`,r.placeholder=`Last name`,r.required=!0,r.className=zS();let i=document.createElement(`div`);i.className=LS();let a=document.createElement(`label`);a.textContent=`First name`,a.className=RS(),a.htmlFor=n.id,i.append(a,n);let o=document.createElement(`div`);o.className=LS();let s=document.createElement(`label`);s.textContent=`Last name`,s.className=RS(),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:lC(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(iC,t),()=>r.removeEventListener(iC,t)}return C(),{root:r,setMode:w,getMode:T,onAuthenticated:E}}async function cC(e,t,n){let r=await ZS(e,{code:t},n);return{token:r.token,refreshToken:r.refreshToken,personId:r.personId,cached:r.cached??dC()}}function lC(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 uC(e){let t={},n=e.birthDate?.trim(),r=e.sex?.trim();return n&&(t.birthDate=n),r&&(t.sex=r),t}function dC(){return{standardFamilyName:null,standardGivenName:null,birthDate:null,sex:null,nationalityCode:null}}function fC(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 pC={name:`courthive-components`,packageManager:`pnpm@12.3.4`,version:`4.4.0`,engines:{node:`>=22`},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/*`},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`,"test:watch":`vitest`,"test:ui":`vitest --ui`,dev:`vite`,build:`tsc && vite build`,"check-types":`tsc --noEmit`,prepublishOnly:`pnpm build`,preview:`vite preview`,storybook:`storybook dev -p 6006`,"build-storybook":`storybook build`,"test-storybook":`test-storybook --url http://localhost:6006`,"deploy-storybook":`gh-pages -d storybook-static`,"pre-commit":`lint-staged`,predeploy:`pnpm build-storybook`,lint:`eslint src --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`,"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`},"lint-staged":{"*.{js,ts}":`eslint --cache --fix`,"*":`prettier --ignore-unknown --write`},devDependencies:{"@chromatic-com/storybook":`^5.0.0`,"@commitlint/cli":`21.2.2`,"@commitlint/config-conventional":`21.2.2`,"@eslint/js":`^10.0.1`,"@fortawesome/fontawesome-free":`^7.2.0`,"@storybook/addon-docs":`^10.2.17`,"@storybook/html-vite":`^10.2.17`,"@storybook/test-runner":`^0.24.0`,"@types/d3":`^7.4.3`,"@types/leaflet":`^1.9.12`,"@types/vanillajs-datepicker":`^1.3.5`,"@typescript-eslint/eslint-plugin":`8.69.0`,"@typescript-eslint/parser":`8.69.0`,"@vitest/coverage-v8":`^5.0.0`,"@vitest/ui":`^5.0.0`,eslint:`10.10.0`,"eslint-plugin-sonarjs":`4.2.0`,"eslint-plugin-storybook":`^10.2.17`,"gh-pages":`6.3.0`,globals:`^17.3.0`,"happy-dom":`^20.8.3`,husky:`9.1.7`,leaflet:`1.9.4`,"lint-staged":`17.4.1`,playwright:`^1.57.0`,prettier:`^3.8.1`,semver:`7.8.5`,storybook:`^10.2.17`,"tabulator-tables":`6.5.2`,"tods-competition-factory":`6.38.0`,typescript:`^6.0.2`,vite:`8.2.2`,"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":`^6.0.0`,leaflet:`^1.9.4`},peerDependenciesMeta:{leaflet:{optional:!0}}};function mC(){return pC.version}var hC={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 gC(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&&B(i.onClick)&&i.onClick(),n&&B(n)&&n()},e.appendChild(t)}return{elements:r}}var _C=(e,t)=>n=>n?.trim().length>=e&&(!t||n?.trim().length<=t);function vC(e){return t.tools.isConvertableInteger(e)&&parseInt(e.toString())>=0}var yC=(e,t)=>n=>vC(n)&&Number(n)>=e&&Number(n)<=t,bC=e=>/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?\d)(?=.*?[#?!@$%^&*-]).{8,12}$/.test(e);function xC(e){return t.tools.dateTime.dateValidation.test(e)}var SC=(e,t)=>n=>{let r=(n||``).trim().split(` `).length;return r>=e&&(!t||r<=t)},CC=/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i,wC=e=>CC.exec(e),TC=_({dateValidator:()=>xC,emailValidator:()=>wC,nameValidator:()=>_C,numericRange:()=>yC,numericValidator:()=>vC,passwordValidator:()=>bC,wordValidator:()=>SC}),EC=class{constructor({tournamentRecord:e,drawId:n,structureId:r,eventId:i}){this.tournamentRecord=e,this.drawId=n,this.structureId=r,this.eventId=i||e.events?.[0]?.eventId,t.tournamentEngine.setState(e)}setRenderCallback(e){this.renderCallback=e}getDrawEntryParticipantIds(){let{event:e,drawDefinition:n}=t.tournamentEngine.getEvent({drawId:this.drawId})||{};if(!e)return[];let{flightProfile:r}=t.tournamentEngine.getFlightProfile({eventId:this.eventId})||{};return(r?.flights?.find(e=>e.drawId===this.drawId)?.drawEntries||n?.entries||[]).map(e=>e.participantId).filter(Boolean)}getAllParticipants(){t.tournamentEngine.setState(this.tournamentRecord);let e=this.getDrawEntryParticipantIds();if(!e.length)return[];let{participants:n=[]}=t.tournamentEngine.getParticipants({participantFilters:{participantIds:e}})||{};return n.map(e=>({participantId:e.participantId,participantName:e.participantName,participantType:e.participantType,person:e.person,individualParticipants:e.individualParticipants}))}getAvailableParticipants(){t.tournamentEngine.setState(this.tournamentRecord);let e=this.getAllParticipants(),{assignedParticipantIds:n=[]}=t.tournamentEngine.getAssignedParticipantIds({drawId:this.drawId})||{};return e.filter(e=>!n.includes(e.participantId))}removeAssignment({drawPosition:e}){t.tournamentEngine.setState(this.tournamentRecord);let n=this.getMatchUps().find(t=>t.sides?.some(t=>t.drawPosition===e))?.sides?.find(t=>t.drawPosition===e)?.bye===!0,r=t.tournamentEngine.removeDrawPositionAssignment({drawId:this.drawId,structureId:this.structureId,drawPosition:e});if(r.error)return{success:!1,error:r.error};let{tournamentRecord:i}=t.tournamentEngine.getState()||{};return this.tournamentRecord=i,n&&this.renderCallback&&this.renderCallback(),{success:!0}}assignParticipant({drawPosition:e,participantId:n}){t.tournamentEngine.setState(this.tournamentRecord);let r=t.tournamentEngine.assignDrawPosition({drawId:this.drawId,structureId:this.structureId,drawPosition:e,participantId:n});if(r.error)return{success:!1,error:r.error};let{tournamentRecord:i}=t.tournamentEngine.getState()||{};return this.tournamentRecord=i,this.focusDrawPosition=e+1,this.renderCallback&&this.renderCallback(),{success:!0}}getAndClearFocusDrawPosition(){let e=this.focusDrawPosition;return this.focusDrawPosition=void 0,e}assignBye({drawPosition:e}){t.tournamentEngine.setState(this.tournamentRecord);let n=t.tournamentEngine.assignDrawPositionBye({drawId:this.drawId,structureId:this.structureId,drawPosition:e});if(n.error)return{success:!1,error:n.error};let{tournamentRecord:r}=t.tournamentEngine.getState()||{};return this.tournamentRecord=r,this.focusDrawPosition=e+1,this.renderCallback&&this.renderCallback(),{success:!0}}assignQualifier({drawPosition:e}){t.tournamentEngine.setState(this.tournamentRecord);let n=t.tournamentEngine.assignDrawPosition({drawId:this.drawId,structureId:this.structureId,drawPosition:e,qualifier:!0});if(n.error)return{success:!1,error:n.error};let{tournamentRecord:r}=t.tournamentEngine.getState()||{};return this.tournamentRecord=r,this.focusDrawPosition=e+1,this.renderCallback&&this.renderCallback(),{success:!0}}getMatchUps(){t.tournamentEngine.setState(this.tournamentRecord);let{eventData:e}=t.tournamentEngine.getEventData({eventId:this.eventId})||{},n=(e?.drawsData?.find(e=>e.drawId===this.drawId))?.structures?.find(e=>e.structureId===this.structureId)?.roundMatchUps;return n?Object.values(n).flat():[]}getState(){return this.tournamentRecord}getContext(){return{drawId:this.drawId,structureId:this.structureId}}},DC=`<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>`,OC=new WeakMap;function kC(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=DC,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),OC.set(n,i),n.appendChild(r),n}function AC(e){OC.get(e)?.()}function jC(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function MC(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function NC(e){let t,n,r;e.length===2?(t=e===jC||e===MC?e:PC,n=e,r=e):(t=jC,n=(t,n)=>jC(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 PC(){return 0}function FC(e){return e===null?NaN:+e}var IC=NC(jC),LC=IC.right;IC.left,NC(FC).center;function RC(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 zC=class extends Map{constructor(e,t=UC){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(BC(this,e))}has(e){return super.has(BC(this,e))}set(e,t){return super.set(VC(this,e),t)}delete(e){return super.delete(HC(this,e))}};function BC({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):n}function VC({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function HC({_intern:e,_key:t},n){let r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function UC(e){return typeof e==`object`&&e?e.valueOf():e}var WC=Math.sqrt(50),GC=Math.sqrt(10),KC=Math.sqrt(2);function qC(e,t,n){let r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/10**i,o=a>=WC?10:a>=GC?5:a>=KC?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?qC(e,t,n*2):[s,c,l]}function JC(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?qC(t,e,n):qC(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 YC(e,t,n){return t=+t,e=+e,n=+n,qC(e,t,n)[2]}function XC(e,t,n){t=+t,e=+e,n=+n;let r=t<e,i=r?YC(t,e,n):YC(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}function ZC(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 QC(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 $C(e){return e}var ew=1,tw=2,nw=3,rw=4,iw=1e-6;function aw(e){return`translate(`+e+`,0)`}function ow(e){return`translate(0,`+e+`)`}function sw(e){return t=>+e(t)}function cw(e,t){return t=Math.max(0,e.bandwidth()-t*2)/2,e.round()&&(t=Math.round(t)),n=>+e(n)+t}function lw(){return!this.__axis}function uw(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===ew||e===rw?-1:1,u=e===rw||e===tw?`x`:`y`,d=e===ew||e===nw?aw:ow;function f(f){var p=r??(t.ticks?t.ticks.apply(t,n):t.domain()),m=i??(t.tickFormat?t.tickFormat.apply(t,n):$C),h=Math.max(a,0)+s,g=t.range(),_=+g[0]+c,v=+g[g.length-1]+c,y=(t.bandwidth?cw:sw)(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===ew?`0em`:e===nw?`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`,iw).attr(`transform`,function(e){return isFinite(e=y(e))?d(e+c):this.getAttribute(`transform`)}),w.attr(`opacity`,iw).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===rw||e===tw?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(lw).attr(`fill`,`none`).attr(`font-size`,10).attr(`font-family`,`sans-serif`).attr(`text-anchor`,e===tw?`start`:e===rw?`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 dw(e){return uw(nw,e)}function fw(e){return uw(rw,e)}var pw={value:()=>{}};function mw(){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 hw(n)}function hw(e){this._=e}function gw(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}})}hw.prototype=mw.prototype={constructor:hw,on:function(e,t){var n=this._,r=gw(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=_w(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]=vw(n[i],e.name,t);else if(t==null)for(i in n)n[i]=vw(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 hw(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 _w(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function vw(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=pw,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var yw={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 bw(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),yw.hasOwnProperty(t)?{space:yw[t],local:e}:e}function xw(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 Sw(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Cw(e){var t=bw(e);return(t.local?Sw:xw)(t)}function ww(){}function Tw(e){return e==null?ww:function(){return this.querySelector(e)}}function Ew(e){typeof e!=`function`&&(e=Tw(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 mE(r,this._parents)}function Dw(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Ow(){return[]}function kw(e){return e==null?Ow:function(){return this.querySelectorAll(e)}}function Aw(e){return function(){return Dw(e.apply(this,arguments))}}function jw(e){e=typeof e==`function`?Aw(e):kw(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 mE(r,i)}function Mw(e){return function(){return this.matches(e)}}function Nw(e){return function(t){return t.matches(e)}}var Pw=Array.prototype.find;function Fw(e){return function(){return Pw.call(this.children,e)}}function Iw(){return this.firstElementChild}function Lw(e){return this.select(e==null?Iw:Fw(typeof e==`function`?e:Nw(e)))}var Rw=Array.prototype.filter;function zw(){return Array.from(this.children)}function Bw(e){return function(){return Rw.call(this.children,e)}}function Vw(e){return this.selectAll(e==null?zw:Bw(typeof e==`function`?e:Nw(e)))}function Hw(e){typeof e!=`function`&&(e=Mw(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 mE(r,this._parents)}function Uw(e){return Array(e.length)}function Ww(){return new mE(this._enter||this._groups.map(Uw),this._parents)}function Gw(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Gw.prototype={constructor:Gw,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 Kw(e){return function(){return e}}function qw(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 Gw(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function Jw(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 Gw(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function Yw(e){return e.__data__}function Xw(e,t){if(!arguments.length)return Array.from(this,Yw);var n=t?Jw:qw,r=this._parents,i=this._groups;typeof e!=`function`&&(e=Kw(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=Zw(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 mE(o,r),o._enter=s,o._exit=c,o}function Zw(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function Qw(){return new mE(this._exit||this._groups.map(Uw),this._parents)}function $w(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 eT(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 mE(s,this._parents)}function tT(){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 nT(e){e||=rT;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 mE(i,this._parents).order()}function rT(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function iT(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function aT(){return Array.from(this)}function oT(){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 sT(){let e=0;for(let t of this)++e;return e}function cT(){return!this.node()}function lT(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 uT(e){return function(){this.removeAttribute(e)}}function dT(e){return function(){this.removeAttributeNS(e.space,e.local)}}function fT(e,t){return function(){this.setAttribute(e,t)}}function pT(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function mT(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function hT(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 gT(e,t){var n=bw(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?dT:uT:typeof t==`function`?n.local?hT:mT:n.local?pT:fT)(n,t))}function _T(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function vT(e){return function(){this.style.removeProperty(e)}}function yT(e,t,n){return function(){this.style.setProperty(e,t,n)}}function bT(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function xT(e,t,n){return arguments.length>1?this.each((t==null?vT:typeof t==`function`?bT:yT)(e,t,n??``)):ST(this.node(),e)}function ST(e,t){return e.style.getPropertyValue(t)||_T(e).getComputedStyle(e,null).getPropertyValue(t)}function CT(e){return function(){delete this[e]}}function wT(e,t){return function(){this[e]=t}}function TT(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function ET(e,t){return arguments.length>1?this.each((t==null?CT:typeof t==`function`?TT:wT)(e,t)):this.node()[e]}function DT(e){return e.trim().split(/^|\s+/)}function OT(e){return e.classList||new kT(e)}function kT(e){this._node=e,this._names=DT(e.getAttribute(`class`)||``)}kT.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 AT(e,t){for(var n=OT(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function jT(e,t){for(var n=OT(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function MT(e){return function(){AT(this,e)}}function NT(e){return function(){jT(this,e)}}function PT(e,t){return function(){(t.apply(this,arguments)?AT:jT)(this,e)}}function FT(e,t){var n=DT(e+``);if(arguments.length<2){for(var r=OT(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?PT:t?MT:NT)(n,t))}function IT(){this.textContent=``}function LT(e){return function(){this.textContent=e}}function RT(e){return function(){var t=e.apply(this,arguments);this.textContent=t??``}}function zT(e){return arguments.length?this.each(e==null?IT:(typeof e==`function`?RT:LT)(e)):this.node().textContent}function BT(){this.innerHTML=``}function VT(e){return function(){this.innerHTML=e}}function HT(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??``}}function UT(e){return arguments.length?this.each(e==null?BT:(typeof e==`function`?HT:VT)(e)):this.node().innerHTML}function WT(){this.nextSibling&&this.parentNode.appendChild(this)}function GT(){return this.each(WT)}function KT(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function qT(){return this.each(KT)}function JT(e){var t=typeof e==`function`?e:Cw(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function YT(){return null}function XT(e,t){var n=typeof e==`function`?e:Cw(e),r=t==null?YT:typeof t==`function`?t:Tw(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function ZT(){var e=this.parentNode;e&&e.removeChild(this)}function QT(){return this.each(ZT)}function $T(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function eE(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function tE(e){return this.select(e?eE:$T)}function nE(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function rE(e){return function(t){e.call(this,t,this.__data__)}}function iE(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 aE(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 oE(e,t,n){return function(){var r=this.__on,i,a=rE(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 sE(e,t,n){var r=iE(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?oE:aE,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function cE(e,t,n){var r=_T(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 lE(e,t){return function(){return cE(this,e,t)}}function uE(e,t){return function(){return cE(this,e,t.apply(this,arguments))}}function dE(e,t){return this.each((typeof t==`function`?uE:lE)(e,t))}function*fE(){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 pE=[null];function mE(e,t){this._groups=e,this._parents=t}function hE(){return new mE([[document.documentElement]],pE)}function gE(){return this}mE.prototype=hE.prototype={constructor:mE,select:Ew,selectAll:jw,selectChild:Lw,selectChildren:Vw,filter:Hw,data:Xw,enter:Ww,exit:Qw,join:$w,merge:eT,selection:gE,order:tT,sort:nT,call:iT,nodes:aT,node:oT,size:sT,empty:cT,each:lT,attr:gT,style:xT,property:ET,classed:FT,text:zT,html:UT,raise:GT,lower:qT,append:JT,insert:XT,remove:QT,clone:tE,datum:nE,on:sE,dispatch:dE,[Symbol.iterator]:fE};function _E(e){return typeof e==`string`?new mE([[document.querySelector(e)]],[document.documentElement]):new mE([[e]],pE)}function vE(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function yE(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function bE(){}var xE=.7,SE=1/xE,CE=`\\s*([+-]?\\d+)\\s*`,wE=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,TE=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,EE=/^#([0-9a-f]{3,8})$/,DE=RegExp(`^rgb\\(${CE},${CE},${CE}\\)$`),OE=RegExp(`^rgb\\(${TE},${TE},${TE}\\)$`),kE=RegExp(`^rgba\\(${CE},${CE},${CE},${wE}\\)$`),AE=RegExp(`^rgba\\(${TE},${TE},${TE},${wE}\\)$`),jE=RegExp(`^hsl\\(${wE},${TE},${TE}\\)$`),ME=RegExp(`^hsla\\(${wE},${TE},${TE},${wE}\\)$`),NE={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};vE(bE,RE,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:PE,formatHex:PE,formatHex8:FE,formatHsl:IE,formatRgb:LE,toString:LE});function PE(){return this.rgb().formatHex()}function FE(){return this.rgb().formatHex8()}function IE(){return ZE(this).formatHsl()}function LE(){return this.rgb().formatRgb()}function RE(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=EE.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?zE(t):n===3?new UE(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?BE(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?BE(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=DE.exec(e))?new UE(t[1],t[2],t[3],1):(t=OE.exec(e))?new UE(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=kE.exec(e))?BE(t[1],t[2],t[3],t[4]):(t=AE.exec(e))?BE(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=jE.exec(e))?XE(t[1],t[2]/100,t[3]/100,1):(t=ME.exec(e))?XE(t[1],t[2]/100,t[3]/100,t[4]):NE.hasOwnProperty(e)?zE(NE[e]):e===`transparent`?new UE(NaN,NaN,NaN,0):null}function zE(e){return new UE(e>>16&255,e>>8&255,e&255,1)}function BE(e,t,n,r){return r<=0&&(e=t=n=NaN),new UE(e,t,n,r)}function VE(e){return e instanceof bE||(e=RE(e)),e?(e=e.rgb(),new UE(e.r,e.g,e.b,e.opacity)):new UE}function HE(e,t,n,r){return arguments.length===1?VE(e):new UE(e,t,n,r??1)}function UE(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}vE(UE,HE,yE(bE,{brighter(e){return e=e==null?SE:SE**+e,new UE(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?xE:xE**+e,new UE(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new UE(JE(this.r),JE(this.g),JE(this.b),qE(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:WE,formatHex:WE,formatHex8:GE,formatRgb:KE,toString:KE}));function WE(){return`#${YE(this.r)}${YE(this.g)}${YE(this.b)}`}function GE(){return`#${YE(this.r)}${YE(this.g)}${YE(this.b)}${YE((isNaN(this.opacity)?1:this.opacity)*255)}`}function KE(){let e=qE(this.opacity);return`${e===1?`rgb(`:`rgba(`}${JE(this.r)}, ${JE(this.g)}, ${JE(this.b)}${e===1?`)`:`, ${e})`}`}function qE(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function JE(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function YE(e){return e=JE(e),(e<16?`0`:``)+e.toString(16)}function XE(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new $E(e,t,n,r)}function ZE(e){if(e instanceof $E)return new $E(e.h,e.s,e.l,e.opacity);if(e instanceof bE||(e=RE(e)),!e)return new $E;if(e instanceof $E)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 $E(o,s,c,e.opacity)}function QE(e,t,n,r){return arguments.length===1?ZE(e):new $E(e,t,n,r??1)}function $E(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}vE($E,QE,yE(bE,{brighter(e){return e=e==null?SE:SE**+e,new $E(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?xE:xE**+e,new $E(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 UE(nD(e>=240?e-240:e+120,i,r),nD(e,i,r),nD(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new $E(eD(this.h),tD(this.s),tD(this.l),qE(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=qE(this.opacity);return`${e===1?`hsl(`:`hsla(`}${eD(this.h)}, ${tD(this.s)*100}%, ${tD(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function eD(e){return e=(e||0)%360,e<0?e+360:e}function tD(e){return Math.max(0,Math.min(1,e||0))}function nD(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 rD=e=>()=>e;function iD(e,t){return function(n){return e+n*t}}function aD(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function oD(e){return(e=+e)==1?sD:function(t,n){return n-t?aD(t,n,e):rD(isNaN(t)?n:t)}}function sD(e,t){var n=t-e;return n?iD(e,n):rD(isNaN(e)?t:e)}var cD=(function e(t){var n=oD(t);function r(e,t){var r=n((e=HE(e)).r,(t=HE(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=sD(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 lD(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 uD(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function dD(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=Array(r),a=Array(n),o;for(o=0;o<r;++o)i[o]=bD(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 fD(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function pD(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function mD(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]=bD(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var hD=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,gD=new RegExp(hD.source,`g`);function _D(e){return function(){return e}}function vD(e){return function(t){return e(t)+``}}function yD(e,t){var n=hD.lastIndex=gD.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=hD.exec(e))&&(i=gD.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:pD(r,i)})),n=gD.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?vD(c[0].x):_D(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 bD(e,t){var n=typeof t,r;return t==null||n===`boolean`?rD(t):(n===`number`?pD:n===`string`?(r=RE(t))?(t=r,cD):yD:t instanceof RE?cD:t instanceof Date?fD:uD(t)?lD:Array.isArray(t)?dD:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?mD:pD)(e,t)}function xD(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var SD=180/Math.PI,CD={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function wD(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)*SD,skewX:Math.atan(c)*SD,scaleX:o,scaleY:s}}var TD;function ED(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?CD:wD(t.a,t.b,t.c,t.d,t.e,t.f)}function DD(e){return e==null||(TD||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),TD.setAttribute(`transform`,e),!(e=TD.transform.baseVal.consolidate()))?CD:(e=e.matrix,wD(e.a,e.b,e.c,e.d,e.e,e.f))}function OD(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:pD(e,i)},{i:c-2,x:pD(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:pD(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:pD(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:pD(e,n)},{i:s-2,x:pD(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 kD=OD(ED,`px, `,`px)`,`deg)`),AD=OD(DD,`, `,`)`,`)`),jD=0,MD=0,ND=0,PD=1e3,FD,ID,LD=0,RD=0,zD=0,BD=typeof performance==`object`&&performance.now?performance:Date,VD=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function HD(){return RD||=(VD(UD),BD.now()+zD)}function UD(){RD=0}function WD(){this._call=this._time=this._next=null}WD.prototype=GD.prototype={constructor:WD,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?HD():+n)+(t==null?0:+t),!this._next&&ID!==this&&(ID?ID._next=this:FD=this,ID=this),this._call=e,this._time=n,XD()},stop:function(){this._call&&(this._call=null,this._time=1/0,XD())}};function GD(e,t,n){var r=new WD;return r.restart(e,t,n),r}function KD(){HD(),++jD;for(var e=FD,t;e;)(t=RD-e._time)>=0&&e._call.call(void 0,t),e=e._next;--jD}function qD(){RD=(LD=BD.now())+zD,jD=MD=0;try{KD()}finally{jD=0,YD(),RD=0}}function JD(){var e=BD.now(),t=e-LD;t>PD&&(zD-=t,LD=e)}function YD(){for(var e,t=FD,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:FD=n);ID=e,XD(r)}function XD(e){jD||(MD&&=clearTimeout(MD),e-RD>24?(e<1/0&&(MD=setTimeout(qD,e-BD.now()-zD)),ND&&=clearInterval(ND)):(ND||=(LD=BD.now(),setInterval(JD,PD)),jD=1,VD(qD)))}function ZD(e,t,n){var r=new WD;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var QD=mw(`start`,`end`,`cancel`,`interrupt`),$D=[];function eO(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;iO(e,n,{name:t,index:r,group:i,on:QD,tween:$D,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function tO(e,t){var n=rO(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function nO(e,t){var n=rO(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function rO(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function iO(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=GD(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 ZD(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(ZD(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 aO(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 oO(e){return this.each(function(){aO(this,e)})}function sO(e,t){var n,r;return function(){var i=nO(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 cO(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=nO(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 lO(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=rO(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?sO:cO)(n,e,t))}function uO(e,t,n){var r=e._id;return e.each(function(){var e=nO(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return rO(e,r).value[t]}}function dO(e,t){var n;return(typeof t==`number`?pD:t instanceof RE?cD:(n=RE(t))?(t=n,cD):yD)(e,t)}function fO(e){return function(){this.removeAttribute(e)}}function pO(e){return function(){this.removeAttributeNS(e.space,e.local)}}function mO(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 hO(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 gO(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 _O(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 vO(e,t){var n=bw(e),r=n===`transform`?AD:dO;return this.attrTween(e,typeof t==`function`?(n.local?_O:gO)(n,r,uO(this,`attr.`+e,t)):t==null?(n.local?pO:fO)(n):(n.local?hO:mO)(n,r,t))}function yO(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function bO(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function xO(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&bO(e,i)),n}return i._value=t,i}function SO(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&yO(e,i)),n}return i._value=t,i}function CO(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=bw(e);return this.tween(n,(r.local?xO:SO)(r,t))}function wO(e,t){return function(){tO(this,e).delay=+t.apply(this,arguments)}}function TO(e,t){return t=+t,function(){tO(this,e).delay=t}}function EO(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?wO:TO)(t,e)):rO(this.node(),t).delay}function DO(e,t){return function(){nO(this,e).duration=+t.apply(this,arguments)}}function OO(e,t){return t=+t,function(){nO(this,e).duration=t}}function kO(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?DO:OO)(t,e)):rO(this.node(),t).duration}function AO(e,t){if(typeof t!=`function`)throw Error();return function(){nO(this,e).ease=t}}function jO(e){var t=this._id;return arguments.length?this.each(AO(t,e)):rO(this.node(),t).ease}function MO(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();nO(this,e).ease=n}}function NO(e){if(typeof e!=`function`)throw Error();return this.each(MO(this._id,e))}function PO(e){typeof e!=`function`&&(e=Mw(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 lk(r,this._parents,this._name,this._id)}function FO(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 lk(o,this._parents,this._name,this._id)}function IO(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 LO(e,t,n){var r,i,a=IO(t)?tO:nO;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function RO(e,t){var n=this._id;return arguments.length<2?rO(this.node(),n).on.on(e):this.each(LO(n,e,t))}function zO(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function BO(){return this.on(`end.remove`,zO(this._id))}function VO(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=Tw(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,eO(l[f],t,n,f,l,rO(u,n)));return new lk(a,this._parents,t,n)}function HO(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=kw(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=rO(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&eO(p,t,n,h,f,m);a.push(f),o.push(u)}return new lk(a,o,t,n)}var UO=hE.prototype.constructor;function WO(){return new UO(this._groups,this._parents)}function GO(e,t){var n,r,i;return function(){var a=ST(this,e),o=(this.style.removeProperty(e),ST(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function KO(e){return function(){this.style.removeProperty(e)}}function qO(e,t,n){var r,i=n+``,a;return function(){var o=ST(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function JO(e,t,n){var r,i,a;return function(){var o=ST(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),ST(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function YO(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=nO(this,e),l=c.on,u=c.value[a]==null?s||=KO(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function XO(e,t,n){var r=(e+=``)==`transform`?kD:dO;return t==null?this.styleTween(e,GO(e,r)).on(`end.style.`+e,KO(e)):typeof t==`function`?this.styleTween(e,JO(e,r,uO(this,`style.`+e,t))).each(YO(this._id,e)):this.styleTween(e,qO(e,r,t),n).on(`end.style.`+e,null)}function ZO(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function QO(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&ZO(e,a,n)),r}return a._value=t,a}function $O(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,QO(e,t,n??``))}function ek(e){return function(){this.textContent=e}}function tk(e){return function(){var t=e(this);this.textContent=t??``}}function nk(e){return this.tween(`text`,typeof e==`function`?tk(uO(this,`text`,e)):ek(e==null?``:e+``))}function rk(e){return function(t){this.textContent=e.call(this,t)}}function ik(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&rk(r)),t}return r._value=e,r}function ak(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,ik(e))}function ok(){for(var e=this._name,t=this._id,n=uk(),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=rO(c,t);eO(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new lk(r,this._parents,e,n)}function sk(){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=nO(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 ck=0;function lk(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function uk(){return++ck}var dk=hE.prototype;lk.prototype={constructor:lk,select:VO,selectAll:HO,selectChild:dk.selectChild,selectChildren:dk.selectChildren,filter:PO,merge:FO,selection:WO,transition:ok,call:dk.call,nodes:dk.nodes,node:dk.node,size:dk.size,empty:dk.empty,each:dk.each,on:RO,attr:vO,attrTween:CO,style:XO,styleTween:$O,text:nk,textTween:ak,remove:BO,tween:lO,delay:EO,duration:kO,ease:jO,easeVarying:NO,end:sk,[Symbol.iterator]:dk[Symbol.iterator]};function fk(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var pk={time:null,delay:0,duration:250,ease:fk};function mk(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function hk(e){var t,n;e instanceof lk?(t=e._id,e=e._name):(t=uk(),(n=pk).time=HD(),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])&&eO(c,e,t,l,o,n||mk(c,t));return new lk(r,this._parents,e,t)}hE.prototype.interrupt=oO,hE.prototype.transition=hk;var{abs:gk,max:_k,min:vk}=Math;[`w`,`e`].map(yk),[`n`,`s`].map(yk),[`n`,`w`,`e`,`s`,`nw`,`ne`,`sw`,`se`].map(yk);function yk(e){return{type:e}}var bk=Math.PI,xk=2*bk,Sk=1e-6,Ck=xk-Sk;function wk(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function Tk(e){let t=Math.floor(e);if(!(t>=0))throw Error(`invalid digits: ${e}`);if(t>15)return wk;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 Ek=class{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._=``,this._append=e==null?wk:Tk(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>Sk){if(!(Math.abs(u*s-c*l)>Sk)||!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((bk-Math.acos((m+d-h)/(2*g*_)))/2),y=v/_,b=v/g;Math.abs(y-1)>Sk&&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)>Sk||Math.abs(this._y1-l)>Sk)&&this._append`L${c},${l}`,n&&(d<0&&(d=d%xk+xk),d>Ck?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>Sk&&this._append`A${n},${n},0,${+(d>=bk)},${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._}};Ek.prototype;function Dk(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString(`en`).replace(/,/g,``):e.toString(10)}function Ok(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 kk(e){return e=Ok(Math.abs(e)),e?e[1]:NaN}function Ak(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 jk(e){return function(t){return t.replace(/[0-9]/g,function(t){return e[+t]})}}var Mk=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Nk(e){if(!(t=Mk.exec(e)))throw Error(`invalid format: `+e);var t;return new Pk({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]})}Nk.prototype=Pk.prototype;function Pk(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+``}Pk.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 Fk(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 Ik;function Lk(e,t){var n=Ok(e,t);if(!n)return Ik=void 0,e.toPrecision(t);var r=n[0],i=n[1],a=i-(Ik=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`)+Ok(e,Math.max(0,t+a-1))[0]}function Rk(e,t){var n=Ok(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 zk={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+``,d:Dk,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)=>Rk(e*100,t),r:Rk,s:Lk,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Bk(e){return e}var Vk=Array.prototype.map,Hk=[`y`,`z`,`a`,`f`,`p`,`n`,`µ`,`m`,``,`k`,`M`,`G`,`T`,`P`,`E`,`Z`,`Y`];function Uk(e){var t=e.grouping===void 0||e.thousands===void 0?Bk:Ak(Vk.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?Bk:jk(Vk.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=Nk(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`):zk[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=zk[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=Fk(e)),w&&+e==0&&f!==`+`&&(w=!1),n=(w?f===`(`?f:s:f===`-`||f===`(`?``:f)+n,r=(y===`s`&&!isNaN(e)&&Ik!==void 0?Hk[8+Ik/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(kk(t)/3)))*3,r=10**-n,i=l((e=Nk(e),e.type=`f`,e),{suffix:Hk[8+n/3]});return function(e){return i(r*e)}}return{format:l,formatPrefix:u}}var Wk,Gk,Kk;qk({thousands:`,`,grouping:[3],currency:[`$`,``]});function qk(e){return Wk=Uk(e),Gk=Wk.format,Kk=Wk.formatPrefix,Wk}function Jk(e){return Math.max(0,-kk(Math.abs(e)))}function Yk(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(kk(t)/3)))*3-kk(Math.abs(e)))}function Xk(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,kk(t)-kk(e))+1}function Zk(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 Qk(){return this.eachAfter(Zk)}function $k(e,t){let n=-1;for(let r of this)e.call(t,r,++n,this);return this}function eA(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 tA(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 nA(e,t){let n=-1;for(let r of this)if(e.call(t,r,++n,this))return r}function rA(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 iA(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}function aA(e){for(var t=this,n=oA(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 oA(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 sA(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}function cA(){return Array.from(this)}function lA(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}function uA(){var e=this,t=[];return e.each(function(n){n!==e&&t.push({source:n.parent,target:n})}),t}function*dA(){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 fA(e,t){e instanceof Map?(e=[void 0,e],t===void 0&&(t=hA)):t===void 0&&(t=mA);for(var n=new vA(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 vA(o[s])),a.parent=r,a.depth=r.depth+1;return n.eachBefore(_A)}function pA(){return fA(this).eachBefore(gA)}function mA(e){return e.children}function hA(e){return Array.isArray(e)?e[1]:null}function gA(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function _A(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function vA(e){this.data=e,this.depth=this.height=0,this.parent=null}vA.prototype=fA.prototype={constructor:vA,count:Qk,each:$k,eachAfter:tA,eachBefore:eA,find:nA,sum:rA,sort:iA,path:aA,ancestors:sA,descendants:cA,leaves:lA,links:uA,copy:pA,[Symbol.iterator]:dA};function yA(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 bA(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 xA(){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(yA),i}function a(e,t){return function(r){r.children&&bA(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 SA(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}var CA=Symbol(`implicit`);function wA(){var e=new zC,t=[],n=[],r=CA;function i(i){let a=e.get(i);if(a===void 0){if(r!==CA)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 zC;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 wA(t,n).unknown(r)},SA.apply(i,arguments),i}function TA(){var e=wA().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=QC(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 TA(t(),[r,i]).round(s).paddingInner(c).paddingOuter(l).align(u)},SA.apply(d(),arguments)}function EA(e){var t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,delete e.paddingOuter,e.copy=function(){return EA(t())},e}function DA(){return EA(TA.apply(null,arguments).paddingInner(1))}function OA(e){return function(){return e}}function kA(e){return+e}var AA=[0,1];function jA(e){return e}function MA(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:OA(isNaN(t)?NaN:.5)}function NA(e,t){var n;return e>t&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}function PA(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=MA(i,r),a=n(o,a)):(r=MA(r,i),a=n(a,o)),function(e){return a(r(e))}}function FA(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]=MA(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(t){var n=LC(e,t,1,r)-1;return a[n](i[n](t))}}function IA(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function LA(){var e=AA,t=AA,n=bD,r,i,a,o=jA,s,c,l;function u(){var n=Math.min(e.length,t.length);return o!==jA&&(o=NA(e[0],e[n-1])),s=n>2?FA:PA,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),pD))(n)))},d.domain=function(t){return arguments.length?(e=Array.from(t,kA),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=xD,u()},d.clamp=function(e){return arguments.length?(o=e?!0:jA,u()):o!==jA},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 RA(){return LA()(jA,jA)}function zA(e,t,n,r){var i=XC(e,t,n),a;switch(r=Nk(r??`,f`),r.type){case`s`:var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=Yk(i,o))&&(r.precision=a),Kk(r,o);case``:case`e`:case`g`:case`p`:case`r`:r.precision==null&&!isNaN(a=Xk(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type===`e`));break;case`f`:case`%`:r.precision==null&&!isNaN(a=Jk(i))&&(r.precision=a-(r.type===`%`)*2)}return Gk(r)}function BA(e){var t=e.domain;return e.ticks=function(e){var n=t();return JC(n[0],n[n.length-1],e??10)},e.tickFormat=function(e,n){var r=t();return zA(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=YC(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 VA(){var e=RA();return e.copy=function(){return IA(e,VA())},SA.apply(e,arguments),BA(e)}function HA(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 UA=new Date,WA=new Date;function GA(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=>GA(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)=>(UA.setTime(+t),WA.setTime(+r),e(UA),e(WA),Math.floor(n(UA,WA))),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 KA=GA(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);KA.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?GA(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):KA),KA.range;var qA=1e3,JA=qA*60,YA=JA*60,XA=YA*24,ZA=XA*7,QA=XA*30,$A=XA*365,ej=GA(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*qA)},(e,t)=>(t-e)/qA,e=>e.getUTCSeconds());ej.range;var tj=GA(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*qA)},(e,t)=>{e.setTime(+e+t*JA)},(e,t)=>(t-e)/JA,e=>e.getMinutes());tj.range;var nj=GA(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*JA)},(e,t)=>(t-e)/JA,e=>e.getUTCMinutes());nj.range;var rj=GA(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*qA-e.getMinutes()*JA)},(e,t)=>{e.setTime(+e+t*YA)},(e,t)=>(t-e)/YA,e=>e.getHours());rj.range;var ij=GA(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*YA)},(e,t)=>(t-e)/YA,e=>e.getUTCHours());ij.range;var aj=GA(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*JA)/XA,e=>e.getDate()-1);aj.range;var oj=GA(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/XA,e=>e.getUTCDate()-1);oj.range;var sj=GA(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/XA,e=>Math.floor(e/XA));sj.range;function cj(e){return GA(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())*JA)/ZA)}var lj=cj(0),uj=cj(1),dj=cj(2),fj=cj(3),pj=cj(4),mj=cj(5),hj=cj(6);lj.range,uj.range,dj.range,fj.range,pj.range,mj.range,hj.range;function gj(e){return GA(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)/ZA)}var _j=gj(0),vj=gj(1),yj=gj(2),bj=gj(3),xj=gj(4),Sj=gj(5),Cj=gj(6);_j.range,vj.range,yj.range,bj.range,xj.range,Sj.range,Cj.range;var wj=GA(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());wj.range;var Tj=GA(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());Tj.range;var Ej=GA(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());Ej.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:GA(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)}),Ej.range;var Dj=GA(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());Dj.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:GA(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)}),Dj.range;function Oj(e,t,n,r,i,a){let o=[[ej,1,qA],[ej,5,5*qA],[ej,15,15*qA],[ej,30,30*qA],[a,1,JA],[a,5,5*JA],[a,15,15*JA],[a,30,30*JA],[i,1,YA],[i,3,3*YA],[i,6,6*YA],[i,12,12*YA],[r,1,XA],[r,2,2*XA],[n,1,ZA],[t,1,QA],[t,3,3*QA],[e,1,$A]];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=NC(([,,e])=>e).right(o,i);if(a===o.length)return e.every(XC(t/$A,n/$A,r));if(a===0)return KA.every(Math.max(XC(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[kj,Aj]=Oj(Dj,Tj,_j,sj,ij,nj),[jj,Mj]=Oj(Ej,wj,lj,aj,rj,tj);function Nj(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 Pj(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 Fj(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function Ij(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=Hj(i),u=Uj(i),d=Hj(a),f=Uj(a),p=Hj(o),m=Uj(o),h=Hj(s),g=Uj(s),_=Hj(c),v=Uj(c),y={a:N,A:P,b:F,B:ee,c:null,d:uM,e:uM,f:hM,g:EM,G:OM,H:dM,I:fM,j:pM,L:mM,m:gM,M:_M,p:te,q:I,Q:ZM,s:QM,S:vM,u:yM,U:bM,V:SM,w:CM,W:wM,x:null,X:null,y:TM,Y:DM,Z:kM,"%":XM},b={a:L,A:ne,b:re,B:R,c:null,d:AM,e:AM,f:FM,g:KM,G:JM,H:jM,I:MM,j:NM,L:PM,m:IM,M:LM,p:ie,q:z,Q:ZM,s:QM,S:RM,u:zM,U:BM,V:HM,w:UM,W:WM,x:null,X:null,y:GM,Y:qM,Z:YM,"%":XM},x={a:E,A:D,b:O,B:k,c:A,d:eM,e:eM,f:oM,g:Xj,G:Yj,H:nM,I:nM,j:tM,L:aM,m:$j,M:rM,p:T,q:Qj,Q:cM,s:lM,S:iM,u:Gj,U:Kj,V:qj,w:Wj,W:Jj,x:j,X:M,y:Xj,Y:Yj,Z:Zj,"%":sM};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=Lj[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=Fj(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=Pj(Fj(r.y,0,1)),o=a.getUTCDay(),a=o>4||o===0?vj.ceil(a):vj(a),a=oj.offset(a,(r.V-1)*7),r.y=a.getUTCFullYear(),r.m=a.getUTCMonth(),r.d=a.getUTCDate()+(r.w+6)%7):(a=Nj(Fj(r.y,0,1)),o=a.getDay(),a=o>4||o===0?uj.ceil(a):uj(a),a=aj.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?Pj(Fj(r.y,0,1)).getUTCDay():Nj(Fj(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,Pj(r)):Nj(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 Lj?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 ee(e){return s[e.getMonth()]}function te(e){return i[+(e.getHours()>=12)]}function I(e){return 1+~~(e.getMonth()/3)}function L(e){return o[e.getUTCDay()]}function ne(e){return a[e.getUTCDay()]}function re(e){return c[e.getUTCMonth()]}function R(e){return s[e.getUTCMonth()]}function ie(e){return i[+(e.getUTCHours()>=12)]}function z(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 Lj={"-":``,_:` `,0:`0`},Rj=/^\s*\d+/,zj=/^%/,Bj=/[\\^$*+?|[\]().{}]/g;function X(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 Vj(e){return e.replace(Bj,`\\$&`)}function Hj(e){return RegExp(`^(?:`+e.map(Vj).join(`|`)+`)`,`i`)}function Uj(e){return new Map(e.map((e,t)=>[e.toLowerCase(),t]))}function Wj(e,t,n){var r=Rj.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function Gj(e,t,n){var r=Rj.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function Kj(e,t,n){var r=Rj.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function qj(e,t,n){var r=Rj.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function Jj(e,t,n){var r=Rj.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function Yj(e,t,n){var r=Rj.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function Xj(e,t,n){var r=Rj.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Zj(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 Qj(e,t,n){var r=Rj.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function $j(e,t,n){var r=Rj.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function eM(e,t,n){var r=Rj.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function tM(e,t,n){var r=Rj.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function nM(e,t,n){var r=Rj.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function rM(e,t,n){var r=Rj.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function iM(e,t,n){var r=Rj.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function aM(e,t,n){var r=Rj.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function oM(e,t,n){var r=Rj.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function sM(e,t,n){var r=zj.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function cM(e,t,n){var r=Rj.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function lM(e,t,n){var r=Rj.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function uM(e,t){return X(e.getDate(),t,2)}function dM(e,t){return X(e.getHours(),t,2)}function fM(e,t){return X(e.getHours()%12||12,t,2)}function pM(e,t){return X(1+aj.count(Ej(e),e),t,3)}function mM(e,t){return X(e.getMilliseconds(),t,3)}function hM(e,t){return mM(e,t)+`000`}function gM(e,t){return X(e.getMonth()+1,t,2)}function _M(e,t){return X(e.getMinutes(),t,2)}function vM(e,t){return X(e.getSeconds(),t,2)}function yM(e){var t=e.getDay();return t===0?7:t}function bM(e,t){return X(lj.count(Ej(e)-1,e),t,2)}function xM(e){var t=e.getDay();return t>=4||t===0?pj(e):pj.ceil(e)}function SM(e,t){return e=xM(e),X(pj.count(Ej(e),e)+(Ej(e).getDay()===4),t,2)}function CM(e){return e.getDay()}function wM(e,t){return X(uj.count(Ej(e)-1,e),t,2)}function TM(e,t){return X(e.getFullYear()%100,t,2)}function EM(e,t){return e=xM(e),X(e.getFullYear()%100,t,2)}function DM(e,t){return X(e.getFullYear()%1e4,t,4)}function OM(e,t){var n=e.getDay();return e=n>=4||n===0?pj(e):pj.ceil(e),X(e.getFullYear()%1e4,t,4)}function kM(e){var t=e.getTimezoneOffset();return(t>0?`-`:(t*=-1,`+`))+X(t/60|0,`0`,2)+X(t%60,`0`,2)}function AM(e,t){return X(e.getUTCDate(),t,2)}function jM(e,t){return X(e.getUTCHours(),t,2)}function MM(e,t){return X(e.getUTCHours()%12||12,t,2)}function NM(e,t){return X(1+oj.count(Dj(e),e),t,3)}function PM(e,t){return X(e.getUTCMilliseconds(),t,3)}function FM(e,t){return PM(e,t)+`000`}function IM(e,t){return X(e.getUTCMonth()+1,t,2)}function LM(e,t){return X(e.getUTCMinutes(),t,2)}function RM(e,t){return X(e.getUTCSeconds(),t,2)}function zM(e){var t=e.getUTCDay();return t===0?7:t}function BM(e,t){return X(_j.count(Dj(e)-1,e),t,2)}function VM(e){var t=e.getUTCDay();return t>=4||t===0?xj(e):xj.ceil(e)}function HM(e,t){return e=VM(e),X(xj.count(Dj(e),e)+(Dj(e).getUTCDay()===4),t,2)}function UM(e){return e.getUTCDay()}function WM(e,t){return X(vj.count(Dj(e)-1,e),t,2)}function GM(e,t){return X(e.getUTCFullYear()%100,t,2)}function KM(e,t){return e=VM(e),X(e.getUTCFullYear()%100,t,2)}function qM(e,t){return X(e.getUTCFullYear()%1e4,t,4)}function JM(e,t){var n=e.getUTCDay();return e=n>=4||n===0?xj(e):xj.ceil(e),X(e.getUTCFullYear()%1e4,t,4)}function YM(){return`+0000`}function XM(){return`%`}function ZM(e){return+e}function QM(e){return Math.floor(e/1e3)}var $M,eN;tN({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 tN(e){return $M=Ij(e),eN=$M.format,$M.parse,$M.utcFormat,$M.utcParse,$M}function nN(e){return new Date(e)}function rN(e){return e instanceof Date?+e:+new Date(+e)}function iN(e,t,n,r,i,a,o,s,c,l){var u=RA(),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,rN)):f().map(nN)},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(HA(n,e)):u},u.copy=function(){return IA(u,iN(e,t,n,r,i,a,o,s,c,l))},u}function aN(){return SA.apply(iN(jj,Mj,Ej,wj,lj,aj,rj,tj,ej,eN).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function Z(e){return function(){return e}}var oN=Math.abs,sN=Math.atan2,cN=Math.cos,lN=Math.max,uN=Math.min,dN=Math.sin,fN=Math.sqrt,pN=Math.PI,mN=pN/2,hN=2*pN;function gN(e){return e>1?0:e<-1?pN:Math.acos(e)}function _N(e){return e>=1?mN:e<=-1?-mN:Math.asin(e)}function vN(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 Ek(t)}function yN(e){return e.innerRadius}function bN(e){return e.outerRadius}function xN(e){return e.startAngle}function SN(e){return e.endAngle}function CN(e){return e&&e.padAngle}function wN(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 TN(e,t,n,r,i,a,o){var s=e-n,c=t-r,l=(o?a:-a)/fN(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)*fN(lN(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 EN(){var e=yN,t=bN,n=Z(0),r=null,i=xN,a=SN,o=CN,s=null,c=vN(l);function l(){var l,u,d=+e.apply(this,arguments),f=+t.apply(this,arguments),p=i.apply(this,arguments)-mN,m=a.apply(this,arguments)-mN,h=oN(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>hN-1e-12)s.moveTo(f*cN(p),f*dN(p)),s.arc(0,0,f,p,m,!g),d>1e-12&&(s.moveTo(d*cN(m),d*dN(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):fN(d*d+f*f)),T=uN(oN(f-d)/2,+n.apply(this,arguments)),E=T,D=T,O,k;if(w>1e-12){var A=_N(w/d*dN(C)),j=_N(w/f*dN(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*cN(_),N=f*dN(_),P=d*cN(b),F=d*dN(b);if(T>1e-12){var ee=f*cN(v),te=f*dN(v),I=d*cN(y),L=d*dN(y),ne;if(h<pN){if(ne=wN(M,N,I,L,ee,te,P,F)){var re=M-ne[0],R=N-ne[1],ie=ee-ne[0],z=te-ne[1],ae=1/dN(gN((re*ie+R*z)/(fN(re*re+R*R)*fN(ie*ie+z*z)))/2),oe=fN(ne[0]*ne[0]+ne[1]*ne[1]);E=uN(T,(d-oe)/(ae-1)),D=uN(T,(f-oe)/(ae+1))}else E=D=0}}S>1e-12?D>1e-12?(O=TN(I,L,M,N,f,D,g),k=TN(ee,te,P,F,f,D,g),s.moveTo(O.cx+O.x01,O.cy+O.y01),D<T?s.arc(O.cx,O.cy,D,sN(O.y01,O.x01),sN(k.y01,k.x01),!g):(s.arc(O.cx,O.cy,D,sN(O.y01,O.x01),sN(O.y11,O.x11),!g),s.arc(0,0,f,sN(O.cy+O.y11,O.cx+O.x11),sN(k.cy+k.y11,k.cx+k.x11),!g),s.arc(k.cx,k.cy,D,sN(k.y11,k.x11),sN(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=TN(P,F,ee,te,d,-E,g),k=TN(M,N,I,L,d,-E,g),s.lineTo(O.cx+O.x01,O.cy+O.y01),E<T?s.arc(O.cx,O.cy,E,sN(O.y01,O.x01),sN(k.y01,k.x01),!g):(s.arc(O.cx,O.cy,E,sN(O.y01,O.x01),sN(O.y11,O.x11),!g),s.arc(0,0,d,sN(O.cy+O.y11,O.cx+O.x11),sN(k.cy+k.y11,k.cx+k.x11),g),s.arc(k.cx,k.cy,E,sN(k.y11,k.x11),sN(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-pN/2;return[cN(r)*n,dN(r)*n]},l.innerRadius=function(t){return arguments.length?(e=typeof t==`function`?t:Z(+t),l):e},l.outerRadius=function(e){return arguments.length?(t=typeof e==`function`?e:Z(+e),l):t},l.cornerRadius=function(e){return arguments.length?(n=typeof e==`function`?e:Z(+e),l):n},l.padRadius=function(e){return arguments.length?(r=e==null?null:typeof e==`function`?e:Z(+e),l):r},l.startAngle=function(e){return arguments.length?(i=typeof e==`function`?e:Z(+e),l):i},l.endAngle=function(e){return arguments.length?(a=typeof e==`function`?e:Z(+e),l):a},l.padAngle=function(e){return arguments.length?(o=typeof e==`function`?e:Z(+e),l):o},l.context=function(e){return arguments.length?(s=e??null,l):s},l}Array.prototype.slice;function DN(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function ON(e){this._context=e}ON.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 kN(e){return new ON(e)}function AN(e){return e[0]}function jN(e){return e[1]}function MN(e,t){var n=Z(!0),r=null,i=kN,a=null,o=vN(s);e=typeof e==`function`?e:e===void 0?AN:Z(e),t=typeof t==`function`?t:t===void 0?jN:Z(t);function s(s){var c,l=(s=DN(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:Z(+t),s):e},s.y=function(e){return arguments.length?(t=typeof e==`function`?e:Z(+e),s):t},s.defined=function(e){return arguments.length?(n=typeof e==`function`?e:Z(!!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 NN(e,t,n){var r=null,i=Z(!0),a=null,o=kN,s=null,c=vN(l);e=typeof e==`function`?e:e===void 0?AN:Z(+e),t=typeof t==`function`?t:Z(t===void 0?0:+t),n=typeof n==`function`?n:n===void 0?jN:Z(+n);function l(l){var u,d,f,p=(l=DN(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 MN().defined(i).curve(o).context(a)}return l.x=function(t){return arguments.length?(e=typeof t==`function`?t:Z(+t),r=null,l):e},l.x0=function(t){return arguments.length?(e=typeof t==`function`?t:Z(+t),l):e},l.x1=function(e){return arguments.length?(r=e==null?null:typeof e==`function`?e:Z(+e),l):r},l.y=function(e){return arguments.length?(t=typeof e==`function`?e:Z(+e),n=null,l):t},l.y0=function(e){return arguments.length?(t=typeof e==`function`?e:Z(+e),l):t},l.y1=function(e){return arguments.length?(n=e==null?null:typeof e==`function`?e:Z(+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:Z(!!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 PN(e){return e<0?-1:1}function FN(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(PN(a)+PN(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(s))||0}function IN(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function LN(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 RN(e){this._context=e}RN.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:LN(this,this._t0,IN(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,LN(this,IN(this,n=FN(this,e,t)),n);break;default:LN(this,this._t0,n=FN(this,e,t))}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}},Object.create(RN.prototype).point=function(e,t){RN.prototype.point.call(this,t,e)};function zN(e){return new RN(e)}function BN(e,t){this._context=e,this._t=t}BN.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 VN(e){return new BN(e,1)}function HN(e,t,n){this.k=e,this.x=t,this.y=n}HN.prototype={constructor:HN,scale:function(e){return e===1?this:new HN(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new HN(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 UN=new HN(1,0,0);WN.prototype=HN.prototype;function WN(e){for(;!e.__zoom;)if(!(e=e.parentNode))return UN;return e.__zoom}function GN(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 KN={DECISIVE:20,ROUTINE:50},qN=new Set([`WALKOVER`,`DOUBLE_WALKOVER`,`DEFAULTED`,`DOUBLE_DEFAULT`]),JN={COMPETITIVE:`#16a34a`,ROUTINE:`#3b82f6`,DECISIVE:`#8e44ad`,WALKOVER:`#6b7280`},YN=`#cfd8dc`,XN=`COMPETITIVE`,ZN=`ROUTINE`,QN=`DECISIVE`,$N=`WALKOVER`;function eP(e,t=KN){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)?$N:a<=t.DECISIVE?QN:a<=t.ROUTINE?ZN:XN}function tP(e,n=KN){if(e)return eP(t.scoreGovernor.parseScoreString({scoreString:e}),n)}function nP({winningSide:e,matchUpStatus:t,sets:n,scoreString:r,bands:i}){if(t&&qN.has(t))return $N;if(e)return n?.length?eP(n,i):tP(r,i)}function rP(e,t){return e?t?.[e]??JN[e]:YN}var{WILDCARD:iP,QUALIFIER:aP,LUCKY_LOSER:oP}=t.entryStatusConstants,sP=`text-anchor`,cP=`dominant-baseline`,lP=`fill-opacity`,uP=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 dP(e){let t=Math.floor(e.length/2),n=e.slice(0,t),r=e.slice(t).reverse();return[...n,...r]}function fP(e){if(e)switch(e){case iP:return`WC`;case aP:return`Q`;case oP:return`LL`;default:return e}}function pP(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:fP(e.entryStatus),nationalityCode:e.nationalityCode,matchUp:r,depth:t,value:1})}return n}function mP(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 hP(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}=mP(e,r);return{name:s||``,participantName:s,drawPosition:l?.drawPosition??c?.drawPosition,seedNumber:c?.seedNumber??l?.seedNumber,entryStatus:fP(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 gP(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=dP(pP(r,n.length)),a=new Map;for(let e of i)e.participantName&&e.participantName!==`BYE`&&a.set(e.participantName,e);let o=hP(dP(r),i,n.length-1,a);for(let e=1;e<n.length;e++)o=hP(dP(t[n[e]]),o,n.length-1-e,a);return o.length===1?o[0]:{name:`Tournament`,depth:0,children:o}}function _P(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=VA().domain([1,32]).range([`0`,`1`]);o=VA().domain(QC(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=VA().domain(QC(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=VA().domain(QC(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),_P(n,t)})}function vP(e,t){e&&(e.competitivenessColor=e.children?.length&&e.competitiveness?rP(e.competitiveness,t):YN,e.children?.forEach(e=>vP(e,t)))}function yP(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 bP(e,t){let n=e.find(e=>e.data.participantName&&e.data.participantName!==t);return n?.data.participantName?n.data:void 0}function xP(e,t){let n=[e.participantName],r;if(t.children&&t.children.length>0)e.scoreString&&n.push(e.scoreString),r=bP(t.children,e.participantName),r&&n.push(r.participantName);else{let r=yP(e,t.depth);r&&n.push(r)}return{messageLines:n,opponentData:r}}function SP(e,t){return-(e*t/2)+t/2}function CP(e,t,n){let r=_E(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 wP(e,t,n,r,i){let a=e.append(`text`).attr(`x`,t/2).attr(`y`,n/2).attr(sP,`middle`).attr(cP,`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(sP,`middle`).attr(cP,`middle`).attr(`font-size`,`${i}px`).style(`fill`,`var(--chc-text-secondary, #666)`).attr(`pointer-events`,`none`)}}function TP(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(sP,`middle`).attr(cP,`middle`).attr(`transform`,`translate(0, ${r*a})`).text(kP(n)))}function EP(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=gP(n),m=fA(p,e=>e.children).sum(e=>e.value||0),h=Math.min(a,o)/2,g=h/2,_=e=>e*h/200;xA().size([2*Math.PI,h-g])(m),_P(p,VA().domain([0,n.drawSize||128]).range([0,1])),vP(p,i.competitivenessColors);let v=i.colorMode??`default`,y=e=>v===`competitiveness`?e.competitivenessColor||`#cfd8dc`:e.color||`#ccc`,b=m.descendants(),x=EN().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}=CP(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}=wP(S,a,o,c,l);function M(){let e=GN(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=VA().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(sP,`middle`).attr(cP,`middle`).attr(`transform`,(t,r)=>{let i=e(r);return`translate(${Math.cos(i)*n}, ${Math.sin(i)*n})`}).text(e=>kP(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(lP,e=>e.data.nationalityCode===t?.9:.3)}).on(`mouseout`,function(){F||C.selectAll(`path`).attr(lP,.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,ee;function te(e,t){let n=t.data;if(n.participantName){let{messageLines:e,opponentData:r}=xP(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=SP(e.length,u);A.attr(`y`,o/2+i),A.style(`display`,`block`),j.style(`display`,`none`)}F?n.participantName?.toLowerCase()!==ee?.toLowerCase()&&_E(e.currentTarget).attr(lP,.9):C.selectAll(`path`).attr(lP,e=>e.data.participantName===t.data.participantName?.9:.3);let r=_(30),i=g-r-10,s={flagsGroup:w,winningFlagsGroup:T,losingFlagsGroup:E};TP(T,s,n.nationalityCode,-1,!0,i,r),n.opponent&&TP(E,s,n.opponent.nationalityCode,1,!1,i,r)}function I(e,t){if(F){let n=t.data.participantName?.toLowerCase()===ee?.toLowerCase();_E(e.currentTarget).attr(lP,n?1:.2)}else C.selectAll(`path`).attr(lP,.8);N(),M()}let L=i.eventHandlers?.clickSegment;function ne(e,t){if(!L)return;let n=t.data;L({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 re=C.selectAll(`path`).data(b).join(`path`).attr(`d`,e=>x(e)).attr(`fill`,e=>y(e.data)).attr(lP,.8).attr(`stroke`,`#fff`).attr(`stroke-width`,1).on(`mouseover`,te).on(`mouseout`,I);L&&re.style(`cursor`,`pointer`).on(`click`,ne),re.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
215
  `)}return`${t.name}\nDepth: ${e.depth}`});function R(e){let t=0;return F=!!e,ee=e,C.selectAll(`path`).attr(lP,n=>e?n.data.participantName?.toLowerCase()===e.toLowerCase()?(t+=1,1):.2:.8),t}function ie(e){S.style(`display`,e?`none`:`block`)}function z(e){v=e,C.selectAll(`path`).attr(`fill`,e=>y(e.data))}return{highlightPlayer:R,hide:ie,setColorMode:z}}function DP(e={}){return{render:(t,n,r)=>EP(t,n,r,e)}}function OP(e){return e?.length===2?e&&String.fromCodePoint!==void 0?e.toUpperCase().replaceAll(/./g,e=>String.fromCodePoint((e.codePointAt(0)??0)+127397)):e:``}function kP(e){return OP(uP[e]||e)}var{LUCKY_LOSER:AP,WILDCARD:jP,QUALIFIER:MP}=t.entryStatusConstants,{WIN_RATIO:NP,ROUND_OUTCOME:PP,MAIN:FP,CONTAINER:IP}=t.drawDefinitionConstants;function LP(e){return e?.finishingPosition===PP&&e?.structureType!==IP}function RP(e){return e?.finishingPosition===NP||e?.structureType===IP}function zP(e){if(!e?.length)return;let t=e.filter(LP);if(t.length)return t.find(e=>e.stage===FP)??t[0]}function BP(e){if(RP(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:nP({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 VP={LL:AP,WC:jP,Q:MP},HP=[`R128`,`R64`,`R32`,`R16`,`QF`,`SF`,`F`];function UP(e){let t=WP(e);if(t.length===0)return{drawSize:0,roundMatchUps:{}};let n=t[0].data,r=n.length,i=GP(n),a=KP(t,e),o={};o[1]=JP(n,a,t);for(let e=1;e<t.length;e++)o[e+1]=YP(e,t,a,i);return{drawSize:r,roundMatchUps:o}}function WP(e){let t=[],n=!1;for(let r of HP){let i=e[r];i&&i.length>0&&(n=!0),n&&i&&i.length>0&&t.push({key:r,data:i})}return t}function GP(e){let t=new Map;return e.forEach((e,n)=>{let r=XP(e.player);r&&r!==`BYE`&&t.set(r,{drawPosition:e.Draw??n+1,country:e.country,seed:e.seed,entry:e.entry})}),t}function KP(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=XP(e.player);t&&a.add(t)}n.set(e[r].key,a)}return n}function qP(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 JP(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=XP(a?.player),c=XP(o?.player),l=s===`BYE`||c===`BYE`,u=qP(s,c,i),d;if(!l&&n.length>1){let e=n[1].data,t=u===1?s:c;d=e.find(e=>XP(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:nP({winningSide:u,matchUpStatus:f,scoreString:d}),scoreString:d,sides:[QP(1,a,t+1),QP(2,o,t+2)]})}return r}function YP(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=XP(t?.player),l=XP(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:nP({winningSide:u,matchUpStatus:f,scoreString:d}),scoreString:d,sides:[$P(1,t,r),$P(2,n,r)]})}return s}function XP(e){if(!e)return``;let t=e.trim();return t.toUpperCase()===`BYE`?`BYE`:t}function ZP(e){if(e)return VP[e.toUpperCase()]||e}function QP(e,t,n){if(!t)return{sideNumber:e,drawPosition:n};let r=XP(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:ZP(t.entry)}}function $P(e,t,n){if(!t)return{sideNumber:e,drawPosition:0};let r=XP(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:ZP(t.entry||i?.entry)}}var eF=480,tF=200,nF=280,rF={top:12,right:12,bottom:28,left:32},iF={top:12,right:12,bottom:12,left:12},aF=.6,oF=.9,sF=`http://www.w3.org/2000/svg`,cF=`middle`,lF=`text-anchor`,uF=`dominant-baseline`,dF=[`var(--chc-rating-low, #5b8ff9)`,`var(--chc-rating-high, #00b894)`];function fF(e,t,n){let r=document.createElementNS(sF,`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 pF(e,t,n){return n<=1||t/(n-1)<.5?dF[0]:dF[1]}function mF(e,t,n,r){return r?r(e,t):pF(e,t,n)}function hF(e){return`${e.binStart.toFixed(1)}–${e.binEnd.toFixed(1)}`}function gF(e){let{stats:t,width:n,height:r,margin:i,showAxis:a,showCounts:o,showMean:s,binColor:c,ariaLabel:l}=e,u=fF(n,r,l),d=_E(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=TA().domain(t.histogram.map(hF)).range([0,f]).padding(.12),h=VA().domain([0,ZC(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(hF(e))??0).attr(`y`,e=>h(e.count)).attr(`width`,m.bandwidth()).attr(`height`,e=>p-h(e.count)).attr(`fill`,(e,t)=>mF(e,t,g,c)).append(`title`).text(e=>`${hF(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(hF(e))??0)+m.bandwidth()/2).attr(`y`,e=>h(e.count)-4).attr(lF,cF).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(hF),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(dw(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 _F(e,t,n,r){return[e+n*Math.sin(r),t-n*Math.cos(r)]}function vF(e,t,n,r,i,a){let[o,s]=_F(e,t,n,i),[c,l]=_F(e,t,n,a),[u,d]=_F(e,t,r,a),[f,p]=_F(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 yF(e){let{stats:t,size:n,margin:r,showCounts:i,binColor:a,ariaLabel:o}=e,s=fF(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*oF,f=c*aF,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(sF,`path`);if(h.setAttribute(`class`,`chc-rdc-slice`),h.setAttribute(`d`,vF(l,u,d,f,o,c)),h.setAttribute(`fill`,mF(n,e,m,a)),s.appendChild(h),i){let e=o+r/2,[t,i]=_F(l,u,(d+f)/2,e),a=document.createElementNS(sF,`text`);a.setAttribute(`class`,`chc-rdc-slice-label`),a.setAttribute(`x`,String(t)),a.setAttribute(`y`,String(i)),a.setAttribute(lF,cF),a.setAttribute(uF,cF),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(sF,`text`);return h.setAttribute(`class`,`chc-rdc-center-count`),h.setAttribute(`x`,String(l)),h.setAttribute(`y`,String(u)),h.setAttribute(lF,cF),h.setAttribute(uF,cF),h.setAttribute(`font-size`,`20`),h.setAttribute(`font-weight`,`600`),h.textContent=String(t.count),s.appendChild(h),s}function bF(e,t={}){let n=t.mode??`HISTOGRAM`,r=t.ariaLabel??`Participant rating distribution`;return n===`DONUT`?yF({stats:e,size:t.width??t.height??nF,margin:t.margin??iF,showCounts:t.showCounts??!0,binColor:t.binColor,ariaLabel:r}):gF({stats:e,width:t.width??eF,height:t.height??tF,margin:t.margin??rF,showAxis:t.showAxis??!0,showCounts:t.showCounts??!0,showMean:t.showMean??!0,binColor:t.binColor,ariaLabel:r})}var xF=`http://www.w3.org/2000/svg`,SF={top:36,right:16,bottom:28,left:56},CF=600,wF=260,TF=6,EF=8;function DF(e,t){let n=document.createElementNS(xF,`svg`);n.classList.add(`lc-svg`),e.appendChild(n);let r={container:e,svg:n,config:{...t},destroyed:!1};return OF(r),{element:n,update(e){r.destroyed||(r.config={...r.config,...e},OF(r))},destroy(){r.destroyed||(r.destroyed=!0,n.parentNode===e&&e.removeChild(n))}}}function OF(e){let{svg:t,container:n,config:r}=e,i={...SF,...r.margins||{}},a=n.clientWidth||CF,o=r.width??a,s=r.height??wF;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(xF,`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(xF,`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=RC(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=aN().domain([p,m]).range([0,c]),g=DA().domain([...r.rungs].reverse()).range([0,l]).padding(.5),_=document.createElementNS(xF,`g`);_.setAttribute(`transform`,`translate(${i.left},${i.top})`),t.appendChild(_);let v=document.createElementNS(xF,`g`);v.setAttribute(`class`,`lc-axis lc-axis-y`),_.appendChild(v),_E(v).call(fw(g).tickSize(-c).tickPadding(8));let y=document.createElementNS(xF,`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(_E(y).call(dw(h).ticks(r.xMaxTicks??EF).tickFormat(eN(x))),r.showConnector!==!1&&u.length>1){let e=MN().x(e=>h(e._dateValue)).y(e=>g(r.rungs[e._rung])??0).curve(VN),t=document.createElementNS(xF,`path`);t.setAttribute(`class`,`lc-connector`),t.setAttribute(`d`,e(u)||``),r.connectorColor&&(t.style.stroke=r.connectorColor),_.appendChild(t)}let S=document.createElementNS(xF,`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??TF,a=document.createElementNS(xF,`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(xF,`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(xF,`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 kF=`http://www.w3.org/2000/svg`,AF=`text-anchor`,jF=`dominant-baseline`,MF=`class`,NF=`middle`,PF=520,FF=240,IF={top:16,right:64,bottom:28,left:44},LF=5,RF=3;function zF(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 BF(e,t){let n=document.createElementNS(kF,e);return t&&n.setAttribute(MF,t),n}function VF(e){let t=Math.round(e);return t>0?`+${t}`:String(t)}function HF(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 UF(e,t){let n=t.width??PF,r=t.height??FF,i=t.margin??(t.spark?{top:6,right:6,bottom:6,left:6}:IF),a=Math.max(1,n-i.left-i.right),o=Math.max(1,r-i.top-i.bottom),s=VA().domain([0,Math.max(1,e.length-1)]).range([0,a]),c=HF(e,t.yDomain),l=VA().domain(c).range([o,0]);return{x:e=>s(e),y:e=>l(e),yDomain:c,innerWidth:a,innerHeight:o,margin:i}}function WF(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=NN().x(({index:e})=>n.x(e)).y0(({point:e})=>n.y(e.projected.low)).y1(({point:e})=>n.y(e.projected.high)),a=BF(`path`,`chc-pc__band`);a.setAttribute(`d`,i(r)??``),e.appendChild(a)}function GF({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=MN().x(({index:e})=>n.x(e)).y(({point:e})=>n.y(i(e))),s=BF(`path`,r);s.setAttribute(`d`,o(a)??``),e.appendChild(s)}function KF(e){return rP(e)}function qF({group:e,points:t,geometry:n,radius:r,onHover:i}){t.forEach((t,a)=>{if(t.actual===null)return;let o=BF(`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`,KF(t.competitiveness));let s=document.createElementNS(kF,`title`);s.textContent=`Round ${t.roundNumber}: ${VF(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 JF({group:e,geometry:t}){let[n,r]=t.yDomain,i=YF(Math.max(Math.abs(n),Math.abs(r)));for(let a of[-i,i]){if(a<n||a>r)continue;let i=BF(`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=BF(`text`,`chc-pc__tick-label`);o.setAttribute(`x`,`-6`),o.setAttribute(`y`,String(t.y(a))),o.setAttribute(AF,`end`),o.setAttribute(jF,NF),o.textContent=VF(a),e.appendChild(o)}}function YF(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 XF({group:e,points:t,geometry:n,options:r}){let i=BF(`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;JF({group:e,geometry:n});let a=BF(`text`,`chc-pc__axis-label`);a.setAttribute(`x`,String(n.innerWidth+6)),a.setAttribute(`y`,String(n.y(0))),a.setAttribute(jF,NF),a.textContent=`even`,e.appendChild(a);let o=r.roundLabels??zF;t.forEach((r,i)=>{let a=BF(`text`,`chc-pc__round-label`);if(a.setAttribute(`x`,String(n.x(i))),a.setAttribute(`y`,String(n.innerHeight+16)),a.setAttribute(AF,NF),a.textContent=o(r.roundNumber,i,t.length),e.appendChild(a),r.bye){let t=BF(`text`,`chc-pc__bye`);t.setAttribute(`x`,String(n.x(i))),t.setAttribute(`y`,String(n.y(0)-8)),t.setAttribute(AF,NF),t.textContent=`bye`,e.appendChild(t)}});let s=BF(`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 ZF({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=BF(`text`,`chc-pc__series-label`);a.setAttribute(`x`,String(n.x(i)+8)),a.setAttribute(`y`,String(n.y(r.projected.expected))),a.setAttribute(jF,NF),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=BF(`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(jF,NF),o.textContent=`actual`,e.appendChild(o)}}function QF(){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=rP(t),n.append(r,document.createTextNode(t.toLowerCase())),e.appendChild(n)}return e}function $F(){let e=document.createElement(`div`);return e.className=`chc-pc__tooltip`,e.dataset.visible=`false`,e}function eI(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 tI(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(eI(`faced`,VF(t.actual))),t.competitiveness&&e.appendChild(eI(`scoreline`,t.competitiveness.toLowerCase())),t.won!==void 0&&e.appendChild(eI(`result`,t.won?`won`:`lost`)),t.projected.expected!==null&&e.appendChild(eI(`projected`,VF(t.projected.expected))),t.projected.low!==null&&t.projected.high!==null&&e.appendChild(eI(`range`,`${VF(t.projected.low)} … ${VF(t.projected.high)}`)),e.appendChild(eI(`reach`,`${Math.round(t.reachProbability*100)}%`))}function nI(e){let t=document.createElement(`div`);return t.className=`chc-pc__empty`,t.textContent=e,t}function rI(e,t,n={}){let r=document.createElement(`div`);r.className=`chc-pc`,e.appendChild(r);let i=$F();function a(e,t){r.replaceChildren();let n=e?.points??[];if(!e||!n.length||!e.rating){r.appendChild(nI(t.emptyMessage??`No rating data for this draw, so no pressure to plot.`));return}let a=t.width??PF,o=t.height??FF,s=UF(n,t),c=BF(`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=BF(`g`);l.setAttribute(`transform`,`translate(${s.margin.left}, ${s.margin.top})`),c.appendChild(l),WF(l,n,s),XF({group:l,points:n,geometry:s,options:t}),GF({group:l,points:n,geometry:s,className:`chc-pc__projected-line`,accessor:e=>e.projected.expected}),GF({group:l,points:n,geometry:s,className:`chc-pc__actual-line`,accessor:e=>e.actual}),qF({group:l,points:n,geometry:s,radius:t.spark?RF:LF,onHover:t.spark?void 0:(e,t,n)=>{tI(i,e),i.dataset.visible=`true`,i.style.left=`${n.offsetX+12}px`,i.style.top=`${n.offsetY+12}px`}}),t.spark||ZF({group:l,points:n,geometry:s}),r.appendChild(c),t.spark||(r.appendChild(i),t.showLegend!==!1&&r.appendChild(QF()),r.addEventListener(`mouseleave`,()=>{i.dataset.visible=`false`}))}return a(t,n),{element:r,update:(e,t)=>a(e,{...n,...t}),destroy:()=>{_E(r).remove()}}}var iI={NO_MATCHUPS:`NO_MATCHUPS`,NOT_ELIMINATION:`NOT_ELIMINATION`,NO_RATINGS:`NO_RATINGS`};function aI(e){return{participantId:e?.participant?.participantId??e?.participantId,participant:e?.participant,drawPosition:e?.drawPosition,bye:!!e?.bye}}function oI(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:[aI(i),aI(a)],winningSide:e.winningSide,matchUpStatus:e.matchUpStatus,raw:e}}function sI(e){if(!Array.isArray(e)||!e.length)return{unsupported:iI.NO_MATCHUPS};let t=new Map;for(let n of e){let e=oI(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:iI.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:iI.NOT_ELIMINATION}}return n.length===1&&(t.get(r)?.size??0)>1?{unsupported:iI.NOT_ELIMINATION}:{graph:{roundNumbers:n,byRound:t,firstRound:r}}}function cI(e){return[e*2-1,e*2]}function lI(e){return e.matchUpStatus===`BYE`||e.sides.some(e=>e.bye)}var{ELO:uI}=t.ratingConstants,dI=`SINGLES`,fI=`DOUBLES`;function pI(){return t.fixtures?.ratingsParameters??{}}function mI({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 hI({scaleName:e,value:t}){if(typeof t!=`number`||Number.isNaN(t))return;if(e===uI)return t;let n=e?pI()[e]?.range:void 0;if(!n)return;let r=pI()[uI]?.range;if(r)return mI({value:n[0]>n[1]?n[0]-t:t,sourceRange:n,targetRange:r})}function gI(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 _I(e,t){let n=gI(t);if(n!==void 0)return n;if(!t||typeof t!=`object`)return;let r=pI()[e],i=[r?.accessor,...r?.accessors??[]].filter(Boolean);for(let e of i){let n=gI(t[e]);if(n!==void 0)return n}}function vI({participant:e,matchUpType:t,preferredScaleName:n}){let r=t===fI?fI:dI,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=_I(a.scaleName,a.scaleValue);if(o===void 0)return null;let s=hI({scaleName:a.scaleName,value:o});return s===void 0?null:{elo:s,scaleName:a.scaleName,sourceValue:o}}function yI(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 bI(e,t,n){let r=n?.divisor??400;return r?1/(1+10**((t-e)/r)):.5}function xI(e,t,n){return e===null||t===null?.5:bI(e,t,n)}function SI(e){return e.sides.map(e=>e.bye?void 0:e.participantId)}function CI(e,t){let n=new Map,[r,i]=SI(e);if(t.respectResults&&e.winningSide){let t=SI(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=xI(t.eloOf.get(r)??null,t.eloOf.get(i)??null,t.model);n.set(r,e),n.set(i,1-e)}return n}function wI(e,t,n){if(!t.size)return 1;let r=0;for(let[i,a]of t)r+=a*xI(n.eloOf.get(e)??null,n.eloOf.get(i)??null,n.model);return r}function TI(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*wI(i,t,n));for(let[i,a]of t)r.set(i,a*wI(i,e,n));return r}function EI(e,t,n){if(n.respectResults&&e.winningSide){let t=SI(e)[e.winningSide-1];if(t)return new Map([[t,1]])}return TI(t[0],t[1],n)}function DI(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,CI(s,t));continue}let i=n.get(r-1),[c,l]=cI(o),u=[i?.get(c)??new Map,i?.get(l)??new Map];a.set(o,EI(s,u,t))}n.set(r,a)}}return n}function OI({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 kI({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 AI(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 jI({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&&lI(a),m=OI({opponents:t===n.firstRound&&a?AI(a,e):kI({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:MI(l),slotDifficulty:NI(l),expectedMatchesPlayed:l.reduce((e,t)=>e+(t.bye?0:t.reachProbability),0)}}function MI(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 NI(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 PI(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 FI(e){let{graph:t,unsupported:n}=sI(e.matchUps);if(!t)return{projections:[],unsupported:n,unratedCount:0};let r=PI(t);if(!r.size)return{projections:[],unsupported:iI.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=vI({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:iI.NO_RATINGS,unratedCount:s};let c={eloOf:a,model:e.model,respectResults:!!e.respectResults},l=DI(t,c),u=e.rangeThreshold??.01;return{projections:[...r.entries()].map(([e,n])=>jI({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:yI([...i.values()]),unratedCount:s}}function II(e){return e.raw?.competitiveProfile?.competitiveness||nP({winningSide:e.winningSide,matchUpStatus:e.matchUpStatus,sets:e.raw?.score?.sets,scoreString:e.raw?.score?.scoreStringSide1})}function LI(e,t){return vI({participant:e?.participant,matchUpType:t.matchUpType,preferredScaleName:t.scaleName})}function RI({matchUp:e,participantId:t,ownElo:n,params:r}){let i=e.sides.findIndex(e=>e.participantId===t),a=e.sides[1-i],o=lI(e),s=!!e.winningSide,c=(o||!s?null:LI(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:II(e),won:s?e.winningSide===i+1:void 0,bye:o}}function zI(e){let{graph:t}=sI(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,LI(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=>RI({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 BI(e){let t=FI(e);if(!t.projections.length)return{series:[],projection:t,scaleName:t.scaleName,unratedCount:t.unratedCount};let n=new Map(zI({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 VI(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 HI=150,UI=64;function WI(e){return HF(e.flatMap(e=>e.points))}function GI({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),rI(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 KI(e,t=[],n={}){let r=document.createElement(`div`);r.className=`chc-psm`,e.appendChild(r);function i(e,t){r.replaceChildren();let n=VI(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=WI(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(GI({series:e,options:t,chartOptions:{spark:!0,yDomain:i,width:t.cellWidth??HI,height:t.cellHeight??UI,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 qI=22,JI=460,YI=132,XI=3;function ZI(e){if(e===null)return`—`;let t=Math.round(e);return t>0?`+${t}`:String(t)}function QI({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??qI}px`;let o=document.createElement(`span`);o.className=`chc-pdb__label`,o.style.width=`${t.labelWidth??YI}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 ${XI}px ${XI}px 0`:`${XI}px 0 0 ${XI}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 ${ZI(e.facedDifficulty)}`,s.appendChild(t)}let l=document.createElement(`span`);return l.className=`chc-pdb__value`,l.textContent=ZI(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 $I(e,t=[],n={}){let r=document.createElement(`div`);r.className=`chc-pdb`,e.appendChild(r);function i(e,t){r.replaceChildren();let n=VI(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??JI,a=t.labelWidth??YI,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(QI({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 eL=[`Round`,`Projected`,`Range`,`Reach`,`Faced`,`Scoreline`,`Result`];function tL(e){if(e==null)return`—`;let t=Math.round(e);return t>0?`+${t}`:String(t)}function nL(e){return e.points.map(e=>{let t=e.projected.low!==null&&e.projected.high!==null?`${tL(e.projected.low)} … ${tL(e.projected.high)}`:`—`,n=`—`;return e.bye?n=`bye`:e.won!==void 0&&(n=e.won?`won`:`lost`),[`R${e.roundNumber}`,tL(e.projected.expected),t,`${Math.round(e.reachProbability*100)}%`,tL(e.actual),e.competitiveness?e.competitiveness.toLowerCase():`—`,n]})}function rL(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 eL){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 nL(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 iL(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 aL(e,t){let n=iL(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 oL(e,t){return t.filter((t,n)=>t===e[n]).length}function sL(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=aL(e,n),o=oL(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:aL(e,t),seed:t,deranged:!1}}function cL(e){let t=[];for(let n=2;n<e&&e%n===0;n*=2)t.push(n);return t}function lL(e){return e.toSorted((e,t)=>e.localeCompare(t,`en`)).join(`|`)}function uL(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(lL(e.slice(r,r+t)));return n}function dL(e,t,n){let r=new Set(uL(t,n));return uL(e,n).filter(e=>r.has(e)).length}function fL(e){return Math.floor(e*e/2)}function pL({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=fL(r),c=s>0?1-o/s:1,l=cL(r).map(n=>({blockSize:n,matched:dL(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 mL({actualOrder:e,seed:t}){let n=sL(e,t);return{actualOrder:[...e],order:n.items,seed:n.seed,deranged:n.deranged,revealed:!1,score:null,moves:0}}function hL(e,t){return Number.isInteger(t)&&t>=0&&t<e.order.length}function gL(e,t,n){if(e.revealed||t===n||!hL(e,t)||!hL(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 _L(e,t,n){if(e.revealed||t===n||!hL(e,t)||!hL(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 vL(e){return e.revealed?e:{...e,revealed:!0,score:pL({guess:e.order,actual:e.actualOrder})}}function yL(e,t){return mL({actualOrder:e.actualOrder,seed:t})}var bL=[.25,.75];function xL(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 SL(e,t=bL){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=xL(n,t[0]),i=xL(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 CL={PROJECTED:`projected`,ACTUAL:`actual`},wL={HARD:`hard`,EASY:`easy`},TL=60;function EL(e,t){return t===CL.ACTUAL&&e.actual!==null&&e.actual!==void 0?{value:e.actual,fromActual:!0}:{value:e.projected.expected,fromActual:!1}}function DL({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 OL(e,t){let n=e.flatMap(e=>e.points.map(e=>EL(e,t).value).filter(e=>e!==null).map(Math.abs));return n.length?Math.max(60,...n):60}function kL({point:e,ownElo:t,round:n}){if(t!==null&&n?.possibleOpponents?.length){let e=SL(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 AL(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 jL(e){return e>=0?wL.HARD:wL.EASY}function ML({roundNumber:e,point:t,source:n,bands:r,domainMax:i,ownElo:a,round:o}){if(!t||t.bye)return AL(e,t);let{value:s,fromActual:c}=EL(t,n);if(s===null)return AL(e,t);let{layers:l,clipped:u}=DL({magnitude:Math.abs(s),bands:r,domainMax:i});return{roundNumber:e,value:s,direction:jL(s),layers:l,clipped:u,fromActual:c,reachProbability:t.reachProbability,bye:!1,resolved:t.resolved,spread:kL({point:t,ownElo:a,round:o})}}function NL(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 PL({series:e,source:t=CL.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??OL(e,t),s=NL(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=>ML({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 FL=`http://www.w3.org/2000/svg`,IL=`class`,LL=`path`,RL=0,zL=1.5;function BL(e,t){let n=document.createElementNS(FL,e);return t&&n.setAttribute(IL,t),n}function VL(e){let t=Math.round(e);return t>0?`+${t}`:String(t)}function HL(e){let t=e.layers.at(-1);return!t||!e.direction?`chc-ph__stop--none`:`chc-ph__stop--${e.direction}-${t.bandIndex}`}function UL(e,t,n,r){let i=BL(`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=BL(`stop`,HL(e));a.setAttribute(`offset`,String(n>0?t(r)/n:0)),i.appendChild(a)}),e.length===1){let t=BL(`stop`,HL(e[0]));t.setAttribute(`offset`,`1`),i.appendChild(t)}return i}function WL(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 ${VL(e.spread.innerLow)} to ${VL(e.spread.innerHigh)}${e.spread.weighted?``:` (unweighted range)`}`:``,o=e.clipped?` · capped at the top band`:``;return`${t}: ${i} ${VL(e.value)}${r}${a}${o}`}function GL(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-zL),g=Math.max(1e-9,i/Math.max(1,a)*o),_=e=>m-Math.max(-1,Math.min(1,e/g))*h,v=BL(`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}`),RL+=1;let y=`chc-ph-grad-${RL}`,b=BL(`defs`);if(b.appendChild(UL(e.cells,p,n,y)),v.appendChild(b),u){let e=BL(`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=NN().curve(zN).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=BL(LL,t);r.setAttribute(`d`,n),r.setAttribute(`fill`,S),v.appendChild(r)}let C=MN().curve(zN).defined(e=>e.cell.value!==null).x(e=>p(e.index)).y(e=>_(e.cell.value??0))(x);if(C){let e=BL(LL,`chc-ph__trace`);e.setAttribute(`d`,C),e.setAttribute(`stroke`,S),v.appendChild(e)}return s&&e.cells.forEach((e,t)=>{let n=BL(`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=BL(`title`);a.textContent=WL(e,i,l),n.appendChild(a),v.appendChild(n)}),v}var KL=`http://www.w3.org/2000/svg`,qL=`class`,JL=`rect`,YL=`chc-ph__wall`,XL=2,ZL=5,QL=2,$L=2;function eR(e,t){let n=document.createElementNS(KL,e);return t&&n.setAttribute(qL,t),n}function tR(e){let t=Math.round(e);return t>0?`+${t}`:String(t)}function nR(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} ${tR(e.value)}${i}${a}`}function rR({group:e,cell:t,columnWidth:n,height:r}){if(!t.layers.length){let t=eR(JL,`${YL} ${YL}--none`);t.setAttribute(`x`,`0`),t.setAttribute(`y`,String((r-$L)/2)),t.setAttribute(`width`,String(n)),t.setAttribute(`height`,String($L)),e.appendChild(t);return}let i=t.direction===wL.HARD;for(let a of t.layers){let o=Math.max(1,a.fraction*r),s=eR(JL,`${YL} ${YL}--${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>=ZL&&s.setAttribute(`rx`,String(QL)),e.appendChild(s)}}function iR(e,t){let{width:n,height:r,gap:i=XL,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=eR(`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=eR(`g`,`chc-ph__column`);if(n.setAttribute(`transform`,`translate(${t*(l+i)},0)`),rR({group:n,cell:e,columnWidth:l,height:r}),a){let r=o?.(e.roundNumber,t,c)??`R${t+1}`,i=eR(`title`);i.textContent=nR(e,r,s),n.appendChild(i)}u.appendChild(n)}),u}var aR=`http://www.w3.org/2000/svg`,oR=12,sR=2,cR={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`]},lR=[wL.HARD,wL.EASY];function uR(e,t){let n=document.createElement(e);return t&&(n.className=t),n}function dR(e,t,n=!1){let r=oR*t+(t-1)*sR,i=document.createElementNS(aR,`svg`);i.setAttribute(`class`,`chc-ph__swatch`),i.setAttribute(`width`,String(r)),i.setAttribute(`height`,String(oR)),i.setAttribute(`viewBox`,`0 0 ${r} ${oR}`),i.setAttribute(`aria-hidden`,`true`);for(let r=0;r<t;r++){let a=oR*((r+1)/t),o=n?a/2:a,s=document.createElementNS(aR,`rect`);s.setAttribute(`class`,`chc-ph__wall chc-ph__wall--${e}-${r}`),s.setAttribute(`x`,String(r*14));let c=e===wL.HARD,l=oR/2;s.setAttribute(`y`,String(n?c?l-o:l:c?oR-o:0)),s.setAttribute(`width`,String(oR)),s.setAttribute(`height`,String(o)),i.appendChild(s)}return i}function fR(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 pR({bands:e,scaleName:t,note:n,variant:r}){let i=uR(`div`,`chc-ph__legend`),a=r===`ribbon`,o=cR[a?`ribbon`:`walls`];for(let[t,n]of lR.entries()){let r=uR(`div`,`chc-ph__legend-item`);r.appendChild(dR(n,e,a));let s=uR(`span`,`chc-ph__legend-label`);s.textContent=o[t],r.appendChild(s),i.appendChild(r)}let s=t?`${t}-equivalent rating`:`rating`,c=uR(`div`,`chc-ph__legend-note`);return c.textContent=n??fR(r,s),i.appendChild(c),i}var mR=`chc-ph`,hR=`chc-ph__row`,gR=520,_R=132,vR={walls:16,ribbon:28},yR=2,bR={DRAW:`draw`,DIFFICULTY:`difficulty`},xR={WALLS:`walls`,RIBBON:`ribbon`};function SR(e,t){let n=document.createElement(e);return t&&(n.className=t),n}function CR(e,t){return t===bR.DIFFICULTY?VI(e):e.toSorted((e,t)=>(e.drawPosition??0)-(t.drawPosition??0))}function wR({roundNumbers:e,width:t,columnGap:n,labelWidth:r,roundLabels:i}){let a=SR(`div`,`chc-ph__head`),o=SR(`div`,`chc-ph__label`);o.style.width=`${r}px`,a.appendChild(o);let s=SR(`div`,`chc-ph__rounds`);s.style.width=`${t}px`,s.style.gap=`${n}px`;for(let[t,n]of e.entries()){let r=SR(`span`,`chc-ph__round-label`);r.textContent=i(n,t,e.length),s.appendChild(r)}return a.appendChild(s),a}function TR(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 ER(e,{variant:t,width:n,rowHeight:r,columnGap:i,roundLabels:a,scaleName:o,domainMax:s,bands:c}){return t===xR.RIBBON?GL(e,{width:n,height:r,domainMax:s,bands:c,positionBands:yR,describe:!0,roundLabels:a,scaleName:o}):iR(e,{width:n,height:r,gap:i,describe:!0,roundLabels:a,scaleName:o})}function DR({shown:e,ordered:t,dropped:n,domainMax:r,bands:i,clippedCells:a,order:o,variant:s,unweightedFan:c}){let l=SR(`div`,`chc-ph__caption`),u=[`${e} paths · ${o===bR.DRAW?`draw order`:`hardest slot first`}`,`shared domain ±${Math.round(r)} · ${i} bands`];return s===xR.RIBBON&&u.push(`trace saturates past ${yR} of ${i} bands — colour carries the rest`),s===xR.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 OR(e,t=[],n={}){let r=SR(`div`,mR);e.appendChild(r);function i(e,t){r.replaceChildren();let{width:n=gR,variant:i=xR.WALLS,rowHeight:a=vR[i],rowGap:o=2,columnGap:s=2,bands:c,source:l=CL.PROJECTED,domainMax:u,showLabels:d=!0,showLegend:f=!0,showRoundHeader:p=!0,order:m=bR.DRAW,limit:h,scaleName:g,onSelect:_,projection:v,roundLabels:y=zF}=t,b=e.filter(e=>e.rating);if(!b.length){let e=SR(`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=CR(b,m),S=h?x.slice(0,h):x,C=PL({series:S,source:l,bands:c,domainMax:u,projection:v}),w=d?t.labelWidth??_R:0;p&&r.appendChild(wR({roundNumbers:C.roundNumbers,width:n,columnGap:s,labelWidth:w,roundLabels:y}));let T=SR(`div`,`chc-ph__rows`);T.style.gap=`${o}px`;for(let[e,t]of C.rows.entries()){let r=S[e],o=SR(`div`,hR);if(o.dataset.participantId=t.participantId,d){let e=SR(`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(ER(t,{variant:i,width:n,rowHeight:a,columnGap:s,roundLabels:y,scaleName:g,domainMax:C.domainMax,bands:C.bands})),_&&TR(o,r,_),T.appendChild(o)}r.appendChild(T),f&&r.appendChild(pR({bands:C.bands,scaleName:g,variant:i})),r.appendChild(DR({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 kR=`chc-dog`,AR=`chc-dog__row`,jR=`application/x-chc-draw-slot`,MR=`button`,NR=`is-drop-target`,PR=`New board dealt`,FR=460,IR={walls:20,ribbon:30},LR=20260831;function RR(e,t){let n=document.createElement(e);return t&&(n.className=t),n}function zR(e,t){let n=document.createElement(MR);return n.type=MR,n.className=`chc-dog__button`,n.textContent=e,n.addEventListener(`click`,t),n}function BR(e,t){return e===2?`first-round pairs`:e===t/2?`halves`:e===t/4?`quarters`:`groups of ${e}`}function VR(e){let t=RR(`div`,`chc-dog__score`),n=RR(`div`,`chc-dog__score-headline`);n.textContent=`${e.structureScore}%`,t.appendChild(n);let r=RR(`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=RR(`ul`,`chc-dog__score-levels`);for(let t of e.levels){let n=RR(`li`);n.textContent=`${BR(t.blockSize,e.slots)}: ${t.matched}/${t.total}`,i.appendChild(n)}t.appendChild(i);let a=RR(`div`,`chc-dog__score-exact`);a.textContent=`${e.exact}/${e.slots} rows in the exact slot.`,t.appendChild(a);let o=RR(`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 HR(e,t=[],n={}){let r=RR(`div`,kR);e.appendChild(r);let{width:i=FR,rowHeight:a=IR[n.variant??xR.WALLS],rowGap:o=2,columnGap:s=2,bands:c,variant:l=xR.WALLS,projection:u,scaleName:d,limit:f,roundLabels:p=zF,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=PL({series:v,source:CL.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=mL({actualOrder:v.map(e=>e.participantId),seed:n.seed??LR}),C=null,w=null,T=RR(`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=RR(`div`,AR);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=RR(`div`,`chc-dog__slot`);if(o.textContent=String(t+1),r.appendChild(o),n){let e=l===xR.RIBBON?GL(n,{width:i,height:a,domainMax:y.domainMax,bands:y.bands,describe:!1,ariaLabel:`Path in slot ${t+1}`}):iR(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=RR(`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(jR,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(NR)}),e.addEventListener(`dragleave`,()=>e.classList.remove(NR)),e.addEventListener(`drop`,n=>{n.preventDefault(),e.classList.remove(NR);let r=n.dataTransfer?.getData(jR),i=r?Number.parseInt(r,10):C;i===null||Number.isNaN(i)||(w=t,D(gL(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(_L(S,t,n),`Slot ${t+1} swapped with slot ${n+1}`):j(n))})}function j(e){r.querySelector(`.${AR}[data-slot="${e}"]`)?.focus()}function M(){let e=RR(`div`,`chc-dog__toolbar`);S.revealed?e.appendChild(zR(`Play again`,()=>D(yL(S,S.seed+1),PR))):(e.appendChild(zR(`Check my order`,()=>D(vL(S)))),e.appendChild(zR(`Shuffle`,()=>D(yL(S,S.seed+1),PR))));let t=RR(`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=RR(`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===xR.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=RR(`div`,`chc-dog__head`);e.appendChild(RR(`div`,`chc-dog__slot-spacer`));let t=RR(`div`,`chc-ph__rounds`);t.style.width=`${i}px`,t.style.gap=`${s}px`;for(let[e,n]of y.roundNumbers.entries()){let r=RR(`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=RR(`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=RR(`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(pR({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(VR(S.score));let t=RR(`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(yL(S,e??S.seed+1),PR),reveal:()=>D(vL(S)),destroy:()=>r.remove()}}var UR=`right`,WR=`font-medium`;function GR({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===UR&&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`);B(t.onClick)&&(d.onclick=t.onClick),d.style.cssText=`margin-right: 1em`,d.innerHTML=t.label,u.appendChild(d);let f=document.createElement(`span`);B(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>
@@ -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();WW({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);WW({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 qW(e,t){let n=new KW(e);return n.render(t),n}var{LUCKY_DRAW:JW,ROUND_ROBIN:YW,AD_HOC:XW}=t.drawDefinitionConstants;function ZW(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 QW(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 $W(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 eG(e){let t=Math.max(2,e);return t&t-1?$W(e).length:Math.ceil(Math.log2(t))}function tG(e,t){let n=Math.max(2,e);if(!(n&n-1))return Math.floor(n/2**t);let r=$W(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 nG(e,t,n){return e===YW?(n?.groupSize||Math.min(t,4))-1:e===XW?n?.roundsCount||1:e===JW?eG(t):QW(t)}function rG(e,t,n){return e===JW?tG(t,n):Math.floor(t/2**n)}var{ROUND_ROBIN:iG,AD_HOC:aG,LUCKY_DRAW:oG}=t.drawDefinitionConstants,sG=0;function cG({structureType:e,drawSize:t,stage:n,structureId:r,qualifyingPositions:i,structureOptions:a}){return e===iG?uG({drawSize:t,stage:n,structureId:r,structureOptions:a}):e===aG?fG({drawSize:t,stage:n,structureId:r,roundsCount:a?.roundsCount||1}):e===oG?dG({drawSize:t,stage:n,structureId:r}):lG({drawSize:t,stage:n,structureId:r,qualifyingPositions:i})}function lG({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-${++sG}`,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 uG({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-${++sG}`,roundNumber:r,roundPosition:e*o+a,isRoundRobin:!0,stage:t,structureId:`${n}-g${e}`})}return i}function dG({drawSize:e,stage:t,structureId:n}){let r=Math.max(2,e);if(!(r&r-1))return lG({drawSize:e,stage:t,structureId:n});let i=$W(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-${++sG}`,roundNumber:u,roundPosition:r,drawPositions:i?[s++,s++]:[],finishingRound:a-e,roundFactor:1,preFeedRound:!!c,stage:t,structureId:n})}}return o}function fG({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-${++sG}`,roundNumber:e,roundPosition:r,finishingRound:1,stage:t,structureId:n});return i}var{ROUND_ROBIN:pG}=t.drawDefinitionConstants,mG=new Map;function hG(e,n,r){let i=`${e}:${n}:${r||``}`,a=mG.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 gG(i,{});let c=(s.structures||[])[0];if(!c)return gG(i,{});let l=c.structureType===`CONTAINER`,u={};if(l||e===pG){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 gG(i,u)}catch{return gG(i,{})}}function gG(e,t){return mG.set(e,t),t}var{MAIN:_G,QUALIFYING:vG,CONSOLATION:yG,PLAY_OFF:bG,ROUND_ROBIN:xG,AD_HOC:SG,LUCKY_DRAW:CG,WINNER:wG,LOSER:TG}=t.drawDefinitionConstants,EG=240,DG=48,OG=16;function kG(e){if(e.structureType===xG)return(e.structureOptions?.groupSize||Math.min(e.drawSize,4))-1;if(e.structureType===SG)return e.structureOptions?.roundsCount||1;if(e.structureType===CG)return eG(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 AG(e){let t=kG(e);return Math.max(EG,t*DG+OG)}var jG={[_G]:`tb-card-badge--main`,[vG]:`tb-card-badge--qualifying`,[yG]:`tb-card-badge--consolation`,[bG]:`tb-card-badge--playoff`};function MG(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=`${AG(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 ${jG[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||cG({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=ki({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===TG)||r.find(e=>e.linkType===wG)||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=hG(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 NG(e,t){let n=AG(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:PG,QUALIFYING:FG,CONSOLATION:IG,WINNER:LG,LOSER:RG,ROUND_ROBIN:zG}=t.drawDefinitionConstants,BG=`POSITION`,VG=0;function HG(e){return`${e}-${++VG}-${Date.now().toString(36)}`}function UG(e){let t=2;for(;t*2<=e;)t*=2;return t}var WG=60,GG=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:HG(`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===LG&&this.state.edges.find(t=>t.sourceNodeId===e.sourceNodeId&&t.linkType===LG))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===zG&&e.linkType!==BG||t?.stage===FG&&n&&n.stage!==FG&&n.stage!==PG||n?.stage===FG&&t&&t.stage!==FG)return null;let r={...e,id:HG(`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!==IG)return;let n=this.inboundCapacity(e);n>0&&t.drawSize>n&&(t.drawSize=UG(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===RG){let r=e.sourceRoundNumber||1;n+=rG(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+AG(t));return{x:e+WG,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===PG);i.push(...t.length?t:[e[0]])}let a=new Map,o=new Set(e.filter(e=>e.stage===FG).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=>AG(e)));t.forEach((e,t)=>{e.position={x:p,y:t*190+40}}),p+=n+WG}}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:KG,LOSER:qG,QUALIFYING:JG,CONSOLATION:YG,ROUND_ROBIN:XG}=t.drawDefinitionConstants,ZG=`POSITION`,QG=e=>e===XG;function $G(e,t){if(!QG(e.structureType))return;let n=t.edges.filter(t=>t.sourceNodeId===e.id&&t.linkType===ZG);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 eK=`http://www.w3.org/2000/svg`,tK={[KG]:`tb-edge--winner`,[qG]:`tb-edge--loser`,[ZG]:`tb-edge--position`};function nK(e){let t=document.createElement(`div`);t.className=`tb-canvas`;let n=document.createElementNS(eK,`svg`);n.classList.add(`tb-canvas-svg`);let r=document.createElementNS(eK,`defs`);for(let[e,t]of Object.entries(tK)){let n=document.createElementNS(eK,`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(eK,`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(e=>e.linkType===KG).map(e=>e.sourceNodeId).filter(t=>{let n=e.nodes.find(e=>e.id===t);return n&&n.stage===JG&&!QG(n.structureType)}))}function f(e){let t=new Map;for(let n of e.edges){let r=n.sourceRoundNumber,i=n.targetRoundNumber,a=n.id===e.selectedEdgeId;if(!r&&n.linkType===KG){let t=e.nodes.find(e=>e.id===n.sourceNodeId);t&&(r=kG(t))}r&&(t.has(n.sourceNodeId)||t.set(n.sourceNodeId,[]),t.get(n.sourceNodeId).push({roundNumber:r,linkType:n.linkType,direction:`source`,edgeId:n.id,isSelected:a})),i&&(t.has(n.targetNodeId)||t.set(n.targetNodeId,[]),t.get(n.targetNodeId).push({roundNumber:i,linkType:n.linkType,direction:`target`,edgeId:n.id,isSelected:a}))}return t}function p(e){let t=new Map;for(let n of e.edges){if(n.linkType!==KG)continue;let r=n.targetRoundNumber||1;if(r<=1)continue;let i=e.nodes.find(e=>e.id===n.sourceNodeId);if(!i||i.stage!==JG)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=ZW(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(!QG(n.structureType))continue;let r=e.edges.filter(e=>e.sourceNodeId===n.id&&e.linkType===ZG);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&&QG(e.structureType)?ZG:n===`loser`||t?.stage===YG?qG:KG}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=NG(i,r),s=document.createElementNS(eK,`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=MG(n,c,e.selectedNodeId===n.id,t.has(n.id),r.get(n.id),o.get(n.id),$G(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+AG(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=NG(a,n.linkType===qG?`loser`:`winner`),c=NG(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(eK,`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(eK,`path`);if(m.setAttribute(`d`,f),m.classList.add(tK[n.linkType]||`tb-edge--winner`),r.selectedEdgeId===n.id&&m.classList.add(`tb-edge--selected`),m.setAttribute(`marker-end`,`url(#arrowhead-${n.linkType})`),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(eK,`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:rK,ROUND_ROBIN:iK,FEED_IN:aK,FEED_IN_CHAMPIONSHIP:oK,FIRST_MATCH_LOSER_CONSOLATION:sK,COMPASS:cK,OLYMPIC:lK,AD_HOC:uK,LUCKY_DRAW:dK,MAIN:fK,QUALIFYING:pK,CONSOLATION:mK,PLAY_OFF:hK,WINNER:gK}=t.drawDefinitionConstants,_K=`POSITION`,vK=[{label:`Single Elimination`,value:rK},{label:`Round Robin`,value:iK},{label:`Feed-In Championship`,value:oK},{label:`FMLC`,value:sK},{label:`Compass`,value:cK},{label:`Olympic`,value:lK},{label:`Ad-hoc`,value:uK}],yK=[{label:`Single Elimination`,value:rK},{label:`Round Robin`,value:iK},{label:`Lucky Draw`,value:dK},{label:`Staggered Entry`,value:aK},{label:`Ad-hoc`,value:uK}],bK=[{label:`Main`,value:fK},{label:`Qualifying`,value:pK},{label:`Consolation`,value:mK},{label:`Playoff`,value:hK}];function xK(e){let t=[],n=Math.floor(e/2);for(;n>=1;)t.push(n),n=Math.floor(n/2);return t}function SK(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 CK(e,t,n,r,i,a){let o=SK(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(t=>t.sourceNodeId===e.id&&t.linkType===_K),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&&wK(u,t,l,i)}function wK(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 TK(e,t,n,r,i,a){let o=t.edges.find(t=>t.targetNodeId===e.id&&t.linkType===_K);if(!o||t.nodes.find(e=>e.id===o.sourceNodeId)?.structureType!==iK)return;let s=e.structureOptions?.playoffDrawType||rK;if(i.push({label:`Playoff Draw Type`,field:`playoffDrawType`,value:s,disabled:n,options:vK.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===iK){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 EK(e,t,n,r,i){let a=xK(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)})})}function DK(e,t,n){let r=ZW(e.drawSize),i=new Map,a=[];for(let n of t.edges){if(n.linkType!==gK||n.targetNodeId!==e.id)continue;let r=n.targetRoundNumber||1;if(r<=1)continue;let o=t.nodes.find(e=>e.id===n.sourceNodeId);if(!o||o.stage!==pK)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 OK(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:_C(1),error:`Name required`}},{label:`Stage`,field:`stage`,value:i.stage,disabled:n,options:bK.map(e=>({...e,selected:e.value===i.stage}))},{label:`Structure Type`,field:`structureType`,value:i.structureType,disabled:n,options:yK.map(e=>({...e,selected:e.value===i.structureType}))},{label:i.stage===fK?`Draw Size`:`Structure Size`,field:`drawSize`,type:`number`,value:String(i.drawSize),...n?{disabled:!0}:i.structureType===uK?{validator:yC(0,256),error:`Must be 0-256`}:{validator:yC(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===uK?0:2))return;let r={drawSize:n};if(i.structureType===iK){let e=i.structureOptions?.groupSize||4,t=SK(n);!t.includes(e)&&t.length>0&&(r.structureOptions={...i.structureOptions,groupSize:t[0]})}e.onUpdateNode(i.id,r)}}];i.structureType===iK&&CK(i,r,n,e,s,c),i.stage===hK&&TK(i,r,n,e,s,c),i.stage===pK&&EK(i,n,e,s,c),Ai(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=()=>{Wa({existingMatchUpFormat:i.matchUpFormat,callback:t=>{e.onUpdateNode(i.id,{matchUpFormat:t||void 0}),d.textContent=t||`Not set`}})},l.appendChild(d),o.appendChild(l),DK(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{WINNER:kK,LOSER:AK,TOP_DOWN:jK,BOTTOM_UP:MK,QUALIFYING:NK,ROUND_ROBIN:PK}=t.drawDefinitionConstants,FK=`POSITION`,IK=`ALTERNATING`,LK=e=>e===PK,RK=[{label:`Winner`,value:kK},{label:`Loser`,value:AK},{label:`Position`,value:FK}],zK=[{label:`Top-Down`,value:jK},{label:`Bottom-Up`,value:MK},{label:`Alternating`,value:IK}];function BK(e){let t=document.createElement(`div`),n=!!e.readOnly;function r(t,r,i,a,o,s){let c=[],l=[],u=r?hG(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=i.edges.filter(e=>e.id!==t.id&&e.sourceNodeId===t.sourceNodeId&&e.linkType===FK),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 f=o.linkType===kK&&s?.stage===NK,p=s?nG(s.structureType,s.drawSize,s.structureOptions):8,m=c?nG(c.structureType,c.drawSize,c.structureOptions):8,h=o.linkType===FK&&s&&LK(s.structureType),g=[{label:`Link Type`,field:`linkType`,value:o.linkType,disabled:n,options:RK.map(e=>({...e,selected:e.value===o.linkType}))}],_=n?[]:[{control:`linkType`,onChange:({e:t})=>e.onUpdateEdge(o.id,{linkType:t.target.value})}];if(!h){let e=r(o,s,c,p,m,f);g.push(...e.items),_.push(...e.relationships)}if(f&&s){let t=Math.floor(s.drawSize/2),r=Math.floor(s.drawSize/4),i=o.qualifyingPositions||r;g.push({label:`Qualifying Positions`,field:`qualifyingPositions`,type:`number`,value:String(i),disabled:n}),n||_.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(o.linkType===AK&&(g.push({label:`Feed Profile`,field:`feedProfile`,value:o.feedProfile||jK,disabled:n,options:zK.map(e=>({...e,selected:e.value===(o.feedProfile||jK)}))}),n||_.push({control:`feedProfile`,onChange:({e:t})=>e.onUpdateEdge(o.id,{feedProfile:t.target.value})})),o.linkType===FK&&!h&&(g.push({label:`Finishing Positions`,field:`finishingPositions`,value:(o.finishingPositions||[]).join(`, `),placeholder:`e.g., 1, 2`,disabled:n}),n||_.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})}})),Ai(u,g,_),h&&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:VK,QUALIFYING:HK,CONSOLATION:UK,WINNER:WK,LOSER:GK,SINGLE_ELIMINATION:KK,ROUND_ROBIN:qK,AD_HOC:JK}=t.drawDefinitionConstants,YK=`POSITION`;function XK(e){let t=[],n=ZK(e,t);return $K(e,QK(e),t),eq(e,t),tq(e,t),nq(e,t),rq(e,n,t),iq(e,t),aq(e,t),sq(e,t),cq(e,t),lq(e)&&t.push({severity:`error`,message:`Circular dependency detected between structures`}),t}function ZK(e,t){let n=e.nodes.filter(e=>e.stage===VK);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 QK(e){let t=new Set;for(let n of e.edges)n.linkType===WK&&(n.targetRoundNumber||1)>1&&e.nodes.find(e=>e.id===n.sourceNodeId)?.stage===HK&&t.add(n.targetNodeId);let n=new Map;for(let t of e.edges)t.linkType===GK&&n.set(t.targetNodeId,(n.get(t.targetNodeId)||0)+1);for(let[e,r]of n)r>1&&t.add(e);return t}function $K(e,t,n){for(let r of e.nodes){if(r.structureType===KK&&!t.has(r.id)){let t=e.edges.some(e=>e.targetNodeId===r.id);(r.stage===VK||r.stage===HK)&&!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===JK?0:2;r.drawSize<i&&n.push({message:`"${r.structureName}" draw size must be at least ${i}`,severity:`error`,nodeId:r.id})}}function eq(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){let e=nG(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=nG(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 tq(e,t){let n=new Map;for(let t of e.edges)t.linkType===WK&&(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 nq(e,t){let n=new Map;for(let t of e.edges)t.sourceRoundNumber&&(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 rq(e,t,n){let r=e.nodes.filter(e=>e.stage===HK);for(let i of r){let r=e.edges.find(e=>e.sourceNodeId===i.id&&e.linkType===WK&&t.some(t=>t.id===e.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 iq(e,t){let n=new Map;for(let t of e.edges){if(t.linkType!==WK)continue;let r=t.targetRoundNumber||1;if(r<=1)continue;let i=e.nodes.find(e=>e.id===t.sourceNodeId);if(!i||i.stage!==HK)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=ZW(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 aq(e,t){for(let n of e.edges){if(n.linkType!==GK)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=rG(r.structureType,r.drawSize,a),c=ZW(i.drawSize);o!==1&&oq(c,o,s,r,i,a,n.id,t)}}function oq(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 sq(e,t){let n=e.nodes.filter(e=>e.stage===UK);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===GK){let e=t.sourceRoundNumber||1;i+=rG(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 cq(e,t){let n=new Map;for(let r of e.edges){if(r.linkType!==YK)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===qK){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 POSITION links`,edgeId:e}):a.set(i,e)}}function lq(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:uq,QUALIFYING:dq,CONSOLATION:fq,PLAY_OFF:pq,LUCKY_DRAW:mq}=t.drawDefinitionConstants;function hq(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=XK(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)">&#10003; 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:uq,onClick:()=>e.onAddStructure(uq),close:!0},{label:`Lucky Draw`,value:mq,onClick:()=>e.onAddStructure(uq,mq),close:!0},{label:`Qualifying`,value:dq,onClick:()=>e.onAddStructure(dq),close:!0},{label:`Consolation`,value:fq,onClick:()=>e.onAddStructure(fq),close:!0},{label:`Playoff`,value:pq,onClick:()=>e.onAddStructure(pq),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()}),mz({target:a,items:l});function u(e){s=e}return{element:r,update:u}}function gq({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:_q,FEED_IN:vq,ROUND_ROBIN:yq,LUCKY_DRAW:bq,MAIN:xq,QUALIFYING:Sq,CONSOLATION:Cq,PLAY_OFF:wq}=t.drawDefinitionConstants,Tq=`WINNER`,Eq=`LOSER`,Dq=`POSITION`,Oq=`tpl-edge-1`,kq=`tpl-edge-2`,Aq=`tpl-edge-3`,jq=`tpl-edge-4`,Mq=`tpl-edge-5`,Nq=`tpl-edge-6`,Pq=`tpl-edge-7`,Fq=`R1 losers → R1`,Iq=[{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:xq,structureType:_q,drawSize:32,position:{x:320,y:40}},{id:`tpl-qual`,structureName:`Qualifying`,stage:Sq,structureType:_q,drawSize:16,qualifyingPositions:4,position:{x:40,y:40}}],edges:[{id:Oq,sourceNodeId:`tpl-qual`,targetNodeId:`tpl-main`,linkType:Tq,targetRoundNumber:1,qualifyingPositions:4,label:`winners → R1 (4Q)`}]}},{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:xq,structureType:_q,drawSize:32,position:{x:40,y:40}},{id:`tpl-cons`,structureName:`Consolation`,stage:Cq,structureType:_q,drawSize:16,position:{x:320,y:40}}],edges:[{id:Oq,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:Eq,sourceRoundNumber:1,targetRoundNumber:1,label:Fq}]}},{name:`Feed-In Championship (FIC)`,description:`Main draw with multi-round fed consolation`,state:{drawName:`FIC`,nodes:[{id:`tpl-main`,structureName:`Main Draw`,stage:xq,structureType:_q,drawSize:32,position:{x:40,y:40}},{id:`tpl-cons`,structureName:`Consolation`,stage:Cq,structureType:vq,drawSize:31,position:{x:460,y:40}}],edges:[{id:Oq,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:Eq,sourceRoundNumber:1,targetRoundNumber:1,label:Fq},{id:kq,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:Eq,sourceRoundNumber:2,targetRoundNumber:2,label:`R2 losers → R2`},{id:Aq,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:Eq,sourceRoundNumber:3,targetRoundNumber:4,label:`R3 losers → R4`},{id:jq,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:Eq,sourceRoundNumber:4,targetRoundNumber:6,label:`R4 losers → R6`},{id:Mq,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:Eq,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:xq,structureType:_q,drawSize:32,position:{x:40,y:40}},{id:`tpl-west`,structureName:`West`,stage:Cq,structureType:_q,drawSize:16,position:{x:400,y:40}},{id:`tpl-north`,structureName:`North`,stage:Cq,structureType:_q,drawSize:8,position:{x:400,y:210}},{id:`tpl-ne`,structureName:`Northeast`,stage:Cq,structureType:_q,drawSize:4,position:{x:400,y:380}},{id:`tpl-south`,structureName:`South`,stage:Cq,structureType:_q,drawSize:8,position:{x:680,y:40}},{id:`tpl-sw`,structureName:`Southwest`,stage:Cq,structureType:_q,drawSize:4,position:{x:680,y:210}},{id:`tpl-nw`,structureName:`Northwest`,stage:Cq,structureType:_q,drawSize:4,position:{x:680,y:380}},{id:`tpl-se`,structureName:`Southeast`,stage:Cq,structureType:_q,drawSize:4,position:{x:960,y:40}}],edges:[{id:Oq,sourceNodeId:`tpl-east`,targetNodeId:`tpl-west`,linkType:Eq,sourceRoundNumber:1,targetRoundNumber:1,label:Fq},{id:kq,sourceNodeId:`tpl-east`,targetNodeId:`tpl-north`,linkType:Eq,sourceRoundNumber:2,targetRoundNumber:1,label:`R2 losers → R1`},{id:Aq,sourceNodeId:`tpl-east`,targetNodeId:`tpl-ne`,linkType:Eq,sourceRoundNumber:3,targetRoundNumber:1,label:`R3 losers → R1`},{id:jq,sourceNodeId:`tpl-west`,targetNodeId:`tpl-south`,linkType:Eq,sourceRoundNumber:1,targetRoundNumber:1,label:Fq},{id:Mq,sourceNodeId:`tpl-west`,targetNodeId:`tpl-sw`,linkType:Eq,sourceRoundNumber:2,targetRoundNumber:1,label:`R2 losers → R1`},{id:Nq,sourceNodeId:`tpl-north`,targetNodeId:`tpl-nw`,linkType:Eq,sourceRoundNumber:1,targetRoundNumber:1,label:Fq},{id:Pq,sourceNodeId:`tpl-south`,targetNodeId:`tpl-se`,linkType:Eq,sourceRoundNumber:1,targetRoundNumber:1,label:Fq}]}},{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:xq,structureType:yq,drawSize:16,structureOptions:{groupSize:4},position:{x:40,y:40}},{id:`tpl-playoff-gold`,structureName:`Gold Flight`,stage:wq,structureType:_q,drawSize:8,position:{x:320,y:40}},{id:`tpl-playoff-silver`,structureName:`Silver Flight`,stage:wq,structureType:_q,drawSize:8,position:{x:320,y:220}}],edges:[{id:Oq,sourceNodeId:`tpl-main`,targetNodeId:`tpl-playoff-gold`,linkType:Dq,finishingPositions:[1,2],label:`positions 1,2`},{id:kq,sourceNodeId:`tpl-main`,targetNodeId:`tpl-playoff-silver`,linkType:Dq,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:xq,structureType:bq,drawSize:11,position:{x:40,y:40}},{id:`tpl-cons`,structureName:`Consolation`,stage:Cq,structureType:_q,drawSize:4,position:{x:340,y:40}}],edges:[{id:Oq,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:Eq,sourceRoundNumber:1,targetRoundNumber:1,label:Fq}]}},{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:xq,structureType:bq,drawSize:25,position:{x:40,y:40}},{id:`tpl-cons-rr`,structureName:`Consolation RR`,stage:Cq,structureType:yq,drawSize:12,structureOptions:{groupSize:4},position:{x:500,y:40}}],edges:[{id:Oq,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons-rr`,linkType:Eq,sourceRoundNumber:1,targetRoundNumber:1,label:Fq}]}},{name:`Adaptive (drawSize 11)`,description:`Compass-like multi-structure topology with lucky draw structures`,state:{drawName:`Adaptive`,nodes:[{id:`tpl-east`,structureName:`East`,stage:xq,structureType:bq,drawSize:11,position:{x:40,y:40}},{id:`tpl-west`,structureName:`West`,stage:Cq,structureType:bq,drawSize:6,position:{x:340,y:40}},{id:`tpl-north`,structureName:`North`,stage:Cq,structureType:_q,drawSize:2,position:{x:340,y:250}},{id:`tpl-south`,structureName:`South`,stage:Cq,structureType:_q,drawSize:2,position:{x:600,y:40}}],edges:[{id:Oq,sourceNodeId:`tpl-east`,targetNodeId:`tpl-west`,linkType:Eq,sourceRoundNumber:1,targetRoundNumber:1,label:`R1 losers → R1 (6 losers)`},{id:kq,sourceNodeId:`tpl-east`,targetNodeId:`tpl-north`,linkType:Eq,sourceRoundNumber:2,targetRoundNumber:1,label:`R2 losers → R1 (2 losers)`},{id:Aq,sourceNodeId:`tpl-west`,targetNodeId:`tpl-south`,linkType:Eq,sourceRoundNumber:1,targetRoundNumber:1,label:`R1 losers → R1 (2 losers)`}]}}],{MAIN:Lq,QUALIFYING:Rq,CONSOLATION:zq,PLAY_OFF:Bq,SINGLE_ELIMINATION:Vq,LUCKY_DRAW:Hq,WINNER:Uq,LOSER:Wq}=t.drawDefinitionConstants,Gq=`POSITION`,Kq=class{constructor(e={}){this.config=e,this.store=new GG(e.initialState);let t=[...Iq,...e.templates||[]],n=!!e.readOnly,r=this.buildToolbarPanel(t,n),i=this.buildCanvasPanel(n),a=OK({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=BK({onUpdateEdge:n?()=>{}:(e,t)=>this.store.updateEdge(e,t),onDeleteEdge:n?()=>{}:e=>this.store.removeEdge(e),readOnly:n});this.layout=gq({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 hq({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 nK({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===Gq){let i=this.store.getState().edges.filter(t=>t.sourceNodeId===e&&t.linkType===Gq),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===Wq){let i=this.store.getState().edges.filter(t=>t.sourceNodeId===e&&t.linkType===Wq),a=new Set(i.map(e=>e.sourceRoundNumber)),o=r?nG(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===Uq&&r?.stage===Rq;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===Hq,r=this.store.getState().nodes.filter(t=>t.stage===e).length,i={[Lq]:n?`Lucky Draw`:`Main Draw`,[Rq]:`Qualifying ${r+1}`,[zq]:`Consolation`,[Bq]:`Playoff ${r+1}`},a={[Lq]:n?11:32,[Rq]:16,[zq]:16,[Bq]:4}[e]||16,o=this.store.addNode({structureName:i[e]||e,stage:e,structureType:t||Vq,drawSize:a,...e===Rq&&{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+AG(e)+40;n>t.scrollLeft+t.clientWidth&&t.scrollTo({left:n-t.clientWidth,behavior:`smooth`})})}handleGenerate(){let e=this.store.getState(),t=XK(e);t.some(e=>e.severity===`error`)&&console.warn(`Topology validation errors:`,t),this.config.onGenerate&&this.config.onGenerate(e)}},{MAIN:qq,CONSOLATION:Jq,QUALIFYING:Yq,PLAY_OFF:Xq,SINGLE_ELIMINATION:Zq,FEED_IN:Qq,FIRST_MATCH_LOSER_CONSOLATION:$q,FEED_IN_CHAMPIONSHIP:eJ,COMPASS:tJ,WINNER:nJ,LOSER:rJ,ROUND_ROBIN:iJ,AD_HOC:aJ,LUCKY_DRAW:oJ}=t.drawDefinitionConstants,sJ=`POSITION`;function cJ(e,t){let n=e.nodes.filter(e=>e.stage===Jq),r=e.nodes.filter(e=>e.stage===Yq),i=e.nodes.filter(e=>e.stage===Xq);if(t.structureType===iJ)return e.edges.some(n=>n.sourceNodeId===t.id&&n.linkType===sJ&&e.nodes.some(e=>e.id===n.targetNodeId&&e.stage===Xq))?`ROUND_ROBIN_WITH_PLAYOFF`:iJ;if(t.structureType===aJ)return aJ;if(t.structureType===Qq)return Qq;if(t.structureType===oJ)return oJ;if(n.length===7&&r.length===0&&i.length===0){let n=e.edges.filter(e=>e.linkType===rJ&&e.sourceNodeId===t.id),r=new Set(n.map(e=>e.sourceRoundNumber));if(r.has(1)&&r.has(2)&&r.has(3))return tJ}if(n.length===1&&r.length===0&&i.length===0){let r=n[0],i=e.edges.filter(e=>e.linkType===rJ&&e.sourceNodeId===t.id&&e.targetNodeId===r.id);if(r.structureType===Qq||i.length>1)return eJ;if(i.length===1&&i[0].sourceRoundNumber===1)return $q}return Zq}function lJ(e){let t=e.nodes.find(e=>e.stage===qq);if(!t)throw Error(`No main structure node found`);let n=e.nodes.filter(e=>e.stage===Yq),r=e.nodes.filter(e=>e.stage===Xq),i=cJ(e,t);i===Zq&&!mJ(t.drawSize)&&(i=Qq);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&&fJ(a,n,e.edges);let o=[];return uJ(e,t,i,o),dJ(e,t,r,a),{drawOptions:a,postGenerationMethods:o}}function uJ(e,t,n,r){let i=e.nodes.filter(e=>e.stage===Jq),a=e.edges.filter(e=>e.linkType===rJ&&e.sourceNodeId===t.id&&i.some(t=>t.id===e.targetNodeId)),o=[$q,eJ,tJ];if(a.length===0||o.includes(n))return;let s=new Map;for(let e of a)s.has(e.targetNodeId)||s.set(e.targetNodeId,[]),s.get(e.targetNodeId).push(e);for(let[e,t]of s){let n=i.find(t=>t.id===e);if(!n)continue;let a=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,links:a}})}}function dJ(e,t,n,r){let i=t.structureType===iJ,a=i?e.edges.filter(e=>e.sourceNodeId===t.id&&e.linkType===sJ&&n.some(t=>t.id===e.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||Zq,s={finishingPositions:a,structureName:e.structureName,drawType:o};o===iJ&&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=pJ(t.id,n,e.edges);i&&(r.withPlayoffs=i)}}function fJ(e,t,n){let r=n.filter(e=>e.linkType===nJ&&t.some(t=>t.id===e.sourceNodeId)),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:0}});return{roundTarget:Number(e),structureProfiles:n}}),e.qualifiersCount=a,e.qualifyingPlaceholder=!0}function pJ(e,t,n){let r=n.filter(n=>n.sourceNodeId===e&&n.linkType===rJ&&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=pJ(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 mJ(e){return e>0&&!(e&e-1)}var{MAIN:hJ}=t.drawDefinitionConstants,gJ=()=>`spl-layout`,_J=()=>`spl-left`,vJ=()=>`spl-toggle`,yJ=()=>`spl-center`,bJ=()=>`spl-center-header`,xJ=()=>`spl-center-title`,SJ=()=>`spl-center-actions`,CJ=()=>`spl-center-leading`,wJ=()=>`spl-grid-slot`,TJ=()=>`spl-right`,EJ=()=>`spl-matchup-card`,DJ=()=>`spl-card-title`,OJ=()=>`spl-card-sides`,kJ=()=>`spl-card-meta`,AJ=()=>`spl-card-chips`,jJ=()=>`spl-card-chip`,MJ=()=>`sp-panel`,NJ=()=>`sp-panel-header`,PJ=()=>`sp-panel-title`,FJ=()=>`sp-panel-meta`,IJ=()=>`sp-date-strip`,LJ=()=>`sp-date-chip`,RJ=()=>`sp-badges`,zJ=()=>`sp-catalog`,BJ=()=>`sp-catalog-toolbar`,VJ=()=>`sp-input`,HJ=()=>`sp-select`,UJ=()=>`sp-group`,WJ=()=>`sp-group-header`,GJ=()=>`sp-group-body`,KJ=()=>`sp-group-chevron`,qJ=()=>`sp-issues`,JJ=()=>`sp-issue`,YJ=()=>`sp-issue-code`,XJ=()=>`sp-issue-msg`,ZJ=()=>`sp-inspector`,QJ=()=>`sp-kv`,$J=()=>`sp-kv-key`,eY=()=>`sp-kv-value`,tY=()=>`sp-small`;function nY(e,t,n){let r=!!n?.hideLeft,i=n?.catalogSide===`left`,a=document.createElement(`div`);a.className=gJ();let o=null,s=null;if(r)i?a.classList.add(`spl-catalog-left`):a.classList.add(`spl-no-left`);else{o=document.createElement(`div`),o.className=_J(),s=document.createElement(`button`),s.className=vJ(),s.textContent=`◀`,s.title=`Toggle sidebar`,s.addEventListener(`click`,()=>t.onToggleLeft()),o.appendChild(s);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),o.appendChild(n)}let c=e.courtGridSlot.element,l=document.createElement(`div`);l.className=TJ(),e.matchUpCatalog.element.style.flex=`3`,e.matchUpCatalog.element.style.minHeight=`0`,e.matchUpCatalog.element.style.overflow=`auto`,l.appendChild(e.matchUpCatalog.element),e.inspectorPanel.element.style.flex=`1`,e.inspectorPanel.element.style.minHeight=`120px`,e.inspectorPanel.element.style.overflow=`auto`,l.appendChild(e.inspectorPanel.element),o&&a.appendChild(o),i&&r?(a.appendChild(l),a.appendChild(c)):(a.appendChild(c),a.appendChild(l));function u(t){r||(t.leftCollapsed?(a.classList.add(`spl-left-collapsed`),s&&(s.textContent=`▶`)):(a.classList.remove(`spl-left-collapsed`),s&&(s.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)}return{element:a,update:u}}function rY(e){let t=e.sides;if(t?.length===2){let e=iY(t[0]),n=iY(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 iY(e){return e?`${e.participantName??``}${e.seedNumber?` [${e.seedNumber}]`:``}`:``}function aY(e){let t=[e.eventName,e.drawName??``,e.roundName??``];if(e.sides)for(let n of e.sides)n.participantName&&t.push(n.participantName);return t.join(` `).toLowerCase()}function oY(e={}){let t=document.createElement(`div`);t.className=MJ(),t.dataset.panel=`inspector`;let n=document.createElement(`div`);n.className=NJ();let r=document.createElement(`div`);r.className=PJ(),r.textContent=`Inspector`,n.appendChild(r),t.appendChild(n);let i=document.createElement(`div`);i.className=ZJ(),t.appendChild(i);function a(t){i.innerHTML=``;let n=t.selectedMatchUp;if(!n){let e=document.createElement(`div`);e.className=tY(),e.textContent=`Select a matchUp in the catalog to see details.`,i.appendChild(e);return}if(cY(i,`Event`,n.eventName),cY(i,`Draw`,n.drawName??n.drawId),cY(i,`Round`,n.roundName??`Round ${n.roundNumber}`),cY(i,`Type`,n.matchUpType??`—`),cY(i,`Format`,n.matchUpFormat??`—`),cY(i,`Scheduled`,n.isScheduled?`Yes`:`No`),n.scheduledTime&&cY(i,`Time`,n.scheduledTime),n.scheduledCourtName&&cY(i,`Court`,n.scheduledCourtName),n.sides?.length){let e=document.createElement(`div`);e.className=tY(),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=iY(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)}sY(i,e,n,t)}return{element:t,update:a}}function sY(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 cY(e,t,n){let r=document.createElement(`div`);r.className=QJ();let i=document.createElement(`div`);i.className=$J(),i.textContent=t;let a=document.createElement(`div`);a.className=eY(),a.textContent=n,r.appendChild(i),r.appendChild(a),e.appendChild(r)}var lY=new Set([`COMPLETED`,`RETIRED`,`WALKOVER`,`DEFAULTED`,`DOUBLE_WALKOVER`,`DOUBLE_DEFAULT`,`CANCELLED`,`ABANDONED`,`DEAD_RUBBER`]);function uY(e){return!!e&&lY.has(e)}function dY(e,t,n=`dim`,r,i=!1){let a=t.toLowerCase().trim();return e.filter(e=>n===`hide`&&e.isScheduled||!i&&uY(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||aY(e).includes(a))}function fY(e){let t=new Map;for(let n of e){if(n.isScheduled||uY(n.matchUpStatus))continue;let e=t.get(n.eventId);(e===void 0||n.roundNumber<e)&&t.set(n.eventId,n.roundNumber)}return t}var pY={CONSOLATION:`Consolation`,PLAYOFF:`Playoff`,QUALIFYING:`Qualifying`,ROUND_ROBIN:`Round Robin`,PLAY_OFF:`Playoff`,Q_PLAYOFF:`Qualifying Playoff`,COMPASS:`Compass`,VOLUNTARY_CONSOLATION:`Voluntary Consolation`},mY=`Unscheduled`;function hY(e){if(e.structureName&&e.structureName.trim())return e.structureName.trim();let t=e.stage;return!t||t===`MAIN`?``:pY[t]??t.charAt(0)+t.slice(1).toLowerCase().replace(/_/g,` `)}function gY(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 _Y(e){let t=(e.sides??[]).filter(e=>!!e.participantId).length;return t>2?2:t}function vY(e){let t=0;for(let n of e){let e=_Y(n);if(e>t&&(t=e),t===2)break}return t}function yY(e){return e.map((e,t)=>({item:e,index:t,readiness:_Y(e)})).sort((e,t)=>t.readiness-e.readiness||e.index-t.index).map(e=>e.item)}function bY(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=hY(e);return t?`${e.eventName} \u2014 ${t}`:e.eventName}return t===`time`?e.scheduledTime??mY: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,yY(t)]).sort((e,t)=>{let n=vY(e[1]),r=vY(t[1]);if(n!==r)return r-n;let i=gY(e[1]),a=gY(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})}))}var xY=`spl-related-highlight`;function SY(){for(let e of document.querySelectorAll(`.${xY}`))e.classList.remove(xY)}function CY(e){SY();for(let t of e)for(let e of document.querySelectorAll(`[data-matchup-id="${CSS.escape(t)}"]`))e.classList.add(xY)}function wY(e,t){e.addEventListener(`mouseenter`,()=>{let n=t();n.length&&CY([...n,e.dataset.matchupId??``])}),e.addEventListener(`mouseleave`,SY),e.addEventListener(`dragstart`,SY)}function TY(e,t,n={}){let r=document.createElement(`div`);r.className=EJ(),r.setAttribute(`data-matchup-id`,e.matchUpId);let i=uY(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&&wY(r,()=>n.relatedMatchUpIds(e)),t.onClick&&r.addEventListener(`click`,n=>{n.stopPropagation(),t.onClick(e)});let a=EY(e,n);r.appendChild(a);let o=document.createElement(`div`);o.className=OJ(),o.textContent=rY(e),r.appendChild(o);let s=document.createElement(`div`);s.className=kJ();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=AJ(),e.scheduledTime&&!n.prominentTime&&l.appendChild(kY(e.scheduledTime,`time`)),e.scheduledCourtName&&l.appendChild(kY(e.scheduledCourtName,`court`)),e.matchUpFormat&&l.appendChild(kY(e.matchUpFormat,`type`)),i&&e.matchUpStatus){let t=e.matchUpStatus.replace(/_/g,` `);l.appendChild(kY(t,`status`))}if(e.stage&&e.stage!==`MAIN`){let t=e.stage.replace(/_/g,` `);l.appendChild(kY(t,`stage`))}if(l.children.length&&r.appendChild(l),OY(r,e,n),e.isScheduled){let e=document.createElement(`span`);e.className=`spl-matchup-check`,e.textContent=`✓`,r.appendChild(e)}return r}function EY(e,t){let n=document.createElement(`div`);if(n.className=DJ(),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(DY(e.scheduledTime,t)),n}function DY(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 OY(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 kY(e,t){let n=document.createElement(`div`);return n.className=jJ()+` `+t,n.textContent=e,n}function AY(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 jY(e){let t=document.createElement(`div`);t.className=MJ(),t.dataset.panel=`catalog`;let n=`spl-catalog-drop-over`,r=`is-filtering`,i=new Set,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=NJ();let l=document.createElement(`div`);l.className=`spl-catalog-title-row`;let u=document.createElement(`div`);u.className=PJ(),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=FJ(),c.appendChild(l),c.appendChild(f),t.appendChild(c);let p=document.createElement(`div`);p.className=BJ();let m=document.createElement(`input`);m.type=`text`,m.placeholder=`Search matchUps...`,m.className=VJ(),m.addEventListener(`input`,()=>e.onSearchChange(m.value));let h=kC(m,()=>{m.value=``,e.onSearchChange(``),m.focus()}),g=document.createElement(`select`);g.className=HJ();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),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=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(),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)}}),i.appendChild(o);let c=document.createElement(`button`);c.className=`spl-filter-close-btn`,c.textContent=`×`,c.addEventListener(`click`,e=>{e.stopPropagation(),_()}),i.appendChild(c),n.appendChild(i);let l=[{label:`All Event Types`,key:`eventType`,values:AY(t,e=>e.matchUpType)},{label:`All Events`,key:`eventName`,values:AY(t,e=>e.eventName)},{label:`All Flights`,key:`drawName`,values:AY(t,e=>e.drawName)},{label:`All Genders`,key:`gender`,values:AY(t,e=>e.gender)},{label:`All Rounds`,key:`roundName`,values:AY(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=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}d.addEventListener(`click`,()=>{_(),o=Nm(d,{content:b(),placement:`bottom-start`,interactive:!0,trigger:`manual`,appendTo:()=>t,onClickOutside:()=>_(),theme:``}),o.show()});let x=document.createElement(`div`);x.className=zJ(),t.appendChild(x);function S(t){a=t,s=t.catalogFilters??{},y();let n=fY(t.matchUpCatalog),r=t.showScheduled?t.scheduledBehavior:`hide`,o=dY(t.matchUpCatalog,t.catalogSearchQuery,r,t.catalogFilters,t.showCompleted),c=bY(o,t.catalogGroupBy),l=o.filter(e=>!e.isScheduled).length;f.textContent=`${l} unscheduled`,m.value!==t.catalogSearchQuery&&(m.value=t.catalogSearchQuery,AC(h)),g.value!==t.catalogGroupBy&&(g.value=t.catalogGroupBy),SY(),x.innerHTML=``;for(let[r,o]of c){let s=document.createElement(`div`);s.className=UJ();let c=i.has(r),l=document.createElement(`div`);l.className=WJ();let u=document.createElement(`span`);u.className=KJ(),u.textContent=c?`▶`:`▼`;let d=document.createElement(`span`);d.textContent=`${r} (${o.length})`,l.appendChild(u),l.appendChild(d),l.addEventListener(`click`,()=>{i.has(r)?i.delete(r):i.add(r),a&&S(a)});let f=document.createElement(`div`);f.className=GJ(),c&&(f.style.display=`none`);for(let r of o){let i=n.get(r.eventId),a=TY(r,{onClick:t=>e.onMatchUpSelected?.(t)},{roundOffset:i!==void 0&&!r.isScheduled&&!uY(r.matchUpStatus)?Math.max(0,r.roundNumber-i):void 0,renderExtra:e.renderCardExtra,relatedMatchUpIds:e.relatedMatchUpIds});t.selectedMatchUp?.matchUpId===r.matchUpId&&a.classList.add(`selected`),f.appendChild(a)}s.appendChild(l),s.appendChild(f),x.appendChild(s)}}return{element:t,update:S}}function MY(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 NY=`spl-cell--issue-pulse`;function PY(){let e=document.createElement(`div`);e.className=MJ();let t=document.createElement(`div`);t.className=NJ();let n=document.createElement(`div`);n.className=PJ(),n.textContent=`Issues`;let r=document.createElement(`div`);r.className=FJ(),t.appendChild(n),t.appendChild(r),e.appendChild(t);let i=document.createElement(`div`);i.className=qJ(),e.appendChild(i);function a(e){let t=MY(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=tY(),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=JJ(),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=YJ(),n.textContent=e.severity;let r=document.createElement(`div`);if(r.className=XJ(),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(NY),n.offsetWidth,n.classList.add(NY),n.addEventListener(`animationend`,()=>n.classList.remove(NY),{once:!0}))}return{element:e,update:a}}function FY(e){let t=document.createElement(`div`);t.className=MJ();let n=document.createElement(`div`);n.className=NJ();let r=document.createElement(`div`);r.className=PJ(),r.textContent=`Dates`;let i=document.createElement(`div`);i.className=FJ(),n.appendChild(r),n.appendChild(i),t.appendChild(n);let a=document.createElement(`div`);a.className=IJ(),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=LJ(),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=RJ(),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 IY(e,t,n){let r=document.createElement(`div`);r.className=yJ();let i=document.createElement(`div`);i.className=bJ();let a=n?.titleLeadingActions,o;if(n?.titleSlot?o=n.titleSlot:(o=document.createElement(`div`),o.className=xJ(),o.textContent=`Court Grid`),a){let e=document.createElement(`div`);e.className=CJ();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=SJ();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=wJ(),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}}function LY(e){return(e.find(e=>e.isActive)??e[0])?.date??null}var RY=class{constructor(e){this.listeners=new Set,this.config=e;let t=e.initialCatalogState??{};this.state={matchUpCatalog:e.matchUpCatalog,scheduleDates:e.scheduleDates,issues:e.issues??[],selectedDate:LY(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){if(this.setState({matchUpCatalog:e}),!this.state.selectedMatchUp)return;let t=e.find(e=>e.matchUpId===this.state.selectedMatchUp?.matchUpId);if(!t){this.setState({selectedMatchUp:null});return}t!==this.state.selectedMatchUp&&this.setState({selectedMatchUp:t})}setScheduleDates(e){let t=LY(e),n=LY(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()}emit(){for(let e of this.listeners)e(this.state)}},zY=class{constructor(e){this.container=null,this.store=new RY(e);let t=FY({onDateSelected:e=>this.store.selectDate(e)}),n=PY(),r=IY(e.courtGridElement,{onMatchUpDrop:(e,t)=>{this.store.handleMatchUpDrop(e,t)}},{gridMaxHeight:e.gridMaxHeight,headerActions:e.headerActions,titleLeadingActions:e.titleLeadingActions,titleSlot:e.titleSlot}),i=jY({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=oY({renderExtra:e.renderInspectorExtra});this.layout=nY({dateStrip:t,issuesPanel:n,courtGridSlot:r,matchUpCatalog:i,inspectorPanel:a},{onToggleLeft:()=>this.store.toggleLeftPanel()},{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.container&&this.layout.element.parentNode===this.container&&this.layout.element.remove(),this.container=null}setMatchUpCatalog(e){this.store.setMatchUpCatalog(e)}setScheduleDates(e){this.store.setScheduleDates(e)}setIssues(e){this.store.setIssues(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}},BY=new Set([`IN_PROGRESS`]),VY=new Set([`SUSPENDED`]),HY=new Set([`CANCELLED`,`ABANDONED`,`COMPLETED`,`DEAD_RUBBER`,`DEFAULTED`,`DOUBLE_WALKOVER`,`DOUBLE_DEFAULT`,`RETIRED`,`WALKOVER`]),UY=`in-progress`,WY=`suspended`,GY=`pending`,KY=`completed`;function qY(e,t,n,r){let i=e.matchUpStatus;return i&&n.has(i)?WY:i&&t.has(i)||e.hasScore&&e.winningSide===void 0&&(!i||!r.has(i))?UY:i&&r.has(i)||e.winningSide!==void 0?KY:GY}function JY(e,t){let n=t?.inProgressStatuses??BY,r=t?.suspendedStatuses??VY,i=t?.completedStatuses??HY,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=qY(l,n,r,i);if(u===UY||u===WY)return{courtId:e.courtId,state:u,matchUp:l,rowIndex:t};u===GY&&l.calledAt&&s===-1&&(s=t),u===GY&&!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 YY(e,t){return e.columns.map(e=>JY(e,t))}function XY(e,t){if(t.size===0)return!1;for(let n of e.participantIds)if(t.has(n))return!0;return!1}function ZY(e,t){return t.roundNumber!==void 0&&t.drawId!==void 0&&e.drawId===t.drawId&&e.roundNumber!==void 0&&e.roundNumber<t.roundNumber}function QY(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&&XY(o,n)&&(r=e),e>i&&ZY(o,t)&&(i=e))}return{participantFloor:r,earlierRoundFloor:i}}function $Y(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 eX(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}=QY(e,n),s=JY(i,r),c=s.state!==`free`&&s.rowIndex!==void 0?s.rowIndex:-1;return{courtId:t,rowIndex:$Y(i,Math.max(0,a+1,o+1,c),n.matchUpId)}}function tX(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 nX(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}=QY(r,n),s=Math.max(0,a+1,o+1),c=tX(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 rX=`drop-over`;function iX(e,t,n,r,i){e.addEventListener(`dragover`,t=>{t.preventDefault(),e.classList.add(rX),t.dataTransfer&&(t.dataTransfer.dropEffect=`move`)}),e.addEventListener(`dragleave`,()=>{e.classList.remove(rX)}),e.addEventListener(`drop`,a=>{if(e.classList.remove(rX),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=eX(r(),t.courtId,s,i);n.onMatchUpDrop(o,c,a)})}function aX(e){return e===`in-progress`?`LIVE`:e===`suspended`?`SUSP`:e===`next`?`NEXT`:e===`due`?`DUE`:null}function oX(e,t,n,r,i){let a=document.createElement(`div`);if(a.className=`spl-active-strip-cell state-${e.state}`,i&&(a.classList.add(`has-availability-block`),e.state!==`free`&&e.matchUp&&a.classList.add(`has-block-conflict`)),a.dataset.courtId=e.courtId,e.rowIndex!==void 0&&(a.dataset.rowIndex=String(e.rowIndex)),r.cellHeight&&(a.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)}a.appendChild(e)}if(e.state!==`free`&&e.matchUp){let t=r.renderCell?.(e.matchUp);if(t)a.appendChild(t);else{let t=document.createElement(`div`);t.className=`spl-active-strip-body`,t.textContent=e.matchUp.participantIds.join(` – `)||e.matchUp.matchUpId,a.appendChild(t)}}let o=aX(e.state);if(o){let t=document.createElement(`span`);t.className=`spl-active-strip-state-pill`,t.textContent=o,e.state===`suspended`&&(t.title=`Suspended`),e.state===`due`&&(t.title=`Should have started — not called to court`),a.appendChild(t)}return iX(a,e,t,n,r.statusOptions),a}function sX(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 cX(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(sX(t));let a=r.dueMatchUpIds?{...t.statusOptions,dueMatchUpIds:new Set(r.dueMatchUpIds)}:t.statusOptions,o=YY(r.grid,a);for(let a of o){let o=r.courtBlocks?.[a.courtId];n.appendChild(oX(a,e,i,t,o))}}function o(e){r=e,a()}function s(e){n.hidden=!e.activeStripVisible}return{element:n,setData:o,update:s}}var lX=`spl-cell--conflict-highlight`,uX=`spl-cell--complete`,dX={header:[`time`],body:[`eventRound`,`participants`],footer:[`score`],participantDisplay:{nameFormat:`full`,showSeed:!1,showRanking:!1,showNationality:!1,boldWinner:!0,showPotentials:!0}};function fX(e,t){let n=t??dX;return e.isBlocked?mX(e):e.isReserved?pX(e):e.matchUpId?gX(e,n):hX()}function pX(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 mX(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 hX(){let e=document.createElement(`div`);return e.className=`spl-grid-cell spl-cell--empty`,e}function gX(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),_X(n,e),t.header.length){let r=document.createElement(`div`);r.className=`spl-grid-cell__header`,vX(r,t.header,e,t),n.appendChild(r)}if(t.body.length){let r=document.createElement(`div`);r.className=`spl-grid-cell__body`,vX(r,t.body,e,t),n.appendChild(r)}if(t.footer.length){let r=document.createElement(`div`);r.className=`spl-grid-cell__footer`,vX(r,t.footer,e,t),n.appendChild(r)}return e.issueIds?.length&&(n.addEventListener(`mouseenter`,()=>{n.classList.add(lX);for(let t of e.issueIds)document.querySelectorAll(`[data-matchup-id="${t}"]`).forEach(e=>e.classList.add(lX))}),n.addEventListener(`mouseleave`,()=>{n.classList.remove(lX);for(let t of e.issueIds)document.querySelectorAll(`[data-matchup-id="${t}"]`).forEach(e=>e.classList.remove(lX))})),n}function _X(e,t){let n=t.matchUpStatus?.toUpperCase();n===`COMPLETED`||n===`RETIRED`||n===`DEFAULTED`||n===`WALKOVER`?e.classList.add(uX):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 vX(e,t,n,r){for(let i of t){let t=yX(i,n,r);t&&e.appendChild(t)}}function yX(e,t,n){switch(e){case`time`:return bX(t);case`eventRound`:return xX(t);case`participants`:return SX(t,n.participantDisplay);case`score`:return DX(t);case`matchUpStatus`:return OX(t);case`matchUpFormat`:return kX(t);case`umpire`:return AX(t);default:return null}}function bX(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 xX(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 SX(e,t){let n=t??dX.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(TX());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(wX()):(t>0&&!i[t-1]?.bye&&r.appendChild(TX()),r.appendChild(CX(a,e,n,a.sideNumber??t+1)))}return(a||o)&&i.length===1&&!i[0].bye&&r.appendChild(wX()),r}function CX(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=EX(e.participantName,n.nameFormat)||`TBD`;if(n.showSeed&&e.seedNumber&&(o+=` [${e.seedNumber}]`),n.showRanking&&e.ranking&&(o+=` (#${e.ranking})`),n.showNationality&&e.nationality&&(o+=` ${e.nationality}`),a.textContent=o,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 wX(){let e=document.createElement(`div`);return e.className=`spl-grid-cell__bye`,e.textContent=`BYE`,e}function TX(){let e=document.createElement(`div`);return e.className=`spl-grid-cell__vs`,e.textContent=`vs.`,e}function EX(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 DX(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 OX(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 kX(e){if(!e.matchUpFormat)return null;let t=document.createElement(`div`);return t.className=`spl-grid-cell__format`,t.textContent=e.matchUpFormat,t}function AX(e){if(!e.umpire)return null;let t=document.createElement(`div`);return t.className=`spl-grid-cell__umpire`,t.textContent=e.umpire,t}function jX(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,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 MX({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++}ue({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 NX(e,t){let n=new zY(e);return n.render(t),n}var PX=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}}:{}})}},FX=()=>`ce-layout`,IX=()=>`ce-left`,LX=()=>`ce-right`,RX=()=>`ce-name-row`,zX=()=>`ce-name-label`,BX=()=>`ce-name-input`,VX=()=>`ce-section`,HX=()=>`ce-section-header`,UX=()=>`ce-section-chevron`,WX=()=>`ce-section-body`,GX=()=>`ce-field`,KX=()=>`ce-field-label`,qX=()=>`ce-field-control`,JX=()=>`ce-select`,YX=()=>`ce-text-input`,XX=()=>`ce-color-input`,ZX=()=>`ce-toggle`,QX=()=>`ce-toggle-track`,$X=()=>`ce-preview`,eZ=()=>`ce-preview-header`,tZ=()=>`ce-preview-body`,nZ=()=>`ce-preview-matchup`,rZ=()=>`ce-subgroup`,iZ=()=>`ce-subgroup-title`;function aZ(e,t){let n=document.createElement(`div`);n.className=VX();let r=document.createElement(`div`);r.className=HX();let i=document.createElement(`span`);i.className=UX();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=WX();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 oZ(e,t,n,r=!1){let i=document.createElement(`div`);i.className=GX();let a=document.createElement(`span`);a.className=KX(),a.textContent=e,i.appendChild(a);let o=document.createElement(`label`);o.className=ZX();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=QX(),o.appendChild(s),o.appendChild(c);let l=document.createElement(`div`);return l.className=qX(),l.appendChild(o),i.appendChild(l),{element:i,setChecked:e=>{s.checked=e},setDisabled:e=>{s.disabled=e}}}function sZ(e,t,n,r,i=!1){let a=document.createElement(`div`);a.className=GX();let o=document.createElement(`span`);o.className=KX(),o.textContent=e,a.appendChild(o);let s=document.createElement(`select`);s.className=JX(),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=qX(),c.appendChild(s),a.appendChild(c),{element:a,setValue:e=>{s.value=e}}}function cZ(e,t,n,r=``,i=!1){let a=document.createElement(`div`);a.className=GX();let o=document.createElement(`span`);o.className=KX(),o.textContent=e,a.appendChild(o);let s=document.createElement(`input`);s.type=`text`,s.className=YX(),s.value=t,s.placeholder=r,s.disabled=i,s.addEventListener(`input`,()=>n(s.value));let c=document.createElement(`div`);return c.className=qX(),c.appendChild(s),a.appendChild(c),{element:a,setValue:e=>{s.value=e}}}function lZ(e,t,n,r=!1){let i=document.createElement(`div`);i.className=GX();let a=document.createElement(`span`);a.className=KX(),a.textContent=e,i.appendChild(a);let o=document.createElement(`input`);o.type=`color`,o.className=XX(),o.value=t||`#000000`,o.disabled=r,o.addEventListener(`input`,()=>n(o.value));let s=document.createElement(`div`);return s.className=qX(),s.appendChild(o),i.appendChild(s),{element:i,setValue:e=>{o.value=e||`#000000`}}}var uZ=[],dZ=new Set;for(let[,e]of Object.entries(gi))if(!dZ.has(e.theme)){dZ.add(e.theme);let t=e.theme.replace(`chc-theme-`,``).replace(/-/g,` `).replace(/\b\w/g,e=>e.toUpperCase());uZ.push({value:e.theme,label:t})}function fZ(e){let t=document.createElement(`div`),n=sZ(`Load preset`,[{value:``,label:`— Load preset —`},...Object.keys(gi).map(e=>({value:e,label:e}))],``,t=>{if(!t)return;let r=gi[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=sZ(`Color theme`,uZ,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 pZ=[{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`}],mZ=/^#[0-9a-f]{6}$/i;function hZ(e,t,n,r){let i=document.createElement(`div`);i.className=GX();let a=document.createElement(`span`);a.className=KX(),a.textContent=e.label,i.appendChild(a);let o=document.createElement(`div`);o.className=qX(),o.style.display=`flex`,o.style.gap=`0.4rem`,o.style.alignItems=`center`;let s=document.createElement(`input`);s.type=`color`,s.className=XX(),s.disabled=r;let c=document.createElement(`input`);c.type=`text`,c.className=YX(),c.placeholder=e.hint||`#rrggbb or color name`,c.disabled=r,c.style.flex=`1`;function l(e){c.value=e||``,e&&mZ.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&&mZ.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 gZ(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=pZ.map(r=>{let i=hZ(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=GX();let o=document.createElement(`span`);o.className=KX(),o.textContent=`Left-edge width`,a.appendChild(o);let s=document.createElement(`div`);s.className=qX();let c=document.createElement(`input`);c.type=`text`,c.className=YX(),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 _Z(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=oZ(`Nationality flags`,!!r.flags,t=>e.setConfigField(`flags`,t),n),a=sZ(`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=sZ(`Seed element`,[{value:``,label:`Default`},{value:`sup`,label:`Superscript`},{value:`span`,label:`Inline`}],r.seedingElement||``,t=>e.setConfigField(`seedingElement`,t||void 0),n),s=oZ(`Draw positions (1st round)`,!!r.drawPositions,t=>e.setConfigField(`drawPositions`,t),n),c=oZ(`Draw positions (all rounds)`,!!r.allDrawPositions,t=>e.setConfigField(`allDrawPositions`,t),n),l=oZ(`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 vZ(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=oZ(`Score box`,!!r.scoreBox,t=>e.setConfigField(`scoreBox`,t),n),a=oZ(`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=rZ();let s=document.createElement(`div`);s.className=iZ(),s.textContent=`Game Score Display`,o.appendChild(s);let c=sZ(`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=oZ(`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 yZ(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=oZ(`Gender color`,!!r.genderColor,t=>e.setConfigField(`genderColor`,t),n),a=oZ(`Winner color`,!!r.winnerColor,t=>e.setConfigField(`winnerColor`,t),n),o=sZ(`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=cZ(`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 bZ(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=cZ(`TBD text`,r.placeHolders?.tbd||``,t=>e.setConfigNestedField(`placeHolders`,`tbd`,t||void 0),`TBD`,n),a=cZ(`Bye text`,r.placeHolders?.bye||``,t=>e.setConfigNestedField(`placeHolders`,`bye`,t||void 0),`Bye`,n),o=cZ(`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 xZ=[{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 SZ(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration.scaleAttributes||{},i=sZ(`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=sZ(`Scale name`,[{value:``,label:`None`},...xZ.map(e=>({value:e.scaleName,label:e.label}))],r.scaleName||``,t=>{e.setConfigNestedField(`scaleAttributes`,`scaleName`,t||void 0);let n=xZ.find(e=>e.scaleName===t);e.setConfigNestedField(`scaleAttributes`,`accessor`,n?.accessor||void 0)},n),o=lZ(`Color`,r.scaleColor||`#ff0000`,t=>e.setConfigNestedField(`scaleAttributes`,`scaleColor`,t),n),s=sZ(`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=oZ(`Fallback`,!!r.fallback,t=>e.setConfigNestedField(`scaleAttributes`,`fallback`,t),n),l=oZ(`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 CZ(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=oZ(`Schedule info`,!!r.scheduleInfo,t=>e.setConfigField(`scheduleInfo`,t),n),a=oZ(`Round header`,!!r.roundHeader,t=>e.setConfigField(`roundHeader`,t),n),o=oZ(`MatchUp footer`,!!r.matchUpFooter,t=>e.setConfigField(`matchUpFooter`,t),n),s=oZ(`Center info`,!!r.centerInfo,t=>e.setConfigField(`centerInfo`,t),n),c=oZ(`Set number`,!!r.resultsInfo,t=>e.setConfigField(`resultsInfo`,t),n),l=oZ(`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:wZ,SINGLES:TZ}=t.eventConstants,{AD_HOC:EZ}=t.drawDefinitionConstants,{INDIVIDUAL:DZ}=t.participantConstants;function OZ({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===wZ?wZ:TZ,completionGoal:f,qualifyingProfiles:r,participantsCount:i,seedsCount:8,matchUpFormat:e,drawSize:o,drawType:l,outcomes:c};l===EZ&&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:[DZ]}});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||TZ}})})}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 kZ=null;function AZ(){if(!kZ){let{matchUps:e}=OZ({drawSize:8,eventType:`SINGLES`,randomWinningSide:!0,matchUpFormat:`SET3-S:6/TB7`,withAllRatings:xZ.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}]};kZ=[...t,i,a,o,s]}return kZ}var jZ=null;function MZ(){if(!jZ){let{matchUps:e}=OZ({drawSize:4,eventType:`SINGLES`,matchUpFormat:`SET3-S:6/TB7`,completionGoal:50,randomWinningSide:!0});jZ=e}return jZ}function NZ(){let e=document.createElement(`div`);e.className=$X();let t=document.createElement(`div`);t.className=eZ(),t.textContent=`Preview`,e.appendChild(t);let n=document.createElement(`div`);n.className=tZ(),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=``,Sr(n),xr(n,e.colors);let s={theme:e.theme,configuration:{...e.configuration,matchUpFooter:!0},colors:e.colors?{...e.colors}:void 0},c=yr({roundNumber:1,roundProfile:{1:{roundName:`Round 1`}}});n.appendChild(c);let l=AZ();for(let e of l){let t=document.createElement(`div`);t.className=nZ();let r=ni({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=ii({matchUps:MZ(),composition:s});n.appendChild(d)}return{element:e,update:o}}var PZ=[{id:`theme`,label:`Theme & Preset`,factory:fZ},{id:`colors`,label:`Colors`,factory:gZ},{id:`display`,label:`Display`,factory:_Z},{id:`score`,label:`Score`,factory:vZ},{id:`participant`,label:`Participant`,factory:yZ},{id:`placeholder`,label:`Placeholders`,factory:bZ},{id:`scale`,label:`Scale Attributes`,factory:SZ},{id:`layout`,label:`Layout & Info`,factory:CZ}];function FZ(e,t){let n=new PX(t),r=document.createElement(`div`);r.className=FX();let i=document.createElement(`div`);i.className=IX();let a=document.createElement(`div`);a.className=RX();let o=document.createElement(`span`);o.className=zX(),o.textContent=`Name`;let s=document.createElement(`input`);s.type=`text`,s.className=BX(),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=PZ.map(e=>{let t=aZ(e,n);return i.appendChild(t.element),t}),l=document.createElement(`div`);l.className=LX();let u=NZ();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 IZ=[`grand-slam`,`itf`,`minimal`,`none`],LZ=[`standard`,`seedings`,`officials`,`none`],RZ=[`a4`,`letter`],zZ=[`auto`,`portrait`,`landscape`],BZ={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 VZ(e,t){let n=eQ(BZ,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(HZ(n,r,l)),a.appendChild(UZ(n,r,l)),a.appendChild(WZ(n,r,l)),a.appendChild(GZ(n,r,t.printType,l)),!r&&t.onSave&&a.appendChild(KZ(()=>t.onSave?.(tQ(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?.(tQ(n))}return c(),e.appendChild(i),{destroy:()=>{i.parentNode&&i.parentNode.removeChild(i)},getConfig:()=>tQ(n),setConfig:e=>{Object.assign(n,eQ(BZ,e)),c()}}}function HZ(e,t,n){let{section:r,body:i}=ZZ(`Page`);i.appendChild(qZ(`Size`,RZ,e.page?.pageSize??`a4`,t,t=>{$Z(e,`page`).pageSize=t,n()})),i.appendChild(qZ(`Orientation`,zZ,e.page?.orientation??`auto`,t,t=>{$Z(e,`page`).orientation=t,n()}));let a=Q(`div`,`pce-field pce-field-full`);a.appendChild(QZ(`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(YZ(r,e.page?.margins?.[r]??10,t,t=>{let i=$Z($Z(e,`page`),`margins`);i[r]=t,n()}))}),a.appendChild(o),i.appendChild(a),r}function UZ(e,t,n){let{section:r,body:i}=ZZ(`Header`);return i.appendChild(qZ(`Layout`,IZ,e.header?.layout??`itf`,t,t=>{$Z(e,`header`).layout=t,n()})),i.appendChild(JZ(`Tournament name`,e.header?.tournamentName??``,t,t=>{$Z(e,`header`).tournamentName=t,n()})),i.appendChild(JZ(`Subtitle`,e.header?.subtitle??``,t,t=>{$Z(e,`header`).subtitle=t||void 0,n()})),r}function WZ(e,t,n){let{section:r,body:i}=ZZ(`Footer`);return i.appendChild(qZ(`Layout`,LZ,e.footer?.layout??`standard`,t,t=>{$Z(e,`footer`).layout=t,n()})),i.appendChild(XZ(`Show timestamp`,e.footer?.showTimestamp??!0,t,t=>{$Z(e,`footer`).showTimestamp=t,n()})),i.appendChild(XZ(`Show page numbers`,e.footer?.showPageNumbers??!0,t,t=>{$Z(e,`footer`).showPageNumbers=t,n()})),r}function GZ(e,t,n,r){let{section:i,body:a}=ZZ(`Content — ${n}`);if(n===`draw`){let n=$Z($Z(e,`content`),`draw`);a.appendChild(XZ(`Include seedings`,!!n.includeSeedings,t,e=>{n.includeSeedings=e,r()})),a.appendChild(XZ(`Include scores`,!!n.includeScores,t,e=>{n.includeScores=e,r()})),a.appendChild(XZ(`Show byes`,!!n.showByes,t,e=>{n.showByes=e,r()})),a.appendChild(XZ(`Show draw positions`,!!n.showDrawPositions,t,e=>{n.showDrawPositions=e,r()}))}else if(n===`schedule`){let n=$Z($Z(e,`content`),`schedule`);a.appendChild(qZ(`Cell style`,[`detailed`,`compact`],n.cellStyle??`detailed`,t,e=>{n.cellStyle=e,r()})),a.appendChild(XZ(`Show match numbers`,!!n.showMatchNumbers,t,e=>{n.showMatchNumbers=e,r()})),a.appendChild(JZ(`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 KZ(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 qZ(e,t,n,r,i){let a=Q(`div`,`pce-field`);a.appendChild(QZ(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 JZ(e,t,n,r){let i=Q(`div`,`pce-field`);i.appendChild(QZ(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 YZ(e,t,n,r){let i=Q(`div`,`pce-field`);i.appendChild(QZ(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 XZ(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=QZ(e);return o.style.fontSize=`13px`,o.style.color=`var(--chc-text-primary, #222)`,i.appendChild(o),i}function ZZ(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 QZ(e){let t=Q(`label`,`pce-field-label`);return t.textContent=e,t}function $Z(e,t){return(e[t]===void 0||e[t]===null)&&(e[t]={}),e[t]}function eQ(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 tQ(e){return structuredClone(e)}var nQ=`chc-scorecard-side-score--winner`;function rQ({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=fQ(e,a)||``,c=fQ(e,o)||``,l=r?lQ(e.winningSide):e.winningSide,u=iQ({side1Name:s,side2Name:c,sets:r?uQ(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=cQ({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 iQ({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=oQ(e,`end`),l=oQ(t,`start`),u=sQ(n,1,r,i),d=sQ(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 aQ(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(nQ),o.classList.remove(nQ);let s=r?`side2Score`:`side1Score`,c=r?`side1Score`:`side2Score`;a.textContent=String(i[s]??0),o.textContent=String(i[c]??0);let l=r?lQ(e.winningSide):e.winningSide;l===1&&a.classList.add(nQ),l===2&&o.classList.add(nQ)}function oQ(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 sQ(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(nQ),a.textContent=String(i),a}function cQ({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=ni({matchUp:i?dQ(e):e,isLucky:!0,eventHandlers:r,composition:n});t.classList.add(`chc-scorecard-card`),f.appendChild(t)}return a.appendChild(f),a}function lQ(e){if(e===1)return 2;if(e===2)return 1}function uQ(e){if(e)return e.map(e=>({...e,side1Score:e.side2Score,side2Score:e.side1Score,side1TiebreakScore:e.side2TiebreakScore,side2TiebreakScore:e.side1TiebreakScore}))}function dQ(e){let t=e.sides?.map(e=>({...e,sideNumber:e.sideNumber===1?2:1}));return{...e,sides:t,score:e.score?{...e.score,sets:uQ(e.score.sets)}:e.score,winningSide:lQ(e.winningSide)}}function fQ(e,t){return e.sides?.find(e=>e.sideNumber===t)?.participant?.participantName}function pQ(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 mQ=`chc-iss-score-cell`;function hQ(e){if(!e?.matchUpId)throw Error(`buildInteractiveScoringShell: matchUpId is required`);if(!e?.matchUpFormat)throw Error(`buildInteractiveScoringShell: matchUpFormat is required`);let t=e.initialMatchUp??gQ(e),n=new Set,r=new bs({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(_Q(e),vQ(r,e,t),yQ(r,e,o),bQ(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 gQ(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 _Q(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 vQ(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=mQ,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=mQ,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=mQ,e.textContent=`0`,s.append(e);let t=document.createElement(`div`);t.className=mQ,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 yQ(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 bQ(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 xQ(){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 SQ=class{constructor(e){this.listeners=new Set,this.config=e;let t=$(e.initialPolicy??xQ()),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)}},CQ=()=>`re-section`,wQ=()=>`re-section-header`,TQ=()=>`re-section-chevron`,EQ=()=>`re-section-count`,DQ=()=>`re-section-body`,OQ=()=>`re-field-row`,kQ=()=>`re-field-label`,AQ=()=>`re-field-input re-field-input--text`,jQ=()=>`re-field-input re-field-input--number`,MQ=()=>`re-field-input re-field-input--date`,NQ=()=>`re-field-select`,PQ=()=>`re-checkbox-row`,FQ=()=>`re-points-input`,IQ=()=>`re-profile-card`,LQ=()=>`re-profile-header`,RQ=()=>`re-profile-name-input`,zQ=()=>`re-profile-body`,BQ=()=>`re-profile-actions`,VQ=()=>`re-icon-btn`,HQ=()=>`re-icon-btn re-icon-btn--danger`,UQ=()=>`re-empty`,WQ=()=>`re-editor`,GQ=[`totalPoints`,`bestResult`,`headToHead`,`numberOfWins`,`recentResults`,`drawSize`,`numberOfResults`];function KQ(e){let t=document.createElement(`div`),n=``;function r(t,n,r,i,a,o){let s=document.createElement(`div`);s.className=OQ();let c=document.createElement(`div`);if(c.className=kQ(),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=NQ();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=jQ(),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=HQ(),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=UQ(),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=NQ(),i.style.fontSize=`0.75rem`;let a=new Set(n),o=GQ.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=HQ(),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=OQ();let a=document.createElement(`div`);a.className=kQ(),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=jQ(),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=UQ(),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=PQ();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 qQ(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=AQ(),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=HQ(),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(JQ(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(JQ(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(JQ(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=HQ(),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=OQ();let s=document.createElement(`div`);if(s.className=kQ(),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`?jQ():AQ(),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=UQ(),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=PQ();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 JQ(e,t){let n=document.createElement(`input`);return n.type=`number`,n.className=FQ(),n.value=String(e),n.addEventListener(`change`,()=>{let e=Number.parseFloat(n.value);Number.isNaN(e)||t(e)}),n}function YQ(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=OQ();let r=document.createElement(`div`);r.className=kQ(),r.textContent=`Name`;let i=document.createElement(`input`);i.type=`text`,i.className=AQ(),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=OQ();let o=document.createElement(`div`);o.className=kQ(),o.textContent=`Version`;let s=document.createElement(`input`);s.type=`text`,s.className=AQ(),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=OQ();let l=document.createElement(`div`);l.className=kQ(),l.textContent=`Valid from`;let u=document.createElement(`input`);u.type=`date`,u.className=MQ(),u.addEventListener(`change`,()=>e.setValidDateRange(`startDate`,u.value)),c.appendChild(l),c.appendChild(u),t.appendChild(c);let d=document.createElement(`div`);d.className=OQ();let f=document.createElement(`div`);f.className=kQ(),f.textContent=`Valid until`;let p=document.createElement(`input`);p.type=`date`,p.className=MQ(),p.addEventListener(`change`,()=>e.setValidDateRange(`endDate`,p.value)),d.appendChild(f),d.appendChild(p),t.appendChild(d);let m=document.createElement(`div`);m.className=OQ();let h=document.createElement(`div`);h.className=kQ(),h.textContent=`Doubles attribution`;let g=document.createElement(`select`);g.className=NQ();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=OQ();let v=document.createElement(`div`);v.className=kQ(),v.textContent=`Category resolution`;let y=document.createElement(`select`);y.className=NQ();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=PQ();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=PQ();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 XQ={1:`W`,2:`F`,4:`SF`,8:`QF`,16:`R16`,32:`R32`,64:`R64`,128:`R128`,256:`R256`},ZQ=`level-keyed`;function QQ(e){return XQ[e]??`R${e}`}function $Q(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=e$(t);return n.hasConditionalArray?{type:`conditional`}:n.hasLevelFlightNesting?t$(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 e$(e){let t=new Set,n=new Set,r=!1,i=!1;for(let a of e){let e=n$(a);if(e.type===ZQ){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 t$(e,t){let n={},r=[...t].sort((e,t)=>e-t);for(let t of e){let e=n$(t);if(e.type===ZQ&&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 n$(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:ZQ,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:ZQ,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 r$(e,t={}){if(typeof e==`number`)return e;if(e!=null){if(Array.isArray(e))return i$(e,t);if(typeof e==`object`){if(e.level!==void 0&&t.level!==void 0)return a$(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 i$(e,t){for(let n of e){if(n.drawSizes&&t.drawSize&&n.drawSizes.includes(t.drawSize))return r$(n,t);if(n.drawSize!==void 0&&t.drawSize!==void 0&&(n.threshold?t.drawSize>=n.drawSize:t.drawSize===n.drawSize))return r$({...n,drawSize:void 0,drawSizes:void 0,threshold:void 0},t);if(n.drawSize===void 0&&n.drawSizes===void 0)return r$(n,t)}}function a$(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?r$(n,t):typeof n==`number`?n:void 0}function o$(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 s$(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 c$(e){return e==null?`--`:e.toLocaleString()}var l$=[1,2,4,8,16,32,64,128],u$=`font-size:0.8rem;margin-bottom:0;border-collapse:collapse`,d$=`width:3.5rem;text-align:center`;function f$(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=UQ(),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=$Q(i),o=Object.keys(i).map(Number).sort((e,t)=>e-t);a.type===`flat`?p$(n,o,i,r.readonly,e,t):a.type===`level-columns`?m$(n,o,i,a.levels,r.readonly,e,t):h$(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 p$(e,t,n,r,i,a){let o=document.createElement(`table`);o.style.cssText=u$;let s=document.createElement(`thead`),c=document.createElement(`tr`);g$(c,`Pos`,d$),g$(c,`Points`,`text-align:right`),r||g$(c,``,`width:2rem`),s.appendChild(c),o.appendChild(s);let l=document.createElement(`tbody`);for(let e of t){let t=document.createElement(`tr`);_$(t,e);let o=document.createElement(`td`);o.style.cssText=`text-align:right;padding:2px 4px`,r?(o.style.fontVariantNumeric=`tabular-nums`,o.textContent=c$(typeof n[e]==`number`?n[e]:r$(n[e]))):o.appendChild(y$(typeof n[e]==`number`?n[e]:r$(n[e])??0,t=>i.setFlatPositionPoints(a,e,t))),t.appendChild(o),r||v$(t,()=>i.removePositionRow(a,e)),l.appendChild(t)}o.appendChild(l),e.appendChild(o),r||b$(e,t,i,a)}function m$(e,t,n,r,i,a,o){let s=document.createElement(`table`);s.style.cssText=u$;let c=document.createElement(`thead`),l=document.createElement(`tr`);g$(l,`Pos`,d$);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=HQ(),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||g$(l,``,`width:2rem`),c.appendChild(l),s.appendChild(c);let u=document.createElement(`tbody`);for(let e of t){let t=document.createElement(`tr`);_$(t,e);for(let s of r){let r=document.createElement(`td`);r.style.cssText=`text-align:right;padding:2px 4px`;let c=r$(n[e],{level:s});i?(r.style.fontVariantNumeric=`tabular-nums`,r.textContent=c$(c),c===void 0&&(r.style.color=`var(--sp-muted)`)):r.appendChild(y$(c??0,t=>a.setLevelPositionPoints(o,e,s,t))),t.appendChild(r)}i||v$(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=FQ(),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),x$(n,t,a,o),e.appendChild(n)}}function h$(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=u$;let o=document.createElement(`thead`),s=document.createElement(`tr`);if(g$(s,`Pos`,d$),r.type===`flight-columns`)for(let e of r.flights)g$(s,`F${e}`,`text-align:right;min-width:3.5rem`);else g$(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`);_$(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=r$(i,{flight:e});n.textContent=c$(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=c$(r$(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 g$(e,t,n){let r=document.createElement(`th`);r.textContent=t,r.style.cssText=n+`;padding:2px 4px`,e.appendChild(r)}function _$(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=QQ(t),e.appendChild(n)}function v$(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=HQ(),r.textContent=`×`,r.title=`Remove position`,r.style.cursor=`pointer`,r.addEventListener(`click`,t),n.appendChild(r),e.appendChild(n)}function y$(e,t){let n=document.createElement(`input`);return n.type=`number`,n.className=FQ(),n.value=String(e),n.addEventListener(`change`,()=>{let e=Number.parseFloat(n.value);Number.isNaN(e)||t(e)}),n}function b$(e,t,n,r){let i=document.createElement(`div`);i.style.cssText=`display:flex;gap:8px;margin-top:6px;flex-wrap:wrap`,x$(i,t,n,r),e.appendChild(i)}function x$(e,t,n,r){let i=new Set(t),a=l$.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=QQ(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 S$(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=OQ();let i=document.createElement(`div`);i.className=kQ(),i.textContent=`Per-Win`,i.style.minWidth=`80px`;let a=document.createElement(`input`);a.type=`number`,a.className=FQ(),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=r$(s);o.textContent=`${c$(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 C$(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(QQ).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=FQ(),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=FQ(),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=HQ(),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 w$(e){let t=document.createElement(`div`);t.style.cssText=`display:inline-flex;gap:0.25rem;flex-wrap:wrap;margin-bottom:0`;let n=s$(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 T$=[{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}],E$=[[`maxDrawSize`,`Max draw size`],[`maxLevel`,`Max level`],[`priority`,`Priority`],[`participationOrder`,`Participation order`]];function D$(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 T$){let t=a[e.field]??[];o&&!t.length||i.appendChild(s(e,t,o))}for(let[n,r]of E$){let s=a[n];if(o&&s===void 0)continue;let c=document.createElement(`div`);c.className=OQ();let l=document.createElement(`div`);if(l.className=kQ(),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=jQ(),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=T$.map(e=>n?.[e.field]??[]),i=E$.map(([e])=>n?.[e]),o=JSON.stringify([r,i,e.readonly]);o!==a&&(a=o,c(e))}return{element:n,update:l}}function O$(e,t){let n=document.createElement(`div`);n.className=IQ();let r=document.createElement(`div`);r.className=LQ();let i=document.createElement(`span`);i.className=TQ(),i.style.flexShrink=`0`,r.appendChild(i);let a=document.createElement(`input`);a.type=`text`,a.className=RQ(),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=BQ();let l=document.createElement(`button`);l.className=VQ(),l.textContent=`⎘`,l.title=`Duplicate profile`,l.addEventListener(`click`,n=>{n.stopPropagation(),e.duplicateProfile(t)});let u=document.createElement(`button`);u.className=HQ(),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=zQ();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=f$(e,t);d.appendChild(p.element);let m=S$(e,t);d.appendChild(m.element);let h=C$(e,t);d.appendChild(h.element);let g=D$(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=w$(r);if(y.style.flexGrow=`1`,o.appendChild(y),s.textContent=l?``:o$(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 k$(e,t){let n=document.createElement(`div`);n.className=WQ();let r=YQ(e),i=qQ(e),a=KQ(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=CQ();let c=document.createElement(`div`);c.className=wQ();let l=document.createElement(`span`);l.className=TQ();let u=document.createElement(`span`);u.textContent=t.label;let d=document.createElement(`span`);d.className=EQ(),c.appendChild(l),c.appendChild(u),c.appendChild(d),c.addEventListener(`click`,()=>e.toggleSection(t.id));let f=document.createElement(`div`);f.className=DQ(),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=O$(e,t);c.push(s),r.appendChild(s.element),a++}if(!a){let e=document.createElement(`div`);e.className=UQ(),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 A$=class e{constructor(e){this.container=null,this.store=new SQ(e),this.panel=k$(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 j$(e){return M$[e]??e}var M$={"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 N$(){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 P$(e){return structuredClone(e)}var F$=class{constructor(e){this.listeners=new Set,this.config=e,this.state={draft:P$(e.initialPolicy??N$()),expandedSections:new Set([`modificationFlags`,`dailyLimits`,`defaultTimes`,`averageTimes`,`recoveryTimes`]),dirty:!1}}getState(){return this.state}getData(){return P$(this.state.draft)}setData(e){this.state={...this.state,draft:P$(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=P$(this.state.draft);n.allowModificationWhenMatchUpsScheduled||={courts:!1,venues:!1},n.allowModificationWhenMatchUpsScheduled[e]=t,this.commitDraft(n)}setDailyLimit(e,t){let n=P$(this.state.draft);n.defaultDailyLimits||={},n.defaultDailyLimits[e]=t,this.commitDraft(n)}setDefaultAverageTime(e,t,n){let r=P$(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=P$(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=P$(this.state.draft);e.matchUpAverageTimes||=[],e.matchUpAverageTimes.push({matchUpFormatCodes:[],averageTimes:[{categoryNames:[],minutes:{default:60}}]}),this.commitDraft(e)}removeAverageFormatGroup(e){let t=P$(this.state.draft);t.matchUpAverageTimes&&(t.matchUpAverageTimes.splice(e,1),this.commitDraft(t))}setAverageFormatCodes(e,t){let n=P$(this.state.draft),r=n.matchUpAverageTimes?.[e];r&&(r.matchUpFormatCodes=t,this.commitDraft(n))}setAverageTime(e,t,n,r){let i=P$(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=P$(this.state.draft),n=t.matchUpAverageTimes?.[e];n&&(n.averageTimes.push({categoryTypes:[],minutes:{default:60}}),this.commitDraft(t))}removeAverageCategoryOverride(e,t){let n=P$(this.state.draft),r=n.matchUpAverageTimes?.[e];r&&(r.averageTimes.splice(t,1),this.commitDraft(n))}setAverageOverrideCategories(e,t,n,r){let i=P$(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=P$(this.state.draft);e.matchUpRecoveryTimes||=[],e.matchUpRecoveryTimes.push({matchUpFormatCodes:[],recoveryTimes:[{categoryNames:[],minutes:{default:30}}]}),this.commitDraft(e)}removeRecoveryFormatGroup(e){let t=P$(this.state.draft);t.matchUpRecoveryTimes&&(t.matchUpRecoveryTimes.splice(e,1),this.commitDraft(t))}setRecoveryFormatCodes(e,t){let n=P$(this.state.draft),r=n.matchUpRecoveryTimes?.[e];r&&(r.matchUpFormatCodes=t,this.commitDraft(n))}setRecoveryTime(e,t,n,r){let i=P$(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=P$(this.state.draft),n=t.matchUpRecoveryTimes?.[e];n&&(n.recoveryTimes.push({categoryTypes:[],minutes:{default:30}}),this.commitDraft(t))}removeRecoveryCategoryOverride(e,t){let n=P$(this.state.draft),r=n.matchUpRecoveryTimes?.[e];r&&(r.recoveryTimes.splice(t,1),this.commitDraft(n))}setRecoveryOverrideCategories(e,t,n,r){let i=P$(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?.(P$(e))}emit(){for(let e of this.listeners)e(this.state)}},I$=()=>`se-section`,L$=()=>`se-section-header`,R$=()=>`se-section-chevron`,z$=()=>`se-section-body`,B$=()=>`se-field-row`,V$=()=>`se-field-label`,H$=()=>`se-field-input`,U$=()=>`se-field-unit`,W$=()=>`se-checkbox-row`,G$=()=>`se-format-group`,K$=()=>`se-format-group-header`,q$=()=>`se-format-group-label`,J$=()=>`se-tag-picker`,Y$=()=>`sp-chip`,X$=()=>`sp-chip__remove`,Z$=()=>`se-tag-add-wrap`,Q$=()=>`sp-btn-icon`,$$=()=>`se-override-row`,e1=()=>`se-override-categories`,t1=()=>`se-override-remove`,n1=()=>`sp-btn sp-btn--sm sp-btn--outline se-add-btn`,r1=()=>`sp-btn-icon sp-btn-icon--danger`,i1=()=>`se-editor`;function a1(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=W$();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=W$();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 o1=`is-success`,s1=`is-danger`;function c1(e){if(e===``)return!0;let t=parseInt(e,10);return!isNaN(t)&&t>=0&&String(t)===e.trim()}function l1(e,t){if(t===``){e.classList.remove(o1,s1);return}c1(t)?(e.classList.remove(s1),e.classList.add(o1)):(e.classList.remove(o1),e.classList.add(s1))}function u1(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=B$();let o=document.createElement(`div`);o.className=V$(),o.textContent=i;let s=document.createElement(`input`);s.type=`text`,s.className=H$(),s.placeholder=`0`,s.addEventListener(`input`,()=>{l1(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 d1=`is-success`,f1=`is-danger`;function p1(e){if(e===``)return!0;let t=parseInt(e,10);return!isNaN(t)&&t>=0&&String(t)===e.trim()}function m1(e,t,n){if(t===``&&n){e.classList.remove(d1,f1);return}p1(t)&&(t!==``||n)?(e.classList.remove(f1),e.classList.add(d1)):(e.classList.remove(d1),e.classList.add(f1))}function h1(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=g1(`Default`,`min`,!1),i=g1(`Doubles override`,`min`,!0);t.appendChild(r.row),t.appendChild(i.row),r.input.addEventListener(`input`,()=>{m1(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`,()=>{m1(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=g1(`Default`,`min`,!1),c=g1(`Doubles override`,`min`,!0);t.appendChild(s.row),t.appendChild(c.row),s.input.addEventListener(`input`,()=>{m1(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`,()=>{m1(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 g1(e,t,n){let r=document.createElement(`div`);r.className=B$();let i=document.createElement(`div`);i.className=V$(),i.textContent=e;let a=document.createElement(`input`);a.type=`text`,a.className=H$(),a.placeholder=n?`—`:`0`;let o=document.createElement(`div`);return o.className=U$(),o.textContent=t,r.appendChild(i),r.appendChild(a),r.appendChild(o),{row:r,input:a}}var _1=`is-success`,v1=`is-danger`;function y1(e){if(e===``)return!0;let t=parseInt(e,10);return!isNaN(t)&&t>=0&&String(t)===e.trim()}function b1(e,t,n){if(t===``&&n){e.classList.remove(_1,v1);return}y1(t)&&(t!==``||n)?(e.classList.remove(v1),e.classList.add(_1)):(e.classList.remove(_1),e.classList.add(v1))}function x1(e){let t=document.createElement(`div`);t.className=G$();let n=document.createElement(`div`);n.className=K$();let r=document.createElement(`div`);r.style.flex=`1`;let i=document.createElement(`div`);i.className=q$(),i.textContent=`Formats`,r.appendChild(i);let a=document.createElement(`div`);a.className=J$();for(let t of e.formatCodes){let n=document.createElement(`span`);n.className=Y$(),n.title=`${t} — click to edit`;let r=document.createElement(`span`);r.textContent=j$(t),n.addEventListener(`click`,()=>{Wa({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=X$(),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=Z$();let s=document.createElement(`button`);s.className=Q$(),s.textContent=`+`,s.type=`button`,s.title=`Add format code`,s.addEventListener(`click`,t=>{t.stopPropagation(),Wa({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=r1(),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=$$();let a=document.createElement(`div`);a.className=`${e1()}${r.isDefault?` all`:``}`,a.textContent=r.categoryLabel;let o=document.createElement(`input`);o.type=`text`,o.className=H$(),o.value=String(r.defaultMinutes),o.placeholder=`0`;let s=n;o.addEventListener(`input`,()=>{b1(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=U$(),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=H$(),u.value=r.doublesMinutes===void 0?``:String(r.doublesMinutes),u.placeholder=`—`,u.addEventListener(`input`,()=>{b1(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=t1(),t.textContent=`×`,t.addEventListener(`click`,()=>e.onRemoveOverride(s)),i.appendChild(t)}t.appendChild(i)}let l=document.createElement(`button`);return l.className=n1(),l.textContent=`+ Add Override`,l.type=`button`,l.addEventListener(`click`,()=>e.onAddOverride()),t.appendChild(l),t}function S1(e,t){let n=document.createElement(`div`),r=document.createElement(`div`);n.appendChild(r);let i=document.createElement(`button`);i.className=n1(),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=x1({formatCodes:a.matchUpFormatCodes,overrides:o,availableFormats:t.matchUpFormatCodes??C1(),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 C1(){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 w1(e,t){let n=document.createElement(`div`),r=document.createElement(`div`);n.appendChild(r);let i=document.createElement(`button`);i.className=n1(),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=x1({formatCodes:a.matchUpFormatCodes,overrides:o,availableFormats:t.matchUpFormatCodes??T1(),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 T1(){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 E1(e,t){let n=document.createElement(`div`);n.className=i1();let r=[{id:`modificationFlags`,label:`Modification Flags`,factory:()=>a1(e)},{id:`dailyLimits`,label:`Daily Limits`,factory:()=>u1(e)},{id:`defaultTimes`,label:`Default Times`,factory:()=>h1(e)},{id:`averageTimes`,label:`Match Average Times`,factory:()=>S1(e,t)},{id:`recoveryTimes`,label:`Match Recovery Times`,factory:()=>w1(e,t)}],i=[];for(let t of r){let r=document.createElement(`div`);r.className=I$();let a=document.createElement(`div`);a.className=L$();let o=document.createElement(`span`);o.className=R$();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=z$();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 D1=class e{constructor(e){this.container=null,this.store=new F$(e),this.panel=E1(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 O1(e,t){let n=new D1(e);return n.render(t),n}var k1=ga,A1=(()=>{let e=new Map;for(let t of k1)t.format&&e.set(t.format,t);return e})();function j1(e){if(e)return A1.get(e)}var M1=k1.filter(e=>e.format&&e.name).sort((e,t)=>(e.name??``).localeCompare(t.name??``));function N1(e){return typeof e==`string`?e:e.matchUpFormat}function P1(e){return(typeof e==`string`?``:e.name??``)||(j1(N1(e))?.name??``)}function F1(e){return(typeof e==`string`?``:e.description??``)||(j1(N1(e))?.desc??``)}function I1(e){return typeof e==`string`?{matchUpFormat:e}:{...e}}var L1=`SET3-S:6/TB7`;function R1(){return{defaultMatchUpFormat:L1,matchUpFormats:[],requireParticipantsForScoring:!1,allowChangePropagation:!1,allowDeletionWithScoresPresent:{drawDefinitions:!1,structures:!1},matchUpStatusCodes:{ABANDONED:[],CANCELLED:[],DEFAULTED:[],INCOMPLETE:[],RETIRED:[],WALKOVER:[]}}}function z1(e){return structuredClone(e)}var B1=class{constructor(e){this.listeners=new Set,this.config=e,this.state={draft:z1(e.initialPolicy??R1()),expandedSections:new Set([`defaults`,`allowedFormats`]),expandedStatuses:new Set,advancedOpen:!1,dirty:!1}}isReadonly(){return this.config.readonly===!0}getState(){return this.state}getData(){return z1(this.state.draft)}setData(e){this.state={...this.state,draft:z1(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=z1(this.state.draft);t.defaultMatchUpFormat=e,this.commitDraft(t)}setRequireParticipants(e){if(this.isReadonly())return;let t=z1(this.state.draft);t.requireParticipantsForScoring=e,this.commitDraft(t)}setRequireAllPositions(e){if(this.isReadonly())return;let t=z1(this.state.draft);e==="default"?delete t.requireAllPositionsAssigned:t.requireAllPositionsAssigned=e===`true`,this.commitDraft(t)}setAllowChangePropagation(e){if(this.isReadonly())return;let t=z1(this.state.draft);t.allowChangePropagation=e,this.commitDraft(t)}setAllowDeletionDraws(e){if(this.isReadonly())return;let t=z1(this.state.draft);t.allowDeletionWithScoresPresent??={},t.allowDeletionWithScoresPresent.drawDefinitions=e,this.commitDraft(t)}setAllowDeletionStructures(e){if(this.isReadonly())return;let t=z1(this.state.draft);t.allowDeletionWithScoresPresent??={},t.allowDeletionWithScoresPresent.structures=e,this.commitDraft(t)}addAllowedFormat(e){if(this.isReadonly())return;let t=z1(this.state.draft);t.matchUpFormats??=[];let n={matchUpFormat:``,...e};t.matchUpFormats.push(n),this.commitDraft(t)}removeAllowedFormat(e){if(this.isReadonly())return;let t=z1(this.state.draft);t.matchUpFormats&&(t.matchUpFormats.splice(e,1),this.commitDraft(t))}setAllowedFormatField(e,t,n){if(this.isReadonly())return;let r=z1(this.state.draft);if(!r.matchUpFormats?.[e])return;let i=I1(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&&N1(e)===n):!1}addAllowedFormatCategory(e,t,n){if(this.isReadonly())return;let r=n.trim();if(!r)return;let i=z1(this.state.draft);if(!i.matchUpFormats?.[e])return;let a=I1(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=z1(this.state.draft),i=r.matchUpFormats?.[e];if(!i)return;let a=I1(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=z1(this.state.draft);r.matchUpStatusCodes??={},r.matchUpStatusCodes[e]??=[],!r.matchUpStatusCodes[e].includes(n)&&(r.matchUpStatusCodes[e].push(n),this.commitDraft(r))}removeStatusCode(e,t){if(this.isReadonly())return;let n=z1(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=z1(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=z1(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?.(z1(e))}emit(){for(let e of this.listeners)e(this.state)}},V1=`__custom__`,H1=`standard`,U1=`tiebreak`,W1=`timed`,G1=`sc-format-row`,K1=`sc-format-label`,q1=`sc-format-select`;function J1(){return{bestOf:3,setType:H1,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 Y1(e){let n=J1(),r=t.matchUpFormatCode.parse?.(e);return r?(typeof r.bestOf==`number`&&(n.bestOf=r.bestOf),r.setFormat&&X1(n,r.setFormat),r.finalSetFormat&&Z1(n,r.finalSetFormat),n):n}function X1(e,t){if(t.timed){e.setType=W1,typeof t.minutes==`number`&&(e.minutes=t.minutes),e.timedBasis=t.based===`P`?`P`:`G`;return}if(t.tiebreakSet){e.setType=U1,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=H1,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 Z1(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 Q1(e){let t={bestOf:e.bestOf};if(e.setType===W1)t.setFormat={timed:!0,minutes:e.minutes},e.timedBasis===`P`&&(t.setFormat.based=`P`);else if(e.setType===U1)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 $1(e){try{return t.matchUpFormatCode.stringify?.(e)}catch{return}}function e0(e){return e?!!t.matchUpFormatCode.parse?.(e):!1}function t0(e){let t=e.initialValue||`SET3-S:6/TB7`,n=Y1(t),r=document.createElement(`div`);r.className=`sc-format-picker`;let i=document.createElement(`div`);i.className=G1;let a=document.createElement(`label`);a.textContent=`Preset`,a.className=K1;let o=document.createElement(`select`);o.className=q1;for(let e of M1){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=V1,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=K1;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=Y1(r)),v(),p&&y(),e.onChange(r)}function v(){let e=j1(t);e?.format?(o.value=e.format,c.style.display=`none`):(o.value=V1,c.style.display=``,u.value=t),h.textContent=t;let n=e0(t);g.textContent=n?`✓ valid`:`✗ invalid`,g.dataset.valid=n?`true`:`false`}o.addEventListener(`change`,()=>{let e=o.value;if(e===V1){c.style.display=``,u.value=t,u.focus();return}_(e)}),u.addEventListener(`input`,()=>{_(u.value,{skipBuilderResync:!0})});function y(){f.innerHTML=``,f.appendChild(n0(`Best of`,[1,3,5],n.bestOf,e=>{n.bestOf=e,b()})),f.appendChild(r0(`Set type`,[{value:H1,label:`Standard`},{value:U1,label:`Tiebreak set`},{value:W1,label:`Timed`}],n.setType,e=>{n.setType=e,b()})),n.setType===H1?(f.appendChild(n0(`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(i0(`Tiebreak at set end`,n.hasTiebreak,e=>{n.hasTiebreak=e,b()})),n.hasTiebreak&&f.appendChild(n0(`Tiebreak first to`,[5,7,10,12,15,21],n.tiebreakTo,e=>{n.tiebreakTo=e,b()})),f.appendChild(i0(`No-advantage games`,n.noAd,e=>{n.noAd=e,b()}))):n.setType===U1?(f.appendChild(n0(`First to`,[7,10,11,15,21],n.tbOnlyTo,e=>{n.tbOnlyTo=e,b()})),f.appendChild(r0(`Scoring`,[{value:``,label:`Sideout`},{value:`RALLY`,label:`Rally`}],n.tbOnlyModifier,e=>{n.tbOnlyModifier=e,b()})),f.appendChild(i0(`No-advantage`,n.tbOnlyNoAd,e=>{n.tbOnlyNoAd=e,b()}))):(f.appendChild(n0(`Minutes`,[10,15,20,25,30,45],n.minutes,e=>{n.minutes=e,b()})),f.appendChild(r0(`Basis`,[{value:`G`,label:`Games`},{value:`P`,label:`Points`}],n.timedBasis,e=>{n.timedBasis=e,b()}))),f.appendChild(i0(`Different final-set rules`,n.differentFinal,e=>{n.differentFinal=e,b()})),n.differentFinal&&(f.appendChild(r0(`Final set`,[{value:`standard`,label:`Standard set`},{value:`matchTiebreak`,label:`Match tiebreak`}],n.finalKind,e=>{n.finalKind=e,b()})),n.finalKind===`standard`?(f.appendChild(n0(`Final games to`,[4,6,8],n.finalSetTo,e=>{n.finalSetTo=e,b()})),f.appendChild(n0(`Final tiebreak to`,[7,10,12,15],n.finalTbTo,e=>{n.finalTbTo=e,b()}))):f.appendChild(n0(`Match tiebreak to`,[7,10,15,21],n.finalMatchTbTo,e=>{n.finalMatchTbTo=e,b()})))}function b(){let e=$1(Q1(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=Y1(r),v(),p&&y())},destroy(){r.remove()}}}function n0(e,t,n,r){let i=document.createElement(`div`);i.className=G1;let a=document.createElement(`label`);a.textContent=e,a.className=K1;let o=document.createElement(`select`);o.className=q1;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 r0(e,t,n,r){let i=document.createElement(`div`);i.className=G1;let a=document.createElement(`span`);a.textContent=e,a.className=K1;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 i0(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 a0(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=t0({initialValue:e.getData().defaultMatchUpFormat,readonly:e.isReadonly(),onChange:t=>e.setDefaultMatchUpFormat(t)});n.appendChild(a.element),t.appendChild(n);let o=o0({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=o0({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=o0({label:`Draw definitions`,help:``,initial:!!e.getData().allowDeletionWithScoresPresent?.drawDefinitions,readonly:e.isReadonly(),onChange:t=>e.setAllowDeletionDraws(t)}),h=o0({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 o0(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 s0(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 c0(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(l0(``)),r.appendChild(l0(`Name`)),r.appendChild(l0(`Format`)),r.appendChild(l0(`Description`)),r.appendChild(l0(``)),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 M1){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=M1.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=u0(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 l0(e){let t=document.createElement(`div`);return t.className=`sc-format-list-header-label`,t.textContent=e,t}function u0(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=f0(`Display name`,a),u=f0(`SET3-S:6/TB7`,a);u.classList.add(`sc-format-list-format-input`);let d=f0(`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 _=d0({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=d0({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=I1(e),n=P1(e),r=N1(e),i=F1(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 d0(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=s0({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 f0(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 p0=[`ABANDONED`,`CANCELLED`,`DEFAULTED`,`INCOMPLETE`,`RETIRED`,`WALKOVER`];function m0(e){let t=document.createElement(`div`);t.className=`sc-section-body-inner`;let n=p0.map(t=>h0(e,t));for(let r of n)t.appendChild(g0(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=s0({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)}a.textContent=e.advancedOpen?`▾`:`▸`,s.style.display=e.advancedOpen?`block`:`none`,l.setValues(e.draft.processCodes?.incompleteAssignmentsOnDefault??[])}return{element:t,update:u}}function h0(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=s0({values:e.getData().matchUpStatusCodes?.[t]??[],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 g0(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=_0(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 _0(e){return e.charAt(0)+e.slice(1).toLowerCase()}function v0(e){let t=document.createElement(`div`);t.className=`sc-editor`;let n=[{id:`defaults`,label:`Defaults`,factory:()=>a0(e)},{id:`allowedFormats`,label:`Allowed match-up formats`,factory:()=>c0(e)},{id:`statusCodes`,label:`Status code refinements`,factory:()=>m0(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 y0=class e{constructor(e){this.container=null,this.store=new B1(e),this.panel=v0(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()}}}},b0=[{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)`}],x0=[`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 S0(){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 C0(e){return structuredClone(e)}var w0=class{constructor(e){this.listeners=new Set,this.config=e,this.state={draft:C0(e.initialPolicy??S0()),expandedSections:new Set([`profile`,`flags`,`thresholds`,`drawTypeOverrides`]),dirty:!1}}getState(){return this.state}getData(){return C0(this.state.draft)}setData(e){this.state={...this.state,draft:C0(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=C0(this.state.draft);t.policyName=e,this.commitDraft(t)}setPositioning(e){let t=C0(this.state.draft);t.seedingProfile??={},t.seedingProfile.positioning=e,this.commitDraft(t)}setValidSeedPositionsIgnore(e){let t=C0(this.state.draft);t.validSeedPositions={ignore:e},this.commitDraft(t)}setDuplicateSeedNumbers(e){let t=C0(this.state.draft);t.duplicateSeedNumbers=e,this.commitDraft(t)}setDrawSizeProgression(e){let t=C0(this.state.draft);t.drawSizeProgression=e,this.commitDraft(t)}addThreshold(){let e=C0(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=C0(this.state.draft);t.seedsCountThresholds&&(t.seedsCountThresholds.splice(e,1),this.commitDraft(t))}setThresholdField(e,t,n){let r=C0(this.state.draft),i=r.seedsCountThresholds?.[e];i&&(i[t]=n,this.commitDraft(r))}sortThresholds(){let e=C0(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=C0(this.state.draft);n.seedingProfile??={},n.seedingProfile.drawTypes??={},n.seedingProfile.drawTypes[e]={positioning:t},this.commitDraft(n)}removeDrawTypeOverride(e){let t=C0(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=C0(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?.(C0(e))}emit(){for(let e of this.listeners)e(this.state)}},T0=()=>`sd-editor`,E0=()=>`sd-section`,D0=()=>`sd-section-header`,O0=()=>`sd-section-chevron`,k0=()=>`sd-section-body`,A0=()=>`sd-field-row`,j0=()=>`sd-field-label`,M0=()=>`sd-field-input`,N0=()=>`sd-checkbox-row`,P0=()=>`sd-checkbox-desc`,F0=()=>`sd-radio-group`,I0=()=>`sd-radio-option`,L0=()=>`sp-btn sp-btn--sm sp-btn--outline sd-add-btn`,R0=()=>`sp-btn sp-btn--sm sp-btn--ghost sd-sort-btn`,z0=()=>`sp-btn-icon sp-btn-icon--danger sd-remove-btn`,B0=()=>`sd-table-wrap`,V0=()=>`sd-table`,H0=()=>`sd-number-cell-input`,U0=()=>`sd-empty`,W0=()=>`sd-actions-row`,G0=()=>`sd-override-row`,K0=()=>`sd-override-add-row`,q0=()=>`sd-override-drawtype`,J0=()=>`sd-select`;function Y0(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=A0();let r=document.createElement(`div`);r.className=j0(),r.textContent=`Policy name`;let i=document.createElement(`input`);i.type=`text`,i.className=M0()+` 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=A0()+` sd-field-row--top`;let o=document.createElement(`div`);o.className=j0(),o.textContent=`Default positioning`,a.appendChild(o);let s=document.createElement(`div`);s.className=F0();let c=[];for(let t of b0){let n=document.createElement(`label`);n.className=I0();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=e.draft.seedingProfile?.positioning;for(let e of c)e.input.checked=e.value===t}return{element:t,update:l}}function X0(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=N0();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=P0(),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 Z0=[{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 Q0(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=B0();let r=document.createElement(`table`);r.className=V0();let i=document.createElement(`thead`),a=document.createElement(`tr`);for(let e of Z0){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=U0(),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=W0();let u=document.createElement(`button`);u.type=`button`,u.className=L0(),u.textContent=`+ Add threshold`,u.addEventListener(`click`,()=>e.addThreshold());let d=document.createElement(`button`);d.type=`button`,d.className=R0(),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 Z0){let a=document.createElement(`td`),o=document.createElement(`input`);o.type=`number`,o.min=String(n.min),o.className=H0(),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=z0(),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 $0(e,t){let n=document.createElement(`select`);n.className=J0();for(let e of b0){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 e2(e,t){let n=document.createElement(`div`),r=t.drawTypes??x0,i=document.createElement(`div`);n.appendChild(i);let a=document.createElement(`div`);a.className=U0(),a.textContent=`No draw-type overrides. The default positioning is used for every drawType.`,n.appendChild(a);let o=document.createElement(`div`);o.className=K0();let s=document.createElement(`select`);s.className=J0();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=$0(`WATERFALL`,()=>{}),u=document.createElement(`button`);u.type=`button`,u.className=L0(),u.textContent=`+ Add override`,u.addEventListener(`click`,()=>{let t=s.value;t&&e.addDrawTypeOverride(t,l.value)});let d=document.createElement(`div`);d.className=W0(),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=G0();let a=document.createElement(`div`);a.className=q0(),a.textContent=t;let o=$0(n,n=>e.setDrawTypeOverridePositioning(t,n)),s=document.createElement(`button`);s.type=`button`,s.className=z0(),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 t2(e,t){let n=document.createElement(`div`);n.className=T0();let r=[{id:`profile`,label:`Profile`,factory:()=>Y0(e)},{id:`flags`,label:`Flags`,factory:()=>X0(e)},{id:`thresholds`,label:`Seed Count Thresholds`,factory:()=>Q0(e)},{id:`drawTypeOverrides`,label:`Draw Type Overrides`,factory:()=>e2(e,t)}],i=[];for(let t of r){let r=document.createElement(`div`);r.className=E0();let a=document.createElement(`div`);a.className=D0();let o=document.createElement(`span`);o.className=O0();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=k0();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 n2=class e{constructor(e){this.container=null,this.store=new w0(e),this.panel=t2(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()}}}},r2=t.factoryConstants.policyConstants.POLICY_TYPE_PARTICIPANT;function i2(e){return structuredClone(e)}function a2(){return i2(t.fixtures.policies.POLICY_PRIVACY_DEFAULT[r2])}function o2(e){return e?.participant??{}}function s2(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 c2(){let e=o2(a2()),t=Object.keys(e).filter(t=>typeof e[t]==`boolean`).map(e=>({field:e,group:`participant`,label:s2(e)})),n=Object.keys(e.person??{}).filter(t=>typeof e.person[t]==`boolean`).map(e=>({field:e,group:`person`,label:s2(e)}));return[...t,...n]}function l2(e,t,n){let r=o2(e);return t===`person`?!!r.person?.[n]:!!r[n]}function u2(e,t,n,r){let i=o2(e),a=(e,t)=>{e&&n in e&&(e[n]=r),t&&n in t&&(t[n]=r)};t===`person`?a(i.person,i.individualParticipants?.person):a(i,i.individualParticipants)}function d2(e){return e?.policyName??``}function f2(e,t){e&&(e.policyName=t)}function p2(e){return structuredClone(e)}var m2=class{constructor(e){this.listeners=new Set,this.config=e,this.state={draft:p2(e.initialPolicy??a2()),dirty:!1}}getState(){return this.state}getData(){return p2(this.state.draft)}setData(e){this.state={...this.state,draft:p2(e),dirty:!1},this.emit()}setPolicyName(e){let t=p2(this.state.draft);f2(t,e),this.commitDraft(t)}setField(e,t,n){let r=p2(this.state.draft);u2(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?.(p2(e))}emit(){for(let e of this.listeners)e(this.state)}};function h2(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=c2(),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=d2(e.draft);for(let t of s){let n=c.get(`${t.group}.${t.field}`);n&&(n.checked=l2(e.draft,t.group,t.field))}}}}var g2=class e{constructor(e){this.container=null,this.store=new m2(e),this.panel=h2(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()}}}},_2=()=>`pc-layout`,v2=()=>`pc-panel`,y2=()=>`pc-panel-header`,b2=()=>`pc-panel-title`,x2=()=>`pc-panel-meta`,S2=()=>`pc-toolbar`,C2=()=>`pc-input`,w2=()=>`pc-select`,T2=()=>`pc-catalog`,E2=()=>`pc-group`,D2=()=>`pc-group-header`,O2=()=>`pc-group-chevron`,k2=()=>`pc-group-body`,A2=()=>`pc-card`,j2=()=>`pc-card-title`,M2=()=>`pc-card-meta`,N2=()=>`pc-type-badge`,P2=()=>`pc-editor`,F2=()=>`pc-editor-header`,I2=()=>`pc-editor-header-left`,L2=()=>`pc-editor-actions`,R2=()=>`sp-btn sp-btn--sm`,z2=()=>`sp-btn sp-btn--sm sp-btn--accent`,B2=()=>`pc-dirty-dot`,V2=()=>`pc-editor-body`,H2=()=>`pc-empty`,U2=()=>`pc-json-editor`,W2=()=>`pc-json-error`;function G2(e){let t=document.createElement(`div`);t.className=_2(),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 K2=`scheduling`,q2=`scoring`,J2=`seeding`,Y2=`draws`,X2=`avoidance`,Z2=`feedIn`,Q2=`progression`,$2=`roundNaming`,e4=`positionActions`,t4=`matchUpActions`,n4=`roundRobinTally`,r4=`rankingPoints`,i4=`competitiveBands`,a4=`voluntaryConsolation`,o4=`participant`,s4=`display`,c4=`audit`,l4=`Tournament Operations`,u4=`Scoring & Results`,d4=`Ranking Points`,f4=`Draw Configuration`,p4=`Participants`,m4=`Display & Audit`,h4=(e,t,n,r,i)=>({policyType:e,label:t,description:n,group:r,hasEditor:i}),g4=[h4(K2,`Scheduling`,`Match scheduling, average times, recovery times, daily limits`,l4,!0),h4(e4,`Position Actions`,`Allowed position actions (alternates, walkovers, withdrawals)`,l4,!1),h4(t4,`MatchUp Actions`,`Allowed matchUp status transitions and actions`,l4,!1),h4(X2,`Avoidance`,`Draw placement avoidance rules (club, nationality, region)`,l4,!1),h4(q2,`Scoring`,`Score entry validation and completion rules`,u4,!0),h4(n4,`Round Robin Tally`,`Round-robin group standing calculation method`,u4,!1),h4(r4,`Ranking Points`,`Point allocation by draw size, round, and result`,d4,!0),h4(i4,`Competitive Bands`,`Rating/ranking band definitions for competitive grouping`,u4,!1),h4(Y2,`Draws`,`Draw generation rules and structure options`,f4,!1),h4(J2,`Seeding`,`Seeding thresholds and placement rules by draw size`,f4,!0),h4(Z2,`Feed-In`,`Feed-in consolation structure rules`,f4,!1),h4(Q2,`Progression`,`Player progression between draw structures`,f4,!1),h4(a4,`Voluntary Consolation`,`Voluntary consolation entry rules`,f4,!1),h4($2,`Round Naming`,`Custom round name labels (QF, SF, F, etc.)`,f4,!1),h4(o4,`Participant Privacy`,`Which participant details are published publicly`,p4,!0),h4(s4,`Display`,`Client display configuration (public vs admin views)`,m4,!1),h4(c4,`Audit`,`Audit trail and change logging configuration`,m4,!1)];function _4(e){return g4.find(t=>t.policyType===e)}function v4(e){return e===`rankingPoints`?xQ():e===`scheduling`?N$():e===`scoring`?R1():e===`seeding`?S0():e===`participant`?a2():{}}var y4=[l4,u4,d4,f4,p4,m4];function b4(e,t){let n=t.toLowerCase().trim();return n?e.filter(e=>{let t=_4(e.policyType);return[e.name,e.description,e.policyType,t?.label??``,e.source].join(` `).toLowerCase().includes(n)}):e}function x4(e,t){let n=new Map;if(t===`type`){for(let e of y4)n.set(e,[]);for(let t of e){let e=_4(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 S4(e){let t=document.createElement(`div`);t.className=v2(),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=y2();let a=document.createElement(`div`);a.className=b2(),a.textContent=`Policy Catalog`;let o=document.createElement(`div`);o.className=x2(),i.appendChild(a),i.appendChild(o),t.appendChild(i);let s=document.createElement(`div`);s.className=S2();let c=document.createElement(`input`);c.type=`text`,c.placeholder=`Search policies...`,c.className=C2(),c.addEventListener(`input`,()=>e.onSearchChange(c.value));let l=document.createElement(`select`);l.className=w2();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=g4.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=T2(),t.appendChild(m);function h(t){r=t;let i=b4(t.catalog,t.searchQuery),a=x4(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=E2();let s=n.has(i),c=document.createElement(`div`);c.className=D2();let l=document.createElement(`span`);l.className=O2(),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=k2(),s&&(d.style.display=`none`);for(let n of o){let r=document.createElement(`div`);r.className=A2(),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=j2(),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=M2();let s=_4(n.policyType),c=document.createElement(`span`);c.className=N2(),c.textContent=s?.label??n.policyType;let l=document.createElement(`span`);l.className=`${N2()} ${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 C4(e){return structuredClone(e)}var w4=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:C4(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:C4(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:C4(e.policyData),editedName:e.name,dirty:!1})}applyPolicy(){let e=this.getSelectedItem();if(!e)return;let t={...e,policyData:this.state.editorDraft?C4(this.state.editorDraft):C4(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:v4(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:C4(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:C4(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 T4(e){let t=document.createElement(`div`);t.className=v2();let n=document.createElement(`div`);n.className=P2();let r=document.createElement(`div`);r.className=F2();let i=document.createElement(`div`);i.className=I2();let a=document.createElement(`div`);a.className=b2();let o=document.createElement(`input`);o.type=`text`,o.className=`${b2()} 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=N2();let c=document.createElement(`span`);c.className=N2(),c.textContent=`read-only`,c.style.display=`none`;let l=document.createElement(`div`);l.className=B2(),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=L2();let d=document.createElement(`button`);d.className=R2(),d.textContent=`Reset`,d.addEventListener(`click`,()=>e.onReset());let f=document.createElement(`button`);f.className=z2(),f.textContent=`Save`,f.addEventListener(`click`,()=>e.onSave());let p=document.createElement(`button`);p.className=R2(),p.textContent=`Apply`,p.addEventListener(`click`,()=>e.onApply());let m=document.createElement(`button`);m.className=R2(),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=L2();let g=document.createElement(`button`);g.className=z2(),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=V2(),n.appendChild(r),n.appendChild(_);let v=document.createElement(`div`);v.className=H2(),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=_4(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 E4(e){let t=document.createElement(`div`);t.className=U2();let n=document.createElement(`textarea`);n.value=JSON.stringify(e.initialData,null,2);let r=document.createElement(`div`);r.className=W2(),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 D4=class{constructor(e){this.currentEditor=null,this.container=null,this.store=new w4(e);let t=S4({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=T4({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=G2({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`?D1.createEditorInstance(n):e.policyType===`rankingPoints`?A$.createEditorInstance(n):e.policyType===`seeding`?n2.createEditorInstance(n):e.policyType===`scoring`?y0.createEditorInstance(n):e.policyType===`participant`?g2.createEditorInstance(n):E4(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 O4(e,t,n,r){e!==void 0&&e<0&&r.push({severity:`error`,path:t,message:n})}function k4(e,t){if(!e.defaultTimes)return;let n=e.defaultTimes.averageTimes;if(n)for(let e=0;e<n.length;e++)O4(n[e].minutes.default,`defaultTimes.averageTimes[${e}].minutes.default`,`Default average time must be non-negative`,t),O4(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++)O4(r[e].minutes.default,`defaultTimes.recoveryTimes[${e}].minutes.default`,`Default recovery time must be non-negative`,t)}function A4(e,t){if(!e.defaultDailyLimits)return;let n=e.defaultDailyLimits;O4(n.SINGLES,`defaultDailyLimits.SINGLES`,`Singles daily limit must be non-negative`,t),O4(n.DOUBLES,`defaultDailyLimits.DOUBLES`,`Doubles daily limit must be non-negative`,t),O4(n.total,`defaultDailyLimits.total`,`Total daily limit must be non-negative`,t)}function j4(e){let t=[];return k4(e,t),A4(e,t),e.matchUpAverageTimes&&M4(e.matchUpAverageTimes,`matchUpAverageTimes`,`averageTimes`,t),e.matchUpRecoveryTimes&&N4(e.matchUpRecoveryTimes,`matchUpRecoveryTimes`,t),P4(e,t),t}function M4(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++)O4(o[e].minutes.default,`${t}[${i}].${n}[${e}].minutes.default`,`Time must be non-negative`,r),O4(o[e].minutes.DOUBLES,`${t}[${i}].${n}[${e}].minutes.DOUBLES`,`Doubles time must be non-negative`,r)}}function N4(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++)O4(i.recoveryTimes[e].minutes.default,`${t}[${r}].recoveryTimes[${e}].minutes.default`,`Recovery time must be non-negative`,n),O4(i.recoveryTimes[e].minutes.DOUBLES,`${t}[${r}].recoveryTimes[${e}].minutes.DOUBLES`,`Doubles recovery time must be non-negative`,n)}}function P4(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 F4(e,t){let n=new D4(e);return n.render(t),n}e.AvailabilityGrid=KW,e.COMPETITIVENESS_BUCKETS=ub,e.COMPETITIVENESS_COLORS=JN,e.COURT_SVG_RESOURCE_SUB_TYPE=_h,e.CompositionEditorStore=PX,e.DEFAULT_COMPETITIVE_BANDS=KN,e.DEFAULT_COURT_CARD_CONFIG=U_,e.DEFAULT_COURT_LAYOUT_CONFIG=Nv,e.DEFAULT_DRAW_CARD_CONFIG=Ob,e.DEFAULT_EVENT_CARD_CONFIG=bx,e.DEFAULT_SCHEDULE_CELL_CONFIG=dX,e.DEFAULT_TOURNAMENT_CARD_CONFIG=Wh,e.DEFAULT_VENUE_CARD_CONFIG=$g,e.DEFAULT_VENUE_LOCATOR_CONFIG=ty,e.DrawStateManager=EC,e.EVENT_CARD_LIGHT_MODE_THRESHOLD=xx,e.HORIZON_DIRECTION=wL,e.HORIZON_ORDER=bR,e.HORIZON_SOURCE=CL,e.HORIZON_VARIANT=xR,e.INNER_QUANTILES=bL,e.InlineScoringManager=bs,e.MATCH_FORMATS=hC,e.MIN_HORIZON_DOMAIN=TL,e.NEUTRAL_SEGMENT_COLOR=YN,e.POLICY_TYPE_GROUPS=y4,e.POLICY_TYPE_METADATA=g4,e.PRESSURE_UNSUPPORTED=iI,e.PolicyCatalogControl=D4,e.PolicyCatalogStore=w4,e.ProfileStore=cV,e.RELATED_HIGHLIGHT=xY,e.SchedulePageControl=zY,e.SchedulePageStore=RY,e.SchedulingEditorControl=D1,e.SchedulingEditorStore=F$,e.SchedulingProfileControl=xV,e.TopologyBuilderControl=Kq,e.TopologyStore=GG,e.activateScheduleCellTypeAhead=MX,e.aggregateCompetitiveness=pb,e.applyDropCommit=QB,e.applyRelatedHighlight=CY,e.badmintonCourt=hh,e.barButton=XR,e.baseballDiamond=fh,e.basketballCourt=dh,e.blockLevels=cL,e.buildActiveStripPanel=cX,e.buildCardSkeleton=Uh,e.buildCompetitivenessBar=gb,e.buildCompetitivenessDonut=Eb,e.buildCourtCard=lv,e.buildCourtGridSlot=IY,e.buildCourtLayout=Xv,e.buildCourtSkeletonCard=Tv,e.buildDateStrip=yV,e.buildDrawCard=Jb,e.buildDrawOrderGame=HR,e.buildDrawSkeletonCard=px,e.buildEdgeEditor=BK,e.buildEditorShell=T4,e.buildEventCard=Jx,e.buildEventSkeletonCard=fS,e.buildHiveIDLogin=sC,e.buildHorizonRibbonSvg=GL,e.buildHorizonRowSvg=iR,e.buildHorizonRows=PL,e.buildInteractiveScoringShell=hQ,e.buildIssueIndex=XB,e.buildIssuesPanel=PB,e.buildJsonEditor=E4,e.buildLadderChart=DF,e.buildMatchUpCard=TY,e.buildMatchUpCatalog=jY,e.buildNodeEditor=OK,e.buildPathDifficultyBar=$I,e.buildPolicyCatalogLayout=G2,e.buildPolicyCatalogPanel=S4,e.buildPressureChart=rI,e.buildPressureHorizon=OR,e.buildPressureSeries=BI,e.buildPressureSmallMultiples=KI,e.buildPressureTable=rL,e.buildRatingDistributionChart=bF,e.buildRoundCard=mV,e.buildRoundCatalog=kB,e.buildScheduleDateStrip=FY,e.buildScheduleGridCell=fX,e.buildScheduleInspectorPanel=oY,e.buildScheduleIssueIndex=MY,e.buildScheduleIssuesPanel=PY,e.buildSchedulePageLayout=nY,e.buildSchedulingEditorPanel=E1,e.buildSchedulingProfileLayout=fB,e.buildSegmentedBar=Db,e.buildSetScore=Ys,e.buildSkeletonCard=Fg,e.buildStructureCard=MG,e.buildStructureMinimap=Ti,e.buildTeamCard=sb,e.buildToolbar=hq,e.buildTopologyBuilderLayout=gq,e.buildTopologyCanvas=nK,e.buildTournamentCard=gg,e.buildVenueBoard=gV,e.buildVenueCard=b_,e.buildVenueLocator=Py,e.buildVenueSkeletonCard=L_,e.burstChart=DP,e.byPathDifficulty=VI,e.cModal=R,e.calculateComplement=Gs,e.cellCardConfig=$v,e.clearRelatedHighlight=SY,e.competitivenessColor=rP,e.completeMagicLink=cC,e.compositions=gi,e.computeActiveStrip=YY,e.computeActiveStripCell=JY,e.computeBaseRoundByEvent=fY,e.computeReschedulePlacements=nX,e.consumeMagicLink=ZS,e.controlBar=mz,e.courthiveComponentsVersion=mC,e.createAvailabilityGrid=qW,e.createCardPopoverManager=pB,e.createCompositionEditor=FZ,e.createCourtSvg=wh,e.createDrawOrderGame=mL,e.createInlineScoringFooter=pQ,e.createNotesEditor=rh,e.createPolicyCatalog=F4,e.createPrintCompositionEditor=VZ,e.createSchedulePage=NX,e.createSchedulingEditor=O1,e.createSchedulingProfile=SV,e.describeCourt=Ny,e.destroyTipster=sh,e.destroyVenueLocator=Fy,e.drawer=wd,e.dropDownButton=GR,e.emptySchedulingPolicy=N$,e.engineToMatchUp=vs,e.extractCourtSvgSport=Bh,e.extractImageURL=zh,e.filterCatalog=CB,e.filterMatchUpCatalog=dY,e.filterPolicyCatalog=b4,e.findIssuesForLocator=iV,e.formatAddress=Eh,e.formatCodeLabel=j$,e.formatDateRange=Ih,e.formatFeeRange=Kg,e.formatVenueLocation=Dh,e.fromFactoryDrawData=BP,e.fromLegacyDraw=UP,e.generatePreviewMatchUps=cG,e.getActualPressure=zI,e.getAgeCategoryModal=Mo,e.getCategoryModal=Fo,e.getCompetitivenessBand=eP,e.getCompetitivenessFromScoreString=tP,e.getFlightProfileModal=fs,e.getGenerateTeamsModal=Ji,e.getMatchUpFormatModal=Wa,e.getMatchWinner=Ws,e.getMaxAllowedScore=Bs,e.getMockParticipantsModal=Hi,e.getPlannedRoundKeys=TB,e.getPolicyTypeMeta=_4,e.getPortPosition=NG,e.getProjectedPressure=FI,e.getRoundAt=rV,e.getScoringConfig=Cs,e.getSetFormatForIndex=Ls,e.getSetWinner=Hs,e.getVenueRounds=nV,e.groupCatalog=wB,e.groupCourts=Jv,e.groupMatchUpCatalog=bY,e.groupPolicyCatalog=x4,e.hasVenueGeo=jy,e.hockeyRink=ph,e.initDrawer=Td,e.isCompletedStatus=uY,e.isExistingUserConflict=QS,e.isMatchComplete=Us,e.isScorable=ms,e.isSetComplete=Vs,e.isSetTiebreakOnly=Rs,e.isSetTimed=zs,e.mapCourtToCardData=Mv,e.mapDrawDefinitionToCardData=yx,e.mapEventToCardData=kS,e.mapMatchUpToCellData=jX,e.mapTournamentToCardData=Zg,e.mapVenueToCardData=H_,e.mapVenueToLocatorData=$y,e.matchUpLabel=rY,e.matchUpSearchKey=aY,e.maxDisplacementFor=fL,e.maxSeverity=oV,e.mergeCourtCardConfig=W_,e.mergeCourtLayoutConfig=Pv,e.mergeDrawCardConfig=kb,e.mergeEventCardConfig=Sx,e.mergeTournamentCardConfig=Gh,e.mergeVenueCardConfig=e_,e.mergeVenueLocatorConfig=ny,e.moveSlot=gL,e.notesToolbar=zm,e.openCompositionEditorModal=ea,e.openScheduleCellConfigModal=na,e.opponentSpread=SL,e.padelCourt=gh,e.participantLabel=iY,e.pickProgressionStructure=zP,e.pickleballCourt=mh,e.ratingToElo=hI,e.renderButtons=gC,e.renderContainer=oi,e.renderField=vn,e.renderForm=Ai,e.renderInlineMatchUp=gs,e.renderMatchUp=ni,e.renderMenu=ih,e.renderOptions=_n,e.renderParticipant=_r,e.renderParticipantInput=Tn,e.renderRound=ri,e.renderRoundHeader=yr,e.renderSchematicMatchUp=Di,e.renderSchematicRound=Oi,e.renderSchematicStructure=ki,e.renderScorecard=rQ,e.renderStructure=ii,e.renderTeamVsHeader=iQ,e.requestMagicLink=XS,e.resetScoringConfig=Ts,e.reshuffleDrawOrder=yL,e.resolveCourtSport=Sh,e.resolveEventStatus=hS,e.resolveHorizonDomain=OL,e.resolveParticipantRating=vI,e.resolvePublishedComposition=vi,e.resolveTournamentStatus=Bg,e.revealDrawOrder=vL,e.scoreDrawOrder=pL,e.scoringModal=pu,e.selectItem=qR,e.setScoringConfig=ws,e.settingOf=Kv,e.sharedYDomain=WI,e.shouldApplySmartComplement=Ks,e.shouldCreateNextSet=Js,e.shouldShowTiebreak=qs,e.showCourtAvailabilityModal=WW,e.shuffleDeranged=sL,e.shuffleWithSeed=aL,e.sideParticipantName=ps,e.signup=JS,e.sortVenueCourts=My,e.sportFromMatchUpFormat=xh,e.standardTemplates=Iq,e.summarizeCourts=Yv,e.surfaceOf=qv,e.swapSlots=_L,e.syncClearVisibility=AC,e.tennisCourt=uh,e.tipster=ch,e.toggleOverlay=iz,e.topologyToDrawOptions=lJ,e.totalBuckets=mb,e.updateHeadingSelect=Vm,e.updateTieScore=aQ,e.updateToolbarState=Bm,e.validateProfile=RB,e.validateSchedulingPolicy=j4,e.validateTopology=XK,e.validator=mn,Object.defineProperty(e,"validators",{enumerable:!0,get:function(){return TC}}),e.verifyExisting=YS,e.weightedQuantile=xL,e.winProbability=xI,e.wrapSearchWithClear=kC});
322
+ `),disabled:!0})}function TK(e,t,n,r,i,a){let o=t.edges.find(t=>t.targetNodeId===e.id&&t.linkType===_K);if(!o||t.nodes.find(e=>e.id===o.sourceNodeId)?.structureType!==iK)return;let s=e.structureOptions?.playoffDrawType||rK;if(i.push({label:`Playoff Draw Type`,field:`playoffDrawType`,value:s,disabled:n,options:vK.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===iK){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 EK(e,t,n,r,i){let a=xK(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)})})}function DK(e,t,n){let r=ZW(e.drawSize),i=new Map,a=[];for(let n of t.edges){if(n.linkType!==gK||n.targetNodeId!==e.id)continue;let r=n.targetRoundNumber||1;if(r<=1)continue;let o=t.nodes.find(e=>e.id===n.sourceNodeId);if(!o||o.stage!==pK)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 OK(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:_C(1),error:`Name required`}},{label:`Stage`,field:`stage`,value:i.stage,disabled:n,options:bK.map(e=>({...e,selected:e.value===i.stage}))},{label:`Structure Type`,field:`structureType`,value:i.structureType,disabled:n,options:yK.map(e=>({...e,selected:e.value===i.structureType}))},{label:i.stage===fK?`Draw Size`:`Structure Size`,field:`drawSize`,type:`number`,value:String(i.drawSize),...n?{disabled:!0}:i.structureType===uK?{validator:yC(0,256),error:`Must be 0-256`}:{validator:yC(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===uK?0:2))return;let r={drawSize:n};if(i.structureType===iK){let e=i.structureOptions?.groupSize||4,t=SK(n);!t.includes(e)&&t.length>0&&(r.structureOptions={...i.structureOptions,groupSize:t[0]})}e.onUpdateNode(i.id,r)}}];i.structureType===iK&&CK(i,r,n,e,s,c),i.stage===hK&&TK(i,r,n,e,s,c),i.stage===pK&&EK(i,n,e,s,c),Ai(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=()=>{Wa({existingMatchUpFormat:i.matchUpFormat,callback:t=>{e.onUpdateNode(i.id,{matchUpFormat:t||void 0}),d.textContent=t||`Not set`}})},l.appendChild(d),o.appendChild(l),DK(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{WINNER:kK,LOSER:AK,TOP_DOWN:jK,BOTTOM_UP:MK,QUALIFYING:NK,ROUND_ROBIN:PK}=t.drawDefinitionConstants,FK=`POSITION`,IK=`ALTERNATING`,LK=e=>e===PK,RK=[{label:`Winner`,value:kK},{label:`Loser`,value:AK},{label:`Position`,value:FK}],zK=[{label:`Top-Down`,value:jK},{label:`Bottom-Up`,value:MK},{label:`Alternating`,value:IK}];function BK(e){let t=document.createElement(`div`),n=!!e.readOnly;function r(t,r,i,a,o,s){let c=[],l=[],u=r?hG(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=i.edges.filter(e=>e.id!==t.id&&e.sourceNodeId===t.sourceNodeId&&e.linkType===FK),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 f=o.linkType===kK&&s?.stage===NK,p=s?nG(s.structureType,s.drawSize,s.structureOptions):8,m=c?nG(c.structureType,c.drawSize,c.structureOptions):8,h=o.linkType===FK&&s&&LK(s.structureType),g=[{label:`Link Type`,field:`linkType`,value:o.linkType,disabled:n,options:RK.map(e=>({...e,selected:e.value===o.linkType}))}],_=n?[]:[{control:`linkType`,onChange:({e:t})=>e.onUpdateEdge(o.id,{linkType:t.target.value})}];if(!h){let e=r(o,s,c,p,m,f);g.push(...e.items),_.push(...e.relationships)}if(f&&s){let t=Math.floor(s.drawSize/2),r=Math.floor(s.drawSize/4),i=o.qualifyingPositions||r;g.push({label:`Qualifying Positions`,field:`qualifyingPositions`,type:`number`,value:String(i),disabled:n}),n||_.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(o.linkType===AK&&(g.push({label:`Feed Profile`,field:`feedProfile`,value:o.feedProfile||jK,disabled:n,options:zK.map(e=>({...e,selected:e.value===(o.feedProfile||jK)}))}),n||_.push({control:`feedProfile`,onChange:({e:t})=>e.onUpdateEdge(o.id,{feedProfile:t.target.value})})),o.linkType===FK&&!h&&(g.push({label:`Finishing Positions`,field:`finishingPositions`,value:(o.finishingPositions||[]).join(`, `),placeholder:`e.g., 1, 2`,disabled:n}),n||_.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})}})),Ai(u,g,_),h&&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:VK,QUALIFYING:HK,CONSOLATION:UK,WINNER:WK,LOSER:GK,SINGLE_ELIMINATION:KK,ROUND_ROBIN:qK,AD_HOC:JK}=t.drawDefinitionConstants,YK=`POSITION`;function XK(e){let t=[],n=ZK(e,t);return $K(e,QK(e),t),eq(e,t),tq(e,t),nq(e,t),rq(e,n,t),iq(e,t),aq(e,t),sq(e,t),cq(e,t),lq(e)&&t.push({severity:`error`,message:`Circular dependency detected between structures`}),t}function ZK(e,t){let n=e.nodes.filter(e=>e.stage===VK);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 QK(e){let t=new Set;for(let n of e.edges)n.linkType===WK&&(n.targetRoundNumber||1)>1&&e.nodes.find(e=>e.id===n.sourceNodeId)?.stage===HK&&t.add(n.targetNodeId);let n=new Map;for(let t of e.edges)t.linkType===GK&&n.set(t.targetNodeId,(n.get(t.targetNodeId)||0)+1);for(let[e,r]of n)r>1&&t.add(e);return t}function $K(e,t,n){for(let r of e.nodes){if(r.structureType===KK&&!t.has(r.id)){let t=e.edges.some(e=>e.targetNodeId===r.id);(r.stage===VK||r.stage===HK)&&!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===JK?0:2;r.drawSize<i&&n.push({message:`"${r.structureName}" draw size must be at least ${i}`,severity:`error`,nodeId:r.id})}}function eq(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){let e=nG(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=nG(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 tq(e,t){let n=new Map;for(let t of e.edges)t.linkType===WK&&(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 nq(e,t){let n=new Map;for(let t of e.edges)t.sourceRoundNumber&&(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 rq(e,t,n){let r=e.nodes.filter(e=>e.stage===HK);for(let i of r){let r=e.edges.find(e=>e.sourceNodeId===i.id&&e.linkType===WK&&t.some(t=>t.id===e.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 iq(e,t){let n=new Map;for(let t of e.edges){if(t.linkType!==WK)continue;let r=t.targetRoundNumber||1;if(r<=1)continue;let i=e.nodes.find(e=>e.id===t.sourceNodeId);if(!i||i.stage!==HK)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=ZW(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 aq(e,t){for(let n of e.edges){if(n.linkType!==GK)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=rG(r.structureType,r.drawSize,a),c=ZW(i.drawSize);o!==1&&oq(c,o,s,r,i,a,n.id,t)}}function oq(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 sq(e,t){let n=e.nodes.filter(e=>e.stage===UK);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===GK){let e=t.sourceRoundNumber||1;i+=rG(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 cq(e,t){let n=new Map;for(let r of e.edges){if(r.linkType!==YK)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===qK){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 POSITION links`,edgeId:e}):a.set(i,e)}}function lq(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:uq,QUALIFYING:dq,CONSOLATION:fq,PLAY_OFF:pq,LUCKY_DRAW:mq}=t.drawDefinitionConstants;function hq(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=XK(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)">&#10003; 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:uq,onClick:()=>e.onAddStructure(uq),close:!0},{label:`Lucky Draw`,value:mq,onClick:()=>e.onAddStructure(uq,mq),close:!0},{label:`Qualifying`,value:dq,onClick:()=>e.onAddStructure(dq),close:!0},{label:`Consolation`,value:fq,onClick:()=>e.onAddStructure(fq),close:!0},{label:`Playoff`,value:pq,onClick:()=>e.onAddStructure(pq),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()}),mz({target:a,items:l});function u(e){s=e}return{element:r,update:u}}function gq({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:_q,FEED_IN:vq,ROUND_ROBIN:yq,LUCKY_DRAW:bq,MAIN:xq,QUALIFYING:Sq,CONSOLATION:Cq,PLAY_OFF:wq}=t.drawDefinitionConstants,Tq=`WINNER`,Eq=`LOSER`,Dq=`POSITION`,Oq=`tpl-edge-1`,kq=`tpl-edge-2`,Aq=`tpl-edge-3`,jq=`tpl-edge-4`,Mq=`tpl-edge-5`,Nq=`tpl-edge-6`,Pq=`tpl-edge-7`,Fq=`R1 losers → R1`,Iq=[{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:xq,structureType:_q,drawSize:32,position:{x:320,y:40}},{id:`tpl-qual`,structureName:`Qualifying`,stage:Sq,structureType:_q,drawSize:16,qualifyingPositions:4,position:{x:40,y:40}}],edges:[{id:Oq,sourceNodeId:`tpl-qual`,targetNodeId:`tpl-main`,linkType:Tq,targetRoundNumber:1,qualifyingPositions:4,label:`winners → R1 (4Q)`}]}},{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:xq,structureType:_q,drawSize:32,position:{x:40,y:40}},{id:`tpl-cons`,structureName:`Consolation`,stage:Cq,structureType:_q,drawSize:16,position:{x:320,y:40}}],edges:[{id:Oq,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:Eq,sourceRoundNumber:1,targetRoundNumber:1,label:Fq}]}},{name:`Feed-In Championship (FIC)`,description:`Main draw with multi-round fed consolation`,state:{drawName:`FIC`,nodes:[{id:`tpl-main`,structureName:`Main Draw`,stage:xq,structureType:_q,drawSize:32,position:{x:40,y:40}},{id:`tpl-cons`,structureName:`Consolation`,stage:Cq,structureType:vq,drawSize:31,position:{x:460,y:40}}],edges:[{id:Oq,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:Eq,sourceRoundNumber:1,targetRoundNumber:1,label:Fq},{id:kq,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:Eq,sourceRoundNumber:2,targetRoundNumber:2,label:`R2 losers → R2`},{id:Aq,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:Eq,sourceRoundNumber:3,targetRoundNumber:4,label:`R3 losers → R4`},{id:jq,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:Eq,sourceRoundNumber:4,targetRoundNumber:6,label:`R4 losers → R6`},{id:Mq,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:Eq,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:xq,structureType:_q,drawSize:32,position:{x:40,y:40}},{id:`tpl-west`,structureName:`West`,stage:Cq,structureType:_q,drawSize:16,position:{x:400,y:40}},{id:`tpl-north`,structureName:`North`,stage:Cq,structureType:_q,drawSize:8,position:{x:400,y:210}},{id:`tpl-ne`,structureName:`Northeast`,stage:Cq,structureType:_q,drawSize:4,position:{x:400,y:380}},{id:`tpl-south`,structureName:`South`,stage:Cq,structureType:_q,drawSize:8,position:{x:680,y:40}},{id:`tpl-sw`,structureName:`Southwest`,stage:Cq,structureType:_q,drawSize:4,position:{x:680,y:210}},{id:`tpl-nw`,structureName:`Northwest`,stage:Cq,structureType:_q,drawSize:4,position:{x:680,y:380}},{id:`tpl-se`,structureName:`Southeast`,stage:Cq,structureType:_q,drawSize:4,position:{x:960,y:40}}],edges:[{id:Oq,sourceNodeId:`tpl-east`,targetNodeId:`tpl-west`,linkType:Eq,sourceRoundNumber:1,targetRoundNumber:1,label:Fq},{id:kq,sourceNodeId:`tpl-east`,targetNodeId:`tpl-north`,linkType:Eq,sourceRoundNumber:2,targetRoundNumber:1,label:`R2 losers → R1`},{id:Aq,sourceNodeId:`tpl-east`,targetNodeId:`tpl-ne`,linkType:Eq,sourceRoundNumber:3,targetRoundNumber:1,label:`R3 losers → R1`},{id:jq,sourceNodeId:`tpl-west`,targetNodeId:`tpl-south`,linkType:Eq,sourceRoundNumber:1,targetRoundNumber:1,label:Fq},{id:Mq,sourceNodeId:`tpl-west`,targetNodeId:`tpl-sw`,linkType:Eq,sourceRoundNumber:2,targetRoundNumber:1,label:`R2 losers → R1`},{id:Nq,sourceNodeId:`tpl-north`,targetNodeId:`tpl-nw`,linkType:Eq,sourceRoundNumber:1,targetRoundNumber:1,label:Fq},{id:Pq,sourceNodeId:`tpl-south`,targetNodeId:`tpl-se`,linkType:Eq,sourceRoundNumber:1,targetRoundNumber:1,label:Fq}]}},{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:xq,structureType:yq,drawSize:16,structureOptions:{groupSize:4},position:{x:40,y:40}},{id:`tpl-playoff-gold`,structureName:`Gold Flight`,stage:wq,structureType:_q,drawSize:8,position:{x:320,y:40}},{id:`tpl-playoff-silver`,structureName:`Silver Flight`,stage:wq,structureType:_q,drawSize:8,position:{x:320,y:220}}],edges:[{id:Oq,sourceNodeId:`tpl-main`,targetNodeId:`tpl-playoff-gold`,linkType:Dq,finishingPositions:[1,2],label:`positions 1,2`},{id:kq,sourceNodeId:`tpl-main`,targetNodeId:`tpl-playoff-silver`,linkType:Dq,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:xq,structureType:bq,drawSize:11,position:{x:40,y:40}},{id:`tpl-cons`,structureName:`Consolation`,stage:Cq,structureType:_q,drawSize:4,position:{x:340,y:40}}],edges:[{id:Oq,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:Eq,sourceRoundNumber:1,targetRoundNumber:1,label:Fq}]}},{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:xq,structureType:bq,drawSize:25,position:{x:40,y:40}},{id:`tpl-cons-rr`,structureName:`Consolation RR`,stage:Cq,structureType:yq,drawSize:12,structureOptions:{groupSize:4},position:{x:500,y:40}}],edges:[{id:Oq,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons-rr`,linkType:Eq,sourceRoundNumber:1,targetRoundNumber:1,label:Fq}]}},{name:`Adaptive (drawSize 11)`,description:`Compass-like multi-structure topology with lucky draw structures`,state:{drawName:`Adaptive`,nodes:[{id:`tpl-east`,structureName:`East`,stage:xq,structureType:bq,drawSize:11,position:{x:40,y:40}},{id:`tpl-west`,structureName:`West`,stage:Cq,structureType:bq,drawSize:6,position:{x:340,y:40}},{id:`tpl-north`,structureName:`North`,stage:Cq,structureType:_q,drawSize:2,position:{x:340,y:250}},{id:`tpl-south`,structureName:`South`,stage:Cq,structureType:_q,drawSize:2,position:{x:600,y:40}}],edges:[{id:Oq,sourceNodeId:`tpl-east`,targetNodeId:`tpl-west`,linkType:Eq,sourceRoundNumber:1,targetRoundNumber:1,label:`R1 losers → R1 (6 losers)`},{id:kq,sourceNodeId:`tpl-east`,targetNodeId:`tpl-north`,linkType:Eq,sourceRoundNumber:2,targetRoundNumber:1,label:`R2 losers → R1 (2 losers)`},{id:Aq,sourceNodeId:`tpl-west`,targetNodeId:`tpl-south`,linkType:Eq,sourceRoundNumber:1,targetRoundNumber:1,label:`R1 losers → R1 (2 losers)`}]}}],{MAIN:Lq,QUALIFYING:Rq,CONSOLATION:zq,PLAY_OFF:Bq,SINGLE_ELIMINATION:Vq,LUCKY_DRAW:Hq,WINNER:Uq,LOSER:Wq}=t.drawDefinitionConstants,Gq=`POSITION`,Kq=class{constructor(e={}){this.config=e,this.store=new GG(e.initialState);let t=[...Iq,...e.templates||[]],n=!!e.readOnly,r=this.buildToolbarPanel(t,n),i=this.buildCanvasPanel(n),a=OK({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=BK({onUpdateEdge:n?()=>{}:(e,t)=>this.store.updateEdge(e,t),onDeleteEdge:n?()=>{}:e=>this.store.removeEdge(e),readOnly:n});this.layout=gq({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 hq({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 nK({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===Gq){let i=this.store.getState().edges.filter(t=>t.sourceNodeId===e&&t.linkType===Gq),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===Wq){let i=this.store.getState().edges.filter(t=>t.sourceNodeId===e&&t.linkType===Wq),a=new Set(i.map(e=>e.sourceRoundNumber)),o=r?nG(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===Uq&&r?.stage===Rq;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===Hq,r=this.store.getState().nodes.filter(t=>t.stage===e).length,i={[Lq]:n?`Lucky Draw`:`Main Draw`,[Rq]:`Qualifying ${r+1}`,[zq]:`Consolation`,[Bq]:`Playoff ${r+1}`},a={[Lq]:n?11:32,[Rq]:16,[zq]:16,[Bq]:4}[e]||16,o=this.store.addNode({structureName:i[e]||e,stage:e,structureType:t||Vq,drawSize:a,...e===Rq&&{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+AG(e)+40;n>t.scrollLeft+t.clientWidth&&t.scrollTo({left:n-t.clientWidth,behavior:`smooth`})})}handleGenerate(){let e=this.store.getState(),t=XK(e);t.some(e=>e.severity===`error`)&&console.warn(`Topology validation errors:`,t),this.config.onGenerate&&this.config.onGenerate(e)}},{MAIN:qq,CONSOLATION:Jq,QUALIFYING:Yq,PLAY_OFF:Xq,SINGLE_ELIMINATION:Zq,FEED_IN:Qq,FIRST_MATCH_LOSER_CONSOLATION:$q,FEED_IN_CHAMPIONSHIP:eJ,COMPASS:tJ,WINNER:nJ,LOSER:rJ,ROUND_ROBIN:iJ,AD_HOC:aJ,LUCKY_DRAW:oJ}=t.drawDefinitionConstants,sJ=`POSITION`;function cJ(e,t){let n=e.nodes.filter(e=>e.stage===Jq),r=e.nodes.filter(e=>e.stage===Yq),i=e.nodes.filter(e=>e.stage===Xq);if(t.structureType===iJ)return e.edges.some(n=>n.sourceNodeId===t.id&&n.linkType===sJ&&e.nodes.some(e=>e.id===n.targetNodeId&&e.stage===Xq))?`ROUND_ROBIN_WITH_PLAYOFF`:iJ;if(t.structureType===aJ)return aJ;if(t.structureType===Qq)return Qq;if(t.structureType===oJ)return oJ;if(n.length===7&&r.length===0&&i.length===0){let n=e.edges.filter(e=>e.linkType===rJ&&e.sourceNodeId===t.id),r=new Set(n.map(e=>e.sourceRoundNumber));if(r.has(1)&&r.has(2)&&r.has(3))return tJ}if(n.length===1&&r.length===0&&i.length===0){let r=n[0],i=e.edges.filter(e=>e.linkType===rJ&&e.sourceNodeId===t.id&&e.targetNodeId===r.id);if(r.structureType===Qq||i.length>1)return eJ;if(i.length===1&&i[0].sourceRoundNumber===1)return $q}return Zq}function lJ(e){let t=e.nodes.find(e=>e.stage===qq);if(!t)throw Error(`No main structure node found`);let n=e.nodes.filter(e=>e.stage===Yq),r=e.nodes.filter(e=>e.stage===Xq),i=cJ(e,t);i===Zq&&!mJ(t.drawSize)&&(i=Qq);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&&fJ(a,n,e.edges);let o=[];return uJ(e,t,i,o),dJ(e,t,r,a),{drawOptions:a,postGenerationMethods:o}}function uJ(e,t,n,r){let i=e.nodes.filter(e=>e.stage===Jq),a=e.edges.filter(e=>e.linkType===rJ&&e.sourceNodeId===t.id&&i.some(t=>t.id===e.targetNodeId)),o=[$q,eJ,tJ];if(a.length===0||o.includes(n))return;let s=new Map;for(let e of a)s.has(e.targetNodeId)||s.set(e.targetNodeId,[]),s.get(e.targetNodeId).push(e);for(let[e,t]of s){let n=i.find(t=>t.id===e);if(!n)continue;let a=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,links:a}})}}function dJ(e,t,n,r){let i=t.structureType===iJ,a=i?e.edges.filter(e=>e.sourceNodeId===t.id&&e.linkType===sJ&&n.some(t=>t.id===e.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||Zq,s={finishingPositions:a,structureName:e.structureName,drawType:o};o===iJ&&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=pJ(t.id,n,e.edges);i&&(r.withPlayoffs=i)}}function fJ(e,t,n){let r=n.filter(e=>e.linkType===nJ&&t.some(t=>t.id===e.sourceNodeId)),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:0}});return{roundTarget:Number(e),structureProfiles:n}}),e.qualifiersCount=a,e.qualifyingPlaceholder=!0}function pJ(e,t,n){let r=n.filter(n=>n.sourceNodeId===e&&n.linkType===rJ&&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=pJ(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 mJ(e){return e>0&&!(e&e-1)}var{MAIN:hJ}=t.drawDefinitionConstants,gJ=()=>`spl-layout`,_J=()=>`spl-left`,vJ=()=>`spl-toggle`,yJ=()=>`spl-center`,bJ=()=>`spl-center-header`,xJ=()=>`spl-center-title`,SJ=()=>`spl-center-actions`,CJ=()=>`spl-center-leading`,wJ=()=>`spl-grid-slot`,TJ=()=>`spl-right`,EJ=()=>`spl-matchup-card`,DJ=()=>`spl-card-title`,OJ=()=>`spl-card-sides`,kJ=()=>`spl-card-meta`,AJ=()=>`spl-card-chips`,jJ=()=>`spl-card-chip`,MJ=()=>`sp-panel`,NJ=()=>`sp-panel-header`,PJ=()=>`sp-panel-title`,FJ=()=>`sp-panel-meta`,IJ=()=>`sp-date-strip`,LJ=()=>`sp-date-chip`,RJ=()=>`sp-badges`,zJ=()=>`sp-catalog`,BJ=()=>`sp-catalog-toolbar`,VJ=()=>`sp-input`,HJ=()=>`sp-select`,UJ=()=>`sp-group`,WJ=()=>`sp-group-header`,GJ=()=>`sp-group-body`,KJ=()=>`sp-group-chevron`,qJ=()=>`sp-issues`,JJ=()=>`sp-issue`,YJ=()=>`sp-issue-code`,XJ=()=>`sp-issue-msg`,ZJ=()=>`sp-inspector`,QJ=()=>`sp-kv`,$J=()=>`sp-kv-key`,eY=()=>`sp-kv-value`,tY=()=>`sp-small`;function nY(e,t,n){let r=!!n?.hideLeft,i=n?.catalogSide===`left`,a=document.createElement(`div`);a.className=gJ();let o=null,s=null;if(r)i?a.classList.add(`spl-catalog-left`):a.classList.add(`spl-no-left`);else{o=document.createElement(`div`),o.className=_J(),s=document.createElement(`button`),s.className=vJ(),s.textContent=`◀`,s.title=`Toggle sidebar`,s.addEventListener(`click`,()=>t.onToggleLeft()),o.appendChild(s);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),o.appendChild(n)}let c=e.courtGridSlot.element,l=document.createElement(`div`);l.className=TJ(),e.matchUpCatalog.element.style.flex=`3`,e.matchUpCatalog.element.style.minHeight=`0`,e.matchUpCatalog.element.style.overflow=`auto`,l.appendChild(e.matchUpCatalog.element),e.inspectorPanel.element.style.flex=`1`,e.inspectorPanel.element.style.minHeight=`120px`,e.inspectorPanel.element.style.overflow=`auto`,l.appendChild(e.inspectorPanel.element),o&&a.appendChild(o),i&&r?(a.appendChild(l),a.appendChild(c)):(a.appendChild(c),a.appendChild(l));function u(t){r||(t.leftCollapsed?(a.classList.add(`spl-left-collapsed`),s&&(s.textContent=`▶`)):(a.classList.remove(`spl-left-collapsed`),s&&(s.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)}return{element:a,update:u}}function rY(e){let t=e.sides;if(t?.length===2){let e=iY(t[0]),n=iY(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 iY(e){return e?`${e.participantName??``}${e.seedNumber?` [${e.seedNumber}]`:``}`:``}function aY(e){let t=[e.eventName,e.drawName??``,e.roundName??``];if(e.sides)for(let n of e.sides)n.participantName&&t.push(n.participantName);return t.join(` `).toLowerCase()}function oY(e={}){let t=document.createElement(`div`);t.className=MJ(),t.dataset.panel=`inspector`;let n=document.createElement(`div`);n.className=NJ();let r=document.createElement(`div`);r.className=PJ(),r.textContent=`Inspector`,n.appendChild(r),t.appendChild(n);let i=document.createElement(`div`);i.className=ZJ(),t.appendChild(i);function a(t){i.innerHTML=``;let n=t.selectedMatchUp;if(!n){let e=document.createElement(`div`);e.className=tY(),e.textContent=`Select a matchUp in the catalog to see details.`,i.appendChild(e);return}if(cY(i,`Event`,n.eventName),cY(i,`Draw`,n.drawName??n.drawId),cY(i,`Round`,n.roundName??`Round ${n.roundNumber}`),cY(i,`Type`,n.matchUpType??`—`),cY(i,`Format`,n.matchUpFormat??`—`),cY(i,`Scheduled`,n.isScheduled?`Yes`:`No`),n.scheduledTime&&cY(i,`Time`,n.scheduledTime),n.scheduledCourtName&&cY(i,`Court`,n.scheduledCourtName),n.sides?.length){let e=document.createElement(`div`);e.className=tY(),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=iY(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)}sY(i,e,n,t)}return{element:t,update:a}}function sY(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 cY(e,t,n){let r=document.createElement(`div`);r.className=QJ();let i=document.createElement(`div`);i.className=$J(),i.textContent=t;let a=document.createElement(`div`);a.className=eY(),a.textContent=n,r.appendChild(i),r.appendChild(a),e.appendChild(r)}var lY=new Set([`COMPLETED`,`RETIRED`,`WALKOVER`,`DEFAULTED`,`DOUBLE_WALKOVER`,`DOUBLE_DEFAULT`,`CANCELLED`,`ABANDONED`,`DEAD_RUBBER`]);function uY(e){return!!e&&lY.has(e)}function dY(e,t,n=`dim`,r,i=!1){let a=t.toLowerCase().trim();return e.filter(e=>n===`hide`&&e.isScheduled||!i&&uY(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||aY(e).includes(a))}function fY(e){let t=new Map;for(let n of e){if(n.isScheduled||uY(n.matchUpStatus))continue;let e=t.get(n.eventId);(e===void 0||n.roundNumber<e)&&t.set(n.eventId,n.roundNumber)}return t}var pY={CONSOLATION:`Consolation`,PLAYOFF:`Playoff`,QUALIFYING:`Qualifying`,ROUND_ROBIN:`Round Robin`,PLAY_OFF:`Playoff`,Q_PLAYOFF:`Qualifying Playoff`,COMPASS:`Compass`,VOLUNTARY_CONSOLATION:`Voluntary Consolation`},mY=`Unscheduled`;function hY(e){if(e.structureName&&e.structureName.trim())return e.structureName.trim();let t=e.stage;return!t||t===`MAIN`?``:pY[t]??t.charAt(0)+t.slice(1).toLowerCase().replace(/_/g,` `)}function gY(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 _Y(e){let t=(e.sides??[]).filter(e=>!!e.participantId).length;return t>2?2:t}function vY(e){let t=0;for(let n of e){let e=_Y(n);if(e>t&&(t=e),t===2)break}return t}function yY(e){return e.map((e,t)=>({item:e,index:t,readiness:_Y(e)})).sort((e,t)=>t.readiness-e.readiness||e.index-t.index).map(e=>e.item)}function bY(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=hY(e);return t?`${e.eventName} \u2014 ${t}`:e.eventName}return t===`time`?e.scheduledTime??mY: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,yY(t)]).sort((e,t)=>{let n=vY(e[1]),r=vY(t[1]);if(n!==r)return r-n;let i=gY(e[1]),a=gY(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})}))}var xY=`spl-related-highlight`;function SY(){for(let e of document.querySelectorAll(`.${xY}`))e.classList.remove(xY)}function CY(e){SY();for(let t of e)for(let e of document.querySelectorAll(`[data-matchup-id="${CSS.escape(t)}"]`))e.classList.add(xY)}function wY(e,t){e.addEventListener(`mouseenter`,()=>{let n=t();n.length&&CY([...n,e.dataset.matchupId??``])}),e.addEventListener(`mouseleave`,SY),e.addEventListener(`dragstart`,SY)}function TY(e,t,n={}){let r=document.createElement(`div`);r.className=EJ(),r.setAttribute(`data-matchup-id`,e.matchUpId);let i=uY(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&&wY(r,()=>n.relatedMatchUpIds(e)),t.onClick&&r.addEventListener(`click`,n=>{n.stopPropagation(),t.onClick(e)});let a=EY(e,n);r.appendChild(a);let o=document.createElement(`div`);o.className=OJ(),o.textContent=rY(e),r.appendChild(o);let s=document.createElement(`div`);s.className=kJ();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=AJ(),e.scheduledTime&&!n.prominentTime&&l.appendChild(kY(e.scheduledTime,`time`)),e.scheduledCourtName&&l.appendChild(kY(e.scheduledCourtName,`court`)),e.matchUpFormat&&l.appendChild(kY(e.matchUpFormat,`type`)),i&&e.matchUpStatus){let t=e.matchUpStatus.replace(/_/g,` `);l.appendChild(kY(t,`status`))}if(e.stage&&e.stage!==`MAIN`){let t=e.stage.replace(/_/g,` `);l.appendChild(kY(t,`stage`))}if(l.children.length&&r.appendChild(l),OY(r,e,n),e.isScheduled){let e=document.createElement(`span`);e.className=`spl-matchup-check`,e.textContent=`✓`,r.appendChild(e)}return r}function EY(e,t){let n=document.createElement(`div`);if(n.className=DJ(),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(DY(e.scheduledTime,t)),n}function DY(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 OY(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 kY(e,t){let n=document.createElement(`div`);return n.className=jJ()+` `+t,n.textContent=e,n}function AY(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 jY(e){let t=document.createElement(`div`);t.className=MJ(),t.dataset.panel=`catalog`;let n=`spl-catalog-drop-over`,r=`is-filtering`,i=new Set,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=NJ();let l=document.createElement(`div`);l.className=`spl-catalog-title-row`;let u=document.createElement(`div`);u.className=PJ(),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=FJ(),c.appendChild(l),c.appendChild(f),t.appendChild(c);let p=document.createElement(`div`);p.className=BJ();let m=document.createElement(`input`);m.type=`text`,m.placeholder=`Search matchUps...`,m.className=VJ(),m.addEventListener(`input`,()=>e.onSearchChange(m.value));let h=kC(m,()=>{m.value=``,e.onSearchChange(``),m.focus()}),g=document.createElement(`select`);g.className=HJ();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),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=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(),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)}}),i.appendChild(o);let c=document.createElement(`button`);c.className=`spl-filter-close-btn`,c.textContent=`×`,c.addEventListener(`click`,e=>{e.stopPropagation(),_()}),i.appendChild(c),n.appendChild(i);let l=[{label:`All Event Types`,key:`eventType`,values:AY(t,e=>e.matchUpType)},{label:`All Events`,key:`eventName`,values:AY(t,e=>e.eventName)},{label:`All Flights`,key:`drawName`,values:AY(t,e=>e.drawName)},{label:`All Genders`,key:`gender`,values:AY(t,e=>e.gender)},{label:`All Rounds`,key:`roundName`,values:AY(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=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}d.addEventListener(`click`,()=>{_(),o=Nm(d,{content:b(),placement:`bottom-start`,interactive:!0,trigger:`manual`,appendTo:()=>t,onClickOutside:()=>_(),theme:``}),o.show()});let x=document.createElement(`div`);x.className=zJ(),t.appendChild(x);function S(t){a=t,s=t.catalogFilters??{},y();let n=fY(t.matchUpCatalog),r=t.showScheduled?t.scheduledBehavior:`hide`,o=dY(t.matchUpCatalog,t.catalogSearchQuery,r,t.catalogFilters,t.showCompleted),c=bY(o,t.catalogGroupBy),l=o.filter(e=>!e.isScheduled).length;f.textContent=`${l} unscheduled`,m.value!==t.catalogSearchQuery&&(m.value=t.catalogSearchQuery,AC(h)),g.value!==t.catalogGroupBy&&(g.value=t.catalogGroupBy),SY(),x.innerHTML=``;for(let[r,o]of c){let s=document.createElement(`div`);s.className=UJ();let c=i.has(r),l=document.createElement(`div`);l.className=WJ();let u=document.createElement(`span`);u.className=KJ(),u.textContent=c?`▶`:`▼`;let d=document.createElement(`span`);d.textContent=`${r} (${o.length})`,l.appendChild(u),l.appendChild(d),l.addEventListener(`click`,()=>{i.has(r)?i.delete(r):i.add(r),a&&S(a)});let f=document.createElement(`div`);f.className=GJ(),c&&(f.style.display=`none`);for(let r of o){let i=n.get(r.eventId),a=TY(r,{onClick:t=>e.onMatchUpSelected?.(t)},{roundOffset:i!==void 0&&!r.isScheduled&&!uY(r.matchUpStatus)?Math.max(0,r.roundNumber-i):void 0,renderExtra:e.renderCardExtra,relatedMatchUpIds:e.relatedMatchUpIds});t.selectedMatchUp?.matchUpId===r.matchUpId&&a.classList.add(`selected`),f.appendChild(a)}s.appendChild(l),s.appendChild(f),x.appendChild(s)}}return{element:t,update:S}}function MY(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 NY=`spl-cell--issue-pulse`;function PY(){let e=document.createElement(`div`);e.className=MJ();let t=document.createElement(`div`);t.className=NJ();let n=document.createElement(`div`);n.className=PJ(),n.textContent=`Issues`;let r=document.createElement(`div`);r.className=FJ(),t.appendChild(n),t.appendChild(r),e.appendChild(t);let i=document.createElement(`div`);i.className=qJ(),e.appendChild(i);function a(e){let t=MY(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=tY(),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=JJ(),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=YJ(),n.textContent=e.severity;let r=document.createElement(`div`);if(r.className=XJ(),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(NY),n.offsetWidth,n.classList.add(NY),n.addEventListener(`animationend`,()=>n.classList.remove(NY),{once:!0}))}return{element:e,update:a}}function FY(e){let t=document.createElement(`div`);t.className=MJ();let n=document.createElement(`div`);n.className=NJ();let r=document.createElement(`div`);r.className=PJ(),r.textContent=`Dates`;let i=document.createElement(`div`);i.className=FJ(),n.appendChild(r),n.appendChild(i),t.appendChild(n);let a=document.createElement(`div`);a.className=IJ(),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=LJ(),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=RJ(),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 IY(e,t,n){let r=document.createElement(`div`);r.className=yJ();let i=document.createElement(`div`);i.className=bJ();let a=n?.titleLeadingActions,o;if(n?.titleSlot?o=n.titleSlot:(o=document.createElement(`div`),o.className=xJ(),o.textContent=`Court Grid`),a){let e=document.createElement(`div`);e.className=CJ();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=SJ();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=wJ(),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}}function LY(e){return(e.find(e=>e.isActive)??e[0])?.date??null}var RY=class{constructor(e){this.listeners=new Set,this.config=e;let t=e.initialCatalogState??{};this.state={matchUpCatalog:e.matchUpCatalog,scheduleDates:e.scheduleDates,issues:e.issues??[],selectedDate:LY(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){if(this.setState({matchUpCatalog:e}),!this.state.selectedMatchUp)return;let t=e.find(e=>e.matchUpId===this.state.selectedMatchUp?.matchUpId);if(!t){this.setState({selectedMatchUp:null});return}t!==this.state.selectedMatchUp&&this.setState({selectedMatchUp:t})}setScheduleDates(e){let t=LY(e),n=LY(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()}emit(){for(let e of this.listeners)e(this.state)}},zY=class{constructor(e){this.container=null,this.store=new RY(e);let t=FY({onDateSelected:e=>this.store.selectDate(e)}),n=PY(),r=IY(e.courtGridElement,{onMatchUpDrop:(e,t)=>{this.store.handleMatchUpDrop(e,t)}},{gridMaxHeight:e.gridMaxHeight,headerActions:e.headerActions,titleLeadingActions:e.titleLeadingActions,titleSlot:e.titleSlot}),i=jY({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=oY({renderExtra:e.renderInspectorExtra});this.layout=nY({dateStrip:t,issuesPanel:n,courtGridSlot:r,matchUpCatalog:i,inspectorPanel:a},{onToggleLeft:()=>this.store.toggleLeftPanel()},{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.container&&this.layout.element.parentNode===this.container&&this.layout.element.remove(),this.container=null}setMatchUpCatalog(e){this.store.setMatchUpCatalog(e)}setScheduleDates(e){this.store.setScheduleDates(e)}setIssues(e){this.store.setIssues(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}},BY=new Set([`IN_PROGRESS`]),VY=new Set([`SUSPENDED`]),HY=new Set([`CANCELLED`,`ABANDONED`,`COMPLETED`,`DEAD_RUBBER`,`DEFAULTED`,`DOUBLE_WALKOVER`,`DOUBLE_DEFAULT`,`RETIRED`,`WALKOVER`]),UY=`in-progress`,WY=`suspended`,GY=`pending`,KY=`completed`;function qY(e,t,n,r){let i=e.matchUpStatus;return i&&n.has(i)?WY:i&&t.has(i)||e.hasScore&&e.winningSide===void 0&&(!i||!r.has(i))?UY:i&&r.has(i)||e.winningSide!==void 0?KY:GY}function JY(e,t){let n=t?.inProgressStatuses??BY,r=t?.suspendedStatuses??VY,i=t?.completedStatuses??HY,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=qY(l,n,r,i);if(u===UY||u===WY)return{courtId:e.courtId,state:u,matchUp:l,rowIndex:t};u===GY&&l.calledAt&&s===-1&&(s=t),u===GY&&!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 YY(e,t){return e.columns.map(e=>JY(e,t))}function XY(e,t){if(t.size===0)return!1;for(let n of e.participantIds)if(t.has(n))return!0;return!1}function ZY(e,t){return t.roundNumber!==void 0&&t.drawId!==void 0&&e.drawId===t.drawId&&e.roundNumber!==void 0&&e.roundNumber<t.roundNumber}function QY(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&&XY(o,n)&&(r=e),e>i&&ZY(o,t)&&(i=e))}return{participantFloor:r,earlierRoundFloor:i}}function $Y(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 eX(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}=QY(e,n),s=JY(i,r),c=s.state!==`free`&&s.rowIndex!==void 0?s.rowIndex:-1;return{courtId:t,rowIndex:$Y(i,Math.max(0,a+1,o+1,c),n.matchUpId)}}function tX(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 nX(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}=QY(r,n),s=Math.max(0,a+1,o+1),c=tX(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 rX=`drop-over`;function iX(e,t,n,r,i){e.addEventListener(`dragover`,t=>{t.preventDefault(),e.classList.add(rX),t.dataTransfer&&(t.dataTransfer.dropEffect=`move`)}),e.addEventListener(`dragleave`,()=>{e.classList.remove(rX)}),e.addEventListener(`drop`,a=>{if(e.classList.remove(rX),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=eX(r(),t.courtId,s,i);n.onMatchUpDrop(o,c,a)})}function aX(e){return e===`in-progress`?`LIVE`:e===`suspended`?`SUSP`:e===`next`?`NEXT`:e===`due`?`DUE`:null}function oX(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=aX(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 iX(o,e,t,n,r.statusOptions),o}function sX(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 cX(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(sX(t));let a=r.dueMatchUpIds?{...t.statusOptions,dueMatchUpIds:new Set(r.dueMatchUpIds)}:t.statusOptions,o=YY(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(oX(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 lX=`spl-cell--conflict-highlight`,uX=`spl-cell--complete`,dX={header:[`time`],body:[`eventRound`,`participants`],footer:[`score`],participantDisplay:{nameFormat:`full`,showSeed:!1,showRanking:!1,showNationality:!1,boldWinner:!0,showPotentials:!0}};function fX(e,t){let n=t??dX;return e.isBlocked?mX(e):e.isReserved?pX(e):e.matchUpId?gX(e,n):hX()}function pX(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 mX(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 hX(){let e=document.createElement(`div`);return e.className=`spl-grid-cell spl-cell--empty`,e}function gX(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),_X(n,e),t.header.length){let r=document.createElement(`div`);r.className=`spl-grid-cell__header`,vX(r,t.header,e,t),n.appendChild(r)}if(t.body.length){let r=document.createElement(`div`);r.className=`spl-grid-cell__body`,vX(r,t.body,e,t),n.appendChild(r)}if(t.footer.length){let r=document.createElement(`div`);r.className=`spl-grid-cell__footer`,vX(r,t.footer,e,t),n.appendChild(r)}return e.issueIds?.length&&(n.addEventListener(`mouseenter`,()=>{n.classList.add(lX);for(let t of e.issueIds)document.querySelectorAll(`[data-matchup-id="${t}"]`).forEach(e=>e.classList.add(lX))}),n.addEventListener(`mouseleave`,()=>{n.classList.remove(lX);for(let t of e.issueIds)document.querySelectorAll(`[data-matchup-id="${t}"]`).forEach(e=>e.classList.remove(lX))})),n}function _X(e,t){let n=t.matchUpStatus?.toUpperCase();n===`COMPLETED`||n===`RETIRED`||n===`DEFAULTED`||n===`WALKOVER`?e.classList.add(uX):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 vX(e,t,n,r){for(let i of t){let t=yX(i,n,r);t&&e.appendChild(t)}}function yX(e,t,n){switch(e){case`time`:return bX(t);case`eventRound`:return xX(t);case`participants`:return SX(t,n.participantDisplay);case`score`:return DX(t);case`matchUpStatus`:return OX(t);case`matchUpFormat`:return kX(t);case`umpire`:return AX(t);default:return null}}function bX(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 xX(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 SX(e,t){let n=t??dX.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(TX());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(wX()):(t>0&&!i[t-1]?.bye&&r.appendChild(TX()),r.appendChild(CX(a,e,n,a.sideNumber??t+1)))}return(a||o)&&i.length===1&&!i[0].bye&&r.appendChild(wX()),r}function CX(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=EX(e.participantName,n.nameFormat)||`TBD`;if(n.showSeed&&e.seedNumber&&(o+=` [${e.seedNumber}]`),n.showRanking&&e.ranking&&(o+=` (#${e.ranking})`),n.showNationality&&e.nationality&&(o+=` ${e.nationality}`),a.textContent=o,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 wX(){let e=document.createElement(`div`);return e.className=`spl-grid-cell__bye`,e.textContent=`BYE`,e}function TX(){let e=document.createElement(`div`);return e.className=`spl-grid-cell__vs`,e.textContent=`vs.`,e}function EX(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 DX(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 OX(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 kX(e){if(!e.matchUpFormat)return null;let t=document.createElement(`div`);return t.className=`spl-grid-cell__format`,t.textContent=e.matchUpFormat,t}function AX(e){if(!e.umpire)return null;let t=document.createElement(`div`);return t.className=`spl-grid-cell__umpire`,t.textContent=e.umpire,t}function jX(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,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 MX({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++}ue({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 NX(e,t){let n=new zY(e);return n.render(t),n}var PX=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}}:{}})}},FX=()=>`ce-layout`,IX=()=>`ce-left`,LX=()=>`ce-right`,RX=()=>`ce-name-row`,zX=()=>`ce-name-label`,BX=()=>`ce-name-input`,VX=()=>`ce-section`,HX=()=>`ce-section-header`,UX=()=>`ce-section-chevron`,WX=()=>`ce-section-body`,GX=()=>`ce-field`,KX=()=>`ce-field-label`,qX=()=>`ce-field-control`,JX=()=>`ce-select`,YX=()=>`ce-text-input`,XX=()=>`ce-color-input`,ZX=()=>`ce-toggle`,QX=()=>`ce-toggle-track`,$X=()=>`ce-preview`,eZ=()=>`ce-preview-header`,tZ=()=>`ce-preview-body`,nZ=()=>`ce-preview-matchup`,rZ=()=>`ce-subgroup`,iZ=()=>`ce-subgroup-title`;function aZ(e,t){let n=document.createElement(`div`);n.className=VX();let r=document.createElement(`div`);r.className=HX();let i=document.createElement(`span`);i.className=UX();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=WX();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 oZ(e,t,n,r=!1){let i=document.createElement(`div`);i.className=GX();let a=document.createElement(`span`);a.className=KX(),a.textContent=e,i.appendChild(a);let o=document.createElement(`label`);o.className=ZX();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=QX(),o.appendChild(s),o.appendChild(c);let l=document.createElement(`div`);return l.className=qX(),l.appendChild(o),i.appendChild(l),{element:i,setChecked:e=>{s.checked=e},setDisabled:e=>{s.disabled=e}}}function sZ(e,t,n,r,i=!1){let a=document.createElement(`div`);a.className=GX();let o=document.createElement(`span`);o.className=KX(),o.textContent=e,a.appendChild(o);let s=document.createElement(`select`);s.className=JX(),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=qX(),c.appendChild(s),a.appendChild(c),{element:a,setValue:e=>{s.value=e}}}function cZ(e,t,n,r=``,i=!1){let a=document.createElement(`div`);a.className=GX();let o=document.createElement(`span`);o.className=KX(),o.textContent=e,a.appendChild(o);let s=document.createElement(`input`);s.type=`text`,s.className=YX(),s.value=t,s.placeholder=r,s.disabled=i,s.addEventListener(`input`,()=>n(s.value));let c=document.createElement(`div`);return c.className=qX(),c.appendChild(s),a.appendChild(c),{element:a,setValue:e=>{s.value=e}}}function lZ(e,t,n,r=!1){let i=document.createElement(`div`);i.className=GX();let a=document.createElement(`span`);a.className=KX(),a.textContent=e,i.appendChild(a);let o=document.createElement(`input`);o.type=`color`,o.className=XX(),o.value=t||`#000000`,o.disabled=r,o.addEventListener(`input`,()=>n(o.value));let s=document.createElement(`div`);return s.className=qX(),s.appendChild(o),i.appendChild(s),{element:i,setValue:e=>{o.value=e||`#000000`}}}var uZ=[],dZ=new Set;for(let[,e]of Object.entries(gi))if(!dZ.has(e.theme)){dZ.add(e.theme);let t=e.theme.replace(`chc-theme-`,``).replace(/-/g,` `).replace(/\b\w/g,e=>e.toUpperCase());uZ.push({value:e.theme,label:t})}function fZ(e){let t=document.createElement(`div`),n=sZ(`Load preset`,[{value:``,label:`— Load preset —`},...Object.keys(gi).map(e=>({value:e,label:e}))],``,t=>{if(!t)return;let r=gi[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=sZ(`Color theme`,uZ,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 pZ=[{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`}],mZ=/^#[0-9a-f]{6}$/i;function hZ(e,t,n,r){let i=document.createElement(`div`);i.className=GX();let a=document.createElement(`span`);a.className=KX(),a.textContent=e.label,i.appendChild(a);let o=document.createElement(`div`);o.className=qX(),o.style.display=`flex`,o.style.gap=`0.4rem`,o.style.alignItems=`center`;let s=document.createElement(`input`);s.type=`color`,s.className=XX(),s.disabled=r;let c=document.createElement(`input`);c.type=`text`,c.className=YX(),c.placeholder=e.hint||`#rrggbb or color name`,c.disabled=r,c.style.flex=`1`;function l(e){c.value=e||``,e&&mZ.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&&mZ.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 gZ(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=pZ.map(r=>{let i=hZ(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=GX();let o=document.createElement(`span`);o.className=KX(),o.textContent=`Left-edge width`,a.appendChild(o);let s=document.createElement(`div`);s.className=qX();let c=document.createElement(`input`);c.type=`text`,c.className=YX(),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 _Z(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=oZ(`Nationality flags`,!!r.flags,t=>e.setConfigField(`flags`,t),n),a=sZ(`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=sZ(`Seed element`,[{value:``,label:`Default`},{value:`sup`,label:`Superscript`},{value:`span`,label:`Inline`}],r.seedingElement||``,t=>e.setConfigField(`seedingElement`,t||void 0),n),s=oZ(`Draw positions (1st round)`,!!r.drawPositions,t=>e.setConfigField(`drawPositions`,t),n),c=oZ(`Draw positions (all rounds)`,!!r.allDrawPositions,t=>e.setConfigField(`allDrawPositions`,t),n),l=oZ(`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 vZ(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=oZ(`Score box`,!!r.scoreBox,t=>e.setConfigField(`scoreBox`,t),n),a=oZ(`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=rZ();let s=document.createElement(`div`);s.className=iZ(),s.textContent=`Game Score Display`,o.appendChild(s);let c=sZ(`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=oZ(`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 yZ(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=oZ(`Gender color`,!!r.genderColor,t=>e.setConfigField(`genderColor`,t),n),a=oZ(`Winner color`,!!r.winnerColor,t=>e.setConfigField(`winnerColor`,t),n),o=sZ(`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=cZ(`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 bZ(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=cZ(`TBD text`,r.placeHolders?.tbd||``,t=>e.setConfigNestedField(`placeHolders`,`tbd`,t||void 0),`TBD`,n),a=cZ(`Bye text`,r.placeHolders?.bye||``,t=>e.setConfigNestedField(`placeHolders`,`bye`,t||void 0),`Bye`,n),o=cZ(`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 xZ=[{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 SZ(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration.scaleAttributes||{},i=sZ(`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=sZ(`Scale name`,[{value:``,label:`None`},...xZ.map(e=>({value:e.scaleName,label:e.label}))],r.scaleName||``,t=>{e.setConfigNestedField(`scaleAttributes`,`scaleName`,t||void 0);let n=xZ.find(e=>e.scaleName===t);e.setConfigNestedField(`scaleAttributes`,`accessor`,n?.accessor||void 0)},n),o=lZ(`Color`,r.scaleColor||`#ff0000`,t=>e.setConfigNestedField(`scaleAttributes`,`scaleColor`,t),n),s=sZ(`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=oZ(`Fallback`,!!r.fallback,t=>e.setConfigNestedField(`scaleAttributes`,`fallback`,t),n),l=oZ(`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 CZ(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=oZ(`Schedule info`,!!r.scheduleInfo,t=>e.setConfigField(`scheduleInfo`,t),n),a=oZ(`Round header`,!!r.roundHeader,t=>e.setConfigField(`roundHeader`,t),n),o=oZ(`MatchUp footer`,!!r.matchUpFooter,t=>e.setConfigField(`matchUpFooter`,t),n),s=oZ(`Center info`,!!r.centerInfo,t=>e.setConfigField(`centerInfo`,t),n),c=oZ(`Set number`,!!r.resultsInfo,t=>e.setConfigField(`resultsInfo`,t),n),l=oZ(`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:wZ,SINGLES:TZ}=t.eventConstants,{AD_HOC:EZ}=t.drawDefinitionConstants,{INDIVIDUAL:DZ}=t.participantConstants;function OZ({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===wZ?wZ:TZ,completionGoal:f,qualifyingProfiles:r,participantsCount:i,seedsCount:8,matchUpFormat:e,drawSize:o,drawType:l,outcomes:c};l===EZ&&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:[DZ]}});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||TZ}})})}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 kZ=null;function AZ(){if(!kZ){let{matchUps:e}=OZ({drawSize:8,eventType:`SINGLES`,randomWinningSide:!0,matchUpFormat:`SET3-S:6/TB7`,withAllRatings:xZ.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}]};kZ=[...t,i,a,o,s]}return kZ}var jZ=null;function MZ(){if(!jZ){let{matchUps:e}=OZ({drawSize:4,eventType:`SINGLES`,matchUpFormat:`SET3-S:6/TB7`,completionGoal:50,randomWinningSide:!0});jZ=e}return jZ}function NZ(){let e=document.createElement(`div`);e.className=$X();let t=document.createElement(`div`);t.className=eZ(),t.textContent=`Preview`,e.appendChild(t);let n=document.createElement(`div`);n.className=tZ(),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=``,Sr(n),xr(n,e.colors);let s={theme:e.theme,configuration:{...e.configuration,matchUpFooter:!0},colors:e.colors?{...e.colors}:void 0},c=yr({roundNumber:1,roundProfile:{1:{roundName:`Round 1`}}});n.appendChild(c);let l=AZ();for(let e of l){let t=document.createElement(`div`);t.className=nZ();let r=ni({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=ii({matchUps:MZ(),composition:s});n.appendChild(d)}return{element:e,update:o}}var PZ=[{id:`theme`,label:`Theme & Preset`,factory:fZ},{id:`colors`,label:`Colors`,factory:gZ},{id:`display`,label:`Display`,factory:_Z},{id:`score`,label:`Score`,factory:vZ},{id:`participant`,label:`Participant`,factory:yZ},{id:`placeholder`,label:`Placeholders`,factory:bZ},{id:`scale`,label:`Scale Attributes`,factory:SZ},{id:`layout`,label:`Layout & Info`,factory:CZ}];function FZ(e,t){let n=new PX(t),r=document.createElement(`div`);r.className=FX();let i=document.createElement(`div`);i.className=IX();let a=document.createElement(`div`);a.className=RX();let o=document.createElement(`span`);o.className=zX(),o.textContent=`Name`;let s=document.createElement(`input`);s.type=`text`,s.className=BX(),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=PZ.map(e=>{let t=aZ(e,n);return i.appendChild(t.element),t}),l=document.createElement(`div`);l.className=LX();let u=NZ();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 IZ=[`grand-slam`,`itf`,`minimal`,`none`],LZ=[`standard`,`seedings`,`officials`,`none`],RZ=[`a4`,`letter`],zZ=[`auto`,`portrait`,`landscape`],BZ={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 VZ(e,t){let n=eQ(BZ,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(HZ(n,r,l)),a.appendChild(UZ(n,r,l)),a.appendChild(WZ(n,r,l)),a.appendChild(GZ(n,r,t.printType,l)),!r&&t.onSave&&a.appendChild(KZ(()=>t.onSave?.(tQ(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?.(tQ(n))}return c(),e.appendChild(i),{destroy:()=>{i.parentNode&&i.parentNode.removeChild(i)},getConfig:()=>tQ(n),setConfig:e=>{Object.assign(n,eQ(BZ,e)),c()}}}function HZ(e,t,n){let{section:r,body:i}=ZZ(`Page`);i.appendChild(qZ(`Size`,RZ,e.page?.pageSize??`a4`,t,t=>{$Z(e,`page`).pageSize=t,n()})),i.appendChild(qZ(`Orientation`,zZ,e.page?.orientation??`auto`,t,t=>{$Z(e,`page`).orientation=t,n()}));let a=Q(`div`,`pce-field pce-field-full`);a.appendChild(QZ(`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(YZ(r,e.page?.margins?.[r]??10,t,t=>{let i=$Z($Z(e,`page`),`margins`);i[r]=t,n()}))}),a.appendChild(o),i.appendChild(a),r}function UZ(e,t,n){let{section:r,body:i}=ZZ(`Header`);return i.appendChild(qZ(`Layout`,IZ,e.header?.layout??`itf`,t,t=>{$Z(e,`header`).layout=t,n()})),i.appendChild(JZ(`Tournament name`,e.header?.tournamentName??``,t,t=>{$Z(e,`header`).tournamentName=t,n()})),i.appendChild(JZ(`Subtitle`,e.header?.subtitle??``,t,t=>{$Z(e,`header`).subtitle=t||void 0,n()})),r}function WZ(e,t,n){let{section:r,body:i}=ZZ(`Footer`);return i.appendChild(qZ(`Layout`,LZ,e.footer?.layout??`standard`,t,t=>{$Z(e,`footer`).layout=t,n()})),i.appendChild(XZ(`Show timestamp`,e.footer?.showTimestamp??!0,t,t=>{$Z(e,`footer`).showTimestamp=t,n()})),i.appendChild(XZ(`Show page numbers`,e.footer?.showPageNumbers??!0,t,t=>{$Z(e,`footer`).showPageNumbers=t,n()})),r}function GZ(e,t,n,r){let{section:i,body:a}=ZZ(`Content — ${n}`);if(n===`draw`){let n=$Z($Z(e,`content`),`draw`);a.appendChild(XZ(`Include seedings`,!!n.includeSeedings,t,e=>{n.includeSeedings=e,r()})),a.appendChild(XZ(`Include scores`,!!n.includeScores,t,e=>{n.includeScores=e,r()})),a.appendChild(XZ(`Show byes`,!!n.showByes,t,e=>{n.showByes=e,r()})),a.appendChild(XZ(`Show draw positions`,!!n.showDrawPositions,t,e=>{n.showDrawPositions=e,r()}))}else if(n===`schedule`){let n=$Z($Z(e,`content`),`schedule`);a.appendChild(qZ(`Cell style`,[`detailed`,`compact`],n.cellStyle??`detailed`,t,e=>{n.cellStyle=e,r()})),a.appendChild(XZ(`Show match numbers`,!!n.showMatchNumbers,t,e=>{n.showMatchNumbers=e,r()})),a.appendChild(JZ(`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 KZ(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 qZ(e,t,n,r,i){let a=Q(`div`,`pce-field`);a.appendChild(QZ(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 JZ(e,t,n,r){let i=Q(`div`,`pce-field`);i.appendChild(QZ(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 YZ(e,t,n,r){let i=Q(`div`,`pce-field`);i.appendChild(QZ(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 XZ(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=QZ(e);return o.style.fontSize=`13px`,o.style.color=`var(--chc-text-primary, #222)`,i.appendChild(o),i}function ZZ(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 QZ(e){let t=Q(`label`,`pce-field-label`);return t.textContent=e,t}function $Z(e,t){return(e[t]===void 0||e[t]===null)&&(e[t]={}),e[t]}function eQ(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 tQ(e){return structuredClone(e)}var nQ=`chc-scorecard-side-score--winner`;function rQ({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=fQ(e,a)||``,c=fQ(e,o)||``,l=r?lQ(e.winningSide):e.winningSide,u=iQ({side1Name:s,side2Name:c,sets:r?uQ(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=cQ({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 iQ({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=oQ(e,`end`),l=oQ(t,`start`),u=sQ(n,1,r,i),d=sQ(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 aQ(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(nQ),o.classList.remove(nQ);let s=r?`side2Score`:`side1Score`,c=r?`side1Score`:`side2Score`;a.textContent=String(i[s]??0),o.textContent=String(i[c]??0);let l=r?lQ(e.winningSide):e.winningSide;l===1&&a.classList.add(nQ),l===2&&o.classList.add(nQ)}function oQ(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 sQ(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(nQ),a.textContent=String(i),a}function cQ({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=ni({matchUp:i?dQ(e):e,isLucky:!0,eventHandlers:r,composition:n});t.classList.add(`chc-scorecard-card`),f.appendChild(t)}return a.appendChild(f),a}function lQ(e){if(e===1)return 2;if(e===2)return 1}function uQ(e){if(e)return e.map(e=>({...e,side1Score:e.side2Score,side2Score:e.side1Score,side1TiebreakScore:e.side2TiebreakScore,side2TiebreakScore:e.side1TiebreakScore}))}function dQ(e){let t=e.sides?.map(e=>({...e,sideNumber:e.sideNumber===1?2:1}));return{...e,sides:t,score:e.score?{...e.score,sets:uQ(e.score.sets)}:e.score,winningSide:lQ(e.winningSide)}}function fQ(e,t){return e.sides?.find(e=>e.sideNumber===t)?.participant?.participantName}function pQ(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 mQ=`chc-iss-score-cell`;function hQ(e){if(!e?.matchUpId)throw Error(`buildInteractiveScoringShell: matchUpId is required`);if(!e?.matchUpFormat)throw Error(`buildInteractiveScoringShell: matchUpFormat is required`);let t=e.initialMatchUp??gQ(e),n=new Set,r=new bs({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(_Q(e),vQ(r,e,t),yQ(r,e,o),bQ(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 gQ(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 _Q(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 vQ(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=mQ,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=mQ,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=mQ,e.textContent=`0`,s.append(e);let t=document.createElement(`div`);t.className=mQ,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 yQ(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 bQ(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 xQ(){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 SQ=class{constructor(e){this.listeners=new Set,this.config=e;let t=$(e.initialPolicy??xQ()),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)}},CQ=()=>`re-section`,wQ=()=>`re-section-header`,TQ=()=>`re-section-chevron`,EQ=()=>`re-section-count`,DQ=()=>`re-section-body`,OQ=()=>`re-field-row`,kQ=()=>`re-field-label`,AQ=()=>`re-field-input re-field-input--text`,jQ=()=>`re-field-input re-field-input--number`,MQ=()=>`re-field-input re-field-input--date`,NQ=()=>`re-field-select`,PQ=()=>`re-checkbox-row`,FQ=()=>`re-points-input`,IQ=()=>`re-profile-card`,LQ=()=>`re-profile-header`,RQ=()=>`re-profile-name-input`,zQ=()=>`re-profile-body`,BQ=()=>`re-profile-actions`,VQ=()=>`re-icon-btn`,HQ=()=>`re-icon-btn re-icon-btn--danger`,UQ=()=>`re-empty`,WQ=()=>`re-editor`,GQ=[`totalPoints`,`bestResult`,`headToHead`,`numberOfWins`,`recentResults`,`drawSize`,`numberOfResults`];function KQ(e){let t=document.createElement(`div`),n=``;function r(t,n,r,i,a,o){let s=document.createElement(`div`);s.className=OQ();let c=document.createElement(`div`);if(c.className=kQ(),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=NQ();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=jQ(),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=HQ(),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=UQ(),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=NQ(),i.style.fontSize=`0.75rem`;let a=new Set(n),o=GQ.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=HQ(),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=OQ();let a=document.createElement(`div`);a.className=kQ(),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=jQ(),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=UQ(),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=PQ();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 qQ(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=AQ(),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=HQ(),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(JQ(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(JQ(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(JQ(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=HQ(),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=OQ();let s=document.createElement(`div`);if(s.className=kQ(),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`?jQ():AQ(),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=UQ(),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=PQ();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 JQ(e,t){let n=document.createElement(`input`);return n.type=`number`,n.className=FQ(),n.value=String(e),n.addEventListener(`change`,()=>{let e=Number.parseFloat(n.value);Number.isNaN(e)||t(e)}),n}function YQ(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=OQ();let r=document.createElement(`div`);r.className=kQ(),r.textContent=`Name`;let i=document.createElement(`input`);i.type=`text`,i.className=AQ(),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=OQ();let o=document.createElement(`div`);o.className=kQ(),o.textContent=`Version`;let s=document.createElement(`input`);s.type=`text`,s.className=AQ(),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=OQ();let l=document.createElement(`div`);l.className=kQ(),l.textContent=`Valid from`;let u=document.createElement(`input`);u.type=`date`,u.className=MQ(),u.addEventListener(`change`,()=>e.setValidDateRange(`startDate`,u.value)),c.appendChild(l),c.appendChild(u),t.appendChild(c);let d=document.createElement(`div`);d.className=OQ();let f=document.createElement(`div`);f.className=kQ(),f.textContent=`Valid until`;let p=document.createElement(`input`);p.type=`date`,p.className=MQ(),p.addEventListener(`change`,()=>e.setValidDateRange(`endDate`,p.value)),d.appendChild(f),d.appendChild(p),t.appendChild(d);let m=document.createElement(`div`);m.className=OQ();let h=document.createElement(`div`);h.className=kQ(),h.textContent=`Doubles attribution`;let g=document.createElement(`select`);g.className=NQ();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=OQ();let v=document.createElement(`div`);v.className=kQ(),v.textContent=`Category resolution`;let y=document.createElement(`select`);y.className=NQ();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=PQ();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=PQ();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 XQ={1:`W`,2:`F`,4:`SF`,8:`QF`,16:`R16`,32:`R32`,64:`R64`,128:`R128`,256:`R256`},ZQ=`level-keyed`;function QQ(e){return XQ[e]??`R${e}`}function $Q(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=e$(t);return n.hasConditionalArray?{type:`conditional`}:n.hasLevelFlightNesting?t$(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 e$(e){let t=new Set,n=new Set,r=!1,i=!1;for(let a of e){let e=n$(a);if(e.type===ZQ){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 t$(e,t){let n={},r=[...t].sort((e,t)=>e-t);for(let t of e){let e=n$(t);if(e.type===ZQ&&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 n$(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:ZQ,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:ZQ,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 r$(e,t={}){if(typeof e==`number`)return e;if(e!=null){if(Array.isArray(e))return i$(e,t);if(typeof e==`object`){if(e.level!==void 0&&t.level!==void 0)return a$(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 i$(e,t){for(let n of e){if(n.drawSizes&&t.drawSize&&n.drawSizes.includes(t.drawSize))return r$(n,t);if(n.drawSize!==void 0&&t.drawSize!==void 0&&(n.threshold?t.drawSize>=n.drawSize:t.drawSize===n.drawSize))return r$({...n,drawSize:void 0,drawSizes:void 0,threshold:void 0},t);if(n.drawSize===void 0&&n.drawSizes===void 0)return r$(n,t)}}function a$(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?r$(n,t):typeof n==`number`?n:void 0}function o$(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 s$(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 c$(e){return e==null?`--`:e.toLocaleString()}var l$=[1,2,4,8,16,32,64,128],u$=`font-size:0.8rem;margin-bottom:0;border-collapse:collapse`,d$=`width:3.5rem;text-align:center`;function f$(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=UQ(),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=$Q(i),o=Object.keys(i).map(Number).sort((e,t)=>e-t);a.type===`flat`?p$(n,o,i,r.readonly,e,t):a.type===`level-columns`?m$(n,o,i,a.levels,r.readonly,e,t):h$(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 p$(e,t,n,r,i,a){let o=document.createElement(`table`);o.style.cssText=u$;let s=document.createElement(`thead`),c=document.createElement(`tr`);g$(c,`Pos`,d$),g$(c,`Points`,`text-align:right`),r||g$(c,``,`width:2rem`),s.appendChild(c),o.appendChild(s);let l=document.createElement(`tbody`);for(let e of t){let t=document.createElement(`tr`);_$(t,e);let o=document.createElement(`td`);o.style.cssText=`text-align:right;padding:2px 4px`,r?(o.style.fontVariantNumeric=`tabular-nums`,o.textContent=c$(typeof n[e]==`number`?n[e]:r$(n[e]))):o.appendChild(y$(typeof n[e]==`number`?n[e]:r$(n[e])??0,t=>i.setFlatPositionPoints(a,e,t))),t.appendChild(o),r||v$(t,()=>i.removePositionRow(a,e)),l.appendChild(t)}o.appendChild(l),e.appendChild(o),r||b$(e,t,i,a)}function m$(e,t,n,r,i,a,o){let s=document.createElement(`table`);s.style.cssText=u$;let c=document.createElement(`thead`),l=document.createElement(`tr`);g$(l,`Pos`,d$);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=HQ(),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||g$(l,``,`width:2rem`),c.appendChild(l),s.appendChild(c);let u=document.createElement(`tbody`);for(let e of t){let t=document.createElement(`tr`);_$(t,e);for(let s of r){let r=document.createElement(`td`);r.style.cssText=`text-align:right;padding:2px 4px`;let c=r$(n[e],{level:s});i?(r.style.fontVariantNumeric=`tabular-nums`,r.textContent=c$(c),c===void 0&&(r.style.color=`var(--sp-muted)`)):r.appendChild(y$(c??0,t=>a.setLevelPositionPoints(o,e,s,t))),t.appendChild(r)}i||v$(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=FQ(),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),x$(n,t,a,o),e.appendChild(n)}}function h$(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=u$;let o=document.createElement(`thead`),s=document.createElement(`tr`);if(g$(s,`Pos`,d$),r.type===`flight-columns`)for(let e of r.flights)g$(s,`F${e}`,`text-align:right;min-width:3.5rem`);else g$(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`);_$(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=r$(i,{flight:e});n.textContent=c$(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=c$(r$(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 g$(e,t,n){let r=document.createElement(`th`);r.textContent=t,r.style.cssText=n+`;padding:2px 4px`,e.appendChild(r)}function _$(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=QQ(t),e.appendChild(n)}function v$(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=HQ(),r.textContent=`×`,r.title=`Remove position`,r.style.cursor=`pointer`,r.addEventListener(`click`,t),n.appendChild(r),e.appendChild(n)}function y$(e,t){let n=document.createElement(`input`);return n.type=`number`,n.className=FQ(),n.value=String(e),n.addEventListener(`change`,()=>{let e=Number.parseFloat(n.value);Number.isNaN(e)||t(e)}),n}function b$(e,t,n,r){let i=document.createElement(`div`);i.style.cssText=`display:flex;gap:8px;margin-top:6px;flex-wrap:wrap`,x$(i,t,n,r),e.appendChild(i)}function x$(e,t,n,r){let i=new Set(t),a=l$.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=QQ(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 S$(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=OQ();let i=document.createElement(`div`);i.className=kQ(),i.textContent=`Per-Win`,i.style.minWidth=`80px`;let a=document.createElement(`input`);a.type=`number`,a.className=FQ(),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=r$(s);o.textContent=`${c$(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 C$(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(QQ).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=FQ(),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=FQ(),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=HQ(),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 w$(e){let t=document.createElement(`div`);t.style.cssText=`display:inline-flex;gap:0.25rem;flex-wrap:wrap;margin-bottom:0`;let n=s$(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 T$=[{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}],E$=[[`maxDrawSize`,`Max draw size`],[`maxLevel`,`Max level`],[`priority`,`Priority`],[`participationOrder`,`Participation order`]];function D$(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 T$){let t=a[e.field]??[];o&&!t.length||i.appendChild(s(e,t,o))}for(let[n,r]of E$){let s=a[n];if(o&&s===void 0)continue;let c=document.createElement(`div`);c.className=OQ();let l=document.createElement(`div`);if(l.className=kQ(),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=jQ(),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=T$.map(e=>n?.[e.field]??[]),i=E$.map(([e])=>n?.[e]),o=JSON.stringify([r,i,e.readonly]);o!==a&&(a=o,c(e))}return{element:n,update:l}}function O$(e,t){let n=document.createElement(`div`);n.className=IQ();let r=document.createElement(`div`);r.className=LQ();let i=document.createElement(`span`);i.className=TQ(),i.style.flexShrink=`0`,r.appendChild(i);let a=document.createElement(`input`);a.type=`text`,a.className=RQ(),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=BQ();let l=document.createElement(`button`);l.className=VQ(),l.textContent=`⎘`,l.title=`Duplicate profile`,l.addEventListener(`click`,n=>{n.stopPropagation(),e.duplicateProfile(t)});let u=document.createElement(`button`);u.className=HQ(),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=zQ();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=f$(e,t);d.appendChild(p.element);let m=S$(e,t);d.appendChild(m.element);let h=C$(e,t);d.appendChild(h.element);let g=D$(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=w$(r);if(y.style.flexGrow=`1`,o.appendChild(y),s.textContent=l?``:o$(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 k$(e,t){let n=document.createElement(`div`);n.className=WQ();let r=YQ(e),i=qQ(e),a=KQ(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=CQ();let c=document.createElement(`div`);c.className=wQ();let l=document.createElement(`span`);l.className=TQ();let u=document.createElement(`span`);u.textContent=t.label;let d=document.createElement(`span`);d.className=EQ(),c.appendChild(l),c.appendChild(u),c.appendChild(d),c.addEventListener(`click`,()=>e.toggleSection(t.id));let f=document.createElement(`div`);f.className=DQ(),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=O$(e,t);c.push(s),r.appendChild(s.element),a++}if(!a){let e=document.createElement(`div`);e.className=UQ(),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 A$=class e{constructor(e){this.container=null,this.store=new SQ(e),this.panel=k$(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 j$(e){return M$[e]??e}var M$={"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 N$(){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 P$(e){return structuredClone(e)}var F$=class{constructor(e){this.listeners=new Set,this.config=e,this.state={draft:P$(e.initialPolicy??N$()),expandedSections:new Set([`modificationFlags`,`dailyLimits`,`defaultTimes`,`averageTimes`,`recoveryTimes`]),dirty:!1}}getState(){return this.state}getData(){return P$(this.state.draft)}setData(e){this.state={...this.state,draft:P$(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=P$(this.state.draft);n.allowModificationWhenMatchUpsScheduled||={courts:!1,venues:!1},n.allowModificationWhenMatchUpsScheduled[e]=t,this.commitDraft(n)}setDailyLimit(e,t){let n=P$(this.state.draft);n.defaultDailyLimits||={},n.defaultDailyLimits[e]=t,this.commitDraft(n)}setDefaultAverageTime(e,t,n){let r=P$(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=P$(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=P$(this.state.draft);e.matchUpAverageTimes||=[],e.matchUpAverageTimes.push({matchUpFormatCodes:[],averageTimes:[{categoryNames:[],minutes:{default:60}}]}),this.commitDraft(e)}removeAverageFormatGroup(e){let t=P$(this.state.draft);t.matchUpAverageTimes&&(t.matchUpAverageTimes.splice(e,1),this.commitDraft(t))}setAverageFormatCodes(e,t){let n=P$(this.state.draft),r=n.matchUpAverageTimes?.[e];r&&(r.matchUpFormatCodes=t,this.commitDraft(n))}setAverageTime(e,t,n,r){let i=P$(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=P$(this.state.draft),n=t.matchUpAverageTimes?.[e];n&&(n.averageTimes.push({categoryTypes:[],minutes:{default:60}}),this.commitDraft(t))}removeAverageCategoryOverride(e,t){let n=P$(this.state.draft),r=n.matchUpAverageTimes?.[e];r&&(r.averageTimes.splice(t,1),this.commitDraft(n))}setAverageOverrideCategories(e,t,n,r){let i=P$(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=P$(this.state.draft);e.matchUpRecoveryTimes||=[],e.matchUpRecoveryTimes.push({matchUpFormatCodes:[],recoveryTimes:[{categoryNames:[],minutes:{default:30}}]}),this.commitDraft(e)}removeRecoveryFormatGroup(e){let t=P$(this.state.draft);t.matchUpRecoveryTimes&&(t.matchUpRecoveryTimes.splice(e,1),this.commitDraft(t))}setRecoveryFormatCodes(e,t){let n=P$(this.state.draft),r=n.matchUpRecoveryTimes?.[e];r&&(r.matchUpFormatCodes=t,this.commitDraft(n))}setRecoveryTime(e,t,n,r){let i=P$(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=P$(this.state.draft),n=t.matchUpRecoveryTimes?.[e];n&&(n.recoveryTimes.push({categoryTypes:[],minutes:{default:30}}),this.commitDraft(t))}removeRecoveryCategoryOverride(e,t){let n=P$(this.state.draft),r=n.matchUpRecoveryTimes?.[e];r&&(r.recoveryTimes.splice(t,1),this.commitDraft(n))}setRecoveryOverrideCategories(e,t,n,r){let i=P$(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?.(P$(e))}emit(){for(let e of this.listeners)e(this.state)}},I$=()=>`se-section`,L$=()=>`se-section-header`,R$=()=>`se-section-chevron`,z$=()=>`se-section-body`,B$=()=>`se-field-row`,V$=()=>`se-field-label`,H$=()=>`se-field-input`,U$=()=>`se-field-unit`,W$=()=>`se-checkbox-row`,G$=()=>`se-format-group`,K$=()=>`se-format-group-header`,q$=()=>`se-format-group-label`,J$=()=>`se-tag-picker`,Y$=()=>`sp-chip`,X$=()=>`sp-chip__remove`,Z$=()=>`se-tag-add-wrap`,Q$=()=>`sp-btn-icon`,$$=()=>`se-override-row`,e1=()=>`se-override-categories`,t1=()=>`se-override-remove`,n1=()=>`sp-btn sp-btn--sm sp-btn--outline se-add-btn`,r1=()=>`sp-btn-icon sp-btn-icon--danger`,i1=()=>`se-editor`;function a1(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=W$();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=W$();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 o1=`is-success`,s1=`is-danger`;function c1(e){if(e===``)return!0;let t=parseInt(e,10);return!isNaN(t)&&t>=0&&String(t)===e.trim()}function l1(e,t){if(t===``){e.classList.remove(o1,s1);return}c1(t)?(e.classList.remove(s1),e.classList.add(o1)):(e.classList.remove(o1),e.classList.add(s1))}function u1(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=B$();let o=document.createElement(`div`);o.className=V$(),o.textContent=i;let s=document.createElement(`input`);s.type=`text`,s.className=H$(),s.placeholder=`0`,s.addEventListener(`input`,()=>{l1(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 d1=`is-success`,f1=`is-danger`;function p1(e){if(e===``)return!0;let t=parseInt(e,10);return!isNaN(t)&&t>=0&&String(t)===e.trim()}function m1(e,t,n){if(t===``&&n){e.classList.remove(d1,f1);return}p1(t)&&(t!==``||n)?(e.classList.remove(f1),e.classList.add(d1)):(e.classList.remove(d1),e.classList.add(f1))}function h1(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=g1(`Default`,`min`,!1),i=g1(`Doubles override`,`min`,!0);t.appendChild(r.row),t.appendChild(i.row),r.input.addEventListener(`input`,()=>{m1(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`,()=>{m1(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=g1(`Default`,`min`,!1),c=g1(`Doubles override`,`min`,!0);t.appendChild(s.row),t.appendChild(c.row),s.input.addEventListener(`input`,()=>{m1(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`,()=>{m1(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 g1(e,t,n){let r=document.createElement(`div`);r.className=B$();let i=document.createElement(`div`);i.className=V$(),i.textContent=e;let a=document.createElement(`input`);a.type=`text`,a.className=H$(),a.placeholder=n?`—`:`0`;let o=document.createElement(`div`);return o.className=U$(),o.textContent=t,r.appendChild(i),r.appendChild(a),r.appendChild(o),{row:r,input:a}}var _1=`is-success`,v1=`is-danger`;function y1(e){if(e===``)return!0;let t=parseInt(e,10);return!isNaN(t)&&t>=0&&String(t)===e.trim()}function b1(e,t,n){if(t===``&&n){e.classList.remove(_1,v1);return}y1(t)&&(t!==``||n)?(e.classList.remove(v1),e.classList.add(_1)):(e.classList.remove(_1),e.classList.add(v1))}function x1(e){let t=document.createElement(`div`);t.className=G$();let n=document.createElement(`div`);n.className=K$();let r=document.createElement(`div`);r.style.flex=`1`;let i=document.createElement(`div`);i.className=q$(),i.textContent=`Formats`,r.appendChild(i);let a=document.createElement(`div`);a.className=J$();for(let t of e.formatCodes){let n=document.createElement(`span`);n.className=Y$(),n.title=`${t} — click to edit`;let r=document.createElement(`span`);r.textContent=j$(t),n.addEventListener(`click`,()=>{Wa({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=X$(),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=Z$();let s=document.createElement(`button`);s.className=Q$(),s.textContent=`+`,s.type=`button`,s.title=`Add format code`,s.addEventListener(`click`,t=>{t.stopPropagation(),Wa({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=r1(),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=$$();let a=document.createElement(`div`);a.className=`${e1()}${r.isDefault?` all`:``}`,a.textContent=r.categoryLabel;let o=document.createElement(`input`);o.type=`text`,o.className=H$(),o.value=String(r.defaultMinutes),o.placeholder=`0`;let s=n;o.addEventListener(`input`,()=>{b1(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=U$(),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=H$(),u.value=r.doublesMinutes===void 0?``:String(r.doublesMinutes),u.placeholder=`—`,u.addEventListener(`input`,()=>{b1(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=t1(),t.textContent=`×`,t.addEventListener(`click`,()=>e.onRemoveOverride(s)),i.appendChild(t)}t.appendChild(i)}let l=document.createElement(`button`);return l.className=n1(),l.textContent=`+ Add Override`,l.type=`button`,l.addEventListener(`click`,()=>e.onAddOverride()),t.appendChild(l),t}function S1(e,t){let n=document.createElement(`div`),r=document.createElement(`div`);n.appendChild(r);let i=document.createElement(`button`);i.className=n1(),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=x1({formatCodes:a.matchUpFormatCodes,overrides:o,availableFormats:t.matchUpFormatCodes??C1(),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 C1(){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 w1(e,t){let n=document.createElement(`div`),r=document.createElement(`div`);n.appendChild(r);let i=document.createElement(`button`);i.className=n1(),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=x1({formatCodes:a.matchUpFormatCodes,overrides:o,availableFormats:t.matchUpFormatCodes??T1(),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 T1(){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 E1(e,t){let n=document.createElement(`div`);n.className=i1();let r=[{id:`modificationFlags`,label:`Modification Flags`,factory:()=>a1(e)},{id:`dailyLimits`,label:`Daily Limits`,factory:()=>u1(e)},{id:`defaultTimes`,label:`Default Times`,factory:()=>h1(e)},{id:`averageTimes`,label:`Match Average Times`,factory:()=>S1(e,t)},{id:`recoveryTimes`,label:`Match Recovery Times`,factory:()=>w1(e,t)}],i=[];for(let t of r){let r=document.createElement(`div`);r.className=I$();let a=document.createElement(`div`);a.className=L$();let o=document.createElement(`span`);o.className=R$();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=z$();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 D1=class e{constructor(e){this.container=null,this.store=new F$(e),this.panel=E1(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 O1(e,t){let n=new D1(e);return n.render(t),n}var k1=ga,A1=(()=>{let e=new Map;for(let t of k1)t.format&&e.set(t.format,t);return e})();function j1(e){if(e)return A1.get(e)}var M1=k1.filter(e=>e.format&&e.name).sort((e,t)=>(e.name??``).localeCompare(t.name??``));function N1(e){return typeof e==`string`?e:e.matchUpFormat}function P1(e){return(typeof e==`string`?``:e.name??``)||(j1(N1(e))?.name??``)}function F1(e){return(typeof e==`string`?``:e.description??``)||(j1(N1(e))?.desc??``)}function I1(e){return typeof e==`string`?{matchUpFormat:e}:{...e}}var L1=`SET3-S:6/TB7`;function R1(){return{defaultMatchUpFormat:L1,matchUpFormats:[],requireParticipantsForScoring:!1,allowChangePropagation:!1,allowDeletionWithScoresPresent:{drawDefinitions:!1,structures:!1},matchUpStatusCodes:{ABANDONED:[],CANCELLED:[],DEFAULTED:[],INCOMPLETE:[],RETIRED:[],WALKOVER:[]}}}function z1(e){return structuredClone(e)}var B1=class{constructor(e){this.listeners=new Set,this.config=e,this.state={draft:z1(e.initialPolicy??R1()),expandedSections:new Set([`defaults`,`allowedFormats`]),expandedStatuses:new Set,advancedOpen:!1,dirty:!1}}isReadonly(){return this.config.readonly===!0}getState(){return this.state}getData(){return z1(this.state.draft)}setData(e){this.state={...this.state,draft:z1(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=z1(this.state.draft);t.defaultMatchUpFormat=e,this.commitDraft(t)}setRequireParticipants(e){if(this.isReadonly())return;let t=z1(this.state.draft);t.requireParticipantsForScoring=e,this.commitDraft(t)}setRequireAllPositions(e){if(this.isReadonly())return;let t=z1(this.state.draft);e==="default"?delete t.requireAllPositionsAssigned:t.requireAllPositionsAssigned=e===`true`,this.commitDraft(t)}setAllowChangePropagation(e){if(this.isReadonly())return;let t=z1(this.state.draft);t.allowChangePropagation=e,this.commitDraft(t)}setAllowDeletionDraws(e){if(this.isReadonly())return;let t=z1(this.state.draft);t.allowDeletionWithScoresPresent??={},t.allowDeletionWithScoresPresent.drawDefinitions=e,this.commitDraft(t)}setAllowDeletionStructures(e){if(this.isReadonly())return;let t=z1(this.state.draft);t.allowDeletionWithScoresPresent??={},t.allowDeletionWithScoresPresent.structures=e,this.commitDraft(t)}addAllowedFormat(e){if(this.isReadonly())return;let t=z1(this.state.draft);t.matchUpFormats??=[];let n={matchUpFormat:``,...e};t.matchUpFormats.push(n),this.commitDraft(t)}removeAllowedFormat(e){if(this.isReadonly())return;let t=z1(this.state.draft);t.matchUpFormats&&(t.matchUpFormats.splice(e,1),this.commitDraft(t))}setAllowedFormatField(e,t,n){if(this.isReadonly())return;let r=z1(this.state.draft);if(!r.matchUpFormats?.[e])return;let i=I1(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&&N1(e)===n):!1}addAllowedFormatCategory(e,t,n){if(this.isReadonly())return;let r=n.trim();if(!r)return;let i=z1(this.state.draft);if(!i.matchUpFormats?.[e])return;let a=I1(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=z1(this.state.draft),i=r.matchUpFormats?.[e];if(!i)return;let a=I1(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=z1(this.state.draft);r.matchUpStatusCodes??={},r.matchUpStatusCodes[e]??=[],!r.matchUpStatusCodes[e].includes(n)&&(r.matchUpStatusCodes[e].push(n),this.commitDraft(r))}removeStatusCode(e,t){if(this.isReadonly())return;let n=z1(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=z1(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=z1(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?.(z1(e))}emit(){for(let e of this.listeners)e(this.state)}},V1=`__custom__`,H1=`standard`,U1=`tiebreak`,W1=`timed`,G1=`sc-format-row`,K1=`sc-format-label`,q1=`sc-format-select`;function J1(){return{bestOf:3,setType:H1,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 Y1(e){let n=J1(),r=t.matchUpFormatCode.parse?.(e);return r?(typeof r.bestOf==`number`&&(n.bestOf=r.bestOf),r.setFormat&&X1(n,r.setFormat),r.finalSetFormat&&Z1(n,r.finalSetFormat),n):n}function X1(e,t){if(t.timed){e.setType=W1,typeof t.minutes==`number`&&(e.minutes=t.minutes),e.timedBasis=t.based===`P`?`P`:`G`;return}if(t.tiebreakSet){e.setType=U1,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=H1,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 Z1(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 Q1(e){let t={bestOf:e.bestOf};if(e.setType===W1)t.setFormat={timed:!0,minutes:e.minutes},e.timedBasis===`P`&&(t.setFormat.based=`P`);else if(e.setType===U1)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 $1(e){try{return t.matchUpFormatCode.stringify?.(e)}catch{return}}function e0(e){return e?!!t.matchUpFormatCode.parse?.(e):!1}function t0(e){let t=e.initialValue||`SET3-S:6/TB7`,n=Y1(t),r=document.createElement(`div`);r.className=`sc-format-picker`;let i=document.createElement(`div`);i.className=G1;let a=document.createElement(`label`);a.textContent=`Preset`,a.className=K1;let o=document.createElement(`select`);o.className=q1;for(let e of M1){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=V1,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=K1;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=Y1(r)),v(),p&&y(),e.onChange(r)}function v(){let e=j1(t);e?.format?(o.value=e.format,c.style.display=`none`):(o.value=V1,c.style.display=``,u.value=t),h.textContent=t;let n=e0(t);g.textContent=n?`✓ valid`:`✗ invalid`,g.dataset.valid=n?`true`:`false`}o.addEventListener(`change`,()=>{let e=o.value;if(e===V1){c.style.display=``,u.value=t,u.focus();return}_(e)}),u.addEventListener(`input`,()=>{_(u.value,{skipBuilderResync:!0})});function y(){f.innerHTML=``,f.appendChild(n0(`Best of`,[1,3,5],n.bestOf,e=>{n.bestOf=e,b()})),f.appendChild(r0(`Set type`,[{value:H1,label:`Standard`},{value:U1,label:`Tiebreak set`},{value:W1,label:`Timed`}],n.setType,e=>{n.setType=e,b()})),n.setType===H1?(f.appendChild(n0(`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(i0(`Tiebreak at set end`,n.hasTiebreak,e=>{n.hasTiebreak=e,b()})),n.hasTiebreak&&f.appendChild(n0(`Tiebreak first to`,[5,7,10,12,15,21],n.tiebreakTo,e=>{n.tiebreakTo=e,b()})),f.appendChild(i0(`No-advantage games`,n.noAd,e=>{n.noAd=e,b()}))):n.setType===U1?(f.appendChild(n0(`First to`,[7,10,11,15,21],n.tbOnlyTo,e=>{n.tbOnlyTo=e,b()})),f.appendChild(r0(`Scoring`,[{value:``,label:`Sideout`},{value:`RALLY`,label:`Rally`}],n.tbOnlyModifier,e=>{n.tbOnlyModifier=e,b()})),f.appendChild(i0(`No-advantage`,n.tbOnlyNoAd,e=>{n.tbOnlyNoAd=e,b()}))):(f.appendChild(n0(`Minutes`,[10,15,20,25,30,45],n.minutes,e=>{n.minutes=e,b()})),f.appendChild(r0(`Basis`,[{value:`G`,label:`Games`},{value:`P`,label:`Points`}],n.timedBasis,e=>{n.timedBasis=e,b()}))),f.appendChild(i0(`Different final-set rules`,n.differentFinal,e=>{n.differentFinal=e,b()})),n.differentFinal&&(f.appendChild(r0(`Final set`,[{value:`standard`,label:`Standard set`},{value:`matchTiebreak`,label:`Match tiebreak`}],n.finalKind,e=>{n.finalKind=e,b()})),n.finalKind===`standard`?(f.appendChild(n0(`Final games to`,[4,6,8],n.finalSetTo,e=>{n.finalSetTo=e,b()})),f.appendChild(n0(`Final tiebreak to`,[7,10,12,15],n.finalTbTo,e=>{n.finalTbTo=e,b()}))):f.appendChild(n0(`Match tiebreak to`,[7,10,15,21],n.finalMatchTbTo,e=>{n.finalMatchTbTo=e,b()})))}function b(){let e=$1(Q1(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=Y1(r),v(),p&&y())},destroy(){r.remove()}}}function n0(e,t,n,r){let i=document.createElement(`div`);i.className=G1;let a=document.createElement(`label`);a.textContent=e,a.className=K1;let o=document.createElement(`select`);o.className=q1;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 r0(e,t,n,r){let i=document.createElement(`div`);i.className=G1;let a=document.createElement(`span`);a.textContent=e,a.className=K1;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 i0(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 a0(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=t0({initialValue:e.getData().defaultMatchUpFormat,readonly:e.isReadonly(),onChange:t=>e.setDefaultMatchUpFormat(t)});n.appendChild(a.element),t.appendChild(n);let o=o0({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=o0({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=o0({label:`Draw definitions`,help:``,initial:!!e.getData().allowDeletionWithScoresPresent?.drawDefinitions,readonly:e.isReadonly(),onChange:t=>e.setAllowDeletionDraws(t)}),h=o0({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 o0(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 s0(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 c0(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(l0(``)),r.appendChild(l0(`Name`)),r.appendChild(l0(`Format`)),r.appendChild(l0(`Description`)),r.appendChild(l0(``)),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 M1){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=M1.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=u0(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 l0(e){let t=document.createElement(`div`);return t.className=`sc-format-list-header-label`,t.textContent=e,t}function u0(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=f0(`Display name`,a),u=f0(`SET3-S:6/TB7`,a);u.classList.add(`sc-format-list-format-input`);let d=f0(`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 _=d0({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=d0({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=I1(e),n=P1(e),r=N1(e),i=F1(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 d0(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=s0({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 f0(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 p0=[`ABANDONED`,`CANCELLED`,`DEFAULTED`,`INCOMPLETE`,`RETIRED`,`WALKOVER`];function m0(e){let t=document.createElement(`div`);t.className=`sc-section-body-inner`;let n=p0.map(t=>h0(e,t));for(let r of n)t.appendChild(g0(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=s0({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)}a.textContent=e.advancedOpen?`▾`:`▸`,s.style.display=e.advancedOpen?`block`:`none`,l.setValues(e.draft.processCodes?.incompleteAssignmentsOnDefault??[])}return{element:t,update:u}}function h0(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=s0({values:e.getData().matchUpStatusCodes?.[t]??[],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 g0(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=_0(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 _0(e){return e.charAt(0)+e.slice(1).toLowerCase()}function v0(e){let t=document.createElement(`div`);t.className=`sc-editor`;let n=[{id:`defaults`,label:`Defaults`,factory:()=>a0(e)},{id:`allowedFormats`,label:`Allowed match-up formats`,factory:()=>c0(e)},{id:`statusCodes`,label:`Status code refinements`,factory:()=>m0(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 y0=class e{constructor(e){this.container=null,this.store=new B1(e),this.panel=v0(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()}}}},b0=[{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)`}],x0=[`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 S0(){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 C0(e){return structuredClone(e)}var w0=class{constructor(e){this.listeners=new Set,this.config=e,this.state={draft:C0(e.initialPolicy??S0()),expandedSections:new Set([`profile`,`flags`,`thresholds`,`drawTypeOverrides`]),dirty:!1}}getState(){return this.state}getData(){return C0(this.state.draft)}setData(e){this.state={...this.state,draft:C0(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=C0(this.state.draft);t.policyName=e,this.commitDraft(t)}setPositioning(e){let t=C0(this.state.draft);t.seedingProfile??={},t.seedingProfile.positioning=e,this.commitDraft(t)}setValidSeedPositionsIgnore(e){let t=C0(this.state.draft);t.validSeedPositions={ignore:e},this.commitDraft(t)}setDuplicateSeedNumbers(e){let t=C0(this.state.draft);t.duplicateSeedNumbers=e,this.commitDraft(t)}setDrawSizeProgression(e){let t=C0(this.state.draft);t.drawSizeProgression=e,this.commitDraft(t)}addThreshold(){let e=C0(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=C0(this.state.draft);t.seedsCountThresholds&&(t.seedsCountThresholds.splice(e,1),this.commitDraft(t))}setThresholdField(e,t,n){let r=C0(this.state.draft),i=r.seedsCountThresholds?.[e];i&&(i[t]=n,this.commitDraft(r))}sortThresholds(){let e=C0(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=C0(this.state.draft);n.seedingProfile??={},n.seedingProfile.drawTypes??={},n.seedingProfile.drawTypes[e]={positioning:t},this.commitDraft(n)}removeDrawTypeOverride(e){let t=C0(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=C0(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?.(C0(e))}emit(){for(let e of this.listeners)e(this.state)}},T0=()=>`sd-editor`,E0=()=>`sd-section`,D0=()=>`sd-section-header`,O0=()=>`sd-section-chevron`,k0=()=>`sd-section-body`,A0=()=>`sd-field-row`,j0=()=>`sd-field-label`,M0=()=>`sd-field-input`,N0=()=>`sd-checkbox-row`,P0=()=>`sd-checkbox-desc`,F0=()=>`sd-radio-group`,I0=()=>`sd-radio-option`,L0=()=>`sp-btn sp-btn--sm sp-btn--outline sd-add-btn`,R0=()=>`sp-btn sp-btn--sm sp-btn--ghost sd-sort-btn`,z0=()=>`sp-btn-icon sp-btn-icon--danger sd-remove-btn`,B0=()=>`sd-table-wrap`,V0=()=>`sd-table`,H0=()=>`sd-number-cell-input`,U0=()=>`sd-empty`,W0=()=>`sd-actions-row`,G0=()=>`sd-override-row`,K0=()=>`sd-override-add-row`,q0=()=>`sd-override-drawtype`,J0=()=>`sd-select`;function Y0(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=A0();let r=document.createElement(`div`);r.className=j0(),r.textContent=`Policy name`;let i=document.createElement(`input`);i.type=`text`,i.className=M0()+` 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=A0()+` sd-field-row--top`;let o=document.createElement(`div`);o.className=j0(),o.textContent=`Default positioning`,a.appendChild(o);let s=document.createElement(`div`);s.className=F0();let c=[];for(let t of b0){let n=document.createElement(`label`);n.className=I0();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=e.draft.seedingProfile?.positioning;for(let e of c)e.input.checked=e.value===t}return{element:t,update:l}}function X0(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=N0();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=P0(),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 Z0=[{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 Q0(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=B0();let r=document.createElement(`table`);r.className=V0();let i=document.createElement(`thead`),a=document.createElement(`tr`);for(let e of Z0){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=U0(),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=W0();let u=document.createElement(`button`);u.type=`button`,u.className=L0(),u.textContent=`+ Add threshold`,u.addEventListener(`click`,()=>e.addThreshold());let d=document.createElement(`button`);d.type=`button`,d.className=R0(),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 Z0){let a=document.createElement(`td`),o=document.createElement(`input`);o.type=`number`,o.min=String(n.min),o.className=H0(),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=z0(),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 $0(e,t){let n=document.createElement(`select`);n.className=J0();for(let e of b0){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 e2(e,t){let n=document.createElement(`div`),r=t.drawTypes??x0,i=document.createElement(`div`);n.appendChild(i);let a=document.createElement(`div`);a.className=U0(),a.textContent=`No draw-type overrides. The default positioning is used for every drawType.`,n.appendChild(a);let o=document.createElement(`div`);o.className=K0();let s=document.createElement(`select`);s.className=J0();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=$0(`WATERFALL`,()=>{}),u=document.createElement(`button`);u.type=`button`,u.className=L0(),u.textContent=`+ Add override`,u.addEventListener(`click`,()=>{let t=s.value;t&&e.addDrawTypeOverride(t,l.value)});let d=document.createElement(`div`);d.className=W0(),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=G0();let a=document.createElement(`div`);a.className=q0(),a.textContent=t;let o=$0(n,n=>e.setDrawTypeOverridePositioning(t,n)),s=document.createElement(`button`);s.type=`button`,s.className=z0(),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 t2(e,t){let n=document.createElement(`div`);n.className=T0();let r=[{id:`profile`,label:`Profile`,factory:()=>Y0(e)},{id:`flags`,label:`Flags`,factory:()=>X0(e)},{id:`thresholds`,label:`Seed Count Thresholds`,factory:()=>Q0(e)},{id:`drawTypeOverrides`,label:`Draw Type Overrides`,factory:()=>e2(e,t)}],i=[];for(let t of r){let r=document.createElement(`div`);r.className=E0();let a=document.createElement(`div`);a.className=D0();let o=document.createElement(`span`);o.className=O0();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=k0();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 n2=class e{constructor(e){this.container=null,this.store=new w0(e),this.panel=t2(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()}}}},r2=t.factoryConstants.policyConstants.POLICY_TYPE_PARTICIPANT;function i2(e){return structuredClone(e)}function a2(){return i2(t.fixtures.policies.POLICY_PRIVACY_DEFAULT[r2])}function o2(e){return e?.participant??{}}function s2(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 c2(){let e=o2(a2()),t=Object.keys(e).filter(t=>typeof e[t]==`boolean`).map(e=>({field:e,group:`participant`,label:s2(e)})),n=Object.keys(e.person??{}).filter(t=>typeof e.person[t]==`boolean`).map(e=>({field:e,group:`person`,label:s2(e)}));return[...t,...n]}function l2(e,t,n){let r=o2(e);return t===`person`?!!r.person?.[n]:!!r[n]}function u2(e,t,n,r){let i=o2(e),a=(e,t)=>{e&&n in e&&(e[n]=r),t&&n in t&&(t[n]=r)};t===`person`?a(i.person,i.individualParticipants?.person):a(i,i.individualParticipants)}function d2(e){return e?.policyName??``}function f2(e,t){e&&(e.policyName=t)}function p2(e){return structuredClone(e)}var m2=class{constructor(e){this.listeners=new Set,this.config=e,this.state={draft:p2(e.initialPolicy??a2()),dirty:!1}}getState(){return this.state}getData(){return p2(this.state.draft)}setData(e){this.state={...this.state,draft:p2(e),dirty:!1},this.emit()}setPolicyName(e){let t=p2(this.state.draft);f2(t,e),this.commitDraft(t)}setField(e,t,n){let r=p2(this.state.draft);u2(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?.(p2(e))}emit(){for(let e of this.listeners)e(this.state)}};function h2(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=c2(),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=d2(e.draft);for(let t of s){let n=c.get(`${t.group}.${t.field}`);n&&(n.checked=l2(e.draft,t.group,t.field))}}}}var g2=class e{constructor(e){this.container=null,this.store=new m2(e),this.panel=h2(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()}}}},_2=()=>`pc-layout`,v2=()=>`pc-panel`,y2=()=>`pc-panel-header`,b2=()=>`pc-panel-title`,x2=()=>`pc-panel-meta`,S2=()=>`pc-toolbar`,C2=()=>`pc-input`,w2=()=>`pc-select`,T2=()=>`pc-catalog`,E2=()=>`pc-group`,D2=()=>`pc-group-header`,O2=()=>`pc-group-chevron`,k2=()=>`pc-group-body`,A2=()=>`pc-card`,j2=()=>`pc-card-title`,M2=()=>`pc-card-meta`,N2=()=>`pc-type-badge`,P2=()=>`pc-editor`,F2=()=>`pc-editor-header`,I2=()=>`pc-editor-header-left`,L2=()=>`pc-editor-actions`,R2=()=>`sp-btn sp-btn--sm`,z2=()=>`sp-btn sp-btn--sm sp-btn--accent`,B2=()=>`pc-dirty-dot`,V2=()=>`pc-editor-body`,H2=()=>`pc-empty`,U2=()=>`pc-json-editor`,W2=()=>`pc-json-error`;function G2(e){let t=document.createElement(`div`);t.className=_2(),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 K2=`scheduling`,q2=`scoring`,J2=`seeding`,Y2=`draws`,X2=`avoidance`,Z2=`feedIn`,Q2=`progression`,$2=`roundNaming`,e4=`positionActions`,t4=`matchUpActions`,n4=`roundRobinTally`,r4=`rankingPoints`,i4=`competitiveBands`,a4=`voluntaryConsolation`,o4=`participant`,s4=`display`,c4=`audit`,l4=`Tournament Operations`,u4=`Scoring & Results`,d4=`Ranking Points`,f4=`Draw Configuration`,p4=`Participants`,m4=`Display & Audit`,h4=(e,t,n,r,i)=>({policyType:e,label:t,description:n,group:r,hasEditor:i}),g4=[h4(K2,`Scheduling`,`Match scheduling, average times, recovery times, daily limits`,l4,!0),h4(e4,`Position Actions`,`Allowed position actions (alternates, walkovers, withdrawals)`,l4,!1),h4(t4,`MatchUp Actions`,`Allowed matchUp status transitions and actions`,l4,!1),h4(X2,`Avoidance`,`Draw placement avoidance rules (club, nationality, region)`,l4,!1),h4(q2,`Scoring`,`Score entry validation and completion rules`,u4,!0),h4(n4,`Round Robin Tally`,`Round-robin group standing calculation method`,u4,!1),h4(r4,`Ranking Points`,`Point allocation by draw size, round, and result`,d4,!0),h4(i4,`Competitive Bands`,`Rating/ranking band definitions for competitive grouping`,u4,!1),h4(Y2,`Draws`,`Draw generation rules and structure options`,f4,!1),h4(J2,`Seeding`,`Seeding thresholds and placement rules by draw size`,f4,!0),h4(Z2,`Feed-In`,`Feed-in consolation structure rules`,f4,!1),h4(Q2,`Progression`,`Player progression between draw structures`,f4,!1),h4(a4,`Voluntary Consolation`,`Voluntary consolation entry rules`,f4,!1),h4($2,`Round Naming`,`Custom round name labels (QF, SF, F, etc.)`,f4,!1),h4(o4,`Participant Privacy`,`Which participant details are published publicly`,p4,!0),h4(s4,`Display`,`Client display configuration (public vs admin views)`,m4,!1),h4(c4,`Audit`,`Audit trail and change logging configuration`,m4,!1)];function _4(e){return g4.find(t=>t.policyType===e)}function v4(e){return e===`rankingPoints`?xQ():e===`scheduling`?N$():e===`scoring`?R1():e===`seeding`?S0():e===`participant`?a2():{}}var y4=[l4,u4,d4,f4,p4,m4];function b4(e,t){let n=t.toLowerCase().trim();return n?e.filter(e=>{let t=_4(e.policyType);return[e.name,e.description,e.policyType,t?.label??``,e.source].join(` `).toLowerCase().includes(n)}):e}function x4(e,t){let n=new Map;if(t===`type`){for(let e of y4)n.set(e,[]);for(let t of e){let e=_4(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 S4(e){let t=document.createElement(`div`);t.className=v2(),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=y2();let a=document.createElement(`div`);a.className=b2(),a.textContent=`Policy Catalog`;let o=document.createElement(`div`);o.className=x2(),i.appendChild(a),i.appendChild(o),t.appendChild(i);let s=document.createElement(`div`);s.className=S2();let c=document.createElement(`input`);c.type=`text`,c.placeholder=`Search policies...`,c.className=C2(),c.addEventListener(`input`,()=>e.onSearchChange(c.value));let l=document.createElement(`select`);l.className=w2();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=g4.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=T2(),t.appendChild(m);function h(t){r=t;let i=b4(t.catalog,t.searchQuery),a=x4(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=E2();let s=n.has(i),c=document.createElement(`div`);c.className=D2();let l=document.createElement(`span`);l.className=O2(),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=k2(),s&&(d.style.display=`none`);for(let n of o){let r=document.createElement(`div`);r.className=A2(),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=j2(),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=M2();let s=_4(n.policyType),c=document.createElement(`span`);c.className=N2(),c.textContent=s?.label??n.policyType;let l=document.createElement(`span`);l.className=`${N2()} ${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 C4(e){return structuredClone(e)}var w4=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:C4(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:C4(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:C4(e.policyData),editedName:e.name,dirty:!1})}applyPolicy(){let e=this.getSelectedItem();if(!e)return;let t={...e,policyData:this.state.editorDraft?C4(this.state.editorDraft):C4(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:v4(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:C4(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:C4(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 T4(e){let t=document.createElement(`div`);t.className=v2();let n=document.createElement(`div`);n.className=P2();let r=document.createElement(`div`);r.className=F2();let i=document.createElement(`div`);i.className=I2();let a=document.createElement(`div`);a.className=b2();let o=document.createElement(`input`);o.type=`text`,o.className=`${b2()} 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=N2();let c=document.createElement(`span`);c.className=N2(),c.textContent=`read-only`,c.style.display=`none`;let l=document.createElement(`div`);l.className=B2(),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=L2();let d=document.createElement(`button`);d.className=R2(),d.textContent=`Reset`,d.addEventListener(`click`,()=>e.onReset());let f=document.createElement(`button`);f.className=z2(),f.textContent=`Save`,f.addEventListener(`click`,()=>e.onSave());let p=document.createElement(`button`);p.className=R2(),p.textContent=`Apply`,p.addEventListener(`click`,()=>e.onApply());let m=document.createElement(`button`);m.className=R2(),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=L2();let g=document.createElement(`button`);g.className=z2(),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=V2(),n.appendChild(r),n.appendChild(_);let v=document.createElement(`div`);v.className=H2(),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=_4(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 E4(e){let t=document.createElement(`div`);t.className=U2();let n=document.createElement(`textarea`);n.value=JSON.stringify(e.initialData,null,2);let r=document.createElement(`div`);r.className=W2(),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 D4=class{constructor(e){this.currentEditor=null,this.container=null,this.store=new w4(e);let t=S4({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=T4({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=G2({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`?D1.createEditorInstance(n):e.policyType===`rankingPoints`?A$.createEditorInstance(n):e.policyType===`seeding`?n2.createEditorInstance(n):e.policyType===`scoring`?y0.createEditorInstance(n):e.policyType===`participant`?g2.createEditorInstance(n):E4(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 O4(e,t,n,r){e!==void 0&&e<0&&r.push({severity:`error`,path:t,message:n})}function k4(e,t){if(!e.defaultTimes)return;let n=e.defaultTimes.averageTimes;if(n)for(let e=0;e<n.length;e++)O4(n[e].minutes.default,`defaultTimes.averageTimes[${e}].minutes.default`,`Default average time must be non-negative`,t),O4(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++)O4(r[e].minutes.default,`defaultTimes.recoveryTimes[${e}].minutes.default`,`Default recovery time must be non-negative`,t)}function A4(e,t){if(!e.defaultDailyLimits)return;let n=e.defaultDailyLimits;O4(n.SINGLES,`defaultDailyLimits.SINGLES`,`Singles daily limit must be non-negative`,t),O4(n.DOUBLES,`defaultDailyLimits.DOUBLES`,`Doubles daily limit must be non-negative`,t),O4(n.total,`defaultDailyLimits.total`,`Total daily limit must be non-negative`,t)}function j4(e){let t=[];return k4(e,t),A4(e,t),e.matchUpAverageTimes&&M4(e.matchUpAverageTimes,`matchUpAverageTimes`,`averageTimes`,t),e.matchUpRecoveryTimes&&N4(e.matchUpRecoveryTimes,`matchUpRecoveryTimes`,t),P4(e,t),t}function M4(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++)O4(o[e].minutes.default,`${t}[${i}].${n}[${e}].minutes.default`,`Time must be non-negative`,r),O4(o[e].minutes.DOUBLES,`${t}[${i}].${n}[${e}].minutes.DOUBLES`,`Doubles time must be non-negative`,r)}}function N4(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++)O4(i.recoveryTimes[e].minutes.default,`${t}[${r}].recoveryTimes[${e}].minutes.default`,`Recovery time must be non-negative`,n),O4(i.recoveryTimes[e].minutes.DOUBLES,`${t}[${r}].recoveryTimes[${e}].minutes.DOUBLES`,`Doubles recovery time must be non-negative`,n)}}function P4(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 F4(e,t){let n=new D4(e);return n.render(t),n}e.AvailabilityGrid=KW,e.COMPETITIVENESS_BUCKETS=ub,e.COMPETITIVENESS_COLORS=JN,e.COURT_SVG_RESOURCE_SUB_TYPE=_h,e.CompositionEditorStore=PX,e.DEFAULT_COMPETITIVE_BANDS=KN,e.DEFAULT_COURT_CARD_CONFIG=U_,e.DEFAULT_COURT_LAYOUT_CONFIG=Nv,e.DEFAULT_DRAW_CARD_CONFIG=Ob,e.DEFAULT_EVENT_CARD_CONFIG=bx,e.DEFAULT_SCHEDULE_CELL_CONFIG=dX,e.DEFAULT_TOURNAMENT_CARD_CONFIG=Wh,e.DEFAULT_VENUE_CARD_CONFIG=$g,e.DEFAULT_VENUE_LOCATOR_CONFIG=ty,e.DrawStateManager=EC,e.EVENT_CARD_LIGHT_MODE_THRESHOLD=xx,e.HORIZON_DIRECTION=wL,e.HORIZON_ORDER=bR,e.HORIZON_SOURCE=CL,e.HORIZON_VARIANT=xR,e.INNER_QUANTILES=bL,e.InlineScoringManager=bs,e.MATCH_FORMATS=hC,e.MIN_HORIZON_DOMAIN=TL,e.NEUTRAL_SEGMENT_COLOR=YN,e.POLICY_TYPE_GROUPS=y4,e.POLICY_TYPE_METADATA=g4,e.PRESSURE_UNSUPPORTED=iI,e.PolicyCatalogControl=D4,e.PolicyCatalogStore=w4,e.ProfileStore=cV,e.RELATED_HIGHLIGHT=xY,e.SchedulePageControl=zY,e.SchedulePageStore=RY,e.SchedulingEditorControl=D1,e.SchedulingEditorStore=F$,e.SchedulingProfileControl=xV,e.TopologyBuilderControl=Kq,e.TopologyStore=GG,e.activateScheduleCellTypeAhead=MX,e.aggregateCompetitiveness=pb,e.applyDropCommit=QB,e.applyRelatedHighlight=CY,e.badmintonCourt=hh,e.barButton=XR,e.baseballDiamond=fh,e.basketballCourt=dh,e.blockLevels=cL,e.buildActiveStripPanel=cX,e.buildCardSkeleton=Uh,e.buildCompetitivenessBar=gb,e.buildCompetitivenessDonut=Eb,e.buildCourtCard=lv,e.buildCourtGridSlot=IY,e.buildCourtLayout=Xv,e.buildCourtSkeletonCard=Tv,e.buildDateStrip=yV,e.buildDrawCard=Jb,e.buildDrawOrderGame=HR,e.buildDrawSkeletonCard=px,e.buildEdgeEditor=BK,e.buildEditorShell=T4,e.buildEventCard=Jx,e.buildEventSkeletonCard=fS,e.buildHiveIDLogin=sC,e.buildHorizonRibbonSvg=GL,e.buildHorizonRowSvg=iR,e.buildHorizonRows=PL,e.buildInteractiveScoringShell=hQ,e.buildIssueIndex=XB,e.buildIssuesPanel=PB,e.buildJsonEditor=E4,e.buildLadderChart=DF,e.buildMatchUpCard=TY,e.buildMatchUpCatalog=jY,e.buildNodeEditor=OK,e.buildPathDifficultyBar=$I,e.buildPolicyCatalogLayout=G2,e.buildPolicyCatalogPanel=S4,e.buildPressureChart=rI,e.buildPressureHorizon=OR,e.buildPressureSeries=BI,e.buildPressureSmallMultiples=KI,e.buildPressureTable=rL,e.buildRatingDistributionChart=bF,e.buildRoundCard=mV,e.buildRoundCatalog=kB,e.buildScheduleDateStrip=FY,e.buildScheduleGridCell=fX,e.buildScheduleInspectorPanel=oY,e.buildScheduleIssueIndex=MY,e.buildScheduleIssuesPanel=PY,e.buildSchedulePageLayout=nY,e.buildSchedulingEditorPanel=E1,e.buildSchedulingProfileLayout=fB,e.buildSegmentedBar=Db,e.buildSetScore=Ys,e.buildSkeletonCard=Fg,e.buildStructureCard=MG,e.buildStructureMinimap=Ti,e.buildTeamCard=sb,e.buildToolbar=hq,e.buildTopologyBuilderLayout=gq,e.buildTopologyCanvas=nK,e.buildTournamentCard=gg,e.buildVenueBoard=gV,e.buildVenueCard=b_,e.buildVenueLocator=Py,e.buildVenueSkeletonCard=L_,e.burstChart=DP,e.byPathDifficulty=VI,e.cModal=R,e.calculateComplement=Gs,e.cellCardConfig=$v,e.clearRelatedHighlight=SY,e.competitivenessColor=rP,e.completeMagicLink=cC,e.compositions=gi,e.computeActiveStrip=YY,e.computeActiveStripCell=JY,e.computeBaseRoundByEvent=fY,e.computeReschedulePlacements=nX,e.consumeMagicLink=ZS,e.controlBar=mz,e.courthiveComponentsVersion=mC,e.createAvailabilityGrid=qW,e.createCardPopoverManager=pB,e.createCompositionEditor=FZ,e.createCourtSvg=wh,e.createDrawOrderGame=mL,e.createInlineScoringFooter=pQ,e.createNotesEditor=rh,e.createPolicyCatalog=F4,e.createPrintCompositionEditor=VZ,e.createSchedulePage=NX,e.createSchedulingEditor=O1,e.createSchedulingProfile=SV,e.describeCourt=Ny,e.destroyTipster=sh,e.destroyVenueLocator=Fy,e.drawer=wd,e.dropDownButton=GR,e.emptySchedulingPolicy=N$,e.engineToMatchUp=vs,e.extractCourtSvgSport=Bh,e.extractImageURL=zh,e.filterCatalog=CB,e.filterMatchUpCatalog=dY,e.filterPolicyCatalog=b4,e.findIssuesForLocator=iV,e.formatAddress=Eh,e.formatCodeLabel=j$,e.formatDateRange=Ih,e.formatFeeRange=Kg,e.formatVenueLocation=Dh,e.fromFactoryDrawData=BP,e.fromLegacyDraw=UP,e.generatePreviewMatchUps=cG,e.getActualPressure=zI,e.getAgeCategoryModal=Mo,e.getCategoryModal=Fo,e.getCompetitivenessBand=eP,e.getCompetitivenessFromScoreString=tP,e.getFlightProfileModal=fs,e.getGenerateTeamsModal=Ji,e.getMatchUpFormatModal=Wa,e.getMatchWinner=Ws,e.getMaxAllowedScore=Bs,e.getMockParticipantsModal=Hi,e.getPlannedRoundKeys=TB,e.getPolicyTypeMeta=_4,e.getPortPosition=NG,e.getProjectedPressure=FI,e.getRoundAt=rV,e.getScoringConfig=Cs,e.getSetFormatForIndex=Ls,e.getSetWinner=Hs,e.getVenueRounds=nV,e.groupCatalog=wB,e.groupCourts=Jv,e.groupMatchUpCatalog=bY,e.groupPolicyCatalog=x4,e.hasVenueGeo=jy,e.hockeyRink=ph,e.initDrawer=Td,e.isCompletedStatus=uY,e.isExistingUserConflict=QS,e.isMatchComplete=Us,e.isScorable=ms,e.isSetComplete=Vs,e.isSetTiebreakOnly=Rs,e.isSetTimed=zs,e.mapCourtToCardData=Mv,e.mapDrawDefinitionToCardData=yx,e.mapEventToCardData=kS,e.mapMatchUpToCellData=jX,e.mapTournamentToCardData=Zg,e.mapVenueToCardData=H_,e.mapVenueToLocatorData=$y,e.matchUpLabel=rY,e.matchUpSearchKey=aY,e.maxDisplacementFor=fL,e.maxSeverity=oV,e.mergeCourtCardConfig=W_,e.mergeCourtLayoutConfig=Pv,e.mergeDrawCardConfig=kb,e.mergeEventCardConfig=Sx,e.mergeTournamentCardConfig=Gh,e.mergeVenueCardConfig=e_,e.mergeVenueLocatorConfig=ny,e.moveSlot=gL,e.notesToolbar=zm,e.openCompositionEditorModal=ea,e.openScheduleCellConfigModal=na,e.opponentSpread=SL,e.padelCourt=gh,e.participantLabel=iY,e.pickProgressionStructure=zP,e.pickleballCourt=mh,e.ratingToElo=hI,e.renderButtons=gC,e.renderContainer=oi,e.renderField=vn,e.renderForm=Ai,e.renderInlineMatchUp=gs,e.renderMatchUp=ni,e.renderMenu=ih,e.renderOptions=_n,e.renderParticipant=_r,e.renderParticipantInput=Tn,e.renderRound=ri,e.renderRoundHeader=yr,e.renderSchematicMatchUp=Di,e.renderSchematicRound=Oi,e.renderSchematicStructure=ki,e.renderScorecard=rQ,e.renderStructure=ii,e.renderTeamVsHeader=iQ,e.requestMagicLink=XS,e.resetScoringConfig=Ts,e.reshuffleDrawOrder=yL,e.resolveCourtSport=Sh,e.resolveEventStatus=hS,e.resolveHorizonDomain=OL,e.resolveParticipantRating=vI,e.resolvePublishedComposition=vi,e.resolveTournamentStatus=Bg,e.revealDrawOrder=vL,e.scoreDrawOrder=pL,e.scoringModal=pu,e.selectItem=qR,e.setScoringConfig=ws,e.settingOf=Kv,e.sharedYDomain=WI,e.shouldApplySmartComplement=Ks,e.shouldCreateNextSet=Js,e.shouldShowTiebreak=qs,e.showCourtAvailabilityModal=WW,e.shuffleDeranged=sL,e.shuffleWithSeed=aL,e.sideParticipantName=ps,e.signup=JS,e.sortVenueCourts=My,e.sportFromMatchUpFormat=xh,e.standardTemplates=Iq,e.summarizeCourts=Yv,e.surfaceOf=qv,e.swapSlots=_L,e.syncClearVisibility=AC,e.tennisCourt=uh,e.tipster=ch,e.toggleOverlay=iz,e.topologyToDrawOptions=lJ,e.totalBuckets=mb,e.updateHeadingSelect=Vm,e.updateTieScore=aQ,e.updateToolbarState=Bm,e.validateProfile=RB,e.validateSchedulingPolicy=j4,e.validateTopology=XK,e.validator=mn,Object.defineProperty(e,"validators",{enumerable:!0,get:function(){return TC}}),e.verifyExisting=YS,e.weightedQuantile=xL,e.winProbability=xI,e.wrapSearchWithClear=kC});