courthive-components 3.4.5 → 3.4.6

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.
@@ -1,4 +1,4 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("tods-competition-factory"),require("@tiptap/extension-color"),require("@tiptap/core"),require("@tiptap/extension-text-style"),require("@tiptap/extension-highlight"),require("@tiptap/starter-kit"),require("@tiptap/extension-text-align"),require("@tiptap/extension-youtube")):typeof define==`function`&&define.amd?define([`exports`,`tods-competition-factory`,`@tiptap/extension-color`,`@tiptap/core`,`@tiptap/extension-text-style`,`@tiptap/extension-highlight`,`@tiptap/starter-kit`,`@tiptap/extension-text-align`,`@tiptap/extension-youtube`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e[`courthive-components`]={},e.competitionFactory,e.TiptapExtensionColor,e.TiptapCore,e.TiptapExtensionTextStyle,e.TiptapExtensionHighlight,e.TiptapStarterKit,e.TiptapExtensionTextAlign,e.TiptapExtensionYoutube))})(this,function(e,t,n,r,i,a,o,s,c){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var l=Object.create,u=Object.defineProperty,d=Object.getOwnPropertyDescriptor,f=Object.getOwnPropertyNames,p=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty,h=(e,t)=>()=>(e&&(t=e(e=0)),t),g=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),_=(e,t)=>{let n={};for(var r in e)u(n,r,{get:e[r],enumerable:!0});return t||u(n,Symbol.toStringTag,{value:`Module`}),n},v=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=f(t),a=0,o=i.length,s;a<o;a++)s=i[a],!m.call(e,s)&&s!==n&&u(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=d(t,s))||r.enumerable});return e},y=(e,t,n)=>(n=e==null?{}:l(p(e)),v(t||!e||!e.__esModule?u(n,`default`,{value:e,enumerable:!0}):n,e));a=y(a),o=y(o),s=y(s),c=y(c);var b=y(g(((e,t)=>{(function(){"use strict";var e={}.hasOwnProperty;function n(){for(var e=``,t=0;t<arguments.length;t++){var n=arguments[t];n&&(e=i(e,r(n)))}return e}function r(t){if(typeof t==`string`||typeof t==`number`)return t;if(typeof t!=`object`)return``;if(Array.isArray(t))return n.apply(null,t);if(t.toString!==Object.prototype.toString&&!t.toString.toString().includes(`[native code]`))return t.toString();var r=``;for(var a in t)e.call(t,a)&&t[a]&&(r=i(r,a));return r}function i(e,t){return t?e?e+` `+t:e+t:e}t!==void 0&&t.exports?(n.default=n,t.exports=n):typeof define==`function`&&typeof define.amd==`object`&&define.amd?define(`classnames`,[],function(){return n}):window.classNames=n})()}))());function x({variant:e}){return(0,b.default)(`chc-placeholder`,e===`showAddress`&&`chc-placeholder--show-address`)}var S=e=>`chc-participant`,C=e=>(0,b.default)(`chc-participant-name`,e?.variant&&`chc-participant-name--${e.variant}`),w=e=>(0,b.default)(`chc-participant-type`,e?.variant&&`chc-participant-type--${e.variant}`);function T({drawPosition:e,sideNumber:t}){return(0,b.default)(`chc-participant-container`,t===1&&`chc-participant-container--side1`)}function E({winnerChevron:e,isDoubles:t}){return e?t?`chc-chevron-doubles--winner`:`chc-chevron--winner`:``}var D=()=>`chc-participant-detail`;function O({individualParticipant:e,className:t}){let{city:n,state:r,countryCode:i}=e?.person?.addresses?.[0]||{},a=[n,r,i].filter(Boolean).join(`, `)||` `,o=document.createElement(`div`);return o.className=(0,b.default)(D(),t),o.innerHTML=a,o}var k=()=>`chc-backdrop`,A=()=>`chc-modal`,j=()=>`chc-body-freeze`,M=()=>`chc-modal-container`,N=()=>`chc-modal-dialog`,P=()=>`chc-modal-header`,F=()=>`chc-modal-title`,ee=()=>`chc-modal-footer`,te=`Nothing to see here`;function I(e){return typeof e==`function`}function L(e){return typeof e==`string`}function R(e){return Array.isArray(e)}function ne(e){if(e)for(;e.firstChild;)e.firstChild.remove()}var z=(()=>{let e=j(),t={},n=[],r,i=[],a=[],o,s=e=>{if(e){let t;a=a.filter(n=>(n.id===e&&(t=n),n.id!==e)),t&&t.remove()}else{let e=a.pop();e&&e.remove()}},c=()=>{o&&(o.style.opacity=`0`,o.style.display=`none`)},l=o=>{let l=a.length;if(o&&t[l]===!1)return;let u=i.pop(),d=n.pop();I(u)&&u({content:d}),document.querySelectorAll(`[data-modal-popover]`).forEach(e=>e.remove()),document.body.classList.remove(e),document.body.style.top=null,window.scrollTo({top:r,behavior:`instant`}),c(),s()},u=()=>{o=document.createElement(`div`),o.className=k(),o.id=`cmdl-backdrop`,o.onclick=()=>l(!0),document.body.appendChild(o)},d=({config:t})=>{r=window.scrollY,document.body.classList.add(e),document.body.style.top=`-${r}px`,o||u(),o.style.display=``,t?.backdrop!==!1&&(o.style.backgroundColor=`var(--chc-bg-overlay)`,o.style.transition=`opacity 0.15s linear`,o.style.opacity=`1`)},f=({config:e,attr:t,attrs:n,unit:r=`em`,value:i})=>{let a;return L(t)?a=re({element:e,attr:t}):R(n)&&(a=n.map(t=>re({element:e,attr:t})).find(Boolean)),a!==void 0&&(i=a),Number.isNaN(i)?i:`${i}${r}`},p=({buttons:e,config:t,modalNumber:r,registry:i})=>{i?.clear();let a=document.createElement(`div`);a.className=ee(),a.style.padding=f({config:t,attrs:[`footer.padding`,`padding`],value:`1`});let o={label:t?.dictionary?.close||`Close`,onClick:()=>z.close(),intent:`is-info`};for(let t of e){if(t.hide)continue;let e={...o,...t},s=document.createElement(`button`);e.disabled!==void 0&&(s.disabled=e.disabled),e.id&&(s.id=e.id,i?.set(e.id,s)),s.className=e?.footer?.className||`button font-medium`,e.intent&&e.intent!==`none`&&s.classList.add(e.intent);let c=e?.footer?.style||``;s.style.cssText=`margin-right: .5em;`+(c?` `+c:``),s.innerHTML=e.label||e.text||``,s.onclick=t=>{t.stopPropagation(),I(e.onClick)&&e.onClick({e:t,content:n[r]}),e.close!==!1&&(I(e.close)&&e.close(),z.close())},a.appendChild(s)}return a};return{close:l,open:({title:e=``,content:r,buttons:o,footer:s,config:c,onClose:u}={})=>{d({config:c}),i.push(u);let m=a.length+1;t[m]=c?.clickAway;let h=document.createElement(`section`),g=`cmdl-${m}`;h.className=A(),h.role=`dialog`,h.tabIndex=-1,h.id=g;let _=document.createElement(`div`);_.className=M(),_.style.maxWidth=`${c?.maxWidth||450}px`,_.onclick=()=>l(!0);let v=document.createElement(`div`);v.className=N(),v.style.color=`var(--chc-text-primary)`,c?.className&&v.classList.add(c.className),c?.style&&Object.assign(v.style,c.style),v.onclick=e=>e.stopPropagation();let y=document.createElement(`div`),b=document.createElement(`div`);y.appendChild(b);let x=document.createElement(`div`);x.style.cssText=`display: flex; align-items: center; gap: 8px; margin-left: auto; flex-shrink: 0;`;let S,C;if(c?.info){S=document.createElement(`span`),S.innerHTML=`?`,S.style.cssText=`
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("tods-competition-factory"),require("@tiptap/extension-color"),require("@tiptap/core"),require("@tiptap/extension-text-style"),require("@tiptap/extension-highlight"),require("@tiptap/starter-kit"),require("@tiptap/extension-text-align"),require("@tiptap/extension-youtube")):typeof define==`function`&&define.amd?define([`exports`,`tods-competition-factory`,`@tiptap/extension-color`,`@tiptap/core`,`@tiptap/extension-text-style`,`@tiptap/extension-highlight`,`@tiptap/starter-kit`,`@tiptap/extension-text-align`,`@tiptap/extension-youtube`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e[`courthive-components`]={},e.competitionFactory,e.TiptapExtensionColor,e.TiptapCore,e.TiptapExtensionTextStyle,e.TiptapExtensionHighlight,e.TiptapStarterKit,e.TiptapExtensionTextAlign,e.TiptapExtensionYoutube))})(this,function(e,t,n,r,i,a,o,s,c){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var l=Object.create,u=Object.defineProperty,d=Object.getOwnPropertyDescriptor,f=Object.getOwnPropertyNames,p=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty,h=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}},g=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),_=(e,t)=>{let n={};for(var r in e)u(n,r,{get:e[r],enumerable:!0});return t||u(n,Symbol.toStringTag,{value:`Module`}),n},v=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=f(t),a=0,o=i.length,s;a<o;a++)s=i[a],!m.call(e,s)&&s!==n&&u(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=d(t,s))||r.enumerable});return e},y=(e,t,n)=>(n=e==null?{}:l(p(e)),v(t||!e||!e.__esModule?u(n,`default`,{value:e,enumerable:!0}):n,e));a=y(a),o=y(o),s=y(s),c=y(c);var b=y(g(((e,t)=>{(function(){"use strict";var e={}.hasOwnProperty;function n(){for(var e=``,t=0;t<arguments.length;t++){var n=arguments[t];n&&(e=i(e,r(n)))}return e}function r(t){if(typeof t==`string`||typeof t==`number`)return t;if(typeof t!=`object`)return``;if(Array.isArray(t))return n.apply(null,t);if(t.toString!==Object.prototype.toString&&!t.toString.toString().includes(`[native code]`))return t.toString();var r=``;for(var a in t)e.call(t,a)&&t[a]&&(r=i(r,a));return r}function i(e,t){return t?e?e+` `+t:e+t:e}t!==void 0&&t.exports?(n.default=n,t.exports=n):typeof define==`function`&&typeof define.amd==`object`&&define.amd?define(`classnames`,[],function(){return n}):window.classNames=n})()}))());function x({variant:e}){return(0,b.default)(`chc-placeholder`,e===`showAddress`&&`chc-placeholder--show-address`)}var S=e=>`chc-participant`,C=e=>(0,b.default)(`chc-participant-name`,e?.variant&&`chc-participant-name--${e.variant}`),w=e=>(0,b.default)(`chc-participant-type`,e?.variant&&`chc-participant-type--${e.variant}`);function T({drawPosition:e,sideNumber:t}){return(0,b.default)(`chc-participant-container`,t===1&&`chc-participant-container--side1`)}function E({winnerChevron:e,isDoubles:t}){return e?t?`chc-chevron-doubles--winner`:`chc-chevron--winner`:``}var D=()=>`chc-participant-detail`;function O({individualParticipant:e,className:t}){let{city:n,state:r,countryCode:i}=e?.person?.addresses?.[0]||{},a=[n,r,i].filter(Boolean).join(`, `)||` `,o=document.createElement(`div`);return o.className=(0,b.default)(D(),t),o.innerHTML=a,o}var k=()=>`chc-backdrop`,A=()=>`chc-modal`,j=()=>`chc-body-freeze`,M=()=>`chc-modal-container`,N=()=>`chc-modal-dialog`,P=()=>`chc-modal-header`,F=()=>`chc-modal-title`,ee=()=>`chc-modal-footer`,te=`Nothing to see here`;function I(e){return typeof e==`function`}function L(e){return typeof e==`string`}function R(e){return Array.isArray(e)}function ne(e){if(e)for(;e.firstChild;)e.firstChild.remove()}var z=(()=>{let e=j(),t={},n=[],r,i=[],a=[],o,s=e=>{if(e){let t;a=a.filter(n=>(n.id===e&&(t=n),n.id!==e)),t&&t.remove()}else{let e=a.pop();e&&e.remove()}},c=()=>{o&&(o.style.opacity=`0`,o.style.display=`none`)},l=o=>{let l=a.length;if(o&&t[l]===!1)return;let u=i.pop(),d=n.pop();I(u)&&u({content:d}),document.querySelectorAll(`[data-modal-popover]`).forEach(e=>e.remove()),document.body.classList.remove(e),document.body.style.top=null,window.scrollTo({top:r,behavior:`instant`}),c(),s()},u=()=>{o=document.createElement(`div`),o.className=k(),o.id=`cmdl-backdrop`,o.onclick=()=>l(!0),document.body.appendChild(o)},d=({config:t})=>{r=window.scrollY,document.body.classList.add(e),document.body.style.top=`-${r}px`,o||u(),o.style.display=``,t?.backdrop!==!1&&(o.style.backgroundColor=`var(--chc-bg-overlay)`,o.style.transition=`opacity 0.15s linear`,o.style.opacity=`1`)},f=({config:e,attr:t,attrs:n,unit:r=`em`,value:i})=>{let a;return L(t)?a=re({element:e,attr:t}):R(n)&&(a=n.map(t=>re({element:e,attr:t})).find(Boolean)),a!==void 0&&(i=a),Number.isNaN(i)?i:`${i}${r}`},p=({buttons:e,config:t,modalNumber:r,registry:i})=>{i?.clear();let a=document.createElement(`div`);a.className=ee(),a.style.padding=f({config:t,attrs:[`footer.padding`,`padding`],value:`1`});let o={label:t?.dictionary?.close||`Close`,onClick:()=>z.close(),intent:`is-info`};for(let t of e){if(t.hide)continue;let e={...o,...t},s=document.createElement(`button`);e.disabled!==void 0&&(s.disabled=e.disabled),e.id&&(s.id=e.id,i?.set(e.id,s)),s.className=e?.footer?.className||`button font-medium`,e.intent&&e.intent!==`none`&&s.classList.add(e.intent);let c=e?.footer?.style||``;s.style.cssText=`margin-right: .5em;`+(c?` `+c:``),s.innerHTML=e.label||e.text||``,s.onclick=t=>{t.stopPropagation(),I(e.onClick)&&e.onClick({e:t,content:n[r]}),e.close!==!1&&(I(e.close)&&e.close(),z.close())},a.appendChild(s)}return a};return{close:l,open:({title:e=``,content:r,buttons:o,footer:s,config:c,onClose:u}={})=>{d({config:c}),i.push(u);let m=a.length+1;t[m]=c?.clickAway;let h=document.createElement(`section`),g=`cmdl-${m}`;h.className=A(),h.role=`dialog`,h.tabIndex=-1,h.id=g;let _=document.createElement(`div`);_.className=M(),_.style.maxWidth=`${c?.maxWidth||450}px`,_.onclick=()=>l(!0);let v=document.createElement(`div`);v.className=N(),v.style.color=`var(--chc-text-primary)`,c?.className&&v.classList.add(c.className),c?.style&&Object.assign(v.style,c.style),v.onclick=e=>e.stopPropagation();let y=document.createElement(`div`),b=document.createElement(`div`);y.appendChild(b);let x=document.createElement(`div`);x.style.cssText=`display: flex; align-items: center; gap: 8px; margin-left: auto; flex-shrink: 0;`;let S,C;if(c?.info){S=document.createElement(`span`),S.innerHTML=`?`,S.style.cssText=`
2
2
  cursor: pointer;
3
3
  display: inline-flex;
4
4
  align-items: center;
@@ -142,7 +142,7 @@
142
142
  color: var(--chc-text-primary) !important;
143
143
  background-color: var(--chc-bg-elevated) !important;
144
144
  border: 1px solid var(--chc-border-primary) !important;
145
- `,e.label.length>1&&!e.isSpecial?t.style.fontSize=`1.3rem`:e.isSpecial&&[`RET`,`WO`,`DEF`].includes(e.label)?(t.style.fontSize=`0.95rem`,t.style.setProperty(`background-color`,Sc,`important`)):e.isSpecial?(t.style.fontSize=`1.3rem`,t.style.setProperty(`background-color`,Sc,`important`)):t.style.fontSize=`1.3rem`,(e.value===`retired`||e.value===`defaulted`)&&(t.dataset.button=e.value),e.disabled&&(t.disabled=!0,t.style.visibility=`hidden`),e.requiresScore&&(t.disabled=!0),t.onclick=()=>{e.value===`delete`?O():e.value===`minus`?D(`-`):e.value===`retired`?(m=hc,h=void 0,g.querySelectorAll(wc).forEach(e=>e.checked=!1),E()):e.value===`walkover`?(m=gc,h=void 0,d.digits=``,g.querySelectorAll(wc).forEach(e=>e.checked=!1),E(),j()):e.value===`defaulted`?(m=_c,h=void 0,g.querySelectorAll(wc).forEach(e=>e.checked=!1),E()):e.value===`empty`||D(e.value)},C.appendChild(t)});let M=e=>{if(e.key>=`0`&&e.key<=`9`)e.preventDefault(),D(Number.parseInt(e.key));else if(e.key===`Backspace`||e.key===`Delete`)e.preventDefault(),O();else if(e.key===`-`||e.key===` `||e.key===`/`)e.preventDefault(),D(`-`);else if(e.key===`)`){e.preventDefault();let t=w(d.digits);t.includes(`(`)&&!t.includes(`)`)&&(d.digits+=`-`,E())}};r.setAttribute(`tabindex`,`-1`),r.style.outline=`none`,r.addEventListener(`keydown`,M),setTimeout(()=>r.focus(),100),globalThis.cleanupDialPad=()=>{r.removeEventListener(`keydown`,M)};let N=u===hc||u===gc||u===_c||u===vc||u===yc;N?(u===vc?(m=gc,h=void 0):u===yc?(m=_c,h=void 0):(m=u,h=l),g.querySelectorAll(Cc).forEach(e=>{e.value===m&&(e.checked=!0)}),h&&(g.querySelectorAll(wc).forEach(e=>{Number.parseInt(e.value)===h&&(e.checked=!0)}),v.style.display=`block`)):!c&&(!u||u===`TO_BE_PLAYED`)&&k(),d.digits||N?(E(),setTimeout(()=>{let e=document.getElementById(`clearScoreV2`);e&&(e.disabled=!1),j()},0)):(T(null),j())}catch(e){console.error(`Error rendering dial pad:`,e),r.innerHTML=`<p style="color: red;">Error: ${e instanceof Error?e.message:`Unknown error`}</p>`}}var{RETIRED:Dc,WALKOVER:Oc,DEFAULTED:kc,SUSPENDED:Ac,CANCELLED:jc,INCOMPLETE:Mc,DEAD_RUBBER:Nc,IN_PROGRESS:Pc,AWAITING_RESULT:Fc}=t.matchUpStatusConstants;function Ic(e,t){let n=e.substring(t).trim().toLowerCase();return/^in(\s+p(rog(ress)?)?)?$/i.exec(n)?{ending:Pc,endPos:e.length}:/^inc(omp(lete?)?)?/i.exec(n)?{ending:Mc,endPos:e.length}:/^(dr|dead(\s*r(ubber)?)?)/i.exec(n)?{ending:Nc,endPos:e.length}:/^r(et(ired?)?)?/i.exec(n)?{ending:Dc,endPos:e.length}:/^(w(\/o|o|alk(over?)?)?)/i.exec(n)?{ending:Oc,endPos:e.length}:/^d(ef(aulted?)?)?/i.exec(n)?{ending:kc,endPos:e.length}:/^s(usp(ended?)?)?/i.exec(n)?{ending:Ac,endPos:e.length}:/^c(anc(ell?ed?)?)?/i.exec(n)?{ending:jc,endPos:e.length}:/^a(wait(ing(\s*r(esult)?)?)?)?/i.exec(n)?{ending:Fc,endPos:e.length}:{endPos:t}}function Lc(e,t){return t===(e.bestOf||3)-1&&e.finalSetFormat?e.finalSetFormat:e.setFormat}function Rc(e){return!!e?.tiebreakSet?.tiebreakTo&&!e?.setTo}function zc(e){return Rc(e)?0:(e?.setTo||6)+1}function Bc(e){let t=e?.tiebreakSet,n=e?.tiebreakFormat;return t?t.tiebreakTo||10:n&&n.tiebreakTo||7}function Vc(e){return e>=`0`&&e<=`9`}function Hc(e){for(let t of e)if(!Vc(t))return!1;return!0}function Uc(e){return!Vc(e)&&!Wc(e)&&!Gc(e)}function Wc(e){return e===`(`||e===`[`}function Gc(e){return e===`)`||e===`]`}function Kc(e,t,n){let r=n?.tiebreakAt||n?.setTo||6;return e===r&&t===r}function qc(e,t,n){let r=n?.setTo||6,i=Math.max(e,t);return i<r?!1:i-Math.min(e,t)>=2?!0:(r+1,!1)}function Jc(e,t,n){let r=Bc(n),i=Math.max(e,t),a=Math.min(e,t);return n?.tiebreakSet?.NoAD||n?.tiebreakFormat?.NoAD?i>=r:i<r?!1:i-a>=2}function Yc(e,t){let n=+(e===`1-0`),r=+(e===`0-1`);return{side1TiebreakScore:n,side2TiebreakScore:r,setNumber:t,winningSide:n>r?1:2}}function Xc(e,t,n){let r=e.indexOf(`-`);if(r===-1)return n.push({position:0,message:`Set ${t}: Invalid format "${e}". Expected "#-#" (e.g., "5-3")`,expected:`#-#`,got:e}),null;let i=e.slice(0,r),a=e.slice(r+1);return!i||!a||!Hc(i)||!Hc(a)?(n.push({position:0,message:`Set ${t}: Invalid format "${e}". Expected "#-#" (e.g., "5-3")`,expected:`#-#`,got:e}),null):{side1Score:Number.parseInt(i,10),side2Score:Number.parseInt(a,10),setNumber:t}}function Zc(e,t,n){let r=e.indexOf(`-`);if(r===-1)return n.push({position:0,message:`Final set: Invalid format "${e}". Expected TB format "1-0" or "0-1", or regular "#-#"`,expected:`1-0, 0-1, or #-#`,got:e}),null;let i=e.slice(0,r),a=e.slice(r+1);return!i||!a||!Hc(i)||!Hc(a)?(n.push({position:0,message:`Final set: Invalid format "${e}". Expected TB format "1-0" or "0-1", or regular "#-#"`,expected:`1-0, 0-1, or #-#`,got:e}),null):{side1Score:Number.parseInt(i,10),side2Score:Number.parseInt(a,10),setNumber:t}}function Qc(e,t){return e.slice(0,t).reduce((e,t)=>(e.side1+=t.side1Score||0,e.side2+=t.side2Score||0,e),{side1:0,side2:0})}function $c(e,t,n){let r=e.filter(e=>e.side1Score!==void 0),i=e.some(e=>e.side1TiebreakScore!==void 0);if(r.length<t)return;let a=Qc(r,t),o=a.side1===a.side2,s=r.length>t;if(o&&!i)if(s){let e=r[t];n.push({position:0,message:`Aggregate tied (${a.side1}-${a.side2}). Final set score "${e.side1Score}-${e.side2Score}" invalid. TB1 only accepts "1-0" or "0-1"`})}else n.push({position:0,message:`Aggregate tied (${a.side1}-${a.side2}), final TB required`});else !o&&i?n.push({position:0,message:`Aggregate not tied (${a.side1}-${a.side2}), final TB not allowed`}):!o&&s&&n.push({position:0,message:`Aggregate not tied (${a.side1}-${a.side2}), extra sets not allowed`})}function el(e,t,n,r){let i=[];for(let a=0;a<e.length;a++){let o=e[a],s=a+1,c=s===n,l=o===`1-0`||o===`0-1`;if(t&&c&&l)i.push(Yc(o,s));else if(t&&c&&!l){let e=Zc(o,s,r);e&&i.push(e)}else{let e=Xc(o,s,r);e&&i.push(e)}}return i}function tl(e,t){return{valid:!1,formattedScore:``,sets:[],confidence:1,errors:[],warnings:[],ambiguities:[],suggestions:e?[`Enter ${t-1} timed sets (final TB only if tied)`]:[`Enter ${t} sets in format: #-# #-# ...`],incomplete:!0,matchComplete:!1}}function nl(e,t,n,r,i){if(e>n){let a=r?`${t}-${n}`:`${n}`;i.push({position:0,message:`Too many sets: got ${e}, expected ${a}`})}}function rl(e,t,n,r,i){if(!e)return[];if(t){let e=n-r;return[`Enter ${e} more timed set${e===1?``:`s`} (or final TB if aggregate tied)`]}let a=i-r;return[`Need ${a} more set${a===1?``:`s`}`]}function il(e){return e.map(e=>e.side1TiebreakScore===void 0?`${e.side1Score}-${e.side2Score}`:`${e.side1TiebreakScore}-${e.side2TiebreakScore}`).join(` `)}function al(e,t){let n=t.exactly||t.bestOf||1,r=e.trim(),i=!!t?.aggregate,a=t.finalSetFormat?.tiebreakSet?.tiebreakTo!==void 0,o=i&&a;if(!r)return tl(o,n);let s=r.split(/\s+/),c=[],l=o?n-1:n,u=el(s,o,n,c);o&&c.length===0&&$c(u,l,c);let d=o?l:n,f=n;nl(u.length,d,f,o,c);let p=u.length<d&&c.length===0,m=(u.length===n||o&&u.length===l)&&c.length===0,h=il(u);return{valid:c.length===0&&(u.length===d||u.length===f),formattedScore:h,sets:u,confidence:+(c.length===0),errors:c,warnings:[],ambiguities:[],suggestions:rl(p,o,d,u.length,n),incomplete:p,matchComplete:m}}function ol(e,n){let r=typeof n==`string`?t.matchUpFormatCode.parse(n):n;if(!r)return{valid:!1,formattedScore:``,sets:[],confidence:0,errors:[{position:0,message:`Invalid matchUpFormat`}],warnings:[],ambiguities:[],suggestions:[],incomplete:!1,matchComplete:!1};let i=!!(r.setFormat?.timed||r.finalSetFormat?.timed),a=!!r.exactly||r.bestOf===1;if(i&&a)return al(e,r);let o={input:e,position:0,setIndex:0,currentSide1Buffer:``,currentSide2Buffer:``,currentTiebreakSide1Buffer:``,currentTiebreakSide2Buffer:``,sets:[],parsedFormat:r,state:`START`,inTiebreak:!1,expectingTiebreakOnly:!1,isValid:!0,errors:[],warnings:[],confidence:1,ambiguities:[],suggestions:[]};for(Rc(Lc(r,0))?(o.expectingTiebreakOnly=!0,o.inTiebreak=!0,o.state=`PARSING_TIEBREAK_SIDE1`):o.state=`PARSING_SIDE1`;o.position<e.length&&o.isValid;)sl(o);Dl(o);let s=o.sets,c;o.irregularEnding&&(c=o.irregularEnding,(o.irregularEnding===Oc||o.irregularEnding===jc||o.irregularEnding===Nc)&&(s=[]));let l=o.irregularEnding?!1:Ol(o),u=kl(o);return{valid:o.isValid&&o.errors.length===0,formattedScore:u,sets:s,confidence:o.confidence,errors:o.errors,warnings:o.warnings,ambiguities:o.ambiguities,suggestions:o.suggestions,incomplete:!l&&s.length>0,matchComplete:l,matchUpStatus:c}}function sl(e){let t=e.input[e.position];if(!Vc(t)&&!Wc(t)&&!Gc(t)){let t=Ic(e.input,e.position);if(t.ending){e.irregularEnding=t.ending,e.irregularEndingPosition=e.position,e.position=t.endPos;return}}if(Uc(t)){cl(e);return}if(Wc(t)){ll(e);return}if(Gc(t)){ul(e);return}if(Vc(t)){dl(e,t);return}e.errors.push({position:e.position,message:`Unexpected character '${t}'`,got:t,context:Al(e)}),e.isValid=!1}function cl(e){if(e.state===`PARSING_SIDE1`&&e.currentSide1Buffer){e.state=`PARSING_SIDE2`,e.position++;return}if(e.state===`PARSING_SIDE2`&&e.currentSide2Buffer){if(Sl(Number.parseInt(e.currentSide1Buffer),Number.parseInt(e.currentSide2Buffer),Lc(e.parsedFormat,e.setIndex))){e.inTiebreak=!0,e.state=`PARSING_TIEBREAK_SIDE1`,e.position++;return}Tl(e),e.position++;return}if(e.state===`PARSING_TIEBREAK_SIDE1`&&e.currentTiebreakSide1Buffer)if(e.currentSide1Buffer&&e.currentSide2Buffer){Tl(e),e.position++;return}else{e.state=`PARSING_TIEBREAK_SIDE2`,e.position++;return}e.position++}function ll(e){let t=Lc(e.parsedFormat,e.setIndex);if(Rc(t)){e.inTiebreak=!0,e.state=`PARSING_TIEBREAK_SIDE1`,e.position++;return}if(e.currentSide1Buffer&&e.currentSide2Buffer&&Kc(Number.parseInt(e.currentSide1Buffer),Number.parseInt(e.currentSide2Buffer),t)){e.inTiebreak=!0,e.state=`PARSING_TIEBREAK_SIDE1`,e.position++;return}e.warnings.push(`Tiebreak indicator at position ${e.position} may be ambiguous`),e.inTiebreak=!0,e.state=`PARSING_TIEBREAK_SIDE1`,e.position++}function ul(e){if(e.inTiebreak){El(e),e.inTiebreak=!1,e.position++;return}e.warnings.push(`Unexpected tiebreak closer at position ${e.position}`),e.position++}function dl(e,t){let n=Lc(e.parsedFormat,e.setIndex);e.inTiebreak?vl(e,t,n):hl(e,t,n)}function fl(e,t,n){return Number.parseInt(e+t)>n}function pl(e,t,n){e.state=`PARSING_SIDE1`,e.currentSide1Buffer+=t;let r=Number.parseInt(e.currentSide1Buffer),i=e.position+1;if(i<e.input.length&&Vc(e.input[i])){let t=e.input[i];fl(e.currentSide1Buffer,t,n)&&(e.warnings.push(`Potential score issue: "${e.currentSide1Buffer}${t}" would exceed max game score ${n}`),e.state=`PARSING_SIDE2`)}else e.state=`PARSING_SIDE2`;r>n&&e.warnings.push(`Score ${r} exceeds max ${n} at position ${e.position}`),e.position++}function ml(e,t,n,r){e.currentSide2Buffer+=t;let i=Number.parseInt(e.currentSide1Buffer),a=Number.parseInt(e.currentSide2Buffer);if(Sl(i,a,n)){e.inTiebreak=!0,e.state=`PARSING_TIEBREAK_SIDE1`,e.position++;return}let o=e.position+1;if(o<e.input.length&&Vc(e.input[o])){let t=e.input[o];fl(e.currentSide2Buffer,t,r)&&(qc(i,a,n)||Kc(i,a,n)||e.warnings.push(`Set ${e.setIndex+1} may be incomplete: ${i}-${a}`),Tl(e))}e.position++}function hl(e,t,n){let r=zc(n);if(e.state===`PARSING_SIDE1`||e.state===`START`){pl(e,t,r);return}if(e.state===`PARSING_SIDE2`){ml(e,t,n,r);return}e.position++}function gl(e,t){e.currentTiebreakSide1Buffer+=t,e.position++}function _l(e,t,n){e.currentTiebreakSide2Buffer+=t;let r=Number.parseInt(e.currentTiebreakSide2Buffer),i=e.position+1;if(i<e.input.length&&Vc(e.input[i])){let t=e.input[i],a=Number.parseInt(e.currentTiebreakSide2Buffer+t),o=Number.parseInt(e.currentTiebreakSide1Buffer);if(a>999){let t=r;Jc(o,t,n)||e.warnings.push(`Tiebreak may be incomplete: ${o}-${t}`),Tl(e)}}e.position++}function vl(e,t,n){if(e.state===`PARSING_TIEBREAK_SIDE1`){gl(e,t);return}if(e.state===`PARSING_TIEBREAK_SIDE2`){_l(e,t,n);return}e.position++}function yl(e){if(!e.currentTiebreakSide1Buffer||!e.currentTiebreakSide2Buffer)return null;let t=Number.parseInt(e.currentTiebreakSide1Buffer),n=Number.parseInt(e.currentTiebreakSide2Buffer);return{side1Score:0,side2Score:0,side1TiebreakScore:t,side2TiebreakScore:n,setNumber:e.setIndex+1,winningSide:t>n?1:2}}function bl(e,t,n){let r=t.currentTiebreakSide1Buffer,i=t.currentTiebreakSide2Buffer;r&&i?(e.side1TiebreakScore=Number.parseInt(r),e.side2TiebreakScore=Number.parseInt(i)):(r||i)&&xl(e,r,i,n)}function xl(e,t,n,r){let i=Number.parseInt(t||n),a=Bc(r),o=r?.tiebreakFormat?.NoAD?a:Math.max(a,i+2);e.side1Score>e.side2Score?(e.side1TiebreakScore=o,e.side2TiebreakScore=i):(e.side1TiebreakScore=i,e.side2TiebreakScore=o)}function Sl(e,t,n){let r=n.tiebreakAt||n.setTo||6;return e===r&&t===r+1||t===r&&e===r+1}function Cl(e,t){if(!e.currentSide1Buffer||!e.currentSide2Buffer)return null;let n=Number.parseInt(e.currentSide1Buffer),r=Number.parseInt(e.currentSide2Buffer);if(Sl(n,r,t)&&!e.currentTiebreakSide1Buffer&&!e.currentTiebreakSide2Buffer)return null;let i={side1Score:n,side2Score:r,setNumber:e.setIndex+1};return(e.currentTiebreakSide1Buffer||e.currentTiebreakSide2Buffer)&&bl(i,e,t),n>r?i.winningSide=1:r>n&&(i.winningSide=2),i}function wl(e){e.currentSide1Buffer=``,e.currentSide2Buffer=``,e.currentTiebreakSide1Buffer=``,e.currentTiebreakSide2Buffer=``,e.setIndex++,e.inTiebreak=!1,e.state=`PARSING_SIDE1`,Rc(Lc(e.parsedFormat,e.setIndex))&&(e.expectingTiebreakOnly=!0,e.inTiebreak=!0,e.state=`PARSING_TIEBREAK_SIDE1`)}function Tl(e){let t=Lc(e.parsedFormat,e.setIndex),n=Rc(t)?yl(e):Cl(e,t);n&&e.sets.push(n),wl(e)}function El(e){Tl(e)}function Dl(e){(e.currentSide1Buffer||e.currentSide2Buffer||e.currentTiebreakSide1Buffer||e.currentTiebreakSide2Buffer)&&Tl(e)}function Ol(e){let t=e.parsedFormat.bestOf||3,n=Math.ceil(t/2),r=e.sets.filter(e=>e.winningSide===1).length,i=e.sets.filter(e=>e.winningSide===2).length;return r>=n||i>=n}function kl(e){let t=[];for(let n of e.sets)if((!n.side1Score||n.side1Score===0)&&(!n.side2Score||n.side2Score===0)&&(n.side1TiebreakScore!==void 0||n.side2TiebreakScore!==void 0)){let e=n.side1TiebreakScore??0,r=n.side2TiebreakScore??0;t.push(`[${e}-${r}]`)}else{let e=`${n.side1Score||0}-${n.side2Score||0}`;if(n.side1TiebreakScore!==void 0||n.side2TiebreakScore!==void 0){let t=n.side1TiebreakScore??0,r=n.side2TiebreakScore??0,i=n.winningSide===1?r:t;e+=`(${i})`}t.push(e)}return t.join(` `)}function Al(e){let t=Math.max(0,e.position-5),n=Math.min(e.input.length,e.position+5),r=e.input.substring(t,e.position),i=e.input.substring(e.position+1,n);return`...${r}[${e.input[e.position]}]${i}...`}var{RETIRED:jl,WALKOVER:Ml,DEFAULTED:Nl,DOUBLE_WALKOVER:Pl,DOUBLE_DEFAULT:Fl,SUSPENDED:Il,CANCELLED:Ll,INCOMPLETE:Rl,DEAD_RUBBER:zl,IN_PROGRESS:Bl,AWAITING_RESULT:Vl,COMPLETED:Hl,TO_BE_PLAYED:Ul}=t.matchUpStatusConstants;function Wl(e,t){let n=``;if(e&&(n=(e.sets||[]).map(e=>{let t=`${e.side1Score||0}-${e.side2Score||0}`;if(e.side1TiebreakScore!==void 0||e.side2TiebreakScore!==void 0){let n=e.winningSide===1?e.side2TiebreakScore:e.side1TiebreakScore;t+=`(${n})`}return t}).join(` `)),t&&t!==Hl&&t!==Ul){let e=Gl(t);if(e)return n?`${n} ${e}`:e}return n}function Gl(e){return{[jl]:`ret`,[Ml]:`wo`,[Nl]:`def`,[Pl]:`wo`,[Fl]:`def`,[Il]:`susp`,[Ll]:`canc`,[Rl]:`inc`,[zl]:`dr`,[Bl]:`in`,[Vl]:`await`}[e]||``}var{RETIRED:Kl,WALKOVER:ql,DEFAULTED:Jl,SUSPENDED:Yl,CANCELLED:Xl,INCOMPLETE:Zl,DEAD_RUBBER:Ql,IN_PROGRESS:$l,AWAITING_RESULT:eu,DOUBLE_WALKOVER:tu,DOUBLE_DEFAULT:nu}=t.matchUpStatusConstants,ru=`var(--chc-status-success)`;function iu(e){let{matchUp:n,container:r,onScoreChange:i,labels:a={}}=e;r.innerHTML=``,r.style.display=`flex`,r.style.flexDirection=`column`,r.style.gap=`1em`;let o=n?.sides?.find(e=>e.sideNumber===1),s=n?.sides?.find(e=>e.sideNumber===2),c=n.score?{...n.score}:void 0,l=n.winningSide,u=n.matchUpStatus,d=document.createElement(`div`);d.style.marginBottom=`0.25em`,r.appendChild(d);let f=document.createElement(`div`);f.style.display=`none`,f.style.marginTop=`0.25em`,f.style.padding=`0.35em 0.5em`,f.style.backgroundColor=`var(--chc-bg-secondary)`,f.style.borderRadius=`4px`,f.style.flexDirection=`column`,f.style.gap=`0.35em`;let p=document.createElement(`label`);p.style.display=`flex`,p.style.alignItems=`center`,p.style.gap=`0.4em`,p.style.cursor=`pointer`;let m=document.createElement(`input`);m.type=`radio`,m.name=`winnerSelection`,m.value=`1`;let h=document.createElement(`span`);h.textContent=o?.participant?.participantName||`Side 1`,h.style.fontSize=`0.75rem`,p.appendChild(m),p.appendChild(h);let g=document.createElement(`label`);g.style.display=`flex`,g.style.alignItems=`center`,g.style.gap=`0.4em`,g.style.cursor=`pointer`;let _=document.createElement(`input`);_.type=`radio`,_.name=`winnerSelection`,_.value=`2`;let v=document.createElement(`span`);v.textContent=s?.participant?.participantName||`Side 2`,v.style.fontSize=`0.75rem`,g.appendChild(_),g.appendChild(v),f.appendChild(p),f.appendChild(g),r.appendChild(f);let y=e=>{let{WALKOVER:r,CANCELLED:i,DEAD_RUBBER:a}=t.matchUpStatusConstants,o=[r,i,a],s=e?.matchUpStatus&&o.includes(e.matchUpStatus),f;e?.clearAll||s?(f=void 0,c=void 0):e?.scoreObject?(f=e.scoreObject,c=e.scoreObject):f=c,e?.clearAll?(l=void 0,u=void 0):e!=null&&(`winningSide`in e&&(l=e.winningSide),`matchUpStatus`in e&&(u=e.matchUpStatus));let p={...n,score:f,winningSide:l,matchUpStatus:u};d.innerHTML=``;let m=ei({matchUp:p,isLucky:!0,composition:mi[vs().composition||`Australian`]||mi.Australian});d.appendChild(m)};if(y(),n.matchUpFormat){let e=document.createElement(`div`);e.style.fontSize=`0.9rem`,e.style.marginBottom=`0.5em`,e.style.display=`flex`,e.style.alignItems=`center`,e.style.gap=`0.5em`;let t=document.createElement(`span`);t.textContent=(a.format||`Format`)+`:`,t.style.color=`var(--chc-text-secondary)`,e.appendChild(t);let i=document.createElement(`button`);i.textContent=n.matchUpFormat,i.className=`button is-small is-white`,i.style.fontSize=`0.75rem`,i.style.padding=`0.2em 0.5em`,i.style.cursor=`pointer`,i.title=`Click to edit format`,i.addEventListener(`click`,()=>{try{Va({existingMatchUpFormat:n.matchUpFormat,callback:e=>{if(e&&e!==n.matchUpFormat){n.matchUpFormat=e,i.textContent=e;let t=document.getElementById(`scoreInputV2`);t&&(t.value=``,t.dispatchEvent(new Event(`input`,{bubbles:!0}))),w.textContent=`Score cleared - format changed`,w.style.color=`var(--chc-text-muted)`}},modalConfig:{style:{fontSize:`12px`,border:`3px solid #0066cc`}}})}catch(e){console.error(`[FreeScore] Error opening format selector:`,e)}}),e.appendChild(i),r.appendChild(e)}let b=document.createElement(`div`);b.style.display=`flex`,b.style.alignItems=`center`,b.style.gap=`0.5em`;let x=document.createElement(`input`);x.type=`text`,x.className=`input`,x.placeholder=``,x.style.flex=`1`,x.id=`scoreInputV2`,c&&(x.value=Wl(c,u));let S=document.createElement(`span`);S.style.fontSize=`1.2rem`,S.style.minWidth=`1.5em`,b.appendChild(x),b.appendChild(S),r.appendChild(b);let C=document.createElement(`div`);C.style.fontSize=`0.9rem`,C.style.color=`var(--chc-border-focus)`,C.style.fontFamily=`monospace`,C.style.minHeight=`1.5em`,C.style.padding=`0.25em`,r.appendChild(C);let w=document.createElement(`div`);w.style.fontSize=`0.9rem`,w.style.minHeight=`1.5em`,r.appendChild(w);let T=l,E=()=>{m.checked?(T=1,p.style.fontWeight=`bold`,p.style.color=ru,g.style.fontWeight=``,g.style.color=``):_.checked&&(T=2,g.style.fontWeight=`bold`,g.style.color=ru,p.style.fontWeight=``,p.style.color=``),j()};m.addEventListener(`change`,E),_.addEventListener(`change`,E);function D(){f.style.display=`none`,m.checked=!1,_.checked=!1,p.style.fontWeight=``,p.style.color=``,g.style.fontWeight=``,g.style.color=``,T=void 0}let O={[Kl]:a.retired||`RETIRED`,[ql]:a.walkover||`WALKOVER`,[Jl]:a.defaulted||`DEFAULTED`,[Yl]:`SUSPENDED`,[Xl]:`CANCELLED`,[Zl]:`INCOMPLETE`,[Ql]:`DEAD RUBBER`,[$l]:`IN PROGRESS`,[eu]:`AWAITING RESULT`};function k(e){let t=a.validScore||`Valid score`,n=e&&O[e];return n?`${t} - ${n}`:t}function A(e,t,n){let r=e.matchUpStatus||t.matchUpStatus,a=[Kl,ql,Jl].includes(r),o=[Xl,Ql,eu,Zl,$l,Yl].includes(r);if(a){f.style.display=`flex`;let a=T;if(!a){i(r===ql?{...e,isValid:!0,matchUpStatus:tu,score:t.formattedScore||n}:r===Jl?{...e,isValid:!0,matchUpStatus:nu,score:t.formattedScore||n}:{...e,isValid:!1,error:`Winner must be selected for irregular ending`,matchUpStatus:r,score:t.formattedScore||n});return}return a}if(o){D();return}return D(),e.winningSide}let j=()=>{let e=x.value.trim();if(!e){S.textContent=``,C.textContent=``,w.textContent=``,w.style.color=``,D(),y({clearAll:!0}),i({isValid:!1,sets:[],matchUpStatus:`TO_BE_PLAYED`});return}let t=ol(e,n.matchUpFormat);C.textContent=t.formattedScore||``;let r=new Set([Kl,ql,Jl,Yl,Xl,Zl,Ql,$l,eu]),a=t.matchUpStatus&&r.has(t.matchUpStatus),o=t.formattedScore?Os(t.formattedScore,n.matchUpFormat,t.matchUpStatus):{isValid:!1,sets:[],error:`No score to validate`},s=o.sets&&o.sets.length>0,c=T||o.winningSide;if((s&&o.scoreObject||a)&&y({scoreObject:o.scoreObject,winningSide:c,matchUpStatus:o.matchUpStatus||t.matchUpStatus}),o.isValid||a)if(S.textContent=`✓`,S.style.color=ru,w.textContent=k(o.matchUpStatus||t.matchUpStatus),w.style.color=ru,a){let n=A(o,t,e);if(n===void 0&&[Kl,ql,Jl].includes(o.matchUpStatus||t.matchUpStatus)&&!T)return;i({...o,isValid:!0,winningSide:n,matchUpStatus:o.matchUpStatus||t.matchUpStatus,score:t.formattedScore||e})}else D(),i({...o,isValid:!0,winningSide:o.winningSide,matchUpStatus:o.matchUpStatus||t.matchUpStatus,score:t.formattedScore||e});else !o.isValid&&s?(S.textContent=`⋯`,S.style.color=`var(--chc-status-warning)`,w.textContent=o.error||`Score incomplete - continue typing`,w.style.color=`var(--chc-status-warning)`,D(),i(o)):(S.textContent=`✗`,S.style.color=`var(--chc-status-error)`,w.textContent=o.error||`Invalid score`,w.style.color=`var(--chc-status-error)`,D(),y({scoreObject:void 0,winningSide:void 0,matchUpStatus:void 0}),i(o))},M=!1;x.addEventListener(`input`,()=>{j();let e=x.value,r=e.trim();if(!M&&r){let i=ol(r,n.matchUpFormat),a=i.formattedScore?Os(i.formattedScore,n.matchUpFormat,i.matchUpStatus):{isValid:!1,winningSide:void 0},o=a.isValid&&a.winningSide!==void 0,s=e.length>0&&/[\s-]$/.test(e),c=t.matchUpFormatCode.parse(n.matchUpFormat),l=!!c?.exactly||c?.bestOf===1,u=c?.exactly||c?.bestOf||3,d=i.sets?.length>=u;o&&s&&(!l||d)&&(M=!0)}else if(M){let t=e.length>0&&/[\s-]$/.test(e);(r.length===0||!t)&&(M=!1)}}),x.addEventListener(`keydown`,e=>{M&&![`Backspace`,`Delete`,`ArrowLeft`,`ArrowRight`,`Tab`].includes(e.key)&&e.preventDefault()}),x.addEventListener(`keyup`,e=>{if(e.key===`Enter`){let e=document.getElementById(`submitScoreV2`);e&&!e.disabled&&e.click()}}),l===1?(m.checked=!0,p.style.fontWeight=`bold`,p.style.color=ru):l===2&&(_.checked=!0,g.style.fontWeight=`bold`,g.style.color=ru),setTimeout(()=>{x.focus(),u===tu||u===nu?(y({scoreObject:c,winningSide:l,matchUpStatus:u}),i({isValid:!0,sets:c?.sets||[],scoreObject:c,winningSide:l,matchUpStatus:u})):(x.value||u&&u!==`TO_BE_PLAYED`&&u!==`COMPLETED`)&&j()},100),globalThis.resetFreeScore=()=>{x.value=``,c=void 0,l=void 0,u=void 0,S.textContent=``,C.textContent=``,w.textContent=``,w.style.color=``,f.style.display=`none`,m.checked=!1,_.checked=!1,p.style.fontWeight=``,p.style.color=``,g.style.fontWeight=``,g.style.color=``,T=void 0,M=!1,y({clearAll:!0}),i({isValid:!1,sets:[],matchUpStatus:`TO_BE_PLAYED`}),x.focus()}}var au=`Irregular Endings:`,ou={dynamicSets:`Dynamic Sets`,freeScore:`Free Score`,dialPad:`Dial Pad`,inlineScoring:`Inline Scoring`},su=[`dynamicSets`,`freeScore`,`dialPad`,`inlineScoring`];function cu(e){let{matchUp:t,callback:n,onClose:r,labels:i={}}=e,a=vs().scoringApproach||`dynamicSets`,o=!!(t.score?.sets?.length||t.matchUpStatus),s=null,c=!1,l=e=>{s=e,c&&(e.sets?.length>0||e.score)&&(c=!1);let t=document.getElementById(`submitScoreV2`);t&&(t.disabled=!(a===`inlineScoring`||e.isValid||c&&o));let n=document.getElementById(`clearScoreV2`);if(n){let t=document.getElementById(`scoreInputV2`);if(t)n.disabled=!t.value.trim();else{let t=e.sets&&e.sets.length>0,r=e.matchUpStatus&&e.matchUpStatus!==`COMPLETED`&&e.matchUpStatus!==`TO_BE_PLAYED`;n.disabled=!(t||r)}}},u=()=>{window.cleanupDialPad&&(window.cleanupDialPad(),window.cleanupDialPad=void 0),window.resetDialPad&&(window.resetDialPad=void 0),window.resetDynamicSets&&(window.resetDynamicSets=void 0),window.resetInlineScoring&&(window.resetInlineScoring=void 0)},d=e=>{let n=document.createElement(`div`);return n.style.padding=`1em`,e===`freeScore`?iu({matchUp:t,container:n,onScoreChange:l,labels:i}):e===`dynamicSets`?sc({matchUp:t,container:n,onScoreChange:l,labels:i}):e===`dialPad`?Ec({matchUp:t,container:n,onScoreChange:l,labels:i}):e===`inlineScoring`&&Ss({matchUp:t,container:n,onScoreChange:l,labels:i}),n},f={freeScore:`
145
+ `,e.label.length>1&&!e.isSpecial?t.style.fontSize=`1.3rem`:e.isSpecial&&[`RET`,`WO`,`DEF`].includes(e.label)?(t.style.fontSize=`0.95rem`,t.style.setProperty(`background-color`,Sc,`important`)):e.isSpecial?(t.style.fontSize=`1.3rem`,t.style.setProperty(`background-color`,Sc,`important`)):t.style.fontSize=`1.3rem`,(e.value===`retired`||e.value===`defaulted`)&&(t.dataset.button=e.value),e.disabled&&(t.disabled=!0,t.style.visibility=`hidden`),e.requiresScore&&(t.disabled=!0),t.onclick=()=>{e.value===`delete`?O():e.value===`minus`?D(`-`):e.value===`retired`?(m=hc,h=void 0,g.querySelectorAll(wc).forEach(e=>e.checked=!1),E()):e.value===`walkover`?(m=gc,h=void 0,d.digits=``,g.querySelectorAll(wc).forEach(e=>e.checked=!1),E(),j()):e.value===`defaulted`?(m=_c,h=void 0,g.querySelectorAll(wc).forEach(e=>e.checked=!1),E()):e.value===`empty`||D(e.value)},C.appendChild(t)});let M=e=>{if(e.key>=`0`&&e.key<=`9`)e.preventDefault(),D(Number.parseInt(e.key));else if(e.key===`Backspace`||e.key===`Delete`)e.preventDefault(),O();else if(e.key===`-`||e.key===` `||e.key===`/`)e.preventDefault(),D(`-`);else if(e.key===`)`){e.preventDefault();let t=w(d.digits);t.includes(`(`)&&!t.includes(`)`)&&(d.digits+=`-`,E())}};r.setAttribute(`tabindex`,`-1`),r.style.outline=`none`,r.addEventListener(`keydown`,M),setTimeout(()=>r.focus(),100),globalThis.cleanupDialPad=()=>{r.removeEventListener(`keydown`,M)};let N=u===hc||u===gc||u===_c||u===vc||u===yc;N?(u===vc?(m=gc,h=void 0):u===yc?(m=_c,h=void 0):(m=u,h=l),g.querySelectorAll(Cc).forEach(e=>{e.value===m&&(e.checked=!0)}),h&&(g.querySelectorAll(wc).forEach(e=>{Number.parseInt(e.value)===h&&(e.checked=!0)}),v.style.display=`block`)):!c&&(!u||u===`TO_BE_PLAYED`)&&k(),d.digits||N?(E(),setTimeout(()=>{let e=document.getElementById(`clearScoreV2`);e&&(e.disabled=!1),j()},0)):(T(null),j())}catch(e){console.error(`Error rendering dial pad:`,e),r.innerHTML=`<p style="color: red;">Error: ${e instanceof Error?e.message:`Unknown error`}</p>`}}var{RETIRED:Dc,WALKOVER:Oc,DEFAULTED:kc,SUSPENDED:Ac,CANCELLED:jc,INCOMPLETE:Mc,DEAD_RUBBER:Nc,IN_PROGRESS:Pc,AWAITING_RESULT:Fc}=t.matchUpStatusConstants;function Ic(e,t){let n=e.substring(t).trim().toLowerCase();return/^in(\s+p(rog(ress)?)?)?$/i.exec(n)?{ending:Pc,endPos:e.length}:/^inc(omp(lete?)?)?/i.exec(n)?{ending:Mc,endPos:e.length}:/^(dr|dead(\s*r(ubber)?)?)/i.exec(n)?{ending:Nc,endPos:e.length}:/^r(et(ired?)?)?/i.exec(n)?{ending:Dc,endPos:e.length}:/^(w(\/o|o|alk(over?)?)?)/i.exec(n)?{ending:Oc,endPos:e.length}:/^d(ef(aulted?)?)?/i.exec(n)?{ending:kc,endPos:e.length}:/^s(usp(ended?)?)?/i.exec(n)?{ending:Ac,endPos:e.length}:/^c(anc(ell?ed?)?)?/i.exec(n)?{ending:jc,endPos:e.length}:/^a(wait(ing(\s*r(esult)?)?)?)?/i.exec(n)?{ending:Fc,endPos:e.length}:{endPos:t}}function Lc(e,t){return t===(e.bestOf||3)-1&&e.finalSetFormat?e.finalSetFormat:e.setFormat}function Rc(e){return!!e?.tiebreakSet?.tiebreakTo&&!e?.setTo}function zc(e){return Rc(e)?0:(e?.setTo||6)+1}function Bc(e){let t=e?.tiebreakSet,n=e?.tiebreakFormat;return t?t.tiebreakTo||10:n&&n.tiebreakTo||7}function Vc(e){return e>=`0`&&e<=`9`}function Hc(e){for(let t of e)if(!Vc(t))return!1;return!0}function Uc(e){return!Vc(e)&&!Wc(e)&&!Gc(e)}function Wc(e){return e===`(`||e===`[`}function Gc(e){return e===`)`||e===`]`}function Kc(e,t,n){let r=n?.tiebreakAt||n?.setTo||6;return e===r&&t===r}function qc(e,t,n){let r=n?.setTo||6,i=Math.max(e,t);return i<r?!1:i-Math.min(e,t)>=2?!0:(r+1,!1)}function Jc(e,t,n){let r=Bc(n),i=Math.max(e,t),a=Math.min(e,t);return n?.tiebreakSet?.NoAD||n?.tiebreakFormat?.NoAD?i>=r:i<r?!1:i-a>=2}function Yc(e,t){let n=+(e===`1-0`),r=+(e===`0-1`);return{side1TiebreakScore:n,side2TiebreakScore:r,setNumber:t,winningSide:n>r?1:2}}function Xc(e,t,n){let r=e.indexOf(`-`);if(r===-1)return n.push({position:0,message:`Set ${t}: Invalid format "${e}". Expected "#-#" (e.g., "5-3")`,expected:`#-#`,got:e}),null;let i=e.slice(0,r),a=e.slice(r+1);return!i||!a||!Hc(i)||!Hc(a)?(n.push({position:0,message:`Set ${t}: Invalid format "${e}". Expected "#-#" (e.g., "5-3")`,expected:`#-#`,got:e}),null):{side1Score:Number.parseInt(i,10),side2Score:Number.parseInt(a,10),setNumber:t}}function Zc(e,t,n){let r=e.indexOf(`-`);if(r===-1)return n.push({position:0,message:`Final set: Invalid format "${e}". Expected TB format "1-0" or "0-1", or regular "#-#"`,expected:`1-0, 0-1, or #-#`,got:e}),null;let i=e.slice(0,r),a=e.slice(r+1);return!i||!a||!Hc(i)||!Hc(a)?(n.push({position:0,message:`Final set: Invalid format "${e}". Expected TB format "1-0" or "0-1", or regular "#-#"`,expected:`1-0, 0-1, or #-#`,got:e}),null):{side1Score:Number.parseInt(i,10),side2Score:Number.parseInt(a,10),setNumber:t}}function Qc(e,t){return e.slice(0,t).reduce((e,t)=>(e.side1+=t.side1Score||0,e.side2+=t.side2Score||0,e),{side1:0,side2:0})}function $c(e,t,n){let r=e.filter(e=>e.side1Score!==void 0),i=e.some(e=>e.side1TiebreakScore!==void 0);if(r.length<t)return;let a=Qc(r,t),o=a.side1===a.side2,s=r.length>t;if(o&&!i)if(s){let e=r[t];n.push({position:0,message:`Aggregate tied (${a.side1}-${a.side2}). Final set score "${e.side1Score}-${e.side2Score}" invalid. TB1 only accepts "1-0" or "0-1"`})}else n.push({position:0,message:`Aggregate tied (${a.side1}-${a.side2}), final TB required`});else!o&&i?n.push({position:0,message:`Aggregate not tied (${a.side1}-${a.side2}), final TB not allowed`}):!o&&s&&n.push({position:0,message:`Aggregate not tied (${a.side1}-${a.side2}), extra sets not allowed`})}function el(e,t,n,r){let i=[];for(let a=0;a<e.length;a++){let o=e[a],s=a+1,c=s===n,l=o===`1-0`||o===`0-1`;if(t&&c&&l)i.push(Yc(o,s));else if(t&&c&&!l){let e=Zc(o,s,r);e&&i.push(e)}else{let e=Xc(o,s,r);e&&i.push(e)}}return i}function tl(e,t){return{valid:!1,formattedScore:``,sets:[],confidence:1,errors:[],warnings:[],ambiguities:[],suggestions:e?[`Enter ${t-1} timed sets (final TB only if tied)`]:[`Enter ${t} sets in format: #-# #-# ...`],incomplete:!0,matchComplete:!1}}function nl(e,t,n,r,i){if(e>n){let a=r?`${t}-${n}`:`${n}`;i.push({position:0,message:`Too many sets: got ${e}, expected ${a}`})}}function rl(e,t,n,r,i){if(!e)return[];if(t){let e=n-r;return[`Enter ${e} more timed set${e===1?``:`s`} (or final TB if aggregate tied)`]}let a=i-r;return[`Need ${a} more set${a===1?``:`s`}`]}function il(e){return e.map(e=>e.side1TiebreakScore===void 0?`${e.side1Score}-${e.side2Score}`:`${e.side1TiebreakScore}-${e.side2TiebreakScore}`).join(` `)}function al(e,t){let n=t.exactly||t.bestOf||1,r=e.trim(),i=!!t?.aggregate,a=t.finalSetFormat?.tiebreakSet?.tiebreakTo!==void 0,o=i&&a;if(!r)return tl(o,n);let s=r.split(/\s+/),c=[],l=o?n-1:n,u=el(s,o,n,c);o&&c.length===0&&$c(u,l,c);let d=o?l:n,f=n;nl(u.length,d,f,o,c);let p=u.length<d&&c.length===0,m=(u.length===n||o&&u.length===l)&&c.length===0,h=il(u);return{valid:c.length===0&&(u.length===d||u.length===f),formattedScore:h,sets:u,confidence:+(c.length===0),errors:c,warnings:[],ambiguities:[],suggestions:rl(p,o,d,u.length,n),incomplete:p,matchComplete:m}}function ol(e,n){let r=typeof n==`string`?t.matchUpFormatCode.parse(n):n;if(!r)return{valid:!1,formattedScore:``,sets:[],confidence:0,errors:[{position:0,message:`Invalid matchUpFormat`}],warnings:[],ambiguities:[],suggestions:[],incomplete:!1,matchComplete:!1};let i=!!(r.setFormat?.timed||r.finalSetFormat?.timed),a=!!r.exactly||r.bestOf===1;if(i&&a)return al(e,r);let o={input:e,position:0,setIndex:0,currentSide1Buffer:``,currentSide2Buffer:``,currentTiebreakSide1Buffer:``,currentTiebreakSide2Buffer:``,sets:[],parsedFormat:r,state:`START`,inTiebreak:!1,expectingTiebreakOnly:!1,isValid:!0,errors:[],warnings:[],confidence:1,ambiguities:[],suggestions:[]};for(Rc(Lc(r,0))?(o.expectingTiebreakOnly=!0,o.inTiebreak=!0,o.state=`PARSING_TIEBREAK_SIDE1`):o.state=`PARSING_SIDE1`;o.position<e.length&&o.isValid;)sl(o);Dl(o);let s=o.sets,c;o.irregularEnding&&(c=o.irregularEnding,(o.irregularEnding===Oc||o.irregularEnding===jc||o.irregularEnding===Nc)&&(s=[]));let l=o.irregularEnding?!1:Ol(o),u=kl(o);return{valid:o.isValid&&o.errors.length===0,formattedScore:u,sets:s,confidence:o.confidence,errors:o.errors,warnings:o.warnings,ambiguities:o.ambiguities,suggestions:o.suggestions,incomplete:!l&&s.length>0,matchComplete:l,matchUpStatus:c}}function sl(e){let t=e.input[e.position];if(!Vc(t)&&!Wc(t)&&!Gc(t)){let t=Ic(e.input,e.position);if(t.ending){e.irregularEnding=t.ending,e.irregularEndingPosition=e.position,e.position=t.endPos;return}}if(Uc(t)){cl(e);return}if(Wc(t)){ll(e);return}if(Gc(t)){ul(e);return}if(Vc(t)){dl(e,t);return}e.errors.push({position:e.position,message:`Unexpected character '${t}'`,got:t,context:Al(e)}),e.isValid=!1}function cl(e){if(e.state===`PARSING_SIDE1`&&e.currentSide1Buffer){e.state=`PARSING_SIDE2`,e.position++;return}if(e.state===`PARSING_SIDE2`&&e.currentSide2Buffer){if(Sl(Number.parseInt(e.currentSide1Buffer),Number.parseInt(e.currentSide2Buffer),Lc(e.parsedFormat,e.setIndex))){e.inTiebreak=!0,e.state=`PARSING_TIEBREAK_SIDE1`,e.position++;return}Tl(e),e.position++;return}if(e.state===`PARSING_TIEBREAK_SIDE1`&&e.currentTiebreakSide1Buffer)if(e.currentSide1Buffer&&e.currentSide2Buffer){Tl(e),e.position++;return}else{e.state=`PARSING_TIEBREAK_SIDE2`,e.position++;return}e.position++}function ll(e){let t=Lc(e.parsedFormat,e.setIndex);if(Rc(t)){e.inTiebreak=!0,e.state=`PARSING_TIEBREAK_SIDE1`,e.position++;return}if(e.currentSide1Buffer&&e.currentSide2Buffer&&Kc(Number.parseInt(e.currentSide1Buffer),Number.parseInt(e.currentSide2Buffer),t)){e.inTiebreak=!0,e.state=`PARSING_TIEBREAK_SIDE1`,e.position++;return}e.warnings.push(`Tiebreak indicator at position ${e.position} may be ambiguous`),e.inTiebreak=!0,e.state=`PARSING_TIEBREAK_SIDE1`,e.position++}function ul(e){if(e.inTiebreak){El(e),e.inTiebreak=!1,e.position++;return}e.warnings.push(`Unexpected tiebreak closer at position ${e.position}`),e.position++}function dl(e,t){let n=Lc(e.parsedFormat,e.setIndex);e.inTiebreak?vl(e,t,n):hl(e,t,n)}function fl(e,t,n){return Number.parseInt(e+t)>n}function pl(e,t,n){e.state=`PARSING_SIDE1`,e.currentSide1Buffer+=t;let r=Number.parseInt(e.currentSide1Buffer),i=e.position+1;if(i<e.input.length&&Vc(e.input[i])){let t=e.input[i];fl(e.currentSide1Buffer,t,n)&&(e.warnings.push(`Potential score issue: "${e.currentSide1Buffer}${t}" would exceed max game score ${n}`),e.state=`PARSING_SIDE2`)}else e.state=`PARSING_SIDE2`;r>n&&e.warnings.push(`Score ${r} exceeds max ${n} at position ${e.position}`),e.position++}function ml(e,t,n,r){e.currentSide2Buffer+=t;let i=Number.parseInt(e.currentSide1Buffer),a=Number.parseInt(e.currentSide2Buffer);if(Sl(i,a,n)){e.inTiebreak=!0,e.state=`PARSING_TIEBREAK_SIDE1`,e.position++;return}let o=e.position+1;if(o<e.input.length&&Vc(e.input[o])){let t=e.input[o];fl(e.currentSide2Buffer,t,r)&&(qc(i,a,n)||Kc(i,a,n)||e.warnings.push(`Set ${e.setIndex+1} may be incomplete: ${i}-${a}`),Tl(e))}e.position++}function hl(e,t,n){let r=zc(n);if(e.state===`PARSING_SIDE1`||e.state===`START`){pl(e,t,r);return}if(e.state===`PARSING_SIDE2`){ml(e,t,n,r);return}e.position++}function gl(e,t){e.currentTiebreakSide1Buffer+=t,e.position++}function _l(e,t,n){e.currentTiebreakSide2Buffer+=t;let r=Number.parseInt(e.currentTiebreakSide2Buffer),i=e.position+1;if(i<e.input.length&&Vc(e.input[i])){let t=e.input[i],a=Number.parseInt(e.currentTiebreakSide2Buffer+t),o=Number.parseInt(e.currentTiebreakSide1Buffer);if(a>999){let t=r;Jc(o,t,n)||e.warnings.push(`Tiebreak may be incomplete: ${o}-${t}`),Tl(e)}}e.position++}function vl(e,t,n){if(e.state===`PARSING_TIEBREAK_SIDE1`){gl(e,t);return}if(e.state===`PARSING_TIEBREAK_SIDE2`){_l(e,t,n);return}e.position++}function yl(e){if(!e.currentTiebreakSide1Buffer||!e.currentTiebreakSide2Buffer)return null;let t=Number.parseInt(e.currentTiebreakSide1Buffer),n=Number.parseInt(e.currentTiebreakSide2Buffer);return{side1Score:0,side2Score:0,side1TiebreakScore:t,side2TiebreakScore:n,setNumber:e.setIndex+1,winningSide:t>n?1:2}}function bl(e,t,n){let r=t.currentTiebreakSide1Buffer,i=t.currentTiebreakSide2Buffer;r&&i?(e.side1TiebreakScore=Number.parseInt(r),e.side2TiebreakScore=Number.parseInt(i)):(r||i)&&xl(e,r,i,n)}function xl(e,t,n,r){let i=Number.parseInt(t||n),a=Bc(r),o=r?.tiebreakFormat?.NoAD?a:Math.max(a,i+2);e.side1Score>e.side2Score?(e.side1TiebreakScore=o,e.side2TiebreakScore=i):(e.side1TiebreakScore=i,e.side2TiebreakScore=o)}function Sl(e,t,n){let r=n.tiebreakAt||n.setTo||6;return e===r&&t===r+1||t===r&&e===r+1}function Cl(e,t){if(!e.currentSide1Buffer||!e.currentSide2Buffer)return null;let n=Number.parseInt(e.currentSide1Buffer),r=Number.parseInt(e.currentSide2Buffer);if(Sl(n,r,t)&&!e.currentTiebreakSide1Buffer&&!e.currentTiebreakSide2Buffer)return null;let i={side1Score:n,side2Score:r,setNumber:e.setIndex+1};return(e.currentTiebreakSide1Buffer||e.currentTiebreakSide2Buffer)&&bl(i,e,t),n>r?i.winningSide=1:r>n&&(i.winningSide=2),i}function wl(e){e.currentSide1Buffer=``,e.currentSide2Buffer=``,e.currentTiebreakSide1Buffer=``,e.currentTiebreakSide2Buffer=``,e.setIndex++,e.inTiebreak=!1,e.state=`PARSING_SIDE1`,Rc(Lc(e.parsedFormat,e.setIndex))&&(e.expectingTiebreakOnly=!0,e.inTiebreak=!0,e.state=`PARSING_TIEBREAK_SIDE1`)}function Tl(e){let t=Lc(e.parsedFormat,e.setIndex),n=Rc(t)?yl(e):Cl(e,t);n&&e.sets.push(n),wl(e)}function El(e){Tl(e)}function Dl(e){(e.currentSide1Buffer||e.currentSide2Buffer||e.currentTiebreakSide1Buffer||e.currentTiebreakSide2Buffer)&&Tl(e)}function Ol(e){let t=e.parsedFormat.bestOf||3,n=Math.ceil(t/2),r=e.sets.filter(e=>e.winningSide===1).length,i=e.sets.filter(e=>e.winningSide===2).length;return r>=n||i>=n}function kl(e){let t=[];for(let n of e.sets)if((!n.side1Score||n.side1Score===0)&&(!n.side2Score||n.side2Score===0)&&(n.side1TiebreakScore!==void 0||n.side2TiebreakScore!==void 0)){let e=n.side1TiebreakScore??0,r=n.side2TiebreakScore??0;t.push(`[${e}-${r}]`)}else{let e=`${n.side1Score||0}-${n.side2Score||0}`;if(n.side1TiebreakScore!==void 0||n.side2TiebreakScore!==void 0){let t=n.side1TiebreakScore??0,r=n.side2TiebreakScore??0,i=n.winningSide===1?r:t;e+=`(${i})`}t.push(e)}return t.join(` `)}function Al(e){let t=Math.max(0,e.position-5),n=Math.min(e.input.length,e.position+5),r=e.input.substring(t,e.position),i=e.input.substring(e.position+1,n);return`...${r}[${e.input[e.position]}]${i}...`}var{RETIRED:jl,WALKOVER:Ml,DEFAULTED:Nl,DOUBLE_WALKOVER:Pl,DOUBLE_DEFAULT:Fl,SUSPENDED:Il,CANCELLED:Ll,INCOMPLETE:Rl,DEAD_RUBBER:zl,IN_PROGRESS:Bl,AWAITING_RESULT:Vl,COMPLETED:Hl,TO_BE_PLAYED:Ul}=t.matchUpStatusConstants;function Wl(e,t){let n=``;if(e&&(n=(e.sets||[]).map(e=>{let t=`${e.side1Score||0}-${e.side2Score||0}`;if(e.side1TiebreakScore!==void 0||e.side2TiebreakScore!==void 0){let n=e.winningSide===1?e.side2TiebreakScore:e.side1TiebreakScore;t+=`(${n})`}return t}).join(` `)),t&&t!==Hl&&t!==Ul){let e=Gl(t);if(e)return n?`${n} ${e}`:e}return n}function Gl(e){return{[jl]:`ret`,[Ml]:`wo`,[Nl]:`def`,[Pl]:`wo`,[Fl]:`def`,[Il]:`susp`,[Ll]:`canc`,[Rl]:`inc`,[zl]:`dr`,[Bl]:`in`,[Vl]:`await`}[e]||``}var{RETIRED:Kl,WALKOVER:ql,DEFAULTED:Jl,SUSPENDED:Yl,CANCELLED:Xl,INCOMPLETE:Zl,DEAD_RUBBER:Ql,IN_PROGRESS:$l,AWAITING_RESULT:eu,DOUBLE_WALKOVER:tu,DOUBLE_DEFAULT:nu}=t.matchUpStatusConstants,ru=`var(--chc-status-success)`;function iu(e){let{matchUp:n,container:r,onScoreChange:i,labels:a={}}=e;r.innerHTML=``,r.style.display=`flex`,r.style.flexDirection=`column`,r.style.gap=`1em`;let o=n?.sides?.find(e=>e.sideNumber===1),s=n?.sides?.find(e=>e.sideNumber===2),c=n.score?{...n.score}:void 0,l=n.winningSide,u=n.matchUpStatus,d=document.createElement(`div`);d.style.marginBottom=`0.25em`,r.appendChild(d);let f=document.createElement(`div`);f.style.display=`none`,f.style.marginTop=`0.25em`,f.style.padding=`0.35em 0.5em`,f.style.backgroundColor=`var(--chc-bg-secondary)`,f.style.borderRadius=`4px`,f.style.flexDirection=`column`,f.style.gap=`0.35em`;let p=document.createElement(`label`);p.style.display=`flex`,p.style.alignItems=`center`,p.style.gap=`0.4em`,p.style.cursor=`pointer`;let m=document.createElement(`input`);m.type=`radio`,m.name=`winnerSelection`,m.value=`1`;let h=document.createElement(`span`);h.textContent=o?.participant?.participantName||`Side 1`,h.style.fontSize=`0.75rem`,p.appendChild(m),p.appendChild(h);let g=document.createElement(`label`);g.style.display=`flex`,g.style.alignItems=`center`,g.style.gap=`0.4em`,g.style.cursor=`pointer`;let _=document.createElement(`input`);_.type=`radio`,_.name=`winnerSelection`,_.value=`2`;let v=document.createElement(`span`);v.textContent=s?.participant?.participantName||`Side 2`,v.style.fontSize=`0.75rem`,g.appendChild(_),g.appendChild(v),f.appendChild(p),f.appendChild(g),r.appendChild(f);let y=e=>{let{WALKOVER:r,CANCELLED:i,DEAD_RUBBER:a}=t.matchUpStatusConstants,o=[r,i,a],s=e?.matchUpStatus&&o.includes(e.matchUpStatus),f;e?.clearAll||s?(f=void 0,c=void 0):e?.scoreObject?(f=e.scoreObject,c=e.scoreObject):f=c,e?.clearAll?(l=void 0,u=void 0):e!=null&&(`winningSide`in e&&(l=e.winningSide),`matchUpStatus`in e&&(u=e.matchUpStatus));let p={...n,score:f,winningSide:l,matchUpStatus:u};d.innerHTML=``;let m=ei({matchUp:p,isLucky:!0,composition:mi[vs().composition||`Australian`]||mi.Australian});d.appendChild(m)};if(y(),n.matchUpFormat){let e=document.createElement(`div`);e.style.fontSize=`0.9rem`,e.style.marginBottom=`0.5em`,e.style.display=`flex`,e.style.alignItems=`center`,e.style.gap=`0.5em`;let t=document.createElement(`span`);t.textContent=(a.format||`Format`)+`:`,t.style.color=`var(--chc-text-secondary)`,e.appendChild(t);let i=document.createElement(`button`);i.textContent=n.matchUpFormat,i.className=`button is-small is-white`,i.style.fontSize=`0.75rem`,i.style.padding=`0.2em 0.5em`,i.style.cursor=`pointer`,i.title=`Click to edit format`,i.addEventListener(`click`,()=>{try{Va({existingMatchUpFormat:n.matchUpFormat,callback:e=>{if(e&&e!==n.matchUpFormat){n.matchUpFormat=e,i.textContent=e;let t=document.getElementById(`scoreInputV2`);t&&(t.value=``,t.dispatchEvent(new Event(`input`,{bubbles:!0}))),w.textContent=`Score cleared - format changed`,w.style.color=`var(--chc-text-muted)`}},modalConfig:{style:{fontSize:`12px`,border:`3px solid #0066cc`}}})}catch(e){console.error(`[FreeScore] Error opening format selector:`,e)}}),e.appendChild(i),r.appendChild(e)}let b=document.createElement(`div`);b.style.display=`flex`,b.style.alignItems=`center`,b.style.gap=`0.5em`;let x=document.createElement(`input`);x.type=`text`,x.className=`input`,x.placeholder=``,x.style.flex=`1`,x.id=`scoreInputV2`,c&&(x.value=Wl(c,u));let S=document.createElement(`span`);S.style.fontSize=`1.2rem`,S.style.minWidth=`1.5em`,b.appendChild(x),b.appendChild(S),r.appendChild(b);let C=document.createElement(`div`);C.style.fontSize=`0.9rem`,C.style.color=`var(--chc-border-focus)`,C.style.fontFamily=`monospace`,C.style.minHeight=`1.5em`,C.style.padding=`0.25em`,r.appendChild(C);let w=document.createElement(`div`);w.style.fontSize=`0.9rem`,w.style.minHeight=`1.5em`,r.appendChild(w);let T=l,E=()=>{m.checked?(T=1,p.style.fontWeight=`bold`,p.style.color=ru,g.style.fontWeight=``,g.style.color=``):_.checked&&(T=2,g.style.fontWeight=`bold`,g.style.color=ru,p.style.fontWeight=``,p.style.color=``),j()};m.addEventListener(`change`,E),_.addEventListener(`change`,E);function D(){f.style.display=`none`,m.checked=!1,_.checked=!1,p.style.fontWeight=``,p.style.color=``,g.style.fontWeight=``,g.style.color=``,T=void 0}let O={[Kl]:a.retired||`RETIRED`,[ql]:a.walkover||`WALKOVER`,[Jl]:a.defaulted||`DEFAULTED`,[Yl]:`SUSPENDED`,[Xl]:`CANCELLED`,[Zl]:`INCOMPLETE`,[Ql]:`DEAD RUBBER`,[$l]:`IN PROGRESS`,[eu]:`AWAITING RESULT`};function k(e){let t=a.validScore||`Valid score`,n=e&&O[e];return n?`${t} - ${n}`:t}function A(e,t,n){let r=e.matchUpStatus||t.matchUpStatus,a=[Kl,ql,Jl].includes(r),o=[Xl,Ql,eu,Zl,$l,Yl].includes(r);if(a){f.style.display=`flex`;let a=T;if(!a){i(r===ql?{...e,isValid:!0,matchUpStatus:tu,score:t.formattedScore||n}:r===Jl?{...e,isValid:!0,matchUpStatus:nu,score:t.formattedScore||n}:{...e,isValid:!1,error:`Winner must be selected for irregular ending`,matchUpStatus:r,score:t.formattedScore||n});return}return a}if(o){D();return}return D(),e.winningSide}let j=()=>{let e=x.value.trim();if(!e){S.textContent=``,C.textContent=``,w.textContent=``,w.style.color=``,D(),y({clearAll:!0}),i({isValid:!1,sets:[],matchUpStatus:`TO_BE_PLAYED`});return}let t=ol(e,n.matchUpFormat);C.textContent=t.formattedScore||``;let r=new Set([Kl,ql,Jl,Yl,Xl,Zl,Ql,$l,eu]),a=t.matchUpStatus&&r.has(t.matchUpStatus),o=t.formattedScore?Os(t.formattedScore,n.matchUpFormat,t.matchUpStatus):{isValid:!1,sets:[],error:`No score to validate`},s=o.sets&&o.sets.length>0,c=T||o.winningSide;if((s&&o.scoreObject||a)&&y({scoreObject:o.scoreObject,winningSide:c,matchUpStatus:o.matchUpStatus||t.matchUpStatus}),o.isValid||a)if(S.textContent=`✓`,S.style.color=ru,w.textContent=k(o.matchUpStatus||t.matchUpStatus),w.style.color=ru,a){let n=A(o,t,e);if(n===void 0&&[Kl,ql,Jl].includes(o.matchUpStatus||t.matchUpStatus)&&!T)return;i({...o,isValid:!0,winningSide:n,matchUpStatus:o.matchUpStatus||t.matchUpStatus,score:t.formattedScore||e})}else D(),i({...o,isValid:!0,winningSide:o.winningSide,matchUpStatus:o.matchUpStatus||t.matchUpStatus,score:t.formattedScore||e});else!o.isValid&&s?(S.textContent=`⋯`,S.style.color=`var(--chc-status-warning)`,w.textContent=o.error||`Score incomplete - continue typing`,w.style.color=`var(--chc-status-warning)`,D(),i(o)):(S.textContent=`✗`,S.style.color=`var(--chc-status-error)`,w.textContent=o.error||`Invalid score`,w.style.color=`var(--chc-status-error)`,D(),y({scoreObject:void 0,winningSide:void 0,matchUpStatus:void 0}),i(o))},M=!1;x.addEventListener(`input`,()=>{j();let e=x.value,r=e.trim();if(!M&&r){let i=ol(r,n.matchUpFormat),a=i.formattedScore?Os(i.formattedScore,n.matchUpFormat,i.matchUpStatus):{isValid:!1,winningSide:void 0},o=a.isValid&&a.winningSide!==void 0,s=e.length>0&&/[\s-]$/.test(e),c=t.matchUpFormatCode.parse(n.matchUpFormat),l=!!c?.exactly||c?.bestOf===1,u=c?.exactly||c?.bestOf||3,d=i.sets?.length>=u;o&&s&&(!l||d)&&(M=!0)}else if(M){let t=e.length>0&&/[\s-]$/.test(e);(r.length===0||!t)&&(M=!1)}}),x.addEventListener(`keydown`,e=>{M&&![`Backspace`,`Delete`,`ArrowLeft`,`ArrowRight`,`Tab`].includes(e.key)&&e.preventDefault()}),x.addEventListener(`keyup`,e=>{if(e.key===`Enter`){let e=document.getElementById(`submitScoreV2`);e&&!e.disabled&&e.click()}}),l===1?(m.checked=!0,p.style.fontWeight=`bold`,p.style.color=ru):l===2&&(_.checked=!0,g.style.fontWeight=`bold`,g.style.color=ru),setTimeout(()=>{x.focus(),u===tu||u===nu?(y({scoreObject:c,winningSide:l,matchUpStatus:u}),i({isValid:!0,sets:c?.sets||[],scoreObject:c,winningSide:l,matchUpStatus:u})):(x.value||u&&u!==`TO_BE_PLAYED`&&u!==`COMPLETED`)&&j()},100),globalThis.resetFreeScore=()=>{x.value=``,c=void 0,l=void 0,u=void 0,S.textContent=``,C.textContent=``,w.textContent=``,w.style.color=``,f.style.display=`none`,m.checked=!1,_.checked=!1,p.style.fontWeight=``,p.style.color=``,g.style.fontWeight=``,g.style.color=``,T=void 0,M=!1,y({clearAll:!0}),i({isValid:!1,sets:[],matchUpStatus:`TO_BE_PLAYED`}),x.focus()}}var au=`Irregular Endings:`,ou={dynamicSets:`Dynamic Sets`,freeScore:`Free Score`,dialPad:`Dial Pad`,inlineScoring:`Inline Scoring`},su=[`dynamicSets`,`freeScore`,`dialPad`,`inlineScoring`];function cu(e){let{matchUp:t,callback:n,onClose:r,labels:i={}}=e,a=vs().scoringApproach||`dynamicSets`,o=!!(t.score?.sets?.length||t.matchUpStatus),s=null,c=!1,l=e=>{s=e,c&&(e.sets?.length>0||e.score)&&(c=!1);let t=document.getElementById(`submitScoreV2`);t&&(t.disabled=!(a===`inlineScoring`||e.isValid||c&&o));let n=document.getElementById(`clearScoreV2`);if(n){let t=document.getElementById(`scoreInputV2`);if(t)n.disabled=!t.value.trim();else{let t=e.sets&&e.sets.length>0,r=e.matchUpStatus&&e.matchUpStatus!==`COMPLETED`&&e.matchUpStatus!==`TO_BE_PLAYED`;n.disabled=!(t||r)}}},u=()=>{window.cleanupDialPad&&(window.cleanupDialPad(),window.cleanupDialPad=void 0),window.resetDialPad&&(window.resetDialPad=void 0),window.resetDynamicSets&&(window.resetDynamicSets=void 0),window.resetInlineScoring&&(window.resetInlineScoring=void 0)},d=e=>{let n=document.createElement(`div`);return n.style.padding=`1em`,e===`freeScore`?iu({matchUp:t,container:n,onScoreChange:l,labels:i}):e===`dynamicSets`?sc({matchUp:t,container:n,onScoreChange:l,labels:i}):e===`dialPad`?Ec({matchUp:t,container:n,onScoreChange:l,labels:i}):e===`inlineScoring`&&Ss({matchUp:t,container:n,onScoreChange:l,labels:i}),n},f={freeScore:`
146
146
  <strong>${i.scoreTips||`Score Entry Tips:`}</strong><br><br>
147
147
  <strong>${i.setScores||`Set Scores:`}</strong> Space or dash-separated (e.g., "6-4 6-3")<br><br>
148
148
  <strong>${i.tiebreaks||`Tiebreaks:`}</strong> Auto-detected from digits (e.g., "67 3" becomes "6-7(3)")<br><br>
@@ -191,44 +191,44 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
191
191
  <div class="drawer__footer"></div>
192
192
  </div>
193
193
  </div>
194
- `;document.body.insertAdjacentHTML(`beforeend`,t)}var xd=`bottom`,Sd=`right`,Cd=`left`,wd=`auto`,Td=[`top`,xd,Sd,Cd],Ed=`start`,Dd=`clippingParents`,Od=`viewport`,kd=`popper`,Ad=`reference`,jd=Td.reduce(function(e,t){return e.concat([t+`-`+Ed,t+`-end`])},[]),Md=[].concat(Td,[wd]).reduce(function(e,t){return e.concat([t,t+`-`+Ed,t+`-end`])},[]),Nd=[`beforeRead`,`read`,`afterRead`,`beforeMain`,`main`,`afterMain`,`beforeWrite`,`write`,`afterWrite`];function Pd(e){return e?(e.nodeName||``).toLowerCase():null}function Fd(e){if(e==null)return window;if(e.toString()!==`[object Window]`){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Id(e){return e instanceof Fd(e).Element||e instanceof Element}function Ld(e){return e instanceof Fd(e).HTMLElement||e instanceof HTMLElement}function Rd(e){return typeof ShadowRoot>`u`?!1:e instanceof Fd(e).ShadowRoot||e instanceof ShadowRoot}function zd(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},i=t.elements[e];!Ld(i)||!Pd(i)||(Object.assign(i.style,n),Object.keys(r).forEach(function(e){var t=r[e];t===!1?i.removeAttribute(e):i.setAttribute(e,t===!0?``:t)}))})}function Bd(e){var t=e.state,n={popper:{position:t.options.strategy,left:`0`,top:`0`,margin:`0`},arrow:{position:`absolute`},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(e){var r=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce(function(e,t){return e[t]=``,e},{});!Ld(r)||!Pd(r)||(Object.assign(r.style,a),Object.keys(i).forEach(function(e){r.removeAttribute(e)}))})}}var Vd={name:`applyStyles`,enabled:!0,phase:`write`,fn:zd,effect:Bd,requires:[`computeStyles`]};function Hd(e){return e.split(`-`)[0]}var Ud=Math.max,Wd=Math.min,Gd=Math.round;function Kd(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+`/`+e.version}).join(` `):navigator.userAgent}function qd(){return!/^((?!chrome|android).)*safari/i.test(Kd())}function Jd(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),i=1,a=1;t&&Ld(e)&&(i=e.offsetWidth>0&&Gd(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&Gd(r.height)/e.offsetHeight||1);var o=(Id(e)?Fd(e):window).visualViewport,s=!qd()&&n,c=(r.left+(s&&o?o.offsetLeft:0))/i,l=(r.top+(s&&o?o.offsetTop:0))/a,u=r.width/i,d=r.height/a;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c,x:c,y:l}}function Yd(e){var t=Jd(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function Xd(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Rd(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function Zd(e){return Fd(e).getComputedStyle(e)}function Qd(e){return[`table`,`td`,`th`].indexOf(Pd(e))>=0}function $d(e){return((Id(e)?e.ownerDocument:e.document)||window.document).documentElement}function ef(e){return Pd(e)===`html`?e:e.assignedSlot||e.parentNode||(Rd(e)?e.host:null)||$d(e)}function tf(e){return!Ld(e)||Zd(e).position===`fixed`?null:e.offsetParent}function nf(e){var t=/firefox/i.test(Kd());if(/Trident/i.test(Kd())&&Ld(e)&&Zd(e).position===`fixed`)return null;var n=ef(e);for(Rd(n)&&(n=n.host);Ld(n)&&[`html`,`body`].indexOf(Pd(n))<0;){var r=Zd(n);if(r.transform!==`none`||r.perspective!==`none`||r.contain===`paint`||[`transform`,`perspective`].indexOf(r.willChange)!==-1||t&&r.willChange===`filter`||t&&r.filter&&r.filter!==`none`)return n;n=n.parentNode}return null}function rf(e){for(var t=Fd(e),n=tf(e);n&&Qd(n)&&Zd(n).position===`static`;)n=tf(n);return n&&(Pd(n)===`html`||Pd(n)===`body`&&Zd(n).position===`static`)?t:n||nf(e)||t}function af(e){return[`top`,`bottom`].indexOf(e)>=0?`x`:`y`}function of(e,t,n){return Ud(e,Wd(t,n))}function sf(e,t,n){var r=of(e,t,n);return r>n?n:r}function cf(){return{top:0,right:0,bottom:0,left:0}}function lf(e){return Object.assign({},cf(),e)}function uf(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}var df=function(e,t){return e=typeof e==`function`?e(Object.assign({},t.rects,{placement:t.placement})):e,lf(typeof e==`number`?uf(e,Td):e)};function ff(e){var t,n=e.state,r=e.name,i=e.options,a=n.elements.arrow,o=n.modifiersData.popperOffsets,s=Hd(n.placement),c=af(s),l=[`left`,`right`].indexOf(s)>=0?`height`:`width`;if(!(!a||!o)){var u=df(i.padding,n),d=Yd(a),f=c===`y`?`top`:Cd,p=c===`y`?xd:Sd,m=n.rects.reference[l]+n.rects.reference[c]-o[c]-n.rects.popper[l],h=o[c]-n.rects.reference[c],g=rf(a),_=g?c===`y`?g.clientHeight||0:g.clientWidth||0:0,v=m/2-h/2,y=u[f],b=_-d[l]-u[p],x=_/2-d[l]/2+v,S=of(y,x,b),C=c;n.modifiersData[r]=(t={},t[C]=S,t.centerOffset=S-x,t)}}function pf(e){var t=e.state,n=e.options.element,r=n===void 0?`[data-popper-arrow]`:n;r!=null&&(typeof r==`string`&&(r=t.elements.popper.querySelector(r),!r)||Xd(t.elements.popper,r)&&(t.elements.arrow=r))}var mf={name:`arrow`,enabled:!0,phase:`main`,fn:ff,effect:pf,requires:[`popperOffsets`],requiresIfExists:[`preventOverflow`]};function hf(e){return e.split(`-`)[1]}var gf={top:`auto`,right:`auto`,bottom:`auto`,left:`auto`};function _f(e,t){var n=e.x,r=e.y,i=t.devicePixelRatio||1;return{x:Gd(n*i)/i||0,y:Gd(r*i)/i||0}}function vf(e){var t,n=e.popper,r=e.popperRect,i=e.placement,a=e.variation,o=e.offsets,s=e.position,c=e.gpuAcceleration,l=e.adaptive,u=e.roundOffsets,d=e.isFixed,f=o.x,p=f===void 0?0:f,m=o.y,h=m===void 0?0:m,g=typeof u==`function`?u({x:p,y:h}):{x:p,y:h};p=g.x,h=g.y;var _=o.hasOwnProperty(`x`),v=o.hasOwnProperty(`y`),y=Cd,b=`top`,x=window;if(l){var S=rf(n),C=`clientHeight`,w=`clientWidth`;if(S===Fd(n)&&(S=$d(n),Zd(S).position!==`static`&&s===`absolute`&&(C=`scrollHeight`,w=`scrollWidth`)),S=S,i===`top`||(i===`left`||i===`right`)&&a===`end`){b=xd;var T=d&&S===x&&x.visualViewport?x.visualViewport.height:S[C];h-=T-r.height,h*=c?1:-1}if(i===`left`||(i===`top`||i===`bottom`)&&a===`end`){y=Sd;var E=d&&S===x&&x.visualViewport?x.visualViewport.width:S[w];p-=E-r.width,p*=c?1:-1}}var D=Object.assign({position:s},l&&gf),O=u===!0?_f({x:p,y:h},Fd(n)):{x:p,y:h};if(p=O.x,h=O.y,c){var k;return Object.assign({},D,(k={},k[b]=v?`0`:``,k[y]=_?`0`:``,k.transform=(x.devicePixelRatio||1)<=1?`translate(`+p+`px, `+h+`px)`:`translate3d(`+p+`px, `+h+`px, 0)`,k))}return Object.assign({},D,(t={},t[b]=v?h+`px`:``,t[y]=_?p+`px`:``,t.transform=``,t))}function yf(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0?!0:r,a=n.adaptive,o=a===void 0?!0:a,s=n.roundOffsets,c=s===void 0?!0:s,l={placement:Hd(t.placement),variation:hf(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy===`fixed`};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,vf(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:c})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,vf(Object.assign({},l,{offsets:t.modifiersData.arrow,position:`absolute`,adaptive:!1,roundOffsets:c})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var bf={name:`computeStyles`,enabled:!0,phase:`beforeWrite`,fn:yf,data:{}},xf={passive:!0};function Sf(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,a=i===void 0?!0:i,o=r.resize,s=o===void 0?!0:o,c=Fd(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&l.forEach(function(e){e.addEventListener(`scroll`,n.update,xf)}),s&&c.addEventListener(`resize`,n.update,xf),function(){a&&l.forEach(function(e){e.removeEventListener(`scroll`,n.update,xf)}),s&&c.removeEventListener(`resize`,n.update,xf)}}var Cf={name:`eventListeners`,enabled:!0,phase:`write`,fn:function(){},effect:Sf,data:{}},wf={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function Tf(e){return e.replace(/left|right|bottom|top/g,function(e){return wf[e]})}var Ef={start:`end`,end:`start`};function Df(e){return e.replace(/start|end/g,function(e){return Ef[e]})}function Of(e){var t=Fd(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function kf(e){return Jd($d(e)).left+Of(e).scrollLeft}function Af(e,t){var n=Fd(e),r=$d(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;var l=qd();(l||!l&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}return{width:a,height:o,x:s+kf(e),y:c}}function jf(e){var t=$d(e),n=Of(e),r=e.ownerDocument?.body,i=Ud(t.scrollWidth,t.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=Ud(t.scrollHeight,t.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),o=-n.scrollLeft+kf(e),s=-n.scrollTop;return Zd(r||t).direction===`rtl`&&(o+=Ud(t.clientWidth,r?r.clientWidth:0)-i),{width:i,height:a,x:o,y:s}}function Mf(e){var t=Zd(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function Nf(e){return[`html`,`body`,`#document`].indexOf(Pd(e))>=0?e.ownerDocument.body:Ld(e)&&Mf(e)?e:Nf(ef(e))}function Pf(e,t){t===void 0&&(t=[]);var n=Nf(e),r=n===e.ownerDocument?.body,i=Fd(n),a=r?[i].concat(i.visualViewport||[],Mf(n)?n:[]):n,o=t.concat(a);return r?o:o.concat(Pf(ef(a)))}function Ff(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function If(e,t){var n=Jd(e,!1,t===`fixed`);return n.top+=e.clientTop,n.left+=e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function Lf(e,t,n){return t===`viewport`?Ff(Af(e,n)):Id(t)?If(t,n):Ff(jf($d(e)))}function Rf(e){var t=Pf(ef(e)),n=[`absolute`,`fixed`].indexOf(Zd(e).position)>=0&&Ld(e)?rf(e):e;return Id(n)?t.filter(function(e){return Id(e)&&Xd(e,n)&&Pd(e)!==`body`}):[]}function zf(e,t,n,r){var i=t===`clippingParents`?Rf(e):[].concat(t),a=[].concat(i,[n]),o=a[0],s=a.reduce(function(t,n){var i=Lf(e,n,r);return t.top=Ud(i.top,t.top),t.right=Wd(i.right,t.right),t.bottom=Wd(i.bottom,t.bottom),t.left=Ud(i.left,t.left),t},Lf(e,o,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function Bf(e){var t=e.reference,n=e.element,r=e.placement,i=r?Hd(r):null,a=r?hf(r):null,o=t.x+t.width/2-n.width/2,s=t.y+t.height/2-n.height/2,c;switch(i){case`top`:c={x:o,y:t.y-n.height};break;case xd:c={x:o,y:t.y+t.height};break;case Sd:c={x:t.x+t.width,y:s};break;case Cd:c={x:t.x-n.width,y:s};break;default:c={x:t.x,y:t.y}}var l=i?af(i):null;if(l!=null){var u=l===`y`?`height`:`width`;switch(a){case Ed:c[l]=c[l]-(t[u]/2-n[u]/2);break;case`end`:c[l]=c[l]+(t[u]/2-n[u]/2);break;default:}}return c}function Vf(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=r===void 0?e.placement:r,a=n.strategy,o=a===void 0?e.strategy:a,s=n.boundary,c=s===void 0?Dd:s,l=n.rootBoundary,u=l===void 0?Od:l,d=n.elementContext,f=d===void 0?kd:d,p=n.altBoundary,m=p===void 0?!1:p,h=n.padding,g=h===void 0?0:h,_=lf(typeof g==`number`?uf(g,Td):g),v=f===`popper`?Ad:kd,y=e.rects.popper,b=e.elements[m?v:f],x=zf(Id(b)?b:b.contextElement||$d(e.elements.popper),c,u,o),S=Jd(e.elements.reference),C=Bf({reference:S,element:y,strategy:`absolute`,placement:i}),w=Ff(Object.assign({},y,C)),T=f===`popper`?w:S,E={top:x.top-T.top+_.top,bottom:T.bottom-x.bottom+_.bottom,left:x.left-T.left+_.left,right:T.right-x.right+_.right},D=e.modifiersData.offset;if(f===`popper`&&D){var O=D[i];Object.keys(E).forEach(function(e){var t=[`right`,`bottom`].indexOf(e)>=0?1:-1,n=[`top`,`bottom`].indexOf(e)>=0?`y`:`x`;E[e]+=O[n]*t})}return E}function Hf(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=n.boundary,a=n.rootBoundary,o=n.padding,s=n.flipVariations,c=n.allowedAutoPlacements,l=c===void 0?Md:c,u=hf(r),d=u?s?jd:jd.filter(function(e){return hf(e)===u}):Td,f=d.filter(function(e){return l.indexOf(e)>=0});f.length===0&&(f=d);var p=f.reduce(function(t,n){return t[n]=Vf(e,{placement:n,boundary:i,rootBoundary:a,padding:o})[Hd(n)],t},{});return Object.keys(p).sort(function(e,t){return p[e]-p[t]})}function Uf(e){if(Hd(e)===`auto`)return[];var t=Tf(e);return[Df(e),t,Df(t)]}function Wf(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,a=i===void 0?!0:i,o=n.altAxis,s=o===void 0?!0:o,c=n.fallbackPlacements,l=n.padding,u=n.boundary,d=n.rootBoundary,f=n.altBoundary,p=n.flipVariations,m=p===void 0?!0:p,h=n.allowedAutoPlacements,g=t.options.placement,_=Hd(g)===g,v=c||(_||!m?[Tf(g)]:Uf(g)),y=[g].concat(v).reduce(function(e,n){return e.concat(Hd(n)===`auto`?Hf(t,{placement:n,boundary:u,rootBoundary:d,padding:l,flipVariations:m,allowedAutoPlacements:h}):n)},[]),b=t.rects.reference,x=t.rects.popper,S=new Map,C=!0,w=y[0],T=0;T<y.length;T++){var E=y[T],D=Hd(E),O=hf(E)===Ed,k=[`top`,xd].indexOf(D)>=0,A=k?`width`:`height`,j=Vf(t,{placement:E,boundary:u,rootBoundary:d,altBoundary:f,padding:l}),M=k?O?Sd:Cd:O?xd:`top`;b[A]>x[A]&&(M=Tf(M));var N=Tf(M),P=[];if(a&&P.push(j[D]<=0),s&&P.push(j[M]<=0,j[N]<=0),P.every(function(e){return e})){w=E,C=!1;break}S.set(E,P)}if(C)for(var F=m?3:1,ee=function(e){var t=y.find(function(t){var n=S.get(t);if(n)return n.slice(0,e).every(function(e){return e})});if(t)return w=t,`break`},te=F;te>0&&ee(te)!==`break`;te--);t.placement!==w&&(t.modifiersData[r]._skip=!0,t.placement=w,t.reset=!0)}}var Gf={name:`flip`,enabled:!0,phase:`main`,fn:Wf,requiresIfExists:[`offset`],data:{_skip:!1}};function Kf(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function qf(e){return[`top`,Sd,xd,Cd].some(function(t){return e[t]>=0})}function Jf(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=Vf(t,{elementContext:`reference`}),s=Vf(t,{altBoundary:!0}),c=Kf(o,r),l=Kf(s,i,a),u=qf(c),d=qf(l);t.modifiersData[n]={referenceClippingOffsets:c,popperEscapeOffsets:l,isReferenceHidden:u,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}var Yf={name:`hide`,enabled:!0,phase:`main`,requiresIfExists:[`preventOverflow`],fn:Jf};function Xf(e,t,n){var r=Hd(e),i=[`left`,`top`].indexOf(r)>=0?-1:1,a=typeof n==`function`?n(Object.assign({},t,{placement:e})):n,o=a[0],s=a[1];return o||=0,s=(s||0)*i,[`left`,`right`].indexOf(r)>=0?{x:s,y:o}:{x:o,y:s}}function Zf(e){var t=e.state,n=e.options,r=e.name,i=n.offset,a=i===void 0?[0,0]:i,o=Md.reduce(function(e,n){return e[n]=Xf(n,t.rects,a),e},{}),s=o[t.placement],c=s.x,l=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=c,t.modifiersData.popperOffsets.y+=l),t.modifiersData[r]=o}var Qf={name:`offset`,enabled:!0,phase:`main`,requires:[`popperOffsets`],fn:Zf};function $f(e){var t=e.state,n=e.name;t.modifiersData[n]=Bf({reference:t.rects.reference,element:t.rects.popper,strategy:`absolute`,placement:t.placement})}var ep={name:`popperOffsets`,enabled:!0,phase:`read`,fn:$f,data:{}};function tp(e){return e===`x`?`y`:`x`}function np(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,a=i===void 0?!0:i,o=n.altAxis,s=o===void 0?!1:o,c=n.boundary,l=n.rootBoundary,u=n.altBoundary,d=n.padding,f=n.tether,p=f===void 0?!0:f,m=n.tetherOffset,h=m===void 0?0:m,g=Vf(t,{boundary:c,rootBoundary:l,padding:d,altBoundary:u}),_=Hd(t.placement),v=hf(t.placement),y=!v,b=af(_),x=tp(b),S=t.modifiersData.popperOffsets,C=t.rects.reference,w=t.rects.popper,T=typeof h==`function`?h(Object.assign({},t.rects,{placement:t.placement})):h,E=typeof T==`number`?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),D=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(S){if(a){var k=b===`y`?`top`:Cd,A=b===`y`?xd:Sd,j=b===`y`?`height`:`width`,M=S[b],N=M+g[k],P=M-g[A],F=p?-w[j]/2:0,ee=v===`start`?C[j]:w[j],te=v===`start`?-w[j]:-C[j],I=t.elements.arrow,L=p&&I?Yd(I):{width:0,height:0},R=t.modifiersData[`arrow#persistent`]?t.modifiersData[`arrow#persistent`].padding:cf(),ne=R[k],z=R[A],re=of(0,C[j],L[j]),B=y?C[j]/2-F-re-ne-E.mainAxis:ee-re-ne-E.mainAxis,ie=y?-C[j]/2+F+re+z+E.mainAxis:te+re+z+E.mainAxis,ae=t.elements.arrow&&rf(t.elements.arrow),V=ae?b===`y`?ae.clientTop||0:ae.clientLeft||0:0,oe=D?.[b]??0,se=M+B-oe-V,ce=M+ie-oe,le=of(p?Wd(N,se):N,M,p?Ud(P,ce):P);S[b]=le,O[b]=le-M}if(s){var ue=b===`x`?`top`:Cd,de=b===`x`?xd:Sd,fe=S[x],pe=x===`y`?`height`:`width`,me=fe+g[ue],he=fe-g[de],ge=[`top`,Cd].indexOf(_)!==-1,_e=D?.[x]??0,ve=ge?me:fe-C[pe]-w[pe]-_e+E.altAxis,ye=ge?fe+C[pe]+w[pe]-_e-E.altAxis:he,be=p&&ge?sf(ve,fe,ye):of(p?ve:me,fe,p?ye:he);S[x]=be,O[x]=be-fe}t.modifiersData[r]=O}}var rp={name:`preventOverflow`,enabled:!0,phase:`main`,fn:np,requiresIfExists:[`offset`]};function ip(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function ap(e){return e===Fd(e)||!Ld(e)?Of(e):ip(e)}function op(e){var t=e.getBoundingClientRect(),n=Gd(t.width)/e.offsetWidth||1,r=Gd(t.height)/e.offsetHeight||1;return n!==1||r!==1}function sp(e,t,n){n===void 0&&(n=!1);var r=Ld(t),i=Ld(t)&&op(t),a=$d(t),o=Jd(e,i,n),s={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(r||!r&&!n)&&((Pd(t)!==`body`||Mf(a))&&(s=ap(t)),Ld(t)?(c=Jd(t,!0),c.x+=t.clientLeft,c.y+=t.clientTop):a&&(c.x=kf(a))),{x:o.left+s.scrollLeft-c.x,y:o.top+s.scrollTop-c.y,width:o.width,height:o.height}}function cp(e){var t=new Map,n=new Set,r=[];e.forEach(function(e){t.set(e.name,e)});function i(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!n.has(e)){var r=t.get(e);r&&i(r)}}),r.push(e)}return e.forEach(function(e){n.has(e.name)||i(e)}),r}function lp(e){var t=cp(e);return Nd.reduce(function(e,n){return e.concat(t.filter(function(e){return e.phase===n}))},[])}function up(e){var t;return function(){return t||=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})}),t}}function dp(e){var t=e.reduce(function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e},{});return Object.keys(t).map(function(e){return t[e]})}var fp={placement:`bottom`,modifiers:[],strategy:`absolute`};function pp(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some(function(e){return!(e&&typeof e.getBoundingClientRect==`function`)})}function mp(e){e===void 0&&(e={});var t=e,n=t.defaultModifiers,r=n===void 0?[]:n,i=t.defaultOptions,a=i===void 0?fp:i;return function(e,t,n){n===void 0&&(n=a);var i={placement:`bottom`,orderedModifiers:[],options:Object.assign({},fp,a),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},o=[],s=!1,c={state:i,setOptions:function(n){var o=typeof n==`function`?n(i.options):n;u(),i.options=Object.assign({},a,i.options,o),i.scrollParents={reference:Id(e)?Pf(e):e.contextElement?Pf(e.contextElement):[],popper:Pf(t)};var s=lp(dp([].concat(r,i.options.modifiers)));return i.orderedModifiers=s.filter(function(e){return e.enabled}),l(),c.update()},forceUpdate:function(){if(!s){var e=i.elements,t=e.reference,n=e.popper;if(pp(t,n)){i.rects={reference:sp(t,rf(n),i.options.strategy===`fixed`),popper:Yd(n)},i.reset=!1,i.placement=i.options.placement,i.orderedModifiers.forEach(function(e){return i.modifiersData[e.name]=Object.assign({},e.data)});for(var r=0;r<i.orderedModifiers.length;r++){if(i.reset===!0){i.reset=!1,r=-1;continue}var a=i.orderedModifiers[r],o=a.fn,l=a.options,u=l===void 0?{}:l,d=a.name;typeof o==`function`&&(i=o({state:i,options:u,name:d,instance:c})||i)}}}},update:up(function(){return new Promise(function(e){c.forceUpdate(),e(i)})}),destroy:function(){u(),s=!0}};if(!pp(e,t))return c;c.setOptions(n).then(function(e){!s&&n.onFirstUpdate&&n.onFirstUpdate(e)});function l(){i.orderedModifiers.forEach(function(e){var t=e.name,n=e.options,r=n===void 0?{}:n,a=e.effect;if(typeof a==`function`){var s=a({state:i,name:t,instance:c,options:r});o.push(s||function(){})}})}function u(){o.forEach(function(e){return e()}),o=[]}return c}}var hp=mp({defaultModifiers:[Cf,ep,bf,Vd,Qf,Gf,rp,mf,Yf]}),gp=`tippy-box`,_p=`tippy-content`,vp=`tippy-backdrop`,yp=`tippy-arrow`,bp=`tippy-svg-arrow`,xp={passive:!0,capture:!0},Sp=function(){return document.body};function Cp(e,t){return{}.hasOwnProperty.call(e,t)}function wp(e,t,n){return Array.isArray(e)?e[t]??(Array.isArray(n)?n[t]:n):e}function Tp(e,t){var n={}.toString.call(e);return n.indexOf(`[object`)===0&&n.indexOf(t+`]`)>-1}function Ep(e,t){return typeof e==`function`?e.apply(void 0,t):e}function Dp(e,t){if(t===0)return e;var n;return function(r){clearTimeout(n),n=setTimeout(function(){e(r)},t)}}function Op(e,t){var n=Object.assign({},e);return t.forEach(function(e){delete n[e]}),n}function kp(e){return e.split(/\s+/).filter(Boolean)}function Ap(e){return[].concat(e)}function jp(e,t){e.indexOf(t)===-1&&e.push(t)}function Mp(e){return e.filter(function(t,n){return e.indexOf(t)===n})}function Np(e){return e.split(`-`)[0]}function Pp(e){return[].slice.call(e)}function Fp(e){return Object.keys(e).reduce(function(t,n){return e[n]!==void 0&&(t[n]=e[n]),t},{})}function Ip(){return document.createElement(`div`)}function Lp(e){return[`Element`,`Fragment`].some(function(t){return Tp(e,t)})}function Rp(e){return Tp(e,`NodeList`)}function zp(e){return Tp(e,`MouseEvent`)}function Bp(e){return!!(e&&e._tippy&&e._tippy.reference===e)}function Vp(e){return Lp(e)?[e]:Rp(e)?Pp(e):Array.isArray(e)?e:Pp(document.querySelectorAll(e))}function Hp(e,t){e.forEach(function(e){e&&(e.style.transitionDuration=t+`ms`)})}function Up(e,t){e.forEach(function(e){e&&e.setAttribute(`data-state`,t)})}function Wp(e){var t,n=Ap(e)[0];return n!=null&&(t=n.ownerDocument)!=null&&t.body?n.ownerDocument:document}function Gp(e,t){var n=t.clientX,r=t.clientY;return e.every(function(e){var t=e.popperRect,i=e.popperState,a=e.props.interactiveBorder,o=Np(i.placement),s=i.modifiersData.offset;if(!s)return!0;var c=o===`bottom`?s.top.y:0,l=o===`top`?s.bottom.y:0,u=o===`right`?s.left.x:0,d=o===`left`?s.right.x:0,f=t.top-r+c>a,p=r-t.bottom-l>a,m=t.left-n+u>a,h=n-t.right-d>a;return f||p||m||h})}function Kp(e,t,n){var r=t+`EventListener`;[`transitionend`,`webkitTransitionEnd`].forEach(function(t){e[r](t,n)})}function qp(e,t){for(var n=t;n;){if(e.contains(n))return!0;n=n.getRootNode==null?void 0:n.getRootNode()?.host}return!1}var Jp={isTouch:!1},Yp=0;function Xp(){Jp.isTouch||(Jp.isTouch=!0,window.performance&&document.addEventListener(`mousemove`,Zp))}function Zp(){var e=performance.now();e-Yp<20&&(Jp.isTouch=!1,document.removeEventListener(`mousemove`,Zp)),Yp=e}function Qp(){var e=document.activeElement;if(Bp(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}function $p(){document.addEventListener(`touchstart`,Xp,xp),window.addEventListener(`blur`,Qp)}var em=typeof window<`u`&&typeof document<`u`?!!window.msCrypto:!1;function tm(e){var t=e===`destroy`?`n already-`:` `;return[e+`() was called on a`+t+`destroyed instance. This is a no-op but`,`indicates a potential memory leak.`].join(` `)}function nm(e){return e.replace(/[ \t]{2,}/g,` `).replace(/^[ \t]*/gm,``).trim()}function rm(e){return nm(`
194
+ `;document.body.insertAdjacentHTML(`beforeend`,t)}var xd=`bottom`,Sd=`right`,Cd=`left`,wd=`auto`,Td=[`top`,xd,Sd,Cd],Ed=`start`,Dd=`clippingParents`,Od=`viewport`,kd=`popper`,Ad=`reference`,jd=Td.reduce(function(e,t){return e.concat([t+`-`+Ed,t+`-end`])},[]),Md=[].concat(Td,[wd]).reduce(function(e,t){return e.concat([t,t+`-`+Ed,t+`-end`])},[]),Nd=[`beforeRead`,`read`,`afterRead`,`beforeMain`,`main`,`afterMain`,`beforeWrite`,`write`,`afterWrite`];function Pd(e){return e?(e.nodeName||``).toLowerCase():null}function Fd(e){if(e==null)return window;if(e.toString()!==`[object Window]`){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Id(e){return e instanceof Fd(e).Element||e instanceof Element}function Ld(e){return e instanceof Fd(e).HTMLElement||e instanceof HTMLElement}function Rd(e){return typeof ShadowRoot>`u`?!1:e instanceof Fd(e).ShadowRoot||e instanceof ShadowRoot}function zd(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},i=t.elements[e];!Ld(i)||!Pd(i)||(Object.assign(i.style,n),Object.keys(r).forEach(function(e){var t=r[e];t===!1?i.removeAttribute(e):i.setAttribute(e,t===!0?``:t)}))})}function Bd(e){var t=e.state,n={popper:{position:t.options.strategy,left:`0`,top:`0`,margin:`0`},arrow:{position:`absolute`},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(e){var r=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce(function(e,t){return e[t]=``,e},{});!Ld(r)||!Pd(r)||(Object.assign(r.style,a),Object.keys(i).forEach(function(e){r.removeAttribute(e)}))})}}var Vd={name:`applyStyles`,enabled:!0,phase:`write`,fn:zd,effect:Bd,requires:[`computeStyles`]},Hd=Math.max,Ud=Math.min,Wd=Math.round;function Gd(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+`/`+e.version}).join(` `):navigator.userAgent}function Kd(){return!/^((?!chrome|android).)*safari/i.test(Gd())}function qd(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),i=1,a=1;t&&Ld(e)&&(i=e.offsetWidth>0&&Wd(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&Wd(r.height)/e.offsetHeight||1);var o=(Id(e)?Fd(e):window).visualViewport,s=!Kd()&&n,c=(r.left+(s&&o?o.offsetLeft:0))/i,l=(r.top+(s&&o?o.offsetTop:0))/a,u=r.width/i,d=r.height/a;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c,x:c,y:l}}function Jd(e){var t=Fd(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Yd(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function Xd(e){return e===Fd(e)||!Ld(e)?Jd(e):Yd(e)}function Zd(e){return((Id(e)?e.ownerDocument:e.document)||window.document).documentElement}function Qd(e){return qd(Zd(e)).left+Jd(e).scrollLeft}function $d(e){return Fd(e).getComputedStyle(e)}function ef(e){var t=$d(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function tf(e){var t=e.getBoundingClientRect(),n=Wd(t.width)/e.offsetWidth||1,r=Wd(t.height)/e.offsetHeight||1;return n!==1||r!==1}function nf(e,t,n){n===void 0&&(n=!1);var r=Ld(t),i=Ld(t)&&tf(t),a=Zd(t),o=qd(e,i,n),s={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(r||!r&&!n)&&((Pd(t)!==`body`||ef(a))&&(s=Xd(t)),Ld(t)?(c=qd(t,!0),c.x+=t.clientLeft,c.y+=t.clientTop):a&&(c.x=Qd(a))),{x:o.left+s.scrollLeft-c.x,y:o.top+s.scrollTop-c.y,width:o.width,height:o.height}}function rf(e){var t=qd(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function af(e){return Pd(e)===`html`?e:e.assignedSlot||e.parentNode||(Rd(e)?e.host:null)||Zd(e)}function of(e){return[`html`,`body`,`#document`].indexOf(Pd(e))>=0?e.ownerDocument.body:Ld(e)&&ef(e)?e:of(af(e))}function sf(e,t){t===void 0&&(t=[]);var n=of(e),r=n===e.ownerDocument?.body,i=Fd(n),a=r?[i].concat(i.visualViewport||[],ef(n)?n:[]):n,o=t.concat(a);return r?o:o.concat(sf(af(a)))}function cf(e){return[`table`,`td`,`th`].indexOf(Pd(e))>=0}function lf(e){return!Ld(e)||$d(e).position===`fixed`?null:e.offsetParent}function uf(e){var t=/firefox/i.test(Gd());if(/Trident/i.test(Gd())&&Ld(e)&&$d(e).position===`fixed`)return null;var n=af(e);for(Rd(n)&&(n=n.host);Ld(n)&&[`html`,`body`].indexOf(Pd(n))<0;){var r=$d(n);if(r.transform!==`none`||r.perspective!==`none`||r.contain===`paint`||[`transform`,`perspective`].indexOf(r.willChange)!==-1||t&&r.willChange===`filter`||t&&r.filter&&r.filter!==`none`)return n;n=n.parentNode}return null}function df(e){for(var t=Fd(e),n=lf(e);n&&cf(n)&&$d(n).position===`static`;)n=lf(n);return n&&(Pd(n)===`html`||Pd(n)===`body`&&$d(n).position===`static`)?t:n||uf(e)||t}function ff(e){var t=new Map,n=new Set,r=[];e.forEach(function(e){t.set(e.name,e)});function i(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!n.has(e)){var r=t.get(e);r&&i(r)}}),r.push(e)}return e.forEach(function(e){n.has(e.name)||i(e)}),r}function pf(e){var t=ff(e);return Nd.reduce(function(e,n){return e.concat(t.filter(function(e){return e.phase===n}))},[])}function mf(e){var t;return function(){return t||=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})}),t}}function hf(e){var t=e.reduce(function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e},{});return Object.keys(t).map(function(e){return t[e]})}function gf(e,t){var n=Fd(e),r=Zd(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;var l=Kd();(l||!l&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}return{width:a,height:o,x:s+Qd(e),y:c}}function _f(e){var t=Zd(e),n=Jd(e),r=e.ownerDocument?.body,i=Hd(t.scrollWidth,t.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=Hd(t.scrollHeight,t.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),o=-n.scrollLeft+Qd(e),s=-n.scrollTop;return $d(r||t).direction===`rtl`&&(o+=Hd(t.clientWidth,r?r.clientWidth:0)-i),{width:i,height:a,x:o,y:s}}function vf(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Rd(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function yf(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function bf(e,t){var n=qd(e,!1,t===`fixed`);return n.top+=e.clientTop,n.left+=e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function xf(e,t,n){return t===`viewport`?yf(gf(e,n)):Id(t)?bf(t,n):yf(_f(Zd(e)))}function Sf(e){var t=sf(af(e)),n=[`absolute`,`fixed`].indexOf($d(e).position)>=0&&Ld(e)?df(e):e;return Id(n)?t.filter(function(e){return Id(e)&&vf(e,n)&&Pd(e)!==`body`}):[]}function Cf(e,t,n,r){var i=t===`clippingParents`?Sf(e):[].concat(t),a=[].concat(i,[n]),o=a[0],s=a.reduce(function(t,n){var i=xf(e,n,r);return t.top=Hd(i.top,t.top),t.right=Ud(i.right,t.right),t.bottom=Ud(i.bottom,t.bottom),t.left=Hd(i.left,t.left),t},xf(e,o,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function wf(e){return e.split(`-`)[0]}function Tf(e){return e.split(`-`)[1]}function Ef(e){return[`top`,`bottom`].indexOf(e)>=0?`x`:`y`}function Df(e){var t=e.reference,n=e.element,r=e.placement,i=r?wf(r):null,a=r?Tf(r):null,o=t.x+t.width/2-n.width/2,s=t.y+t.height/2-n.height/2,c;switch(i){case`top`:c={x:o,y:t.y-n.height};break;case xd:c={x:o,y:t.y+t.height};break;case Sd:c={x:t.x+t.width,y:s};break;case Cd:c={x:t.x-n.width,y:s};break;default:c={x:t.x,y:t.y}}var l=i?Ef(i):null;if(l!=null){var u=l===`y`?`height`:`width`;switch(a){case Ed:c[l]=c[l]-(t[u]/2-n[u]/2);break;case`end`:c[l]=c[l]+(t[u]/2-n[u]/2);break;default:}}return c}function Of(){return{top:0,right:0,bottom:0,left:0}}function kf(e){return Object.assign({},Of(),e)}function Af(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}function jf(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=r===void 0?e.placement:r,a=n.strategy,o=a===void 0?e.strategy:a,s=n.boundary,c=s===void 0?Dd:s,l=n.rootBoundary,u=l===void 0?Od:l,d=n.elementContext,f=d===void 0?kd:d,p=n.altBoundary,m=p===void 0?!1:p,h=n.padding,g=h===void 0?0:h,_=kf(typeof g==`number`?Af(g,Td):g),v=f===`popper`?Ad:kd,y=e.rects.popper,b=e.elements[m?v:f],x=Cf(Id(b)?b:b.contextElement||Zd(e.elements.popper),c,u,o),S=qd(e.elements.reference),C=Df({reference:S,element:y,strategy:`absolute`,placement:i}),w=yf(Object.assign({},y,C)),T=f===`popper`?w:S,E={top:x.top-T.top+_.top,bottom:T.bottom-x.bottom+_.bottom,left:x.left-T.left+_.left,right:T.right-x.right+_.right},D=e.modifiersData.offset;if(f===`popper`&&D){var O=D[i];Object.keys(E).forEach(function(e){var t=[`right`,`bottom`].indexOf(e)>=0?1:-1,n=[`top`,`bottom`].indexOf(e)>=0?`y`:`x`;E[e]+=O[n]*t})}return E}var Mf={placement:`bottom`,modifiers:[],strategy:`absolute`};function Nf(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some(function(e){return!(e&&typeof e.getBoundingClientRect==`function`)})}function Pf(e){e===void 0&&(e={});var t=e,n=t.defaultModifiers,r=n===void 0?[]:n,i=t.defaultOptions,a=i===void 0?Mf:i;return function(e,t,n){n===void 0&&(n=a);var i={placement:`bottom`,orderedModifiers:[],options:Object.assign({},Mf,a),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},o=[],s=!1,c={state:i,setOptions:function(n){var o=typeof n==`function`?n(i.options):n;u(),i.options=Object.assign({},a,i.options,o),i.scrollParents={reference:Id(e)?sf(e):e.contextElement?sf(e.contextElement):[],popper:sf(t)};var s=pf(hf([].concat(r,i.options.modifiers)));return i.orderedModifiers=s.filter(function(e){return e.enabled}),l(),c.update()},forceUpdate:function(){if(!s){var e=i.elements,t=e.reference,n=e.popper;if(Nf(t,n)){i.rects={reference:nf(t,df(n),i.options.strategy===`fixed`),popper:rf(n)},i.reset=!1,i.placement=i.options.placement,i.orderedModifiers.forEach(function(e){return i.modifiersData[e.name]=Object.assign({},e.data)});for(var r=0;r<i.orderedModifiers.length;r++){if(i.reset===!0){i.reset=!1,r=-1;continue}var a=i.orderedModifiers[r],o=a.fn,l=a.options,u=l===void 0?{}:l,d=a.name;typeof o==`function`&&(i=o({state:i,options:u,name:d,instance:c})||i)}}}},update:mf(function(){return new Promise(function(e){c.forceUpdate(),e(i)})}),destroy:function(){u(),s=!0}};if(!Nf(e,t))return c;c.setOptions(n).then(function(e){!s&&n.onFirstUpdate&&n.onFirstUpdate(e)});function l(){i.orderedModifiers.forEach(function(e){var t=e.name,n=e.options,r=n===void 0?{}:n,a=e.effect;if(typeof a==`function`){var s=a({state:i,name:t,instance:c,options:r});o.push(s||function(){})}})}function u(){o.forEach(function(e){return e()}),o=[]}return c}}var Ff={passive:!0};function If(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,a=i===void 0?!0:i,o=r.resize,s=o===void 0?!0:o,c=Fd(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&l.forEach(function(e){e.addEventListener(`scroll`,n.update,Ff)}),s&&c.addEventListener(`resize`,n.update,Ff),function(){a&&l.forEach(function(e){e.removeEventListener(`scroll`,n.update,Ff)}),s&&c.removeEventListener(`resize`,n.update,Ff)}}var Lf={name:`eventListeners`,enabled:!0,phase:`write`,fn:function(){},effect:If,data:{}};function Rf(e){var t=e.state,n=e.name;t.modifiersData[n]=Df({reference:t.rects.reference,element:t.rects.popper,strategy:`absolute`,placement:t.placement})}var zf={name:`popperOffsets`,enabled:!0,phase:`read`,fn:Rf,data:{}},Bf={top:`auto`,right:`auto`,bottom:`auto`,left:`auto`};function Vf(e,t){var n=e.x,r=e.y,i=t.devicePixelRatio||1;return{x:Wd(n*i)/i||0,y:Wd(r*i)/i||0}}function Hf(e){var t,n=e.popper,r=e.popperRect,i=e.placement,a=e.variation,o=e.offsets,s=e.position,c=e.gpuAcceleration,l=e.adaptive,u=e.roundOffsets,d=e.isFixed,f=o.x,p=f===void 0?0:f,m=o.y,h=m===void 0?0:m,g=typeof u==`function`?u({x:p,y:h}):{x:p,y:h};p=g.x,h=g.y;var _=o.hasOwnProperty(`x`),v=o.hasOwnProperty(`y`),y=Cd,b=`top`,x=window;if(l){var S=df(n),C=`clientHeight`,w=`clientWidth`;if(S===Fd(n)&&(S=Zd(n),$d(S).position!==`static`&&s===`absolute`&&(C=`scrollHeight`,w=`scrollWidth`)),S=S,i===`top`||(i===`left`||i===`right`)&&a===`end`){b=xd;var T=d&&S===x&&x.visualViewport?x.visualViewport.height:S[C];h-=T-r.height,h*=c?1:-1}if(i===`left`||(i===`top`||i===`bottom`)&&a===`end`){y=Sd;var E=d&&S===x&&x.visualViewport?x.visualViewport.width:S[w];p-=E-r.width,p*=c?1:-1}}var D=Object.assign({position:s},l&&Bf),O=u===!0?Vf({x:p,y:h},Fd(n)):{x:p,y:h};if(p=O.x,h=O.y,c){var k;return Object.assign({},D,(k={},k[b]=v?`0`:``,k[y]=_?`0`:``,k.transform=(x.devicePixelRatio||1)<=1?`translate(`+p+`px, `+h+`px)`:`translate3d(`+p+`px, `+h+`px, 0)`,k))}return Object.assign({},D,(t={},t[b]=v?h+`px`:``,t[y]=_?p+`px`:``,t.transform=``,t))}function Uf(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0?!0:r,a=n.adaptive,o=a===void 0?!0:a,s=n.roundOffsets,c=s===void 0?!0:s,l={placement:wf(t.placement),variation:Tf(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy===`fixed`};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Hf(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:c})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Hf(Object.assign({},l,{offsets:t.modifiersData.arrow,position:`absolute`,adaptive:!1,roundOffsets:c})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var Wf={name:`computeStyles`,enabled:!0,phase:`beforeWrite`,fn:Uf,data:{}};function Gf(e,t,n){var r=wf(e),i=[`left`,`top`].indexOf(r)>=0?-1:1,a=typeof n==`function`?n(Object.assign({},t,{placement:e})):n,o=a[0],s=a[1];return o||=0,s=(s||0)*i,[`left`,`right`].indexOf(r)>=0?{x:s,y:o}:{x:o,y:s}}function Kf(e){var t=e.state,n=e.options,r=e.name,i=n.offset,a=i===void 0?[0,0]:i,o=Md.reduce(function(e,n){return e[n]=Gf(n,t.rects,a),e},{}),s=o[t.placement],c=s.x,l=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=c,t.modifiersData.popperOffsets.y+=l),t.modifiersData[r]=o}var qf={name:`offset`,enabled:!0,phase:`main`,requires:[`popperOffsets`],fn:Kf},Jf={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function Yf(e){return e.replace(/left|right|bottom|top/g,function(e){return Jf[e]})}var Xf={start:`end`,end:`start`};function Zf(e){return e.replace(/start|end/g,function(e){return Xf[e]})}function Qf(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=n.boundary,a=n.rootBoundary,o=n.padding,s=n.flipVariations,c=n.allowedAutoPlacements,l=c===void 0?Md:c,u=Tf(r),d=u?s?jd:jd.filter(function(e){return Tf(e)===u}):Td,f=d.filter(function(e){return l.indexOf(e)>=0});f.length===0&&(f=d);var p=f.reduce(function(t,n){return t[n]=jf(e,{placement:n,boundary:i,rootBoundary:a,padding:o})[wf(n)],t},{});return Object.keys(p).sort(function(e,t){return p[e]-p[t]})}function $f(e){if(wf(e)===`auto`)return[];var t=Yf(e);return[Zf(e),t,Zf(t)]}function ep(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,a=i===void 0?!0:i,o=n.altAxis,s=o===void 0?!0:o,c=n.fallbackPlacements,l=n.padding,u=n.boundary,d=n.rootBoundary,f=n.altBoundary,p=n.flipVariations,m=p===void 0?!0:p,h=n.allowedAutoPlacements,g=t.options.placement,_=wf(g)===g,v=c||(_||!m?[Yf(g)]:$f(g)),y=[g].concat(v).reduce(function(e,n){return e.concat(wf(n)===`auto`?Qf(t,{placement:n,boundary:u,rootBoundary:d,padding:l,flipVariations:m,allowedAutoPlacements:h}):n)},[]),b=t.rects.reference,x=t.rects.popper,S=new Map,C=!0,w=y[0],T=0;T<y.length;T++){var E=y[T],D=wf(E),O=Tf(E)===Ed,k=[`top`,xd].indexOf(D)>=0,A=k?`width`:`height`,j=jf(t,{placement:E,boundary:u,rootBoundary:d,altBoundary:f,padding:l}),M=k?O?Sd:Cd:O?xd:`top`;b[A]>x[A]&&(M=Yf(M));var N=Yf(M),P=[];if(a&&P.push(j[D]<=0),s&&P.push(j[M]<=0,j[N]<=0),P.every(function(e){return e})){w=E,C=!1;break}S.set(E,P)}if(C)for(var F=m?3:1,ee=function(e){var t=y.find(function(t){var n=S.get(t);if(n)return n.slice(0,e).every(function(e){return e})});if(t)return w=t,`break`},te=F;te>0&&ee(te)!==`break`;te--);t.placement!==w&&(t.modifiersData[r]._skip=!0,t.placement=w,t.reset=!0)}}var tp={name:`flip`,enabled:!0,phase:`main`,fn:ep,requiresIfExists:[`offset`],data:{_skip:!1}};function np(e){return e===`x`?`y`:`x`}function rp(e,t,n){return Hd(e,Ud(t,n))}function ip(e,t,n){var r=rp(e,t,n);return r>n?n:r}function ap(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,a=i===void 0?!0:i,o=n.altAxis,s=o===void 0?!1:o,c=n.boundary,l=n.rootBoundary,u=n.altBoundary,d=n.padding,f=n.tether,p=f===void 0?!0:f,m=n.tetherOffset,h=m===void 0?0:m,g=jf(t,{boundary:c,rootBoundary:l,padding:d,altBoundary:u}),_=wf(t.placement),v=Tf(t.placement),y=!v,b=Ef(_),x=np(b),S=t.modifiersData.popperOffsets,C=t.rects.reference,w=t.rects.popper,T=typeof h==`function`?h(Object.assign({},t.rects,{placement:t.placement})):h,E=typeof T==`number`?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),D=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(S){if(a){var k=b===`y`?`top`:Cd,A=b===`y`?xd:Sd,j=b===`y`?`height`:`width`,M=S[b],N=M+g[k],P=M-g[A],F=p?-w[j]/2:0,ee=v===`start`?C[j]:w[j],te=v===`start`?-w[j]:-C[j],I=t.elements.arrow,L=p&&I?rf(I):{width:0,height:0},R=t.modifiersData[`arrow#persistent`]?t.modifiersData[`arrow#persistent`].padding:Of(),ne=R[k],z=R[A],re=rp(0,C[j],L[j]),B=y?C[j]/2-F-re-ne-E.mainAxis:ee-re-ne-E.mainAxis,ie=y?-C[j]/2+F+re+z+E.mainAxis:te+re+z+E.mainAxis,ae=t.elements.arrow&&df(t.elements.arrow),V=ae?b===`y`?ae.clientTop||0:ae.clientLeft||0:0,oe=D?.[b]??0,se=M+B-oe-V,ce=M+ie-oe,le=rp(p?Ud(N,se):N,M,p?Hd(P,ce):P);S[b]=le,O[b]=le-M}if(s){var ue=b===`x`?`top`:Cd,de=b===`x`?xd:Sd,fe=S[x],pe=x===`y`?`height`:`width`,me=fe+g[ue],he=fe-g[de],ge=[`top`,Cd].indexOf(_)!==-1,_e=D?.[x]??0,ve=ge?me:fe-C[pe]-w[pe]-_e+E.altAxis,ye=ge?fe+C[pe]+w[pe]-_e-E.altAxis:he,be=p&&ge?ip(ve,fe,ye):rp(p?ve:me,fe,p?ye:he);S[x]=be,O[x]=be-fe}t.modifiersData[r]=O}}var op={name:`preventOverflow`,enabled:!0,phase:`main`,fn:ap,requiresIfExists:[`offset`]},sp=function(e,t){return e=typeof e==`function`?e(Object.assign({},t.rects,{placement:t.placement})):e,kf(typeof e==`number`?Af(e,Td):e)};function cp(e){var t,n=e.state,r=e.name,i=e.options,a=n.elements.arrow,o=n.modifiersData.popperOffsets,s=wf(n.placement),c=Ef(s),l=[`left`,`right`].indexOf(s)>=0?`height`:`width`;if(!(!a||!o)){var u=sp(i.padding,n),d=rf(a),f=c===`y`?`top`:Cd,p=c===`y`?xd:Sd,m=n.rects.reference[l]+n.rects.reference[c]-o[c]-n.rects.popper[l],h=o[c]-n.rects.reference[c],g=df(a),_=g?c===`y`?g.clientHeight||0:g.clientWidth||0:0,v=m/2-h/2,y=u[f],b=_-d[l]-u[p],x=_/2-d[l]/2+v,S=rp(y,x,b),C=c;n.modifiersData[r]=(t={},t[C]=S,t.centerOffset=S-x,t)}}function lp(e){var t=e.state,n=e.options.element,r=n===void 0?`[data-popper-arrow]`:n;r!=null&&(typeof r==`string`&&(r=t.elements.popper.querySelector(r),!r)||vf(t.elements.popper,r)&&(t.elements.arrow=r))}var up={name:`arrow`,enabled:!0,phase:`main`,fn:cp,effect:lp,requires:[`popperOffsets`],requiresIfExists:[`preventOverflow`]};function dp(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function fp(e){return[`top`,Sd,xd,Cd].some(function(t){return e[t]>=0})}function pp(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=jf(t,{elementContext:`reference`}),s=jf(t,{altBoundary:!0}),c=dp(o,r),l=dp(s,i,a),u=fp(c),d=fp(l);t.modifiersData[n]={referenceClippingOffsets:c,popperEscapeOffsets:l,isReferenceHidden:u,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}var mp=Pf({defaultModifiers:[Lf,zf,Wf,Vd,qf,tp,op,up,{name:`hide`,enabled:!0,phase:`main`,requiresIfExists:[`preventOverflow`],fn:pp}]}),hp=`tippy-box`,gp=`tippy-content`,_p=`tippy-backdrop`,vp=`tippy-arrow`,yp=`tippy-svg-arrow`,bp={passive:!0,capture:!0},xp=function(){return document.body};function Sp(e,t){return{}.hasOwnProperty.call(e,t)}function Cp(e,t,n){return Array.isArray(e)?e[t]??(Array.isArray(n)?n[t]:n):e}function wp(e,t){var n={}.toString.call(e);return n.indexOf(`[object`)===0&&n.indexOf(t+`]`)>-1}function Tp(e,t){return typeof e==`function`?e.apply(void 0,t):e}function Ep(e,t){if(t===0)return e;var n;return function(r){clearTimeout(n),n=setTimeout(function(){e(r)},t)}}function Dp(e,t){var n=Object.assign({},e);return t.forEach(function(e){delete n[e]}),n}function Op(e){return e.split(/\s+/).filter(Boolean)}function kp(e){return[].concat(e)}function Ap(e,t){e.indexOf(t)===-1&&e.push(t)}function jp(e){return e.filter(function(t,n){return e.indexOf(t)===n})}function Mp(e){return e.split(`-`)[0]}function Np(e){return[].slice.call(e)}function Pp(e){return Object.keys(e).reduce(function(t,n){return e[n]!==void 0&&(t[n]=e[n]),t},{})}function Fp(){return document.createElement(`div`)}function Ip(e){return[`Element`,`Fragment`].some(function(t){return wp(e,t)})}function Lp(e){return wp(e,`NodeList`)}function Rp(e){return wp(e,`MouseEvent`)}function zp(e){return!!(e&&e._tippy&&e._tippy.reference===e)}function Bp(e){return Ip(e)?[e]:Lp(e)?Np(e):Array.isArray(e)?e:Np(document.querySelectorAll(e))}function Vp(e,t){e.forEach(function(e){e&&(e.style.transitionDuration=t+`ms`)})}function Hp(e,t){e.forEach(function(e){e&&e.setAttribute(`data-state`,t)})}function Up(e){var t,n=kp(e)[0];return n!=null&&(t=n.ownerDocument)!=null&&t.body?n.ownerDocument:document}function Wp(e,t){var n=t.clientX,r=t.clientY;return e.every(function(e){var t=e.popperRect,i=e.popperState,a=e.props.interactiveBorder,o=Mp(i.placement),s=i.modifiersData.offset;if(!s)return!0;var c=o===`bottom`?s.top.y:0,l=o===`top`?s.bottom.y:0,u=o===`right`?s.left.x:0,d=o===`left`?s.right.x:0,f=t.top-r+c>a,p=r-t.bottom-l>a,m=t.left-n+u>a,h=n-t.right-d>a;return f||p||m||h})}function Gp(e,t,n){var r=t+`EventListener`;[`transitionend`,`webkitTransitionEnd`].forEach(function(t){e[r](t,n)})}function Kp(e,t){for(var n=t;n;){if(e.contains(n))return!0;n=n.getRootNode==null?void 0:n.getRootNode()?.host}return!1}var qp={isTouch:!1},Jp=0;function Yp(){qp.isTouch||(qp.isTouch=!0,window.performance&&document.addEventListener(`mousemove`,Xp))}function Xp(){var e=performance.now();e-Jp<20&&(qp.isTouch=!1,document.removeEventListener(`mousemove`,Xp)),Jp=e}function Zp(){var e=document.activeElement;if(zp(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}function Qp(){document.addEventListener(`touchstart`,Yp,bp),window.addEventListener(`blur`,Zp)}var $p=typeof window<`u`&&typeof document<`u`?!!window.msCrypto:!1;function em(e){var t=e===`destroy`?`n already-`:` `;return[e+`() was called on a`+t+`destroyed instance. This is a no-op but`,`indicates a potential memory leak.`].join(` `)}function tm(e){return e.replace(/[ \t]{2,}/g,` `).replace(/^[ \t]*/gm,``).trim()}function nm(e){return tm(`
195
195
  %ctippy.js
196
196
 
197
- %c`+nm(e)+`
197
+ %c`+tm(e)+`
198
198
 
199
199
  %c👷‍ This is a development-only message. It will be removed in production.
200
- `)}function im(e){return[rm(e),`color: #00C584; font-size: 1.3em; font-weight: bold;`,`line-height: 1.5`,`color: #a6a095;`]}var am;process.env.NODE_ENV!==`production`&&om();function om(){am=new Set}function sm(e,t){if(e&&!am.has(t)){var n;am.add(t),(n=console).warn.apply(n,im(t))}}function cm(e,t){if(e&&!am.has(t)){var n;am.add(t),(n=console).error.apply(n,im(t))}}function lm(e){var t=!e,n=Object.prototype.toString.call(e)===`[object Object]`&&!e.addEventListener;cm(t,[`tippy() was passed`,"`"+String(e)+"`",`as its targets (first) argument. Valid types are: String, Element,`,`Element[], or NodeList.`].join(` `)),cm(n,[`tippy() was passed a plain object which is not supported as an argument`,`for virtual positioning. Use props.getReferenceClientRect instead.`].join(` `))}var um={animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},dm=Object.assign({appendTo:Sp,aria:{content:`auto`,expanded:`auto`},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:``,offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:`top`,plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:`mouseenter focus`,triggerTarget:null},um,{allowHTML:!1,animation:`fade`,arrow:!0,content:``,inertia:!1,maxWidth:350,role:`tooltip`,theme:``,zIndex:9999}),fm=Object.keys(dm),pm=function(e){process.env.NODE_ENV!==`production`&&_m(e,[]),Object.keys(e).forEach(function(t){dm[t]=e[t]})};function mm(e){var t=(e.plugins||[]).reduce(function(t,n){var r=n.name,i=n.defaultValue;return r&&(t[r]=e[r]===void 0?dm[r]??i:e[r]),t},{});return Object.assign({},e,t)}function hm(e,t){return(t?Object.keys(mm(Object.assign({},dm,{plugins:t}))):fm).reduce(function(t,n){var r=(e.getAttribute(`data-tippy-`+n)||``).trim();if(!r)return t;if(n===`content`)t[n]=r;else try{t[n]=JSON.parse(r)}catch{t[n]=r}return t},{})}function gm(e,t){var n=Object.assign({},t,{content:Ep(t.content,[e])},t.ignoreAttributes?{}:hm(e,t.plugins));return n.aria=Object.assign({},dm.aria,n.aria),n.aria={expanded:n.aria.expanded===`auto`?t.interactive:n.aria.expanded,content:n.aria.content===`auto`?t.interactive?null:`describedby`:n.aria.content},n}function _m(e,t){e===void 0&&(e={}),t===void 0&&(t=[]),Object.keys(e).forEach(function(e){var n=!Cp(Op(dm,Object.keys(um)),e);n&&=t.filter(function(t){return t.name===e}).length===0,sm(n,["`"+e+"`",`is not a valid prop. You may have spelled it incorrectly, or if it's`,`a plugin, forgot to pass it in an array as props.plugins.`,`
200
+ `)}function rm(e){return[nm(e),`color: #00C584; font-size: 1.3em; font-weight: bold;`,`line-height: 1.5`,`color: #a6a095;`]}var im;process.env.NODE_ENV!==`production`&&am();function am(){im=new Set}function om(e,t){if(e&&!im.has(t)){var n;im.add(t),(n=console).warn.apply(n,rm(t))}}function sm(e,t){if(e&&!im.has(t)){var n;im.add(t),(n=console).error.apply(n,rm(t))}}function cm(e){var t=!e,n=Object.prototype.toString.call(e)===`[object Object]`&&!e.addEventListener;sm(t,[`tippy() was passed`,"`"+String(e)+"`",`as its targets (first) argument. Valid types are: String, Element,`,`Element[], or NodeList.`].join(` `)),sm(n,[`tippy() was passed a plain object which is not supported as an argument`,`for virtual positioning. Use props.getReferenceClientRect instead.`].join(` `))}var lm={animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},um=Object.assign({appendTo:xp,aria:{content:`auto`,expanded:`auto`},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:``,offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:`top`,plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:`mouseenter focus`,triggerTarget:null},lm,{allowHTML:!1,animation:`fade`,arrow:!0,content:``,inertia:!1,maxWidth:350,role:`tooltip`,theme:``,zIndex:9999}),dm=Object.keys(um),fm=function(e){process.env.NODE_ENV!==`production`&&gm(e,[]),Object.keys(e).forEach(function(t){um[t]=e[t]})};function pm(e){var t=(e.plugins||[]).reduce(function(t,n){var r=n.name,i=n.defaultValue;return r&&(t[r]=e[r]===void 0?um[r]??i:e[r]),t},{});return Object.assign({},e,t)}function mm(e,t){return(t?Object.keys(pm(Object.assign({},um,{plugins:t}))):dm).reduce(function(t,n){var r=(e.getAttribute(`data-tippy-`+n)||``).trim();if(!r)return t;if(n===`content`)t[n]=r;else try{t[n]=JSON.parse(r)}catch{t[n]=r}return t},{})}function hm(e,t){var n=Object.assign({},t,{content:Tp(t.content,[e])},t.ignoreAttributes?{}:mm(e,t.plugins));return n.aria=Object.assign({},um.aria,n.aria),n.aria={expanded:n.aria.expanded===`auto`?t.interactive:n.aria.expanded,content:n.aria.content===`auto`?t.interactive?null:`describedby`:n.aria.content},n}function gm(e,t){e===void 0&&(e={}),t===void 0&&(t=[]),Object.keys(e).forEach(function(e){var n=!Sp(Dp(um,Object.keys(lm)),e);n&&=t.filter(function(t){return t.name===e}).length===0,om(n,["`"+e+"`",`is not a valid prop. You may have spelled it incorrectly, or if it's`,`a plugin, forgot to pass it in an array as props.plugins.`,`
201
201
 
202
202
  `,`All props: https://atomiks.github.io/tippyjs/v6/all-props/
203
- `,`Plugins: https://atomiks.github.io/tippyjs/v6/plugins/`].join(` `))})}var vm=function(){return`innerHTML`};function ym(e,t){e[vm()]=t}function bm(e){var t=Ip();return e===!0?t.className=yp:(t.className=bp,Lp(e)?t.appendChild(e):ym(t,e)),t}function xm(e,t){Lp(t.content)?(ym(e,``),e.appendChild(t.content)):typeof t.content!=`function`&&(t.allowHTML?ym(e,t.content):e.textContent=t.content)}function Sm(e){var t=e.firstElementChild,n=Pp(t.children);return{box:t,content:n.find(function(e){return e.classList.contains(_p)}),arrow:n.find(function(e){return e.classList.contains(yp)||e.classList.contains(bp)}),backdrop:n.find(function(e){return e.classList.contains(vp)})}}function Cm(e){var t=Ip(),n=Ip();n.className=gp,n.setAttribute(`data-state`,`hidden`),n.setAttribute(`tabindex`,`-1`);var r=Ip();r.className=_p,r.setAttribute(`data-state`,`hidden`),xm(r,e.props),t.appendChild(n),n.appendChild(r),i(e.props,e.props);function i(n,r){var i=Sm(t),a=i.box,o=i.content,s=i.arrow;r.theme?a.setAttribute(`data-theme`,r.theme):a.removeAttribute(`data-theme`),typeof r.animation==`string`?a.setAttribute(`data-animation`,r.animation):a.removeAttribute(`data-animation`),r.inertia?a.setAttribute(`data-inertia`,``):a.removeAttribute(`data-inertia`),a.style.maxWidth=typeof r.maxWidth==`number`?r.maxWidth+`px`:r.maxWidth,r.role?a.setAttribute(`role`,r.role):a.removeAttribute(`role`),(n.content!==r.content||n.allowHTML!==r.allowHTML)&&xm(o,e.props),r.arrow?s?n.arrow!==r.arrow&&(a.removeChild(s),a.appendChild(bm(r.arrow))):a.appendChild(bm(r.arrow)):s&&a.removeChild(s)}return{popper:t,onUpdate:i}}Cm.$$tippy=!0;var wm=1,Tm=[],Em=[];function Dm(e,t){var n=gm(e,Object.assign({},dm,mm(Fp(t)))),r,i,a,o=!1,s=!1,c=!1,l=!1,u,d,f,p=[],m=Dp(se,n.interactiveDebounce),h,g=wm++,_=null,v=Mp(n.plugins),y={id:g,reference:e,popper:Ip(),popperInstance:_,props:n,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:v,clearDelayTimeouts:ye,setProps:be,setContent:xe,show:Se,hide:Ce,hideWithInteractivity:we,enable:_e,disable:ve,unmount:Te,destroy:Ee};if(!n.render)return process.env.NODE_ENV!==`production`&&cm(!0,`render() function has not been supplied.`),y;var b=n.render(y),x=b.popper,S=b.onUpdate;x.setAttribute(`data-tippy-root`,``),x.id=`tippy-`+y.id,y.popper=x,e._tippy=y,x._tippy=y;var C=v.map(function(e){return e.fn(y)}),w=e.hasAttribute(`aria-expanded`);return ae(),F(),M(),N(`onCreate`,[y]),n.showOnCreate&&he(),x.addEventListener(`mouseenter`,function(){y.props.interactive&&y.state.isVisible&&y.clearDelayTimeouts()}),x.addEventListener(`mouseleave`,function(){y.props.interactive&&y.props.trigger.indexOf(`mouseenter`)>=0&&k().addEventListener(`mousemove`,m)}),y;function T(){var e=y.props.touch;return Array.isArray(e)?e:[e,0]}function E(){return T()[0]===`hold`}function D(){var e;return!!((e=y.props.render)!=null&&e.$$tippy)}function O(){return h||e}function k(){var e=O().parentNode;return e?Wp(e):document}function A(){return Sm(x)}function j(e){return y.state.isMounted&&!y.state.isVisible||Jp.isTouch||u&&u.type===`focus`?0:wp(y.props.delay,+!e,dm.delay)}function M(e){e===void 0&&(e=!1),x.style.pointerEvents=y.props.interactive&&!e?``:`none`,x.style.zIndex=``+y.props.zIndex}function N(e,t,n){if(n===void 0&&(n=!0),C.forEach(function(n){n[e]&&n[e].apply(n,t)}),n){var r;(r=y.props)[e].apply(r,t)}}function P(){var t=y.props.aria;if(t.content){var n=`aria-`+t.content,r=x.id;Ap(y.props.triggerTarget||e).forEach(function(e){var t=e.getAttribute(n);if(y.state.isVisible)e.setAttribute(n,t?t+` `+r:r);else{var i=t&&t.replace(r,``).trim();i?e.setAttribute(n,i):e.removeAttribute(n)}})}}function F(){w||!y.props.aria.expanded||Ap(y.props.triggerTarget||e).forEach(function(e){y.props.interactive?e.setAttribute(`aria-expanded`,y.state.isVisible&&e===O()?`true`:`false`):e.removeAttribute(`aria-expanded`)})}function ee(){k().removeEventListener(`mousemove`,m),Tm=Tm.filter(function(e){return e!==m})}function te(t){if(!(Jp.isTouch&&(c||t.type===`mousedown`))){var n=t.composedPath&&t.composedPath()[0]||t.target;if(!(y.props.interactive&&qp(x,n))){if(Ap(y.props.triggerTarget||e).some(function(e){return qp(e,n)})){if(Jp.isTouch||y.state.isVisible&&y.props.trigger.indexOf(`click`)>=0)return}else N(`onClickOutside`,[y,t]);y.props.hideOnClick===!0&&(y.clearDelayTimeouts(),y.hide(),s=!0,setTimeout(function(){s=!1}),y.state.isMounted||ne())}}}function I(){c=!0}function L(){c=!1}function R(){var e=k();e.addEventListener(`mousedown`,te,!0),e.addEventListener(`touchend`,te,xp),e.addEventListener(`touchstart`,L,xp),e.addEventListener(`touchmove`,I,xp)}function ne(){var e=k();e.removeEventListener(`mousedown`,te,!0),e.removeEventListener(`touchend`,te,xp),e.removeEventListener(`touchstart`,L,xp),e.removeEventListener(`touchmove`,I,xp)}function z(e,t){B(e,function(){!y.state.isVisible&&x.parentNode&&x.parentNode.contains(x)&&t()})}function re(e,t){B(e,t)}function B(e,t){var n=A().box;function r(e){e.target===n&&(Kp(n,`remove`,r),t())}if(e===0)return t();Kp(n,`remove`,d),Kp(n,`add`,r),d=r}function ie(t,n,r){r===void 0&&(r=!1),Ap(y.props.triggerTarget||e).forEach(function(e){e.addEventListener(t,n,r),p.push({node:e,eventType:t,handler:n,options:r})})}function ae(){E()&&(ie(`touchstart`,oe,{passive:!0}),ie(`touchend`,ce,{passive:!0})),kp(y.props.trigger).forEach(function(e){if(e!==`manual`)switch(ie(e,oe),e){case`mouseenter`:ie(`mouseleave`,ce);break;case`focus`:ie(em?`focusout`:`blur`,le);break;case`focusin`:ie(`focusout`,le);break}})}function V(){p.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,i=e.options;t.removeEventListener(n,r,i)}),p=[]}function oe(e){var t=!1;if(!(!y.state.isEnabled||ue(e)||s)){var n=u?.type===`focus`;u=e,h=e.currentTarget,F(),!y.state.isVisible&&zp(e)&&Tm.forEach(function(t){return t(e)}),e.type===`click`&&(y.props.trigger.indexOf(`mouseenter`)<0||o)&&y.props.hideOnClick!==!1&&y.state.isVisible?t=!0:he(e),e.type===`click`&&(o=!t),t&&!n&&ge(e)}}function se(e){var t=e.target,r=O().contains(t)||x.contains(t);e.type===`mousemove`&&r||Gp(me().concat(x).map(function(e){var t=e._tippy.popperInstance?.state;return t?{popperRect:e.getBoundingClientRect(),popperState:t,props:n}:null}).filter(Boolean),e)&&(ee(),ge(e))}function ce(e){if(!(ue(e)||y.props.trigger.indexOf(`click`)>=0&&o)){if(y.props.interactive){y.hideWithInteractivity(e);return}ge(e)}}function le(e){y.props.trigger.indexOf(`focusin`)<0&&e.target!==O()||y.props.interactive&&e.relatedTarget&&x.contains(e.relatedTarget)||ge(e)}function ue(e){return Jp.isTouch?E()!==e.type.indexOf(`touch`)>=0:!1}function de(){fe();var t=y.props,n=t.popperOptions,r=t.placement,i=t.offset,a=t.getReferenceClientRect,o=t.moveTransition,s=D()?Sm(x).arrow:null,c=a?{getBoundingClientRect:a,contextElement:a.contextElement||O()}:e,l=[{name:`offset`,options:{offset:i}},{name:`preventOverflow`,options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:`flip`,options:{padding:5}},{name:`computeStyles`,options:{adaptive:!o}},{name:`$$tippy`,enabled:!0,phase:`beforeWrite`,requires:[`computeStyles`],fn:function(e){var t=e.state;if(D()){var n=A().box;[`placement`,`reference-hidden`,`escaped`].forEach(function(e){e===`placement`?n.setAttribute(`data-placement`,t.placement):t.attributes.popper[`data-popper-`+e]?n.setAttribute(`data-`+e,``):n.removeAttribute(`data-`+e)}),t.attributes.popper={}}}}];D()&&s&&l.push({name:`arrow`,options:{element:s,padding:3}}),l.push.apply(l,n?.modifiers||[]),y.popperInstance=hp(c,x,Object.assign({},n,{placement:r,onFirstUpdate:f,modifiers:l}))}function fe(){y.popperInstance&&=(y.popperInstance.destroy(),null)}function pe(){var e=y.props.appendTo,t,n=O();t=y.props.interactive&&e===Sp||e===`parent`?n.parentNode:Ep(e,[n]),t.contains(x)||t.appendChild(x),y.state.isMounted=!0,de(),process.env.NODE_ENV!==`production`&&sm(y.props.interactive&&e===dm.appendTo&&n.nextElementSibling!==x,[`Interactive tippy element may not be accessible via keyboard`,`navigation because it is not directly after the reference element`,`in the DOM source order.`,`
203
+ `,`Plugins: https://atomiks.github.io/tippyjs/v6/plugins/`].join(` `))})}var _m=function(){return`innerHTML`};function vm(e,t){e[_m()]=t}function ym(e){var t=Fp();return e===!0?t.className=vp:(t.className=yp,Ip(e)?t.appendChild(e):vm(t,e)),t}function bm(e,t){Ip(t.content)?(vm(e,``),e.appendChild(t.content)):typeof t.content!=`function`&&(t.allowHTML?vm(e,t.content):e.textContent=t.content)}function xm(e){var t=e.firstElementChild,n=Np(t.children);return{box:t,content:n.find(function(e){return e.classList.contains(gp)}),arrow:n.find(function(e){return e.classList.contains(vp)||e.classList.contains(yp)}),backdrop:n.find(function(e){return e.classList.contains(_p)})}}function Sm(e){var t=Fp(),n=Fp();n.className=hp,n.setAttribute(`data-state`,`hidden`),n.setAttribute(`tabindex`,`-1`);var r=Fp();r.className=gp,r.setAttribute(`data-state`,`hidden`),bm(r,e.props),t.appendChild(n),n.appendChild(r),i(e.props,e.props);function i(n,r){var i=xm(t),a=i.box,o=i.content,s=i.arrow;r.theme?a.setAttribute(`data-theme`,r.theme):a.removeAttribute(`data-theme`),typeof r.animation==`string`?a.setAttribute(`data-animation`,r.animation):a.removeAttribute(`data-animation`),r.inertia?a.setAttribute(`data-inertia`,``):a.removeAttribute(`data-inertia`),a.style.maxWidth=typeof r.maxWidth==`number`?r.maxWidth+`px`:r.maxWidth,r.role?a.setAttribute(`role`,r.role):a.removeAttribute(`role`),(n.content!==r.content||n.allowHTML!==r.allowHTML)&&bm(o,e.props),r.arrow?s?n.arrow!==r.arrow&&(a.removeChild(s),a.appendChild(ym(r.arrow))):a.appendChild(ym(r.arrow)):s&&a.removeChild(s)}return{popper:t,onUpdate:i}}Sm.$$tippy=!0;var Cm=1,wm=[],Tm=[];function Em(e,t){var n=hm(e,Object.assign({},um,pm(Pp(t)))),r,i,a,o=!1,s=!1,c=!1,l=!1,u,d,f,p=[],m=Ep(se,n.interactiveDebounce),h,g=Cm++,_=null,v=jp(n.plugins),y={id:g,reference:e,popper:Fp(),popperInstance:_,props:n,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:v,clearDelayTimeouts:ye,setProps:be,setContent:xe,show:Se,hide:Ce,hideWithInteractivity:we,enable:_e,disable:ve,unmount:Te,destroy:Ee};if(!n.render)return process.env.NODE_ENV!==`production`&&sm(!0,`render() function has not been supplied.`),y;var b=n.render(y),x=b.popper,S=b.onUpdate;x.setAttribute(`data-tippy-root`,``),x.id=`tippy-`+y.id,y.popper=x,e._tippy=y,x._tippy=y;var C=v.map(function(e){return e.fn(y)}),w=e.hasAttribute(`aria-expanded`);return ae(),F(),M(),N(`onCreate`,[y]),n.showOnCreate&&he(),x.addEventListener(`mouseenter`,function(){y.props.interactive&&y.state.isVisible&&y.clearDelayTimeouts()}),x.addEventListener(`mouseleave`,function(){y.props.interactive&&y.props.trigger.indexOf(`mouseenter`)>=0&&k().addEventListener(`mousemove`,m)}),y;function T(){var e=y.props.touch;return Array.isArray(e)?e:[e,0]}function E(){return T()[0]===`hold`}function D(){var e;return!!((e=y.props.render)!=null&&e.$$tippy)}function O(){return h||e}function k(){var e=O().parentNode;return e?Up(e):document}function A(){return xm(x)}function j(e){return y.state.isMounted&&!y.state.isVisible||qp.isTouch||u&&u.type===`focus`?0:Cp(y.props.delay,+!e,um.delay)}function M(e){e===void 0&&(e=!1),x.style.pointerEvents=y.props.interactive&&!e?``:`none`,x.style.zIndex=``+y.props.zIndex}function N(e,t,n){if(n===void 0&&(n=!0),C.forEach(function(n){n[e]&&n[e].apply(n,t)}),n){var r;(r=y.props)[e].apply(r,t)}}function P(){var t=y.props.aria;if(t.content){var n=`aria-`+t.content,r=x.id;kp(y.props.triggerTarget||e).forEach(function(e){var t=e.getAttribute(n);if(y.state.isVisible)e.setAttribute(n,t?t+` `+r:r);else{var i=t&&t.replace(r,``).trim();i?e.setAttribute(n,i):e.removeAttribute(n)}})}}function F(){w||!y.props.aria.expanded||kp(y.props.triggerTarget||e).forEach(function(e){y.props.interactive?e.setAttribute(`aria-expanded`,y.state.isVisible&&e===O()?`true`:`false`):e.removeAttribute(`aria-expanded`)})}function ee(){k().removeEventListener(`mousemove`,m),wm=wm.filter(function(e){return e!==m})}function te(t){if(!(qp.isTouch&&(c||t.type===`mousedown`))){var n=t.composedPath&&t.composedPath()[0]||t.target;if(!(y.props.interactive&&Kp(x,n))){if(kp(y.props.triggerTarget||e).some(function(e){return Kp(e,n)})){if(qp.isTouch||y.state.isVisible&&y.props.trigger.indexOf(`click`)>=0)return}else N(`onClickOutside`,[y,t]);y.props.hideOnClick===!0&&(y.clearDelayTimeouts(),y.hide(),s=!0,setTimeout(function(){s=!1}),y.state.isMounted||ne())}}}function I(){c=!0}function L(){c=!1}function R(){var e=k();e.addEventListener(`mousedown`,te,!0),e.addEventListener(`touchend`,te,bp),e.addEventListener(`touchstart`,L,bp),e.addEventListener(`touchmove`,I,bp)}function ne(){var e=k();e.removeEventListener(`mousedown`,te,!0),e.removeEventListener(`touchend`,te,bp),e.removeEventListener(`touchstart`,L,bp),e.removeEventListener(`touchmove`,I,bp)}function z(e,t){B(e,function(){!y.state.isVisible&&x.parentNode&&x.parentNode.contains(x)&&t()})}function re(e,t){B(e,t)}function B(e,t){var n=A().box;function r(e){e.target===n&&(Gp(n,`remove`,r),t())}if(e===0)return t();Gp(n,`remove`,d),Gp(n,`add`,r),d=r}function ie(t,n,r){r===void 0&&(r=!1),kp(y.props.triggerTarget||e).forEach(function(e){e.addEventListener(t,n,r),p.push({node:e,eventType:t,handler:n,options:r})})}function ae(){E()&&(ie(`touchstart`,oe,{passive:!0}),ie(`touchend`,ce,{passive:!0})),Op(y.props.trigger).forEach(function(e){if(e!==`manual`)switch(ie(e,oe),e){case`mouseenter`:ie(`mouseleave`,ce);break;case`focus`:ie($p?`focusout`:`blur`,le);break;case`focusin`:ie(`focusout`,le);break}})}function V(){p.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,i=e.options;t.removeEventListener(n,r,i)}),p=[]}function oe(e){var t=!1;if(!(!y.state.isEnabled||ue(e)||s)){var n=u?.type===`focus`;u=e,h=e.currentTarget,F(),!y.state.isVisible&&Rp(e)&&wm.forEach(function(t){return t(e)}),e.type===`click`&&(y.props.trigger.indexOf(`mouseenter`)<0||o)&&y.props.hideOnClick!==!1&&y.state.isVisible?t=!0:he(e),e.type===`click`&&(o=!t),t&&!n&&ge(e)}}function se(e){var t=e.target,r=O().contains(t)||x.contains(t);e.type===`mousemove`&&r||Wp(me().concat(x).map(function(e){var t=e._tippy.popperInstance?.state;return t?{popperRect:e.getBoundingClientRect(),popperState:t,props:n}:null}).filter(Boolean),e)&&(ee(),ge(e))}function ce(e){if(!(ue(e)||y.props.trigger.indexOf(`click`)>=0&&o)){if(y.props.interactive){y.hideWithInteractivity(e);return}ge(e)}}function le(e){y.props.trigger.indexOf(`focusin`)<0&&e.target!==O()||y.props.interactive&&e.relatedTarget&&x.contains(e.relatedTarget)||ge(e)}function ue(e){return qp.isTouch?E()!==e.type.indexOf(`touch`)>=0:!1}function de(){fe();var t=y.props,n=t.popperOptions,r=t.placement,i=t.offset,a=t.getReferenceClientRect,o=t.moveTransition,s=D()?xm(x).arrow:null,c=a?{getBoundingClientRect:a,contextElement:a.contextElement||O()}:e,l=[{name:`offset`,options:{offset:i}},{name:`preventOverflow`,options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:`flip`,options:{padding:5}},{name:`computeStyles`,options:{adaptive:!o}},{name:`$$tippy`,enabled:!0,phase:`beforeWrite`,requires:[`computeStyles`],fn:function(e){var t=e.state;if(D()){var n=A().box;[`placement`,`reference-hidden`,`escaped`].forEach(function(e){e===`placement`?n.setAttribute(`data-placement`,t.placement):t.attributes.popper[`data-popper-`+e]?n.setAttribute(`data-`+e,``):n.removeAttribute(`data-`+e)}),t.attributes.popper={}}}}];D()&&s&&l.push({name:`arrow`,options:{element:s,padding:3}}),l.push.apply(l,n?.modifiers||[]),y.popperInstance=mp(c,x,Object.assign({},n,{placement:r,onFirstUpdate:f,modifiers:l}))}function fe(){y.popperInstance&&=(y.popperInstance.destroy(),null)}function pe(){var e=y.props.appendTo,t,n=O();t=y.props.interactive&&e===xp||e===`parent`?n.parentNode:Tp(e,[n]),t.contains(x)||t.appendChild(x),y.state.isMounted=!0,de(),process.env.NODE_ENV!==`production`&&om(y.props.interactive&&e===um.appendTo&&n.nextElementSibling!==x,[`Interactive tippy element may not be accessible via keyboard`,`navigation because it is not directly after the reference element`,`in the DOM source order.`,`
204
204
 
205
205
  `,`Using a wrapper <div> or <span> tag around the reference element`,`solves this by creating a new parentNode context.`,`
206
206
 
207
207
  `,"Specifying `appendTo: document.body` silences this warning, but it",`assumes you are using a focus management solution to handle`,`keyboard navigation.`,`
208
208
 
209
- `,`See: https://atomiks.github.io/tippyjs/v6/accessibility/#interactivity`].join(` `))}function me(){return Pp(x.querySelectorAll(`[data-tippy-root]`))}function he(e){y.clearDelayTimeouts(),e&&N(`onTrigger`,[y,e]),R();var t=j(!0),n=T(),i=n[0],a=n[1];Jp.isTouch&&i===`hold`&&a&&(t=a),t?r=setTimeout(function(){y.show()},t):y.show()}function ge(e){if(y.clearDelayTimeouts(),N(`onUntrigger`,[y,e]),!y.state.isVisible){ne();return}if(!(y.props.trigger.indexOf(`mouseenter`)>=0&&y.props.trigger.indexOf(`click`)>=0&&[`mouseleave`,`mousemove`].indexOf(e.type)>=0&&o)){var t=j(!1);t?i=setTimeout(function(){y.state.isVisible&&y.hide()},t):a=requestAnimationFrame(function(){y.hide()})}}function _e(){y.state.isEnabled=!0}function ve(){y.hide(),y.state.isEnabled=!1}function ye(){clearTimeout(r),clearTimeout(i),cancelAnimationFrame(a)}function be(t){if(process.env.NODE_ENV!==`production`&&sm(y.state.isDestroyed,tm(`setProps`)),!y.state.isDestroyed){N(`onBeforeUpdate`,[y,t]),V();var n=y.props,r=gm(e,Object.assign({},n,Fp(t),{ignoreAttributes:!0}));y.props=r,ae(),n.interactiveDebounce!==r.interactiveDebounce&&(ee(),m=Dp(se,r.interactiveDebounce)),n.triggerTarget&&!r.triggerTarget?Ap(n.triggerTarget).forEach(function(e){e.removeAttribute(`aria-expanded`)}):r.triggerTarget&&e.removeAttribute(`aria-expanded`),F(),M(),S&&S(n,r),y.popperInstance&&(de(),me().forEach(function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})),N(`onAfterUpdate`,[y,t])}}function xe(e){y.setProps({content:e})}function Se(){process.env.NODE_ENV!==`production`&&sm(y.state.isDestroyed,tm(`show`));var e=y.state.isVisible,t=y.state.isDestroyed,n=!y.state.isEnabled,r=Jp.isTouch&&!y.props.touch,i=wp(y.props.duration,0,dm.duration);if(!(e||t||n||r)&&!O().hasAttribute(`disabled`)&&(N(`onShow`,[y],!1),y.props.onShow(y)!==!1)){if(y.state.isVisible=!0,D()&&(x.style.visibility=`visible`),M(),R(),y.state.isMounted||(x.style.transition=`none`),D()){var a=A(),o=a.box,s=a.content;Hp([o,s],0)}f=function(){var e;if(!(!y.state.isVisible||l)){if(l=!0,x.offsetHeight,x.style.transition=y.props.moveTransition,D()&&y.props.animation){var t=A(),n=t.box,r=t.content;Hp([n,r],i),Up([n,r],`visible`)}P(),F(),jp(Em,y),(e=y.popperInstance)==null||e.forceUpdate(),N(`onMount`,[y]),y.props.animation&&D()&&re(i,function(){y.state.isShown=!0,N(`onShown`,[y])})}},pe()}}function Ce(){process.env.NODE_ENV!==`production`&&sm(y.state.isDestroyed,tm(`hide`));var e=!y.state.isVisible,t=y.state.isDestroyed,n=!y.state.isEnabled,r=wp(y.props.duration,1,dm.duration);if(!(e||t||n)&&(N(`onHide`,[y],!1),y.props.onHide(y)!==!1)){if(y.state.isVisible=!1,y.state.isShown=!1,l=!1,o=!1,D()&&(x.style.visibility=`hidden`),ee(),ne(),M(!0),D()){var i=A(),a=i.box,s=i.content;y.props.animation&&(Hp([a,s],r),Up([a,s],`hidden`))}P(),F(),y.props.animation?D()&&z(r,y.unmount):y.unmount()}}function we(e){process.env.NODE_ENV!==`production`&&sm(y.state.isDestroyed,tm(`hideWithInteractivity`)),k().addEventListener(`mousemove`,m),jp(Tm,m),m(e)}function Te(){process.env.NODE_ENV!==`production`&&sm(y.state.isDestroyed,tm(`unmount`)),y.state.isVisible&&y.hide(),y.state.isMounted&&(fe(),me().forEach(function(e){e._tippy.unmount()}),x.parentNode&&x.parentNode.removeChild(x),Em=Em.filter(function(e){return e!==y}),y.state.isMounted=!1,N(`onHidden`,[y]))}function Ee(){process.env.NODE_ENV!==`production`&&sm(y.state.isDestroyed,tm(`destroy`)),!y.state.isDestroyed&&(y.clearDelayTimeouts(),y.unmount(),V(),delete e._tippy,y.state.isDestroyed=!0,N(`onDestroy`,[y]))}}function Om(e,t){t===void 0&&(t={});var n=dm.plugins.concat(t.plugins||[]);process.env.NODE_ENV!==`production`&&(lm(e),_m(t,n)),$p();var r=Object.assign({},t,{plugins:n}),i=Vp(e);if(process.env.NODE_ENV!==`production`){var a=Lp(r.content),o=i.length>1;sm(a&&o,["tippy() was passed an Element as the `content` prop, but more than",`one tippy instance was created by this invocation. This means the`,`content element will only be appended to the last tippy instance.`,`
209
+ `,`See: https://atomiks.github.io/tippyjs/v6/accessibility/#interactivity`].join(` `))}function me(){return Np(x.querySelectorAll(`[data-tippy-root]`))}function he(e){y.clearDelayTimeouts(),e&&N(`onTrigger`,[y,e]),R();var t=j(!0),n=T(),i=n[0],a=n[1];qp.isTouch&&i===`hold`&&a&&(t=a),t?r=setTimeout(function(){y.show()},t):y.show()}function ge(e){if(y.clearDelayTimeouts(),N(`onUntrigger`,[y,e]),!y.state.isVisible){ne();return}if(!(y.props.trigger.indexOf(`mouseenter`)>=0&&y.props.trigger.indexOf(`click`)>=0&&[`mouseleave`,`mousemove`].indexOf(e.type)>=0&&o)){var t=j(!1);t?i=setTimeout(function(){y.state.isVisible&&y.hide()},t):a=requestAnimationFrame(function(){y.hide()})}}function _e(){y.state.isEnabled=!0}function ve(){y.hide(),y.state.isEnabled=!1}function ye(){clearTimeout(r),clearTimeout(i),cancelAnimationFrame(a)}function be(t){if(process.env.NODE_ENV!==`production`&&om(y.state.isDestroyed,em(`setProps`)),!y.state.isDestroyed){N(`onBeforeUpdate`,[y,t]),V();var n=y.props,r=hm(e,Object.assign({},n,Pp(t),{ignoreAttributes:!0}));y.props=r,ae(),n.interactiveDebounce!==r.interactiveDebounce&&(ee(),m=Ep(se,r.interactiveDebounce)),n.triggerTarget&&!r.triggerTarget?kp(n.triggerTarget).forEach(function(e){e.removeAttribute(`aria-expanded`)}):r.triggerTarget&&e.removeAttribute(`aria-expanded`),F(),M(),S&&S(n,r),y.popperInstance&&(de(),me().forEach(function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})),N(`onAfterUpdate`,[y,t])}}function xe(e){y.setProps({content:e})}function Se(){process.env.NODE_ENV!==`production`&&om(y.state.isDestroyed,em(`show`));var e=y.state.isVisible,t=y.state.isDestroyed,n=!y.state.isEnabled,r=qp.isTouch&&!y.props.touch,i=Cp(y.props.duration,0,um.duration);if(!(e||t||n||r)&&!O().hasAttribute(`disabled`)&&(N(`onShow`,[y],!1),y.props.onShow(y)!==!1)){if(y.state.isVisible=!0,D()&&(x.style.visibility=`visible`),M(),R(),y.state.isMounted||(x.style.transition=`none`),D()){var a=A(),o=a.box,s=a.content;Vp([o,s],0)}f=function(){var e;if(!(!y.state.isVisible||l)){if(l=!0,x.offsetHeight,x.style.transition=y.props.moveTransition,D()&&y.props.animation){var t=A(),n=t.box,r=t.content;Vp([n,r],i),Hp([n,r],`visible`)}P(),F(),Ap(Tm,y),(e=y.popperInstance)==null||e.forceUpdate(),N(`onMount`,[y]),y.props.animation&&D()&&re(i,function(){y.state.isShown=!0,N(`onShown`,[y])})}},pe()}}function Ce(){process.env.NODE_ENV!==`production`&&om(y.state.isDestroyed,em(`hide`));var e=!y.state.isVisible,t=y.state.isDestroyed,n=!y.state.isEnabled,r=Cp(y.props.duration,1,um.duration);if(!(e||t||n)&&(N(`onHide`,[y],!1),y.props.onHide(y)!==!1)){if(y.state.isVisible=!1,y.state.isShown=!1,l=!1,o=!1,D()&&(x.style.visibility=`hidden`),ee(),ne(),M(!0),D()){var i=A(),a=i.box,s=i.content;y.props.animation&&(Vp([a,s],r),Hp([a,s],`hidden`))}P(),F(),y.props.animation?D()&&z(r,y.unmount):y.unmount()}}function we(e){process.env.NODE_ENV!==`production`&&om(y.state.isDestroyed,em(`hideWithInteractivity`)),k().addEventListener(`mousemove`,m),Ap(wm,m),m(e)}function Te(){process.env.NODE_ENV!==`production`&&om(y.state.isDestroyed,em(`unmount`)),y.state.isVisible&&y.hide(),y.state.isMounted&&(fe(),me().forEach(function(e){e._tippy.unmount()}),x.parentNode&&x.parentNode.removeChild(x),Tm=Tm.filter(function(e){return e!==y}),y.state.isMounted=!1,N(`onHidden`,[y]))}function Ee(){process.env.NODE_ENV!==`production`&&om(y.state.isDestroyed,em(`destroy`)),!y.state.isDestroyed&&(y.clearDelayTimeouts(),y.unmount(),V(),delete e._tippy,y.state.isDestroyed=!0,N(`onDestroy`,[y]))}}function Dm(e,t){t===void 0&&(t={});var n=um.plugins.concat(t.plugins||[]);process.env.NODE_ENV!==`production`&&(cm(e),gm(t,n)),Qp();var r=Object.assign({},t,{plugins:n}),i=Bp(e);if(process.env.NODE_ENV!==`production`){var a=Ip(r.content),o=i.length>1;om(a&&o,["tippy() was passed an Element as the `content` prop, but more than",`one tippy instance was created by this invocation. This means the`,`content element will only be appended to the last tippy instance.`,`
210
210
 
211
211
  `,`Instead, pass the .innerHTML of the element, or use a function that`,`returns a cloned version of the element instead.`,`
212
212
 
213
213
  `,`1) content: element.innerHTML
214
- `,`2) content: () => element.cloneNode(true)`].join(` `))}var s=i.reduce(function(e,t){var n=t&&Dm(t,r);return n&&e.push(n),e},[]);return Lp(e)?s[0]:s}Om.defaultProps=dm,Om.setDefaultProps=pm,Om.currentInput=Jp,Object.assign({},Vd,{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)}}),Om.setDefaultProps({render:Cm});var km=`#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(`.`),Am=`notes-toolbar-recent-colors`,jm=8;function Mm(){try{return JSON.parse(localStorage.getItem(Am)||`[]`)}catch{return[]}}function Nm(e){let t=Mm().filter(t=>t!==e);t.unshift(e),t.length>jm&&(t=t.slice(0,jm)),localStorage.setItem(Am,JSON.stringify(t))}function Pm(e={}){let t=document.createElement(`div`);return t.className=`notes-toolbar`,t.appendChild(zm(e)),t.appendChild(Bm(e)),t.appendChild(Vm(e)),t.appendChild(Gm(e)),t.appendChild(Jm(e)),t.appendChild(Ym(e)),t.appendChild(Zm(e)),t}function Fm(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 Im(e,t){let n=e.querySelector(`[data-action="heading"]`);n&&(n.value=t===!1?`0`:String(t))}function Lm(){let e=document.createElement(`div`);return e.className=`notes-toolbar-group`,e}function Rm(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 zm(e){let t=Lm(),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?!1:t)}),t.appendChild(n),t}function Bm(e){let t=Lm();return t.appendChild(Rm(`bold`,`<b>B</b>`,`Bold`,e.onBold)),t.appendChild(Rm(`italic`,`<i>I</i>`,`Italic`,e.onItalic)),t.appendChild(Rm(`underline`,`<u>U</u>`,`Underline`,e.onUnderline)),t.appendChild(Rm(`strike`,`<s>S</s>`,`Strikethrough`,e.onStrike)),t}function Vm(e){let t=Lm();return t.appendChild(Hm(`color`,`A`,`Text color`,`#000000`,t=>{Nm(t),e.onColor?.(t)})),t.appendChild(Hm(`background`,`A`,`Background color`,`#ffff00`,t=>{Nm(t),e.onBackground?.(t)})),t}function Hm(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}c=Om(a,{content:Um(r,e=>{s.style.backgroundColor=e,i(e),c?.destroy(),c=void 0}),theme:`light-border`,trigger:`manual`,interactive:!0,placement:`bottom-start`,onHidden:()=>{c?.destroy(),c=void 0}}),c.show()}),a}function Um(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 km)r.appendChild(Wm(n,n===e,t));n.appendChild(r);let i=Mm();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(Wm(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 Wm(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 Gm(e){let t=Lm();return t.appendChild(Rm(`orderedList`,Km(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(Rm(`bulletList`,Km(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 Km(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:Km(16,16,`<path d="M1 2h14v2H1zm0 4h9v2H1zm0 4h14v2H1zm0 4h9v2H1z" fill="currentColor"/>`),alignCenter:Km(16,16,`<path d="M1 2h14v2H1zm3.5 4h7v2h-7zM1 10h14v2H1zm3.5 4h7v2h-7z" fill="currentColor"/>`),alignRight:Km(16,16,`<path d="M1 2h14v2H1zm6 4h8v2H7zM1 10h14v2H1zm6 4h8v2H7z" fill="currentColor"/>`),alignJustify:Km(16,16,`<path d="M1 2h14v2H1zm0 4h14v2H1zm0 4h14v2H1zm0 4h14v2H1z" fill="currentColor"/>`)};function Jm(e){let t=Lm();return t.appendChild(Rm(`alignLeft`,qm.alignLeft,`Align left`,()=>e.onAlign?.(`left`))),t.appendChild(Rm(`alignCenter`,qm.alignCenter,`Align center`,()=>e.onAlign?.(`center`))),t.appendChild(Rm(`alignRight`,qm.alignRight,`Align right`,()=>e.onAlign?.(`right`))),t.appendChild(Rm(`alignJustify`,qm.alignJustify,`Justify`,()=>e.onAlign?.(`justify`))),t}function Ym(e){let t=Lm();t.appendChild(Rm(`blockquote`,`“`,`Blockquote`,e.onBlockquote)),t.appendChild(Rm(`codeBlock`,`</>`,`Code block`,e.onCodeBlock));let n=Rm(`link`,`⇗`,`Insert link`);Xm(n,`Enter URL`,`https://`,t=>e.onLink?.(t)),t.appendChild(n);let r=Rm(`video`,`▷`,`Insert video`);return Xm(r,`YouTube URL`,`https://youtube.com/...`,t=>e.onVideo?.(t)),t.appendChild(r),t}function Xm(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=Om(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 Zm(e){let t=Lm();return t.appendChild(Rm(`clearFormatting`,`⊘`,`Clear formatting`,e.onClearFormatting)),t}function Qm(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=Pm({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){Fm(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})){Im(l.toolbar,e);return}Im(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 $m(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}=gn(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 eh(e){return typeof e==`function`}var th;function nh(e){th&&=(th?.destroy(!0),void 0),e?.remove&&e.remove()}function rh(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;nh();let l=document.createElement(`div`),u;return s||=i?.evt?.target,s&&(th=Om(s,{content:()=>(c=c?.filter(e=>!e.hide&&!e.disabled).map(e=>({...e,onClick:()=>{nh(l),eh(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?th.setContent(`IMPLEMENT SUB MENU`):eh(e.onClick)?(nh(l),e.onClick()):eh(a)&&a&&(nh(l),a(typeof e==`object`?{...e,coords:i}:e))}})),u=$m(l,[{text:t,items:c},...r]).focusElement,l),theme:`light-border`,trigger:`click`,onShown:()=>{u&&setTimeout(()=>u?.focus(),0)},...o}),th.show(),th.setProps({interactive:!0})),th}var Y=`court-line`;function X(e,t){let n=document.createElementNS(`http://www.w3.org/2000/svg`,e);for(let[e,r]of Object.entries(t))n.setAttribute(e,r);return n}function ih(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 ah(e){let t=ih(`0 0 360 780`,e);for(let e of[`M 0 0 L 360 0 L 360 780 L 0 780 Z`,`M 45 0 L 45 780`,`M 315 0 L 315 780`,`M 0 390 L 360 390`,`M 45 210 L 315 210`,`M 45 570 L 315 570`,`M 180 210 L 180 570`,`M 180 0 L 180 20`,`M 180 760 L 180 780`])t.appendChild(X(`path`,{d:e,class:Y}));return t}function oh(e){let t=ih(`0 0 500 470`,e),n=[X(`rect`,{x:`0`,y:`0`,width:`500`,height:`470`,class:Y}),X(`circle`,{cx:`250`,cy:`470`,r:`60`,class:Y}),X(`line`,{x1:`0`,y1:`470`,x2:`500`,y2:`470`,class:Y}),X(`rect`,{x:`170`,y:`0`,width:`160`,height:`190`,class:Y}),X(`circle`,{cx:`250`,cy:`190`,r:`60`,class:Y}),X(`line`,{x1:`220`,y1:`40`,x2:`280`,y2:`40`,class:Y}),X(`circle`,{cx:`250`,cy:`52`,r:`12`,class:Y}),X(`path`,{d:`M 30 0 L 30 90 A 220 220 0 0 0 470 90 L 470 0`,class:Y})];for(let e of n)t.appendChild(e);return t}function sh(e){let t=ih(`0 0 500 440`,e),n=[X(`path`,{d:`M 20 170 A 350 400 0 0 1 480 170`,class:Y}),X(`line`,{x1:`250`,y1:`400`,x2:`20`,y2:`170`,class:Y}),X(`line`,{x1:`250`,y1:`400`,x2:`480`,y2:`170`,class:Y}),X(`path`,{d:`M 250 400 L 314 336 L 250 273 L 186 336 Z`,class:Y}),X(`path`,{d:`M 340 355 A 100 100 0 0 1 160 355`,class:Y}),X(`line`,{x1:`340`,y1:`355`,x2:`265`,y2:`405`,class:Y}),X(`line`,{x1:`160`,y1:`355`,x2:`235`,y2:`405`,class:Y}),X(`path`,{d:`M 235 405 A 18 18 0 0 1 265 405`,class:Y}),X(`circle`,{cx:`250`,cy:`340`,r:`9`,class:Y}),X(`line`,{x1:`247`,y1:`339`,x2:`253`,y2:`339`,class:Y}),X(`path`,{d:`M 244 398 L 244 404 L 250 408 L 256 404 L 256 398 Z`,class:Y}),X(`rect`,{x:`310`,y:`332`,width:`8`,height:`8`,transform:`rotate(45 314 336)`,class:Y}),X(`rect`,{x:`246`,y:`269`,width:`8`,height:`8`,transform:`rotate(45 250 273)`,class:Y}),X(`rect`,{x:`182`,y:`332`,width:`8`,height:`8`,transform:`rotate(45 186 336)`,class:Y}),X(`rect`,{x:`230`,y:`393`,width:`8`,height:`18`,class:Y}),X(`rect`,{x:`262`,y:`393`,width:`8`,height:`18`,class:Y})];for(let e of n)t.appendChild(e);return t}function ch(e){let t=ih(`0 0 850 2000`,e),n=[X(`rect`,{x:`0`,y:`0`,width:`850`,height:`2000`,rx:`280`,ry:`280`,class:Y}),X(`line`,{x1:`0`,y1:`1000`,x2:`850`,y2:`1000`,class:Y}),X(`circle`,{cx:`425`,cy:`1000`,r:`60`,class:Y}),X(`line`,{x1:`0`,y1:`650`,x2:`850`,y2:`650`,class:Y}),X(`line`,{x1:`0`,y1:`1350`,x2:`850`,y2:`1350`,class:Y}),X(`line`,{x1:`140`,y1:`300`,x2:`710`,y2:`300`,class:Y}),X(`line`,{x1:`140`,y1:`1700`,x2:`710`,y2:`1700`,class:Y}),X(`path`,{d:`M 395 300 A 40 40 0 0 1 455 300`,class:Y}),X(`path`,{d:`M 395 1700 A 40 40 0 0 0 455 1700`,class:Y}),X(`circle`,{cx:`270`,cy:`650`,r:`50`,class:Y}),X(`circle`,{cx:`580`,cy:`650`,r:`50`,class:Y}),X(`circle`,{cx:`270`,cy:`1350`,r:`50`,class:Y}),X(`circle`,{cx:`580`,cy:`1350`,r:`50`,class:Y})];for(let e of n)t.appendChild(e);return t}function lh(e){let t=ih(`0 0 200 440`,e);for(let e of[`M 0 0 L 200 0 L 200 440 L 0 440 Z`,`M 0 220 L 200 220`,`M 0 150 L 200 150`,`M 0 290 L 200 290`,`M 100 0 L 100 150`,`M 100 290 L 100 440`])t.appendChild(X(`path`,{d:e,class:Y}));return t}function uh(e){let t=ih(`0 0 200 440`,e);for(let e of[`M 0 0 L 200 0 L 200 440 L 0 440 Z`,`M 18 0 L 18 440`,`M 182 0 L 182 440`,`M 0 220 L 200 220`,`M 0 146 L 200 146`,`M 0 294 L 200 294`,`M 0 30 L 200 30`,`M 0 410 L 200 410`,`M 100 146 L 100 220`,`M 100 220 L 100 294`])t.appendChild(X(`path`,{d:e,class:Y}));return t}function dh(e){let t=ih(`0 0 100 200`,e);for(let e of[`M 0 0 L 100 0 L 100 200 L 0 200 Z`,`M 0 100 L 100 100`,`M 0 69.5 L 100 69.5`,`M 0 130.5 L 100 130.5`,`M 50 69.5 L 50 67.5`,`M 50 130.5 L 50 132.5`])t.appendChild(X(`path`,{d:e,class:Y}));return t}var fh=`COURT_SVG`,ph={tennis:ah,basketball:oh,baseball:sh,hockey:ch,pickleball:lh,badminton:uh,padel:dh},mh={TENNIS:`tennis`,PADEL:`padel`,PICKLEBALL:`pickleball`,BADMINTON:`badminton`},hh={HAL:`basketball`,INN:`baseball`,PER:`hockey`};function gh(e){if(e){for(let[t,n]of Object.entries(hh))if(e.startsWith(t))return n;if(e.startsWith(`SET`)||e.startsWith(`T`))return e.includes(`@RALLY`)?`pickleball`:`tennis`}}function _h(e){let t=e?.competitionFormat?.sport;return t&&mh[t]?mh[t]:gh(e?.matchUpFormat)}function vh(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 yh(e,t=``){let n=e?ph[e]:void 0;if(n)return vh(n(t?`court--${e} ${t}`:`court--${e}`))}function bh(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 xh(e){if(!e)return;let t=bh(e);return t.length?t:void 0}function Sh(e){let t=e?.find(Boolean);if(!t)return;let n=t.addresses?.find(Boolean);return n?xh(n)??t.venueName:t.venueName}function Ch(e){return e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`})}function wh(e){return e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`,year:`numeric`})}function Th(e,t){if(!e&&!t)return;let n=e?new Date(e):null,r=t?new Date(t):null,i=!!n&&!Number.isNaN(n.getTime()),a=!!r&&!Number.isNaN(r.getTime());if(!(!i&&!a))return i&&a&&n.getTime()===r.getTime()?wh(n):i&&a?n.getFullYear()===r.getFullYear()?`${Ch(n)} – ${Ch(r)}, ${r.getFullYear()}`:`${wh(n)} – ${wh(r)}`:wh(i?n:r)}var Eh=`URL`;function Dh(e,t){if(!Array.isArray(e))return;let n=e.find(e=>e?.name===t&&e?.resourceType===Eh);return n?.url??n?.identifier}function Oh(e,t){if(Array.isArray(e))return e.find(e=>e?.resourceSubType===`COURT_SVG`&&(t?e?.name===t:!0))?.identifier}function kh(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 Ah={showImage:!0,cornerBadges:[`status`],body:[`title`,`tier`,`location`,`dateRange`],footer:[`feeBadge`,`playerCount`]};function jh(e){return e?{showImage:e.showImage??Ah.showImage,cornerBadges:e.cornerBadges??Ah.cornerBadges,body:e.body??Ah.body,footer:e.footer??Ah.footer}:Ah}var Mh=()=>`chc-tc-card`,Nh=()=>`chc-tc-card--clickable`,Ph=()=>`chc-tc-card--offline`,Fh=()=>`chc-tc-image`,Ih=()=>`chc-tc-image-img`,Lh=()=>`chc-tc-image-svg`,Rh=()=>`chc-tc-image-placeholder`,zh=()=>`chc-tc-corner-badges`,Bh=()=>`chc-tc-status-pill`,Vh=()=>`chc-tc-offline-badge`,Hh=()=>`chc-tc-body`,Uh=()=>`chc-tc-title`,Wh=()=>`chc-tc-location`,Gh=()=>`chc-tc-date-range`,Kh=()=>`chc-tc-organizer`,qh=()=>`chc-tc-updated-at`,Jh=()=>`chc-tc-footer`,Yh=()=>`chc-tc-fee-badge`,Xh=()=>`chc-tc-player-count`,Zh=()=>`chc-tc-event-count`,Qh=()=>`chc-tc-tier-badge`,$h=()=>`chc-tc-card chc-tc-skeleton`,eg=()=>`chc-tc-skeleton-line`,tg=()=>`chc-tc-skeleton-block`;function ng(e,t,n){let r=jh(t),i=document.createElement(`div`);return i.className=Mh(),i.dataset.tournamentId=e.tournamentId,e.offline&&i.classList.add(Ph()),n?.onClick&&(i.classList.add(Nh()),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(rg(e,r)),r.body.length&&i.appendChild(cg(e,r)),r.footer.length&&i.appendChild(gg(e,r)),i}function rg(e,t){let n=document.createElement(`div`);if(n.className=Fh(),e.tournamentImageURL){let t=document.createElement(`img`);t.className=Ih(),t.src=e.tournamentImageURL,t.alt=e.tournamentName||``,t.loading=`lazy`,t.addEventListener(`error`,()=>ag(n,e)),n.appendChild(t)}else ig(n,e);if(t.cornerBadges.length){let r=og(e,t.cornerBadges);r&&n.appendChild(r)}return n}function ig(e,t){let n=yh(t.courtSvgSport,Lh());if(n){e.appendChild(n);return}let r=document.createElement(`div`);r.className=Rh(),e.appendChild(r)}function ag(e,t){e.querySelector(`.${Ih()}`)?.remove(),ig(e,t)}function og(e,t){let n=[];for(let r of t){let t=sg(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=zh();for(let e of n)r.appendChild(e);return r}function sg(e,t){if(e===`status`){if(!t.status)return null;let e=document.createElement(`div`);return e.className=Bh(),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=Vh(),e.textContent=`Offline`,e}return null}function cg(e,t){let n=document.createElement(`div`);n.className=Hh();for(let r of t.body){let t=lg(r,e);t&&n.appendChild(t)}return n}function lg(e,t){switch(e){case`title`:return ug(t);case`tier`:return dg(t);case`location`:return fg(t);case`dateRange`:return pg(t);case`organizerName`:return mg(t);case`updatedAt`:return hg(t);default:return null}}function ug(e){if(!e.tournamentName)return null;let t=document.createElement(`div`);return t.className=Uh(),t.textContent=e.tournamentName,t.title=e.tournamentName,t}function dg(e){let t=e.tournamentTier?.value;if(!t)return null;let n=document.createElement(`div`);return n.className=Qh(),n.textContent=t,n.title=e.tournamentTier?.system?`${e.tournamentTier.system}: ${t}`:t,n}function fg(e){if(!e.location)return null;let t=document.createElement(`div`);return t.className=Wh(),t.textContent=e.location,t.title=e.location,t}function pg(e){if(!e.dateRangeFormatted)return null;let t=document.createElement(`div`);return t.className=Gh(),t.textContent=e.dateRangeFormatted,t}function mg(e){if(!e.organizerName)return null;let t=document.createElement(`div`);return t.className=Kh(),t.textContent=e.organizerName,t}function hg(e){if(!e.updatedAt)return null;let t=document.createElement(`div`);t.className=qh();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 gg(e,t){let n=document.createElement(`div`);n.className=Jh();for(let r of t.footer){let t=_g(r,e);t&&n.appendChild(t)}return n}function _g(e,t){switch(e){case`feeBadge`:return vg(t);case`playerCount`:return yg(t);case`eventCount`:return bg(t);default:return null}}function vg(e){if(!e.feeFormatted)return null;let t=document.createElement(`div`);return t.className=Yh(),t.textContent=e.feeFormatted,t}function yg(e){if(typeof e.participantCount!=`number`)return null;let t=document.createElement(`div`);return t.className=Xh(),t.textContent=`${e.participantCount} ${e.participantCount===1?`player`:`players`}`,t}function bg(e){if(typeof e.eventCount!=`number`)return null;let t=document.createElement(`div`);return t.className=Zh(),t.textContent=`${e.eventCount} ${e.eventCount===1?`event`:`events`}`,t}function xg(e){let t=jh(e);return kh({showImage:t.showImage!==!1,bodyLines:t.body.length,showFooter:t.footer.length>0,cardClass:$h(),imageClass:Fh(),bodyClass:Hh(),footerClass:Jh(),blockClass:tg(),lineClass:eg()})}var Sg=/^(\d{4})-(\d{2})-(\d{2})/,Cg=1440*60*1e3;function wg(e){if(!e)return null;let t=Sg.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 Tg(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 Eg(e,t){if(!t)return new Date(e.year,e.month-1,e.day+1);let n=Tg(e,t),r=new Date(n.getTime()+Cg),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 Tg({year:a(`year`),month:a(`month`),day:a(`day`)},t)}var Dg=10080*60*1e3;function Og(e){if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t}function kg(e,t,n){return!t||!n?!1:t.getTime()<=e.getTime()&&e.getTime()<n.getTime()}function Ag(e){return`Opens ${e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`})}`}function jg(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=wg(e.endDate),a=i?Eg(i,r):null;if(n===`COMPLETED`||a&&t.getTime()>=a.getTime())return{kind:`completed`,label:`Completed`};let o=wg(e.startDate);if(kg(t,o?Tg(o,r):null,a))return{kind:`live`,label:`Live`};let s=Og(e.entriesClose);if(s){let e=s.getTime()-t.getTime();if(e>0&&e<=Dg)return{kind:`closing-soon`,label:`Closing Soon`}}let c=Og(e.entriesOpen);return c&&c.getTime()>t.getTime()?{kind:`registration-opens`,label:Ag(c)}:null}var Mg=`USD`,Ng=`–`;function Pg(e,t){try{return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t}).format(e)}catch{return`$${e.toFixed(2)}`}}function Fg(e){let t=new Set;for(let n of e)t.add(n.currencyCode||Mg);return[...t]}function Ig(e){return[...e].sort((e,t)=>e.amount-t.amount).find(Boolean)}function Lg(e){if(!e||e.length===0)return null;let t=e.filter(e=>typeof e.amount==`number`&&!Number.isNaN(e.amount));if(t.length===0)return null;if(t.length===1){let e=t[0],n=e.currencyCode||Mg;return`${n} ${Pg(e.amount,n)}`}let n=Fg(t);if(n.length>1){let e=Ig(t);if(!e)return null;let n=e.currencyCode||Mg;return`From ${n} ${Pg(e.amount,n)}`}let r=n[0],i=t.map(e=>e.amount).sort((e,t)=>e-t),a=i[0],o=i.at(-1)??a;return a===o?`${r} ${Pg(a,r)}`:`${r} ${Pg(a,r)} ${Ng} ${Pg(o,r)}`}var Rg=`tournamentImage`;function zg(e){let t=e?.registrationProfile?.entryFees;return Array.isArray(t)?t.filter(e=>e&&typeof e.amount==`number`):[]}function Bg(e){let t=e?.timeItems;if(Array.isArray(t))return t.find(e=>e?.itemType===`TMX`)?.itemValue?.offline}function Vg(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?jg({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??Dh(n,Rg),c=e?.courtSvgSport??Oh(n);return{tournamentId:e?.tournamentId??``,tournamentName:e?.tournamentName??``,startDate:e?.startDate,endDate:e?.endDate,dateRangeFormatted:Th(e?.startDate,e?.endDate),location:Sh(r),tournamentImageURL:s,courtSvgSport:c,participantCount:i.length||void 0,eventCount:a.length||void 0,organizerName:e?.tournamentOrganizers?.find?.(Boolean)?.organizerName,status:o,feeFormatted:Lg(zg(e)),updatedAt:e?.updatedAt,offline:Bg(e),tournamentTier:Hg(e)}}function Hg(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 Ug={showImage:!0,showMap:!0,cornerBadges:[`primaryBadge`],body:[`title`,`address`,`courtBreakdown`],footer:[`amenityRow`]};function Wg(e){return e?{showImage:e.showImage??Ug.showImage,showMap:e.showMap??Ug.showMap,cornerBadges:e.cornerBadges??Ug.cornerBadges,body:e.body??Ug.body,footer:e.footer??Ug.footer}:Ug}var Gg=()=>`chc-vc-card`,Kg=()=>`chc-vc-card--clickable`,qg=()=>`chc-vc-image`,Jg=()=>`chc-vc-image-img`,Yg=()=>`chc-vc-image-svg`,Xg=()=>`chc-vc-image-map`,Zg=()=>`chc-vc-image-placeholder`,Qg=()=>`chc-vc-corner-badges`,$g=()=>`chc-vc-primary-badge`,e_=()=>`chc-vc-body`,t_=()=>`chc-vc-title`,n_=()=>`chc-vc-address`,r_=()=>`chc-vc-court-breakdown`,i_=()=>`chc-vc-footer`,a_=()=>`chc-vc-amenity-row`,o_=()=>`chc-vc-amenity`,s_=()=>`chc-vc-card chc-vc-skeleton`,c_=()=>`chc-vc-skeleton-line`,l_=()=>`chc-vc-skeleton-block`;function u_(e,t,n){let r=Wg(t),i=document.createElement(`div`);i.className=Gg(),i.dataset.venueId=e.venueId;let a=null;r.showImage!==!1&&(a=m_(e,r,()=>f()),i.appendChild(a));let o=r.body.length?S_(e,r):null;o&&i.appendChild(o);let s=r.footer.length?E_(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(Kg()),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(Kg()),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 d_(e){return typeof e.latitude==`number`&&typeof e.longitude==`number`}function f_(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=Xg(),a.src=i,a.loading=`lazy`,a.title=`Map of ${e.venueName}`,a}function p_(e,t){let n=yh(t.courtSvgSport,Yg());if(n){e.appendChild(n);return}let r=document.createElement(`div`);r.className=Zg(),e.appendChild(r)}function m_(e,t,n){let r=document.createElement(`div`);if(r.className=qg(),e.venueImageURL){let i=document.createElement(`img`);i.className=Jg(),i.src=e.venueImageURL,i.alt=e.venueName||``,i.loading=`lazy`,i.addEventListener(`error`,()=>{i.remove(),t.showMap!==!1&&d_(e)?r.appendChild(f_(e)):p_(r,e),n?.()}),r.appendChild(i)}else t.showMap!==!1&&d_(e)?r.appendChild(f_(e)):p_(r,e);if(t.cornerBadges.length){let n=g_(e,t.cornerBadges);n&&r.appendChild(n)}return r}function h_(e,t){if(e===`primaryBadge`){if(!t.isPrimary)return null;let e=document.createElement(`div`);return e.className=$g(),e.textContent=`Primary`,e}return null}function g_(e,t){let n=[];for(let r of t){let t=h_(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=Qg();for(let e of n)r.appendChild(e);return r}function __(e){if(!e.venueName)return null;let t=document.createElement(`div`);return t.className=t_(),t.textContent=e.venueName,t.title=e.notes?`${e.venueName}\n${e.notes}`:e.venueName,t}function v_(e){if(!e.addressFormatted)return null;let t=document.createElement(`div`);return t.className=n_(),t.textContent=e.addressFormatted,t.title=e.addressFormatted,t}function y_(e){if(!e.courtBreakdown)return null;let t=document.createElement(`div`);return t.className=r_(),t.textContent=e.courtBreakdown,t}function b_(e){if(!e.venueAbbreviation)return null;let t=document.createElement(`div`);return t.className=r_(),t.textContent=e.venueAbbreviation,t}function x_(e,t){return e===`title`?__(t):e===`address`?v_(t):e===`courtBreakdown`?y_(t):e===`venueAbbreviation`?b_(t):null}function S_(e,t){let n=document.createElement(`div`);n.className=e_();for(let r of t.body){let t=x_(r,e);t&&n.appendChild(t)}return n}function C_(e){let t=document.createElement(`span`);return t.className=o_(),t.textContent=e,t}function w_(e){let t=[];if(typeof e.courtCount==`number`&&t.push(C_(`${e.courtCount} ${e.courtCount===1?`court`:`courts`}`)),e.indoorCount&&t.push(C_(`${e.indoorCount} indoor`)),e.outdoorCount&&t.push(C_(`${e.outdoorCount} outdoor`)),e.floodlitCount&&t.push(C_(`${e.floodlitCount} lit`)),!t.length)return null;let n=document.createElement(`div`);n.className=a_();for(let e of t)n.appendChild(e);return n}function T_(e,t){return e===`amenityRow`?w_(t):e===`address`?v_(t):e===`courtBreakdown`?y_(t):null}function E_(e,t){let n=document.createElement(`div`);n.className=i_();for(let r of t.footer){let t=T_(r,e);t&&n.appendChild(t)}return n}function D_(e){let t=Wg(e);return kh({showImage:t.showImage!==!1,bodyLines:t.body.length,showFooter:t.footer.length>0,cardClass:s_(),imageClass:qg(),bodyClass:e_(),footerClass:i_(),blockClass:l_(),lineClass:c_()})}var O_=`venueImage`;function k_(e){let t=[];return e.indoorOutdoor&&t.push(e.indoorOutdoor.toLowerCase()),e.surfaceCategory&&t.push(e.surfaceCategory.toLowerCase()),t.length?t.join(` `):`court`}function A_(e){if(!e.length)return;let t=new Map;for(let n of e){let e=k_(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 j_(e,t){let n=0;for(let r of e)t(r)&&(n+=1);return n}function M_(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:xh(i),latitude:typeof i?.latitude==`number`?i.latitude:void 0,longitude:typeof i?.longitude==`number`?i.longitude:void 0,courtCount:n.length||void 0,courtBreakdown:A_(n),indoorCount:j_(n,e=>e.indoorOutdoor===`INDOOR`)||void 0,outdoorCount:j_(n,e=>e.indoorOutdoor===`OUTDOOR`)||void 0,floodlitCount:j_(n,e=>!!e.floodlit)||void 0,isPrimary:!!e?.isPrimary,venueImageURL:e?.venueImageURL??Dh(r,O_),courtSvgSport:e?.courtSvgSport??Oh(r)??t?.sport,notes:e?.notes}}var N_={showImage:!0,cornerBadges:[`indoorOutdoor`,`floodlit`],body:[`title`,`surface`],footer:[`amenityRow`]};function P_(e){return e?{showImage:e.showImage??N_.showImage,cornerBadges:e.cornerBadges??N_.cornerBadges,body:e.body??N_.body,footer:e.footer??N_.footer}:N_}var F_=()=>`chc-cc-card`,I_=()=>`chc-cc-card--clickable`,L_=()=>`chc-cc-image`,R_=()=>`chc-cc-image-svg`,z_=()=>`chc-cc-image-placeholder`,B_=()=>`chc-cc-corner-badges`,V_=()=>`chc-cc-indoor-badge`,H_=()=>`chc-cc-floodlit-badge`,U_=()=>`chc-cc-body`,W_=()=>`chc-cc-title`,G_=()=>`chc-cc-surface`,K_=()=>`chc-cc-availability`,q_=()=>`chc-cc-abbr`,J_=()=>`chc-cc-footer`,Y_=()=>`chc-cc-amenity-row`,X_=()=>`chc-cc-card chc-cc-skeleton`,Z_=()=>`chc-cc-skeleton-line`,Q_=()=>`chc-cc-skeleton-block`;function $_(e,t,n){let r=P_(t),i=document.createElement(`div`);return i.className=F_(),i.dataset.courtId=e.courtId,n?.onClick&&(i.classList.add(I_()),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(tv(e,r)),r.body.length&&i.appendChild(dv(e,r)),r.footer.length&&i.appendChild(mv(e,r)),i}function ev(e,t){let n=yh(t.courtSvgSport,R_());if(n){e.appendChild(n);return}let r=document.createElement(`div`);r.className=z_(),e.appendChild(r)}function tv(e,t){let n=document.createElement(`div`);if(n.className=L_(),e.surfaceCategory&&(n.dataset.surface=e.surfaceCategory),ev(n,e),t.cornerBadges.length){let r=av(e,t.cornerBadges);r&&n.appendChild(r)}return n}function nv(e){if(!e.indoorOutdoor)return null;let t=document.createElement(`div`);return t.className=V_(),t.dataset.kind=e.indoorOutdoor,t.textContent=e.indoorOutdoor===`INDOOR`?`Indoor`:`Outdoor`,t}function rv(e){if(!e.floodlit)return null;let t=document.createElement(`div`);return t.className=H_(),t.textContent=`Lit`,t}function iv(e,t){return e===`indoorOutdoor`?nv(t):e===`floodlit`?rv(t):null}function av(e,t){let n=[];for(let r of t){let t=iv(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=B_();for(let e of n)r.appendChild(e);return r}function ov(e){if(!e.courtName)return null;let t=document.createElement(`div`);return t.className=W_(),t.textContent=e.courtName,t.title=e.notes?`${e.courtName}\n${e.notes}`:e.courtName,t}function sv(e){if(!e.surfaceLabel)return null;let t=document.createElement(`div`);return t.className=G_(),t.textContent=e.surfaceLabel,t}function cv(e){if(!e.availabilitySummary)return null;let t=document.createElement(`div`);return t.className=K_(),t.textContent=e.availabilitySummary,t}function lv(e){if(!e.courtAbbreviation)return null;let t=document.createElement(`div`);return t.className=q_(),t.textContent=e.courtAbbreviation,t}function uv(e,t){return e===`title`?ov(t):e===`surface`?sv(t):e===`availability`?cv(t):e===`abbreviation`?lv(t):null}function dv(e,t){let n=document.createElement(`div`);n.className=U_();for(let r of t.body){let t=uv(r,e);t&&n.appendChild(t)}return n}function fv(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=Y_(),n.textContent=t.join(` · `),n}function pv(e,t){return e===`amenityRow`?fv(t):e===`availability`?cv(t):e===`surface`?sv(t):null}function mv(e,t){let n=document.createElement(`div`);n.className=J_();for(let r of t.footer){let t=pv(r,e);t&&n.appendChild(t)}return n}function hv(e){let t=P_(e);return kh({showImage:t.showImage!==!1,bodyLines:t.body.length,showFooter:t.footer.length>0,cardClass:X_(),imageClass:L_(),bodyClass:U_(),footerClass:J_(),blockClass:Q_(),lineClass:Z_()})}var gv=`INDOOR`,_v=`OUTDOOR`,vv=new Set([`HARD`,`CLAY`,`GRASS`,`ARTIFICIAL`,`CARPET`]);function yv(e){if(!e)return;let t=String(e).toUpperCase();if(t===gv)return gv;if(t===_v)return _v}function bv(e){let t=e?.surfaceCategory?String(e.surfaceCategory).toUpperCase():void 0;if(t&&vv.has(t))return t;let n=e?.surfaceType?String(e.surfaceType).toUpperCase():void 0;return n&&vv.has(n)?n:t}function xv(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 Sv(e,t){let n=yv(e?.indoorOutdoor),r=bv(e);return{courtId:e?.courtId??``,courtName:e?.courtName??``,courtAbbreviation:e?.courtAbbreviation,surfaceLabel:xv(n,r),indoorOutdoor:n,surfaceCategory:r,floodlit:!!e?.floodlit,courtSvgSport:t?.sport,notes:e?.notes}}var Cv=()=>`chc-team-card`,wv=()=>`chc-team-card--clickable`,Tv=()=>`chc-team-card__title-row`,Ev=()=>`chc-team-card__name`,Dv=()=>`chc-team-card__nickname`,Ov=()=>`chc-team-card__counts`,kv=` · `;function Av(e,t){let n=document.createElement(`div`);n.className=Cv(),e.teamId&&(n.dataset.teamId=e.teamId),t?.onClick&&(n.classList.add(wv()),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(jv(e));let r=(e.countSegments??[]).map(e=>(e??``).trim()).filter(Boolean);return r.length&&n.appendChild(Mv(r)),n}function jv(e){let t=document.createElement(`div`);t.className=Tv();let n=document.createElement(`span`);if(n.className=Ev(),n.textContent=e.teamName,t.appendChild(n),e.nickname){let n=document.createElement(`span`);n.className=Dv(),n.textContent=`"${e.nickname}"`,t.appendChild(n)}return t}function Mv(e){let t=document.createElement(`div`);return t.className=Ov(),t.textContent=e.join(kv),t}var Nv=[`COMPETITIVE`,`ROUTINE`,`DECISIVE`,`WALKOVER`],Pv=new Set([`WALKOVER`,`DOUBLE_WALKOVER`,`DEFAULTED`,`DOUBLE_DEFAULT`]);function Fv(){return{COMPETITIVE:0,ROUTINE:0,DECISIVE:0,WALKOVER:0}}function Iv(e){let t=Fv();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&&Pv.has(e.matchUpStatus)){t.WALKOVER+=1;continue}let r=e.competitiveProfile?.competitiveness;r&&r!==`WALKOVER`&&Nv.includes(r)&&(t[r]+=1)}return t}function Lv(e){return Nv.reduce((t,n)=>t+e[n],0)}var Rv={COMPETITIVE:`Competitive`,ROUTINE:`Routine`,DECISIVE:`Decisive`,WALKOVER:`Walkover / Defaulted`};function zv(){let e=document.createElement(`div`);e.className=`chc-cb`;let t={};for(let n of Nv){let r=document.createElement(`div`);r.className=`chc-cb__seg`,r.dataset.bucket=n,t[n]=r,e.appendChild(r)}return{element:e,update:n=>{let r=Lv(n);if(e.style.display=r>0?`flex`:`none`,r)for(let e of Nv){let r=t[e],i=n[e];i===0?(r.style.flex=`0 0 0`,r.style.padding=`0`,r.textContent=``,r.removeAttribute(`title`)):(r.style.flex=`${i} 1 0`,r.style.padding=`0 4px`,r.textContent=String(i),r.title=`${Rv[e]}: ${i}`)}}}}var Bv={COMPETITIVE:`Competitive`,ROUTINE:`Routine`,DECISIVE:`Decisive`,WALKOVER:`Walkover / Defaulted`},Vv=`http://www.w3.org/2000/svg`,Hv=96,Uv=16,Wv=Hv/2,Gv=Wv-1,Kv=Gv-Uv;function qv(e,t){return{x:Wv+t*Math.cos(e),y:Wv+t*Math.sin(e)}}function Jv(e,t){let n=qv(e,Gv),r=qv(t,Gv),i=qv(t,Kv),a=qv(e,Kv),o=+(t-e>Math.PI);return[`M ${n.x} ${n.y}`,`A ${Gv} ${Gv} 0 ${o} 1 ${r.x} ${r.y}`,`L ${i.x} ${i.y}`,`A ${Kv} ${Kv} 0 ${o} 0 ${a.x} ${a.y}`,`Z`].join(` `)}function Yv(){let e=qv(-Math.PI/2,Gv),t=qv(Math.PI/2,Gv),n=qv(-Math.PI/2,Kv),r=qv(Math.PI/2,Kv);return[`M ${e.x} ${e.y}`,`A ${Gv} ${Gv} 0 1 1 ${t.x} ${t.y}`,`A ${Gv} ${Gv} 0 1 1 ${e.x} ${e.y}`,`L ${n.x} ${n.y}`,`A ${Kv} ${Kv} 0 1 0 ${r.x} ${r.y}`,`A ${Kv} ${Kv} 0 1 0 ${n.x} ${n.y}`,`Z`].join(` `)}function Xv(){let e=document.createElement(`div`);e.className=`chc-cd`;let t=document.createElementNS(Vv,`svg`);t.setAttribute(`viewBox`,`0 0 ${Hv} ${Hv}`),t.setAttribute(`class`,`chc-cd__svg`),t.setAttribute(`role`,`img`);let n={};for(let e of Nv){let r=document.createElementNS(Vv,`path`);r.setAttribute(`class`,`chc-cd__arc`),r.setAttribute(`data-bucket`,e),t.appendChild(r);let i=document.createElementNS(Vv,`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=Lv(i);if(e.style.display=a>0?`inline-flex`:`none`,!a)return;let o=Nv.filter(e=>i[e]>0),s=-Math.PI/2;for(let e of Nv){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`,Yv());else{let e=t/a,n=s+e*Math.PI*2;r.setAttribute(`d`,Jv(s,n)),s=n}c&&(c.textContent=`${Bv[e]}: ${t}`)}r.textContent=String(a),t.setAttribute(`aria-label`,`Competitiveness across ${a} matches`)}}}var Zv={cornerBadges:[`status`,`publishedBadge`,`embargoBadge`],body:[`title`,`drawTypeLabel`,`matchUpProgress`],footer:[`drawSize`,`entries`,`matchUpFormat`,`flightNumber`,`ratings`],showVisualization:!1};function Qv(e){return e?{cornerBadges:e.cornerBadges??Zv.cornerBadges,body:e.body??Zv.body,footer:e.footer??Zv.footer,showVisualization:e.showVisualization??Zv.showVisualization}:Zv}var $v=()=>`chc-dc-card`,ey=()=>`chc-dc-card--clickable`,ty=()=>`chc-dc-corner-badges`,ny=()=>`chc-dc-status-pill`,ry=()=>`chc-dc-secondary-badge`,iy=()=>`chc-dc-body`,ay=()=>`chc-dc-viz`,oy=()=>`chc-dc-title-row`,sy=()=>`chc-dc-title`,cy=()=>`chc-dc-draw-type`,ly=()=>`chc-dc-meta`,uy=()=>`chc-dc-footer`,dy=()=>`chc-dc-chip`,fy=()=>`chc-dc-progress`,py=()=>`chc-dc-progress-bar`,my=()=>`chc-dc-progress-fill`,hy=()=>`chc-dc-card chc-dc-skeleton`,gy=()=>`chc-dc-skeleton-line`;function _y(e,t,n){let r=Qv(t),i=document.createElement(`div`);if(i.className=$v(),i.dataset.drawId=e.drawId,e.eventId&&(i.dataset.eventId=e.eventId),n?.onClick&&(i.classList.add(ey()),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=ay(),t.appendChild(e.visualization),i.appendChild(t)}return(r.body.length||r.cornerBadges.length)&&i.appendChild(Py(e,r)),r.footer.length&&i.appendChild(Fy(e,r)),i}function vy(e){if(!e.status)return null;let t=document.createElement(`div`);return t.className=ny(),t.dataset.kind=e.status.kind,t.textContent=e.status.label,t}function yy(e){if(!e.published)return null;let t=document.createElement(`div`);return t.className=ry(),t.dataset.kind=`published`,t.textContent=`Published`,t}function by(e){if(!e.embargoActive)return null;let t=document.createElement(`div`);return t.className=ry(),t.dataset.kind=`embargo`,t.textContent=`Embargo`,t}function xy(e,t){return e===`status`?vy(t):e===`publishedBadge`?yy(t):e===`embargoBadge`?by(t):null}function Sy(e,t){let n=[];for(let r of t){let t=xy(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=ty();for(let e of n)r.appendChild(e);return r}function Cy(e){if(!e.drawName)return null;let t=document.createElement(`div`);return t.className=sy(),t.textContent=e.drawName,t.title=e.drawName,t}function wy(e){if(!e.drawTypeLabel)return null;let t=document.createElement(`div`);return t.className=cy(),t.textContent=e.drawTypeLabel,t}function Ty(e){let t=document.createElement(`span`);return t.className=dy(),t.textContent=e,t}function Ey(e){return typeof e.drawSize==`number`?Ty(`Size ${e.drawSize}`):null}function Dy(e){return typeof e.entryCount==`number`?Ty(`${e.entryCount} ${e.entryCount===1?`entry`:`entries`}`):null}function Oy(e){return e.matchUpFormat?Ty(e.matchUpFormat):null}function ky(e){return typeof e.flightNumber==`number`?Ty(`Flight ${e.flightNumber}`):null}function Ay(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=ly(),n.textContent=t.join(` · `),n}function jy(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=fy();let a=document.createElement(`div`);a.className=ly(),a.textContent=`${n}/${t} matches · ${r}%`,i.appendChild(a);let o=document.createElement(`div`);o.className=py();let s=document.createElement(`div`);return s.className=my(),s.style.right=`${100-r}%`,o.appendChild(s),i.appendChild(o),i}function My(e,t){return e===`title`?Cy(t):e===`drawTypeLabel`?wy(t):e===`drawSize`?Ey(t):e===`entries`?Dy(t):e===`matchUpFormat`?Oy(t):e===`flightNumber`?ky(t):e===`ratings`?Ay(t):e===`matchUpProgress`?jy(t):null}function Ny(e,t){let n=document.createElement(`div`);n.className=oy();let r=Cy(e);r&&n.appendChild(r);let i=Sy(e,t);return i&&n.appendChild(i),n}function Py(e,t){let n=document.createElement(`div`);n.className=iy();let r=t.body.includes(`title`),i=t.cornerBadges.length>0;if(i&&!r){let r=Sy(e,t.cornerBadges);r&&n.appendChild(r)}for(let r of t.body){if(r===`title`&&i){n.appendChild(Ny(e,t.cornerBadges));continue}let a=My(r,e);a&&n.appendChild(a)}return n}function Fy(e,t){let n=document.createElement(`div`);n.className=uy();for(let r of t.footer){let t=My(r,e);t&&n.appendChild(t)}return n}function Iy(){let e=document.createElement(`div`);e.className=hy();let t=document.createElement(`div`);t.className=iy();for(let e of[`70%`,`40%`,`85%`]){let n=document.createElement(`div`);n.className=gy(),n.style.width=e,t.appendChild(n)}return e.appendChild(t),e}var Ly={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 Ry(e){if(e)return Ly[e]?Ly[e]:e.toLowerCase().split(`_`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function zy(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 By(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 Vy(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 Hy(e,t){let n=Array.isArray(e?.structures)&&e.structures.length>0,r=t?.matchUpStats??(t?.lightMode||!n?void 0:zy(e)),i=e?.drawStatus===`CANCELLED`,a=t?.statusOverride===void 0?Vy({generated:n,cancelled:i,matchUpCounts:r}):t.statusOverride;return{drawId:e?.drawId??``,drawName:e?.drawName??``,drawType:e?.drawType,drawTypeLabel:Ry(e?.drawType),drawSize:By(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 Uy={showImage:!0,cornerBadges:[`status`,`eventTypeBadge`],body:[`title`,`categoryLabel`,`drawSummary`],footer:[`playerCount`,`matchUpProgress`]},Wy=15;function Gy(e){return e?{showImage:e.showImage??Uy.showImage,cornerBadges:e.cornerBadges??Uy.cornerBadges,body:e.body??Uy.body,footer:e.footer??Uy.footer}:Uy}var Ky=()=>`chc-ec-card`,qy=()=>`chc-ec-card--clickable`,Jy=()=>`chc-ec-image`,Yy=()=>`chc-ec-image-img`,Xy=()=>`chc-ec-image-svg`,Zy=()=>`chc-ec-image-placeholder`,Qy=()=>`chc-ec-corner-badges`,$y=()=>`chc-ec-status-pill`,eb=()=>`chc-ec-eventtype-badge`,tb=()=>`chc-ec-gender-badge`,nb=()=>`chc-ec-body`,rb=()=>`chc-ec-title`,ib=()=>`chc-ec-category`,ab=()=>`chc-ec-draw-summary`,ob=()=>`chc-ec-date-range`,sb=()=>`chc-ec-footer`,cb=()=>`chc-ec-player-count`,lb=()=>`chc-ec-progress`,ub=()=>`chc-ec-progress-meta`,db=()=>`chc-ec-progress-bar`,fb=()=>`chc-ec-progress-fill`,pb=()=>`chc-ec-updated-at`,mb=()=>`chc-ec-card chc-ec-skeleton`,hb=()=>`chc-ec-skeleton-line`,gb=()=>`chc-ec-skeleton-block`;function _b(e,t,n){let r=Gy(t),i=document.createElement(`div`);return i.className=Ky(),i.dataset.eventId=e.eventId,n?.onClick&&(i.classList.add(qy()),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(yb(e,r)),r.body.length&&i.appendChild(Nb(e,r)),r.footer.length&&i.appendChild(Pb(e,r)),i}function vb(e,t){let n=yh(t.courtSvgSport,Xy());if(n){e.appendChild(n);return}let r=document.createElement(`div`);r.className=Zy(),e.appendChild(r)}function yb(e,t){let n=document.createElement(`div`);if(n.className=Jy(),e.eventImageURL){let t=document.createElement(`img`);t.className=Yy(),t.src=e.eventImageURL,t.alt=e.eventName||``,t.loading=`lazy`,t.addEventListener(`error`,()=>{t.remove(),vb(n,e)}),n.appendChild(t)}else vb(n,e);if(t.cornerBadges.length){let r=wb(e,t.cornerBadges);r&&n.appendChild(r)}return n}function bb(e){if(!e.status)return null;let t=document.createElement(`div`);return t.className=$y(),t.dataset.kind=e.status.kind,t.textContent=e.status.label,t}function xb(e){if(!e.eventType)return null;let t=document.createElement(`div`);return t.className=eb(),t.dataset.kind=e.eventType,t.textContent=e.eventType,t}function Sb(e){if(!e.gender)return null;let t=document.createElement(`div`);return t.className=tb(),t.dataset.kind=e.gender,t.textContent=e.gender===`MALE`?`M`:e.gender===`FEMALE`?`W`:`X`,t}function Cb(e,t){return e===`status`?bb(t):e===`eventTypeBadge`?xb(t):e===`genderBadge`?Sb(t):null}function wb(e,t){let n=[];for(let r of t){let t=Cb(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=Qy();for(let e of n)r.appendChild(e);return r}function Tb(e){if(!e.eventName)return null;let t=document.createElement(`div`);return t.className=rb(),t.textContent=e.eventName,t.title=e.eventName,t}function Eb(e){if(!e.categoryLabel)return null;let t=document.createElement(`div`);return t.className=ib(),t.textContent=e.categoryLabel,t}function Db(e){if(!e.drawSummary)return null;let t=document.createElement(`div`);return t.className=ab(),t.textContent=e.drawSummary,t}function Ob(e){if(!e.dateRangeFormatted)return null;let t=document.createElement(`div`);return t.className=ob(),t.textContent=e.dateRangeFormatted,t}function kb(e){if(!e.updatedAt)return null;let t=document.createElement(`div`);t.className=pb();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 Ab(e){if(typeof e.entryCount!=`number`)return null;let t=document.createElement(`div`);return t.className=cb(),t.textContent=`${e.entryCount} ${e.entryCount===1?`player`:`players`}`,t}function jb(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=lb();let a=document.createElement(`div`);a.className=ub(),a.textContent=`${n}/${t} matches · ${r}%`,i.appendChild(a);let o=document.createElement(`div`);o.className=db();let s=document.createElement(`div`);return s.className=fb(),s.style.right=`${100-r}%`,o.appendChild(s),i.appendChild(o),i}function Mb(e,t){return e===`title`?Tb(t):e===`categoryLabel`?Eb(t):e===`drawSummary`?Db(t):e===`dateRange`?Ob(t):e===`updatedAt`?kb(t):e===`playerCount`?Ab(t):e===`matchUpProgress`?jb(t):null}function Nb(e,t){let n=document.createElement(`div`);n.className=nb();for(let r of t.body){let t=Mb(r,e);t&&n.appendChild(t)}return n}function Pb(e,t){let n=document.createElement(`div`);n.className=sb();for(let r of t.footer){let t=Mb(r,e);t&&n.appendChild(t)}return n}function Fb(e){let t=Gy(e);return kh({showImage:t.showImage!==!1,bodyLines:t.body.length,showFooter:t.footer.length>0,cardClass:mb(),imageClass:Jy(),bodyClass:nb(),footerClass:sb(),blockClass:gb(),lineClass:hb()})}function Ib(e){if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t}function Lb(e,t,n){return!t||!n?!1:t.getTime()<=e.getTime()&&e.getTime()<=n.getTime()}function Rb(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=Ib(e.startDate),i=Ib(e.endDate);if(n&&(n.inProgress>0||Lb(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 zb=`eventImage`,Bb=`DRAFT_STATE`;function Vb(e){if(!e)return;let t=String(e).toUpperCase();if(t===`SINGLES`||t===`DOUBLES`||t===`TEAM`||t===`HYBRID`)return t}function Hb(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 Ub(e){if(!e)return;let t=Wb(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=Wb(e.ageCategoryCode);if(n)return n;if(e.ratingMin&&e.ratingMax)return`Rating ${e.ratingMin}–${e.ratingMax}`}function Wb(e){if(typeof e!=`string`)return;let t=e.trim();if(t&&!/^[-—–_]+$/.test(t))return t}function Gb(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 Kb(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 qb(e){if(e?.draftState!=null)return!0;let t=e?.extensions;return Array.isArray(t)?t.some(e=>e?.name===Bb):!1}function Jb(e){return e.some(e=>e?.automated?.seedsOnly===!0||qb(e))}function Yb(e){return e.length===0?!1:e.every(e=>e?.drawStatus===`CANCELLED`)}var Xb=new Set([`DIRECT_ACCEPTANCE`,`DA`,`DIRECT_CONFIRMED`,`DC`,`ACCEPTED`,`A`,`ENTERED`,`PE`,`QUALIFIER`,`Q`,`WILDCARD`,`WC`]);function Zb(e){if(!e.length)return 0;let t=0;for(let n of e)Xb.has(String(n?.entryStatus))&&(t+=1);return t}function Qb(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:Kb(e)),o=t?.statusOverride===void 0?Rb({allDrawsCancelled:Yb(n),drawCount:n.length,entryCount:Zb(r),startDate:e?.startDate,endDate:e?.endDate,matchUpCounts:a,hasDraftState:n.some(qb),hasSeedsOnlyDraw:Jb(n)},t?.now):t.statusOverride;return{eventId:e?.eventId??``,eventName:e?.eventName??``,eventAbbreviation:e?.eventAbbreviation,categoryLabel:Ub(e?.category),eventType:Vb(e?.eventType),gender:Hb(e?.gender),drawCount:n.length||void 0,drawSummary:Gb(n),entryCount:Zb(r)||void 0,matchUpCounts:a,startDate:e?.startDate,endDate:e?.endDate,dateRangeFormatted:Th(e?.startDate,e?.endDate),status:o,eventImageURL:e?.eventImageURL??Dh(i,zb),courtSvgSport:e?.courtSvgSport??Oh(i)??t?.sport,updatedAt:e?.updatedAt}}var $b=()=>`chc-hil-container`,ex=()=>`chc-hil-form`,tx=()=>`chc-hil-header`,nx=()=>`chc-hil-title`,rx=()=>`chc-hil-tabs`,ix=()=>`chc-hil-tab`,ax=()=>`chc-hil-tab--active`,ox=()=>`chc-hil-field`,sx=()=>`chc-hil-label`,cx=()=>`chc-hil-input`,lx=()=>`chc-hil-row`,ux=()=>`chc-hil-submit`,dx=()=>`chc-hil-message`,fx=()=>`chc-hil-message--error`,px=()=>`chc-hil-message--success`,mx=()=>`chc-hil-switch-mode`;function hx(e){return e.replace(/\/+$/,``)}async function gx(e,t,n,r=fetch){let i=hx(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 _x(e,t,n){return gx(e,`/auth/hiveid/signup`,t,n)}function vx(e,t,n){return gx(e,`/auth/hiveid/verify-existing`,t,n)}function yx(e,t,n){return gx(e,`/auth/hiveid/magic-link`,t,n)}function bx(e,t,n){return gx(e,`/auth/hiveid/magic-link/consume`,t,n)}function xx(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 Sx=`signup`,Cx=`login`,wx=`magic-link`,Tx=[Sx,Cx,wx],Ex=`hiveid:authenticated`,Dx={[Sx]:`Sign up`,[Cx]:`Log in`,[wx]:`Email link`},Ox={[Sx]:`Create your CourtHive identity`,[Cx]:`Log in to CourtHive`,[wx]:`Email me a sign-in link`};function kx(e){if(!e?.cfsBaseUrl)throw Error(`buildHiveIDLogin: cfsBaseUrl is required`);let t=e.mode??`signup`,n=!1,r=document.createElement(`div`);r.className=$b(),r.dataset.hiveidLogin=`true`;let i=document.createElement(`div`);i.className=tx();let a=document.createElement(`h2`);a.className=nx(),i.appendChild(a);let o=document.createElement(`div`);o.className=rx(),i.appendChild(o);let s={};Tx.forEach(e=>{let t=document.createElement(`button`);t.type=`button`,t.className=ix(),t.textContent=Dx[e],t.dataset.mode=e,t.onclick=()=>S(e),o.appendChild(t),s[e]=t}),r.appendChild(i);let c=document.createElement(`form`);c.className=ex(),c.noValidate=!0,r.appendChild(c);let l=document.createElement(`div`);l.className=dx(),l.hidden=!0,r.appendChild(l);function u(e,t=`info`){l.textContent=e,l.className=dx(),t===`error`&&l.classList.add(fx()),t===`success`&&l.classList.add(px()),l.hidden=!e}function d(){u(``)}function f(e,t,n=`text`,r=``){let i=document.createElement(`div`);i.className=ox();let a=document.createElement(`label`);a.className=sx(),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=cx(),o.required=!0,i.appendChild(a),i.appendChild(o),c.appendChild(i),o}function p(){let e=document.createElement(`div`);return e.className=lx(),c.appendChild(e),e}function m(e){let t=document.createElement(`button`);return t.type=`submit`,t.className=ux(),t.textContent=e,c.appendChild(t),t}function h(e,t,n){let r=document.createElement(`div`);r.className=mx();let i=document.createElement(`button`);i.type=`button`,i.textContent=n,i.onclick=()=>S(t),r.append(e+` `,i),c.appendChild(r)}function g(e){r.dispatchEvent(new CustomEvent(Ex,{detail:e,bubbles:!0}))}function _(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 v(t,n,r){let i=t.value.trim(),a=n.value.trim(),o=r.value.trim();if(!i||!a||!o){u(`Email, first name, and last name are required.`,`error`);return}try{let t=await _x(e.cfsBaseUrl,{email:i,firstName:a,lastName:o,federationIds:e.federationIds},e.fetchImpl);if(t.status===`candidate`){u(`We found possible matches — please log in with your existing account.`,`info`),S(`login`);return}g({token:t.token,refreshToken:t.refreshToken,personId:t.personId,cached:t.cached}),u(`Welcome to CourtHive.`,`success`)}catch(e){if(xx(e)){u(`That email already has a CourtHive account — please verify your password.`,`info`),S(`login`);return}u(Mx(e)??`Sign-up failed. Please try again.`,`error`)}}async function y(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 vx(e.cfsBaseUrl,{email:r,password:i},e.fetchImpl);g({token:t.token,refreshToken:t.refreshToken,personId:t.personId,cached:t.cached??jx()}),u(`Signed in.`,`success`)}catch(e){u(Mx(e)??`Sign-in failed. Please check your password.`,`error`)}}async function b(t){let n=t.value.trim();if(!n){u(`Email is required.`,`error`);return}try{await yx(e.cfsBaseUrl,{email:n},e.fetchImpl),u(`If ${n} is registered, a sign-in link is on its way.`,`success`)}catch(e){u(Mx(e)??`Could not send link. Please try again.`,`error`)}}function x(){if(c.replaceChildren(),a.textContent=Ox[t],Tx.forEach(e=>{s[e].classList.toggle(ax(),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=cx();let r=document.createElement(`input`);r.id=`chc-hil-lastName`,r.type=`text`,r.placeholder=`Last name`,r.required=!0,r.className=cx();let i=document.createElement(`div`);i.className=ox();let a=document.createElement(`label`);a.textContent=`First name`,a.className=sx(),a.htmlFor=n.id,i.append(a,n);let o=document.createElement(`div`);o.className=ox();let s=document.createElement(`label`);s.textContent=`Last name`,s.className=sx(),s.htmlFor=r.id,o.append(s,r),t.append(i,o);let l=f(`email`,`Email`,`email`,e.defaultEmail??``);c.onsubmit=_(m(`Create account`),()=>v(l,n,r)),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`);c.onsubmit=_(m(`Log in`),()=>y(t,n)),h(`Forgot your password?`,`magic-link`,`Email me a link`)}else{let t=f(`email`,`Email`,`email`,e.defaultEmail??``);c.onsubmit=_(m(`Send link`),()=>b(t)),h(`Have a password?`,`login`,`Log in instead`)}}function S(e){e!==t&&(t=e,d(),x())}function C(){return t}function w(e){let t=t=>e(t.detail);return r.addEventListener(Ex,t),()=>r.removeEventListener(Ex,t)}return x(),{root:r,setMode:S,getMode:C,onAuthenticated:w}}async function Ax(e,t,n){let r=await bx(e,{code:t},n);return{token:r.token,refreshToken:r.refreshToken,personId:r.personId,cached:r.cached??jx()}}function jx(){return{standardFamilyName:null,standardGivenName:null,birthDate:null,sex:null,nationalityCode:null}}function Mx(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 Nx={name:`courthive-components`,packageManager:`pnpm@11.8.0`,version:`3.4.5`,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:`vite build`,prepublishOnly:`npm run 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:`npm run build-storybook`,prebuild:`rm -rf dist/*`,lint:`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.0.2`,"@commitlint/config-conventional":`21.0.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/vanillajs-datepicker":`^1.3.5`,"@typescript-eslint/eslint-plugin":`8.61.1`,"@typescript-eslint/parser":`8.61.1`,"@vitest/browser-playwright":`^4.0.16`,"@vitest/coverage-v8":`^4.0.16`,"@vitest/ui":`^4.0.16`,eslint:`10.5.0`,"eslint-plugin-sonarjs":`4.1.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`,"lint-staged":`17.0.7`,playwright:`^1.57.0`,prettier:`^3.8.1`,semver:`7.8.5`,storybook:`^10.2.17`,"tabulator-tables":`6.5.1`,typescript:`^6.0.2`,vite:`8.0.16`,"vite-plugin-dts":`^5.0.0`,vitest:`^4.0.16`},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.21`,"focus-trap":`^8.0.0`,"timepicker-ui":`^4.1.2`,"tippy.js":`6.3.7`,"tods-competition-factory":`5.7.1`,"vanillajs-datepicker":`1.3.4`}};function Px(){return Nx.version}var Fx={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 Ix(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&&V(i.onClick)&&i.onClick(),n&&V(n)&&n()},e.appendChild(t)}return{elements:r}}var Lx=(e,t)=>n=>n?.trim().length>=e&&(!t||n?.trim().length<=t);function Rx(e){return t.tools.isConvertableInteger(e)&&parseInt(e.toString())>=0}var zx=(e,t)=>n=>Rx(n)&&Number(n)>=e&&Number(n)<=t,Bx=e=>/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?\d)(?=.*?[#?!@$%^&*-]).{8,12}$/.test(e);function Vx(e){return t.tools.dateTime.dateValidation.test(e)}var Hx=(e,t)=>n=>{let r=(n||``).trim().split(` `).length;return r>=e&&(!t||r<=t)},Ux=/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i,Wx=e=>Ux.exec(e),Gx=_({dateValidator:()=>Vx,emailValidator:()=>Wx,nameValidator:()=>Lx,numericRange:()=>zx,numericValidator:()=>Rx,passwordValidator:()=>Bx,wordValidator:()=>Hx}),Kx=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}}},qx=`<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>`,Jx=new WeakMap;function Yx(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=qx,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),Jx.set(n,i),n.appendChild(r),n}function Xx(e){Jx.get(e)?.()}function Zx(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function Qx(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function $x(e){let t,n,r;e.length===2?(t=e===Zx||e===Qx?e:eS,n=e,r=e):(t=Zx,n=(t,n)=>Zx(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 eS(){return 0}function tS(e){return e===null?NaN:+e}var nS=$x(Zx),rS=nS.right;nS.left,$x(tS).center;function iS(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 aS=class extends Map{constructor(e,t=lS){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(oS(this,e))}has(e){return super.has(oS(this,e))}set(e,t){return super.set(sS(this,e),t)}delete(e){return super.delete(cS(this,e))}};function oS({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):n}function sS({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function cS({_intern:e,_key:t},n){let r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function lS(e){return typeof e==`object`&&e?e.valueOf():e}var uS=Math.sqrt(50),dS=Math.sqrt(10),fS=Math.sqrt(2);function pS(e,t,n){let r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/10**i,o=a>=uS?10:a>=dS?5:a>=fS?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?pS(e,t,n*2):[s,c,l]}function mS(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?pS(t,e,n):pS(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 hS(e,t,n){return t=+t,e=+e,n=+n,pS(e,t,n)[2]}function gS(e,t,n){t=+t,e=+e,n=+n;let r=t<e,i=r?hS(t,e,n):hS(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}function _S(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 vS(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 yS(e){return e}var bS=1,xS=2,SS=3,CS=4,wS=1e-6;function TS(e){return`translate(`+e+`,0)`}function ES(e){return`translate(0,`+e+`)`}function DS(e){return t=>+e(t)}function OS(e,t){return t=Math.max(0,e.bandwidth()-t*2)/2,e.round()&&(t=Math.round(t)),n=>+e(n)+t}function kS(){return!this.__axis}function AS(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===bS||e===CS?-1:1,u=e===CS||e===xS?`x`:`y`,d=e===bS||e===SS?TS:ES;function f(f){var p=r??(t.ticks?t.ticks.apply(t,n):t.domain()),m=i??(t.tickFormat?t.tickFormat.apply(t,n):yS),h=Math.max(a,0)+s,g=t.range(),_=+g[0]+c,v=+g[g.length-1]+c,y=(t.bandwidth?OS:DS)(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===bS?`0em`:e===SS?`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`,wS).attr(`transform`,function(e){return isFinite(e=y(e))?d(e+c):this.getAttribute(`transform`)}),w.attr(`opacity`,wS).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===CS||e===xS?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(kS).attr(`fill`,`none`).attr(`font-size`,10).attr(`font-family`,`sans-serif`).attr(`text-anchor`,e===xS?`start`:e===CS?`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 jS(e){return AS(SS,e)}function MS(e){return AS(CS,e)}var NS={value:()=>{}};function PS(){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 FS(n)}function FS(e){this._=e}function IS(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}})}FS.prototype=PS.prototype={constructor:FS,on:function(e,t){var n=this._,r=IS(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=LS(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]=RS(n[i],e.name,t);else if(t==null)for(i in n)n[i]=RS(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 FS(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 LS(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function RS(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=NS,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var zS={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 BS(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),zS.hasOwnProperty(t)?{space:zS[t],local:e}:e}function VS(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 HS(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function US(e){var t=BS(e);return(t.local?HS:VS)(t)}function WS(){}function GS(e){return e==null?WS:function(){return this.querySelector(e)}}function KS(e){typeof e!=`function`&&(e=GS(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 Pw(r,this._parents)}function qS(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function JS(){return[]}function YS(e){return e==null?JS:function(){return this.querySelectorAll(e)}}function XS(e){return function(){return qS(e.apply(this,arguments))}}function ZS(e){e=typeof e==`function`?XS(e):YS(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 Pw(r,i)}function QS(e){return function(){return this.matches(e)}}function $S(e){return function(t){return t.matches(e)}}var eC=Array.prototype.find;function tC(e){return function(){return eC.call(this.children,e)}}function nC(){return this.firstElementChild}function rC(e){return this.select(e==null?nC:tC(typeof e==`function`?e:$S(e)))}var iC=Array.prototype.filter;function aC(){return Array.from(this.children)}function oC(e){return function(){return iC.call(this.children,e)}}function sC(e){return this.selectAll(e==null?aC:oC(typeof e==`function`?e:$S(e)))}function cC(e){typeof e!=`function`&&(e=QS(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 Pw(r,this._parents)}function lC(e){return Array(e.length)}function uC(){return new Pw(this._enter||this._groups.map(lC),this._parents)}function dC(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}dC.prototype={constructor:dC,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 fC(e){return function(){return e}}function pC(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 dC(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function mC(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 dC(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function hC(e){return e.__data__}function gC(e,t){if(!arguments.length)return Array.from(this,hC);var n=t?mC:pC,r=this._parents,i=this._groups;typeof e!=`function`&&(e=fC(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=_C(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 Pw(o,r),o._enter=s,o._exit=c,o}function _C(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function vC(){return new Pw(this._exit||this._groups.map(lC),this._parents)}function yC(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 bC(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 Pw(s,this._parents)}function xC(){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 SC(e){e||=CC;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 Pw(i,this._parents).order()}function CC(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function wC(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function TC(){return Array.from(this)}function EC(){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 DC(){let e=0;for(let t of this)++e;return e}function OC(){return!this.node()}function kC(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 AC(e){return function(){this.removeAttribute(e)}}function jC(e){return function(){this.removeAttributeNS(e.space,e.local)}}function MC(e,t){return function(){this.setAttribute(e,t)}}function NC(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function PC(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function FC(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 IC(e,t){var n=BS(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?jC:AC:typeof t==`function`?n.local?FC:PC:n.local?NC:MC)(n,t))}function LC(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function RC(e){return function(){this.style.removeProperty(e)}}function zC(e,t,n){return function(){this.style.setProperty(e,t,n)}}function BC(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function VC(e,t,n){return arguments.length>1?this.each((t==null?RC:typeof t==`function`?BC:zC)(e,t,n??``)):HC(this.node(),e)}function HC(e,t){return e.style.getPropertyValue(t)||LC(e).getComputedStyle(e,null).getPropertyValue(t)}function UC(e){return function(){delete this[e]}}function WC(e,t){return function(){this[e]=t}}function GC(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function KC(e,t){return arguments.length>1?this.each((t==null?UC:typeof t==`function`?GC:WC)(e,t)):this.node()[e]}function qC(e){return e.trim().split(/^|\s+/)}function JC(e){return e.classList||new YC(e)}function YC(e){this._node=e,this._names=qC(e.getAttribute(`class`)||``)}YC.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 XC(e,t){for(var n=JC(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function ZC(e,t){for(var n=JC(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function QC(e){return function(){XC(this,e)}}function $C(e){return function(){ZC(this,e)}}function ew(e,t){return function(){(t.apply(this,arguments)?XC:ZC)(this,e)}}function tw(e,t){var n=qC(e+``);if(arguments.length<2){for(var r=JC(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?ew:t?QC:$C)(n,t))}function nw(){this.textContent=``}function rw(e){return function(){this.textContent=e}}function iw(e){return function(){var t=e.apply(this,arguments);this.textContent=t??``}}function aw(e){return arguments.length?this.each(e==null?nw:(typeof e==`function`?iw:rw)(e)):this.node().textContent}function ow(){this.innerHTML=``}function sw(e){return function(){this.innerHTML=e}}function cw(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??``}}function lw(e){return arguments.length?this.each(e==null?ow:(typeof e==`function`?cw:sw)(e)):this.node().innerHTML}function uw(){this.nextSibling&&this.parentNode.appendChild(this)}function dw(){return this.each(uw)}function fw(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function pw(){return this.each(fw)}function mw(e){var t=typeof e==`function`?e:US(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function hw(){return null}function gw(e,t){var n=typeof e==`function`?e:US(e),r=t==null?hw:typeof t==`function`?t:GS(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function _w(){var e=this.parentNode;e&&e.removeChild(this)}function vw(){return this.each(_w)}function yw(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function bw(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function xw(e){return this.select(e?bw:yw)}function Sw(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function Cw(e){return function(t){e.call(this,t,this.__data__)}}function ww(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 Tw(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 Ew(e,t,n){return function(){var r=this.__on,i,a=Cw(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 Dw(e,t,n){var r=ww(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?Ew:Tw,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function Ow(e,t,n){var r=LC(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 kw(e,t){return function(){return Ow(this,e,t)}}function Aw(e,t){return function(){return Ow(this,e,t.apply(this,arguments))}}function jw(e,t){return this.each((typeof t==`function`?Aw:kw)(e,t))}function*Mw(){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 Nw=[null];function Pw(e,t){this._groups=e,this._parents=t}function Fw(){return new Pw([[document.documentElement]],Nw)}function Iw(){return this}Pw.prototype=Fw.prototype={constructor:Pw,select:KS,selectAll:ZS,selectChild:rC,selectChildren:sC,filter:cC,data:gC,enter:uC,exit:vC,join:yC,merge:bC,selection:Iw,order:xC,sort:SC,call:wC,nodes:TC,node:EC,size:DC,empty:OC,each:kC,attr:IC,style:VC,property:KC,classed:tw,text:aw,html:lw,raise:dw,lower:pw,append:mw,insert:gw,remove:vw,clone:xw,datum:Sw,on:Dw,dispatch:jw,[Symbol.iterator]:Mw};function Lw(e){return typeof e==`string`?new Pw([[document.querySelector(e)]],[document.documentElement]):new Pw([[e]],Nw)}function Rw(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function zw(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Bw(){}var Vw=.7,Hw=1/Vw,Uw=`\\s*([+-]?\\d+)\\s*`,Ww=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,Gw=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,Kw=/^#([0-9a-f]{3,8})$/,qw=RegExp(`^rgb\\(${Uw},${Uw},${Uw}\\)$`),Jw=RegExp(`^rgb\\(${Gw},${Gw},${Gw}\\)$`),Yw=RegExp(`^rgba\\(${Uw},${Uw},${Uw},${Ww}\\)$`),Xw=RegExp(`^rgba\\(${Gw},${Gw},${Gw},${Ww}\\)$`),Zw=RegExp(`^hsl\\(${Ww},${Gw},${Gw}\\)$`),Qw=RegExp(`^hsla\\(${Ww},${Gw},${Gw},${Ww}\\)$`),$w={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};Rw(Bw,iT,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:eT,formatHex:eT,formatHex8:tT,formatHsl:nT,formatRgb:rT,toString:rT});function eT(){return this.rgb().formatHex()}function tT(){return this.rgb().formatHex8()}function nT(){return _T(this).formatHsl()}function rT(){return this.rgb().formatRgb()}function iT(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=Kw.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?aT(t):n===3?new lT(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?oT(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?oT(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=qw.exec(e))?new lT(t[1],t[2],t[3],1):(t=Jw.exec(e))?new lT(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Yw.exec(e))?oT(t[1],t[2],t[3],t[4]):(t=Xw.exec(e))?oT(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Zw.exec(e))?gT(t[1],t[2]/100,t[3]/100,1):(t=Qw.exec(e))?gT(t[1],t[2]/100,t[3]/100,t[4]):$w.hasOwnProperty(e)?aT($w[e]):e===`transparent`?new lT(NaN,NaN,NaN,0):null}function aT(e){return new lT(e>>16&255,e>>8&255,e&255,1)}function oT(e,t,n,r){return r<=0&&(e=t=n=NaN),new lT(e,t,n,r)}function sT(e){return e instanceof Bw||(e=iT(e)),e?(e=e.rgb(),new lT(e.r,e.g,e.b,e.opacity)):new lT}function cT(e,t,n,r){return arguments.length===1?sT(e):new lT(e,t,n,r??1)}function lT(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Rw(lT,cT,zw(Bw,{brighter(e){return e=e==null?Hw:Hw**+e,new lT(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Vw:Vw**+e,new lT(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new lT(mT(this.r),mT(this.g),mT(this.b),pT(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:uT,formatHex:uT,formatHex8:dT,formatRgb:fT,toString:fT}));function uT(){return`#${hT(this.r)}${hT(this.g)}${hT(this.b)}`}function dT(){return`#${hT(this.r)}${hT(this.g)}${hT(this.b)}${hT((isNaN(this.opacity)?1:this.opacity)*255)}`}function fT(){let e=pT(this.opacity);return`${e===1?`rgb(`:`rgba(`}${mT(this.r)}, ${mT(this.g)}, ${mT(this.b)}${e===1?`)`:`, ${e})`}`}function pT(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function mT(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function hT(e){return e=mT(e),(e<16?`0`:``)+e.toString(16)}function gT(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new yT(e,t,n,r)}function _T(e){if(e instanceof yT)return new yT(e.h,e.s,e.l,e.opacity);if(e instanceof Bw||(e=iT(e)),!e)return new yT;if(e instanceof yT)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 yT(o,s,c,e.opacity)}function vT(e,t,n,r){return arguments.length===1?_T(e):new yT(e,t,n,r??1)}function yT(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Rw(yT,vT,zw(Bw,{brighter(e){return e=e==null?Hw:Hw**+e,new yT(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Vw:Vw**+e,new yT(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 lT(ST(e>=240?e-240:e+120,i,r),ST(e,i,r),ST(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new yT(bT(this.h),xT(this.s),xT(this.l),pT(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=pT(this.opacity);return`${e===1?`hsl(`:`hsla(`}${bT(this.h)}, ${xT(this.s)*100}%, ${xT(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function bT(e){return e=(e||0)%360,e<0?e+360:e}function xT(e){return Math.max(0,Math.min(1,e||0))}function ST(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 CT=e=>()=>e;function wT(e,t){return function(n){return e+n*t}}function TT(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function ET(e){return(e=+e)==1?DT:function(t,n){return n-t?TT(t,n,e):CT(isNaN(t)?n:t)}}function DT(e,t){var n=t-e;return n?wT(e,n):CT(isNaN(e)?t:e)}var OT=(function e(t){var n=ET(t);function r(e,t){var r=n((e=cT(e)).r,(t=cT(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=DT(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 kT(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 AT(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function jT(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]=BT(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 MT(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function NT(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function PT(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]=BT(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var FT=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,IT=new RegExp(FT.source,`g`);function LT(e){return function(){return e}}function RT(e){return function(t){return e(t)+``}}function zT(e,t){var n=FT.lastIndex=IT.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=FT.exec(e))&&(i=IT.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:NT(r,i)})),n=IT.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?RT(c[0].x):LT(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 BT(e,t){var n=typeof t,r;return t==null||n===`boolean`?CT(t):(n===`number`?NT:n===`string`?(r=iT(t))?(t=r,OT):zT:t instanceof iT?OT:t instanceof Date?MT:AT(t)?kT:Array.isArray(t)?jT:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?PT:NT)(e,t)}function VT(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var HT=180/Math.PI,UT={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function WT(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)*HT,skewX:Math.atan(c)*HT,scaleX:o,scaleY:s}}var GT;function KT(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?UT:WT(t.a,t.b,t.c,t.d,t.e,t.f)}function qT(e){return e==null||(GT||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),GT.setAttribute(`transform`,e),!(e=GT.transform.baseVal.consolidate()))?UT:(e=e.matrix,WT(e.a,e.b,e.c,e.d,e.e,e.f))}function JT(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:NT(e,i)},{i:c-2,x:NT(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:NT(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:NT(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:NT(e,n)},{i:s-2,x:NT(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 YT=JT(KT,`px, `,`px)`,`deg)`),XT=JT(qT,`, `,`)`,`)`),ZT=0,QT=0,$T=0,eE=1e3,tE,nE,rE=0,iE=0,aE=0,oE=typeof performance==`object`&&performance.now?performance:Date,sE=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function cE(){return iE||=(sE(lE),oE.now()+aE)}function lE(){iE=0}function uE(){this._call=this._time=this._next=null}uE.prototype=dE.prototype={constructor:uE,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?cE():+n)+(t==null?0:+t),!this._next&&nE!==this&&(nE?nE._next=this:tE=this,nE=this),this._call=e,this._time=n,gE()},stop:function(){this._call&&(this._call=null,this._time=1/0,gE())}};function dE(e,t,n){var r=new uE;return r.restart(e,t,n),r}function fE(){cE(),++ZT;for(var e=tE,t;e;)(t=iE-e._time)>=0&&e._call.call(void 0,t),e=e._next;--ZT}function pE(){iE=(rE=oE.now())+aE,ZT=QT=0;try{fE()}finally{ZT=0,hE(),iE=0}}function mE(){var e=oE.now(),t=e-rE;t>eE&&(aE-=t,rE=e)}function hE(){for(var e,t=tE,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:tE=n);nE=e,gE(r)}function gE(e){ZT||(QT&&=clearTimeout(QT),e-iE>24?(e<1/0&&(QT=setTimeout(pE,e-oE.now()-aE)),$T&&=clearInterval($T)):($T||=(rE=oE.now(),setInterval(mE,eE)),ZT=1,sE(pE)))}function _E(e,t,n){var r=new uE;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var vE=PS(`start`,`end`,`cancel`,`interrupt`),yE=[];function bE(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;wE(e,n,{name:t,index:r,group:i,on:vE,tween:yE,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function xE(e,t){var n=CE(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function SE(e,t){var n=CE(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function CE(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function wE(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=dE(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 _E(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(_E(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 TE(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 EE(e){return this.each(function(){TE(this,e)})}function DE(e,t){var n,r;return function(){var i=SE(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 OE(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=SE(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 kE(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=CE(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?DE:OE)(n,e,t))}function AE(e,t,n){var r=e._id;return e.each(function(){var e=SE(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return CE(e,r).value[t]}}function jE(e,t){var n;return(typeof t==`number`?NT:t instanceof iT?OT:(n=iT(t))?(t=n,OT):zT)(e,t)}function ME(e){return function(){this.removeAttribute(e)}}function NE(e){return function(){this.removeAttributeNS(e.space,e.local)}}function PE(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 FE(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 IE(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 LE(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 RE(e,t){var n=BS(e),r=n===`transform`?XT:jE;return this.attrTween(e,typeof t==`function`?(n.local?LE:IE)(n,r,AE(this,`attr.`+e,t)):t==null?(n.local?NE:ME)(n):(n.local?FE:PE)(n,r,t))}function zE(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function BE(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function VE(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&BE(e,i)),n}return i._value=t,i}function HE(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&zE(e,i)),n}return i._value=t,i}function UE(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=BS(e);return this.tween(n,(r.local?VE:HE)(r,t))}function WE(e,t){return function(){xE(this,e).delay=+t.apply(this,arguments)}}function GE(e,t){return t=+t,function(){xE(this,e).delay=t}}function KE(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?WE:GE)(t,e)):CE(this.node(),t).delay}function qE(e,t){return function(){SE(this,e).duration=+t.apply(this,arguments)}}function JE(e,t){return t=+t,function(){SE(this,e).duration=t}}function YE(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?qE:JE)(t,e)):CE(this.node(),t).duration}function XE(e,t){if(typeof t!=`function`)throw Error();return function(){SE(this,e).ease=t}}function ZE(e){var t=this._id;return arguments.length?this.each(XE(t,e)):CE(this.node(),t).ease}function QE(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();SE(this,e).ease=n}}function $E(e){if(typeof e!=`function`)throw Error();return this.each(QE(this._id,e))}function eD(e){typeof e!=`function`&&(e=QS(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 kD(r,this._parents,this._name,this._id)}function tD(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 kD(o,this._parents,this._name,this._id)}function nD(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 rD(e,t,n){var r,i,a=nD(t)?xE:SE;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function iD(e,t){var n=this._id;return arguments.length<2?CE(this.node(),n).on.on(e):this.each(rD(n,e,t))}function aD(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function oD(){return this.on(`end.remove`,aD(this._id))}function sD(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=GS(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,bE(l[f],t,n,f,l,CE(u,n)));return new kD(a,this._parents,t,n)}function cD(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=YS(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=CE(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&bE(p,t,n,h,f,m);a.push(f),o.push(u)}return new kD(a,o,t,n)}var lD=Fw.prototype.constructor;function uD(){return new lD(this._groups,this._parents)}function dD(e,t){var n,r,i;return function(){var a=HC(this,e),o=(this.style.removeProperty(e),HC(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function fD(e){return function(){this.style.removeProperty(e)}}function pD(e,t,n){var r,i=n+``,a;return function(){var o=HC(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function mD(e,t,n){var r,i,a;return function(){var o=HC(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),HC(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function hD(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=SE(this,e),l=c.on,u=c.value[a]==null?s||=fD(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function gD(e,t,n){var r=(e+=``)==`transform`?YT:jE;return t==null?this.styleTween(e,dD(e,r)).on(`end.style.`+e,fD(e)):typeof t==`function`?this.styleTween(e,mD(e,r,AE(this,`style.`+e,t))).each(hD(this._id,e)):this.styleTween(e,pD(e,r,t),n).on(`end.style.`+e,null)}function _D(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function vD(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&_D(e,a,n)),r}return a._value=t,a}function yD(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,vD(e,t,n??``))}function bD(e){return function(){this.textContent=e}}function xD(e){return function(){var t=e(this);this.textContent=t??``}}function SD(e){return this.tween(`text`,typeof e==`function`?xD(AE(this,`text`,e)):bD(e==null?``:e+``))}function CD(e){return function(t){this.textContent=e.call(this,t)}}function wD(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&CD(r)),t}return r._value=e,r}function TD(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,wD(e))}function ED(){for(var e=this._name,t=this._id,n=jD(),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=CE(c,t);bE(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new kD(r,this._parents,e,n)}function DD(){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=SE(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 OD=0;function kD(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function AD(e){return Fw().transition(e)}function jD(){return++OD}var MD=Fw.prototype;kD.prototype=AD.prototype={constructor:kD,select:sD,selectAll:cD,selectChild:MD.selectChild,selectChildren:MD.selectChildren,filter:eD,merge:tD,selection:uD,transition:ED,call:MD.call,nodes:MD.nodes,node:MD.node,size:MD.size,empty:MD.empty,each:MD.each,on:iD,attr:RE,attrTween:UE,style:gD,styleTween:yD,text:SD,textTween:TD,remove:oD,tween:kE,delay:KE,duration:YE,ease:ZE,easeVarying:$E,end:DD,[Symbol.iterator]:MD[Symbol.iterator]};function ND(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var PD={time:null,delay:0,duration:250,ease:ND};function FD(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function ID(e){var t,n;e instanceof kD?(t=e._id,e=e._name):(t=jD(),(n=PD).time=cE(),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])&&bE(c,e,t,l,o,n||FD(c,t));return new kD(r,this._parents,e,t)}Fw.prototype.interrupt=EE,Fw.prototype.transition=ID;var{abs:LD,max:RD,min:zD}=Math;[`w`,`e`].map(BD),[`n`,`s`].map(BD),[`n`,`w`,`e`,`s`,`nw`,`ne`,`sw`,`se`].map(BD);function BD(e){return{type:e}}var VD=Math.PI,HD=2*VD,UD=1e-6,WD=HD-UD;function GD(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function KD(e){let t=Math.floor(e);if(!(t>=0))throw Error(`invalid digits: ${e}`);if(t>15)return GD;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 qD=class{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._=``,this._append=e==null?GD:KD(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>UD)if(!(Math.abs(u*s-c*l)>UD)||!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((VD-Math.acos((m+d-h)/(2*g*_)))/2),y=v/_,b=v/g;Math.abs(y-1)>UD&&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)>UD||Math.abs(this._y1-l)>UD)&&this._append`L${c},${l}`,n&&(d<0&&(d=d%HD+HD),d>WD?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>UD&&this._append`A${n},${n},0,${+(d>=VD)},${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._}};function JD(){return new qD}JD.prototype=qD.prototype;function YD(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString(`en`).replace(/,/g,``):e.toString(10)}function XD(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 ZD(e){return e=XD(Math.abs(e)),e?e[1]:NaN}function QD(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 $D(e){return function(t){return t.replace(/[0-9]/g,function(t){return e[+t]})}}var eO=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function tO(e){if(!(t=eO.exec(e)))throw Error(`invalid format: `+e);var t;return new nO({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]})}tO.prototype=nO.prototype;function nO(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+``}nO.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 rO(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);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var iO;function aO(e,t){var n=XD(e,t);if(!n)return iO=void 0,e.toPrecision(t);var r=n[0],i=n[1],a=i-(iO=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`)+XD(e,Math.max(0,t+a-1))[0]}function oO(e,t){var n=XD(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 sO={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+``,d:YD,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)=>oO(e*100,t),r:oO,s:aO,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function cO(e){return e}var lO=Array.prototype.map,uO=[`y`,`z`,`a`,`f`,`p`,`n`,`µ`,`m`,``,`k`,`M`,`G`,`T`,`P`,`E`,`Z`,`Y`];function dO(e){var t=e.grouping===void 0||e.thousands===void 0?cO:QD(lO.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?cO:$D(lO.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=tO(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`):sO[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=sO[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=rO(e)),w&&+e==0&&f!==`+`&&(w=!1),n=(w?f===`(`?f:s:f===`-`||f===`(`?``:f)+n,r=(y===`s`&&!isNaN(e)&&iO!==void 0?uO[8+iO/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;break}return a(e)}return w.toString=function(){return e+``},w}function u(e,t){var n=Math.max(-8,Math.min(8,Math.floor(ZD(t)/3)))*3,r=10**-n,i=l((e=tO(e),e.type=`f`,e),{suffix:uO[8+n/3]});return function(e){return i(r*e)}}return{format:l,formatPrefix:u}}var fO,pO,mO;hO({thousands:`,`,grouping:[3],currency:[`$`,``]});function hO(e){return fO=dO(e),pO=fO.format,mO=fO.formatPrefix,fO}function gO(e){return Math.max(0,-ZD(Math.abs(e)))}function _O(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(ZD(t)/3)))*3-ZD(Math.abs(e)))}function vO(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,ZD(t)-ZD(e))+1}function yO(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 bO(){return this.eachAfter(yO)}function xO(e,t){let n=-1;for(let r of this)e.call(t,r,++n,this);return this}function SO(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 CO(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 wO(e,t){let n=-1;for(let r of this)if(e.call(t,r,++n,this))return r}function TO(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 EO(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}function DO(e){for(var t=this,n=OO(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 OO(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 kO(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}function AO(){return Array.from(this)}function jO(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}function MO(){var e=this,t=[];return e.each(function(n){n!==e&&t.push({source:n.parent,target:n})}),t}function*NO(){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 PO(e,t){e instanceof Map?(e=[void 0,e],t===void 0&&(t=LO)):t===void 0&&(t=IO);for(var n=new BO(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 BO(o[s])),a.parent=r,a.depth=r.depth+1;return n.eachBefore(zO)}function FO(){return PO(this).eachBefore(RO)}function IO(e){return e.children}function LO(e){return Array.isArray(e)?e[1]:null}function RO(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function zO(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function BO(e){this.data=e,this.depth=this.height=0,this.parent=null}BO.prototype=PO.prototype={constructor:BO,count:bO,each:xO,eachAfter:CO,eachBefore:SO,find:wO,sum:TO,sort:EO,path:DO,ancestors:kO,descendants:AO,leaves:jO,links:MO,copy:FO,[Symbol.iterator]:NO};function VO(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 HO(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 UO(){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(VO),i}function a(e,t){return function(r){r.children&&HO(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 WO(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}var GO=Symbol(`implicit`);function KO(){var e=new aS,t=[],n=[],r=GO;function i(i){let a=e.get(i);if(a===void 0){if(r!==GO)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 aS;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 KO(t,n).unknown(r)},WO.apply(i,arguments),i}function qO(){var e=KO().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=vS(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 qO(t(),[r,i]).round(s).paddingInner(c).paddingOuter(l).align(u)},WO.apply(d(),arguments)}function JO(e){var t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,delete e.paddingOuter,e.copy=function(){return JO(t())},e}function YO(){return JO(qO.apply(null,arguments).paddingInner(1))}function XO(e){return function(){return e}}function ZO(e){return+e}var QO=[0,1];function $O(e){return e}function ek(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:XO(isNaN(t)?NaN:.5)}function tk(e,t){var n;return e>t&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}function nk(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=ek(i,r),a=n(o,a)):(r=ek(r,i),a=n(a,o)),function(e){return a(r(e))}}function rk(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]=ek(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(t){var n=rS(e,t,1,r)-1;return a[n](i[n](t))}}function ik(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function ak(){var e=QO,t=QO,n=BT,r,i,a,o=$O,s,c,l;function u(){var n=Math.min(e.length,t.length);return o!==$O&&(o=tk(e[0],e[n-1])),s=n>2?rk:nk,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),NT))(n)))},d.domain=function(t){return arguments.length?(e=Array.from(t,ZO),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=VT,u()},d.clamp=function(e){return arguments.length?(o=e?!0:$O,u()):o!==$O},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 ok(){return ak()($O,$O)}function sk(e,t,n,r){var i=gS(e,t,n),a;switch(r=tO(r??`,f`),r.type){case`s`:var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=_O(i,o))&&(r.precision=a),mO(r,o);case``:case`e`:case`g`:case`p`:case`r`:r.precision==null&&!isNaN(a=vO(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type===`e`));break;case`f`:case`%`:r.precision==null&&!isNaN(a=gO(i))&&(r.precision=a-(r.type===`%`)*2);break}return pO(r)}function ck(e){var t=e.domain;return e.ticks=function(e){var n=t();return mS(n[0],n[n.length-1],e??10)},e.tickFormat=function(e,n){var r=t();return sk(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=hS(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 lk(){var e=ok();return e.copy=function(){return ik(e,lk())},WO.apply(e,arguments),ck(e)}function uk(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 dk=new Date,fk=new Date;function pk(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=>pk(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)=>(dk.setTime(+t),fk.setTime(+r),e(dk),e(fk),Math.floor(n(dk,fk))),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 mk=pk(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);mk.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?pk(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):mk),mk.range;var hk=1e3,gk=hk*60,_k=gk*60,vk=_k*24,yk=vk*7,bk=vk*30,xk=vk*365,Sk=pk(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*hk)},(e,t)=>(t-e)/hk,e=>e.getUTCSeconds());Sk.range;var Ck=pk(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*hk)},(e,t)=>{e.setTime(+e+t*gk)},(e,t)=>(t-e)/gk,e=>e.getMinutes());Ck.range;var wk=pk(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*gk)},(e,t)=>(t-e)/gk,e=>e.getUTCMinutes());wk.range;var Tk=pk(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*hk-e.getMinutes()*gk)},(e,t)=>{e.setTime(+e+t*_k)},(e,t)=>(t-e)/_k,e=>e.getHours());Tk.range;var Ek=pk(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*_k)},(e,t)=>(t-e)/_k,e=>e.getUTCHours());Ek.range;var Dk=pk(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*gk)/vk,e=>e.getDate()-1);Dk.range;var Ok=pk(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/vk,e=>e.getUTCDate()-1);Ok.range;var kk=pk(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/vk,e=>Math.floor(e/vk));kk.range;function Ak(e){return pk(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())*gk)/yk)}var jk=Ak(0),Mk=Ak(1),Nk=Ak(2),Pk=Ak(3),Fk=Ak(4),Ik=Ak(5),Lk=Ak(6);jk.range,Mk.range,Nk.range,Pk.range,Fk.range,Ik.range,Lk.range;function Rk(e){return pk(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)/yk)}var zk=Rk(0),Bk=Rk(1),Vk=Rk(2),Hk=Rk(3),Uk=Rk(4),Wk=Rk(5),Gk=Rk(6);zk.range,Bk.range,Vk.range,Hk.range,Uk.range,Wk.range,Gk.range;var Kk=pk(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());Kk.range;var qk=pk(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());qk.range;var Jk=pk(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());Jk.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:pk(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)}),Jk.range;var Yk=pk(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());Yk.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:pk(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)}),Yk.range;function Xk(e,t,n,r,i,a){let o=[[Sk,1,hk],[Sk,5,5*hk],[Sk,15,15*hk],[Sk,30,30*hk],[a,1,gk],[a,5,5*gk],[a,15,15*gk],[a,30,30*gk],[i,1,_k],[i,3,3*_k],[i,6,6*_k],[i,12,12*_k],[r,1,vk],[r,2,2*vk],[n,1,yk],[t,1,bk],[t,3,3*bk],[e,1,xk]];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=$x(([,,e])=>e).right(o,i);if(a===o.length)return e.every(gS(t/xk,n/xk,r));if(a===0)return mk.every(Math.max(gS(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[Zk,Qk]=Xk(Yk,qk,zk,kk,Ek,wk),[$k,eA]=Xk(Jk,Kk,jk,Dk,Tk,Ck);function tA(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 nA(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 rA(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function iA(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=uA(i),u=dA(i),d=uA(a),f=dA(a),p=uA(o),m=dA(o),h=uA(s),g=dA(s),_=uA(c),v=dA(c),y={a:N,A:P,b:F,B:ee,c:null,d:MA,e:MA,f:LA,g:JA,G:XA,H:NA,I:PA,j:FA,L:IA,m:RA,M:zA,p:te,q:I,Q:yj,s:bj,S:BA,u:VA,U:HA,V:WA,w:GA,W:KA,x:null,X:null,y:qA,Y:YA,Z:ZA,"%":vj},b={a:L,A:R,b:ne,B:z,c:null,d:QA,e:QA,f:rj,g:mj,G:gj,H:$A,I:ej,j:tj,L:nj,m:ij,M:aj,p:re,q:B,Q:yj,s:bj,S:oj,u:sj,U:cj,V:uj,w:dj,W:fj,x:null,X:null,y:pj,Y:hj,Z:_j,"%":vj},x={a:E,A:D,b:O,B:k,c:A,d:SA,e:SA,f:OA,g:vA,G:_A,H:wA,I:wA,j:CA,L:DA,m:xA,M:TA,p:T,q:bA,Q:AA,s:jA,S:EA,u:pA,U:mA,V:hA,w:fA,W:gA,x:j,X:M,y:vA,Y:_A,Z:yA,"%":kA};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=aA[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=rA(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=nA(rA(r.y,0,1)),o=a.getUTCDay(),a=o>4||o===0?Bk.ceil(a):Bk(a),a=Ok.offset(a,(r.V-1)*7),r.y=a.getUTCFullYear(),r.m=a.getUTCMonth(),r.d=a.getUTCDate()+(r.w+6)%7):(a=tA(rA(r.y,0,1)),o=a.getDay(),a=o>4||o===0?Mk.ceil(a):Mk(a),a=Dk.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?nA(rA(r.y,0,1)).getUTCDay():tA(rA(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,nA(r)):tA(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 aA?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 R(e){return a[e.getUTCDay()]}function ne(e){return c[e.getUTCMonth()]}function z(e){return s[e.getUTCMonth()]}function re(e){return i[+(e.getUTCHours()>=12)]}function B(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 aA={"-":``,_:` `,0:`0`},oA=/^\s*\d+/,sA=/^%/,cA=/[\\^$*+?|[\]().{}]/g;function Z(e,t,n){var r=e<0?`-`:``,i=(r?-e:e)+``,a=i.length;return r+(a<n?Array(n-a+1).join(t)+i:i)}function lA(e){return e.replace(cA,`\\$&`)}function uA(e){return RegExp(`^(?:`+e.map(lA).join(`|`)+`)`,`i`)}function dA(e){return new Map(e.map((e,t)=>[e.toLowerCase(),t]))}function fA(e,t,n){var r=oA.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function pA(e,t,n){var r=oA.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function mA(e,t,n){var r=oA.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function hA(e,t,n){var r=oA.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function gA(e,t,n){var r=oA.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function _A(e,t,n){var r=oA.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function vA(e,t,n){var r=oA.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function yA(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 bA(e,t,n){var r=oA.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function xA(e,t,n){var r=oA.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function SA(e,t,n){var r=oA.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function CA(e,t,n){var r=oA.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function wA(e,t,n){var r=oA.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function TA(e,t,n){var r=oA.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function EA(e,t,n){var r=oA.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function DA(e,t,n){var r=oA.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function OA(e,t,n){var r=oA.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function kA(e,t,n){var r=sA.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function AA(e,t,n){var r=oA.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function jA(e,t,n){var r=oA.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function MA(e,t){return Z(e.getDate(),t,2)}function NA(e,t){return Z(e.getHours(),t,2)}function PA(e,t){return Z(e.getHours()%12||12,t,2)}function FA(e,t){return Z(1+Dk.count(Jk(e),e),t,3)}function IA(e,t){return Z(e.getMilliseconds(),t,3)}function LA(e,t){return IA(e,t)+`000`}function RA(e,t){return Z(e.getMonth()+1,t,2)}function zA(e,t){return Z(e.getMinutes(),t,2)}function BA(e,t){return Z(e.getSeconds(),t,2)}function VA(e){var t=e.getDay();return t===0?7:t}function HA(e,t){return Z(jk.count(Jk(e)-1,e),t,2)}function UA(e){var t=e.getDay();return t>=4||t===0?Fk(e):Fk.ceil(e)}function WA(e,t){return e=UA(e),Z(Fk.count(Jk(e),e)+(Jk(e).getDay()===4),t,2)}function GA(e){return e.getDay()}function KA(e,t){return Z(Mk.count(Jk(e)-1,e),t,2)}function qA(e,t){return Z(e.getFullYear()%100,t,2)}function JA(e,t){return e=UA(e),Z(e.getFullYear()%100,t,2)}function YA(e,t){return Z(e.getFullYear()%1e4,t,4)}function XA(e,t){var n=e.getDay();return e=n>=4||n===0?Fk(e):Fk.ceil(e),Z(e.getFullYear()%1e4,t,4)}function ZA(e){var t=e.getTimezoneOffset();return(t>0?`-`:(t*=-1,`+`))+Z(t/60|0,`0`,2)+Z(t%60,`0`,2)}function QA(e,t){return Z(e.getUTCDate(),t,2)}function $A(e,t){return Z(e.getUTCHours(),t,2)}function ej(e,t){return Z(e.getUTCHours()%12||12,t,2)}function tj(e,t){return Z(1+Ok.count(Yk(e),e),t,3)}function nj(e,t){return Z(e.getUTCMilliseconds(),t,3)}function rj(e,t){return nj(e,t)+`000`}function ij(e,t){return Z(e.getUTCMonth()+1,t,2)}function aj(e,t){return Z(e.getUTCMinutes(),t,2)}function oj(e,t){return Z(e.getUTCSeconds(),t,2)}function sj(e){var t=e.getUTCDay();return t===0?7:t}function cj(e,t){return Z(zk.count(Yk(e)-1,e),t,2)}function lj(e){var t=e.getUTCDay();return t>=4||t===0?Uk(e):Uk.ceil(e)}function uj(e,t){return e=lj(e),Z(Uk.count(Yk(e),e)+(Yk(e).getUTCDay()===4),t,2)}function dj(e){return e.getUTCDay()}function fj(e,t){return Z(Bk.count(Yk(e)-1,e),t,2)}function pj(e,t){return Z(e.getUTCFullYear()%100,t,2)}function mj(e,t){return e=lj(e),Z(e.getUTCFullYear()%100,t,2)}function hj(e,t){return Z(e.getUTCFullYear()%1e4,t,4)}function gj(e,t){var n=e.getUTCDay();return e=n>=4||n===0?Uk(e):Uk.ceil(e),Z(e.getUTCFullYear()%1e4,t,4)}function _j(){return`+0000`}function vj(){return`%`}function yj(e){return+e}function bj(e){return Math.floor(e/1e3)}var xj,Sj;Cj({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 Cj(e){return xj=iA(e),Sj=xj.format,xj.parse,xj.utcFormat,xj.utcParse,xj}function wj(e){return new Date(e)}function Tj(e){return e instanceof Date?+e:+new Date(+e)}function Ej(e,t,n,r,i,a,o,s,c,l){var u=ok(),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,Tj)):f().map(wj)},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(uk(n,e)):u},u.copy=function(){return ik(u,Ej(e,t,n,r,i,a,o,s,c,l))},u}function Dj(){return WO.apply(Ej($k,eA,Jk,Kk,jk,Dk,Tk,Ck,Sk,Sj).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function Oj(e){return function(){return e}}var kj=Math.abs,Aj=Math.atan2,jj=Math.cos,Mj=Math.max,Nj=Math.min,Pj=Math.sin,Fj=Math.sqrt,Ij=Math.PI,Lj=Ij/2,Rj=2*Ij;function zj(e){return e>1?0:e<-1?Ij:Math.acos(e)}function Bj(e){return e>=1?Lj:e<=-1?-Lj:Math.asin(e)}function Vj(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 qD(t)}function Hj(e){return e.innerRadius}function Uj(e){return e.outerRadius}function Wj(e){return e.startAngle}function Gj(e){return e.endAngle}function Kj(e){return e&&e.padAngle}function qj(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 Jj(e,t,n,r,i,a,o){var s=e-n,c=t-r,l=(o?a:-a)/Fj(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)*Fj(Mj(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 Yj(){var e=Hj,t=Uj,n=Oj(0),r=null,i=Wj,a=Gj,o=Kj,s=null,c=Vj(l);function l(){var l,u,d=+e.apply(this,arguments),f=+t.apply(this,arguments),p=i.apply(this,arguments)-Lj,m=a.apply(this,arguments)-Lj,h=kj(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>Rj-1e-12)s.moveTo(f*jj(p),f*Pj(p)),s.arc(0,0,f,p,m,!g),d>1e-12&&(s.moveTo(d*jj(m),d*Pj(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):Fj(d*d+f*f)),T=Nj(kj(f-d)/2,+n.apply(this,arguments)),E=T,D=T,O,k;if(w>1e-12){var A=Bj(w/d*Pj(C)),j=Bj(w/f*Pj(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*jj(_),N=f*Pj(_),P=d*jj(b),F=d*Pj(b);if(T>1e-12){var ee=f*jj(v),te=f*Pj(v),I=d*jj(y),L=d*Pj(y),R;if(h<Ij)if(R=qj(M,N,I,L,ee,te,P,F)){var ne=M-R[0],z=N-R[1],re=ee-R[0],B=te-R[1],ie=1/Pj(zj((ne*re+z*B)/(Fj(ne*ne+z*z)*Fj(re*re+B*B)))/2),ae=Fj(R[0]*R[0]+R[1]*R[1]);E=Nj(T,(d-ae)/(ie-1)),D=Nj(T,(f-ae)/(ie+1))}else E=D=0}S>1e-12?D>1e-12?(O=Jj(I,L,M,N,f,D,g),k=Jj(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,Aj(O.y01,O.x01),Aj(k.y01,k.x01),!g):(s.arc(O.cx,O.cy,D,Aj(O.y01,O.x01),Aj(O.y11,O.x11),!g),s.arc(0,0,f,Aj(O.cy+O.y11,O.cx+O.x11),Aj(k.cy+k.y11,k.cx+k.x11),!g),s.arc(k.cx,k.cy,D,Aj(k.y11,k.x11),Aj(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=Jj(P,F,ee,te,d,-E,g),k=Jj(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,Aj(O.y01,O.x01),Aj(k.y01,k.x01),!g):(s.arc(O.cx,O.cy,E,Aj(O.y01,O.x01),Aj(O.y11,O.x11),!g),s.arc(0,0,d,Aj(O.cy+O.y11,O.cx+O.x11),Aj(k.cy+k.y11,k.cx+k.x11),g),s.arc(k.cx,k.cy,E,Aj(k.y11,k.x11),Aj(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-Ij/2;return[jj(r)*n,Pj(r)*n]},l.innerRadius=function(t){return arguments.length?(e=typeof t==`function`?t:Oj(+t),l):e},l.outerRadius=function(e){return arguments.length?(t=typeof e==`function`?e:Oj(+e),l):t},l.cornerRadius=function(e){return arguments.length?(n=typeof e==`function`?e:Oj(+e),l):n},l.padRadius=function(e){return arguments.length?(r=e==null?null:typeof e==`function`?e:Oj(+e),l):r},l.startAngle=function(e){return arguments.length?(i=typeof e==`function`?e:Oj(+e),l):i},l.endAngle=function(e){return arguments.length?(a=typeof e==`function`?e:Oj(+e),l):a},l.padAngle=function(e){return arguments.length?(o=typeof e==`function`?e:Oj(+e),l):o},l.context=function(e){return arguments.length?(s=e??null,l):s},l}Array.prototype.slice;function Xj(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function Zj(e){this._context=e}Zj.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);break}}};function Qj(e){return new Zj(e)}function $j(e){return e[0]}function eM(e){return e[1]}function tM(e,t){var n=Oj(!0),r=null,i=Qj,a=null,o=Vj(s);e=typeof e==`function`?e:e===void 0?$j:Oj(e),t=typeof t==`function`?t:t===void 0?eM:Oj(t);function s(s){var c,l=(s=Xj(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:Oj(+t),s):e},s.y=function(e){return arguments.length?(t=typeof e==`function`?e:Oj(+e),s):t},s.defined=function(e){return arguments.length?(n=typeof e==`function`?e:Oj(!!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 nM(e,t){this._context=e,this._t=t}nM.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)}break}this._x=e,this._y=t}};function rM(e){return new nM(e,1)}function iM(e,t,n){this.k=e,this.x=t,this.y=n}iM.prototype={constructor:iM,scale:function(e){return e===1?this:new iM(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new iM(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 aM=new iM(1,0,0);oM.prototype=iM.prototype;function oM(e){for(;!e.__zoom;)if(!(e=e.parentNode))return aM;return e.__zoom}function sM(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 cM={DECISIVE:20,ROUTINE:50},lM=new Set([`WALKOVER`,`DOUBLE_WALKOVER`,`DEFAULTED`,`DOUBLE_DEFAULT`]),uM={COMPETITIVE:`#16a34a`,ROUTINE:`#3b82f6`,DECISIVE:`#8e44ad`,WALKOVER:`#6b7280`},dM=`#cfd8dc`,fM=`COMPETITIVE`,pM=`ROUTINE`,mM=`DECISIVE`,hM=`WALKOVER`;function gM(e,t=cM){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)?hM:a<=t.DECISIVE?mM:a<=t.ROUTINE?pM:fM}function _M(e,n=cM){if(e)return gM(t.scoreGovernor.parseScoreString({scoreString:e}),n)}function vM({winningSide:e,matchUpStatus:t,sets:n,scoreString:r,bands:i}){if(t&&lM.has(t))return hM;if(e)return n?.length?gM(n,i):_M(r,i)}function yM(e,t){return e?t?.[e]??uM[e]:dM}var{WILDCARD:bM,QUALIFIER:xM,LUCKY_LOSER:SM}=t.entryStatusConstants,CM=`text-anchor`,wM=`dominant-baseline`,TM=`fill-opacity`,EM=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 DM(e){let t=Math.floor(e.length/2),n=e.slice(0,t),r=e.slice(t).reverse();return[...n,...r]}function OM(e){if(e)switch(e){case bM:return`WC`;case xM:return`Q`;case SM:return`LL`;default:return e}}function kM(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:OM(e.entryStatus),nationalityCode:e.nationalityCode,matchUp:r,depth:t,value:1})}return n}function AM(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 jM(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}=AM(e,r);return{name:s||``,participantName:s,drawPosition:l?.drawPosition??c?.drawPosition,seedNumber:c?.seedNumber??l?.seedNumber,entryStatus:OM(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 MM(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=DM(kM(r,n.length)),a=new Map;for(let e of i)e.participantName&&e.participantName!==`BYE`&&a.set(e.participantName,e);let o=jM(DM(r),i,n.length-1,a);for(let e=1;e<n.length;e++)o=jM(DM(t[n[e]]),o,n.length-1-e,a);return o.length===1?o[0]:{name:`Tournament`,depth:0,children:o}}function NM(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=lk().domain([1,32]).range([`0`,`1`]);o=lk().domain(vS(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=lk().domain(vS(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=lk().domain(vS(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),NM(n,t)})}function PM(e,t){e&&(e.competitivenessColor=e.children?.length&&e.competitiveness?yM(e.competitiveness,t):dM,e.children?.forEach(e=>PM(e,t)))}function FM(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 IM(e,t){let n=e.find(e=>e.data.participantName&&e.data.participantName!==t);return n?.data.participantName?n.data:void 0}function LM(e,t){let n=[e.participantName],r;if(t.children&&t.children.length>0)e.scoreString&&n.push(e.scoreString),r=IM(t.children,e.participantName),r&&n.push(r.participantName);else{let r=FM(e,t.depth);r&&n.push(r)}return{messageLines:n,opponentData:r}}function RM(e,t){return-(e*t/2)+t/2}function zM(e,t,n){let r=Lw(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 BM(e,t,n,r,i){let a=e.append(`text`).attr(`x`,t/2).attr(`y`,n/2).attr(CM,`middle`).attr(wM,`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(CM,`middle`).attr(wM,`middle`).attr(`font-size`,`${i}px`).style(`fill`,`var(--chc-text-secondary, #666)`).attr(`pointer-events`,`none`)}}function VM(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(CM,`middle`).attr(wM,`middle`).attr(`transform`,`translate(0, ${r*a})`).text(GM(n)))}function HM(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}))),p=MM(n),m=PO(p,e=>e.children).sum(e=>e.value||0),h=Math.min(a,o)/2,g=h/2,_=e=>e*h/200;UO().size([2*Math.PI,h-g])(m),NM(p,lk().domain([0,n.drawSize||128]).range([0,1])),PM(p,i.competitivenessColors);let v=i.colorMode??`default`,y=e=>v===`competitiveness`?e.competitivenessColor||`#cfd8dc`:e.color||`#ccc`,b=m.descendants(),x=Yj().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}=zM(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}=BM(S,a,o,c,l);function M(){let e=sM(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=lk().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(CM,`middle`).attr(wM,`middle`).attr(`transform`,(t,r)=>{let i=e(r);return`translate(${Math.cos(i)*n}, ${Math.sin(i)*n})`}).text(e=>GM(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(TM,e=>e.data.nationalityCode===t?.9:.3)}).on(`mouseout`,function(){F||C.selectAll(`path`).attr(TM,.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}=LM(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=RM(e.length,u);A.attr(`y`,o/2+i),A.style(`display`,`block`),j.style(`display`,`none`)}F?n.participantName?.toLowerCase()!==ee?.toLowerCase()&&Lw(e.currentTarget).attr(TM,.9):C.selectAll(`path`).attr(TM,e=>e.data.participantName===t.data.participantName?.9:.3);let r=_(30),i=g-r-10,s={flagsGroup:w,winningFlagsGroup:T,losingFlagsGroup:E};VM(T,s,n.nationalityCode,-1,!0,i,r),n.opponent&&VM(E,s,n.opponent.nationalityCode,1,!1,i,r)}function I(e,t){if(F){let n=t.data.participantName?.toLowerCase()===ee?.toLowerCase();Lw(e.currentTarget).attr(TM,n?1:.2)}else C.selectAll(`path`).attr(TM,.8);N(),M()}let L=i.eventHandlers?.clickSegment;function R(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 ne=C.selectAll(`path`).data(b).join(`path`).attr(`d`,e=>x(e)).attr(`fill`,e=>y(e.data)).attr(TM,.8).attr(`stroke`,`#fff`).attr(`stroke-width`,1).on(`mouseover`,te).on(`mouseout`,I);L&&ne.style(`cursor`,`pointer`).on(`click`,R),ne.append(`title`).text(e=>{let t=e.data;if(t.participantName){let e=[t.participantName,`Draw: ${t.drawPosition||`N/A`}`];return t.competitiveness&&e.push(`Competitiveness: ${t.competitiveness}`),e.join(`
215
- `)}return`${t.name}\nDepth: ${e.depth}`});function z(e){let t=0;return F=!!e,ee=e,C.selectAll(`path`).attr(TM,n=>e?n.data.participantName?.toLowerCase()===e.toLowerCase()?(t+=1,1):.2:.8),t}function re(e){S.style(`display`,e?`none`:`block`)}function B(e){v=e,C.selectAll(`path`).attr(`fill`,e=>y(e.data))}return{highlightPlayer:z,hide:re,setColorMode:B}}function UM(e={}){return{render:(t,n,r)=>HM(t,n,r,e)}}function WM(e){return e?.length===2?e&&String.fromCodePoint!==void 0?e.toUpperCase().replaceAll(/./g,e=>String.fromCodePoint((e.codePointAt(0)??0)+127397)):e:``}function GM(e){return WM(EM[e]||e)}var{LUCKY_LOSER:KM,WILDCARD:qM,QUALIFIER:JM}=t.entryStatusConstants;function YM(e){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:vM({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 XM={LL:KM,WC:qM,Q:JM},ZM=[`R128`,`R64`,`R32`,`R16`,`QF`,`SF`,`F`];function QM(e){let t=$M(e);if(t.length===0)return{drawSize:0,roundMatchUps:{}};let n=t[0].data,r=n.length,i=eN(n),a=tN(t,e),o={};o[1]=rN(n,a,t);for(let e=1;e<t.length;e++)o[e+1]=iN(e,t,a,i);return{drawSize:r,roundMatchUps:o}}function $M(e){let t=[],n=!1;for(let r of ZM){let i=e[r];i&&i.length>0&&(n=!0),n&&i&&i.length>0&&t.push({key:r,data:i})}return t}function eN(e){let t=new Map;return e.forEach((e,n)=>{let r=aN(e.player);r&&r!==`BYE`&&t.set(r,{drawPosition:e.Draw??n+1,country:e.country,seed:e.seed,entry:e.entry})}),t}function tN(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=aN(e.player);t&&a.add(t)}n.set(e[r].key,a)}return n}function nN(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 rN(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=aN(a?.player),c=aN(o?.player),l=s===`BYE`||c===`BYE`,u=nN(s,c,i),d;if(!l&&n.length>1){let e=n[1].data,t=u===1?s:c;d=e.find(e=>aN(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:vM({winningSide:u,matchUpStatus:f,scoreString:d}),scoreString:d,sides:[sN(1,a,t+1),sN(2,o,t+2)]})}return r}function iN(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=aN(t?.player),l=aN(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:vM({winningSide:u,matchUpStatus:f,scoreString:d}),scoreString:d,sides:[cN(1,t,r),cN(2,n,r)]})}return s}function aN(e){if(!e)return``;let t=e.trim();return t.toUpperCase()===`BYE`?`BYE`:t}function oN(e){if(e)return XM[e.toUpperCase()]||e}function sN(e,t,n){if(!t)return{sideNumber:e,drawPosition:n};let r=aN(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:oN(t.entry)}}function cN(e,t,n){if(!t)return{sideNumber:e,drawPosition:0};let r=aN(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:oN(t.entry||i?.entry)}}var lN=480,uN=200,dN=280,fN={top:12,right:12,bottom:28,left:32},pN={top:12,right:12,bottom:12,left:12},mN=.6,hN=.9,gN=`http://www.w3.org/2000/svg`,_N=`middle`,vN=`text-anchor`,yN=`dominant-baseline`,bN=[`var(--chc-rating-low, #5b8ff9)`,`var(--chc-rating-high, #00b894)`];function xN(e,t,n){let r=document.createElementNS(gN,`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 SN(e,t,n){return n<=1||t/(n-1)<.5?bN[0]:bN[1]}function CN(e,t,n,r){return r?r(e,t):SN(e,t,n)}function wN(e){return`${e.binStart.toFixed(1)}–${e.binEnd.toFixed(1)}`}function TN(e){let{stats:t,width:n,height:r,margin:i,showAxis:a,showCounts:o,showMean:s,binColor:c,ariaLabel:l}=e,u=xN(n,r,l),d=Lw(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=qO().domain(t.histogram.map(wN)).range([0,f]).padding(.12),h=lk().domain([0,_S(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(wN(e))??0).attr(`y`,e=>h(e.count)).attr(`width`,m.bandwidth()).attr(`height`,e=>p-h(e.count)).attr(`fill`,(e,t)=>CN(e,t,g,c)).append(`title`).text(e=>`${wN(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(wN(e))??0)+m.bandwidth()/2).attr(`y`,e=>h(e.count)-4).attr(vN,_N).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(wN),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(jS(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 EN(e,t,n,r){return[e+n*Math.sin(r),t-n*Math.cos(r)]}function DN(e,t,n,r,i,a){let[o,s]=EN(e,t,n,i),[c,l]=EN(e,t,n,a),[u,d]=EN(e,t,r,a),[f,p]=EN(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 ON(e){let{stats:t,size:n,margin:r,showCounts:i,binColor:a,ariaLabel:o}=e,s=xN(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*hN,f=c*mN,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(gN,`path`);if(h.setAttribute(`class`,`chc-rdc-slice`),h.setAttribute(`d`,DN(l,u,d,f,o,c)),h.setAttribute(`fill`,CN(n,e,m,a)),s.appendChild(h),i){let e=o+r/2,[t,i]=EN(l,u,(d+f)/2,e),a=document.createElementNS(gN,`text`);a.setAttribute(`class`,`chc-rdc-slice-label`),a.setAttribute(`x`,String(t)),a.setAttribute(`y`,String(i)),a.setAttribute(vN,_N),a.setAttribute(yN,_N),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(gN,`text`);return h.setAttribute(`class`,`chc-rdc-center-count`),h.setAttribute(`x`,String(l)),h.setAttribute(`y`,String(u)),h.setAttribute(vN,_N),h.setAttribute(yN,_N),h.setAttribute(`font-size`,`20`),h.setAttribute(`font-weight`,`600`),h.textContent=String(t.count),s.appendChild(h),s}function kN(e,t={}){let n=t.mode??`HISTOGRAM`,r=t.ariaLabel??`Participant rating distribution`;return n===`DONUT`?ON({stats:e,size:t.width??t.height??dN,margin:t.margin??pN,showCounts:t.showCounts??!0,binColor:t.binColor,ariaLabel:r}):TN({stats:e,width:t.width??lN,height:t.height??uN,margin:t.margin??fN,showAxis:t.showAxis??!0,showCounts:t.showCounts??!0,showMean:t.showMean??!0,binColor:t.binColor,ariaLabel:r})}var AN=`http://www.w3.org/2000/svg`,jN={top:36,right:16,bottom:28,left:56},MN=600,NN=260,PN=6,FN=8;function IN(e,t){let n=document.createElementNS(AN,`svg`);n.classList.add(`lc-svg`),e.appendChild(n);let r={container:e,svg:n,config:{...t},destroyed:!1};return LN(r),{element:n,update(e){r.destroyed||(r.config={...r.config,...e},LN(r))},destroy(){r.destroyed||(r.destroyed=!0,n.parentNode===e&&e.removeChild(n))}}}function LN(e){let{svg:t,container:n,config:r}=e,i={...jN,...r.margins||{}},a=n.clientWidth||MN,o=r.width??a,s=r.height??NN;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(AN,`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(AN,`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=iS(u,e=>e._dateValue),f=Math.max(3,(d[1].getTime()-d[0].getTime())/(1e3*60*60*24)*.04),p=new Date(d[0].getTime()-f*864e5),m=new Date(d[1].getTime()+f*864e5),h=Dj().domain([p,m]).range([0,c]),g=YO().domain([...r.rungs].reverse()).range([0,l]).padding(.5),_=document.createElementNS(AN,`g`);_.setAttribute(`transform`,`translate(${i.left},${i.top})`),t.appendChild(_);let v=document.createElementNS(AN,`g`);v.setAttribute(`class`,`lc-axis lc-axis-y`),_.appendChild(v),Lw(v).call(MS(g).tickSize(-c).tickPadding(8));let y=document.createElementNS(AN,`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(Lw(y).call(jS(h).ticks(r.xMaxTicks??FN).tickFormat(Sj(x))),r.showConnector!==!1&&u.length>1){let e=tM().x(e=>h(e._dateValue)).y(e=>g(r.rungs[e._rung])??0).curve(rM),t=document.createElementNS(AN,`path`);t.setAttribute(`class`,`lc-connector`),t.setAttribute(`d`,e(u)||``),r.connectorColor&&(t.style.stroke=r.connectorColor),_.appendChild(t)}let S=document.createElementNS(AN,`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??PN,a=document.createElementNS(AN,`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(AN,`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(AN,`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 RN=`right`,zN=`font-medium`;function BN({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===RN&&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`);V(t.onClick)&&(d.onclick=t.onClick),d.style.cssText=`margin-right: 1em`,d.innerHTML=t.label,u.appendChild(d);let f=document.createElement(`span`);V(t.onClick)&&(f.onclick=t.onClick),f.innerHTML=`
214
+ `,`2) content: () => element.cloneNode(true)`].join(` `))}var s=i.reduce(function(e,t){var n=t&&Em(t,r);return n&&e.push(n),e},[]);return Ip(e)?s[0]:s}Dm.defaultProps=um,Dm.setDefaultProps=fm,Dm.currentInput=qp,Object.assign({},Vd,{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)}}),Dm.setDefaultProps({render:Sm});var Om=`#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(`.`),km=`notes-toolbar-recent-colors`,Am=8;function jm(){try{return JSON.parse(localStorage.getItem(km)||`[]`)}catch{return[]}}function Mm(e){let t=jm().filter(t=>t!==e);t.unshift(e),t.length>Am&&(t=t.slice(0,Am)),localStorage.setItem(km,JSON.stringify(t))}function Nm(e={}){let t=document.createElement(`div`);return t.className=`notes-toolbar`,t.appendChild(Rm(e)),t.appendChild(zm(e)),t.appendChild(Bm(e)),t.appendChild(Wm(e)),t.appendChild(qm(e)),t.appendChild(Jm(e)),t.appendChild(Xm(e)),t}function Pm(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 Fm(e,t){let n=e.querySelector(`[data-action="heading"]`);n&&(n.value=t===!1?`0`:String(t))}function Im(){let e=document.createElement(`div`);return e.className=`notes-toolbar-group`,e}function Lm(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 Rm(e){let t=Im(),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?!1:t)}),t.appendChild(n),t}function zm(e){let t=Im();return t.appendChild(Lm(`bold`,`<b>B</b>`,`Bold`,e.onBold)),t.appendChild(Lm(`italic`,`<i>I</i>`,`Italic`,e.onItalic)),t.appendChild(Lm(`underline`,`<u>U</u>`,`Underline`,e.onUnderline)),t.appendChild(Lm(`strike`,`<s>S</s>`,`Strikethrough`,e.onStrike)),t}function Bm(e){let t=Im();return t.appendChild(Vm(`color`,`A`,`Text color`,`#000000`,t=>{Mm(t),e.onColor?.(t)})),t.appendChild(Vm(`background`,`A`,`Background color`,`#ffff00`,t=>{Mm(t),e.onBackground?.(t)})),t}function Vm(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}c=Dm(a,{content:Hm(r,e=>{s.style.backgroundColor=e,i(e),c?.destroy(),c=void 0}),theme:`light-border`,trigger:`manual`,interactive:!0,placement:`bottom-start`,onHidden:()=>{c?.destroy(),c=void 0}}),c.show()}),a}function Hm(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 Om)r.appendChild(Um(n,n===e,t));n.appendChild(r);let i=jm();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(Um(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 Um(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 Wm(e){let t=Im();return t.appendChild(Lm(`orderedList`,Gm(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(Lm(`bulletList`,Gm(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 Gm(e,t,n){return`<svg width="${e}" height="${t}" viewBox="0 0 ${e} ${t}" xmlns="http://www.w3.org/2000/svg">${n}</svg>`}var Km={alignLeft:Gm(16,16,`<path d="M1 2h14v2H1zm0 4h9v2H1zm0 4h14v2H1zm0 4h9v2H1z" fill="currentColor"/>`),alignCenter:Gm(16,16,`<path d="M1 2h14v2H1zm3.5 4h7v2h-7zM1 10h14v2H1zm3.5 4h7v2h-7z" fill="currentColor"/>`),alignRight:Gm(16,16,`<path d="M1 2h14v2H1zm6 4h8v2H7zM1 10h14v2H1zm6 4h8v2H7z" fill="currentColor"/>`),alignJustify:Gm(16,16,`<path d="M1 2h14v2H1zm0 4h14v2H1zm0 4h14v2H1zm0 4h14v2H1z" fill="currentColor"/>`)};function qm(e){let t=Im();return t.appendChild(Lm(`alignLeft`,Km.alignLeft,`Align left`,()=>e.onAlign?.(`left`))),t.appendChild(Lm(`alignCenter`,Km.alignCenter,`Align center`,()=>e.onAlign?.(`center`))),t.appendChild(Lm(`alignRight`,Km.alignRight,`Align right`,()=>e.onAlign?.(`right`))),t.appendChild(Lm(`alignJustify`,Km.alignJustify,`Justify`,()=>e.onAlign?.(`justify`))),t}function Jm(e){let t=Im();t.appendChild(Lm(`blockquote`,`“`,`Blockquote`,e.onBlockquote)),t.appendChild(Lm(`codeBlock`,`</>`,`Code block`,e.onCodeBlock));let n=Lm(`link`,`⇗`,`Insert link`);Ym(n,`Enter URL`,`https://`,t=>e.onLink?.(t)),t.appendChild(n);let r=Lm(`video`,`▷`,`Insert video`);return Ym(r,`YouTube URL`,`https://youtube.com/...`,t=>e.onVideo?.(t)),t.appendChild(r),t}function Ym(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=Dm(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 Xm(e){let t=Im();return t.appendChild(Lm(`clearFormatting`,`⊘`,`Clear formatting`,e.onClearFormatting)),t}function Zm(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=Nm({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){Pm(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})){Fm(l.toolbar,e);return}Fm(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 Qm(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}=gn(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 $m(e){return typeof e==`function`}var eh;function th(e){eh&&=(eh?.destroy(!0),void 0),e?.remove&&e.remove()}function nh(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;th();let l=document.createElement(`div`),u;return s||=i?.evt?.target,s&&(eh=Dm(s,{content:()=>(c=c?.filter(e=>!e.hide&&!e.disabled).map(e=>({...e,onClick:()=>{th(l),$m(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?eh.setContent(`IMPLEMENT SUB MENU`):$m(e.onClick)?(th(l),e.onClick()):$m(a)&&a&&(th(l),a(typeof e==`object`?{...e,coords:i}:e))}})),u=Qm(l,[{text:t,items:c},...r]).focusElement,l),theme:`light-border`,trigger:`click`,onShown:()=>{u&&setTimeout(()=>u?.focus(),0)},...o}),eh.show(),eh.setProps({interactive:!0})),eh}var Y=`court-line`;function X(e,t){let n=document.createElementNS(`http://www.w3.org/2000/svg`,e);for(let[e,r]of Object.entries(t))n.setAttribute(e,r);return n}function rh(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 ih(e){let t=rh(`0 0 360 780`,e);for(let e of[`M 0 0 L 360 0 L 360 780 L 0 780 Z`,`M 45 0 L 45 780`,`M 315 0 L 315 780`,`M 0 390 L 360 390`,`M 45 210 L 315 210`,`M 45 570 L 315 570`,`M 180 210 L 180 570`,`M 180 0 L 180 20`,`M 180 760 L 180 780`])t.appendChild(X(`path`,{d:e,class:Y}));return t}function ah(e){let t=rh(`0 0 500 470`,e),n=[X(`rect`,{x:`0`,y:`0`,width:`500`,height:`470`,class:Y}),X(`circle`,{cx:`250`,cy:`470`,r:`60`,class:Y}),X(`line`,{x1:`0`,y1:`470`,x2:`500`,y2:`470`,class:Y}),X(`rect`,{x:`170`,y:`0`,width:`160`,height:`190`,class:Y}),X(`circle`,{cx:`250`,cy:`190`,r:`60`,class:Y}),X(`line`,{x1:`220`,y1:`40`,x2:`280`,y2:`40`,class:Y}),X(`circle`,{cx:`250`,cy:`52`,r:`12`,class:Y}),X(`path`,{d:`M 30 0 L 30 90 A 220 220 0 0 0 470 90 L 470 0`,class:Y})];for(let e of n)t.appendChild(e);return t}function oh(e){let t=rh(`0 0 500 440`,e),n=[X(`path`,{d:`M 20 170 A 350 400 0 0 1 480 170`,class:Y}),X(`line`,{x1:`250`,y1:`400`,x2:`20`,y2:`170`,class:Y}),X(`line`,{x1:`250`,y1:`400`,x2:`480`,y2:`170`,class:Y}),X(`path`,{d:`M 250 400 L 314 336 L 250 273 L 186 336 Z`,class:Y}),X(`path`,{d:`M 340 355 A 100 100 0 0 1 160 355`,class:Y}),X(`line`,{x1:`340`,y1:`355`,x2:`265`,y2:`405`,class:Y}),X(`line`,{x1:`160`,y1:`355`,x2:`235`,y2:`405`,class:Y}),X(`path`,{d:`M 235 405 A 18 18 0 0 1 265 405`,class:Y}),X(`circle`,{cx:`250`,cy:`340`,r:`9`,class:Y}),X(`line`,{x1:`247`,y1:`339`,x2:`253`,y2:`339`,class:Y}),X(`path`,{d:`M 244 398 L 244 404 L 250 408 L 256 404 L 256 398 Z`,class:Y}),X(`rect`,{x:`310`,y:`332`,width:`8`,height:`8`,transform:`rotate(45 314 336)`,class:Y}),X(`rect`,{x:`246`,y:`269`,width:`8`,height:`8`,transform:`rotate(45 250 273)`,class:Y}),X(`rect`,{x:`182`,y:`332`,width:`8`,height:`8`,transform:`rotate(45 186 336)`,class:Y}),X(`rect`,{x:`230`,y:`393`,width:`8`,height:`18`,class:Y}),X(`rect`,{x:`262`,y:`393`,width:`8`,height:`18`,class:Y})];for(let e of n)t.appendChild(e);return t}function sh(e){let t=rh(`0 0 850 2000`,e),n=[X(`rect`,{x:`0`,y:`0`,width:`850`,height:`2000`,rx:`280`,ry:`280`,class:Y}),X(`line`,{x1:`0`,y1:`1000`,x2:`850`,y2:`1000`,class:Y}),X(`circle`,{cx:`425`,cy:`1000`,r:`60`,class:Y}),X(`line`,{x1:`0`,y1:`650`,x2:`850`,y2:`650`,class:Y}),X(`line`,{x1:`0`,y1:`1350`,x2:`850`,y2:`1350`,class:Y}),X(`line`,{x1:`140`,y1:`300`,x2:`710`,y2:`300`,class:Y}),X(`line`,{x1:`140`,y1:`1700`,x2:`710`,y2:`1700`,class:Y}),X(`path`,{d:`M 395 300 A 40 40 0 0 1 455 300`,class:Y}),X(`path`,{d:`M 395 1700 A 40 40 0 0 0 455 1700`,class:Y}),X(`circle`,{cx:`270`,cy:`650`,r:`50`,class:Y}),X(`circle`,{cx:`580`,cy:`650`,r:`50`,class:Y}),X(`circle`,{cx:`270`,cy:`1350`,r:`50`,class:Y}),X(`circle`,{cx:`580`,cy:`1350`,r:`50`,class:Y})];for(let e of n)t.appendChild(e);return t}function ch(e){let t=rh(`0 0 200 440`,e);for(let e of[`M 0 0 L 200 0 L 200 440 L 0 440 Z`,`M 0 220 L 200 220`,`M 0 150 L 200 150`,`M 0 290 L 200 290`,`M 100 0 L 100 150`,`M 100 290 L 100 440`])t.appendChild(X(`path`,{d:e,class:Y}));return t}function lh(e){let t=rh(`0 0 200 440`,e);for(let e of[`M 0 0 L 200 0 L 200 440 L 0 440 Z`,`M 18 0 L 18 440`,`M 182 0 L 182 440`,`M 0 220 L 200 220`,`M 0 146 L 200 146`,`M 0 294 L 200 294`,`M 0 30 L 200 30`,`M 0 410 L 200 410`,`M 100 146 L 100 220`,`M 100 220 L 100 294`])t.appendChild(X(`path`,{d:e,class:Y}));return t}function uh(e){let t=rh(`0 0 100 200`,e);for(let e of[`M 0 0 L 100 0 L 100 200 L 0 200 Z`,`M 0 100 L 100 100`,`M 0 69.5 L 100 69.5`,`M 0 130.5 L 100 130.5`,`M 50 69.5 L 50 67.5`,`M 50 130.5 L 50 132.5`])t.appendChild(X(`path`,{d:e,class:Y}));return t}var dh=`COURT_SVG`,fh={tennis:ih,basketball:ah,baseball:oh,hockey:sh,pickleball:ch,badminton:lh,padel:uh},ph={TENNIS:`tennis`,PADEL:`padel`,PICKLEBALL:`pickleball`,BADMINTON:`badminton`},mh={HAL:`basketball`,INN:`baseball`,PER:`hockey`};function hh(e){if(e){for(let[t,n]of Object.entries(mh))if(e.startsWith(t))return n;if(e.startsWith(`SET`)||e.startsWith(`T`))return e.includes(`@RALLY`)?`pickleball`:`tennis`}}function gh(e){let t=e?.competitionFormat?.sport;return t&&ph[t]?ph[t]:hh(e?.matchUpFormat)}function _h(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 vh(e,t=``){let n=e?fh[e]:void 0;if(n)return _h(n(t?`court--${e} ${t}`:`court--${e}`))}function yh(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 bh(e){if(!e)return;let t=yh(e);return t.length?t:void 0}function xh(e){let t=e?.find(Boolean);if(!t)return;let n=t.addresses?.find(Boolean);return n?bh(n)??t.venueName:t.venueName}function Sh(e){return e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`})}function Ch(e){return e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`,year:`numeric`})}function wh(e,t){if(!e&&!t)return;let n=e?new Date(e):null,r=t?new Date(t):null,i=!!n&&!Number.isNaN(n.getTime()),a=!!r&&!Number.isNaN(r.getTime());if(!(!i&&!a))return i&&a&&n.getTime()===r.getTime()?Ch(n):i&&a?n.getFullYear()===r.getFullYear()?`${Sh(n)} – ${Sh(r)}, ${r.getFullYear()}`:`${Ch(n)} – ${Ch(r)}`:Ch(i?n:r)}var Th=`URL`;function Eh(e,t){if(!Array.isArray(e))return;let n=e.find(e=>e?.name===t&&e?.resourceType===Th);return n?.url??n?.identifier}function Dh(e,t){if(Array.isArray(e))return e.find(e=>e?.resourceSubType===`COURT_SVG`&&(t?e?.name===t:!0))?.identifier}function Oh(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 kh={showImage:!0,cornerBadges:[`status`],body:[`title`,`tier`,`location`,`dateRange`],footer:[`feeBadge`,`playerCount`]};function Ah(e){return e?{showImage:e.showImage??kh.showImage,cornerBadges:e.cornerBadges??kh.cornerBadges,body:e.body??kh.body,footer:e.footer??kh.footer}:kh}var jh=()=>`chc-tc-card`,Mh=()=>`chc-tc-card--clickable`,Nh=()=>`chc-tc-card--offline`,Ph=()=>`chc-tc-image`,Fh=()=>`chc-tc-image-img`,Ih=()=>`chc-tc-image-svg`,Lh=()=>`chc-tc-image-placeholder`,Rh=()=>`chc-tc-corner-badges`,zh=()=>`chc-tc-status-pill`,Bh=()=>`chc-tc-offline-badge`,Vh=()=>`chc-tc-body`,Hh=()=>`chc-tc-title`,Uh=()=>`chc-tc-location`,Wh=()=>`chc-tc-date-range`,Gh=()=>`chc-tc-organizer`,Kh=()=>`chc-tc-updated-at`,qh=()=>`chc-tc-footer`,Jh=()=>`chc-tc-fee-badge`,Yh=()=>`chc-tc-player-count`,Xh=()=>`chc-tc-event-count`,Zh=()=>`chc-tc-tier-badge`,Qh=()=>`chc-tc-card chc-tc-skeleton`,$h=()=>`chc-tc-skeleton-line`,eg=()=>`chc-tc-skeleton-block`;function tg(e,t,n){let r=Ah(t),i=document.createElement(`div`);return i.className=jh(),i.dataset.tournamentId=e.tournamentId,e.offline&&i.classList.add(Nh()),n?.onClick&&(i.classList.add(Mh()),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(ng(e,r)),r.body.length&&i.appendChild(sg(e,r)),r.footer.length&&i.appendChild(hg(e,r)),i}function ng(e,t){let n=document.createElement(`div`);if(n.className=Ph(),e.tournamentImageURL){let t=document.createElement(`img`);t.className=Fh(),t.src=e.tournamentImageURL,t.alt=e.tournamentName||``,t.loading=`lazy`,t.addEventListener(`error`,()=>ig(n,e)),n.appendChild(t)}else rg(n,e);if(t.cornerBadges.length){let r=ag(e,t.cornerBadges);r&&n.appendChild(r)}return n}function rg(e,t){let n=vh(t.courtSvgSport,Ih());if(n){e.appendChild(n);return}let r=document.createElement(`div`);r.className=Lh(),e.appendChild(r)}function ig(e,t){e.querySelector(`.${Fh()}`)?.remove(),rg(e,t)}function ag(e,t){let n=[];for(let r of t){let t=og(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=Rh();for(let e of n)r.appendChild(e);return r}function og(e,t){if(e===`status`){if(!t.status)return null;let e=document.createElement(`div`);return e.className=zh(),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=Bh(),e.textContent=`Offline`,e}return null}function sg(e,t){let n=document.createElement(`div`);n.className=Vh();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 lg(t);case`tier`:return ug(t);case`location`:return dg(t);case`dateRange`:return fg(t);case`organizerName`:return pg(t);case`updatedAt`:return mg(t);default:return null}}function lg(e){if(!e.tournamentName)return null;let t=document.createElement(`div`);return t.className=Hh(),t.textContent=e.tournamentName,t.title=e.tournamentName,t}function ug(e){let t=e.tournamentTier?.value;if(!t)return null;let n=document.createElement(`div`);return n.className=Zh(),n.textContent=t,n.title=e.tournamentTier?.system?`${e.tournamentTier.system}: ${t}`:t,n}function dg(e){if(!e.location)return null;let t=document.createElement(`div`);return t.className=Uh(),t.textContent=e.location,t.title=e.location,t}function fg(e){if(!e.dateRangeFormatted)return null;let t=document.createElement(`div`);return t.className=Wh(),t.textContent=e.dateRangeFormatted,t}function pg(e){if(!e.organizerName)return null;let t=document.createElement(`div`);return t.className=Gh(),t.textContent=e.organizerName,t}function mg(e){if(!e.updatedAt)return null;let t=document.createElement(`div`);t.className=Kh();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 hg(e,t){let n=document.createElement(`div`);n.className=qh();for(let r of t.footer){let t=gg(r,e);t&&n.appendChild(t)}return n}function gg(e,t){switch(e){case`feeBadge`:return _g(t);case`playerCount`:return vg(t);case`eventCount`:return yg(t);default:return null}}function _g(e){if(!e.feeFormatted)return null;let t=document.createElement(`div`);return t.className=Jh(),t.textContent=e.feeFormatted,t}function vg(e){if(typeof e.participantCount!=`number`)return null;let t=document.createElement(`div`);return t.className=Yh(),t.textContent=`${e.participantCount} ${e.participantCount===1?`player`:`players`}`,t}function yg(e){if(typeof e.eventCount!=`number`)return null;let t=document.createElement(`div`);return t.className=Xh(),t.textContent=`${e.eventCount} ${e.eventCount===1?`event`:`events`}`,t}function bg(e){let t=Ah(e);return Oh({showImage:t.showImage!==!1,bodyLines:t.body.length,showFooter:t.footer.length>0,cardClass:Qh(),imageClass:Ph(),bodyClass:Vh(),footerClass:qh(),blockClass:eg(),lineClass:$h()})}var xg=/^(\d{4})-(\d{2})-(\d{2})/,Sg=1440*60*1e3;function Cg(e){if(!e)return null;let t=xg.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 wg(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 Tg(e,t){if(!t)return new Date(e.year,e.month-1,e.day+1);let n=wg(e,t),r=new Date(n.getTime()+Sg),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 wg({year:a(`year`),month:a(`month`),day:a(`day`)},t)}var Eg=10080*60*1e3;function Dg(e){if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t}function Og(e,t,n){return!t||!n?!1:t.getTime()<=e.getTime()&&e.getTime()<n.getTime()}function kg(e){return`Opens ${e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`})}`}function Ag(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=Cg(e.endDate),a=i?Tg(i,r):null;if(n===`COMPLETED`||a&&t.getTime()>=a.getTime())return{kind:`completed`,label:`Completed`};let o=Cg(e.startDate);if(Og(t,o?wg(o,r):null,a))return{kind:`live`,label:`Live`};let s=Dg(e.entriesClose);if(s){let e=s.getTime()-t.getTime();if(e>0&&e<=Eg)return{kind:`closing-soon`,label:`Closing Soon`}}let c=Dg(e.entriesOpen);return c&&c.getTime()>t.getTime()?{kind:`registration-opens`,label:kg(c)}:null}var jg=`USD`,Mg=`–`;function Ng(e,t){try{return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t}).format(e)}catch{return`$${e.toFixed(2)}`}}function Pg(e){let t=new Set;for(let n of e)t.add(n.currencyCode||jg);return[...t]}function Fg(e){return[...e].sort((e,t)=>e.amount-t.amount).find(Boolean)}function Ig(e){if(!e||e.length===0)return null;let t=e.filter(e=>typeof e.amount==`number`&&!Number.isNaN(e.amount));if(t.length===0)return null;if(t.length===1){let e=t[0],n=e.currencyCode||jg;return`${n} ${Ng(e.amount,n)}`}let n=Pg(t);if(n.length>1){let e=Fg(t);if(!e)return null;let n=e.currencyCode||jg;return`From ${n} ${Ng(e.amount,n)}`}let r=n[0],i=t.map(e=>e.amount).sort((e,t)=>e-t),a=i[0],o=i.at(-1)??a;return a===o?`${r} ${Ng(a,r)}`:`${r} ${Ng(a,r)} ${Mg} ${Ng(o,r)}`}var Lg=`tournamentImage`;function Rg(e){let t=e?.registrationProfile?.entryFees;return Array.isArray(t)?t.filter(e=>e&&typeof e.amount==`number`):[]}function zg(e){let t=e?.timeItems;if(Array.isArray(t))return t.find(e=>e?.itemType===`TMX`)?.itemValue?.offline}function Bg(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?Ag({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??Eh(n,Lg),c=e?.courtSvgSport??Dh(n);return{tournamentId:e?.tournamentId??``,tournamentName:e?.tournamentName??``,startDate:e?.startDate,endDate:e?.endDate,dateRangeFormatted:wh(e?.startDate,e?.endDate),location:xh(r),tournamentImageURL:s,courtSvgSport:c,participantCount:i.length||void 0,eventCount:a.length||void 0,organizerName:e?.tournamentOrganizers?.find?.(Boolean)?.organizerName,status:o,feeFormatted:Ig(Rg(e)),updatedAt:e?.updatedAt,offline:zg(e),tournamentTier:Vg(e)}}function Vg(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 Hg={showImage:!0,showMap:!0,cornerBadges:[`primaryBadge`],body:[`title`,`address`,`courtBreakdown`],footer:[`amenityRow`]};function Ug(e){return e?{showImage:e.showImage??Hg.showImage,showMap:e.showMap??Hg.showMap,cornerBadges:e.cornerBadges??Hg.cornerBadges,body:e.body??Hg.body,footer:e.footer??Hg.footer}:Hg}var Wg=()=>`chc-vc-card`,Gg=()=>`chc-vc-card--clickable`,Kg=()=>`chc-vc-image`,qg=()=>`chc-vc-image-img`,Jg=()=>`chc-vc-image-svg`,Yg=()=>`chc-vc-image-map`,Xg=()=>`chc-vc-image-placeholder`,Zg=()=>`chc-vc-corner-badges`,Qg=()=>`chc-vc-primary-badge`,$g=()=>`chc-vc-body`,e_=()=>`chc-vc-title`,t_=()=>`chc-vc-address`,n_=()=>`chc-vc-court-breakdown`,r_=()=>`chc-vc-footer`,i_=()=>`chc-vc-amenity-row`,a_=()=>`chc-vc-amenity`,o_=()=>`chc-vc-card chc-vc-skeleton`,s_=()=>`chc-vc-skeleton-line`,c_=()=>`chc-vc-skeleton-block`;function l_(e,t,n){let r=Ug(t),i=document.createElement(`div`);i.className=Wg(),i.dataset.venueId=e.venueId;let a=null;r.showImage!==!1&&(a=p_(e,r,()=>f()),i.appendChild(a));let o=r.body.length?x_(e,r):null;o&&i.appendChild(o);let s=r.footer.length?T_(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(Gg()),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(Gg()),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 u_(e){return typeof e.latitude==`number`&&typeof e.longitude==`number`}function d_(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=Yg(),a.src=i,a.loading=`lazy`,a.title=`Map of ${e.venueName}`,a}function f_(e,t){let n=vh(t.courtSvgSport,Jg());if(n){e.appendChild(n);return}let r=document.createElement(`div`);r.className=Xg(),e.appendChild(r)}function p_(e,t,n){let r=document.createElement(`div`);if(r.className=Kg(),e.venueImageURL){let i=document.createElement(`img`);i.className=qg(),i.src=e.venueImageURL,i.alt=e.venueName||``,i.loading=`lazy`,i.addEventListener(`error`,()=>{i.remove(),t.showMap!==!1&&u_(e)?r.appendChild(d_(e)):f_(r,e),n?.()}),r.appendChild(i)}else t.showMap!==!1&&u_(e)?r.appendChild(d_(e)):f_(r,e);if(t.cornerBadges.length){let n=h_(e,t.cornerBadges);n&&r.appendChild(n)}return r}function m_(e,t){if(e===`primaryBadge`){if(!t.isPrimary)return null;let e=document.createElement(`div`);return e.className=Qg(),e.textContent=`Primary`,e}return null}function h_(e,t){let n=[];for(let r of t){let t=m_(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=Zg();for(let e of n)r.appendChild(e);return r}function g_(e){if(!e.venueName)return null;let t=document.createElement(`div`);return t.className=e_(),t.textContent=e.venueName,t.title=e.notes?`${e.venueName}\n${e.notes}`:e.venueName,t}function __(e){if(!e.addressFormatted)return null;let t=document.createElement(`div`);return t.className=t_(),t.textContent=e.addressFormatted,t.title=e.addressFormatted,t}function v_(e){if(!e.courtBreakdown)return null;let t=document.createElement(`div`);return t.className=n_(),t.textContent=e.courtBreakdown,t}function y_(e){if(!e.venueAbbreviation)return null;let t=document.createElement(`div`);return t.className=n_(),t.textContent=e.venueAbbreviation,t}function b_(e,t){return e===`title`?g_(t):e===`address`?__(t):e===`courtBreakdown`?v_(t):e===`venueAbbreviation`?y_(t):null}function x_(e,t){let n=document.createElement(`div`);n.className=$g();for(let r of t.body){let t=b_(r,e);t&&n.appendChild(t)}return n}function S_(e){let t=document.createElement(`span`);return t.className=a_(),t.textContent=e,t}function C_(e){let t=[];if(typeof e.courtCount==`number`&&t.push(S_(`${e.courtCount} ${e.courtCount===1?`court`:`courts`}`)),e.indoorCount&&t.push(S_(`${e.indoorCount} indoor`)),e.outdoorCount&&t.push(S_(`${e.outdoorCount} outdoor`)),e.floodlitCount&&t.push(S_(`${e.floodlitCount} lit`)),!t.length)return null;let n=document.createElement(`div`);n.className=i_();for(let e of t)n.appendChild(e);return n}function w_(e,t){return e===`amenityRow`?C_(t):e===`address`?__(t):e===`courtBreakdown`?v_(t):null}function T_(e,t){let n=document.createElement(`div`);n.className=r_();for(let r of t.footer){let t=w_(r,e);t&&n.appendChild(t)}return n}function E_(e){let t=Ug(e);return Oh({showImage:t.showImage!==!1,bodyLines:t.body.length,showFooter:t.footer.length>0,cardClass:o_(),imageClass:Kg(),bodyClass:$g(),footerClass:r_(),blockClass:c_(),lineClass:s_()})}var D_=`venueImage`;function O_(e){let t=[];return e.indoorOutdoor&&t.push(e.indoorOutdoor.toLowerCase()),e.surfaceCategory&&t.push(e.surfaceCategory.toLowerCase()),t.length?t.join(` `):`court`}function k_(e){if(!e.length)return;let t=new Map;for(let n of e){let e=O_(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 A_(e,t){let n=0;for(let r of e)t(r)&&(n+=1);return n}function j_(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:bh(i),latitude:typeof i?.latitude==`number`?i.latitude:void 0,longitude:typeof i?.longitude==`number`?i.longitude:void 0,courtCount:n.length||void 0,courtBreakdown:k_(n),indoorCount:A_(n,e=>e.indoorOutdoor===`INDOOR`)||void 0,outdoorCount:A_(n,e=>e.indoorOutdoor===`OUTDOOR`)||void 0,floodlitCount:A_(n,e=>!!e.floodlit)||void 0,isPrimary:!!e?.isPrimary,venueImageURL:e?.venueImageURL??Eh(r,D_),courtSvgSport:e?.courtSvgSport??Dh(r)??t?.sport,notes:e?.notes}}var M_={showImage:!0,cornerBadges:[`indoorOutdoor`,`floodlit`],body:[`title`,`surface`],footer:[`amenityRow`]};function N_(e){return e?{showImage:e.showImage??M_.showImage,cornerBadges:e.cornerBadges??M_.cornerBadges,body:e.body??M_.body,footer:e.footer??M_.footer}:M_}var P_=()=>`chc-cc-card`,F_=()=>`chc-cc-card--clickable`,I_=()=>`chc-cc-image`,L_=()=>`chc-cc-image-svg`,R_=()=>`chc-cc-image-placeholder`,z_=()=>`chc-cc-corner-badges`,B_=()=>`chc-cc-indoor-badge`,V_=()=>`chc-cc-floodlit-badge`,H_=()=>`chc-cc-body`,U_=()=>`chc-cc-title`,W_=()=>`chc-cc-surface`,G_=()=>`chc-cc-availability`,K_=()=>`chc-cc-abbr`,q_=()=>`chc-cc-footer`,J_=()=>`chc-cc-amenity-row`,Y_=()=>`chc-cc-card chc-cc-skeleton`,X_=()=>`chc-cc-skeleton-line`,Z_=()=>`chc-cc-skeleton-block`;function Q_(e,t,n){let r=N_(t),i=document.createElement(`div`);return i.className=P_(),i.dataset.courtId=e.courtId,n?.onClick&&(i.classList.add(F_()),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(ev(e,r)),r.body.length&&i.appendChild(uv(e,r)),r.footer.length&&i.appendChild(pv(e,r)),i}function $_(e,t){let n=vh(t.courtSvgSport,L_());if(n){e.appendChild(n);return}let r=document.createElement(`div`);r.className=R_(),e.appendChild(r)}function ev(e,t){let n=document.createElement(`div`);if(n.className=I_(),e.surfaceCategory&&(n.dataset.surface=e.surfaceCategory),$_(n,e),t.cornerBadges.length){let r=iv(e,t.cornerBadges);r&&n.appendChild(r)}return n}function tv(e){if(!e.indoorOutdoor)return null;let t=document.createElement(`div`);return t.className=B_(),t.dataset.kind=e.indoorOutdoor,t.textContent=e.indoorOutdoor===`INDOOR`?`Indoor`:`Outdoor`,t}function nv(e){if(!e.floodlit)return null;let t=document.createElement(`div`);return t.className=V_(),t.textContent=`Lit`,t}function rv(e,t){return e===`indoorOutdoor`?tv(t):e===`floodlit`?nv(t):null}function iv(e,t){let n=[];for(let r of t){let t=rv(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=z_();for(let e of n)r.appendChild(e);return r}function av(e){if(!e.courtName)return null;let t=document.createElement(`div`);return t.className=U_(),t.textContent=e.courtName,t.title=e.notes?`${e.courtName}\n${e.notes}`:e.courtName,t}function ov(e){if(!e.surfaceLabel)return null;let t=document.createElement(`div`);return t.className=W_(),t.textContent=e.surfaceLabel,t}function sv(e){if(!e.availabilitySummary)return null;let t=document.createElement(`div`);return t.className=G_(),t.textContent=e.availabilitySummary,t}function cv(e){if(!e.courtAbbreviation)return null;let t=document.createElement(`div`);return t.className=K_(),t.textContent=e.courtAbbreviation,t}function lv(e,t){return e===`title`?av(t):e===`surface`?ov(t):e===`availability`?sv(t):e===`abbreviation`?cv(t):null}function uv(e,t){let n=document.createElement(`div`);n.className=H_();for(let r of t.body){let t=lv(r,e);t&&n.appendChild(t)}return n}function dv(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=J_(),n.textContent=t.join(` · `),n}function fv(e,t){return e===`amenityRow`?dv(t):e===`availability`?sv(t):e===`surface`?ov(t):null}function pv(e,t){let n=document.createElement(`div`);n.className=q_();for(let r of t.footer){let t=fv(r,e);t&&n.appendChild(t)}return n}function mv(e){let t=N_(e);return Oh({showImage:t.showImage!==!1,bodyLines:t.body.length,showFooter:t.footer.length>0,cardClass:Y_(),imageClass:I_(),bodyClass:H_(),footerClass:q_(),blockClass:Z_(),lineClass:X_()})}var hv=`INDOOR`,gv=`OUTDOOR`,_v=new Set([`HARD`,`CLAY`,`GRASS`,`ARTIFICIAL`,`CARPET`]);function vv(e){if(!e)return;let t=String(e).toUpperCase();if(t===hv)return hv;if(t===gv)return gv}function yv(e){let t=e?.surfaceCategory?String(e.surfaceCategory).toUpperCase():void 0;if(t&&_v.has(t))return t;let n=e?.surfaceType?String(e.surfaceType).toUpperCase():void 0;return n&&_v.has(n)?n:t}function bv(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 xv(e,t){let n=vv(e?.indoorOutdoor),r=yv(e);return{courtId:e?.courtId??``,courtName:e?.courtName??``,courtAbbreviation:e?.courtAbbreviation,surfaceLabel:bv(n,r),indoorOutdoor:n,surfaceCategory:r,floodlit:!!e?.floodlit,courtSvgSport:t?.sport,notes:e?.notes}}var Sv=()=>`chc-team-card`,Cv=()=>`chc-team-card--clickable`,wv=()=>`chc-team-card__title-row`,Tv=()=>`chc-team-card__name`,Ev=()=>`chc-team-card__nickname`,Dv=()=>`chc-team-card__counts`,Ov=` · `;function kv(e,t){let n=document.createElement(`div`);n.className=Sv(),e.teamId&&(n.dataset.teamId=e.teamId),t?.onClick&&(n.classList.add(Cv()),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(Av(e));let r=(e.countSegments??[]).map(e=>(e??``).trim()).filter(Boolean);return r.length&&n.appendChild(jv(r)),n}function Av(e){let t=document.createElement(`div`);t.className=wv();let n=document.createElement(`span`);if(n.className=Tv(),n.textContent=e.teamName,t.appendChild(n),e.nickname){let n=document.createElement(`span`);n.className=Ev(),n.textContent=`"${e.nickname}"`,t.appendChild(n)}return t}function jv(e){let t=document.createElement(`div`);return t.className=Dv(),t.textContent=e.join(Ov),t}var Mv=[`COMPETITIVE`,`ROUTINE`,`DECISIVE`,`WALKOVER`],Nv=new Set([`WALKOVER`,`DOUBLE_WALKOVER`,`DEFAULTED`,`DOUBLE_DEFAULT`]);function Pv(){return{COMPETITIVE:0,ROUTINE:0,DECISIVE:0,WALKOVER:0}}function Fv(e){let t=Pv();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&&Nv.has(e.matchUpStatus)){t.WALKOVER+=1;continue}let r=e.competitiveProfile?.competitiveness;r&&r!==`WALKOVER`&&Mv.includes(r)&&(t[r]+=1)}return t}function Iv(e){return Mv.reduce((t,n)=>t+e[n],0)}var Lv={COMPETITIVE:`Competitive`,ROUTINE:`Routine`,DECISIVE:`Decisive`,WALKOVER:`Walkover / Defaulted`};function Rv(){let e=document.createElement(`div`);e.className=`chc-cb`;let t={};for(let n of Mv){let r=document.createElement(`div`);r.className=`chc-cb__seg`,r.dataset.bucket=n,t[n]=r,e.appendChild(r)}return{element:e,update:n=>{let r=Iv(n);if(e.style.display=r>0?`flex`:`none`,r)for(let e of Mv){let r=t[e],i=n[e];i===0?(r.style.flex=`0 0 0`,r.style.padding=`0`,r.textContent=``,r.removeAttribute(`title`)):(r.style.flex=`${i} 1 0`,r.style.padding=`0 4px`,r.textContent=String(i),r.title=`${Lv[e]}: ${i}`)}}}}var zv={COMPETITIVE:`Competitive`,ROUTINE:`Routine`,DECISIVE:`Decisive`,WALKOVER:`Walkover / Defaulted`},Bv=`http://www.w3.org/2000/svg`,Vv=96,Hv=16,Uv=Vv/2,Wv=Uv-1,Gv=Wv-Hv;function Kv(e,t){return{x:Uv+t*Math.cos(e),y:Uv+t*Math.sin(e)}}function qv(e,t){let n=Kv(e,Wv),r=Kv(t,Wv),i=Kv(t,Gv),a=Kv(e,Gv),o=+(t-e>Math.PI);return[`M ${n.x} ${n.y}`,`A ${Wv} ${Wv} 0 ${o} 1 ${r.x} ${r.y}`,`L ${i.x} ${i.y}`,`A ${Gv} ${Gv} 0 ${o} 0 ${a.x} ${a.y}`,`Z`].join(` `)}function Jv(){let e=Kv(-Math.PI/2,Wv),t=Kv(Math.PI/2,Wv),n=Kv(-Math.PI/2,Gv),r=Kv(Math.PI/2,Gv);return[`M ${e.x} ${e.y}`,`A ${Wv} ${Wv} 0 1 1 ${t.x} ${t.y}`,`A ${Wv} ${Wv} 0 1 1 ${e.x} ${e.y}`,`L ${n.x} ${n.y}`,`A ${Gv} ${Gv} 0 1 0 ${r.x} ${r.y}`,`A ${Gv} ${Gv} 0 1 0 ${n.x} ${n.y}`,`Z`].join(` `)}function Yv(){let e=document.createElement(`div`);e.className=`chc-cd`;let t=document.createElementNS(Bv,`svg`);t.setAttribute(`viewBox`,`0 0 ${Vv} ${Vv}`),t.setAttribute(`class`,`chc-cd__svg`),t.setAttribute(`role`,`img`);let n={};for(let e of Mv){let r=document.createElementNS(Bv,`path`);r.setAttribute(`class`,`chc-cd__arc`),r.setAttribute(`data-bucket`,e),t.appendChild(r);let i=document.createElementNS(Bv,`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=Iv(i);if(e.style.display=a>0?`inline-flex`:`none`,!a)return;let o=Mv.filter(e=>i[e]>0),s=-Math.PI/2;for(let e of Mv){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`,Jv());else{let e=t/a,n=s+e*Math.PI*2;r.setAttribute(`d`,qv(s,n)),s=n}c&&(c.textContent=`${zv[e]}: ${t}`)}r.textContent=String(a),t.setAttribute(`aria-label`,`Competitiveness across ${a} matches`)}}}var Xv={cornerBadges:[`status`,`publishedBadge`,`embargoBadge`],body:[`title`,`drawTypeLabel`,`matchUpProgress`],footer:[`drawSize`,`entries`,`matchUpFormat`,`flightNumber`,`ratings`],showVisualization:!1};function Zv(e){return e?{cornerBadges:e.cornerBadges??Xv.cornerBadges,body:e.body??Xv.body,footer:e.footer??Xv.footer,showVisualization:e.showVisualization??Xv.showVisualization}:Xv}var Qv=()=>`chc-dc-card`,$v=()=>`chc-dc-card--clickable`,ey=()=>`chc-dc-corner-badges`,ty=()=>`chc-dc-status-pill`,ny=()=>`chc-dc-secondary-badge`,ry=()=>`chc-dc-body`,iy=()=>`chc-dc-viz`,ay=()=>`chc-dc-title-row`,oy=()=>`chc-dc-title`,sy=()=>`chc-dc-draw-type`,cy=()=>`chc-dc-meta`,ly=()=>`chc-dc-footer`,uy=()=>`chc-dc-chip`,dy=()=>`chc-dc-progress`,fy=()=>`chc-dc-progress-bar`,py=()=>`chc-dc-progress-fill`,my=()=>`chc-dc-card chc-dc-skeleton`,hy=()=>`chc-dc-skeleton-line`;function gy(e,t,n){let r=Zv(t),i=document.createElement(`div`);if(i.className=Qv(),i.dataset.drawId=e.drawId,e.eventId&&(i.dataset.eventId=e.eventId),n?.onClick&&(i.classList.add($v()),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=iy(),t.appendChild(e.visualization),i.appendChild(t)}return(r.body.length||r.cornerBadges.length)&&i.appendChild(Ny(e,r)),r.footer.length&&i.appendChild(Py(e,r)),i}function _y(e){if(!e.status)return null;let t=document.createElement(`div`);return t.className=ty(),t.dataset.kind=e.status.kind,t.textContent=e.status.label,t}function vy(e){if(!e.published)return null;let t=document.createElement(`div`);return t.className=ny(),t.dataset.kind=`published`,t.textContent=`Published`,t}function yy(e){if(!e.embargoActive)return null;let t=document.createElement(`div`);return t.className=ny(),t.dataset.kind=`embargo`,t.textContent=`Embargo`,t}function by(e,t){return e===`status`?_y(t):e===`publishedBadge`?vy(t):e===`embargoBadge`?yy(t):null}function xy(e,t){let n=[];for(let r of t){let t=by(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=ey();for(let e of n)r.appendChild(e);return r}function Sy(e){if(!e.drawName)return null;let t=document.createElement(`div`);return t.className=oy(),t.textContent=e.drawName,t.title=e.drawName,t}function Cy(e){if(!e.drawTypeLabel)return null;let t=document.createElement(`div`);return t.className=sy(),t.textContent=e.drawTypeLabel,t}function wy(e){let t=document.createElement(`span`);return t.className=uy(),t.textContent=e,t}function Ty(e){return typeof e.drawSize==`number`?wy(`Size ${e.drawSize}`):null}function Ey(e){return typeof e.entryCount==`number`?wy(`${e.entryCount} ${e.entryCount===1?`entry`:`entries`}`):null}function Dy(e){return e.matchUpFormat?wy(e.matchUpFormat):null}function Oy(e){return typeof e.flightNumber==`number`?wy(`Flight ${e.flightNumber}`):null}function ky(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=cy(),n.textContent=t.join(` · `),n}function Ay(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=dy();let a=document.createElement(`div`);a.className=cy(),a.textContent=`${n}/${t} matches · ${r}%`,i.appendChild(a);let o=document.createElement(`div`);o.className=fy();let s=document.createElement(`div`);return s.className=py(),s.style.right=`${100-r}%`,o.appendChild(s),i.appendChild(o),i}function jy(e,t){return e===`title`?Sy(t):e===`drawTypeLabel`?Cy(t):e===`drawSize`?Ty(t):e===`entries`?Ey(t):e===`matchUpFormat`?Dy(t):e===`flightNumber`?Oy(t):e===`ratings`?ky(t):e===`matchUpProgress`?Ay(t):null}function My(e,t){let n=document.createElement(`div`);n.className=ay();let r=Sy(e);r&&n.appendChild(r);let i=xy(e,t);return i&&n.appendChild(i),n}function Ny(e,t){let n=document.createElement(`div`);n.className=ry();let r=t.body.includes(`title`),i=t.cornerBadges.length>0;if(i&&!r){let r=xy(e,t.cornerBadges);r&&n.appendChild(r)}for(let r of t.body){if(r===`title`&&i){n.appendChild(My(e,t.cornerBadges));continue}let a=jy(r,e);a&&n.appendChild(a)}return n}function Py(e,t){let n=document.createElement(`div`);n.className=ly();for(let r of t.footer){let t=jy(r,e);t&&n.appendChild(t)}return n}function Fy(){let e=document.createElement(`div`);e.className=my();let t=document.createElement(`div`);t.className=ry();for(let e of[`70%`,`40%`,`85%`]){let n=document.createElement(`div`);n.className=hy(),n.style.width=e,t.appendChild(n)}return e.appendChild(t),e}var Iy={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 Ly(e){if(e)return Iy[e]?Iy[e]:e.toLowerCase().split(`_`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function Ry(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 zy(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 By(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 Vy(e,t){let n=Array.isArray(e?.structures)&&e.structures.length>0,r=t?.matchUpStats??(t?.lightMode||!n?void 0:Ry(e)),i=e?.drawStatus===`CANCELLED`,a=t?.statusOverride===void 0?By({generated:n,cancelled:i,matchUpCounts:r}):t.statusOverride;return{drawId:e?.drawId??``,drawName:e?.drawName??``,drawType:e?.drawType,drawTypeLabel:Ly(e?.drawType),drawSize:zy(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 Hy={showImage:!0,cornerBadges:[`status`,`eventTypeBadge`],body:[`title`,`categoryLabel`,`drawSummary`],footer:[`playerCount`,`matchUpProgress`]},Uy=15;function Wy(e){return e?{showImage:e.showImage??Hy.showImage,cornerBadges:e.cornerBadges??Hy.cornerBadges,body:e.body??Hy.body,footer:e.footer??Hy.footer}:Hy}var Gy=()=>`chc-ec-card`,Ky=()=>`chc-ec-card--clickable`,qy=()=>`chc-ec-image`,Jy=()=>`chc-ec-image-img`,Yy=()=>`chc-ec-image-svg`,Xy=()=>`chc-ec-image-placeholder`,Zy=()=>`chc-ec-corner-badges`,Qy=()=>`chc-ec-status-pill`,$y=()=>`chc-ec-eventtype-badge`,eb=()=>`chc-ec-gender-badge`,tb=()=>`chc-ec-body`,nb=()=>`chc-ec-title`,rb=()=>`chc-ec-category`,ib=()=>`chc-ec-draw-summary`,ab=()=>`chc-ec-date-range`,ob=()=>`chc-ec-footer`,sb=()=>`chc-ec-player-count`,cb=()=>`chc-ec-progress`,lb=()=>`chc-ec-progress-meta`,ub=()=>`chc-ec-progress-bar`,db=()=>`chc-ec-progress-fill`,fb=()=>`chc-ec-updated-at`,pb=()=>`chc-ec-card chc-ec-skeleton`,mb=()=>`chc-ec-skeleton-line`,hb=()=>`chc-ec-skeleton-block`;function gb(e,t,n){let r=Wy(t),i=document.createElement(`div`);return i.className=Gy(),i.dataset.eventId=e.eventId,n?.onClick&&(i.classList.add(Ky()),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(vb(e,r)),r.body.length&&i.appendChild(Mb(e,r)),r.footer.length&&i.appendChild(Nb(e,r)),i}function _b(e,t){let n=vh(t.courtSvgSport,Yy());if(n){e.appendChild(n);return}let r=document.createElement(`div`);r.className=Xy(),e.appendChild(r)}function vb(e,t){let n=document.createElement(`div`);if(n.className=qy(),e.eventImageURL){let t=document.createElement(`img`);t.className=Jy(),t.src=e.eventImageURL,t.alt=e.eventName||``,t.loading=`lazy`,t.addEventListener(`error`,()=>{t.remove(),_b(n,e)}),n.appendChild(t)}else _b(n,e);if(t.cornerBadges.length){let r=Cb(e,t.cornerBadges);r&&n.appendChild(r)}return n}function yb(e){if(!e.status)return null;let t=document.createElement(`div`);return t.className=Qy(),t.dataset.kind=e.status.kind,t.textContent=e.status.label,t}function bb(e){if(!e.eventType)return null;let t=document.createElement(`div`);return t.className=$y(),t.dataset.kind=e.eventType,t.textContent=e.eventType,t}function xb(e){if(!e.gender)return null;let t=document.createElement(`div`);return t.className=eb(),t.dataset.kind=e.gender,t.textContent=e.gender===`MALE`?`M`:e.gender===`FEMALE`?`W`:`X`,t}function Sb(e,t){return e===`status`?yb(t):e===`eventTypeBadge`?bb(t):e===`genderBadge`?xb(t):null}function Cb(e,t){let n=[];for(let r of t){let t=Sb(r,e);t&&n.push(t)}if(!n.length)return null;let r=document.createElement(`div`);r.className=Zy();for(let e of n)r.appendChild(e);return r}function wb(e){if(!e.eventName)return null;let t=document.createElement(`div`);return t.className=nb(),t.textContent=e.eventName,t.title=e.eventName,t}function Tb(e){if(!e.categoryLabel)return null;let t=document.createElement(`div`);return t.className=rb(),t.textContent=e.categoryLabel,t}function Eb(e){if(!e.drawSummary)return null;let t=document.createElement(`div`);return t.className=ib(),t.textContent=e.drawSummary,t}function Db(e){if(!e.dateRangeFormatted)return null;let t=document.createElement(`div`);return t.className=ab(),t.textContent=e.dateRangeFormatted,t}function Ob(e){if(!e.updatedAt)return null;let t=document.createElement(`div`);t.className=fb();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 kb(e){if(typeof e.entryCount!=`number`)return null;let t=document.createElement(`div`);return t.className=sb(),t.textContent=`${e.entryCount} ${e.entryCount===1?`player`:`players`}`,t}function Ab(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=cb();let a=document.createElement(`div`);a.className=lb(),a.textContent=`${n}/${t} matches · ${r}%`,i.appendChild(a);let o=document.createElement(`div`);o.className=ub();let s=document.createElement(`div`);return s.className=db(),s.style.right=`${100-r}%`,o.appendChild(s),i.appendChild(o),i}function jb(e,t){return e===`title`?wb(t):e===`categoryLabel`?Tb(t):e===`drawSummary`?Eb(t):e===`dateRange`?Db(t):e===`updatedAt`?Ob(t):e===`playerCount`?kb(t):e===`matchUpProgress`?Ab(t):null}function Mb(e,t){let n=document.createElement(`div`);n.className=tb();for(let r of t.body){let t=jb(r,e);t&&n.appendChild(t)}return n}function Nb(e,t){let n=document.createElement(`div`);n.className=ob();for(let r of t.footer){let t=jb(r,e);t&&n.appendChild(t)}return n}function Pb(e){let t=Wy(e);return Oh({showImage:t.showImage!==!1,bodyLines:t.body.length,showFooter:t.footer.length>0,cardClass:pb(),imageClass:qy(),bodyClass:tb(),footerClass:ob(),blockClass:hb(),lineClass:mb()})}function Fb(e){if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t}function Ib(e,t,n){return!t||!n?!1:t.getTime()<=e.getTime()&&e.getTime()<=n.getTime()}function Lb(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=Fb(e.startDate),i=Fb(e.endDate);if(n&&(n.inProgress>0||Ib(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 Rb=`eventImage`,zb=`DRAFT_STATE`;function Bb(e){if(!e)return;let t=String(e).toUpperCase();if(t===`SINGLES`||t===`DOUBLES`||t===`TEAM`||t===`HYBRID`)return t}function Vb(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 Hb(e){if(!e)return;let t=Ub(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=Ub(e.ageCategoryCode);if(n)return n;if(e.ratingMin&&e.ratingMax)return`Rating ${e.ratingMin}–${e.ratingMax}`}function Ub(e){if(typeof e!=`string`)return;let t=e.trim();if(t&&!/^[-—–_]+$/.test(t))return t}function Wb(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 Gb(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 Kb(e){if(e?.draftState!=null)return!0;let t=e?.extensions;return Array.isArray(t)?t.some(e=>e?.name===zb):!1}function qb(e){return e.some(e=>e?.automated?.seedsOnly===!0||Kb(e))}function Jb(e){return e.length===0?!1:e.every(e=>e?.drawStatus===`CANCELLED`)}var Yb=new Set([`DIRECT_ACCEPTANCE`,`DA`,`DIRECT_CONFIRMED`,`DC`,`ACCEPTED`,`A`,`ENTERED`,`PE`,`QUALIFIER`,`Q`,`WILDCARD`,`WC`]);function Xb(e){if(!e.length)return 0;let t=0;for(let n of e)Yb.has(String(n?.entryStatus))&&(t+=1);return t}function Zb(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:Gb(e)),o=t?.statusOverride===void 0?Lb({allDrawsCancelled:Jb(n),drawCount:n.length,entryCount:Xb(r),startDate:e?.startDate,endDate:e?.endDate,matchUpCounts:a,hasDraftState:n.some(Kb),hasSeedsOnlyDraw:qb(n)},t?.now):t.statusOverride;return{eventId:e?.eventId??``,eventName:e?.eventName??``,eventAbbreviation:e?.eventAbbreviation,categoryLabel:Hb(e?.category),eventType:Bb(e?.eventType),gender:Vb(e?.gender),drawCount:n.length||void 0,drawSummary:Wb(n),entryCount:Xb(r)||void 0,matchUpCounts:a,startDate:e?.startDate,endDate:e?.endDate,dateRangeFormatted:wh(e?.startDate,e?.endDate),status:o,eventImageURL:e?.eventImageURL??Eh(i,Rb),courtSvgSport:e?.courtSvgSport??Dh(i)??t?.sport,updatedAt:e?.updatedAt}}var Qb=()=>`chc-hil-container`,$b=()=>`chc-hil-form`,ex=()=>`chc-hil-header`,tx=()=>`chc-hil-title`,nx=()=>`chc-hil-tabs`,rx=()=>`chc-hil-tab`,ix=()=>`chc-hil-tab--active`,ax=()=>`chc-hil-field`,ox=()=>`chc-hil-label`,sx=()=>`chc-hil-input`,cx=()=>`chc-hil-row`,lx=()=>`chc-hil-submit`,ux=()=>`chc-hil-message`,dx=()=>`chc-hil-message--error`,fx=()=>`chc-hil-message--success`,px=()=>`chc-hil-switch-mode`;function mx(e){return e.replace(/\/+$/,``)}async function hx(e,t,n,r=fetch){let i=mx(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 gx(e,t,n){return hx(e,`/auth/hiveid/signup`,t,n)}function _x(e,t,n){return hx(e,`/auth/hiveid/verify-existing`,t,n)}function vx(e,t,n){return hx(e,`/auth/hiveid/magic-link`,t,n)}function yx(e,t,n){return hx(e,`/auth/hiveid/magic-link/consume`,t,n)}function bx(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 xx=`signup`,Sx=`login`,Cx=`magic-link`,wx=[xx,Sx,Cx],Tx=`hiveid:authenticated`,Ex={[xx]:`Sign up`,[Sx]:`Log in`,[Cx]:`Email link`},Dx={[xx]:`Create your CourtHive identity`,[Sx]:`Log in to CourtHive`,[Cx]:`Email me a sign-in link`};function Ox(e){if(!e?.cfsBaseUrl)throw Error(`buildHiveIDLogin: cfsBaseUrl is required`);let t=e.mode??`signup`,n=!1,r=document.createElement(`div`);r.className=Qb(),r.dataset.hiveidLogin=`true`;let i=document.createElement(`div`);i.className=ex();let a=document.createElement(`h2`);a.className=tx(),i.appendChild(a);let o=document.createElement(`div`);o.className=nx(),i.appendChild(o);let s={};wx.forEach(e=>{let t=document.createElement(`button`);t.type=`button`,t.className=rx(),t.textContent=Ex[e],t.dataset.mode=e,t.onclick=()=>S(e),o.appendChild(t),s[e]=t}),r.appendChild(i);let c=document.createElement(`form`);c.className=$b(),c.noValidate=!0,r.appendChild(c);let l=document.createElement(`div`);l.className=ux(),l.hidden=!0,r.appendChild(l);function u(e,t=`info`){l.textContent=e,l.className=ux(),t===`error`&&l.classList.add(dx()),t===`success`&&l.classList.add(fx()),l.hidden=!e}function d(){u(``)}function f(e,t,n=`text`,r=``){let i=document.createElement(`div`);i.className=ax();let a=document.createElement(`label`);a.className=ox(),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=sx(),o.required=!0,i.appendChild(a),i.appendChild(o),c.appendChild(i),o}function p(){let e=document.createElement(`div`);return e.className=cx(),c.appendChild(e),e}function m(e){let t=document.createElement(`button`);return t.type=`submit`,t.className=lx(),t.textContent=e,c.appendChild(t),t}function h(e,t,n){let r=document.createElement(`div`);r.className=px();let i=document.createElement(`button`);i.type=`button`,i.textContent=n,i.onclick=()=>S(t),r.append(e+` `,i),c.appendChild(r)}function g(e){r.dispatchEvent(new CustomEvent(Tx,{detail:e,bubbles:!0}))}function _(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 v(t,n,r){let i=t.value.trim(),a=n.value.trim(),o=r.value.trim();if(!i||!a||!o){u(`Email, first name, and last name are required.`,`error`);return}try{let t=await gx(e.cfsBaseUrl,{email:i,firstName:a,lastName:o,federationIds:e.federationIds},e.fetchImpl);if(t.status===`candidate`){u(`We found possible matches — please log in with your existing account.`,`info`),S(`login`);return}g({token:t.token,refreshToken:t.refreshToken,personId:t.personId,cached:t.cached}),u(`Welcome to CourtHive.`,`success`)}catch(e){if(bx(e)){u(`That email already has a CourtHive account — please verify your password.`,`info`),S(`login`);return}u(jx(e)??`Sign-up failed. Please try again.`,`error`)}}async function y(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 _x(e.cfsBaseUrl,{email:r,password:i},e.fetchImpl);g({token:t.token,refreshToken:t.refreshToken,personId:t.personId,cached:t.cached??Ax()}),u(`Signed in.`,`success`)}catch(e){u(jx(e)??`Sign-in failed. Please check your password.`,`error`)}}async function b(t){let n=t.value.trim();if(!n){u(`Email is required.`,`error`);return}try{await vx(e.cfsBaseUrl,{email:n},e.fetchImpl),u(`If ${n} is registered, a sign-in link is on its way.`,`success`)}catch(e){u(jx(e)??`Could not send link. Please try again.`,`error`)}}function x(){if(c.replaceChildren(),a.textContent=Dx[t],wx.forEach(e=>{s[e].classList.toggle(ix(),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=sx();let r=document.createElement(`input`);r.id=`chc-hil-lastName`,r.type=`text`,r.placeholder=`Last name`,r.required=!0,r.className=sx();let i=document.createElement(`div`);i.className=ax();let a=document.createElement(`label`);a.textContent=`First name`,a.className=ox(),a.htmlFor=n.id,i.append(a,n);let o=document.createElement(`div`);o.className=ax();let s=document.createElement(`label`);s.textContent=`Last name`,s.className=ox(),s.htmlFor=r.id,o.append(s,r),t.append(i,o);let l=f(`email`,`Email`,`email`,e.defaultEmail??``);c.onsubmit=_(m(`Create account`),()=>v(l,n,r)),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`);c.onsubmit=_(m(`Log in`),()=>y(t,n)),h(`Forgot your password?`,`magic-link`,`Email me a link`)}else{let t=f(`email`,`Email`,`email`,e.defaultEmail??``);c.onsubmit=_(m(`Send link`),()=>b(t)),h(`Have a password?`,`login`,`Log in instead`)}}function S(e){e!==t&&(t=e,d(),x())}function C(){return t}function w(e){let t=t=>e(t.detail);return r.addEventListener(Tx,t),()=>r.removeEventListener(Tx,t)}return x(),{root:r,setMode:S,getMode:C,onAuthenticated:w}}async function kx(e,t,n){let r=await yx(e,{code:t},n);return{token:r.token,refreshToken:r.refreshToken,personId:r.personId,cached:r.cached??Ax()}}function Ax(){return{standardFamilyName:null,standardGivenName:null,birthDate:null,sex:null,nationalityCode:null}}function jx(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 Mx={name:`courthive-components`,packageManager:`pnpm@11.9.0`,version:`3.4.6`,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:`vite build`,prepublishOnly:`npm run 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:`npm run build-storybook`,prebuild:`rm -rf dist/*`,lint:`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.1.0`,"@commitlint/config-conventional":`21.1.0`,"@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/vanillajs-datepicker":`^1.3.5`,"@typescript-eslint/eslint-plugin":`8.62.0`,"@typescript-eslint/parser":`8.62.0`,"@vitest/browser-playwright":`^4.0.16`,"@vitest/coverage-v8":`^4.0.16`,"@vitest/ui":`^4.0.16`,eslint:`10.6.0`,"eslint-plugin-sonarjs":`4.1.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`,"lint-staged":`17.0.8`,playwright:`^1.57.0`,prettier:`^3.8.1`,semver:`7.8.5`,storybook:`^10.2.17`,"tabulator-tables":`6.5.2`,typescript:`^6.0.2`,vite:`8.1.0`,"vite-plugin-dts":`^5.0.0`,vitest:`^4.0.16`},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.21`,"focus-trap":`^8.0.0`,"timepicker-ui":`^4.1.2`,"tippy.js":`6.3.7`,"tods-competition-factory":`5.9.0`,"vanillajs-datepicker":`1.3.4`}};function Nx(){return Mx.version}var Px={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 Fx(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&&V(i.onClick)&&i.onClick(),n&&V(n)&&n()},e.appendChild(t)}return{elements:r}}var Ix=(e,t)=>n=>n?.trim().length>=e&&(!t||n?.trim().length<=t);function Lx(e){return t.tools.isConvertableInteger(e)&&parseInt(e.toString())>=0}var Rx=(e,t)=>n=>Lx(n)&&Number(n)>=e&&Number(n)<=t,zx=e=>/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?\d)(?=.*?[#?!@$%^&*-]).{8,12}$/.test(e);function Bx(e){return t.tools.dateTime.dateValidation.test(e)}var Vx=(e,t)=>n=>{let r=(n||``).trim().split(` `).length;return r>=e&&(!t||r<=t)},Hx=/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i,Ux=e=>Hx.exec(e),Wx=_({dateValidator:()=>Bx,emailValidator:()=>Ux,nameValidator:()=>Ix,numericRange:()=>Rx,numericValidator:()=>Lx,passwordValidator:()=>zx,wordValidator:()=>Vx}),Gx=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}}},Kx=`<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>`,qx=new WeakMap;function Jx(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=Kx,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),qx.set(n,i),n.appendChild(r),n}function Yx(e){qx.get(e)?.()}function Xx(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function Zx(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Qx(e){let t,n,r;e.length===2?(t=e===Xx||e===Zx?e:$x,n=e,r=e):(t=Xx,n=(t,n)=>Xx(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 $x(){return 0}function eS(e){return e===null?NaN:+e}var tS=Qx(Xx),nS=tS.right;tS.left,Qx(eS).center;function rS(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 iS=class extends Map{constructor(e,t=cS){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(aS(this,e))}has(e){return super.has(aS(this,e))}set(e,t){return super.set(oS(this,e),t)}delete(e){return super.delete(sS(this,e))}};function aS({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):n}function oS({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function sS({_intern:e,_key:t},n){let r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function cS(e){return typeof e==`object`&&e?e.valueOf():e}var lS=Math.sqrt(50),uS=Math.sqrt(10),dS=Math.sqrt(2);function fS(e,t,n){let r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/10**i,o=a>=lS?10:a>=uS?5:a>=dS?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?fS(e,t,n*2):[s,c,l]}function pS(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?fS(t,e,n):fS(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 mS(e,t,n){return t=+t,e=+e,n=+n,fS(e,t,n)[2]}function hS(e,t,n){t=+t,e=+e,n=+n;let r=t<e,i=r?mS(t,e,n):mS(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}function gS(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 _S(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 vS(e){return e}var yS=1,bS=2,xS=3,SS=4,CS=1e-6;function wS(e){return`translate(`+e+`,0)`}function TS(e){return`translate(0,`+e+`)`}function ES(e){return t=>+e(t)}function DS(e,t){return t=Math.max(0,e.bandwidth()-t*2)/2,e.round()&&(t=Math.round(t)),n=>+e(n)+t}function OS(){return!this.__axis}function kS(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===yS||e===SS?-1:1,u=e===SS||e===bS?`x`:`y`,d=e===yS||e===xS?wS:TS;function f(f){var p=r??(t.ticks?t.ticks.apply(t,n):t.domain()),m=i??(t.tickFormat?t.tickFormat.apply(t,n):vS),h=Math.max(a,0)+s,g=t.range(),_=+g[0]+c,v=+g[g.length-1]+c,y=(t.bandwidth?DS:ES)(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===yS?`0em`:e===xS?`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`,CS).attr(`transform`,function(e){return isFinite(e=y(e))?d(e+c):this.getAttribute(`transform`)}),w.attr(`opacity`,CS).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===SS||e===bS?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(OS).attr(`fill`,`none`).attr(`font-size`,10).attr(`font-family`,`sans-serif`).attr(`text-anchor`,e===bS?`start`:e===SS?`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 AS(e){return kS(xS,e)}function jS(e){return kS(SS,e)}var MS={value:()=>{}};function NS(){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 PS(n)}function PS(e){this._=e}function FS(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}})}PS.prototype=NS.prototype={constructor:PS,on:function(e,t){var n=this._,r=FS(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=IS(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]=LS(n[i],e.name,t);else if(t==null)for(i in n)n[i]=LS(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 PS(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 IS(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function LS(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=MS,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var RS={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 zS(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),RS.hasOwnProperty(t)?{space:RS[t],local:e}:e}function BS(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 VS(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function HS(e){var t=zS(e);return(t.local?VS:BS)(t)}function US(){}function WS(e){return e==null?US:function(){return this.querySelector(e)}}function GS(e){typeof e!=`function`&&(e=WS(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 Nw(r,this._parents)}function KS(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function qS(){return[]}function JS(e){return e==null?qS:function(){return this.querySelectorAll(e)}}function YS(e){return function(){return KS(e.apply(this,arguments))}}function XS(e){e=typeof e==`function`?YS(e):JS(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 Nw(r,i)}function ZS(e){return function(){return this.matches(e)}}function QS(e){return function(t){return t.matches(e)}}var $S=Array.prototype.find;function eC(e){return function(){return $S.call(this.children,e)}}function tC(){return this.firstElementChild}function nC(e){return this.select(e==null?tC:eC(typeof e==`function`?e:QS(e)))}var rC=Array.prototype.filter;function iC(){return Array.from(this.children)}function aC(e){return function(){return rC.call(this.children,e)}}function oC(e){return this.selectAll(e==null?iC:aC(typeof e==`function`?e:QS(e)))}function sC(e){typeof e!=`function`&&(e=ZS(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 Nw(r,this._parents)}function cC(e){return Array(e.length)}function lC(){return new Nw(this._enter||this._groups.map(cC),this._parents)}function uC(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}uC.prototype={constructor:uC,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 dC(e){return function(){return e}}function fC(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 uC(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function pC(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 uC(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function mC(e){return e.__data__}function hC(e,t){if(!arguments.length)return Array.from(this,mC);var n=t?pC:fC,r=this._parents,i=this._groups;typeof e!=`function`&&(e=dC(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=gC(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 Nw(o,r),o._enter=s,o._exit=c,o}function gC(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function _C(){return new Nw(this._exit||this._groups.map(cC),this._parents)}function vC(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 yC(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 Nw(s,this._parents)}function bC(){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 xC(e){e||=SC;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 Nw(i,this._parents).order()}function SC(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function CC(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function wC(){return Array.from(this)}function TC(){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 EC(){let e=0;for(let t of this)++e;return e}function DC(){return!this.node()}function OC(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 kC(e){return function(){this.removeAttribute(e)}}function AC(e){return function(){this.removeAttributeNS(e.space,e.local)}}function jC(e,t){return function(){this.setAttribute(e,t)}}function MC(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function NC(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function PC(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 FC(e,t){var n=zS(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?AC:kC:typeof t==`function`?n.local?PC:NC:n.local?MC:jC)(n,t))}function IC(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function LC(e){return function(){this.style.removeProperty(e)}}function RC(e,t,n){return function(){this.style.setProperty(e,t,n)}}function zC(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function BC(e,t,n){return arguments.length>1?this.each((t==null?LC:typeof t==`function`?zC:RC)(e,t,n??``)):VC(this.node(),e)}function VC(e,t){return e.style.getPropertyValue(t)||IC(e).getComputedStyle(e,null).getPropertyValue(t)}function HC(e){return function(){delete this[e]}}function UC(e,t){return function(){this[e]=t}}function WC(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function GC(e,t){return arguments.length>1?this.each((t==null?HC:typeof t==`function`?WC:UC)(e,t)):this.node()[e]}function KC(e){return e.trim().split(/^|\s+/)}function qC(e){return e.classList||new JC(e)}function JC(e){this._node=e,this._names=KC(e.getAttribute(`class`)||``)}JC.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 YC(e,t){for(var n=qC(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function XC(e,t){for(var n=qC(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function ZC(e){return function(){YC(this,e)}}function QC(e){return function(){XC(this,e)}}function $C(e,t){return function(){(t.apply(this,arguments)?YC:XC)(this,e)}}function ew(e,t){var n=KC(e+``);if(arguments.length<2){for(var r=qC(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?$C:t?ZC:QC)(n,t))}function tw(){this.textContent=``}function nw(e){return function(){this.textContent=e}}function rw(e){return function(){var t=e.apply(this,arguments);this.textContent=t??``}}function iw(e){return arguments.length?this.each(e==null?tw:(typeof e==`function`?rw:nw)(e)):this.node().textContent}function aw(){this.innerHTML=``}function ow(e){return function(){this.innerHTML=e}}function sw(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??``}}function cw(e){return arguments.length?this.each(e==null?aw:(typeof e==`function`?sw:ow)(e)):this.node().innerHTML}function lw(){this.nextSibling&&this.parentNode.appendChild(this)}function uw(){return this.each(lw)}function dw(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function fw(){return this.each(dw)}function pw(e){var t=typeof e==`function`?e:HS(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function mw(){return null}function hw(e,t){var n=typeof e==`function`?e:HS(e),r=t==null?mw:typeof t==`function`?t:WS(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function gw(){var e=this.parentNode;e&&e.removeChild(this)}function _w(){return this.each(gw)}function vw(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function yw(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function bw(e){return this.select(e?yw:vw)}function xw(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function Sw(e){return function(t){e.call(this,t,this.__data__)}}function Cw(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 ww(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 Tw(e,t,n){return function(){var r=this.__on,i,a=Sw(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 Ew(e,t,n){var r=Cw(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?Tw:ww,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function Dw(e,t,n){var r=IC(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 Ow(e,t){return function(){return Dw(this,e,t)}}function kw(e,t){return function(){return Dw(this,e,t.apply(this,arguments))}}function Aw(e,t){return this.each((typeof t==`function`?kw:Ow)(e,t))}function*jw(){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 Mw=[null];function Nw(e,t){this._groups=e,this._parents=t}function Pw(){return new Nw([[document.documentElement]],Mw)}function Fw(){return this}Nw.prototype=Pw.prototype={constructor:Nw,select:GS,selectAll:XS,selectChild:nC,selectChildren:oC,filter:sC,data:hC,enter:lC,exit:_C,join:vC,merge:yC,selection:Fw,order:bC,sort:xC,call:CC,nodes:wC,node:TC,size:EC,empty:DC,each:OC,attr:FC,style:BC,property:GC,classed:ew,text:iw,html:cw,raise:uw,lower:fw,append:pw,insert:hw,remove:_w,clone:bw,datum:xw,on:Ew,dispatch:Aw,[Symbol.iterator]:jw};function Iw(e){return typeof e==`string`?new Nw([[document.querySelector(e)]],[document.documentElement]):new Nw([[e]],Mw)}function Lw(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Rw(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function zw(){}var Bw=.7,Vw=1/Bw,Hw=`\\s*([+-]?\\d+)\\s*`,Uw=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,Ww=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,Gw=/^#([0-9a-f]{3,8})$/,Kw=RegExp(`^rgb\\(${Hw},${Hw},${Hw}\\)$`),qw=RegExp(`^rgb\\(${Ww},${Ww},${Ww}\\)$`),Jw=RegExp(`^rgba\\(${Hw},${Hw},${Hw},${Uw}\\)$`),Yw=RegExp(`^rgba\\(${Ww},${Ww},${Ww},${Uw}\\)$`),Xw=RegExp(`^hsl\\(${Uw},${Ww},${Ww}\\)$`),Zw=RegExp(`^hsla\\(${Uw},${Ww},${Ww},${Uw}\\)$`),Qw={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};Lw(zw,rT,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:$w,formatHex:$w,formatHex8:eT,formatHsl:tT,formatRgb:nT,toString:nT});function $w(){return this.rgb().formatHex()}function eT(){return this.rgb().formatHex8()}function tT(){return gT(this).formatHsl()}function nT(){return this.rgb().formatRgb()}function rT(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=Gw.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?iT(t):n===3?new cT(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?aT(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?aT(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=Kw.exec(e))?new cT(t[1],t[2],t[3],1):(t=qw.exec(e))?new cT(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Jw.exec(e))?aT(t[1],t[2],t[3],t[4]):(t=Yw.exec(e))?aT(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Xw.exec(e))?hT(t[1],t[2]/100,t[3]/100,1):(t=Zw.exec(e))?hT(t[1],t[2]/100,t[3]/100,t[4]):Qw.hasOwnProperty(e)?iT(Qw[e]):e===`transparent`?new cT(NaN,NaN,NaN,0):null}function iT(e){return new cT(e>>16&255,e>>8&255,e&255,1)}function aT(e,t,n,r){return r<=0&&(e=t=n=NaN),new cT(e,t,n,r)}function oT(e){return e instanceof zw||(e=rT(e)),e?(e=e.rgb(),new cT(e.r,e.g,e.b,e.opacity)):new cT}function sT(e,t,n,r){return arguments.length===1?oT(e):new cT(e,t,n,r??1)}function cT(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Lw(cT,sT,Rw(zw,{brighter(e){return e=e==null?Vw:Vw**+e,new cT(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Bw:Bw**+e,new cT(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new cT(pT(this.r),pT(this.g),pT(this.b),fT(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:lT,formatHex:lT,formatHex8:uT,formatRgb:dT,toString:dT}));function lT(){return`#${mT(this.r)}${mT(this.g)}${mT(this.b)}`}function uT(){return`#${mT(this.r)}${mT(this.g)}${mT(this.b)}${mT((isNaN(this.opacity)?1:this.opacity)*255)}`}function dT(){let e=fT(this.opacity);return`${e===1?`rgb(`:`rgba(`}${pT(this.r)}, ${pT(this.g)}, ${pT(this.b)}${e===1?`)`:`, ${e})`}`}function fT(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function pT(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function mT(e){return e=pT(e),(e<16?`0`:``)+e.toString(16)}function hT(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new vT(e,t,n,r)}function gT(e){if(e instanceof vT)return new vT(e.h,e.s,e.l,e.opacity);if(e instanceof zw||(e=rT(e)),!e)return new vT;if(e instanceof vT)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 vT(o,s,c,e.opacity)}function _T(e,t,n,r){return arguments.length===1?gT(e):new vT(e,t,n,r??1)}function vT(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Lw(vT,_T,Rw(zw,{brighter(e){return e=e==null?Vw:Vw**+e,new vT(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Bw:Bw**+e,new vT(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 cT(xT(e>=240?e-240:e+120,i,r),xT(e,i,r),xT(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new vT(yT(this.h),bT(this.s),bT(this.l),fT(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=fT(this.opacity);return`${e===1?`hsl(`:`hsla(`}${yT(this.h)}, ${bT(this.s)*100}%, ${bT(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function yT(e){return e=(e||0)%360,e<0?e+360:e}function bT(e){return Math.max(0,Math.min(1,e||0))}function xT(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 ST=e=>()=>e;function CT(e,t){return function(n){return e+n*t}}function wT(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function TT(e){return(e=+e)==1?ET:function(t,n){return n-t?wT(t,n,e):ST(isNaN(t)?n:t)}}function ET(e,t){var n=t-e;return n?CT(e,n):ST(isNaN(e)?t:e)}var DT=(function e(t){var n=TT(t);function r(e,t){var r=n((e=sT(e)).r,(t=sT(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=ET(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 OT(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 kT(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function AT(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]=zT(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 jT(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function MT(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function NT(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]=zT(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var PT=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,FT=new RegExp(PT.source,`g`);function IT(e){return function(){return e}}function LT(e){return function(t){return e(t)+``}}function RT(e,t){var n=PT.lastIndex=FT.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=PT.exec(e))&&(i=FT.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:MT(r,i)})),n=FT.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?LT(c[0].x):IT(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 zT(e,t){var n=typeof t,r;return t==null||n===`boolean`?ST(t):(n===`number`?MT:n===`string`?(r=rT(t))?(t=r,DT):RT:t instanceof rT?DT:t instanceof Date?jT:kT(t)?OT:Array.isArray(t)?AT:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?NT:MT)(e,t)}function BT(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var VT=180/Math.PI,HT={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function UT(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)*VT,skewX:Math.atan(c)*VT,scaleX:o,scaleY:s}}var WT;function GT(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?HT:UT(t.a,t.b,t.c,t.d,t.e,t.f)}function KT(e){return e==null||(WT||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),WT.setAttribute(`transform`,e),!(e=WT.transform.baseVal.consolidate()))?HT:(e=e.matrix,UT(e.a,e.b,e.c,e.d,e.e,e.f))}function qT(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:MT(e,i)},{i:c-2,x:MT(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:MT(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:MT(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:MT(e,n)},{i:s-2,x:MT(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 JT=qT(GT,`px, `,`px)`,`deg)`),YT=qT(KT,`, `,`)`,`)`),XT=0,ZT=0,QT=0,$T=1e3,eE,tE,nE=0,rE=0,iE=0,aE=typeof performance==`object`&&performance.now?performance:Date,oE=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function sE(){return rE||=(oE(cE),aE.now()+iE)}function cE(){rE=0}function lE(){this._call=this._time=this._next=null}lE.prototype=uE.prototype={constructor:lE,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?sE():+n)+(t==null?0:+t),!this._next&&tE!==this&&(tE?tE._next=this:eE=this,tE=this),this._call=e,this._time=n,hE()},stop:function(){this._call&&(this._call=null,this._time=1/0,hE())}};function uE(e,t,n){var r=new lE;return r.restart(e,t,n),r}function dE(){sE(),++XT;for(var e=eE,t;e;)(t=rE-e._time)>=0&&e._call.call(void 0,t),e=e._next;--XT}function fE(){rE=(nE=aE.now())+iE,XT=ZT=0;try{dE()}finally{XT=0,mE(),rE=0}}function pE(){var e=aE.now(),t=e-nE;t>$T&&(iE-=t,nE=e)}function mE(){for(var e,t=eE,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:eE=n);tE=e,hE(r)}function hE(e){XT||(ZT&&=clearTimeout(ZT),e-rE>24?(e<1/0&&(ZT=setTimeout(fE,e-aE.now()-iE)),QT&&=clearInterval(QT)):(QT||=(nE=aE.now(),setInterval(pE,$T)),XT=1,oE(fE)))}function gE(e,t,n){var r=new lE;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var _E=NS(`start`,`end`,`cancel`,`interrupt`),vE=[];function yE(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;CE(e,n,{name:t,index:r,group:i,on:_E,tween:vE,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function bE(e,t){var n=SE(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function xE(e,t){var n=SE(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function SE(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function CE(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=uE(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 gE(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(gE(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 wE(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 TE(e){return this.each(function(){wE(this,e)})}function EE(e,t){var n,r;return function(){var i=xE(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 DE(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=xE(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 OE(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=SE(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?EE:DE)(n,e,t))}function kE(e,t,n){var r=e._id;return e.each(function(){var e=xE(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return SE(e,r).value[t]}}function AE(e,t){var n;return(typeof t==`number`?MT:t instanceof rT?DT:(n=rT(t))?(t=n,DT):RT)(e,t)}function jE(e){return function(){this.removeAttribute(e)}}function ME(e){return function(){this.removeAttributeNS(e.space,e.local)}}function NE(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 PE(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 FE(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 IE(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 LE(e,t){var n=zS(e),r=n===`transform`?YT:AE;return this.attrTween(e,typeof t==`function`?(n.local?IE:FE)(n,r,kE(this,`attr.`+e,t)):t==null?(n.local?ME:jE)(n):(n.local?PE:NE)(n,r,t))}function RE(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function zE(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function BE(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&zE(e,i)),n}return i._value=t,i}function VE(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&RE(e,i)),n}return i._value=t,i}function HE(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=zS(e);return this.tween(n,(r.local?BE:VE)(r,t))}function UE(e,t){return function(){bE(this,e).delay=+t.apply(this,arguments)}}function WE(e,t){return t=+t,function(){bE(this,e).delay=t}}function GE(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?UE:WE)(t,e)):SE(this.node(),t).delay}function KE(e,t){return function(){xE(this,e).duration=+t.apply(this,arguments)}}function qE(e,t){return t=+t,function(){xE(this,e).duration=t}}function JE(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?KE:qE)(t,e)):SE(this.node(),t).duration}function YE(e,t){if(typeof t!=`function`)throw Error();return function(){xE(this,e).ease=t}}function XE(e){var t=this._id;return arguments.length?this.each(YE(t,e)):SE(this.node(),t).ease}function ZE(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();xE(this,e).ease=n}}function QE(e){if(typeof e!=`function`)throw Error();return this.each(ZE(this._id,e))}function $E(e){typeof e!=`function`&&(e=ZS(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 OD(r,this._parents,this._name,this._id)}function eD(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 OD(o,this._parents,this._name,this._id)}function tD(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 nD(e,t,n){var r,i,a=tD(t)?bE:xE;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function rD(e,t){var n=this._id;return arguments.length<2?SE(this.node(),n).on.on(e):this.each(nD(n,e,t))}function iD(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function aD(){return this.on(`end.remove`,iD(this._id))}function oD(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=WS(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,yE(l[f],t,n,f,l,SE(u,n)));return new OD(a,this._parents,t,n)}function sD(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=JS(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=SE(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&yE(p,t,n,h,f,m);a.push(f),o.push(u)}return new OD(a,o,t,n)}var cD=Pw.prototype.constructor;function lD(){return new cD(this._groups,this._parents)}function uD(e,t){var n,r,i;return function(){var a=VC(this,e),o=(this.style.removeProperty(e),VC(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function dD(e){return function(){this.style.removeProperty(e)}}function fD(e,t,n){var r,i=n+``,a;return function(){var o=VC(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function pD(e,t,n){var r,i,a;return function(){var o=VC(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),VC(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function mD(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=xE(this,e),l=c.on,u=c.value[a]==null?s||=dD(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function hD(e,t,n){var r=(e+=``)==`transform`?JT:AE;return t==null?this.styleTween(e,uD(e,r)).on(`end.style.`+e,dD(e)):typeof t==`function`?this.styleTween(e,pD(e,r,kE(this,`style.`+e,t))).each(mD(this._id,e)):this.styleTween(e,fD(e,r,t),n).on(`end.style.`+e,null)}function gD(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function _D(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&gD(e,a,n)),r}return a._value=t,a}function vD(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,_D(e,t,n??``))}function yD(e){return function(){this.textContent=e}}function bD(e){return function(){var t=e(this);this.textContent=t??``}}function xD(e){return this.tween(`text`,typeof e==`function`?bD(kE(this,`text`,e)):yD(e==null?``:e+``))}function SD(e){return function(t){this.textContent=e.call(this,t)}}function CD(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&SD(r)),t}return r._value=e,r}function wD(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,CD(e))}function TD(){for(var e=this._name,t=this._id,n=AD(),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=SE(c,t);yE(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new OD(r,this._parents,e,n)}function ED(){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=xE(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 DD=0;function OD(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function kD(e){return Pw().transition(e)}function AD(){return++DD}var jD=Pw.prototype;OD.prototype=kD.prototype={constructor:OD,select:oD,selectAll:sD,selectChild:jD.selectChild,selectChildren:jD.selectChildren,filter:$E,merge:eD,selection:lD,transition:TD,call:jD.call,nodes:jD.nodes,node:jD.node,size:jD.size,empty:jD.empty,each:jD.each,on:rD,attr:LE,attrTween:HE,style:hD,styleTween:vD,text:xD,textTween:wD,remove:aD,tween:OE,delay:GE,duration:JE,ease:XE,easeVarying:QE,end:ED,[Symbol.iterator]:jD[Symbol.iterator]};function MD(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var ND={time:null,delay:0,duration:250,ease:MD};function PD(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function FD(e){var t,n;e instanceof OD?(t=e._id,e=e._name):(t=AD(),(n=ND).time=sE(),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])&&yE(c,e,t,l,o,n||PD(c,t));return new OD(r,this._parents,e,t)}Pw.prototype.interrupt=TE,Pw.prototype.transition=FD;var{abs:ID,max:LD,min:RD}=Math;[`w`,`e`].map(zD),[`n`,`s`].map(zD),[`n`,`w`,`e`,`s`,`nw`,`ne`,`sw`,`se`].map(zD);function zD(e){return{type:e}}var BD=Math.PI,VD=2*BD,HD=1e-6,UD=VD-HD;function WD(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function GD(e){let t=Math.floor(e);if(!(t>=0))throw Error(`invalid digits: ${e}`);if(t>15)return WD;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 KD=class{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._=``,this._append=e==null?WD:GD(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>HD)if(!(Math.abs(u*s-c*l)>HD)||!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((BD-Math.acos((m+d-h)/(2*g*_)))/2),y=v/_,b=v/g;Math.abs(y-1)>HD&&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)>HD||Math.abs(this._y1-l)>HD)&&this._append`L${c},${l}`,n&&(d<0&&(d=d%VD+VD),d>UD?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>HD&&this._append`A${n},${n},0,${+(d>=BD)},${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._}};function qD(){return new KD}qD.prototype=KD.prototype;function JD(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString(`en`).replace(/,/g,``):e.toString(10)}function YD(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 XD(e){return e=YD(Math.abs(e)),e?e[1]:NaN}function ZD(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 QD(e){return function(t){return t.replace(/[0-9]/g,function(t){return e[+t]})}}var $D=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function eO(e){if(!(t=$D.exec(e)))throw Error(`invalid format: `+e);var t;return new tO({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]})}eO.prototype=tO.prototype;function tO(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+``}tO.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 nO(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);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var rO;function iO(e,t){var n=YD(e,t);if(!n)return rO=void 0,e.toPrecision(t);var r=n[0],i=n[1],a=i-(rO=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`)+YD(e,Math.max(0,t+a-1))[0]}function aO(e,t){var n=YD(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 oO={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+``,d:JD,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)=>aO(e*100,t),r:aO,s:iO,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function sO(e){return e}var cO=Array.prototype.map,lO=[`y`,`z`,`a`,`f`,`p`,`n`,`µ`,`m`,``,`k`,`M`,`G`,`T`,`P`,`E`,`Z`,`Y`];function uO(e){var t=e.grouping===void 0||e.thousands===void 0?sO:ZD(cO.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?sO:QD(cO.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=eO(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`):oO[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=oO[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=nO(e)),w&&+e==0&&f!==`+`&&(w=!1),n=(w?f===`(`?f:s:f===`-`||f===`(`?``:f)+n,r=(y===`s`&&!isNaN(e)&&rO!==void 0?lO[8+rO/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;break}return a(e)}return w.toString=function(){return e+``},w}function u(e,t){var n=Math.max(-8,Math.min(8,Math.floor(XD(t)/3)))*3,r=10**-n,i=l((e=eO(e),e.type=`f`,e),{suffix:lO[8+n/3]});return function(e){return i(r*e)}}return{format:l,formatPrefix:u}}var dO,fO,pO;mO({thousands:`,`,grouping:[3],currency:[`$`,``]});function mO(e){return dO=uO(e),fO=dO.format,pO=dO.formatPrefix,dO}function hO(e){return Math.max(0,-XD(Math.abs(e)))}function gO(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(XD(t)/3)))*3-XD(Math.abs(e)))}function _O(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,XD(t)-XD(e))+1}function vO(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 yO(){return this.eachAfter(vO)}function bO(e,t){let n=-1;for(let r of this)e.call(t,r,++n,this);return this}function xO(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 SO(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 CO(e,t){let n=-1;for(let r of this)if(e.call(t,r,++n,this))return r}function wO(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 TO(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}function EO(e){for(var t=this,n=DO(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 DO(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 OO(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}function kO(){return Array.from(this)}function AO(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}function jO(){var e=this,t=[];return e.each(function(n){n!==e&&t.push({source:n.parent,target:n})}),t}function*MO(){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 NO(e,t){e instanceof Map?(e=[void 0,e],t===void 0&&(t=IO)):t===void 0&&(t=FO);for(var n=new zO(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 zO(o[s])),a.parent=r,a.depth=r.depth+1;return n.eachBefore(RO)}function PO(){return NO(this).eachBefore(LO)}function FO(e){return e.children}function IO(e){return Array.isArray(e)?e[1]:null}function LO(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function RO(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function zO(e){this.data=e,this.depth=this.height=0,this.parent=null}zO.prototype=NO.prototype={constructor:zO,count:yO,each:bO,eachAfter:SO,eachBefore:xO,find:CO,sum:wO,sort:TO,path:EO,ancestors:OO,descendants:kO,leaves:AO,links:jO,copy:PO,[Symbol.iterator]:MO};function BO(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 VO(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 HO(){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(BO),i}function a(e,t){return function(r){r.children&&VO(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 UO(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}var WO=Symbol(`implicit`);function GO(){var e=new iS,t=[],n=[],r=WO;function i(i){let a=e.get(i);if(a===void 0){if(r!==WO)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 iS;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 GO(t,n).unknown(r)},UO.apply(i,arguments),i}function KO(){var e=GO().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=_S(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 KO(t(),[r,i]).round(s).paddingInner(c).paddingOuter(l).align(u)},UO.apply(d(),arguments)}function qO(e){var t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,delete e.paddingOuter,e.copy=function(){return qO(t())},e}function JO(){return qO(KO.apply(null,arguments).paddingInner(1))}function YO(e){return function(){return e}}function XO(e){return+e}var ZO=[0,1];function QO(e){return e}function $O(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:YO(isNaN(t)?NaN:.5)}function ek(e,t){var n;return e>t&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}function tk(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=$O(i,r),a=n(o,a)):(r=$O(r,i),a=n(a,o)),function(e){return a(r(e))}}function nk(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]=$O(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(t){var n=nS(e,t,1,r)-1;return a[n](i[n](t))}}function rk(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function ik(){var e=ZO,t=ZO,n=zT,r,i,a,o=QO,s,c,l;function u(){var n=Math.min(e.length,t.length);return o!==QO&&(o=ek(e[0],e[n-1])),s=n>2?nk:tk,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),MT))(n)))},d.domain=function(t){return arguments.length?(e=Array.from(t,XO),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=BT,u()},d.clamp=function(e){return arguments.length?(o=e?!0:QO,u()):o!==QO},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 ak(){return ik()(QO,QO)}function ok(e,t,n,r){var i=hS(e,t,n),a;switch(r=eO(r??`,f`),r.type){case`s`:var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=gO(i,o))&&(r.precision=a),pO(r,o);case``:case`e`:case`g`:case`p`:case`r`:r.precision==null&&!isNaN(a=_O(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type===`e`));break;case`f`:case`%`:r.precision==null&&!isNaN(a=hO(i))&&(r.precision=a-(r.type===`%`)*2);break}return fO(r)}function sk(e){var t=e.domain;return e.ticks=function(e){var n=t();return pS(n[0],n[n.length-1],e??10)},e.tickFormat=function(e,n){var r=t();return ok(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=mS(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 ck(){var e=ak();return e.copy=function(){return rk(e,ck())},UO.apply(e,arguments),sk(e)}function lk(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 uk=new Date,dk=new Date;function fk(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=>fk(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)=>(uk.setTime(+t),dk.setTime(+r),e(uk),e(dk),Math.floor(n(uk,dk))),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 pk=fk(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);pk.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?fk(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):pk),pk.range;var mk=1e3,hk=mk*60,gk=hk*60,_k=gk*24,vk=_k*7,yk=_k*30,bk=_k*365,xk=fk(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*mk)},(e,t)=>(t-e)/mk,e=>e.getUTCSeconds());xk.range;var Sk=fk(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*mk)},(e,t)=>{e.setTime(+e+t*hk)},(e,t)=>(t-e)/hk,e=>e.getMinutes());Sk.range;var Ck=fk(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*hk)},(e,t)=>(t-e)/hk,e=>e.getUTCMinutes());Ck.range;var wk=fk(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*mk-e.getMinutes()*hk)},(e,t)=>{e.setTime(+e+t*gk)},(e,t)=>(t-e)/gk,e=>e.getHours());wk.range;var Tk=fk(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*gk)},(e,t)=>(t-e)/gk,e=>e.getUTCHours());Tk.range;var Ek=fk(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*hk)/_k,e=>e.getDate()-1);Ek.range;var Dk=fk(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/_k,e=>e.getUTCDate()-1);Dk.range;var Ok=fk(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/_k,e=>Math.floor(e/_k));Ok.range;function kk(e){return fk(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())*hk)/vk)}var Ak=kk(0),jk=kk(1),Mk=kk(2),Nk=kk(3),Pk=kk(4),Fk=kk(5),Ik=kk(6);Ak.range,jk.range,Mk.range,Nk.range,Pk.range,Fk.range,Ik.range;function Lk(e){return fk(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)/vk)}var Rk=Lk(0),zk=Lk(1),Bk=Lk(2),Vk=Lk(3),Hk=Lk(4),Uk=Lk(5),Wk=Lk(6);Rk.range,zk.range,Bk.range,Vk.range,Hk.range,Uk.range,Wk.range;var Gk=fk(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());Gk.range;var Kk=fk(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());Kk.range;var qk=fk(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());qk.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:fk(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)}),qk.range;var Jk=fk(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());Jk.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:fk(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)}),Jk.range;function Yk(e,t,n,r,i,a){let o=[[xk,1,mk],[xk,5,5*mk],[xk,15,15*mk],[xk,30,30*mk],[a,1,hk],[a,5,5*hk],[a,15,15*hk],[a,30,30*hk],[i,1,gk],[i,3,3*gk],[i,6,6*gk],[i,12,12*gk],[r,1,_k],[r,2,2*_k],[n,1,vk],[t,1,yk],[t,3,3*yk],[e,1,bk]];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=Qx(([,,e])=>e).right(o,i);if(a===o.length)return e.every(hS(t/bk,n/bk,r));if(a===0)return pk.every(Math.max(hS(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[Xk,Zk]=Yk(Jk,Kk,Rk,Ok,Tk,Ck),[Qk,$k]=Yk(qk,Gk,Ak,Ek,wk,Sk);function eA(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 tA(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 nA(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function rA(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=lA(i),u=uA(i),d=lA(a),f=uA(a),p=lA(o),m=uA(o),h=lA(s),g=uA(s),_=lA(c),v=uA(c),y={a:N,A:P,b:F,B:ee,c:null,d:jA,e:jA,f:IA,g:qA,G:YA,H:MA,I:NA,j:PA,L:FA,m:LA,M:RA,p:te,q:I,Q:vj,s:yj,S:zA,u:BA,U:VA,V:UA,w:WA,W:GA,x:null,X:null,y:KA,Y:JA,Z:XA,"%":_j},b={a:L,A:R,b:ne,B:z,c:null,d:ZA,e:ZA,f:nj,g:pj,G:hj,H:QA,I:$A,j:ej,L:tj,m:rj,M:ij,p:re,q:B,Q:vj,s:yj,S:aj,u:oj,U:sj,V:lj,w:uj,W:dj,x:null,X:null,y:fj,Y:mj,Z:gj,"%":_j},x={a:E,A:D,b:O,B:k,c:A,d:xA,e:xA,f:DA,g:_A,G:gA,H:CA,I:CA,j:SA,L:EA,m:bA,M:wA,p:T,q:yA,Q:kA,s:AA,S:TA,u:fA,U:pA,V:mA,w:dA,W:hA,x:j,X:M,y:_A,Y:gA,Z:vA,"%":OA};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=iA[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=nA(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=tA(nA(r.y,0,1)),o=a.getUTCDay(),a=o>4||o===0?zk.ceil(a):zk(a),a=Dk.offset(a,(r.V-1)*7),r.y=a.getUTCFullYear(),r.m=a.getUTCMonth(),r.d=a.getUTCDate()+(r.w+6)%7):(a=eA(nA(r.y,0,1)),o=a.getDay(),a=o>4||o===0?jk.ceil(a):jk(a),a=Ek.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?tA(nA(r.y,0,1)).getUTCDay():eA(nA(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,tA(r)):eA(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 iA?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 R(e){return a[e.getUTCDay()]}function ne(e){return c[e.getUTCMonth()]}function z(e){return s[e.getUTCMonth()]}function re(e){return i[+(e.getUTCHours()>=12)]}function B(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 iA={"-":``,_:` `,0:`0`},aA=/^\s*\d+/,oA=/^%/,sA=/[\\^$*+?|[\]().{}]/g;function Z(e,t,n){var r=e<0?`-`:``,i=(r?-e:e)+``,a=i.length;return r+(a<n?Array(n-a+1).join(t)+i:i)}function cA(e){return e.replace(sA,`\\$&`)}function lA(e){return RegExp(`^(?:`+e.map(cA).join(`|`)+`)`,`i`)}function uA(e){return new Map(e.map((e,t)=>[e.toLowerCase(),t]))}function dA(e,t,n){var r=aA.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function fA(e,t,n){var r=aA.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function pA(e,t,n){var r=aA.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function mA(e,t,n){var r=aA.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function hA(e,t,n){var r=aA.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function gA(e,t,n){var r=aA.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function _A(e,t,n){var r=aA.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function vA(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 yA(e,t,n){var r=aA.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function bA(e,t,n){var r=aA.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function xA(e,t,n){var r=aA.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function SA(e,t,n){var r=aA.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function CA(e,t,n){var r=aA.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function wA(e,t,n){var r=aA.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function TA(e,t,n){var r=aA.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function EA(e,t,n){var r=aA.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function DA(e,t,n){var r=aA.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function OA(e,t,n){var r=oA.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function kA(e,t,n){var r=aA.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function AA(e,t,n){var r=aA.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function jA(e,t){return Z(e.getDate(),t,2)}function MA(e,t){return Z(e.getHours(),t,2)}function NA(e,t){return Z(e.getHours()%12||12,t,2)}function PA(e,t){return Z(1+Ek.count(qk(e),e),t,3)}function FA(e,t){return Z(e.getMilliseconds(),t,3)}function IA(e,t){return FA(e,t)+`000`}function LA(e,t){return Z(e.getMonth()+1,t,2)}function RA(e,t){return Z(e.getMinutes(),t,2)}function zA(e,t){return Z(e.getSeconds(),t,2)}function BA(e){var t=e.getDay();return t===0?7:t}function VA(e,t){return Z(Ak.count(qk(e)-1,e),t,2)}function HA(e){var t=e.getDay();return t>=4||t===0?Pk(e):Pk.ceil(e)}function UA(e,t){return e=HA(e),Z(Pk.count(qk(e),e)+(qk(e).getDay()===4),t,2)}function WA(e){return e.getDay()}function GA(e,t){return Z(jk.count(qk(e)-1,e),t,2)}function KA(e,t){return Z(e.getFullYear()%100,t,2)}function qA(e,t){return e=HA(e),Z(e.getFullYear()%100,t,2)}function JA(e,t){return Z(e.getFullYear()%1e4,t,4)}function YA(e,t){var n=e.getDay();return e=n>=4||n===0?Pk(e):Pk.ceil(e),Z(e.getFullYear()%1e4,t,4)}function XA(e){var t=e.getTimezoneOffset();return(t>0?`-`:(t*=-1,`+`))+Z(t/60|0,`0`,2)+Z(t%60,`0`,2)}function ZA(e,t){return Z(e.getUTCDate(),t,2)}function QA(e,t){return Z(e.getUTCHours(),t,2)}function $A(e,t){return Z(e.getUTCHours()%12||12,t,2)}function ej(e,t){return Z(1+Dk.count(Jk(e),e),t,3)}function tj(e,t){return Z(e.getUTCMilliseconds(),t,3)}function nj(e,t){return tj(e,t)+`000`}function rj(e,t){return Z(e.getUTCMonth()+1,t,2)}function ij(e,t){return Z(e.getUTCMinutes(),t,2)}function aj(e,t){return Z(e.getUTCSeconds(),t,2)}function oj(e){var t=e.getUTCDay();return t===0?7:t}function sj(e,t){return Z(Rk.count(Jk(e)-1,e),t,2)}function cj(e){var t=e.getUTCDay();return t>=4||t===0?Hk(e):Hk.ceil(e)}function lj(e,t){return e=cj(e),Z(Hk.count(Jk(e),e)+(Jk(e).getUTCDay()===4),t,2)}function uj(e){return e.getUTCDay()}function dj(e,t){return Z(zk.count(Jk(e)-1,e),t,2)}function fj(e,t){return Z(e.getUTCFullYear()%100,t,2)}function pj(e,t){return e=cj(e),Z(e.getUTCFullYear()%100,t,2)}function mj(e,t){return Z(e.getUTCFullYear()%1e4,t,4)}function hj(e,t){var n=e.getUTCDay();return e=n>=4||n===0?Hk(e):Hk.ceil(e),Z(e.getUTCFullYear()%1e4,t,4)}function gj(){return`+0000`}function _j(){return`%`}function vj(e){return+e}function yj(e){return Math.floor(e/1e3)}var bj,xj;Sj({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 Sj(e){return bj=rA(e),xj=bj.format,bj.parse,bj.utcFormat,bj.utcParse,bj}function Cj(e){return new Date(e)}function wj(e){return e instanceof Date?+e:+new Date(+e)}function Tj(e,t,n,r,i,a,o,s,c,l){var u=ak(),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,wj)):f().map(Cj)},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(lk(n,e)):u},u.copy=function(){return rk(u,Tj(e,t,n,r,i,a,o,s,c,l))},u}function Ej(){return UO.apply(Tj(Qk,$k,qk,Gk,Ak,Ek,wk,Sk,xk,xj).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function Dj(e){return function(){return e}}var Oj=Math.abs,kj=Math.atan2,Aj=Math.cos,jj=Math.max,Mj=Math.min,Nj=Math.sin,Pj=Math.sqrt,Fj=Math.PI,Ij=Fj/2,Lj=2*Fj;function Rj(e){return e>1?0:e<-1?Fj:Math.acos(e)}function zj(e){return e>=1?Ij:e<=-1?-Ij:Math.asin(e)}function Bj(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 KD(t)}function Vj(e){return e.innerRadius}function Hj(e){return e.outerRadius}function Uj(e){return e.startAngle}function Wj(e){return e.endAngle}function Gj(e){return e&&e.padAngle}function Kj(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 qj(e,t,n,r,i,a,o){var s=e-n,c=t-r,l=(o?a:-a)/Pj(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)*Pj(jj(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 Jj(){var e=Vj,t=Hj,n=Dj(0),r=null,i=Uj,a=Wj,o=Gj,s=null,c=Bj(l);function l(){var l,u,d=+e.apply(this,arguments),f=+t.apply(this,arguments),p=i.apply(this,arguments)-Ij,m=a.apply(this,arguments)-Ij,h=Oj(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>Lj-1e-12)s.moveTo(f*Aj(p),f*Nj(p)),s.arc(0,0,f,p,m,!g),d>1e-12&&(s.moveTo(d*Aj(m),d*Nj(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):Pj(d*d+f*f)),T=Mj(Oj(f-d)/2,+n.apply(this,arguments)),E=T,D=T,O,k;if(w>1e-12){var A=zj(w/d*Nj(C)),j=zj(w/f*Nj(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*Aj(_),N=f*Nj(_),P=d*Aj(b),F=d*Nj(b);if(T>1e-12){var ee=f*Aj(v),te=f*Nj(v),I=d*Aj(y),L=d*Nj(y),R;if(h<Fj)if(R=Kj(M,N,I,L,ee,te,P,F)){var ne=M-R[0],z=N-R[1],re=ee-R[0],B=te-R[1],ie=1/Nj(Rj((ne*re+z*B)/(Pj(ne*ne+z*z)*Pj(re*re+B*B)))/2),ae=Pj(R[0]*R[0]+R[1]*R[1]);E=Mj(T,(d-ae)/(ie-1)),D=Mj(T,(f-ae)/(ie+1))}else E=D=0}S>1e-12?D>1e-12?(O=qj(I,L,M,N,f,D,g),k=qj(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,kj(O.y01,O.x01),kj(k.y01,k.x01),!g):(s.arc(O.cx,O.cy,D,kj(O.y01,O.x01),kj(O.y11,O.x11),!g),s.arc(0,0,f,kj(O.cy+O.y11,O.cx+O.x11),kj(k.cy+k.y11,k.cx+k.x11),!g),s.arc(k.cx,k.cy,D,kj(k.y11,k.x11),kj(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=qj(P,F,ee,te,d,-E,g),k=qj(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,kj(O.y01,O.x01),kj(k.y01,k.x01),!g):(s.arc(O.cx,O.cy,E,kj(O.y01,O.x01),kj(O.y11,O.x11),!g),s.arc(0,0,d,kj(O.cy+O.y11,O.cx+O.x11),kj(k.cy+k.y11,k.cx+k.x11),g),s.arc(k.cx,k.cy,E,kj(k.y11,k.x11),kj(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-Fj/2;return[Aj(r)*n,Nj(r)*n]},l.innerRadius=function(t){return arguments.length?(e=typeof t==`function`?t:Dj(+t),l):e},l.outerRadius=function(e){return arguments.length?(t=typeof e==`function`?e:Dj(+e),l):t},l.cornerRadius=function(e){return arguments.length?(n=typeof e==`function`?e:Dj(+e),l):n},l.padRadius=function(e){return arguments.length?(r=e==null?null:typeof e==`function`?e:Dj(+e),l):r},l.startAngle=function(e){return arguments.length?(i=typeof e==`function`?e:Dj(+e),l):i},l.endAngle=function(e){return arguments.length?(a=typeof e==`function`?e:Dj(+e),l):a},l.padAngle=function(e){return arguments.length?(o=typeof e==`function`?e:Dj(+e),l):o},l.context=function(e){return arguments.length?(s=e??null,l):s},l}Array.prototype.slice;function Yj(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function Xj(e){this._context=e}Xj.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);break}}};function Zj(e){return new Xj(e)}function Qj(e){return e[0]}function $j(e){return e[1]}function eM(e,t){var n=Dj(!0),r=null,i=Zj,a=null,o=Bj(s);e=typeof e==`function`?e:e===void 0?Qj:Dj(e),t=typeof t==`function`?t:t===void 0?$j:Dj(t);function s(s){var c,l=(s=Yj(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:Dj(+t),s):e},s.y=function(e){return arguments.length?(t=typeof e==`function`?e:Dj(+e),s):t},s.defined=function(e){return arguments.length?(n=typeof e==`function`?e:Dj(!!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 tM(e,t){this._context=e,this._t=t}tM.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)}break}this._x=e,this._y=t}};function nM(e){return new tM(e,1)}function rM(e,t,n){this.k=e,this.x=t,this.y=n}rM.prototype={constructor:rM,scale:function(e){return e===1?this:new rM(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new rM(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 iM=new rM(1,0,0);aM.prototype=rM.prototype;function aM(e){for(;!e.__zoom;)if(!(e=e.parentNode))return iM;return e.__zoom}function oM(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 sM={DECISIVE:20,ROUTINE:50},cM=new Set([`WALKOVER`,`DOUBLE_WALKOVER`,`DEFAULTED`,`DOUBLE_DEFAULT`]),lM={COMPETITIVE:`#16a34a`,ROUTINE:`#3b82f6`,DECISIVE:`#8e44ad`,WALKOVER:`#6b7280`},uM=`#cfd8dc`,dM=`COMPETITIVE`,fM=`ROUTINE`,pM=`DECISIVE`,mM=`WALKOVER`;function hM(e,t=sM){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)?mM:a<=t.DECISIVE?pM:a<=t.ROUTINE?fM:dM}function gM(e,n=sM){if(e)return hM(t.scoreGovernor.parseScoreString({scoreString:e}),n)}function _M({winningSide:e,matchUpStatus:t,sets:n,scoreString:r,bands:i}){if(t&&cM.has(t))return mM;if(e)return n?.length?hM(n,i):gM(r,i)}function vM(e,t){return e?t?.[e]??lM[e]:uM}var{WILDCARD:yM,QUALIFIER:bM,LUCKY_LOSER:xM}=t.entryStatusConstants,SM=`text-anchor`,CM=`dominant-baseline`,wM=`fill-opacity`,TM=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 EM(e){let t=Math.floor(e.length/2),n=e.slice(0,t),r=e.slice(t).reverse();return[...n,...r]}function DM(e){if(e)switch(e){case yM:return`WC`;case bM:return`Q`;case xM:return`LL`;default:return e}}function OM(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:DM(e.entryStatus),nationalityCode:e.nationalityCode,matchUp:r,depth:t,value:1})}return n}function kM(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 AM(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}=kM(e,r);return{name:s||``,participantName:s,drawPosition:l?.drawPosition??c?.drawPosition,seedNumber:c?.seedNumber??l?.seedNumber,entryStatus:DM(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 jM(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=EM(OM(r,n.length)),a=new Map;for(let e of i)e.participantName&&e.participantName!==`BYE`&&a.set(e.participantName,e);let o=AM(EM(r),i,n.length-1,a);for(let e=1;e<n.length;e++)o=AM(EM(t[n[e]]),o,n.length-1-e,a);return o.length===1?o[0]:{name:`Tournament`,depth:0,children:o}}function MM(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=ck().domain([1,32]).range([`0`,`1`]);o=ck().domain(_S(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=ck().domain(_S(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=ck().domain(_S(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),MM(n,t)})}function NM(e,t){e&&(e.competitivenessColor=e.children?.length&&e.competitiveness?vM(e.competitiveness,t):uM,e.children?.forEach(e=>NM(e,t)))}function PM(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 FM(e,t){let n=e.find(e=>e.data.participantName&&e.data.participantName!==t);return n?.data.participantName?n.data:void 0}function IM(e,t){let n=[e.participantName],r;if(t.children&&t.children.length>0)e.scoreString&&n.push(e.scoreString),r=FM(t.children,e.participantName),r&&n.push(r.participantName);else{let r=PM(e,t.depth);r&&n.push(r)}return{messageLines:n,opponentData:r}}function LM(e,t){return-(e*t/2)+t/2}function RM(e,t,n){let r=Iw(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 zM(e,t,n,r,i){let a=e.append(`text`).attr(`x`,t/2).attr(`y`,n/2).attr(SM,`middle`).attr(CM,`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(SM,`middle`).attr(CM,`middle`).attr(`font-size`,`${i}px`).style(`fill`,`var(--chc-text-secondary, #666)`).attr(`pointer-events`,`none`)}}function BM(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(SM,`middle`).attr(CM,`middle`).attr(`transform`,`translate(0, ${r*a})`).text(WM(n)))}function VM(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}))),p=jM(n),m=NO(p,e=>e.children).sum(e=>e.value||0),h=Math.min(a,o)/2,g=h/2,_=e=>e*h/200;HO().size([2*Math.PI,h-g])(m),MM(p,ck().domain([0,n.drawSize||128]).range([0,1])),NM(p,i.competitivenessColors);let v=i.colorMode??`default`,y=e=>v===`competitiveness`?e.competitivenessColor||`#cfd8dc`:e.color||`#ccc`,b=m.descendants(),x=Jj().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}=RM(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}=zM(S,a,o,c,l);function M(){let e=oM(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=ck().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(SM,`middle`).attr(CM,`middle`).attr(`transform`,(t,r)=>{let i=e(r);return`translate(${Math.cos(i)*n}, ${Math.sin(i)*n})`}).text(e=>WM(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(wM,e=>e.data.nationalityCode===t?.9:.3)}).on(`mouseout`,function(){F||C.selectAll(`path`).attr(wM,.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}=IM(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=LM(e.length,u);A.attr(`y`,o/2+i),A.style(`display`,`block`),j.style(`display`,`none`)}F?n.participantName?.toLowerCase()!==ee?.toLowerCase()&&Iw(e.currentTarget).attr(wM,.9):C.selectAll(`path`).attr(wM,e=>e.data.participantName===t.data.participantName?.9:.3);let r=_(30),i=g-r-10,s={flagsGroup:w,winningFlagsGroup:T,losingFlagsGroup:E};BM(T,s,n.nationalityCode,-1,!0,i,r),n.opponent&&BM(E,s,n.opponent.nationalityCode,1,!1,i,r)}function I(e,t){if(F){let n=t.data.participantName?.toLowerCase()===ee?.toLowerCase();Iw(e.currentTarget).attr(wM,n?1:.2)}else C.selectAll(`path`).attr(wM,.8);N(),M()}let L=i.eventHandlers?.clickSegment;function R(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 ne=C.selectAll(`path`).data(b).join(`path`).attr(`d`,e=>x(e)).attr(`fill`,e=>y(e.data)).attr(wM,.8).attr(`stroke`,`#fff`).attr(`stroke-width`,1).on(`mouseover`,te).on(`mouseout`,I);L&&ne.style(`cursor`,`pointer`).on(`click`,R),ne.append(`title`).text(e=>{let t=e.data;if(t.participantName){let e=[t.participantName,`Draw: ${t.drawPosition||`N/A`}`];return t.competitiveness&&e.push(`Competitiveness: ${t.competitiveness}`),e.join(`
215
+ `)}return`${t.name}\nDepth: ${e.depth}`});function z(e){let t=0;return F=!!e,ee=e,C.selectAll(`path`).attr(wM,n=>e?n.data.participantName?.toLowerCase()===e.toLowerCase()?(t+=1,1):.2:.8),t}function re(e){S.style(`display`,e?`none`:`block`)}function B(e){v=e,C.selectAll(`path`).attr(`fill`,e=>y(e.data))}return{highlightPlayer:z,hide:re,setColorMode:B}}function HM(e={}){return{render:(t,n,r)=>VM(t,n,r,e)}}function UM(e){return e?.length===2?e&&String.fromCodePoint!==void 0?e.toUpperCase().replaceAll(/./g,e=>String.fromCodePoint((e.codePointAt(0)??0)+127397)):e:``}function WM(e){return UM(TM[e]||e)}var{LUCKY_LOSER:GM,WILDCARD:KM,QUALIFIER:qM}=t.entryStatusConstants;function JM(e){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:_M({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 YM={LL:GM,WC:KM,Q:qM},XM=[`R128`,`R64`,`R32`,`R16`,`QF`,`SF`,`F`];function ZM(e){let t=QM(e);if(t.length===0)return{drawSize:0,roundMatchUps:{}};let n=t[0].data,r=n.length,i=$M(n),a=eN(t,e),o={};o[1]=nN(n,a,t);for(let e=1;e<t.length;e++)o[e+1]=rN(e,t,a,i);return{drawSize:r,roundMatchUps:o}}function QM(e){let t=[],n=!1;for(let r of XM){let i=e[r];i&&i.length>0&&(n=!0),n&&i&&i.length>0&&t.push({key:r,data:i})}return t}function $M(e){let t=new Map;return e.forEach((e,n)=>{let r=iN(e.player);r&&r!==`BYE`&&t.set(r,{drawPosition:e.Draw??n+1,country:e.country,seed:e.seed,entry:e.entry})}),t}function eN(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=iN(e.player);t&&a.add(t)}n.set(e[r].key,a)}return n}function tN(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 nN(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=iN(a?.player),c=iN(o?.player),l=s===`BYE`||c===`BYE`,u=tN(s,c,i),d;if(!l&&n.length>1){let e=n[1].data,t=u===1?s:c;d=e.find(e=>iN(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:_M({winningSide:u,matchUpStatus:f,scoreString:d}),scoreString:d,sides:[oN(1,a,t+1),oN(2,o,t+2)]})}return r}function rN(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=iN(t?.player),l=iN(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:_M({winningSide:u,matchUpStatus:f,scoreString:d}),scoreString:d,sides:[sN(1,t,r),sN(2,n,r)]})}return s}function iN(e){if(!e)return``;let t=e.trim();return t.toUpperCase()===`BYE`?`BYE`:t}function aN(e){if(e)return YM[e.toUpperCase()]||e}function oN(e,t,n){if(!t)return{sideNumber:e,drawPosition:n};let r=iN(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:aN(t.entry)}}function sN(e,t,n){if(!t)return{sideNumber:e,drawPosition:0};let r=iN(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:aN(t.entry||i?.entry)}}var cN=480,lN=200,uN=280,dN={top:12,right:12,bottom:28,left:32},fN={top:12,right:12,bottom:12,left:12},pN=.6,mN=.9,hN=`http://www.w3.org/2000/svg`,gN=`middle`,_N=`text-anchor`,vN=`dominant-baseline`,yN=[`var(--chc-rating-low, #5b8ff9)`,`var(--chc-rating-high, #00b894)`];function bN(e,t,n){let r=document.createElementNS(hN,`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 xN(e,t,n){return n<=1||t/(n-1)<.5?yN[0]:yN[1]}function SN(e,t,n,r){return r?r(e,t):xN(e,t,n)}function CN(e){return`${e.binStart.toFixed(1)}–${e.binEnd.toFixed(1)}`}function wN(e){let{stats:t,width:n,height:r,margin:i,showAxis:a,showCounts:o,showMean:s,binColor:c,ariaLabel:l}=e,u=bN(n,r,l),d=Iw(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=KO().domain(t.histogram.map(CN)).range([0,f]).padding(.12),h=ck().domain([0,gS(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(CN(e))??0).attr(`y`,e=>h(e.count)).attr(`width`,m.bandwidth()).attr(`height`,e=>p-h(e.count)).attr(`fill`,(e,t)=>SN(e,t,g,c)).append(`title`).text(e=>`${CN(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(CN(e))??0)+m.bandwidth()/2).attr(`y`,e=>h(e.count)-4).attr(_N,gN).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(CN),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(AS(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 TN(e,t,n,r){return[e+n*Math.sin(r),t-n*Math.cos(r)]}function EN(e,t,n,r,i,a){let[o,s]=TN(e,t,n,i),[c,l]=TN(e,t,n,a),[u,d]=TN(e,t,r,a),[f,p]=TN(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 DN(e){let{stats:t,size:n,margin:r,showCounts:i,binColor:a,ariaLabel:o}=e,s=bN(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*mN,f=c*pN,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(hN,`path`);if(h.setAttribute(`class`,`chc-rdc-slice`),h.setAttribute(`d`,EN(l,u,d,f,o,c)),h.setAttribute(`fill`,SN(n,e,m,a)),s.appendChild(h),i){let e=o+r/2,[t,i]=TN(l,u,(d+f)/2,e),a=document.createElementNS(hN,`text`);a.setAttribute(`class`,`chc-rdc-slice-label`),a.setAttribute(`x`,String(t)),a.setAttribute(`y`,String(i)),a.setAttribute(_N,gN),a.setAttribute(vN,gN),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(hN,`text`);return h.setAttribute(`class`,`chc-rdc-center-count`),h.setAttribute(`x`,String(l)),h.setAttribute(`y`,String(u)),h.setAttribute(_N,gN),h.setAttribute(vN,gN),h.setAttribute(`font-size`,`20`),h.setAttribute(`font-weight`,`600`),h.textContent=String(t.count),s.appendChild(h),s}function ON(e,t={}){let n=t.mode??`HISTOGRAM`,r=t.ariaLabel??`Participant rating distribution`;return n===`DONUT`?DN({stats:e,size:t.width??t.height??uN,margin:t.margin??fN,showCounts:t.showCounts??!0,binColor:t.binColor,ariaLabel:r}):wN({stats:e,width:t.width??cN,height:t.height??lN,margin:t.margin??dN,showAxis:t.showAxis??!0,showCounts:t.showCounts??!0,showMean:t.showMean??!0,binColor:t.binColor,ariaLabel:r})}var kN=`http://www.w3.org/2000/svg`,AN={top:36,right:16,bottom:28,left:56},jN=600,MN=260,NN=6,PN=8;function FN(e,t){let n=document.createElementNS(kN,`svg`);n.classList.add(`lc-svg`),e.appendChild(n);let r={container:e,svg:n,config:{...t},destroyed:!1};return IN(r),{element:n,update(e){r.destroyed||(r.config={...r.config,...e},IN(r))},destroy(){r.destroyed||(r.destroyed=!0,n.parentNode===e&&e.removeChild(n))}}}function IN(e){let{svg:t,container:n,config:r}=e,i={...AN,...r.margins||{}},a=n.clientWidth||jN,o=r.width??a,s=r.height??MN;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(kN,`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(kN,`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=rS(u,e=>e._dateValue),f=Math.max(3,(d[1].getTime()-d[0].getTime())/(1e3*60*60*24)*.04),p=new Date(d[0].getTime()-f*864e5),m=new Date(d[1].getTime()+f*864e5),h=Ej().domain([p,m]).range([0,c]),g=JO().domain([...r.rungs].reverse()).range([0,l]).padding(.5),_=document.createElementNS(kN,`g`);_.setAttribute(`transform`,`translate(${i.left},${i.top})`),t.appendChild(_);let v=document.createElementNS(kN,`g`);v.setAttribute(`class`,`lc-axis lc-axis-y`),_.appendChild(v),Iw(v).call(jS(g).tickSize(-c).tickPadding(8));let y=document.createElementNS(kN,`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(Iw(y).call(AS(h).ticks(r.xMaxTicks??PN).tickFormat(xj(x))),r.showConnector!==!1&&u.length>1){let e=eM().x(e=>h(e._dateValue)).y(e=>g(r.rungs[e._rung])??0).curve(nM),t=document.createElementNS(kN,`path`);t.setAttribute(`class`,`lc-connector`),t.setAttribute(`d`,e(u)||``),r.connectorColor&&(t.style.stroke=r.connectorColor),_.appendChild(t)}let S=document.createElementNS(kN,`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??NN,a=document.createElementNS(kN,`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(kN,`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(kN,`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 LN=`right`,RN=`font-medium`;function zN({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===LN&&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`);V(t.onClick)&&(d.onclick=t.onClick),d.style.cssText=`margin-right: 1em`,d.innerHTML=t.label,u.appendChild(d);let f=document.createElement(`span`);V(t.onClick)&&(f.onclick=t.onClick),f.innerHTML=`
216
216
  <span class="icon is-small font-medium">
217
217
  <i class="fas fa-angle-down font-medium" aria-hidden="true"></i>
218
218
  </span>
219
- `,u.appendChild(f),l.appendChild(u),a.appendChild(l);let p=document.createElement(`div`);p.classList.add(`dropdown-menu`),p.setAttribute(`z-index`,`99998`);let m=document.createElement(`div`);m.classList.add(`dropdown-content`);let h=()=>{let e=p.querySelectorAll(`.dropdown-item`);for(let t of Array.from(e))t.classList.remove(`is-active`)},g=e=>{let r=document.createElement(`a`);r.className=zN;let l=e.disabled?`0.4`:`1`;return r.style.cssText=`text-decoration: none; opacity: ${l};`,e.color&&(r.style.color=e.color),r.classList.add(`dropdown-item`),e.isActive&&r.classList.add(`is-active`),e.value&&(r.value=e.value),e.class&&r.classList.add(e.class),r.onclick=l=>{if(e.disabled)return;e.value&&(u.value=e.value,a.value=e.value),l.stopPropagation(),V(e.onClick)&&(V(n)&&n(),e.onClick(l)),e.close&&s();let f=o(r);h(),f?d.innerHTML=t.label:(t.selection&&c(r),t.modifyLabel&&e.modifyLabel!==!1&&(d.innerHTML=`${t.append?t.label+`: `:``}${e?.label||i()}`))},r.innerHTML=e?.label||i(),r};for(let e of t.options||[])if(e.heading){let t=document.createElement(`div`);t.style.cssText=`font-weight: bold`,t.classList.add(`dropdown-item`,zN),t.innerHTML=e.heading,m.appendChild(t)}else if(e.divider){let e=document.createElement(`hr`);e.classList.add(`dropdown-divider`,zN),m.appendChild(e)}else e.hide||m.appendChild(g(e));return t.options?.length&&(t.options[0].value&&(a.value=t.options[0].value),p.appendChild(m)),a.appendChild(p),e&&e.appendChild(a),a}var VN=`left`;function HN(e){let{title:t,placeholder:n,options:r,selectionLimit:i,createTable:a,createFilter:o}=e,s=`selectionControl`,c=`selectionTable`,l,u,d=[{label:`Cancel`,intent:`none`,close:!0}],f=()=>{u?u():l?.destroy&&l.destroy(),l=void 0},p=`
219
+ `,u.appendChild(f),l.appendChild(u),a.appendChild(l);let p=document.createElement(`div`);p.classList.add(`dropdown-menu`),p.setAttribute(`z-index`,`99998`);let m=document.createElement(`div`);m.classList.add(`dropdown-content`);let h=()=>{let e=p.querySelectorAll(`.dropdown-item`);for(let t of Array.from(e))t.classList.remove(`is-active`)},g=e=>{let r=document.createElement(`a`);r.className=RN;let l=e.disabled?`0.4`:`1`;return r.style.cssText=`text-decoration: none; opacity: ${l};`,e.color&&(r.style.color=e.color),r.classList.add(`dropdown-item`),e.isActive&&r.classList.add(`is-active`),e.value&&(r.value=e.value),e.class&&r.classList.add(e.class),r.onclick=l=>{if(e.disabled)return;e.value&&(u.value=e.value,a.value=e.value),l.stopPropagation(),V(e.onClick)&&(V(n)&&n(),e.onClick(l)),e.close&&s();let f=o(r);h(),f?d.innerHTML=t.label:(t.selection&&c(r),t.modifyLabel&&e.modifyLabel!==!1&&(d.innerHTML=`${t.append?t.label+`: `:``}${e?.label||i()}`))},r.innerHTML=e?.label||i(),r};for(let e of t.options||[])if(e.heading){let t=document.createElement(`div`);t.style.cssText=`font-weight: bold`,t.classList.add(`dropdown-item`,RN),t.innerHTML=e.heading,m.appendChild(t)}else if(e.divider){let e=document.createElement(`hr`);e.classList.add(`dropdown-divider`,RN),m.appendChild(e)}else e.hide||m.appendChild(g(e));return t.options?.length&&(t.options[0].value&&(a.value=t.options[0].value),p.appendChild(m)),a.appendChild(p),e&&e.appendChild(a),a}var BN=`left`;function VN(e){let{title:t,placeholder:n,options:r,selectionLimit:i,createTable:a,createFilter:o}=e,s=`selectionControl`,c=`selectionTable`,l,u,d=[{label:`Cancel`,intent:`none`,close:!0}],f=()=>{u?u():l?.destroy&&l.destroy(),l=void 0},p=`
220
220
  <div style='min-height: 420px'>
221
221
  <div id='${s}'></div>
222
222
  <div id='${c}'></div>
223
223
  </div>
224
- `;z.open({title:t,content:p,buttons:d,onClose:f});let m=e=>{e?.[0]?.onClick&&(e[0].onClick(),z.close())};if(a){let e=a({anchorId:c,data:r,selectionLimit:i,onSelected:m});l=e.table,u=e.destroy;let t=o?o(l):()=>{},d=[{onKeyDown:e=>e.keyCode===8&&e.target.value.length===1&&t(``),onChange:e=>t(e.target.value),onKeyUp:e=>t(e.target.value),clearSearch:()=>t(``),placeholder:n||`Search`,location:VN,search:!0}],f=document.getElementById(s)||void 0;lP({table:l,target:f,items:d})}else{let e=document.getElementById(c);if(e){UN({container:e,options:r,onSelected:m});let t=t=>{let n=e.querySelectorAll(`[data-select-item]`),r=t.toLowerCase();n.forEach(e=>{let n=e.textContent?.toLowerCase()||``;e.style.display=!t||n.includes(r)?``:`none`})},i=[{onKeyUp:e=>t(e.target.value),clearSearch:()=>t(``),placeholder:n||`Search`,location:VN,search:!0}];lP({target:document.getElementById(s)||void 0,items:i})}}}function UN({container:e,options:t,onSelected:n}){let r=document.createElement(`div`);r.style.cssText=`max-height: 380px; overflow-y: auto; padding: 0.5em 0;`;for(let e of t){let t=document.createElement(`a`);t.setAttribute(`data-select-item`,``),t.className=`panel-block font-medium`,t.style.cssText=`cursor: pointer; padding: 0.5em 1em; display: block; text-decoration: none; color: inherit;`,t.innerHTML=e.label,t.onmouseenter=()=>t.style.backgroundColor=`#f5f5f5`,t.onmouseleave=()=>t.style.backgroundColor=``,t.onclick=t=>{t.stopPropagation(),n([e])},r.appendChild(t)}e.appendChild(r)}var WN=`none`;function GN(e){let t=document.createElement(`button`);return t.className=`button font-medium`,e.disabled&&(t.disabled=!0),e.class&&t.classList.add(e.class),e.id&&(t.id=e.id),e.intent&&t.classList.add(e.intent),e.toolTip?.content&&Om(t,e.toolTip),t.innerHTML=e.label,e.visible===!1&&(t.style.display=WN),t}var KN=`center`,qN=``,JN=`flex`,YN=`left`,XN=`none`,ZN=`overlay`,QN=`right`,$N=({target:e})=>(t=[])=>{e.style.backgroundColor=t?.length?`var(--chc-hover-bg)`:qN;let n=(n,r,i)=>{let a=e.getElementsByClassName(`options_${n}`)[0];a&&(a.style.display=t?.length?r:i)};n(ZN,JN,XN),n(YN,XN,JN),n(KN,XN,JN),n(QN,XN,JN)},eP=`center`,tP=`header`,nP=``,rP=`left`,iP=`none`,aP=`overlay`,oP=`right`,sP=`buttonBar`,cP=`top`;function lP(e){let{table:t,targetClassName:n,items:r=[],onSelection:i,selectItemFn:a}=e,{target:o}=e,s=!!o;if(!o&&n&&(o=document.getElementsByClassName(n)?.[0]),!o)return{elements:{},inputs:{}};let c=0,l=0,u={},d={},f;if(s){ne(o);let e=_P();Object.assign(u,e.elements),o.appendChild(e.anchor)}let p=Object.assign({},...[aP,rP,eP,oP,tP].map(e=>{let t=o.getElementsByClassName(`options_${e}`)?.[0];return ne(t),{[e]:t}}).filter(Boolean)),m=$N({table:t,target:o}),h=(e,n)=>{V(n.onClick)&&(e.stopPropagation(),n.disabled||n.onClick(e,t),n.stateChange&&m())},g={onClick:()=>{},location:oP};for(let e of r){let t={...g};oe(e)&&Object.assign(t,e);let n=p[t.location];if(!n){console.log(t.location,p);continue}t.location===aP&&(c+=1),t.location===tP&&(uP(t,o),l+=1);let r=dP(e,t,n,m,h,a,u,d);r?.focus&&(f=r.focus)}let _=o.getElementsByClassName(`panelHeader`)[0];_&&(_.style.display=l?nP:iP),t?._controlBarSelectionHandler&&t.off(`rowSelectionChanged`,t._controlBarSelectionHandler);let v=(e,t)=>{V(i)&&i(t),c&&m(t)};return t&&(t._controlBarSelectionHandler=v),t?.on(`rowSelectionChanged`,v),m(t?.getSelectedRows?.()??[]),f&&setTimeout(()=>f.focus(),200),{elements:u,inputs:d}}function uP(e,t){if(V(e.headerClick)){let n=t.getElementsByClassName(`panelHeader`)[0];n&&(n.onclick=e.headerClick)}}function dP(e,t,n,r,i,a,o,s){if(!t.hide&&(t.input||t.placeholder||t.search)){let r=fP(e,t);return t.id&&(s[t.id]=r.input),t.id&&(o[t.id]=r.elem,r.elem.id=t.id),n?.appendChild(r.elem),t.focus?{focus:r.input}:void 0}if(!t.hide&&t.text){let e=document.createElement(`div`);e.className=`font-medium`,t.id&&(o[t.id]=e,e.id=t.id),e.innerHTML=t.text,e.onclick=e=>i(e,t),n?.appendChild(e);return}!t.id&&(!t?.label||t.hide)||(mP(t,n,r,i,a,o),(!(t?.label||t.tabs)||t.hide)&&o[t.id]&&(o[t.id].style.display=iP))}function fP(e,t){let n=document.createElement(`p`);n.className=`control ${t.search?`has-icons-left has-icons-right`:``}`;let r=document.createElement(`input`);if(r.className=`input font-medium`,r.setAttribute(`type`,`text`),r.setAttribute(`autocomplete`,`off`),r.setAttribute(`placeholder`,e.placeholder||nP),t.id&&r.setAttribute(`id`,t.id),t.onKeyDown&&r.addEventListener(`keydown`,e=>t.onKeyDown(e,t)),t.onChange&&r.addEventListener(`change`,e=>t.onChange(e,t)),t.onKeyUp&&r.addEventListener(`keyup`,e=>{t.clearSearch&&e.key===`Escape`&&(e.stopPropagation(),r.value=``,t.clearSearch()),t.onKeyUp(e,t)}),t.class&&r.classList.add(t.class),t.visible===!1&&(n.style.display=iP),t.value&&(r.value=t.value),n.appendChild(r),t.search&&pP(n,r,t),e.validator){let t=document.createElement(`p`);t.className=`help font-medium`,n.appendChild(t),r.addEventListener(`input`,n=>fn(e,n,r,t,e.validator))}return{elem:n,input:r}}function pP(e,t,n){let r=document.createElement(`span`);if(r.className=`icon is-small is-left font-medium`,r.innerHTML=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="16" height="16" fill="currentColor"><path d="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"/></svg>`,e.appendChild(r),V(n.clearSearch)){let r=document.createElement(`span`);r.className=`icon is-small is-right font-medium`,r.style.pointerEvents=`all`,r.style.cursor=`pointer`,r.innerHTML=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="16" height="16" fill="#dddada"><path d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"/></svg>`,r.onclick=e=>{e.stopPropagation(),t.value=``,n.clearSearch(),i()};let i=()=>{r.style.display=t.value?``:`none`};t.addEventListener(`input`,i),i(),e.appendChild(r)}}function mP(e,t,n,r,i,a){if(e.options){let r=BN({target:t,button:e,stateChange:n});e.visible===!1&&(r.style.display=iP),e.id&&(a[e.id]=r)}else if(oe(e.selection))hP(e,t,n,i,a);else if(e.tabs)gP(e,t,a);else{let n=GN(e);n.onclick=t=>r(t,e),e.id&&(a[e.id]=n),t?.appendChild(n)}}function hP(e,t,n,r,i){let{selection:{options:a,actions:o},actionPlacement:s,threshold:c=8,...l}=e;if(a?.length<c){a.length&&(s===cP?a.unshift({divider:!0}):a.push({divider:!0})),o.forEach(e=>{let{label:t,...n}=e,r={...n,label:`<p style="font-weight: bold">${t}</p>`};s===cP?a.unshift(r):a.push(r)});let r={...l,options:a},c=BN({target:t,button:r,stateChange:n});r.visible===!1&&(c.style.display=iP),r.id&&(i[e.id]=c)}else{let n=GN(e),o=r||HN;n.onclick=t=>{t.stopPropagation(),o({title:e.selectionTitle||`Select`,options:a})},e.id&&(i[e.id]=n),t?.appendChild(n)}}function gP(e,t,n){let r=document.createElement(`div`);r.className=`tabs is-toggle is-toggle-rounded`;let i=document.createElement(`ul`);r.appendChild(i),e.tabs.forEach(t=>{let n=document.createElement(`li`);t.active&&n.classList.add(`is-active`);let r=document.createElement(`a`);n.appendChild(r),r.onclick=r=>{i.querySelectorAll(`li`).forEach(e=>e.classList.remove(`is-active`)),n.classList.add(`is-active`),V(t.onClick)&&t.onClick(r,e)};let a=document.createElement(`span`);a.innerHTML=t.label,r.appendChild(a),i.appendChild(n)}),e.id&&(n[e.id]=r),t.appendChild(r)}function _P(){let e=document.createElement(`div`);e.className=`panel_container flexcol flexcenter`;let t=document.createElement(`div`);t.className=`panelHeader options_header`,t.style.display=iP,e.appendChild(t);let n=document.createElement(`div`);n.className=sP;let r={optionsOverlay:document.createElement(`div`),optionsLeft:document.createElement(`div`),optionsCenter:document.createElement(`div`),optionsRight:document.createElement(`div`)};r.optionsOverlay.className=`options_overlay`,r.optionsCenter.className=`options_center`,r.optionsRight.className=`options_right`,r.optionsLeft.className=`options_left`;for(let e of Object.values(r))n.appendChild(e);return e.appendChild(n),{elements:r,anchor:e,header:t}}var vP=()=>`sp-layout`,yP=()=>`sp-column`,bP=()=>`sp-panel`,xP=()=>`sp-panel-header`,SP=()=>`sp-panel-title`,CP=()=>`sp-panel-meta`,wP=()=>`sp-panel-actions`,TP=()=>`sp-panel-leading`,EP=()=>`sp-date-strip`,DP=()=>`sp-date-chip`,OP=()=>`sp-badges`,kP=()=>`sp-badge`,AP=()=>`sp-chips`,jP=()=>`sp-chip`,MP=()=>`sp-board`,NP=()=>`sp-venue`,PP=()=>`sp-venue-header`,FP=()=>`sp-venue-title`,IP=()=>`sp-venue-sub`,LP=()=>`sp-dropzone`,RP=()=>`sp-card`,zP=()=>`sp-card-title`,BP=()=>`sp-card-meta`,VP=()=>`sp-issues`,HP=()=>`sp-issue`,UP=()=>`sp-issue-code`,WP=()=>`sp-issue-msg`,GP=()=>`sp-issue-actions`,KP=()=>`sp-btn sp-btn--sm`,qP=()=>`sp-catalog`,JP=()=>`sp-catalog-toolbar`,YP=()=>`sp-input`,XP=()=>`sp-select`,ZP=()=>`sp-group`,QP=()=>`sp-group-header`,$P=()=>`sp-group-body`,eF=()=>`sp-catalog-item`,tF=()=>`sp-small`,nF=()=>`sp-popover-item`,rF=()=>`sp-popover-delete`,iF=()=>`sp-popover-divider`,aF=()=>`sp-insertion-line`,oF=()=>`sp-group-chevron`;function sF(e,t){let n=!!t?.hideLeft,r=t?.catalogSide===`left`,i=document.createElement(`div`);if(i.className=vP(),n)r?i.classList.add(`sp-catalog-left`):i.classList.add(`sp-no-left`);else{let t=document.createElement(`div`);t.className=yP(),t.appendChild(e.dateStrip.element),e.issuesPanel.element.style.flex=`1`,e.issuesPanel.element.style.minHeight=`0`,t.appendChild(e.issuesPanel.element),i.appendChild(t)}let a=document.createElement(`div`);a.className=yP(),e.venueBoard.element.style.flex=`1`,e.venueBoard.element.style.minHeight=`0`,a.appendChild(e.venueBoard.element);let o=document.createElement(`div`);o.className=yP(),e.roundCatalog.element.style.flex=`1 1 0`,e.roundCatalog.element.style.minHeight=`0`,o.appendChild(e.roundCatalog.element),r&&n?(i.appendChild(o),i.appendChild(a)):(i.appendChild(a),i.appendChild(o));function s(t){n||(e.dateStrip.update(t),e.issuesPanel.update(t)),e.venueBoard.update(t),e.roundCatalog.update(t)}return{element:i,update:s}}function cF(e){let t=null,n=null;function r(e){return`${e.date}|${e.venueId}|${e.index}`}function i(){t&&(t.destroy(),t=null,n=null)}function a(t){let n=document.createElement(`div`);n.style.cssText=`font-family:sans-serif; font-size:13px; min-width:150px;`;let r=document.createElement(`div`);r.className=nF(),r.textContent=`Set Not Before Time`,r.addEventListener(`click`,()=>{i(),e.onSetNotBeforeTime(t)}),n.appendChild(r);let a=document.createElement(`div`);a.className=iF(),n.appendChild(a);let o=document.createElement(`div`);return o.className=rF(),o.textContent=`Remove Round`,o.addEventListener(`click`,()=>{i(),e.onDelete(t)}),n.appendChild(o),n}return{show(e,o){let s=r(o);if(n===s){i();return}i();let c=Om(e,{content:a(o),allowHTML:!0,interactive:!0,trigger:`manual`,placement:`bottom`,appendTo:document.body,onHidden:()=>{t=null,n=null}});t=c,n=s,c.show()},destroy(){i()},isActiveFor(e){return n===r(e)}}}function lF(e){return structuredClone(e)}function uF(e,t,n){return Math.max(t,Math.min(n,e))}function dF(e){return`${e.tournamentId}|${e.eventId}|${e.drawId}|${e.structureId}|${e.roundNumber}`}function fF(e){return`${e.eventName?`${e.eventName} \u2013 `:``}${e.roundName??`Round ${e.roundNumber}`}${e.roundSegment?` (seg ${e.roundSegment.segmentNumber}/${e.roundSegment.segmentsCount})`:``}`}function pF(e,t){return!e||!t?!1:e.date===t.date&&e.venueId===t.venueId&&e.index===t.index}function mF(e){return{tournamentId:e.tournamentId,eventId:e.eventId,drawId:e.drawId,structureId:e.structureId,roundNumber:e.roundNumber}}function hF(e,t){return`${e}|${t.segmentNumber}/${t.segmentsCount}`}function gF(e){let t=new Map;for(let n of e)for(let e of n.venues)for(let r=0;r<e.rounds.length;r++){let i=e.rounds[r],a=dF(i),o=i.roundSegment,s=o?hF(a,o):a,c={locator:{date:n.scheduleDate,venueId:e.venueId,index:r,roundKey:mF(i),roundSegment:o},date:n.scheduleDate,venueId:e.venueId,roundSegment:o},l=t.get(s);l?l.push(c):t.set(s,[c])}return t}function _F(e){let t=new Map;for(let n of e)for(let e of n.venues)for(let n of e.rounds){if(!n.roundSegment)continue;let e=dF(n),r=t.get(e)??0;n.roundSegment.segmentsCount>r&&t.set(e,n.roundSegment.segmentsCount)}return t}function vF(e,t,n,r=`dim`){let i=t.toLowerCase().trim();return e.filter(e=>r===`hide`&&n.has(dF(e))?!1:i?`${e.eventName} ${e.drawName??``} ${e.roundName??``} ${e.drawId}`.toLowerCase().includes(i):!0).map(e=>({...e,isPlanned:n.has(dF(e))}))}function yF(e,t){let n=new Map,r=e=>t===`draw`?`${e.eventName} \u2014 ${e.drawName??e.drawId}`:t===`round`?e.roundName??`Round ${e.roundNumber}`:e.eventName;for(let t of e){let e=r(t),i=n.get(e);i?i.push(t):n.set(e,[t])}return new Map([...n.entries()].sort((e,t)=>e[0].localeCompare(t[0],void 0,{numeric:!0})))}function bF(e){let t=new Set;for(let n of e)for(let e of n.venues)for(let n of e.rounds)n.roundSegment||t.add(dF(n));return t}function xF(e){let t=new Set;for(let n of e)for(let e of n.venues)for(let n of e.rounds)if(n.roundSegment){let e=dF(n);t.add(hF(e,n.roundSegment))}return t}var SF=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function CF(e){return SF.test(e)}function wF(e){let t=document.createElement(`div`);t.className=bP(),t.style.overflowY=`auto`,t.style.scrollbarWidth=`thin`,t.style.scrollbarColor=`var(--sp-scrollbar) transparent`;let n=new Set,r=new Map,i=null,a=document.createElement(`div`);a.className=xP();let o=document.createElement(`div`);o.className=SP(),o.textContent=`Round Catalog`;let s=document.createElement(`div`);s.className=CP(),a.appendChild(o),a.appendChild(s),t.appendChild(a);let c=document.createElement(`div`);c.className=JP();let l=document.createElement(`input`);l.type=`text`,l.placeholder=`Search rounds...`,l.className=YP(),l.addEventListener(`input`,()=>e.onSearchChange(l.value));let u=Yx(l,()=>{l.value=``,e.onSearchChange(``),l.focus()}),d=document.createElement(`select`);d.className=XP();for(let[e,t]of[[`event`,`By Event`],[`draw`,`By Draw`],[`round`,`By Round`]]){let n=document.createElement(`option`);n.value=e,n.textContent=t,d.appendChild(n)}d.addEventListener(`change`,()=>e.onGroupByChange(d.value)),c.appendChild(u),c.appendChild(d),t.appendChild(c);let f=document.createElement(`div`);f.className=qP(),t.appendChild(f),f.addEventListener(`dragover`,e=>{e.preventDefault(),f.classList.add(`over`),e.dataTransfer.dropEffect=`move`}),f.addEventListener(`dragleave`,e=>{f.contains(e.relatedTarget)||f.classList.remove(`over`)}),f.addEventListener(`drop`,t=>{if(f.classList.remove(`over`),t.preventDefault(),!e.onDropRemove)return;let n;try{n=JSON.parse(t.dataTransfer.getData(`application/json`))}catch{return}n.type===`PLANNED_ROUND`&&e.onDropRemove(n.locator)});function p(t,n,i,a,o,s){let c=document.createElement(`div`);c.className=eF(),i&&c.classList.add(`segment`),t.isPlanned?(c.classList.add(n===`navigate`?`navigate`:`dimmed`),c.draggable=!1,n===`navigate`&&c.addEventListener(`click`,()=>{e.onNavigateToPlanned?.(t)})):(c.draggable=!0,c.addEventListener(`dragstart`,e=>{e.stopPropagation(),e.dataTransfer.setDragImage(c,c.offsetWidth/2,20);let n={type:`CATALOG_ROUND`,roundRef:t};i&&(n.roundSegment=i),e.dataTransfer.setData(`application/json`,JSON.stringify(n)),e.dataTransfer.effectAllowed=`copyMove`}));let l=document.createElement(`div`);l.className=zP();let u=t.roundName&&!t.roundName.startsWith(`rn=`)?t.roundName:`Round `+t.roundNumber,d=i?` \u00b7 Seg ${i.segmentNumber}/${i.segmentsCount}`:``;l.textContent=`${t.eventName} \u2014 ${u}${d}`;let f=document.createElement(`div`);f.className=BP();let p=i&&t.matchCountEstimate?Math.round(t.matchCountEstimate/i.segmentsCount):t.matchCountEstimate,m=p?` · `+p+` matches`:``,h=t.drawName&&!CF(t.drawName)?t.drawName:``;if(f.textContent=h?`${h}${m}`:m.replace(` · `,``)||``,c.appendChild(l),c.appendChild(f),o.length&&n!==`navigate`&&(c.appendChild(TF(o,s)),e.onDropRemove&&c.appendChild(DF(o,e.onDropRemove))),!(t.isPlanned&&n!==`navigate`)&&!t.isPlanned){let e=document.createElement(`div`);e.className=`sp-split-ctl`;let n=dF(t);if(i){let t=document.createElement(`button`);t.type=`button`,t.className=`sp-split-chip sp-split-collapse`,t.title=`Collapse to whole round`,t.textContent=`×`,t.addEventListener(`click`,e=>{e.stopPropagation(),r.delete(n),a()}),e.appendChild(t)}else for(let[t,i,o]of[[`½`,2,`Split into halves`],[`¼`,4,`Split into quarters`]]){let s=document.createElement(`button`);s.type=`button`,s.className=`sp-split-chip`,s.title=o,s.textContent=t,s.addEventListener(`click`,e=>{e.stopPropagation(),r.set(n,i),a()}),e.appendChild(s)}c.appendChild(e)}return c}function m(e){i=e;let t=e.plannedRoundBehavior,a=bF(e.profileDraft),o=xF(e.profileDraft),c=gF(e.profileDraft),h=_F(e.profileDraft),g=new Map(e.venues.map(e=>[e.venueId,e.name])),_=vF(e.roundCatalog,e.catalogSearchQuery,a,t),v=yF(_,e.catalogGroupBy),y=()=>i&&m(i);s.textContent=`${_.length} rounds`,l.value!==e.catalogSearchQuery&&(l.value=e.catalogSearchQuery,Xx(u)),d.value!==e.catalogGroupBy&&(d.value=e.catalogGroupBy),f.innerHTML=``;for(let[e,a]of v){let s=document.createElement(`div`);s.className=ZP();let l=n.has(e),u=document.createElement(`div`);u.className=QP();let d=document.createElement(`span`);d.className=oF(),d.textContent=l?`▶`:`▼`;let _=document.createElement(`span`);_.textContent=e,u.appendChild(d),u.appendChild(_),u.addEventListener(`click`,()=>{n.has(e)?n.delete(e):n.add(e),i&&m(i)});let v=document.createElement(`div`);v.className=$P(),l&&(v.style.display=`none`);for(let e of a){let n=dF(e),i=r.get(n)??h.get(n);if(!i){let r=c.get(n)??[];v.appendChild(p(e,t,void 0,y,r,g));continue}for(let r=1;r<=i;r++){let a={segmentNumber:r,segmentsCount:i},s=e.isPlanned||o.has(hF(n,a));if(s&&t===`hide`)continue;let l=c.get(hF(n,a))??[];v.appendChild(p({...e,isPlanned:s},t,a,y,l,g))}}s.appendChild(u),s.appendChild(v),f.appendChild(s)}}return{element:t,update:m}}function TF(e,t){let n=document.createElement(`div`);n.className=`sp-catalog-placements`;for(let r of e)n.appendChild(EF(r,t));return n}function EF(e,t){let n=document.createElement(`div`);n.className=`sp-catalog-placement`;let r=document.createElement(`span`);r.className=`sp-catalog-placement-icon`,n.appendChild(r);let i=document.createElement(`span`);i.className=`sp-catalog-placement-label`;let a=t.get(e.venueId)||e.venueId,o=e.roundSegment?` · Seg ${e.roundSegment.segmentNumber}/${e.roundSegment.segmentsCount}`:``;return i.textContent=`${OF(e.date)} · ${a}${o}`,n.appendChild(i),n}function DF(e,t){let n=document.createElement(`div`);n.className=`sp-split-ctl sp-split-ctl-stack`;for(let r of e){let e=document.createElement(`button`);e.type=`button`,e.className=`sp-split-chip sp-split-collapse`,e.title=`Remove this placement`,e.textContent=`×`,e.addEventListener(`click`,e=>{e.stopPropagation(),t(r.locator)}),n.appendChild(e)}return n}function OF(e){try{let t=new Date(`${e}T12:00:00`);return Number.isNaN(t.getTime())?e:`${t.toLocaleDateString(void 0,{weekday:`short`})} ${t.toLocaleDateString(void 0,{month:`short`})} ${t.getDate()}`}catch{return e}}function kF(e){let t=document.createElement(`div`);t.className=bP();let n=document.createElement(`div`);n.className=xP();let r=document.createElement(`div`);r.className=SP(),r.textContent=`Issues`;let i=document.createElement(`div`);i.className=CP(),n.appendChild(r),n.appendChild(i),t.appendChild(n);let a=document.createElement(`div`);a.className=VP(),t.appendChild(a);function o(t){let n=t.issueIndex.all;if(i.textContent=`${n.length} total (${t.issueIndex.bySeverity.ERROR.length} errors)`,a.innerHTML=``,!n.length){let e=document.createElement(`div`);e.className=tF(),e.textContent=`No issues. Drag rounds into the board to build a profile.`,a.appendChild(e);return}for(let t of n.slice(0,30)){let n=document.createElement(`div`);n.className=HP(),t.severity===`ERROR`?n.classList.add(`error`):t.severity===`WARN`?n.classList.add(`warn`):n.classList.add(`info`);let r=document.createElement(`div`);r.className=UP(),r.textContent=`${t.severity} \u00b7 ${t.code}`;let i=document.createElement(`div`);if(i.className=WP(),i.textContent=t.message,n.appendChild(r),n.appendChild(i),t.fixActions?.length){let r=document.createElement(`div`);r.className=GP();for(let n of t.fixActions){let t=document.createElement(`button`);t.className=KP(),t.textContent=n.label??n.kind,t.addEventListener(`click`,()=>e.onFixAction(n)),r.appendChild(t)}n.appendChild(r)}a.appendChild(n)}}return{element:t,update:o}}var{ROUND_ROBIN:AF,ROUND_ROBIN_WITH_PLAYOFF:jF}=t.drawDefinitionConstants,MF=`Jump to prerequisite`;function NF({profile:e,availability:t,demand:n,dependencies:r,venueOrder:i}){let a=[];if(t?.isDateAvailable)for(let n of e){let e=t.isDateAvailable(n.scheduleDate);e.ok||a.push({code:`DATE_UNAVAILABLE`,severity:`ERROR`,message:`Can't schedule on ${n.scheduleDate} \u2014 day is unavailable${e.reason?`: `+e.reason:``}.`,context:{date:n.scheduleDate},fixActions:[{kind:`OPEN_AVAILABILITY_GRID`,date:n.scheduleDate,label:`Tune availability`}]})}a.push(...PF(e,t,n));let o=HF(e);for(let e of o){let t=e.round.roundSegment;t&&(Number.isInteger(t.segmentNumber)&&Number.isInteger(t.segmentsCount)&&t.segmentsCount>=2&&t.segmentNumber>=1&&t.segmentNumber<=t.segmentsCount||a.push({code:`INVALID_SEGMENT_CONFIG`,severity:`ERROR`,message:`Invalid segment configuration for ${fF(e.round)}.`,context:{locator:e.locator,date:e.locator.date,venueId:e.locator.venueId}}))}let s=new Map,c=new Map;for(let e of o){let t=e.round,n=dF(t);if(!t.roundSegment)s.has(n)?a.push({code:`DUPLICATE_ROUND`,severity:`ERROR`,message:`Round is planned more than once: ${fF(t)}.`,context:{scope:`${t.drawId}|${t.structureId}`,locator:e.locator,date:e.locator.date,venueId:e.locator.venueId},fixActions:[{kind:`JUMP_TO_ITEM`,locator:s.get(n),label:`Jump to existing`}]}):s.set(n,e.locator);else{let r=`${n}|${t.roundSegment.segmentNumber}/${t.roundSegment.segmentsCount}`;c.has(r)?a.push({code:`DUPLICATE_SEGMENT`,severity:`ERROR`,message:`Segment planned more than once: ${fF(t)}.`,context:{scope:`${t.drawId}|${t.structureId}`,locator:e.locator,date:e.locator.date,venueId:e.locator.venueId},fixActions:[{kind:`JUMP_TO_ITEM`,locator:c.get(r),label:`Jump to existing`}]}):c.set(r,e.locator)}}return a.push(...IF({profile:e,venueOrder:i})),r?.getRoundDependencies&&a.push(...BF(o,r)),a}function PF(e,t,n){if(!t?.getDayCapacityMinutes||!n?.estimateDayDemandMinutes)return[];let r=[];for(let i of e){let a=t.getDayCapacityMinutes(i.scheduleDate),o=n.estimateDayDemandMinutes(i.scheduleDate,e);if(a>0&&o>a){let e=Math.round((o-a)/60*10)/10;r.push({code:`DAY_OVERLOAD`,severity:`WARN`,message:`${i.scheduleDate} is overloaded by ~${e}h (${Math.round(o/60)}h planned vs ${Math.round(a/60)}h available).`,context:{date:i.scheduleDate},fixActions:[{kind:`OPEN_AVAILABILITY_GRID`,date:i.scheduleDate,label:`Tune availability`}]})}}return r}var FF=new Set([AF,jF]);function IF({profile:e}){let t=HF(e),n=LF(t),r=RF(t);return WF([...n,...r])}function LF(e){let t=[],n=UF(e,e=>`${e.round.structureId}|${e.locator.date}|${e.locator.venueId}`);for(let[e,r]of n.entries()){let n=r[0]?.round.structureType;if(!(n&&FF.has(n))){r.sort((e,t)=>e.locator.index-t.locator.index);for(let n=0;n<r.length;n++){let i=r[n],a=null;for(let e=n-1;e>=0;e--)if(r[e].round.roundNumber>i.round.roundNumber){a=r[e];break}if(!a)continue;let o=VF(r,n,a);t.push({code:`ROUND_ORDER_VIOLATION`,severity:`ERROR`,message:`Cannot place ${fF(i.round)} before ${fF(a.round)} in this venue.`,context:{scope:e,drawId:i.round.drawId,structureId:i.round.structureId,date:i.locator.date,venueId:i.locator.venueId,locator:i.locator,prerequisite:a.locator},fixActions:[{kind:`JUMP_TO_ITEM`,locator:a.locator,label:MF},...o.moveOffenderAfter?[{kind:`MOVE_ITEM_AFTER`,locator:i.locator,after:o.moveOffenderAfter,label:`Move offending round after prerequisite set`}]:[],...o.movePrereqBefore?[{kind:`MOVE_ITEM_BEFORE`,locator:a.locator,before:o.movePrereqBefore,label:`Move prerequisite before offending round`}]:[]]})}}}return t}function RF(e){let t=[],n=UF(e,e=>e.round.structureId);for(let[e,r]of n.entries()){let n=r[0]?.round.structureType;if(n&&FF.has(n))continue;let i=new Map;for(let e of r){let t=e.locator.date,n=i.get(t);n?n.push(e):i.set(t,[e])}let a=[...i.keys()].sort();if(a.length<2)continue;let o=-1/0,s=null;for(let n of a){let r=i.get(n);for(let i of r)i.round.roundNumber<o&&s&&t.push({code:`ROUND_ORDER_VIOLATION`,severity:`ERROR`,message:`${fF(s.round)} is scheduled on ${s.locator.date} but its prerequisite ${fF(i.round)} is on the later date ${n}.`,context:{scope:`cross-date|${e}`,drawId:s.round.drawId,structureId:e,date:s.locator.date,venueId:s.locator.venueId,locator:s.locator,prerequisite:i.locator,reason:`cross-date`},fixActions:[{kind:`JUMP_TO_ITEM`,locator:i.locator,label:MF}]});for(let e of r)e.round.roundNumber>o&&(o=e.round.roundNumber,s=e)}}return t}function zF(e,t){if(!(e.round.structureId===t.round.structureId&&e.locator.date===t.locator.date&&e.locator.venueId===t.locator.venueId)){if(e.locator.date<t.locator.date)return{code:`DEPENDENCY_VIOLATION`,severity:`ERROR`,message:`${fF(e.round)} is scheduled on ${e.locator.date} but depends on ${fF(t.round)} which is on the later date ${t.locator.date}.`,context:{date:e.locator.date,venueId:e.locator.venueId,locator:e.locator,prerequisite:t.locator,reason:`cross-date`},fixActions:[{kind:`JUMP_TO_ITEM`,locator:t.locator,label:MF}]};if(e.locator.date===t.locator.date&&e.locator.venueId===t.locator.venueId&&e.locator.index<t.locator.index)return{code:`DEPENDENCY_VIOLATION`,severity:`ERROR`,message:`${fF(e.round)} is listed before its prerequisite ${fF(t.round)} in the same venue on ${e.locator.date}.`,context:{date:e.locator.date,venueId:e.locator.venueId,locator:e.locator,prerequisite:t.locator,reason:`cross-structure-same-day`},fixActions:[{kind:`JUMP_TO_ITEM`,locator:t.locator,label:MF},{kind:`MOVE_ITEM_AFTER`,locator:e.locator,after:t.locator,label:`Move after prerequisite`},{kind:`MOVE_ITEM_BEFORE`,locator:t.locator,before:e.locator,label:`Move prerequisite before`}]}}}function BF(e,t){let n=[],r=UF(e,e=>dF(e.round));for(let[e,i]of r.entries()){let a=t.getRoundDependencies(e);if(a.length)for(let e of a){let t=r.get(e);if(t)for(let e of i)for(let r of t){let t=zF(e,r);t&&n.push(t)}}}return WF(n)}function VF(e,t,n){let r=e[t],i=e.indexOf(n);for(let t=i+1;t<e.length;t++)e[t].round.roundNumber>=n.round.roundNumber&&(i=t);return{moveOffenderAfter:e[i].locator,movePrereqBefore:r.locator}}function HF(e){let t=[];for(let n of e)for(let e of n.venues)for(let r=0;r<e.rounds.length;r++){let i=e.rounds[r];t.push({round:i,locator:{date:n.scheduleDate,venueId:e.venueId,index:r,roundKey:mF(i),roundSegment:i.roundSegment}})}return t}function UF(e,t){let n=new Map;for(let r of e){let e=t(r),i=n.get(e);i?i.push(r):n.set(e,[r])}return n}function WF(e){let t=new Set,n=[];for(let r of e){let e=r.code+`|`+r.message+`|`+(r.context?.scope??``)+`|`+JSON.stringify(r.context?.locator??{});t.has(e)||(t.add(e),n.push(r))}return n}function GF(e){let t={ERROR:[],WARN:[],INFO:[]},n={},r={},i={},a={total:e.length,ERROR:0,WARN:0,INFO:0,byDate:{},byVenue:{},byDraw:{}},o=e=>e===`ERROR`?0:e===`WARN`?1:2,s=(e,t)=>o(e.severity)-o(t.severity)||e.code.localeCompare(t.code)||e.message.localeCompare(t.message);for(let o of e){t[o.severity].push(o),a[o.severity]++;let e=o.context?.date??o.context?.locator?.date,s=o.context?.venueId??o.context?.locator?.venueId,c=o.context?.scope??(o.context?.drawId&&o.context?.structureId?`${o.context.drawId}|${o.context.structureId}`:void 0);e&&(n[e]??=[]).push(o),s&&(r[s]??=[]).push(o),c&&(i[c]??=[]).push(o),KF(a.byDate,e,o.severity),KF(a.byVenue,s,o.severity),KF(a.byDraw,c,o.severity)}for(let e of Object.keys(t))t[e].sort(s);for(let e of[n,r,i])for(let t of Object.keys(e))e[t].sort(s);return{all:e,bySeverity:t,byDate:n,byVenue:r,byDraw:i,counts:a}}function KF(e,t,n){if(!t)return;let r=e[t]??={total:0,ERROR:0,WARN:0,INFO:0};r.total++,r[n]++}function qF(e,t,n){let r=lF(e),{date:i,venueId:a}=n,o=YF(JF(r,i),a);if(t.type===`CATALOG_ROUND`){let e={tournamentId:t.roundRef.tournamentId,eventId:t.roundRef.eventId,eventName:t.roundRef.eventName,drawId:t.roundRef.drawId,drawName:t.roundRef.drawName,structureId:t.roundRef.structureId,structureType:t.roundRef.structureType,roundNumber:t.roundRef.roundNumber,roundName:t.roundRef.roundName};t.roundSegment&&(e.roundSegment=t.roundSegment);let i=uF(n.index,0,o.rounds.length);return o.rounds.splice(i,0,e),XF(o.rounds),{ok:!0,profile:r}}if(t.type===`PLANNED_ROUND`){let{locator:e}=t,s=YF(JF(r,e.date),e.venueId),[c]=s.rounds.splice(e.index,1);XF(s.rounds);let l=n.index;return e.date===i&&e.venueId===a&&e.index<l&&--l,l=uF(l,0,o.rounds.length),o.rounds.splice(l,0,c),XF(o.rounds),{ok:!0,profile:r}}return{ok:!1,profile:e}}function JF(e,t){let n=e.find(e=>e.scheduleDate===t);return n||(n={scheduleDate:t,venues:[]},e.push(n),e.sort((e,t)=>e.scheduleDate.localeCompare(t.scheduleDate))),n}function YF(e,t){let n=e.venues.find(e=>e.venueId===t);return n||(n={venueId:t,rounds:[]},e.venues.push(n)),n}function XF(e){for(let t=0;t<e.length;t++)e[t].sortOrder=t+1}function ZF(e,t,n){return e.find(e=>e.scheduleDate===t)?.venues?.find(e=>e.venueId===n)?.rounds??[]}function QF(e,t){return(e.find(e=>e.scheduleDate===t.date)?.venues?.find(e=>e.venueId===t.venueId))?.rounds?.[t.index]??null}function $F(e,t){return e.filter(e=>eI(e.context?.locator,t)||eI(e.context?.prerequisite,t))}function eI(e,t){return!!e&&e.date===t.date&&e.venueId===t.venueId&&e.index===t.index}function tI(e){return e.length?e.some(e=>e.severity===`ERROR`)?`ERROR`:e.some(e=>e.severity===`WARN`)?`WARN`:`INFO`:null}function nI(e,t){let n=dF(t);for(let t of e)for(let e of t.venues)for(let r=0;r<e.rounds.length;r++){let i=e.rounds[r];if(dF(mF(i))===n)return{date:t.scheduleDate,venueId:e.venueId,index:r,roundKey:mF(i),roundSegment:i.roundSegment}}return null}var rI=class{constructor(e){this.listeners=new Set,this.config=e;let t={all:[],bySeverity:{ERROR:[],WARN:[],INFO:[]},byDate:{},byVenue:{},byDraw:{},counts:{total:0,ERROR:0,WARN:0,INFO:0,byDate:{},byVenue:{},byDraw:{}}};this.state={profileDraft:lF(e.initialProfile??[]),venues:e.venues,roundCatalog:e.roundCatalog,schedulableDates:e.schedulableDates,activeDates:e.activeDates,selectedDate:e.selectedDate??e.schedulableDates[0]??null,selectedLocator:null,ruleResults:[],issueIndex:t,catalogSearchQuery:``,catalogGroupBy:`event`,plannedRoundBehavior:e.plannedRoundBehavior??`dim`},this.revalidate()}getState(){return this.state}getSchedulingProfile(){return lF(this.state.profileDraft)}selectDate(e){this.state.selectedDate!==e&&this.setState({selectedDate:e,selectedLocator:null})}selectCard(e){this.setState({selectedLocator:e})}setCatalogSearch(e){this.setState({catalogSearchQuery:e})}setCatalogGroupBy(e){this.setState({catalogGroupBy:e})}navigateToRound(e){let t=nI(this.state.profileDraft,{tournamentId:e.tournamentId,eventId:e.eventId,drawId:e.drawId,structureId:e.structureId,roundNumber:e.roundNumber});t&&this.setState({selectedDate:t.date,selectedLocator:t})}dropRound(e,t){try{let n=qF(this.state.profileDraft,e,t);if(!n.ok)return{ok:!1,errorMessage:`Invalid drop operation`};let r=new Set(this.state.ruleResults.filter(e=>e.severity===`ERROR`).map(iI)),i=NF({profile:n.profile,availability:this.config.availabilityAdapter,demand:this.config.demandAdapter,dependencies:this.config.dependencyAdapter,venueOrder:this.config.venueOrder}).filter(e=>e.severity===`ERROR`).filter(e=>!r.has(iI(e)));return i.length?(this.addRejectionNotice(i[0].message),{ok:!1,errorMessage:i[0].message}):(this.commitProfile(n.profile),{ok:!0})}catch(e){return{ok:!1,errorMessage:String(e)}}}removeRound(e){let t=lF(this.state.profileDraft),n=t.find(t=>t.scheduleDate===e.date);if(!n)return;let r=n.venues.find(t=>t.venueId===e.venueId);if(r&&!(e.index<0||e.index>=r.rounds.length)){r.rounds.splice(e.index,1);for(let e=0;e<r.rounds.length;e++)r.rounds[e].sortOrder=e+1;this.commitProfile(t),this.state.selectedLocator?.date===e.date&&this.state.selectedLocator?.venueId===e.venueId&&this.state.selectedLocator?.index===e.index&&this.setState({selectedLocator:null})}}setNotBeforeTime(e,t){let n=lF(this.state.profileDraft),r=n.find(t=>t.scheduleDate===e.date);if(!r)return;let i=r.venues.find(t=>t.venueId===e.venueId);if(!i)return;let a=i.rounds[e.index];a&&(t?a.notBeforeTime=t:delete a.notBeforeTime,this.commitProfile(n))}applyFixAction(e){if(e.kind===`JUMP_TO_ITEM`&&e.locator){this.setState({selectedDate:e.locator.date,selectedLocator:e.locator});return}if(e.kind===`OPEN_AVAILABILITY_GRID`){this.config.onFixAction?.(e);return}if(e.kind===`MOVE_ITEM_AFTER`&&e.locator&&e.after){let t=aI(this.state.profileDraft,e.locator,e.after);this.commitProfile(t);return}if(e.kind===`MOVE_ITEM_BEFORE`&&e.locator&&e.before){let t=oI(this.state.profileDraft,e.locator,e.before);this.commitProfile(t);return}this.config.onFixAction?.(e)}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setState(e){this.state={...this.state,...e},this.emit()}commitProfile(e){this.state={...this.state,profileDraft:e},this.revalidate(),this.config.onProfileChanged?.(lF(e))}addRejectionNotice(e){let t={code:`DROP_REJECTED`,severity:`WARN`,message:`Drop rejected: ${e}`,context:{}},n=[...this.state.ruleResults.filter(e=>e.code!==`DROP_REJECTED`),t],r=GF(n);this.state={...this.state,ruleResults:n,issueIndex:r},this.emit()}revalidate(){let e=NF({profile:this.state.profileDraft,availability:this.config.availabilityAdapter,demand:this.config.demandAdapter,dependencies:this.config.dependencyAdapter,venueOrder:this.config.venueOrder}),t=GF(e);this.state={...this.state,ruleResults:e,issueIndex:t},this.emit()}emit(){for(let e of this.listeners)e(this.state)}};function iI(e){return`${e.code}|${e.context?.scope??``}|${e.context?.structureId??``}|${e.context?.date??``}`}function aI(e,t,n){let r=lF(e),i=sI(r,t);if(!i)return e;let a=cI(r,n.date,n.venueId),o=Math.min(a.length,n.index+1);return a.splice(o,0,i),r}function oI(e,t,n){let r=lF(e),i=sI(r,t);if(!i)return e;let a=cI(r,n.date,n.venueId),o=Math.max(0,Math.min(a.length,n.index));return a.splice(o,0,i),r}function sI(e,t){let n=e.find(e=>e.scheduleDate===t.date);if(!n)return null;let r=n.venues.find(e=>e.venueId===t.venueId);return!r||t.index<0||t.index>=r.rounds.length?null:r.rounds.splice(t.index,1)[0]}function cI(e,t,n){let r=e.find(e=>e.scheduleDate===t);r||(r={scheduleDate:t,venues:[]},e.push(r));let i=r.venues.find(e=>e.venueId===n);return i||(i={venueId:n,rounds:[]},r.venues.push(i)),i.rounds}function lI(e,t){let{round:n,locator:r,isSelected:i,severity:a}=e,o=document.createElement(`div`);o.className=RP(),i&&o.classList.add(`selected`),a===`ERROR`?o.classList.add(`error`):a===`WARN`&&o.classList.add(`warn`),o.draggable=!0,o.addEventListener(`dragstart`,e=>{e.stopPropagation(),e.dataTransfer.setDragImage(o,o.offsetWidth/2,20),e.dataTransfer.setData(`application/json`,JSON.stringify({type:`PLANNED_ROUND`,locator:r})),e.dataTransfer.effectAllowed=`copyMove`}),o.addEventListener(`click`,e=>{e.stopPropagation(),t.onClick(r)}),t.onContextMenu&&o.addEventListener(`contextmenu`,e=>{e.preventDefault(),e.stopPropagation(),t.onContextMenu(r,o)});let s=document.createElement(`div`);s.className=zP();let c=n.roundName&&!n.roundName.startsWith(`rn=`)?n.roundName:`Round `+n.roundNumber;s.textContent=(n.eventName?n.eventName+` — `:``)+c,o.appendChild(s);let l=document.createElement(`div`);l.className=BP(),l.textContent=[n.drawName||``,n.matchCountEstimate?`${n.matchCountEstimate} matches`:``].filter(Boolean).join(` · `),o.appendChild(l);let u=document.createElement(`div`);return u.className=AP(),n.roundSegment&&u.appendChild(uI(`Seg ${n.roundSegment.segmentNumber}/${n.roundSegment.segmentsCount}`,`seg`)),n.notBeforeTime&&u.appendChild(uI(`NB ${n.notBeforeTime}`,`nb`)),a===`ERROR`?u.appendChild(uI(`Error`,`err`)):a===`WARN`&&u.appendChild(uI(`Warn`,`warn`)),u.children.length&&o.appendChild(u),o}function uI(e,t){let n=document.createElement(`div`);return n.className=jP()+` `+t,n.textContent=e,n}function dI(e,t){let n=document.createElement(`div`);n.className=bP();let r=document.createElement(`div`);r.className=xP();let i=t?.titleLeadingActions,a=document.createElement(`div`);if(a.className=SP(),a.textContent=`Day Plan`,i){let e=document.createElement(`div`);e.className=TP();let t=Array.isArray(i)?i:[i];for(let n of t)e.appendChild(n);e.appendChild(a),r.appendChild(e)}else r.appendChild(a);let o=t?.headerActions;if(o){let e=document.createElement(`div`);e.className=wP();let t=Array.isArray(o)?o:[o];for(let n of t)e.appendChild(n);r.appendChild(e)}n.appendChild(r);let s=document.createElement(`div`);s.className=MP(),n.appendChild(s);function c(t){let n=t.selectedDate;s.innerHTML=``;let r=Math.max(1,t.venues.length);r>4?(s.classList.add(`sp-board-scroll`),s.style.gridTemplateColumns=``):(s.classList.remove(`sp-board-scroll`),s.style.gridTemplateColumns=`repeat(${r}, 1fr)`);for(let r of t.venues){let i=document.createElement(`div`);i.className=NP();let a=document.createElement(`div`);a.className=PP();let o=document.createElement(`div`),c=document.createElement(`div`);c.className=FP(),c.textContent=r.name;let l=document.createElement(`div`);l.className=IP(),l.textContent=``,o.appendChild(c),o.appendChild(l);let u=t.issueIndex.counts.byVenue[r.venueId],d=document.createElement(`div`);d.className=kP(),u?.ERROR?(d.classList.add(`err`),d.textContent=`${u.ERROR} err`):u?.WARN?(d.classList.add(`warn`),d.textContent=`${u.WARN} warn`):(d.classList.add(`ok`),d.textContent=`OK`),a.appendChild(o),a.appendChild(d);let f=document.createElement(`div`);if(f.className=LP(),f.dataset.venue=r.venueId,n){let i=ZF(t.profileDraft,n,r.venueId);if(!i.length){let e=document.createElement(`div`);e.className=tF(),e.textContent=`Drop rounds here.`,f.appendChild(e)}i.forEach((i,a)=>{let o={date:n,venueId:r.venueId,index:a,roundKey:mF(i),roundSegment:i.roundSegment},s=tI($F(t.ruleResults,o)),c=lI({round:i,locator:o,isSelected:pF(t.selectedLocator,o),severity:s},{onClick:e.onCardClick,onContextMenu:e.onCardContextMenu});f.appendChild(c)})}else{let e=document.createElement(`div`);e.className=tF(),e.textContent=`Select a date to plan.`,f.appendChild(e)}let p=document.createElement(`div`);p.className=aF(),p.style.display=`none`,f.addEventListener(`dragover`,e=>{if(!n)return;e.preventDefault(),f.classList.add(`over`),e.dataTransfer.dropEffect=`move`;let t=pI(f,e.clientY,p),r=fI(f,p);p.style.display=``,t<r.length?f.insertBefore(p,r[t]):f.appendChild(p)}),f.addEventListener(`dragleave`,e=>{f.contains(e.relatedTarget)||(f.classList.remove(`over`),p.style.display=`none`)}),f.addEventListener(`drop`,t=>{if(f.classList.remove(`over`),p.style.display=`none`,t.preventDefault(),!n)return;let i;try{i=JSON.parse(t.dataTransfer.getData(`application/json`))}catch{return}let a=pI(f,t.clientY,p),o={date:n,venueId:r.venueId,index:a};e.onDrop(i,o)}),i.appendChild(a),i.appendChild(f),s.appendChild(i)}}return{element:n,update:c}}function fI(e,t){return Array.from(e.querySelectorAll(`[draggable="true"]`)).filter(e=>e!==t)}function pI(e,t,n){let r=fI(e,n);for(let e=0;e<r.length;e++){let n=r[e].getBoundingClientRect();if(t<n.top+n.height/2)return e}return r.length}function mI(e){let t=document.createElement(`div`);t.className=bP();let n=document.createElement(`div`);n.className=xP();let r=document.createElement(`div`);r.className=SP(),r.textContent=`Dates`;let i=document.createElement(`div`);i.className=CP(),n.appendChild(r),n.appendChild(i),t.appendChild(n);let a=document.createElement(`div`);a.className=EP(),t.appendChild(a);function o(t){i.textContent=`${t.schedulableDates.length} schedulable`,a.innerHTML=``;let n=t.activeDates?new Set(t.activeDates):null;for(let r of t.schedulableDates){let i=!n||n.has(r),o=t.issueIndex.counts.byDate[r],s=document.createElement(`div`);s.className=DP(),r===t.selectedDate&&s.classList.add(`selected`),i||s.classList.add(`inactive`),s.setAttribute(`data-date`,r);let c=document.createElement(`div`),l=document.createElement(`div`);l.style.cssText=`font-weight:800;font-size:12px`,l.textContent=r;let u=document.createElement(`div`);u.style.cssText=`font-size:11px;color:var(--sp-muted)`,u.textContent=i?`Active`:`Inactive`,c.appendChild(l),c.appendChild(u);let d=document.createElement(`div`);d.className=OP(),o?.ERROR&&d.appendChild(hI(`${o.ERROR} err`,`err`)),o?.WARN&&d.appendChild(hI(`${o.WARN} warn`,`warn`)),!o?.ERROR&&!o?.WARN&&d.appendChild(hI(`OK`,`ok`)),s.appendChild(c),s.appendChild(d),s.addEventListener(`click`,()=>e.onDateSelected(r)),a.appendChild(s)}}return{element:t,update:o}}function hI(e,t){let n=document.createElement(`div`);return n.className=kP()+` `+t,n.textContent=e,n}var gI=class{constructor(e){this.container=null,this.store=new rI(e),this.popover=cF({onDelete:e=>{this.store.removeRound(e)},onSetNotBeforeTime:e=>{let t=prompt(`Enter not-before time (HH:MM):`,`10:00`);t!==null&&this.store.setNotBeforeTime(e,t||void 0)}});let t=mI({onDateSelected:e=>this.store.selectDate(e)}),n=kF({onFixAction:e=>this.store.applyFixAction(e)}),r=dI({onDrop:(e,t)=>{this.store.dropRound(e,t)},onCardClick:e=>this.store.selectCard(e),onCardContextMenu:(e,t)=>{this.popover.show(t,e)}},{headerActions:e.headerActions,titleLeadingActions:e.titleLeadingActions}),i=wF({onSearchChange:e=>this.store.setCatalogSearch(e),onGroupByChange:e=>this.store.setCatalogGroupBy(e),onDropRemove:e=>this.store.removeRound(e),onNavigateToPlanned:e=>this.store.navigateToRound(e)});this.layout=sF({dateStrip:t,issuesPanel:n,venueBoard:r,roundCatalog:i},{hideLeft:e.hideLeft,catalogSide:e.catalogSide}),this.unsubscribe=this.store.subscribe(e=>{this.layout.update(e)}),this.layout.update(this.store.getState())}render(e){this.container=e,e.appendChild(this.layout.element)}destroy(){this.unsubscribe(),this.popover.destroy(),this.container&&this.layout.element.parentNode===this.container&&this.layout.element.remove(),this.container=null}getProfile(){return this.store.getSchedulingProfile()}getStore(){return this.store}};function _I(e,t){let n=new gI(e);return n.render(t),n}var vI=class{constructor(){this.selectedDay=null,this.selectedVenue=null,this.selectedCourt=null,this.layerVisibility=new Map,this.listeners=new Set}setSelectedDay(e){this.selectedDay!==e&&(this.selectedDay=e,this.emit({selectedDay:e}))}getSelectedDay(){return this.selectedDay}setSelectedVenue(e){this.selectedVenue!==e&&(this.selectedVenue=e,this.emit({selectedVenue:e}))}getSelectedVenue(){return this.selectedVenue}setSelectedCourt(e){this.selectedCourt!==e&&(this.selectedCourt=e,this.emit({selectedCourt:e}))}getSelectedCourt(){return this.selectedCourt}setLayerVisibility(e,t){this.layerVisibility.set(e,t),this.emit({layerVisibility:new Map(this.layerVisibility)})}getLayerVisibility(){return new Map(this.layerVisibility)}isLayerVisible(e){return this.layerVisibility.get(e)??!0}getSnapshot(){return{selectedDay:this.selectedDay,selectedVenue:this.selectedVenue,selectedCourt:this.selectedCourt,layerVisibility:new Map(this.layerVisibility)}}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}emit(e){let t={type:`VIEW_CHANGED`,payload:e};for(let e of this.listeners)e(t)}},yI={AVAILABLE:`rgba(33, 141, 141, 0.15)`,BLOCKED:`#95a5a6`,PRACTICE:`#9b59b6`,MAINTENANCE:`#f39c12`,RESERVED:`#3498db`,CLOSED:`#2c3e50`,SCHEDULED:`#27ae60`,SOFT_BLOCK:`#5dade2`,HARD_BLOCK:`#e74c3c`,LOCKED:`#34495e`,UNSPECIFIED:`#ecf0f1`};function bI(e,t,n={}){let r=[],i=new Map;for(let e of t){let t=wI(e.ref);i.set(t,e)}let a=new Set;for(let t of e)for(let e of t.rails)a.add(wI(e.court));for(let e of a){let t=i.get(e);if(!t)continue;let n={id:e,content:t.name,courtRef:t.ref,surface:t.surface,indoor:t.indoor,hasLights:t.hasLights,tags:t.tags};r.push(n)}return r}function xI(e,t={}){let{layerVisibility:n=new Map,showSegmentLabels:r=!1,colorScheme:i=yI}=t,a=[];for(let t of e)for(let e of t.rails){let t=wI(e.court);for(let o of e.segments){if(!(n.get(o.status)??!0))continue;let e=`${t}-${o.start}-${o.status}`,s=i[o.status];a.push({id:e,group:t,content:r?SI(o):``,start:o.start,end:o.end,type:`background`,className:`availability-segment segment-${o.status.toLowerCase()}`,style:s===`transparent`?void 0:`background-color: ${s};`,title:`${o.status} segment`,editable:!1,selectable:!1,status:o.status,contributingBlocks:o.contributingBlocks,isSegment:!0})}}return a}function SI(e){let t=Math.round((new Date(e.end).getTime()-new Date(e.start).getTime())/(1e3*60));return`${e.status} (${t}m)`}function CI(e,t={}){let{colorScheme:n=yI}=t,r=[];for(let t of e){let e=wI(t.court),i=n[t.type],a=TI(i,-20);r.push({id:`block-${t.id}`,group:e,content:t.reason||t.type,start:t.start,end:t.end,type:`range`,className:`availability-block block-${t.type.toLowerCase()}`,style:`background-color: ${i}; border-color: ${a};`,title:t.reason||t.type,editable:{updateTime:!0,updateGroup:!0,remove:!1},blockId:t.id,status:t.type,reason:t.reason,isBlock:!0})}return r}function wI(e){return`${e.tournamentId}|${e.venueId}|${e.courtId}`}function TI(e,t){if(!e||!e.startsWith(`#`))return e;let n=parseInt(e.replace(`#`,``),16),r=Math.round(2.55*t),i=(n>>16)+r,a=(n>>8&255)+r,o=(n&255)+r;return`#`+(16777216+(i<255?i<1?0:i:255)*65536+(a<255?a<1?0:a:255)*256+(o<255?o<1?0:o:255)).toString(16).slice(1)}function EI(e){let t=e.split(`|`);return t.length===3?{tournamentId:t[0],venueId:t[1],courtId:t[2]}:null}function DI(e){let t=String(e);return t.startsWith(`block-`)?t.slice(6):null}function OI(e){let t=new Date(`${e.day}T${e.dayStartTime}:00`),n=new Date(`${e.day}T${e.dayEndTime}:00`);return{start:t,end:n,min:t,max:n,zoomMin:e.slotMinutes*4*60*1e3,zoomMax:(n.getTime()-t.getTime())*1.5}}var kI=_({EventEmitter:()=>ER,PluginRegistry:()=>pL,TimepickerUI:()=>jR,default:()=>MR});function AI(){wL===0&&(TL=document.body.style.overflowY,EL=document.body.style.paddingRight,document.body.style.paddingRight=`${nL()}px`,document.body.style.overflowY=`hidden`),wL+=1}function jI(){wL!==0&&(--wL,wL===0&&(document.body.style.overflowY=TL,document.body.style.paddingRight=EL,TL=``,EL=``))}function MI(e){let t=e.match(rR);return t?{hour:t[1],minutes:t[2],type:t[3].toUpperCase()}:null}function NI(e){let t=e.match(iR);return t?{hour:t[1],minutes:t[2]}:null}function PI(e,t){let n=parseInt(e.hour,10),r=parseInt(e.minutes,10);if(Number.isNaN(n)||Number.isNaN(r))return 0;if(t===`12h`&&e.type){let t=e.type.toUpperCase();t===`PM`&&n!==12&&(n+=12),t===`AM`&&n===12&&(n=0)}return n*60+r}function FI(e,t){if(t===`12h`){let t=e.match(/(\d{1,2}):(\d{2})\s*(AM|PM)/i);return t?PI({hour:t[1],minutes:t[2],type:t[3]},`12h`):0}let[n,r]=e.split(`:`);return PI({hour:n??`0`,minutes:r??`0`},`24h`)}function II(e,t,n,r){e.on(n,r),t.push(()=>e.off(n,r))}function LI(e){let t=e.target,n=t.hasAttribute(`data-md3-ripple`)?t:t.closest(`[data-md3-ripple]`);if(!n||e.button!==0&&e.pointerType===`mouse`)return;let r=n.getBoundingClientRect(),i=Math.max(r.width,r.height)*2,a=e.clientX-r.left,o=e.clientY-r.top;n.style.setProperty(`--ripple-size`,`${i}px`),n.style.setProperty(`--ripple-x`,`${a}px`),n.style.setProperty(`--ripple-y`,`${o}px`),n.classList.remove(yR,bR),n.offsetWidth,n.classList.add(yR,bR),n._rippleHold=!0,xR=n}function RI(e){let t=e.target,n=(t.hasAttribute(`data-md3-ripple`)?t:t.closest(`[data-md3-ripple]`))||xR;n&&(n._rippleHold=!1,n.classList.remove(bR),setTimeout(()=>{n.classList.remove(yR),xR===n&&(xR=null)},1e3))}function zI(e){let t=e.currentTarget;!t||!t._rippleHold||(t._rippleHold=!1,t.classList.remove(bR),setTimeout(()=>{t.classList.remove(yR),xR===t&&(xR=null)},1e3))}function BI(e){if(QI()===!1)return;let t=e||document;t.addEventListener(`pointerdown`,LI),t.addEventListener(`pointerup`,RI),t.addEventListener(`pointercancel`,RI),t.querySelectorAll(`[data-md3-ripple]`).forEach(e=>{e.addEventListener(`mouseleave`,zI)})}function VI(e){let t=e.ui.mode;return t===`wheel`||t===`compact-wheel`}function HI(e){return e.ui.mode===`compact-wheel`}function UI(e){return HI(e)&&!!e.wheel?.placement}function WI(e,t){let{callbacks:n}=e.options;for(let[e,r]of CR){let i=n[e];i&&t.on(r,i)}}function GI(e,t){for(let n of wR)n.needed(e.options)&&!pL.has(n.name)&&t.emit(`error`,{error:n.message})}function KI(e={}){let t={clock:{...DR.clock,...e.clock},ui:{...DR.ui,...e.ui},labels:{...DR.labels,...e.labels},behavior:{...DR.behavior,...e.behavior},callbacks:{...DR.callbacks,...e.callbacks},timezone:{...DR.timezone,...e.timezone},range:{...DR.range,...e.range},wheel:{...DR.wheel,...e.wheel},clearBehavior:{...DR.clearBehavior,...e.clearBehavior}},n=t.ui.mode;return(n===`wheel`||n===`compact-wheel`)&&(t.wheel={placement:n===`compact-wheel`?`auto`:void 0,hideFooter:void 0,commitOnScroll:void 0,ignoreOutsideClick:void 0,...t.wheel}),t}function qI(e,t){if(e.options.clock.type===`24h`){let e=NI(t);if(!e)throw Error(`Invalid 24h format. Expected HH:MM`);return{hourValue:e.hour.padStart(2,`0`),minutesValue:e.minutes,typeValue:`AM`}}let n=MI(t);if(!n)throw Error(`Invalid 12h format. Expected HH:MM AM/PM`);return{hourValue:n.hour,minutesValue:n.minutes,typeValue:n.type}}function JI(e,t){let n=e.getHour(),r=e.getMinutes();n&&(n.value=t.hourValue,n.setAttribute(`aria-valuenow`,t.hourValue),e.setDegreesHours(Number(t.hourValue)*30)),r&&(r.value=t.minutesValue,r.setAttribute(`aria-valuenow`,t.minutesValue),e.setDegreesMinutes(Number(t.minutesValue)*6))}function YI(e,t){if(e.options.clock.type===`24h`)return;let n=e.getAM(),r=e.getPM();!n||!r||(t===`AM`?(n.classList.add(`active`),r.classList.remove(`active`)):(r.classList.add(`active`),n.classList.remove(`active`)))}function XI(e,t,n){if(VI(e.options))t.getPlugin(`wheel`)?.scrollToValue?.(n.hourValue,n.minutesValue,n.typeValue);else{let t=e.getClockHand();t&&(t.style.transform=`rotateZ(${e.degreesHours||0}deg)`)}}var ZI,QI,$I,eL,tL,nL,rL,iL,aL,oL,sL,cL,lL,uL,dL,fL,pL,mL,hL,gL,_L,vL,yL,bL,xL,SL,CL,wL,TL,EL,DL,OL,kL,AL,jL,ML,NL,PL,FL,IL,LL,RL,zL,BL,VL,HL,UL,WL,GL,KL,qL,JL,YL,XL,ZL,QL,$L,eR,tR,nR,rR,iR,aR,oR,sR,cR,lR,uR,dR,fR,pR,mR,hR,gR,_R,vR,yR,bR,xR,SR,CR,wR,TR,ER,DR,OR,kR,AR,jR,MR,NR=h((()=>{ZI=()=>typeof window>`u`,QI=()=>typeof document<`u`,$I=class{_degreesHours=null;_degreesMinutes=null;_options;_isMobileView=!1;_isTouchMouseMove=!1;_disabledTime=null;_cloned=null;_isModalRemove=!0;_isOpen=!1;_isInitialized=!1;_eventHandlersRegistered=!1;_isDestroyed=!1;element;instanceId;customId;constructor(e,t,n,r){this.element=e,this.instanceId=n,this.customId=r,this._options=t}get degreesHours(){return this._degreesHours}get degreesMinutes(){return this._degreesMinutes}get options(){return this._options}get isMobileView(){return this._isMobileView}get isTouchMouseMove(){return this._isTouchMouseMove}get disabledTime(){return this._disabledTime}get cloned(){return this._cloned}get isModalRemove(){return this._isModalRemove}get isOpen(){return this._isOpen}get isInitialized(){return this._isInitialized}get eventHandlersRegistered(){return this._eventHandlersRegistered}get isDestroyed(){return this._isDestroyed}setDegreesHours(e){this._degreesHours=e}setDegreesMinutes(e){this._degreesMinutes=e}setOptions(e){this._options=e}setIsMobileView(e){this._isMobileView=e}setIsTouchMouseMove(e){this._isTouchMouseMove=e}setDisabledTime(e){this._disabledTime=e}setCloned(e){this._cloned=e}setIsModalRemove(e){this._isModalRemove=e}setIsOpen(e){this._isOpen=e}setIsInitialized(e){this._isInitialized=e}setEventHandlersRegistered(e){this._eventHandlersRegistered=e}setIsDestroyed(e){this._isDestroyed=e}updateOptions(e){this._options={...this._options,clock:{...this._options.clock,...e.clock||{}},ui:{...this._options.ui,...e.ui||{}},labels:{...this._options.labels,...e.labels||{}},behavior:{...this._options.behavior,...e.behavior||{}},callbacks:{...this._options.callbacks,...e.callbacks||{}}}}reset(){this._degreesHours=null,this._degreesMinutes=null,this._isTouchMouseMove=!1,this._disabledTime=null,this._cloned=null,this._isModalRemove=!0,this._isOpen=!1,this._isInitialized=!1,this._isDestroyed=!0,this._eventHandlersRegistered=!1}q(e){return this.getModalElement()?.querySelector(e)??null}qMobile(e,t){return this._isMobileView?this.q(e):this.q(t)}getModalElement(){return QI()===!1?null:document.querySelector(`[data-owner-id="${this.instanceId}"]`)}getInput(){return this.element?.querySelector(`input`)}getClockFace(){return this.qMobile(`.tp-ui-clock-face.mobile`,`.tp-ui-clock-face:not(.mobile)`)}getClockHand(){return this.qMobile(`.tp-ui-mobile-clock-wrapper .tp-ui-clock-hand`,`.tp-ui-clock-hand:not(.mobile)`)}getCircle(){return this.qMobile(`.tp-ui-mobile-clock-wrapper .tp-ui-circle-hand`,`.tp-ui-circle-hand:not(.mobile)`)}getTipsWrapper(){return this.qMobile(`.tp-ui-mobile-clock-wrapper .tp-ui-tips-wrapper`,`.tp-ui-tips-wrapper:not(.mobile)`)}getTipsWrapperFor24h(){return this.qMobile(`.tp-ui-mobile-clock-wrapper .tp-ui-tips-wrapper-24h`,`.tp-ui-tips-wrapper-24h:not(.mobile)`)}getMinutes(){return this.q(`.tp-ui-minutes`)}getHour(){return this.q(`.tp-ui-hour`)}getAM(){return this.q(`.tp-ui-am`)}getPM(){return this.q(`.tp-ui-pm`)}getHourText(){return this.q(`.tp-ui-hour-text`)}getMinutesText(){return this.q(`.tp-ui-minute-text`)}getHeader(){return this.q(`.tp-ui-header`)}getInputWrappers(){return this.getModalElement()?.querySelectorAll(`.tp-ui-input-wrapper`)||null}getDots(){return this.q(`.tp-ui-dots`)}getMinutesTips(){return this.q(`.tp-ui-minutes-time`)}getHourTips(){return this.q(`.tp-ui-hour-time-12`)}getAllValueTips(){let e=this.getModalElement();return e?[...e.querySelectorAll(`.tp-ui-value-tips`),...e.querySelectorAll(`.tp-ui-value-tips-24h`)]:[]}getOpenElementData(){let e=this.element?.querySelectorAll(`[data-open]`);if(e?.length>0){let t=[];return e.forEach(({dataset:e})=>t.push(e.open??``)),[...new Set(t)]}return null}getOpenElement(){let e=this.getInput(),t=this.getOpenElementData();return t===null?(e?.setAttribute(`data-open`,`tp-ui-input`),[e]):t.map(e=>this.element?.querySelectorAll(`[data-open='${e}']`))[0]??``}getCancelButton(){return this.q(`.tp-ui-cancel-btn`)}getOkButton(){return this.q(`.tp-ui-ok-btn`)}getActiveTypeMode(){return this.q(`.tp-ui-type-mode.active`)}getKeyboardClockIcon(){return this.q(`.tp-ui-keyboard-icon-wrapper`)}getFooter(){return this.q(`.tp-ui-footer`)}getWrapper(){return this.q(`.tp-ui-wrapper`)}},eL={DEFAULT_DELAY:300,MODAL_ANIMATION:150,SCROLLBAR_RESTORE:400,MODAL_REMOVE:300,CLOCK_ANIMATION:600,TIPS_ANIMATION:401,MOBILE_TOGGLE:450,CLOCK_SCALE_DELAY:150,WRAPPER_TRANSITION:400,DROPDOWN_CLICK_DELAY:10},tL=class{core;emitter;timeouts=[];constructor(e,t){this.core=e,this.emitter=t,this.setupEventListeners()}setupEventListeners(){this.emitter.on(`animation:clock`,()=>{this.handleAnimationSwitchTipsMode()})}runWithAnimation(e,t=eL.MODAL_ANIMATION){if(this.core.options.ui.animation){let n=setTimeout(e,t);this.timeouts.push(n)}else e()}clearAllTimeouts(){this.timeouts.forEach(clearTimeout),this.timeouts=[]}setAnimationToOpen(){this.clearAllTimeouts(),this.core.getModalElement()?.classList.add(`opacity`),this.runWithAnimation(()=>{this.core.getModalElement()?.classList.add(`show`)})}removeAnimationToClose(){this.clearAllTimeouts(),this.core.getModalElement()&&this.runWithAnimation(()=>{let e=this.core.getModalElement();e?.classList.remove(`show`),e?.classList.remove(`opacity`)})}handleAnimationClock(){this.core.options.ui.animation&&this.runWithAnimation(()=>{this.core.getClockFace()?.classList.add(`tp-ui-clock-animation`);let e=setTimeout(()=>{this.core.getClockFace()?.classList.remove(`tp-ui-clock-animation`)},eL.CLOCK_ANIMATION);this.timeouts.push(e)})}handleAnimationSwitchTipsMode(){let e=this.core.getClockHand();if(!e)return;this.emitter.emit(`animation:start`,{}),e.classList.add(`tp-ui-tips-animation`);let t=setTimeout(()=>{this.core.getClockHand()?.classList.remove(`tp-ui-tips-animation`),this.emitter.emit(`animation:end`,{})},eL.TIPS_ANIMATION);this.timeouts.push(t)}destroy(){this.clearAllTimeouts()}},nL=()=>{if(QI()===!1)return 0;let e=document.createElement(`div`);e.className=`tp-ui-measure`,document.body.appendChild(e);let t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t},rL=(e,t)=>e?e.classList.contains(t):!1,iL=(e,t)=>Array.from({length:Number(t)-Number(e)+1},(t,n)=>Number(e)+n),aL=(e,t)=>Array.from({length:Number(t)-Number(e)+1},(e,n)=>Number(t)-n).reverse(),oL=(e=``)=>{let t=e.replace(/(AM|PM|am|pm)/,e=>` ${e}`),n=new Date(`September 20, 2000 ${t}`);return`${n.getHours().toString().padStart(2,`0`)}:${n.getMinutes().toString().padStart(2,`0`)}`},sL=e=>{let[t,n]=e.split(`:`);return`${t.padStart(2,`0`)}:${n.padStart(2,`0`)}`},cL=(e,t)=>{if(e.length<2)return!1;let n=e.map(e=>{let[n,r]=e.trim().split(`-`),i,a;if(t===`12h`){if(!/\s?(AM|PM|am|pm)\s?$/.test(n.trim())||!/\s?(AM|PM|am|pm)\s?$/.test(r.trim()))throw Error(`Invalid 12h format: "${e}"`);i=oL(n.trim()),a=oL(r.trim())}else{if(/\s?(AM|PM|am|pm)\s?/.test(n.trim())||/\s?(AM|PM|am|pm)\s?/.test(r.trim()))throw Error(`Invalid 24h format: "${e}"`);i=sL(n.trim()),a=sL(r.trim())}return{start:i,end:a,original:e}});for(let e=0;e<n.length;e++)for(let t=e+1;t<n.length;t++){let r=n[e],i=n[t];if(r.start<=i.end&&r.end>=i.start||i.start<=r.end&&i.end>=r.start)throw Error(`Overlapping intervals: "${r.original}" and "${i.original}"`)}return!1},lL=()=>typeof window<`u`&&window.crypto&&typeof window.crypto.randomUUID==`function`?window.crypto.randomUUID():`xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`.replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e===`x`?t:t&3|8).toString(16)}),uL=`<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="M160-200q-33 0-56.5-23.5T80-280v-400q0-33 23.5-56.5T160-760h640q33 0 56.5 23.5T880-680v400q0 33-23.5 56.5T800-200H160Zm0-80h640v-400H160v400Zm160-40h320v-80H320v80ZM200-440h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80ZM200-560h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80ZM160-280v-400 400Z"/></svg>`,dL=`<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="m612-292 56-56-148-148v-184h-80v216l172 172ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-400Zm0 320q133 0 226.5-93.5T800-480q0-133-93.5-226.5T480-800q-133 0-226.5 93.5T160-480q0 133 93.5 226.5T480-160Z"/></svg>`,fL=class{plugins=new Map;register(e){this.plugins.has(e.name)||this.plugins.set(e.name,e)}getAll(){return Array.from(this.plugins.values())}has(e){return this.plugins.has(e)}get(e){return this.plugins.get(e)}getTemplateProvider(e){return this.plugins.get(e)?.templateProvider}getClearHandler(e){return this.plugins.get(e)?.clearHandler}},pL=new fL,mL=[`00`,`13`,`14`,`15`,`16`,`17`,`18`,`19`,`20`,`21`,`22`,`23`],hL=[`12`,`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`,`10`,`11`],gL=[`00`,`05`,`10`,`15`,`20`,`25`,`30`,`35`,`40`,`45`,`50`,`55`],_L=(e,t,n)=>{let{timezone:{enabled:r,label:i}}=e;return!r||!pL.has(`timezone`)?``:`<div class="tp-ui-timezone ${t}">
224
+ `;z.open({title:t,content:p,buttons:d,onClose:f});let m=e=>{e?.[0]?.onClick&&(e[0].onClick(),z.close())};if(a){let e=a({anchorId:c,data:r,selectionLimit:i,onSelected:m});l=e.table,u=e.destroy;let t=o?o(l):()=>{},d=[{onKeyDown:e=>e.keyCode===8&&e.target.value.length===1&&t(``),onChange:e=>t(e.target.value),onKeyUp:e=>t(e.target.value),clearSearch:()=>t(``),placeholder:n||`Search`,location:BN,search:!0}],f=document.getElementById(s)||void 0;cP({table:l,target:f,items:d})}else{let e=document.getElementById(c);if(e){HN({container:e,options:r,onSelected:m});let t=t=>{let n=e.querySelectorAll(`[data-select-item]`),r=t.toLowerCase();n.forEach(e=>{let n=e.textContent?.toLowerCase()||``;e.style.display=!t||n.includes(r)?``:`none`})},i=[{onKeyUp:e=>t(e.target.value),clearSearch:()=>t(``),placeholder:n||`Search`,location:BN,search:!0}];cP({target:document.getElementById(s)||void 0,items:i})}}}function HN({container:e,options:t,onSelected:n}){let r=document.createElement(`div`);r.style.cssText=`max-height: 380px; overflow-y: auto; padding: 0.5em 0;`;for(let e of t){let t=document.createElement(`a`);t.setAttribute(`data-select-item`,``),t.className=`panel-block font-medium`,t.style.cssText=`cursor: pointer; padding: 0.5em 1em; display: block; text-decoration: none; color: inherit;`,t.innerHTML=e.label,t.onmouseenter=()=>t.style.backgroundColor=`#f5f5f5`,t.onmouseleave=()=>t.style.backgroundColor=``,t.onclick=t=>{t.stopPropagation(),n([e])},r.appendChild(t)}e.appendChild(r)}var UN=`none`;function WN(e){let t=document.createElement(`button`);return t.className=`button font-medium`,e.disabled&&(t.disabled=!0),e.class&&t.classList.add(e.class),e.id&&(t.id=e.id),e.intent&&t.classList.add(e.intent),e.toolTip?.content&&Dm(t,e.toolTip),t.innerHTML=e.label,e.visible===!1&&(t.style.display=UN),t}var GN=`center`,KN=``,qN=`flex`,JN=`left`,YN=`none`,XN=`overlay`,ZN=`right`,QN=({target:e})=>(t=[])=>{e.style.backgroundColor=t?.length?`var(--chc-hover-bg)`:KN;let n=(n,r,i)=>{let a=e.getElementsByClassName(`options_${n}`)[0];a&&(a.style.display=t?.length?r:i)};n(XN,qN,YN),n(JN,YN,qN),n(GN,YN,qN),n(ZN,YN,qN)},$N=`center`,eP=`header`,tP=``,nP=`left`,rP=`none`,iP=`overlay`,aP=`right`,oP=`buttonBar`,sP=`top`;function cP(e){let{table:t,targetClassName:n,items:r=[],onSelection:i,selectItemFn:a}=e,{target:o}=e,s=!!o;if(!o&&n&&(o=document.getElementsByClassName(n)?.[0]),!o)return{elements:{},inputs:{}};let c=0,l=0,u={},d={},f;if(s){ne(o);let e=gP();Object.assign(u,e.elements),o.appendChild(e.anchor)}let p=Object.assign({},...[iP,nP,$N,aP,eP].map(e=>{let t=o.getElementsByClassName(`options_${e}`)?.[0];return ne(t),{[e]:t}}).filter(Boolean)),m=QN({table:t,target:o}),h=(e,n)=>{V(n.onClick)&&(e.stopPropagation(),n.disabled||n.onClick(e,t),n.stateChange&&m())},g={onClick:()=>{},location:aP};for(let e of r){let t={...g};oe(e)&&Object.assign(t,e);let n=p[t.location];if(!n){console.log(t.location,p);continue}t.location===iP&&(c+=1),t.location===eP&&(lP(t,o),l+=1);let r=uP(e,t,n,m,h,a,u,d);r?.focus&&(f=r.focus)}let _=o.getElementsByClassName(`panelHeader`)[0];_&&(_.style.display=l?tP:rP),t?._controlBarSelectionHandler&&t.off(`rowSelectionChanged`,t._controlBarSelectionHandler);let v=(e,t)=>{V(i)&&i(t),c&&m(t)};return t&&(t._controlBarSelectionHandler=v),t?.on(`rowSelectionChanged`,v),m(t?.getSelectedRows?.()??[]),f&&setTimeout(()=>f.focus(),200),{elements:u,inputs:d}}function lP(e,t){if(V(e.headerClick)){let n=t.getElementsByClassName(`panelHeader`)[0];n&&(n.onclick=e.headerClick)}}function uP(e,t,n,r,i,a,o,s){if(!t.hide&&(t.input||t.placeholder||t.search)){let r=dP(e,t);return t.id&&(s[t.id]=r.input),t.id&&(o[t.id]=r.elem,r.elem.id=t.id),n?.appendChild(r.elem),t.focus?{focus:r.input}:void 0}if(!t.hide&&t.text){let e=document.createElement(`div`);e.className=`font-medium`,t.id&&(o[t.id]=e,e.id=t.id),e.innerHTML=t.text,e.onclick=e=>i(e,t),n?.appendChild(e);return}!t.id&&(!t?.label||t.hide)||(pP(t,n,r,i,a,o),(!(t?.label||t.tabs)||t.hide)&&o[t.id]&&(o[t.id].style.display=rP))}function dP(e,t){let n=document.createElement(`p`);n.className=`control ${t.search?`has-icons-left has-icons-right`:``}`;let r=document.createElement(`input`);if(r.className=`input font-medium`,r.setAttribute(`type`,`text`),r.setAttribute(`autocomplete`,`off`),r.setAttribute(`placeholder`,e.placeholder||tP),t.id&&r.setAttribute(`id`,t.id),t.onKeyDown&&r.addEventListener(`keydown`,e=>t.onKeyDown(e,t)),t.onChange&&r.addEventListener(`change`,e=>t.onChange(e,t)),t.onKeyUp&&r.addEventListener(`keyup`,e=>{t.clearSearch&&e.key===`Escape`&&(e.stopPropagation(),r.value=``,t.clearSearch()),t.onKeyUp(e,t)}),t.class&&r.classList.add(t.class),t.visible===!1&&(n.style.display=rP),t.value&&(r.value=t.value),n.appendChild(r),t.search&&fP(n,r,t),e.validator){let t=document.createElement(`p`);t.className=`help font-medium`,n.appendChild(t),r.addEventListener(`input`,n=>fn(e,n,r,t,e.validator))}return{elem:n,input:r}}function fP(e,t,n){let r=document.createElement(`span`);if(r.className=`icon is-small is-left font-medium`,r.innerHTML=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="16" height="16" fill="currentColor"><path d="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"/></svg>`,e.appendChild(r),V(n.clearSearch)){let r=document.createElement(`span`);r.className=`icon is-small is-right font-medium`,r.style.pointerEvents=`all`,r.style.cursor=`pointer`,r.innerHTML=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="16" height="16" fill="#dddada"><path d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"/></svg>`,r.onclick=e=>{e.stopPropagation(),t.value=``,n.clearSearch(),i()};let i=()=>{r.style.display=t.value?``:`none`};t.addEventListener(`input`,i),i(),e.appendChild(r)}}function pP(e,t,n,r,i,a){if(e.options){let r=zN({target:t,button:e,stateChange:n});e.visible===!1&&(r.style.display=rP),e.id&&(a[e.id]=r)}else if(oe(e.selection))mP(e,t,n,i,a);else if(e.tabs)hP(e,t,a);else{let n=WN(e);n.onclick=t=>r(t,e),e.id&&(a[e.id]=n),t?.appendChild(n)}}function mP(e,t,n,r,i){let{selection:{options:a,actions:o},actionPlacement:s,threshold:c=8,...l}=e;if(a?.length<c){a.length&&(s===sP?a.unshift({divider:!0}):a.push({divider:!0})),o.forEach(e=>{let{label:t,...n}=e,r={...n,label:`<p style="font-weight: bold">${t}</p>`};s===sP?a.unshift(r):a.push(r)});let r={...l,options:a},c=zN({target:t,button:r,stateChange:n});r.visible===!1&&(c.style.display=rP),r.id&&(i[e.id]=c)}else{let n=WN(e),o=r||VN;n.onclick=t=>{t.stopPropagation(),o({title:e.selectionTitle||`Select`,options:a})},e.id&&(i[e.id]=n),t?.appendChild(n)}}function hP(e,t,n){let r=document.createElement(`div`);r.className=`tabs is-toggle is-toggle-rounded`;let i=document.createElement(`ul`);r.appendChild(i),e.tabs.forEach(t=>{let n=document.createElement(`li`);t.active&&n.classList.add(`is-active`);let r=document.createElement(`a`);n.appendChild(r),r.onclick=r=>{i.querySelectorAll(`li`).forEach(e=>e.classList.remove(`is-active`)),n.classList.add(`is-active`),V(t.onClick)&&t.onClick(r,e)};let a=document.createElement(`span`);a.innerHTML=t.label,r.appendChild(a),i.appendChild(n)}),e.id&&(n[e.id]=r),t.appendChild(r)}function gP(){let e=document.createElement(`div`);e.className=`panel_container flexcol flexcenter`;let t=document.createElement(`div`);t.className=`panelHeader options_header`,t.style.display=rP,e.appendChild(t);let n=document.createElement(`div`);n.className=oP;let r={optionsOverlay:document.createElement(`div`),optionsLeft:document.createElement(`div`),optionsCenter:document.createElement(`div`),optionsRight:document.createElement(`div`)};r.optionsOverlay.className=`options_overlay`,r.optionsCenter.className=`options_center`,r.optionsRight.className=`options_right`,r.optionsLeft.className=`options_left`;for(let e of Object.values(r))n.appendChild(e);return e.appendChild(n),{elements:r,anchor:e,header:t}}var _P=()=>`sp-layout`,vP=()=>`sp-column`,yP=()=>`sp-panel`,bP=()=>`sp-panel-header`,xP=()=>`sp-panel-title`,SP=()=>`sp-panel-meta`,CP=()=>`sp-panel-actions`,wP=()=>`sp-panel-leading`,TP=()=>`sp-date-strip`,EP=()=>`sp-date-chip`,DP=()=>`sp-badges`,OP=()=>`sp-badge`,kP=()=>`sp-chips`,AP=()=>`sp-chip`,jP=()=>`sp-board`,MP=()=>`sp-venue`,NP=()=>`sp-venue-header`,PP=()=>`sp-venue-title`,FP=()=>`sp-venue-sub`,IP=()=>`sp-dropzone`,LP=()=>`sp-card`,RP=()=>`sp-card-title`,zP=()=>`sp-card-meta`,BP=()=>`sp-issues`,VP=()=>`sp-issue`,HP=()=>`sp-issue-code`,UP=()=>`sp-issue-msg`,WP=()=>`sp-issue-actions`,GP=()=>`sp-btn sp-btn--sm`,KP=()=>`sp-catalog`,qP=()=>`sp-catalog-toolbar`,JP=()=>`sp-input`,YP=()=>`sp-select`,XP=()=>`sp-group`,ZP=()=>`sp-group-header`,QP=()=>`sp-group-body`,$P=()=>`sp-catalog-item`,eF=()=>`sp-small`,tF=()=>`sp-popover-item`,nF=()=>`sp-popover-delete`,rF=()=>`sp-popover-divider`,iF=()=>`sp-insertion-line`,aF=()=>`sp-group-chevron`;function oF(e,t){let n=!!t?.hideLeft,r=t?.catalogSide===`left`,i=document.createElement(`div`);if(i.className=_P(),n)r?i.classList.add(`sp-catalog-left`):i.classList.add(`sp-no-left`);else{let t=document.createElement(`div`);t.className=vP(),t.appendChild(e.dateStrip.element),e.issuesPanel.element.style.flex=`1`,e.issuesPanel.element.style.minHeight=`0`,t.appendChild(e.issuesPanel.element),i.appendChild(t)}let a=document.createElement(`div`);a.className=vP(),e.venueBoard.element.style.flex=`1`,e.venueBoard.element.style.minHeight=`0`,a.appendChild(e.venueBoard.element);let o=document.createElement(`div`);o.className=vP(),e.roundCatalog.element.style.flex=`1 1 0`,e.roundCatalog.element.style.minHeight=`0`,o.appendChild(e.roundCatalog.element),r&&n?(i.appendChild(o),i.appendChild(a)):(i.appendChild(a),i.appendChild(o));function s(t){n||(e.dateStrip.update(t),e.issuesPanel.update(t)),e.venueBoard.update(t),e.roundCatalog.update(t)}return{element:i,update:s}}function sF(e){let t=null,n=null;function r(e){return`${e.date}|${e.venueId}|${e.index}`}function i(){t&&(t.destroy(),t=null,n=null)}function a(t){let n=document.createElement(`div`);n.style.cssText=`font-family:sans-serif; font-size:13px; min-width:150px;`;let r=document.createElement(`div`);r.className=tF(),r.textContent=`Set Not Before Time`,r.addEventListener(`click`,()=>{i(),e.onSetNotBeforeTime(t)}),n.appendChild(r);let a=document.createElement(`div`);a.className=rF(),n.appendChild(a);let o=document.createElement(`div`);return o.className=nF(),o.textContent=`Remove Round`,o.addEventListener(`click`,()=>{i(),e.onDelete(t)}),n.appendChild(o),n}return{show(e,o){let s=r(o);if(n===s){i();return}i();let c=Dm(e,{content:a(o),allowHTML:!0,interactive:!0,trigger:`manual`,placement:`bottom`,appendTo:document.body,onHidden:()=>{t=null,n=null}});t=c,n=s,c.show()},destroy(){i()},isActiveFor(e){return n===r(e)}}}function cF(e){return structuredClone(e)}function lF(e,t,n){return Math.max(t,Math.min(n,e))}function uF(e){return`${e.tournamentId}|${e.eventId}|${e.drawId}|${e.structureId}|${e.roundNumber}`}function dF(e){return`${e.eventName?`${e.eventName} \u2013 `:``}${e.roundName??`Round ${e.roundNumber}`}${e.roundSegment?` (seg ${e.roundSegment.segmentNumber}/${e.roundSegment.segmentsCount})`:``}`}function fF(e,t){return!e||!t?!1:e.date===t.date&&e.venueId===t.venueId&&e.index===t.index}function pF(e){return{tournamentId:e.tournamentId,eventId:e.eventId,drawId:e.drawId,structureId:e.structureId,roundNumber:e.roundNumber}}function mF(e,t){return`${e}|${t.segmentNumber}/${t.segmentsCount}`}function hF(e){let t=new Map;for(let n of e)for(let e of n.venues)for(let r=0;r<e.rounds.length;r++){let i=e.rounds[r],a=uF(i),o=i.roundSegment,s=o?mF(a,o):a,c={locator:{date:n.scheduleDate,venueId:e.venueId,index:r,roundKey:pF(i),roundSegment:o},date:n.scheduleDate,venueId:e.venueId,roundSegment:o},l=t.get(s);l?l.push(c):t.set(s,[c])}return t}function gF(e){let t=new Map;for(let n of e)for(let e of n.venues)for(let n of e.rounds){if(!n.roundSegment)continue;let e=uF(n),r=t.get(e)??0;n.roundSegment.segmentsCount>r&&t.set(e,n.roundSegment.segmentsCount)}return t}function _F(e,t,n,r=`dim`){let i=t.toLowerCase().trim();return e.filter(e=>r===`hide`&&n.has(uF(e))?!1:i?`${e.eventName} ${e.drawName??``} ${e.roundName??``} ${e.drawId}`.toLowerCase().includes(i):!0).map(e=>({...e,isPlanned:n.has(uF(e))}))}function vF(e,t){let n=new Map,r=e=>t===`draw`?`${e.eventName} \u2014 ${e.drawName??e.drawId}`:t===`round`?e.roundName??`Round ${e.roundNumber}`:e.eventName;for(let t of e){let e=r(t),i=n.get(e);i?i.push(t):n.set(e,[t])}return new Map([...n.entries()].sort((e,t)=>e[0].localeCompare(t[0],void 0,{numeric:!0})))}function yF(e){let t=new Set;for(let n of e)for(let e of n.venues)for(let n of e.rounds)n.roundSegment||t.add(uF(n));return t}function bF(e){let t=new Set;for(let n of e)for(let e of n.venues)for(let n of e.rounds)if(n.roundSegment){let e=uF(n);t.add(mF(e,n.roundSegment))}return t}var xF=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function SF(e){return xF.test(e)}function CF(e){let t=document.createElement(`div`);t.className=yP(),t.style.overflowY=`auto`,t.style.scrollbarWidth=`thin`,t.style.scrollbarColor=`var(--sp-scrollbar) transparent`;let n=new Set,r=new Map,i=null,a=document.createElement(`div`);a.className=bP();let o=document.createElement(`div`);o.className=xP(),o.textContent=`Round Catalog`;let s=document.createElement(`div`);s.className=SP(),a.appendChild(o),a.appendChild(s),t.appendChild(a);let c=document.createElement(`div`);c.className=qP();let l=document.createElement(`input`);l.type=`text`,l.placeholder=`Search rounds...`,l.className=JP(),l.addEventListener(`input`,()=>e.onSearchChange(l.value));let u=Jx(l,()=>{l.value=``,e.onSearchChange(``),l.focus()}),d=document.createElement(`select`);d.className=YP();for(let[e,t]of[[`event`,`By Event`],[`draw`,`By Draw`],[`round`,`By Round`]]){let n=document.createElement(`option`);n.value=e,n.textContent=t,d.appendChild(n)}d.addEventListener(`change`,()=>e.onGroupByChange(d.value)),c.appendChild(u),c.appendChild(d),t.appendChild(c);let f=document.createElement(`div`);f.className=KP(),t.appendChild(f),f.addEventListener(`dragover`,e=>{e.preventDefault(),f.classList.add(`over`),e.dataTransfer.dropEffect=`move`}),f.addEventListener(`dragleave`,e=>{f.contains(e.relatedTarget)||f.classList.remove(`over`)}),f.addEventListener(`drop`,t=>{if(f.classList.remove(`over`),t.preventDefault(),!e.onDropRemove)return;let n;try{n=JSON.parse(t.dataTransfer.getData(`application/json`))}catch{return}n.type===`PLANNED_ROUND`&&e.onDropRemove(n.locator)});function p(t,n,i,a,o,s){let c=document.createElement(`div`);c.className=$P(),i&&c.classList.add(`segment`),t.isPlanned?(c.classList.add(n===`navigate`?`navigate`:`dimmed`),c.draggable=!1,n===`navigate`&&c.addEventListener(`click`,()=>{e.onNavigateToPlanned?.(t)})):(c.draggable=!0,c.addEventListener(`dragstart`,e=>{e.stopPropagation(),e.dataTransfer.setDragImage(c,c.offsetWidth/2,20);let n={type:`CATALOG_ROUND`,roundRef:t};i&&(n.roundSegment=i),e.dataTransfer.setData(`application/json`,JSON.stringify(n)),e.dataTransfer.effectAllowed=`copyMove`}));let l=document.createElement(`div`);l.className=RP();let u=t.roundName&&!t.roundName.startsWith(`rn=`)?t.roundName:`Round `+t.roundNumber,d=i?` \u00b7 Seg ${i.segmentNumber}/${i.segmentsCount}`:``;l.textContent=`${t.eventName} \u2014 ${u}${d}`;let f=document.createElement(`div`);f.className=zP();let p=i&&t.matchCountEstimate?Math.round(t.matchCountEstimate/i.segmentsCount):t.matchCountEstimate,m=p?` · `+p+` matches`:``,h=t.drawName&&!SF(t.drawName)?t.drawName:``;if(f.textContent=h?`${h}${m}`:m.replace(` · `,``)||``,c.appendChild(l),c.appendChild(f),o.length&&n!==`navigate`&&(c.appendChild(wF(o,s)),e.onDropRemove&&c.appendChild(EF(o,e.onDropRemove))),!(t.isPlanned&&n!==`navigate`)&&!t.isPlanned){let e=document.createElement(`div`);e.className=`sp-split-ctl`;let n=uF(t);if(i){let t=document.createElement(`button`);t.type=`button`,t.className=`sp-split-chip sp-split-collapse`,t.title=`Collapse to whole round`,t.textContent=`×`,t.addEventListener(`click`,e=>{e.stopPropagation(),r.delete(n),a()}),e.appendChild(t)}else for(let[t,i,o]of[[`½`,2,`Split into halves`],[`¼`,4,`Split into quarters`]]){let s=document.createElement(`button`);s.type=`button`,s.className=`sp-split-chip`,s.title=o,s.textContent=t,s.addEventListener(`click`,e=>{e.stopPropagation(),r.set(n,i),a()}),e.appendChild(s)}c.appendChild(e)}return c}function m(e){i=e;let t=e.plannedRoundBehavior,a=yF(e.profileDraft),o=bF(e.profileDraft),c=hF(e.profileDraft),h=gF(e.profileDraft),g=new Map(e.venues.map(e=>[e.venueId,e.name])),_=_F(e.roundCatalog,e.catalogSearchQuery,a,t),v=vF(_,e.catalogGroupBy),y=()=>i&&m(i);s.textContent=`${_.length} rounds`,l.value!==e.catalogSearchQuery&&(l.value=e.catalogSearchQuery,Yx(u)),d.value!==e.catalogGroupBy&&(d.value=e.catalogGroupBy),f.innerHTML=``;for(let[e,a]of v){let s=document.createElement(`div`);s.className=XP();let l=n.has(e),u=document.createElement(`div`);u.className=ZP();let d=document.createElement(`span`);d.className=aF(),d.textContent=l?`▶`:`▼`;let _=document.createElement(`span`);_.textContent=e,u.appendChild(d),u.appendChild(_),u.addEventListener(`click`,()=>{n.has(e)?n.delete(e):n.add(e),i&&m(i)});let v=document.createElement(`div`);v.className=QP(),l&&(v.style.display=`none`);for(let e of a){let n=uF(e),i=r.get(n)??h.get(n);if(!i){let r=c.get(n)??[];v.appendChild(p(e,t,void 0,y,r,g));continue}for(let r=1;r<=i;r++){let a={segmentNumber:r,segmentsCount:i},s=e.isPlanned||o.has(mF(n,a));if(s&&t===`hide`)continue;let l=c.get(mF(n,a))??[];v.appendChild(p({...e,isPlanned:s},t,a,y,l,g))}}s.appendChild(u),s.appendChild(v),f.appendChild(s)}}return{element:t,update:m}}function wF(e,t){let n=document.createElement(`div`);n.className=`sp-catalog-placements`;for(let r of e)n.appendChild(TF(r,t));return n}function TF(e,t){let n=document.createElement(`div`);n.className=`sp-catalog-placement`;let r=document.createElement(`span`);r.className=`sp-catalog-placement-icon`,n.appendChild(r);let i=document.createElement(`span`);i.className=`sp-catalog-placement-label`;let a=t.get(e.venueId)||e.venueId,o=e.roundSegment?` · Seg ${e.roundSegment.segmentNumber}/${e.roundSegment.segmentsCount}`:``;return i.textContent=`${DF(e.date)} · ${a}${o}`,n.appendChild(i),n}function EF(e,t){let n=document.createElement(`div`);n.className=`sp-split-ctl sp-split-ctl-stack`;for(let r of e){let e=document.createElement(`button`);e.type=`button`,e.className=`sp-split-chip sp-split-collapse`,e.title=`Remove this placement`,e.textContent=`×`,e.addEventListener(`click`,e=>{e.stopPropagation(),t(r.locator)}),n.appendChild(e)}return n}function DF(e){try{let t=new Date(`${e}T12:00:00`);return Number.isNaN(t.getTime())?e:`${t.toLocaleDateString(void 0,{weekday:`short`})} ${t.toLocaleDateString(void 0,{month:`short`})} ${t.getDate()}`}catch{return e}}function OF(e){let t=document.createElement(`div`);t.className=yP();let n=document.createElement(`div`);n.className=bP();let r=document.createElement(`div`);r.className=xP(),r.textContent=`Issues`;let i=document.createElement(`div`);i.className=SP(),n.appendChild(r),n.appendChild(i),t.appendChild(n);let a=document.createElement(`div`);a.className=BP(),t.appendChild(a);function o(t){let n=t.issueIndex.all;if(i.textContent=`${n.length} total (${t.issueIndex.bySeverity.ERROR.length} errors)`,a.innerHTML=``,!n.length){let e=document.createElement(`div`);e.className=eF(),e.textContent=`No issues. Drag rounds into the board to build a profile.`,a.appendChild(e);return}for(let t of n.slice(0,30)){let n=document.createElement(`div`);n.className=VP(),t.severity===`ERROR`?n.classList.add(`error`):t.severity===`WARN`?n.classList.add(`warn`):n.classList.add(`info`);let r=document.createElement(`div`);r.className=HP(),r.textContent=`${t.severity} \u00b7 ${t.code}`;let i=document.createElement(`div`);if(i.className=UP(),i.textContent=t.message,n.appendChild(r),n.appendChild(i),t.fixActions?.length){let r=document.createElement(`div`);r.className=WP();for(let n of t.fixActions){let t=document.createElement(`button`);t.className=GP(),t.textContent=n.label??n.kind,t.addEventListener(`click`,()=>e.onFixAction(n)),r.appendChild(t)}n.appendChild(r)}a.appendChild(n)}}return{element:t,update:o}}var{ROUND_ROBIN:kF,ROUND_ROBIN_WITH_PLAYOFF:AF}=t.drawDefinitionConstants,jF=`Jump to prerequisite`;function MF({profile:e,availability:t,demand:n,dependencies:r,venueOrder:i}){let a=[];if(t?.isDateAvailable)for(let n of e){let e=t.isDateAvailable(n.scheduleDate);e.ok||a.push({code:`DATE_UNAVAILABLE`,severity:`ERROR`,message:`Can't schedule on ${n.scheduleDate} \u2014 day is unavailable${e.reason?`: `+e.reason:``}.`,context:{date:n.scheduleDate},fixActions:[{kind:`OPEN_AVAILABILITY_GRID`,date:n.scheduleDate,label:`Tune availability`}]})}a.push(...NF(e,t,n));let o=VF(e);for(let e of o){let t=e.round.roundSegment;t&&(Number.isInteger(t.segmentNumber)&&Number.isInteger(t.segmentsCount)&&t.segmentsCount>=2&&t.segmentNumber>=1&&t.segmentNumber<=t.segmentsCount||a.push({code:`INVALID_SEGMENT_CONFIG`,severity:`ERROR`,message:`Invalid segment configuration for ${dF(e.round)}.`,context:{locator:e.locator,date:e.locator.date,venueId:e.locator.venueId}}))}let s=new Map,c=new Map;for(let e of o){let t=e.round,n=uF(t);if(!t.roundSegment)s.has(n)?a.push({code:`DUPLICATE_ROUND`,severity:`ERROR`,message:`Round is planned more than once: ${dF(t)}.`,context:{scope:`${t.drawId}|${t.structureId}`,locator:e.locator,date:e.locator.date,venueId:e.locator.venueId},fixActions:[{kind:`JUMP_TO_ITEM`,locator:s.get(n),label:`Jump to existing`}]}):s.set(n,e.locator);else{let r=`${n}|${t.roundSegment.segmentNumber}/${t.roundSegment.segmentsCount}`;c.has(r)?a.push({code:`DUPLICATE_SEGMENT`,severity:`ERROR`,message:`Segment planned more than once: ${dF(t)}.`,context:{scope:`${t.drawId}|${t.structureId}`,locator:e.locator,date:e.locator.date,venueId:e.locator.venueId},fixActions:[{kind:`JUMP_TO_ITEM`,locator:c.get(r),label:`Jump to existing`}]}):c.set(r,e.locator)}}return a.push(...FF({profile:e,venueOrder:i})),r?.getRoundDependencies&&a.push(...zF(o,r)),a}function NF(e,t,n){if(!t?.getDayCapacityMinutes||!n?.estimateDayDemandMinutes)return[];let r=[];for(let i of e){let a=t.getDayCapacityMinutes(i.scheduleDate),o=n.estimateDayDemandMinutes(i.scheduleDate,e);if(a>0&&o>a){let e=Math.round((o-a)/60*10)/10;r.push({code:`DAY_OVERLOAD`,severity:`WARN`,message:`${i.scheduleDate} is overloaded by ~${e}h (${Math.round(o/60)}h planned vs ${Math.round(a/60)}h available).`,context:{date:i.scheduleDate},fixActions:[{kind:`OPEN_AVAILABILITY_GRID`,date:i.scheduleDate,label:`Tune availability`}]})}}return r}var PF=new Set([kF,AF]);function FF({profile:e}){let t=VF(e),n=IF(t),r=LF(t);return UF([...n,...r])}function IF(e){let t=[],n=HF(e,e=>`${e.round.structureId}|${e.locator.date}|${e.locator.venueId}`);for(let[e,r]of n.entries()){let n=r[0]?.round.structureType;if(!(n&&PF.has(n))){r.sort((e,t)=>e.locator.index-t.locator.index);for(let n=0;n<r.length;n++){let i=r[n],a=null;for(let e=n-1;e>=0;e--)if(r[e].round.roundNumber>i.round.roundNumber){a=r[e];break}if(!a)continue;let o=BF(r,n,a);t.push({code:`ROUND_ORDER_VIOLATION`,severity:`ERROR`,message:`Cannot place ${dF(i.round)} before ${dF(a.round)} in this venue.`,context:{scope:e,drawId:i.round.drawId,structureId:i.round.structureId,date:i.locator.date,venueId:i.locator.venueId,locator:i.locator,prerequisite:a.locator},fixActions:[{kind:`JUMP_TO_ITEM`,locator:a.locator,label:jF},...o.moveOffenderAfter?[{kind:`MOVE_ITEM_AFTER`,locator:i.locator,after:o.moveOffenderAfter,label:`Move offending round after prerequisite set`}]:[],...o.movePrereqBefore?[{kind:`MOVE_ITEM_BEFORE`,locator:a.locator,before:o.movePrereqBefore,label:`Move prerequisite before offending round`}]:[]]})}}}return t}function LF(e){let t=[],n=HF(e,e=>e.round.structureId);for(let[e,r]of n.entries()){let n=r[0]?.round.structureType;if(n&&PF.has(n))continue;let i=new Map;for(let e of r){let t=e.locator.date,n=i.get(t);n?n.push(e):i.set(t,[e])}let a=[...i.keys()].sort();if(a.length<2)continue;let o=-1/0,s=null;for(let n of a){let r=i.get(n);for(let i of r)i.round.roundNumber<o&&s&&t.push({code:`ROUND_ORDER_VIOLATION`,severity:`ERROR`,message:`${dF(s.round)} is scheduled on ${s.locator.date} but its prerequisite ${dF(i.round)} is on the later date ${n}.`,context:{scope:`cross-date|${e}`,drawId:s.round.drawId,structureId:e,date:s.locator.date,venueId:s.locator.venueId,locator:s.locator,prerequisite:i.locator,reason:`cross-date`},fixActions:[{kind:`JUMP_TO_ITEM`,locator:i.locator,label:jF}]});for(let e of r)e.round.roundNumber>o&&(o=e.round.roundNumber,s=e)}}return t}function RF(e,t){if(!(e.round.structureId===t.round.structureId&&e.locator.date===t.locator.date&&e.locator.venueId===t.locator.venueId)){if(e.locator.date<t.locator.date)return{code:`DEPENDENCY_VIOLATION`,severity:`ERROR`,message:`${dF(e.round)} is scheduled on ${e.locator.date} but depends on ${dF(t.round)} which is on the later date ${t.locator.date}.`,context:{date:e.locator.date,venueId:e.locator.venueId,locator:e.locator,prerequisite:t.locator,reason:`cross-date`},fixActions:[{kind:`JUMP_TO_ITEM`,locator:t.locator,label:jF}]};if(e.locator.date===t.locator.date&&e.locator.venueId===t.locator.venueId&&e.locator.index<t.locator.index)return{code:`DEPENDENCY_VIOLATION`,severity:`ERROR`,message:`${dF(e.round)} is listed before its prerequisite ${dF(t.round)} in the same venue on ${e.locator.date}.`,context:{date:e.locator.date,venueId:e.locator.venueId,locator:e.locator,prerequisite:t.locator,reason:`cross-structure-same-day`},fixActions:[{kind:`JUMP_TO_ITEM`,locator:t.locator,label:jF},{kind:`MOVE_ITEM_AFTER`,locator:e.locator,after:t.locator,label:`Move after prerequisite`},{kind:`MOVE_ITEM_BEFORE`,locator:t.locator,before:e.locator,label:`Move prerequisite before`}]}}}function zF(e,t){let n=[],r=HF(e,e=>uF(e.round));for(let[e,i]of r.entries()){let a=t.getRoundDependencies(e);if(a.length)for(let e of a){let t=r.get(e);if(t)for(let e of i)for(let r of t){let t=RF(e,r);t&&n.push(t)}}}return UF(n)}function BF(e,t,n){let r=e[t],i=e.indexOf(n);for(let t=i+1;t<e.length;t++)e[t].round.roundNumber>=n.round.roundNumber&&(i=t);return{moveOffenderAfter:e[i].locator,movePrereqBefore:r.locator}}function VF(e){let t=[];for(let n of e)for(let e of n.venues)for(let r=0;r<e.rounds.length;r++){let i=e.rounds[r];t.push({round:i,locator:{date:n.scheduleDate,venueId:e.venueId,index:r,roundKey:pF(i),roundSegment:i.roundSegment}})}return t}function HF(e,t){let n=new Map;for(let r of e){let e=t(r),i=n.get(e);i?i.push(r):n.set(e,[r])}return n}function UF(e){let t=new Set,n=[];for(let r of e){let e=r.code+`|`+r.message+`|`+(r.context?.scope??``)+`|`+JSON.stringify(r.context?.locator??{});t.has(e)||(t.add(e),n.push(r))}return n}function WF(e){let t={ERROR:[],WARN:[],INFO:[]},n={},r={},i={},a={total:e.length,ERROR:0,WARN:0,INFO:0,byDate:{},byVenue:{},byDraw:{}},o=e=>e===`ERROR`?0:e===`WARN`?1:2,s=(e,t)=>o(e.severity)-o(t.severity)||e.code.localeCompare(t.code)||e.message.localeCompare(t.message);for(let o of e){t[o.severity].push(o),a[o.severity]++;let e=o.context?.date??o.context?.locator?.date,s=o.context?.venueId??o.context?.locator?.venueId,c=o.context?.scope??(o.context?.drawId&&o.context?.structureId?`${o.context.drawId}|${o.context.structureId}`:void 0);e&&(n[e]??=[]).push(o),s&&(r[s]??=[]).push(o),c&&(i[c]??=[]).push(o),GF(a.byDate,e,o.severity),GF(a.byVenue,s,o.severity),GF(a.byDraw,c,o.severity)}for(let e of Object.keys(t))t[e].sort(s);for(let e of[n,r,i])for(let t of Object.keys(e))e[t].sort(s);return{all:e,bySeverity:t,byDate:n,byVenue:r,byDraw:i,counts:a}}function GF(e,t,n){if(!t)return;let r=e[t]??={total:0,ERROR:0,WARN:0,INFO:0};r.total++,r[n]++}function KF(e,t,n){let r=cF(e),{date:i,venueId:a}=n,o=JF(qF(r,i),a);if(t.type===`CATALOG_ROUND`){let e={tournamentId:t.roundRef.tournamentId,eventId:t.roundRef.eventId,eventName:t.roundRef.eventName,drawId:t.roundRef.drawId,drawName:t.roundRef.drawName,structureId:t.roundRef.structureId,structureType:t.roundRef.structureType,roundNumber:t.roundRef.roundNumber,roundName:t.roundRef.roundName};t.roundSegment&&(e.roundSegment=t.roundSegment);let i=lF(n.index,0,o.rounds.length);return o.rounds.splice(i,0,e),YF(o.rounds),{ok:!0,profile:r}}if(t.type===`PLANNED_ROUND`){let{locator:e}=t,s=JF(qF(r,e.date),e.venueId),[c]=s.rounds.splice(e.index,1);YF(s.rounds);let l=n.index;return e.date===i&&e.venueId===a&&e.index<l&&--l,l=lF(l,0,o.rounds.length),o.rounds.splice(l,0,c),YF(o.rounds),{ok:!0,profile:r}}return{ok:!1,profile:e}}function qF(e,t){let n=e.find(e=>e.scheduleDate===t);return n||(n={scheduleDate:t,venues:[]},e.push(n),e.sort((e,t)=>e.scheduleDate.localeCompare(t.scheduleDate))),n}function JF(e,t){let n=e.venues.find(e=>e.venueId===t);return n||(n={venueId:t,rounds:[]},e.venues.push(n)),n}function YF(e){for(let t=0;t<e.length;t++)e[t].sortOrder=t+1}function XF(e,t,n){return e.find(e=>e.scheduleDate===t)?.venues?.find(e=>e.venueId===n)?.rounds??[]}function ZF(e,t){return(e.find(e=>e.scheduleDate===t.date)?.venues?.find(e=>e.venueId===t.venueId))?.rounds?.[t.index]??null}function QF(e,t){return e.filter(e=>$F(e.context?.locator,t)||$F(e.context?.prerequisite,t))}function $F(e,t){return!!e&&e.date===t.date&&e.venueId===t.venueId&&e.index===t.index}function eI(e){return e.length?e.some(e=>e.severity===`ERROR`)?`ERROR`:e.some(e=>e.severity===`WARN`)?`WARN`:`INFO`:null}function tI(e,t){let n=uF(t);for(let t of e)for(let e of t.venues)for(let r=0;r<e.rounds.length;r++){let i=e.rounds[r];if(uF(pF(i))===n)return{date:t.scheduleDate,venueId:e.venueId,index:r,roundKey:pF(i),roundSegment:i.roundSegment}}return null}var nI=class{constructor(e){this.listeners=new Set,this.config=e;let t={all:[],bySeverity:{ERROR:[],WARN:[],INFO:[]},byDate:{},byVenue:{},byDraw:{},counts:{total:0,ERROR:0,WARN:0,INFO:0,byDate:{},byVenue:{},byDraw:{}}};this.state={profileDraft:cF(e.initialProfile??[]),venues:e.venues,roundCatalog:e.roundCatalog,schedulableDates:e.schedulableDates,activeDates:e.activeDates,selectedDate:e.selectedDate??e.schedulableDates[0]??null,selectedLocator:null,ruleResults:[],issueIndex:t,catalogSearchQuery:``,catalogGroupBy:`event`,plannedRoundBehavior:e.plannedRoundBehavior??`dim`},this.revalidate()}getState(){return this.state}getSchedulingProfile(){return cF(this.state.profileDraft)}selectDate(e){this.state.selectedDate!==e&&this.setState({selectedDate:e,selectedLocator:null})}selectCard(e){this.setState({selectedLocator:e})}setCatalogSearch(e){this.setState({catalogSearchQuery:e})}setCatalogGroupBy(e){this.setState({catalogGroupBy:e})}navigateToRound(e){let t=tI(this.state.profileDraft,{tournamentId:e.tournamentId,eventId:e.eventId,drawId:e.drawId,structureId:e.structureId,roundNumber:e.roundNumber});t&&this.setState({selectedDate:t.date,selectedLocator:t})}dropRound(e,t){try{let n=KF(this.state.profileDraft,e,t);if(!n.ok)return{ok:!1,errorMessage:`Invalid drop operation`};let r=new Set(this.state.ruleResults.filter(e=>e.severity===`ERROR`).map(rI)),i=MF({profile:n.profile,availability:this.config.availabilityAdapter,demand:this.config.demandAdapter,dependencies:this.config.dependencyAdapter,venueOrder:this.config.venueOrder}).filter(e=>e.severity===`ERROR`).filter(e=>!r.has(rI(e)));return i.length?(this.addRejectionNotice(i[0].message),{ok:!1,errorMessage:i[0].message}):(this.commitProfile(n.profile),{ok:!0})}catch(e){return{ok:!1,errorMessage:String(e)}}}removeRound(e){let t=cF(this.state.profileDraft),n=t.find(t=>t.scheduleDate===e.date);if(!n)return;let r=n.venues.find(t=>t.venueId===e.venueId);if(r&&!(e.index<0||e.index>=r.rounds.length)){r.rounds.splice(e.index,1);for(let e=0;e<r.rounds.length;e++)r.rounds[e].sortOrder=e+1;this.commitProfile(t),this.state.selectedLocator?.date===e.date&&this.state.selectedLocator?.venueId===e.venueId&&this.state.selectedLocator?.index===e.index&&this.setState({selectedLocator:null})}}setNotBeforeTime(e,t){let n=cF(this.state.profileDraft),r=n.find(t=>t.scheduleDate===e.date);if(!r)return;let i=r.venues.find(t=>t.venueId===e.venueId);if(!i)return;let a=i.rounds[e.index];a&&(t?a.notBeforeTime=t:delete a.notBeforeTime,this.commitProfile(n))}applyFixAction(e){if(e.kind===`JUMP_TO_ITEM`&&e.locator){this.setState({selectedDate:e.locator.date,selectedLocator:e.locator});return}if(e.kind===`OPEN_AVAILABILITY_GRID`){this.config.onFixAction?.(e);return}if(e.kind===`MOVE_ITEM_AFTER`&&e.locator&&e.after){let t=iI(this.state.profileDraft,e.locator,e.after);this.commitProfile(t);return}if(e.kind===`MOVE_ITEM_BEFORE`&&e.locator&&e.before){let t=aI(this.state.profileDraft,e.locator,e.before);this.commitProfile(t);return}this.config.onFixAction?.(e)}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setState(e){this.state={...this.state,...e},this.emit()}commitProfile(e){this.state={...this.state,profileDraft:e},this.revalidate(),this.config.onProfileChanged?.(cF(e))}addRejectionNotice(e){let t={code:`DROP_REJECTED`,severity:`WARN`,message:`Drop rejected: ${e}`,context:{}},n=[...this.state.ruleResults.filter(e=>e.code!==`DROP_REJECTED`),t],r=WF(n);this.state={...this.state,ruleResults:n,issueIndex:r},this.emit()}revalidate(){let e=MF({profile:this.state.profileDraft,availability:this.config.availabilityAdapter,demand:this.config.demandAdapter,dependencies:this.config.dependencyAdapter,venueOrder:this.config.venueOrder}),t=WF(e);this.state={...this.state,ruleResults:e,issueIndex:t},this.emit()}emit(){for(let e of this.listeners)e(this.state)}};function rI(e){return`${e.code}|${e.context?.scope??``}|${e.context?.structureId??``}|${e.context?.date??``}`}function iI(e,t,n){let r=cF(e),i=oI(r,t);if(!i)return e;let a=sI(r,n.date,n.venueId),o=Math.min(a.length,n.index+1);return a.splice(o,0,i),r}function aI(e,t,n){let r=cF(e),i=oI(r,t);if(!i)return e;let a=sI(r,n.date,n.venueId),o=Math.max(0,Math.min(a.length,n.index));return a.splice(o,0,i),r}function oI(e,t){let n=e.find(e=>e.scheduleDate===t.date);if(!n)return null;let r=n.venues.find(e=>e.venueId===t.venueId);return!r||t.index<0||t.index>=r.rounds.length?null:r.rounds.splice(t.index,1)[0]}function sI(e,t,n){let r=e.find(e=>e.scheduleDate===t);r||(r={scheduleDate:t,venues:[]},e.push(r));let i=r.venues.find(e=>e.venueId===n);return i||(i={venueId:n,rounds:[]},r.venues.push(i)),i.rounds}function cI(e,t){let{round:n,locator:r,isSelected:i,severity:a}=e,o=document.createElement(`div`);o.className=LP(),i&&o.classList.add(`selected`),a===`ERROR`?o.classList.add(`error`):a===`WARN`&&o.classList.add(`warn`),o.draggable=!0,o.addEventListener(`dragstart`,e=>{e.stopPropagation(),e.dataTransfer.setDragImage(o,o.offsetWidth/2,20),e.dataTransfer.setData(`application/json`,JSON.stringify({type:`PLANNED_ROUND`,locator:r})),e.dataTransfer.effectAllowed=`copyMove`}),o.addEventListener(`click`,e=>{e.stopPropagation(),t.onClick(r)}),t.onContextMenu&&o.addEventListener(`contextmenu`,e=>{e.preventDefault(),e.stopPropagation(),t.onContextMenu(r,o)});let s=document.createElement(`div`);s.className=RP();let c=n.roundName&&!n.roundName.startsWith(`rn=`)?n.roundName:`Round `+n.roundNumber;s.textContent=(n.eventName?n.eventName+` — `:``)+c,o.appendChild(s);let l=document.createElement(`div`);l.className=zP(),l.textContent=[n.drawName||``,n.matchCountEstimate?`${n.matchCountEstimate} matches`:``].filter(Boolean).join(` · `),o.appendChild(l);let u=document.createElement(`div`);return u.className=kP(),n.roundSegment&&u.appendChild(lI(`Seg ${n.roundSegment.segmentNumber}/${n.roundSegment.segmentsCount}`,`seg`)),n.notBeforeTime&&u.appendChild(lI(`NB ${n.notBeforeTime}`,`nb`)),a===`ERROR`?u.appendChild(lI(`Error`,`err`)):a===`WARN`&&u.appendChild(lI(`Warn`,`warn`)),u.children.length&&o.appendChild(u),o}function lI(e,t){let n=document.createElement(`div`);return n.className=AP()+` `+t,n.textContent=e,n}function uI(e,t){let n=document.createElement(`div`);n.className=yP();let r=document.createElement(`div`);r.className=bP();let i=t?.titleLeadingActions,a=document.createElement(`div`);if(a.className=xP(),a.textContent=`Day Plan`,i){let e=document.createElement(`div`);e.className=wP();let t=Array.isArray(i)?i:[i];for(let n of t)e.appendChild(n);e.appendChild(a),r.appendChild(e)}else r.appendChild(a);let o=t?.headerActions;if(o){let e=document.createElement(`div`);e.className=CP();let t=Array.isArray(o)?o:[o];for(let n of t)e.appendChild(n);r.appendChild(e)}n.appendChild(r);let s=document.createElement(`div`);s.className=jP(),n.appendChild(s);function c(t){let n=t.selectedDate;s.innerHTML=``;let r=Math.max(1,t.venues.length);r>4?(s.classList.add(`sp-board-scroll`),s.style.gridTemplateColumns=``):(s.classList.remove(`sp-board-scroll`),s.style.gridTemplateColumns=`repeat(${r}, 1fr)`);for(let r of t.venues){let i=document.createElement(`div`);i.className=MP();let a=document.createElement(`div`);a.className=NP();let o=document.createElement(`div`),c=document.createElement(`div`);c.className=PP(),c.textContent=r.name;let l=document.createElement(`div`);l.className=FP(),l.textContent=``,o.appendChild(c),o.appendChild(l);let u=t.issueIndex.counts.byVenue[r.venueId],d=document.createElement(`div`);d.className=OP(),u?.ERROR?(d.classList.add(`err`),d.textContent=`${u.ERROR} err`):u?.WARN?(d.classList.add(`warn`),d.textContent=`${u.WARN} warn`):(d.classList.add(`ok`),d.textContent=`OK`),a.appendChild(o),a.appendChild(d);let f=document.createElement(`div`);if(f.className=IP(),f.dataset.venue=r.venueId,n){let i=XF(t.profileDraft,n,r.venueId);if(!i.length){let e=document.createElement(`div`);e.className=eF(),e.textContent=`Drop rounds here.`,f.appendChild(e)}i.forEach((i,a)=>{let o={date:n,venueId:r.venueId,index:a,roundKey:pF(i),roundSegment:i.roundSegment},s=eI(QF(t.ruleResults,o)),c=cI({round:i,locator:o,isSelected:fF(t.selectedLocator,o),severity:s},{onClick:e.onCardClick,onContextMenu:e.onCardContextMenu});f.appendChild(c)})}else{let e=document.createElement(`div`);e.className=eF(),e.textContent=`Select a date to plan.`,f.appendChild(e)}let p=document.createElement(`div`);p.className=iF(),p.style.display=`none`,f.addEventListener(`dragover`,e=>{if(!n)return;e.preventDefault(),f.classList.add(`over`),e.dataTransfer.dropEffect=`move`;let t=fI(f,e.clientY,p),r=dI(f,p);p.style.display=``,t<r.length?f.insertBefore(p,r[t]):f.appendChild(p)}),f.addEventListener(`dragleave`,e=>{f.contains(e.relatedTarget)||(f.classList.remove(`over`),p.style.display=`none`)}),f.addEventListener(`drop`,t=>{if(f.classList.remove(`over`),p.style.display=`none`,t.preventDefault(),!n)return;let i;try{i=JSON.parse(t.dataTransfer.getData(`application/json`))}catch{return}let a=fI(f,t.clientY,p),o={date:n,venueId:r.venueId,index:a};e.onDrop(i,o)}),i.appendChild(a),i.appendChild(f),s.appendChild(i)}}return{element:n,update:c}}function dI(e,t){return Array.from(e.querySelectorAll(`[draggable="true"]`)).filter(e=>e!==t)}function fI(e,t,n){let r=dI(e,n);for(let e=0;e<r.length;e++){let n=r[e].getBoundingClientRect();if(t<n.top+n.height/2)return e}return r.length}function pI(e){let t=document.createElement(`div`);t.className=yP();let n=document.createElement(`div`);n.className=bP();let r=document.createElement(`div`);r.className=xP(),r.textContent=`Dates`;let i=document.createElement(`div`);i.className=SP(),n.appendChild(r),n.appendChild(i),t.appendChild(n);let a=document.createElement(`div`);a.className=TP(),t.appendChild(a);function o(t){i.textContent=`${t.schedulableDates.length} schedulable`,a.innerHTML=``;let n=t.activeDates?new Set(t.activeDates):null;for(let r of t.schedulableDates){let i=!n||n.has(r),o=t.issueIndex.counts.byDate[r],s=document.createElement(`div`);s.className=EP(),r===t.selectedDate&&s.classList.add(`selected`),i||s.classList.add(`inactive`),s.setAttribute(`data-date`,r);let c=document.createElement(`div`),l=document.createElement(`div`);l.style.cssText=`font-weight:800;font-size:12px`,l.textContent=r;let u=document.createElement(`div`);u.style.cssText=`font-size:11px;color:var(--sp-muted)`,u.textContent=i?`Active`:`Inactive`,c.appendChild(l),c.appendChild(u);let d=document.createElement(`div`);d.className=DP(),o?.ERROR&&d.appendChild(mI(`${o.ERROR} err`,`err`)),o?.WARN&&d.appendChild(mI(`${o.WARN} warn`,`warn`)),!o?.ERROR&&!o?.WARN&&d.appendChild(mI(`OK`,`ok`)),s.appendChild(c),s.appendChild(d),s.addEventListener(`click`,()=>e.onDateSelected(r)),a.appendChild(s)}}return{element:t,update:o}}function mI(e,t){let n=document.createElement(`div`);return n.className=OP()+` `+t,n.textContent=e,n}var hI=class{constructor(e){this.container=null,this.store=new nI(e),this.popover=sF({onDelete:e=>{this.store.removeRound(e)},onSetNotBeforeTime:e=>{let t=prompt(`Enter not-before time (HH:MM):`,`10:00`);t!==null&&this.store.setNotBeforeTime(e,t||void 0)}});let t=pI({onDateSelected:e=>this.store.selectDate(e)}),n=OF({onFixAction:e=>this.store.applyFixAction(e)}),r=uI({onDrop:(e,t)=>{this.store.dropRound(e,t)},onCardClick:e=>this.store.selectCard(e),onCardContextMenu:(e,t)=>{this.popover.show(t,e)}},{headerActions:e.headerActions,titleLeadingActions:e.titleLeadingActions}),i=CF({onSearchChange:e=>this.store.setCatalogSearch(e),onGroupByChange:e=>this.store.setCatalogGroupBy(e),onDropRemove:e=>this.store.removeRound(e),onNavigateToPlanned:e=>this.store.navigateToRound(e)});this.layout=oF({dateStrip:t,issuesPanel:n,venueBoard:r,roundCatalog:i},{hideLeft:e.hideLeft,catalogSide:e.catalogSide}),this.unsubscribe=this.store.subscribe(e=>{this.layout.update(e)}),this.layout.update(this.store.getState())}render(e){this.container=e,e.appendChild(this.layout.element)}destroy(){this.unsubscribe(),this.popover.destroy(),this.container&&this.layout.element.parentNode===this.container&&this.layout.element.remove(),this.container=null}getProfile(){return this.store.getSchedulingProfile()}getStore(){return this.store}};function gI(e,t){let n=new hI(e);return n.render(t),n}var _I=class{constructor(){this.selectedDay=null,this.selectedVenue=null,this.selectedCourt=null,this.layerVisibility=new Map,this.listeners=new Set}setSelectedDay(e){this.selectedDay!==e&&(this.selectedDay=e,this.emit({selectedDay:e}))}getSelectedDay(){return this.selectedDay}setSelectedVenue(e){this.selectedVenue!==e&&(this.selectedVenue=e,this.emit({selectedVenue:e}))}getSelectedVenue(){return this.selectedVenue}setSelectedCourt(e){this.selectedCourt!==e&&(this.selectedCourt=e,this.emit({selectedCourt:e}))}getSelectedCourt(){return this.selectedCourt}setLayerVisibility(e,t){this.layerVisibility.set(e,t),this.emit({layerVisibility:new Map(this.layerVisibility)})}getLayerVisibility(){return new Map(this.layerVisibility)}isLayerVisible(e){return this.layerVisibility.get(e)??!0}getSnapshot(){return{selectedDay:this.selectedDay,selectedVenue:this.selectedVenue,selectedCourt:this.selectedCourt,layerVisibility:new Map(this.layerVisibility)}}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}emit(e){let t={type:`VIEW_CHANGED`,payload:e};for(let e of this.listeners)e(t)}},vI={AVAILABLE:`rgba(33, 141, 141, 0.15)`,BLOCKED:`#95a5a6`,PRACTICE:`#9b59b6`,MAINTENANCE:`#f39c12`,RESERVED:`#3498db`,CLOSED:`#2c3e50`,SCHEDULED:`#27ae60`,SOFT_BLOCK:`#5dade2`,HARD_BLOCK:`#e74c3c`,LOCKED:`#34495e`,UNSPECIFIED:`#ecf0f1`};function yI(e,t,n={}){let r=[],i=new Map;for(let e of t){let t=CI(e.ref);i.set(t,e)}let a=new Set;for(let t of e)for(let e of t.rails)a.add(CI(e.court));for(let e of a){let t=i.get(e);if(!t)continue;let n={id:e,content:t.name,courtRef:t.ref,surface:t.surface,indoor:t.indoor,hasLights:t.hasLights,tags:t.tags};r.push(n)}return r}function bI(e,t={}){let{layerVisibility:n=new Map,showSegmentLabels:r=!1,colorScheme:i=vI}=t,a=[];for(let t of e)for(let e of t.rails){let t=CI(e.court);for(let o of e.segments){if(!(n.get(o.status)??!0))continue;let e=`${t}-${o.start}-${o.status}`,s=i[o.status];a.push({id:e,group:t,content:r?xI(o):``,start:o.start,end:o.end,type:`background`,className:`availability-segment segment-${o.status.toLowerCase()}`,style:s===`transparent`?void 0:`background-color: ${s};`,title:`${o.status} segment`,editable:!1,selectable:!1,status:o.status,contributingBlocks:o.contributingBlocks,isSegment:!0})}}return a}function xI(e){let t=Math.round((new Date(e.end).getTime()-new Date(e.start).getTime())/(1e3*60));return`${e.status} (${t}m)`}function SI(e,t={}){let{colorScheme:n=vI}=t,r=[];for(let t of e){let e=CI(t.court),i=n[t.type],a=wI(i,-20);r.push({id:`block-${t.id}`,group:e,content:t.reason||t.type,start:t.start,end:t.end,type:`range`,className:`availability-block block-${t.type.toLowerCase()}`,style:`background-color: ${i}; border-color: ${a};`,title:t.reason||t.type,editable:{updateTime:!0,updateGroup:!0,remove:!1},blockId:t.id,status:t.type,reason:t.reason,isBlock:!0})}return r}function CI(e){return`${e.tournamentId}|${e.venueId}|${e.courtId}`}function wI(e,t){if(!e||!e.startsWith(`#`))return e;let n=parseInt(e.replace(`#`,``),16),r=Math.round(2.55*t),i=(n>>16)+r,a=(n>>8&255)+r,o=(n&255)+r;return`#`+(16777216+(i<255?i<1?0:i:255)*65536+(a<255?a<1?0:a:255)*256+(o<255?o<1?0:o:255)).toString(16).slice(1)}function TI(e){let t=e.split(`|`);return t.length===3?{tournamentId:t[0],venueId:t[1],courtId:t[2]}:null}function EI(e){let t=String(e);return t.startsWith(`block-`)?t.slice(6):null}function DI(e){let t=new Date(`${e.day}T${e.dayStartTime}:00`),n=new Date(`${e.day}T${e.dayEndTime}:00`);return{start:t,end:n,min:t,max:n,zoomMin:e.slotMinutes*4*60*1e3,zoomMax:(n.getTime()-t.getTime())*1.5}}var OI=_({EventEmitter:()=>TR,PluginRegistry:()=>fL,TimepickerUI:()=>AR,default:()=>jR});function kI(){CL===0&&(wL=document.body.style.overflowY,TL=document.body.style.paddingRight,document.body.style.paddingRight=`${tL()}px`,document.body.style.overflowY=`hidden`),CL+=1}function AI(){CL!==0&&(--CL,CL===0&&(document.body.style.overflowY=wL,document.body.style.paddingRight=TL,wL=``,TL=``))}function jI(e){let t=e.match(nR);return t?{hour:t[1],minutes:t[2],type:t[3].toUpperCase()}:null}function MI(e){let t=e.match(rR);return t?{hour:t[1],minutes:t[2]}:null}function NI(e,t){let n=parseInt(e.hour,10),r=parseInt(e.minutes,10);if(Number.isNaN(n)||Number.isNaN(r))return 0;if(t===`12h`&&e.type){let t=e.type.toUpperCase();t===`PM`&&n!==12&&(n+=12),t===`AM`&&n===12&&(n=0)}return n*60+r}function PI(e,t){if(t===`12h`){let t=e.match(/(\d{1,2}):(\d{2})\s*(AM|PM)/i);return t?NI({hour:t[1],minutes:t[2],type:t[3]},`12h`):0}let[n,r]=e.split(`:`);return NI({hour:n??`0`,minutes:r??`0`},`24h`)}function FI(e,t,n,r){e.on(n,r),t.push(()=>e.off(n,r))}function II(e){let t=e.target,n=t.hasAttribute(`data-md3-ripple`)?t:t.closest(`[data-md3-ripple]`);if(!n||e.button!==0&&e.pointerType===`mouse`)return;let r=n.getBoundingClientRect(),i=Math.max(r.width,r.height)*2,a=e.clientX-r.left,o=e.clientY-r.top;n.style.setProperty(`--ripple-size`,`${i}px`),n.style.setProperty(`--ripple-x`,`${a}px`),n.style.setProperty(`--ripple-y`,`${o}px`),n.classList.remove(vR,yR),n.offsetWidth,n.classList.add(vR,yR),n._rippleHold=!0,bR=n}function LI(e){let t=e.target,n=(t.hasAttribute(`data-md3-ripple`)?t:t.closest(`[data-md3-ripple]`))||bR;n&&(n._rippleHold=!1,n.classList.remove(yR),setTimeout(()=>{n.classList.remove(vR),bR===n&&(bR=null)},1e3))}function RI(e){let t=e.currentTarget;!t||!t._rippleHold||(t._rippleHold=!1,t.classList.remove(yR),setTimeout(()=>{t.classList.remove(vR),bR===t&&(bR=null)},1e3))}function zI(e){if(ZI()===!1)return;let t=e||document;t.addEventListener(`pointerdown`,II),t.addEventListener(`pointerup`,LI),t.addEventListener(`pointercancel`,LI),t.querySelectorAll(`[data-md3-ripple]`).forEach(e=>{e.addEventListener(`mouseleave`,RI)})}function BI(e){let t=e.ui.mode;return t===`wheel`||t===`compact-wheel`}function VI(e){return e.ui.mode===`compact-wheel`}function HI(e){return VI(e)&&!!e.wheel?.placement}function UI(e,t){let{callbacks:n}=e.options;for(let[e,r]of SR){let i=n[e];i&&t.on(r,i)}}function WI(e,t){for(let n of CR)n.needed(e.options)&&!fL.has(n.name)&&t.emit(`error`,{error:n.message})}function GI(e={}){let t={clock:{...ER.clock,...e.clock},ui:{...ER.ui,...e.ui},labels:{...ER.labels,...e.labels},behavior:{...ER.behavior,...e.behavior},callbacks:{...ER.callbacks,...e.callbacks},timezone:{...ER.timezone,...e.timezone},range:{...ER.range,...e.range},wheel:{...ER.wheel,...e.wheel},clearBehavior:{...ER.clearBehavior,...e.clearBehavior}},n=t.ui.mode;return(n===`wheel`||n===`compact-wheel`)&&(t.wheel={placement:n===`compact-wheel`?`auto`:void 0,hideFooter:void 0,commitOnScroll:void 0,ignoreOutsideClick:void 0,...t.wheel}),t}function KI(e,t){if(e.options.clock.type===`24h`){let e=MI(t);if(!e)throw Error(`Invalid 24h format. Expected HH:MM`);return{hourValue:e.hour.padStart(2,`0`),minutesValue:e.minutes,typeValue:`AM`}}let n=jI(t);if(!n)throw Error(`Invalid 12h format. Expected HH:MM AM/PM`);return{hourValue:n.hour,minutesValue:n.minutes,typeValue:n.type}}function qI(e,t){let n=e.getHour(),r=e.getMinutes();n&&(n.value=t.hourValue,n.setAttribute(`aria-valuenow`,t.hourValue),e.setDegreesHours(Number(t.hourValue)*30)),r&&(r.value=t.minutesValue,r.setAttribute(`aria-valuenow`,t.minutesValue),e.setDegreesMinutes(Number(t.minutesValue)*6))}function JI(e,t){if(e.options.clock.type===`24h`)return;let n=e.getAM(),r=e.getPM();!n||!r||(t===`AM`?(n.classList.add(`active`),r.classList.remove(`active`)):(r.classList.add(`active`),n.classList.remove(`active`)))}function YI(e,t,n){if(BI(e.options))t.getPlugin(`wheel`)?.scrollToValue?.(n.hourValue,n.minutesValue,n.typeValue);else{let t=e.getClockHand();t&&(t.style.transform=`rotateZ(${e.degreesHours||0}deg)`)}}var XI,ZI,QI,$I,eL,tL,nL,rL,iL,aL,oL,sL,cL,lL,uL,dL,fL,pL,mL,hL,gL,_L,vL,yL,bL,xL,SL,CL,wL,TL,EL,DL,OL,kL,AL,jL,ML,NL,PL,FL,IL,LL,RL,zL,BL,VL,HL,UL,WL,GL,KL,qL,JL,YL,XL,ZL,QL,$L,eR,tR,nR,rR,iR,aR,oR,sR,cR,lR,uR,dR,fR,pR,mR,hR,gR,_R,vR,yR,bR,xR,SR,CR,wR,TR,ER,DR,OR,kR,AR,jR,MR=h((()=>{XI=()=>typeof window>`u`,ZI=()=>typeof document<`u`,QI=class{_degreesHours=null;_degreesMinutes=null;_options;_isMobileView=!1;_isTouchMouseMove=!1;_disabledTime=null;_cloned=null;_isModalRemove=!0;_isOpen=!1;_isInitialized=!1;_eventHandlersRegistered=!1;_isDestroyed=!1;element;instanceId;customId;constructor(e,t,n,r){this.element=e,this.instanceId=n,this.customId=r,this._options=t}get degreesHours(){return this._degreesHours}get degreesMinutes(){return this._degreesMinutes}get options(){return this._options}get isMobileView(){return this._isMobileView}get isTouchMouseMove(){return this._isTouchMouseMove}get disabledTime(){return this._disabledTime}get cloned(){return this._cloned}get isModalRemove(){return this._isModalRemove}get isOpen(){return this._isOpen}get isInitialized(){return this._isInitialized}get eventHandlersRegistered(){return this._eventHandlersRegistered}get isDestroyed(){return this._isDestroyed}setDegreesHours(e){this._degreesHours=e}setDegreesMinutes(e){this._degreesMinutes=e}setOptions(e){this._options=e}setIsMobileView(e){this._isMobileView=e}setIsTouchMouseMove(e){this._isTouchMouseMove=e}setDisabledTime(e){this._disabledTime=e}setCloned(e){this._cloned=e}setIsModalRemove(e){this._isModalRemove=e}setIsOpen(e){this._isOpen=e}setIsInitialized(e){this._isInitialized=e}setEventHandlersRegistered(e){this._eventHandlersRegistered=e}setIsDestroyed(e){this._isDestroyed=e}updateOptions(e){this._options={...this._options,clock:{...this._options.clock,...e.clock||{}},ui:{...this._options.ui,...e.ui||{}},labels:{...this._options.labels,...e.labels||{}},behavior:{...this._options.behavior,...e.behavior||{}},callbacks:{...this._options.callbacks,...e.callbacks||{}}}}reset(){this._degreesHours=null,this._degreesMinutes=null,this._isTouchMouseMove=!1,this._disabledTime=null,this._cloned=null,this._isModalRemove=!0,this._isOpen=!1,this._isInitialized=!1,this._isDestroyed=!0,this._eventHandlersRegistered=!1}q(e){return this.getModalElement()?.querySelector(e)??null}qMobile(e,t){return this._isMobileView?this.q(e):this.q(t)}getModalElement(){return ZI()===!1?null:document.querySelector(`[data-owner-id="${this.instanceId}"]`)}getInput(){return this.element?.querySelector(`input`)}getClockFace(){return this.qMobile(`.tp-ui-clock-face.mobile`,`.tp-ui-clock-face:not(.mobile)`)}getClockHand(){return this.qMobile(`.tp-ui-mobile-clock-wrapper .tp-ui-clock-hand`,`.tp-ui-clock-hand:not(.mobile)`)}getCircle(){return this.qMobile(`.tp-ui-mobile-clock-wrapper .tp-ui-circle-hand`,`.tp-ui-circle-hand:not(.mobile)`)}getTipsWrapper(){return this.qMobile(`.tp-ui-mobile-clock-wrapper .tp-ui-tips-wrapper`,`.tp-ui-tips-wrapper:not(.mobile)`)}getTipsWrapperFor24h(){return this.qMobile(`.tp-ui-mobile-clock-wrapper .tp-ui-tips-wrapper-24h`,`.tp-ui-tips-wrapper-24h:not(.mobile)`)}getMinutes(){return this.q(`.tp-ui-minutes`)}getHour(){return this.q(`.tp-ui-hour`)}getAM(){return this.q(`.tp-ui-am`)}getPM(){return this.q(`.tp-ui-pm`)}getHourText(){return this.q(`.tp-ui-hour-text`)}getMinutesText(){return this.q(`.tp-ui-minute-text`)}getHeader(){return this.q(`.tp-ui-header`)}getInputWrappers(){return this.getModalElement()?.querySelectorAll(`.tp-ui-input-wrapper`)||null}getDots(){return this.q(`.tp-ui-dots`)}getMinutesTips(){return this.q(`.tp-ui-minutes-time`)}getHourTips(){return this.q(`.tp-ui-hour-time-12`)}getAllValueTips(){let e=this.getModalElement();return e?[...e.querySelectorAll(`.tp-ui-value-tips`),...e.querySelectorAll(`.tp-ui-value-tips-24h`)]:[]}getOpenElementData(){let e=this.element?.querySelectorAll(`[data-open]`);if(e?.length>0){let t=[];return e.forEach(({dataset:e})=>t.push(e.open??``)),[...new Set(t)]}return null}getOpenElement(){let e=this.getInput(),t=this.getOpenElementData();return t===null?(e?.setAttribute(`data-open`,`tp-ui-input`),[e]):t.map(e=>this.element?.querySelectorAll(`[data-open='${e}']`))[0]??``}getCancelButton(){return this.q(`.tp-ui-cancel-btn`)}getOkButton(){return this.q(`.tp-ui-ok-btn`)}getActiveTypeMode(){return this.q(`.tp-ui-type-mode.active`)}getKeyboardClockIcon(){return this.q(`.tp-ui-keyboard-icon-wrapper`)}getFooter(){return this.q(`.tp-ui-footer`)}getWrapper(){return this.q(`.tp-ui-wrapper`)}},$I={DEFAULT_DELAY:300,MODAL_ANIMATION:150,SCROLLBAR_RESTORE:400,MODAL_REMOVE:300,CLOCK_ANIMATION:600,TIPS_ANIMATION:401,MOBILE_TOGGLE:450,CLOCK_SCALE_DELAY:150,WRAPPER_TRANSITION:400,DROPDOWN_CLICK_DELAY:10},eL=class{core;emitter;timeouts=[];constructor(e,t){this.core=e,this.emitter=t,this.setupEventListeners()}setupEventListeners(){this.emitter.on(`animation:clock`,()=>{this.handleAnimationSwitchTipsMode()})}runWithAnimation(e,t=$I.MODAL_ANIMATION){if(this.core.options.ui.animation){let n=setTimeout(e,t);this.timeouts.push(n)}else e()}clearAllTimeouts(){this.timeouts.forEach(clearTimeout),this.timeouts=[]}setAnimationToOpen(){this.clearAllTimeouts(),this.core.getModalElement()?.classList.add(`opacity`),this.runWithAnimation(()=>{this.core.getModalElement()?.classList.add(`show`)})}removeAnimationToClose(){this.clearAllTimeouts(),this.core.getModalElement()&&this.runWithAnimation(()=>{let e=this.core.getModalElement();e?.classList.remove(`show`),e?.classList.remove(`opacity`)})}handleAnimationClock(){this.core.options.ui.animation&&this.runWithAnimation(()=>{this.core.getClockFace()?.classList.add(`tp-ui-clock-animation`);let e=setTimeout(()=>{this.core.getClockFace()?.classList.remove(`tp-ui-clock-animation`)},$I.CLOCK_ANIMATION);this.timeouts.push(e)})}handleAnimationSwitchTipsMode(){let e=this.core.getClockHand();if(!e)return;this.emitter.emit(`animation:start`,{}),e.classList.add(`tp-ui-tips-animation`);let t=setTimeout(()=>{this.core.getClockHand()?.classList.remove(`tp-ui-tips-animation`),this.emitter.emit(`animation:end`,{})},$I.TIPS_ANIMATION);this.timeouts.push(t)}destroy(){this.clearAllTimeouts()}},tL=()=>{if(ZI()===!1)return 0;let e=document.createElement(`div`);e.className=`tp-ui-measure`,document.body.appendChild(e);let t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t},nL=(e,t)=>e?e.classList.contains(t):!1,rL=(e,t)=>Array.from({length:Number(t)-Number(e)+1},(t,n)=>Number(e)+n),iL=(e,t)=>Array.from({length:Number(t)-Number(e)+1},(e,n)=>Number(t)-n).reverse(),aL=(e=``)=>{let t=e.replace(/(AM|PM|am|pm)/,e=>` ${e}`),n=new Date(`September 20, 2000 ${t}`);return`${n.getHours().toString().padStart(2,`0`)}:${n.getMinutes().toString().padStart(2,`0`)}`},oL=e=>{let[t,n]=e.split(`:`);return`${t.padStart(2,`0`)}:${n.padStart(2,`0`)}`},sL=(e,t)=>{if(e.length<2)return!1;let n=e.map(e=>{let[n,r]=e.trim().split(`-`),i,a;if(t===`12h`){if(!/\s?(AM|PM|am|pm)\s?$/.test(n.trim())||!/\s?(AM|PM|am|pm)\s?$/.test(r.trim()))throw Error(`Invalid 12h format: "${e}"`);i=aL(n.trim()),a=aL(r.trim())}else{if(/\s?(AM|PM|am|pm)\s?/.test(n.trim())||/\s?(AM|PM|am|pm)\s?/.test(r.trim()))throw Error(`Invalid 24h format: "${e}"`);i=oL(n.trim()),a=oL(r.trim())}return{start:i,end:a,original:e}});for(let e=0;e<n.length;e++)for(let t=e+1;t<n.length;t++){let r=n[e],i=n[t];if(r.start<=i.end&&r.end>=i.start||i.start<=r.end&&i.end>=r.start)throw Error(`Overlapping intervals: "${r.original}" and "${i.original}"`)}return!1},cL=()=>typeof window<`u`&&window.crypto&&typeof window.crypto.randomUUID==`function`?window.crypto.randomUUID():`xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`.replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e===`x`?t:t&3|8).toString(16)}),lL=`<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="M160-200q-33 0-56.5-23.5T80-280v-400q0-33 23.5-56.5T160-760h640q33 0 56.5 23.5T880-680v400q0 33-23.5 56.5T800-200H160Zm0-80h640v-400H160v400Zm160-40h320v-80H320v80ZM200-440h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80ZM200-560h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80ZM160-280v-400 400Z"/></svg>`,uL=`<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="m612-292 56-56-148-148v-184h-80v216l172 172ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-400Zm0 320q133 0 226.5-93.5T800-480q0-133-93.5-226.5T480-800q-133 0-226.5 93.5T160-480q0 133 93.5 226.5T480-160Z"/></svg>`,dL=class{plugins=new Map;register(e){this.plugins.has(e.name)||this.plugins.set(e.name,e)}getAll(){return Array.from(this.plugins.values())}has(e){return this.plugins.has(e)}get(e){return this.plugins.get(e)}getTemplateProvider(e){return this.plugins.get(e)?.templateProvider}getClearHandler(e){return this.plugins.get(e)?.clearHandler}},fL=new dL,pL=[`00`,`13`,`14`,`15`,`16`,`17`,`18`,`19`,`20`,`21`,`22`,`23`],mL=[`12`,`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`,`10`,`11`],hL=[`00`,`05`,`10`,`15`,`20`,`25`,`30`,`35`,`40`,`45`,`50`,`55`],gL=(e,t,n)=>{let{timezone:{enabled:r,label:i}}=e;return!r||!fL.has(`timezone`)?``:`<div class="tp-ui-timezone ${t}">
225
225
  <span class="tp-ui-timezone-label" id="tp-tz-label-${n}">${i}</span>
226
226
  <div class="tp-ui-timezone-dropdown" role="combobox" aria-expanded="false" aria-haspopup="listbox" aria-labelledby="tp-tz-label-${n}" tabindex="0" data-tz-id="${n}">
227
227
  <div class="tp-ui-timezone-selected" data-placeholder="${i}...">${i}...</div>
228
228
  <svg class="tp-ui-timezone-arrow" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
229
229
  <div class="tp-ui-timezone-menu" role="listbox" aria-labelledby="tp-tz-label-${n}"></div>
230
230
  </div>
231
- </div>`},vL=e=>{let{range:{enabled:t,fromLabel:n,toLabel:r},labels:{rangeSelectionLabel:i}}=e;return!t||!pL.has(`range`)?``:`<div class="tp-ui-range-header" role="tablist" aria-label="${i}"><button type="button" class="tp-ui-range-tab tp-ui-range-from active" role="tab" tabindex="0" aria-selected="true"><span class="tp-ui-range-tab-label">${n}</span><span class="tp-ui-range-tab-value tp-ui-range-from-time">--:--</span></button><button type="button" class="tp-ui-range-tab tp-ui-range-to" role="tab" tabindex="-1" aria-selected="false"><span class="tp-ui-range-tab-label">${r}</span><span class="tp-ui-range-tab-value tp-ui-range-to-time">--:--</span></button></div>`},yL=(e,t)=>{let{ui:{clearButton:n},labels:{clear:r}}=e;return n?`<div class="tp-ui-clear-btn ${t} disabled" data-md3-ripple tabindex="0" role="button" aria-label="${r}" aria-disabled="true">${r}</div>`:``},bL=(e,t,n)=>{if(e.isWheelMode){let t=pL.getTemplateProvider(`wheel`);return t?`<div class="tp-ui-mobile-clock-wrapper ${e.mobileClass}">${t(n,e.instanceId)}</div>`:`<div class="tp-ui-mobile-clock-wrapper ${e.mobileClass}"></div>`}let{labels:{clockLabel:r}}=n;return`<div class="tp-ui-mobile-clock-wrapper ${e.mobileClass}"><div class="tp-ui-body ${e.mobileClass}"><div class="tp-ui-clock-face ${e.mobileClass}" role="group" aria-label="${r}"><div class="tp-ui-dot ${e.mobileClass}" aria-hidden="true"></div><div class="tp-ui-clock-hand ${e.mobileClass}" aria-hidden="true"><div class="tp-ui-circle-hand ${e.mobileClass}"></div></div><div class="tp-ui-tips-wrapper ${e.mobileClass}" aria-hidden="true"></div>${e.clockType===`24h`?`<div class="tp-ui-tips-wrapper-24h ${e.mobileClass}" aria-hidden="true"></div>`:``}</div></div></div>`},xL=(e,t)=>{let{labels:{time:n,mobileTime:r,timeLabel:i,am:a,pm:o,mobileMinute:s,mobileHour:c,hourLabel:l,minuteLabel:u,periodLabel:d},ui:{editable:f}}=e,{mobileClass:p,clockType:m,instanceId:h}=t,g=p?r:n,_=m===`12h`,v=_?`1`:`0`,y=_?`12`:`23`,b=_?`12`:`0`,x=m===`24h`?``:`<div class="tp-ui-wrapper-type-time ${p}" role="group" aria-label="${d}"><div class="tp-ui-type-mode tp-ui-am ${p?`mobile`:`tp-ui-ripple`}" data-md3-ripple tabindex="0" role="button" aria-label="${a}" aria-pressed="false" data-type="AM">${a}</div><div class="tp-ui-type-mode tp-ui-pm ${p?`mobile`:`tp-ui-ripple`}" data-md3-ripple tabindex="0" role="button" aria-label="${o}" aria-pressed="false" data-type="PM">${o}</div></div>`;return`<div class="tp-ui-select-time ${p}" id="tp-ui-label-${h}">${g}</div><div class="tp-ui-header ${p}"><div class="tp-ui-wrapper-time ${p} ${m===`24h`?`tp-ui-wrapper-time-24h`:``}" role="group" aria-label="${i}"><div class="tp-ui-input-wrapper ${p}"><div class="tp-ui-input-ripple-wrapper ${p}" data-md3-ripple><input name="hour" ${!f&&!p?`readonly`:``} class="tp-ui-hour ${p}" tabindex="0" type="number" min="${v}" max="${y}" aria-label="${p?c:l}" role="spinbutton" aria-valuemin="${v}" aria-valuemax="${y}" aria-valuenow="${b}" aria-valuetext="${b}"></div><div class="tp-ui-hour-text ${p}">${c}</div></div><div class="tp-ui-dots ${p}" aria-hidden="true"><span></span><span></span></div><div class="tp-ui-input-wrapper ${p}"><div class="tp-ui-input-ripple-wrapper ${p}" data-md3-ripple><input name="minutes" ${!f&&!p?`readonly`:``} class="tp-ui-minutes ${p}" tabindex="0" type="number" min="0" max="59" aria-label="${p?s:u}" role="spinbutton" aria-valuemin="0" aria-valuemax="59" aria-valuenow="0" aria-valuetext="00"></div><div class="tp-ui-minute-text ${p}">${s}</div></div></div>${x}</div>`},SL=(e,t)=>{let{ui:{enableSwitchIcon:n,iconTemplate:r,iconTemplateMobile:i},labels:{cancel:a,ok:o,switchToKeyboardLabel:s,switchToClockLabel:c,toggleLabel:l}}=e,u=`<button aria-label="${s}" type="button" class="tp-ui-keyboard-icon">${r||uL}</button>`,d=i||`<button aria-label="${c}" type="button" class="tp-ui-keyboard-icon">${i||dL}</button>`,f=n?`<div class="tp-ui-keyboard-icon-wrapper ${t}" tabindex="0" role="button" aria-pressed="false" aria-label="${l}" data-view="desktop">${t?d:u}</div>`:``,p=yL(e,t);return`<div class="tp-ui-footer ${t}" ${t?`data-view="mobile"`:``}>${f}<div class="tp-ui-wrapper-btn ${t}">${p}<div class="tp-ui-cancel-btn ${t}" data-md3-ripple tabindex="0" role="button" aria-label="${a}">${a}</div><div class="tp-ui-ok-btn ${t}" data-md3-ripple tabindex="0" role="button" aria-label="${o}">${o}</div></div></div>`},CL=(e,t)=>{let{ui:{mode:n,animation:r,theme:i,mobile:a},clock:{incrementMinutes:o}}=e,s=a?`mobile`:``,c=n===`compact-wheel`&&pL.has(`wheel`),l=(n===`wheel`||c)&&pL.has(`wheel`),u=!!e.range?.enabled&&pL.has(`range`),d=!!e.timezone?.enabled&&pL.has(`timezone`),f={mobileClass:s,clockType:e.clock.type||`12h`,instanceId:t,isWheelMode:l,isCompactWheel:c,isRangeMode:u},p=vL(e),m=_L(e,s,t),h=c?``:xL(e,f),g=bL(f,o??1,e),_=c&&e.wheel?.hideFooter===!0?``:SL(e,s),v;return v=c?` tp-ui-compact-wheel-mode`:l?` tp-ui-wheel-mode`:``,`<div class="tp-ui-modal normalize ${s}${u?` tp-ui-range-mode`:``}${d?` tp-ui-tz-mode`:``}${v}" data-theme="${i}" role="dialog" aria-modal="true" aria-labelledby="tp-ui-label-${t}" data-owner-id="${t}" style='transition:${r?`opacity 0.15s linear`:`none`}'><div class="tp-ui-wrapper ${s}" tabindex="0">${p}${h}${m}${g}${_}</div><div class="timepicker-announcer sr-only" role="status" aria-live="polite" aria-atomic="true"></div></div>`},wL=0,TL=``,EL=``,DL=class{core;emitter;timeouts=[];scrollLocked=!1;constructor(e,t){this.core=e,this.emitter=t}runWithTimeout(e,t=eL.DEFAULT_DELAY){let n=setTimeout(e,t);this.timeouts.push(n)}clearAllTimeouts(){this.timeouts.forEach(clearTimeout),this.timeouts=[]}isPopoverMode(){return this.core.options.ui.mode===`compact-wheel`&&!!this.core.options.wheel?.placement}clearExistingModal(){if(QI()===!1)return;let e=this.core.getModalElement();e&&e.remove()}setModalTemplate(){if(QI()===!1)return;this.clearExistingModal();let e=CL(this.core.options,this.core.instanceId);if(this.core.options.ui.inline?.enabled){let t=document.getElementById(this.core.options.ui.inline.containerId);if(!t)return;t.innerHTML=``,t.insertAdjacentHTML(`beforeend`,e);let n=t.querySelector(`.tp-ui-modal`);if(n){n.classList.add(`tp-ui--inline`);let{showButtons:e}=this.core.options.ui.inline;(e===!1||e===void 0)&&n.querySelectorAll(`.tp-ui-wrapper-btn, .tp-ui-wrapper-btn.mobile`).forEach(e=>e.style.display=`none`)}return}let{appendModalSelector:t}=this.core.options.ui;t?document.querySelector(t)?.insertAdjacentHTML(`beforeend`,e):document.body.insertAdjacentHTML(`beforeend`,e)}lockScroll(){QI()!==!1&&(this.core.options.ui.inline?.enabled||this.isPopoverMode()||this.core.options.ui.enableScrollbar||this.scrollLocked||(this.scrollLocked=!0,AI()))}unlockScroll(){QI()!==!1&&this.scrollLocked&&(this.scrollLocked=!1,jI())}setScrollbarOrNot(){QI()!==!1&&(this.core.options.ui.inline?.enabled||this.isPopoverMode()||(this.core.options.ui.enableScrollbar?this.runWithTimeout(()=>{ZI()||this.runWithTimeout(()=>{this.unlockScroll()},eL.SCROLLBAR_RESTORE)},400):this.lockScroll()))}removeBackdrop(){if(this.core.options.ui.inline?.enabled||this.core.options.ui.backdrop)return;let e=this.core.getModalElement(),t=this.core.getOpenElement();e?.classList.add(`removed`),t.forEach(e=>e?.classList.add(`disabled`))}setNormalizeClass(){let e=this.core.getModalElement();e&&(e.classList.add(`tp-ui-normalize`),e.querySelectorAll(`:scope > div`).forEach(e=>e.classList.add(`tp-ui-normalize`)))}setShowClassToBackdrop(){if(this.core.options.ui.inline?.enabled||this.isPopoverMode()){this.core.getModalElement()?.classList.add(`show`),this.setInitialFocus();return}this.core.options.ui.backdrop&&this.runWithTimeout(()=>{this.core.getModalElement()?.classList.add(`show`),this.setInitialFocus()},eL.MODAL_ANIMATION)}setInitialFocus(){if(!this.core.options.behavior.focusTrap)return;let e=this.core.getWrapper();e&&typeof requestAnimationFrame<`u`&&requestAnimationFrame(()=>{e.focus()})}setFlexEndToFooterIfNoKeyboardIcon(){let e=this.core.getFooter();!this.core.options.ui.enableSwitchIcon&&e&&(e.style.justifyContent=`flex-end`)}destroy(){this.clearAllTimeouts(),this.unlockScroll(),this.clearExistingModal()}},OL=(e,t,n,r)=>{let i={hour:`12`,minutes:`00`,type:t===`24h`?void 0:`PM`};if(!e)return i;let a=e.value.trim();if(!n&&!a)return i;if(typeof n==`boolean`&&n){let[e,n]=new Date().toLocaleTimeString().split(`:`),r=e.padStart(2,`0`);if(/[a-z]/i.test(n)&&t===`12h`){let[e,t]=n.split(` `);return{hour:r,minutes:e,type:t}}return{hour:r,minutes:n,type:void 0}}if(typeof n==`object`){let{time:e,locales:i,preventClockType:a}=n,o=e??new Date;if(a&&r){let[e,t]=new Date(o).toLocaleTimeString().split(`:`);if(/[a-z]/i.test(t)){let[n,r]=t.split(` `);return{hour:e,minutes:n,type:r}}return{hour:e.padStart(2,`0`),minutes:t,type:void 0}}let[s,c]=new Date(o).toLocaleTimeString(i||`en-US`,{hour:`2-digit`,minute:`2-digit`,hour12:t===`12h`}).split(`:`);if(t===`12h`&&/[a-z]/i.test(c)){let e=c.trim().split(` `);return{hour:s,minutes:e[0],type:e[1]||`AM`}}return{hour:s,minutes:c.replace(/\D/g,``),type:void 0}}let[o,s]=a.split(` `),[c=``,l=``]=o.split(`:`),u=c.replace(/\D/g,``),d=l.replace(/\D/g,``),f={hour:u.padStart(2,`0`),minutes:d.padStart(2,`0`),type:t===`12h`?s:void 0};if(u.length>2||d.length>2)return{...f,error:`Invalid input: too many digits.`,currentHour:c,currentMin:l};if(/[a-z]/i.test(o))return{...f,error:`Input contains invalid letters.`};if(a.includes(` `)&&(!s||a.length>8||s!==`AM`&&s!==`PM`))return{...f,error:`Invalid AM/PM format or length.`,currentLength:a.length,currentType:s};let p=Number(u),m=Number(d);if(t===`12h`){if(p<1||p>12||m<0||m>59||s!==`AM`&&s!==`PM`)return{...f,error:`Invalid 12h time.`,currentHour:p,currentMin:m,currentType:s}}else if(p<0||p>23||m<0||m>59)return{...f,error:`Invalid 24h time.`,currentHour:p,currentMin:m};return f},kL=(e,t,n)=>{let r=Number(e);if(Number.isNaN(r))return!1;switch(t){case`hour`:return n===`24h`?r>=0&&r<=23:r>0&&r<=12;case`minutes`:return r>=0&&r<=59;default:return}},AL=`tp-ui`,jL=`mousedown mouseup mousemove mouseleave mouseover touchstart touchmove touchend`,ML=`active`,NL=class{core;emitter;constructor(e,t){this.core=e,this.emitter=t}isCurrentTimeEnabled(e){let t=this.core.options.clock.currentTime;return typeof t==`boolean`?t:!!t?.[e]}preventClockTypeByCurrentTime(){if(!this.isCurrentTimeEnabled(`preventClockType`))return;let e=this.core.getInput();if(!e)return;let{currentTime:t,clockType:n}={currentTime:this.core.options.clock.currentTime,clockType:this.core.options.clock.type},{type:r}=OL(e,n,t,!0);this.core.updateOptions({clock:{type:r?`12h`:`24h`}})}updateInputValueWithCurrentTimeOnStart(){if(!this.isCurrentTimeEnabled(`updateInput`))return;let e=this.core.getInput();if(!e)return;let{hour:t,minutes:n,type:r}=OL(e,this.core.options.clock.type,this.core.options.clock.currentTime);e.value=r?`${t}:${n} ${r}`:`${t}:${n}`}getInputValueOnOpenAndSet(){let e=this.core.getInput();if(!e)return;let t=OL(e,this.core.options.clock.type,this.core.options.clock.currentTime),n=this.core.getHour(),r=this.core.getMinutes(),i=this.core.getActiveTypeMode(),a=this.core.getAM();if(t===void 0){n&&(n.value=`12`),r&&(r.value=`00`);let e={hour:n?.value||`12`,minutes:r?.value||`00`,type:i?.dataset.type,degreesHours:this.core.degreesHours,degreesMinutes:this.core.degreesMinutes};this.emitter.emit(`open`,e);let t=this.core.options.range?.enabled===!0;this.core.options.clock.type!==`24h`&&a&&!t&&a.classList.add(ML);return}let[o,s,c]=e.value.split(`:`).join(` `).split(` `);e.value.length===0&&(o=t.hour,s=t.minutes,c=t.type),this.core.options.clock.type!==`24h`&&!c&&(c=t.type||`AM`),n&&(n.value=o.padStart(2,`0`)),r&&(r.value=s.padStart(2,`0`));let l=this.core.getModalElement()?.querySelector(`[data-type='${c}']`);this.core.options.clock.type!==`24h`&&l&&l.classList.add(ML);let u={...t,type:i?.dataset.type,degreesHours:this.core.degreesHours,degreesMinutes:this.core.degreesMinutes};this.emitter.emit(`open`,u)}getInputValue(e,t,n){return OL(e,t,n)}destroy(){}},PL=class{core;emitter;isAnimating=!1;constructor(e,t){this.core=e,this.emitter=t,this.setupEventListeners()}setupEventListeners(){this.emitter.on(`switch:view`,()=>{this.toggleMobileClockFace()})}checkMobileOption(){this.core.setIsMobileView(!!this.core.options.ui.mobile),this.core.options.ui.mobile&&this.core.updateOptions({ui:{editable:!0}})}toggleMobileClockFace(){if(this.isAnimating)return;let e=this.core.getModalElement();if(!e)return;let t=e.querySelector(`.tp-ui-wrapper`),n=this.core.getKeyboardClockIcon(),r=e.querySelector(`.tp-ui-mobile-clock-wrapper`),i=e.querySelectorAll(`*`),a=e.querySelector(`.tp-ui-select-time`),o=this.core.getHour(),s=this.core.getMinutes(),c=this.core.getClockFace();if(!t)return;let l=t.classList.contains(`expanded`),u=this.core.isMobileView;l?this.collapseClockFace(t,r,i,n,a,o,s,c,u):this.expandClockFace(t,r,i,n,a,o,s,c)}collapseClockFace(e,t,n,r,i,a,o,s,c){if(this.isAnimating=!0,typeof requestAnimationFrame<`u`){let l=typeof window<`u`&&window.matchMedia(`(orientation: landscape) and (min-width: 320px) and (max-width: 825px)`).matches;requestAnimationFrame(()=>{l&&e instanceof HTMLElement?this.collapseLandscape(e,t,n,r,i,a,o,s,c):this.collapsePortrait(e,t,n,r,i,a,o,s,c)})}else this.switchView(i,r,a,o,!0),this.isAnimating=!1;r?.setAttribute(`aria-label`,`Show clock face`),r?.setAttribute(`aria-pressed`,`false`)}collapseLandscape(e,t,n,r,i,a,o,s,c){s?.classList.remove(`scale-in`);let l=this.core.getModalElement(),u=this.getMobileLandscapeHeight(l);e.style.width=`328px`,e.style.height=u,t instanceof HTMLElement&&(t.style.height=`0`,t.style.opacity=`0`,t.style.transform=`scale(0)`),setTimeout(()=>{this.applyMobileClasses(e,t,n,i,c),e.classList.add(`mobile`),t&&t.classList.add(`mobile`),this.switchView(i,r,a,o,!0),requestAnimationFrame(()=>{e.style.width=``,e.style.height=``,t instanceof HTMLElement&&(t.style.height=``,t.style.opacity=``,t.style.transform=``),this.isAnimating=!1})},eL.WRAPPER_TRANSITION)}collapsePortrait(e,t,n,r,i,a,o,s,c){c?s?.classList.remove(`scale-in`):s?.classList.add(`scale-in`),t?.classList.remove(`expanded`),c&&t?.classList.add(`mobile`),requestAnimationFrame(()=>{this.applyMobileClasses(e,t,n,i,c),this.switchView(i,r,a,o,!0),setTimeout(()=>{this.isAnimating=!1},eL.MOBILE_TOGGLE)})}applyMobileClasses(e,t,n,r,i){e.classList.remove(`expanded`),t?.classList.remove(`expanded`),i&&(e.classList.add(`mobile`),t?.classList.add(`mobile`)),n.forEach(n=>{n!==t&&n!==e&&n!==r&&(n.classList.remove(`expanded`),i&&n.classList.add(`mobile`))}),r&&(r.classList.remove(`expanded`),i&&r.classList.add(`mobile`))}expandClockFace(e,t,n,r,i,a,o,s){this.isAnimating=!0,o?.classList.contains(`active`)&&o?this.emitter.emit(`select:minute`,{minutes:o.value}):a&&this.emitter.emit(`select:hour`,{hour:a.value}),n.forEach(n=>{n!==t&&n!==e&&n!==i&&(n.classList.remove(`mobile`),n.classList.add(`expanded`))}),i&&(i.classList.remove(`mobile`),i.classList.add(`expanded`)),this.switchView(i,r,a,o,!1),typeof requestAnimationFrame<`u`?requestAnimationFrame(()=>{e.classList.remove(`mobile`),e.classList.add(`expanded`),requestAnimationFrame(()=>{t&&(t.classList.remove(`mobile`),t.classList.add(`expanded`)),s&&s.classList.remove(`scale-in`),setTimeout(()=>{s&&s.classList.add(`scale-in`)},eL.CLOCK_SCALE_DELAY),setTimeout(()=>{this.isAnimating=!1},eL.MOBILE_TOGGLE)})}):this.isAnimating=!1,r?.setAttribute(`aria-label`,`Hide clock face`),r?.setAttribute(`aria-pressed`,`true`)}switchView(e,t,n,r,i){let a=this.core.getModalElement(),o=a?.querySelector(`.tp-ui-hour-text`),s=a?.querySelector(`.tp-ui-minute-text`),c=t?.querySelector(`.tp-ui-keyboard-icon`),l=this.core.getInputWrappers(),u=this.core.getHeader(),d=a?.querySelector(`.tp-ui-wrapper-type-time`),f=a?.querySelector(`.tp-ui-am`),p=a?.querySelector(`.tp-ui-pm`),m=a?.querySelectorAll(`.tp-ui-input-ripple-wrapper`),{iconTemplate:h,iconTemplateMobile:g}=this.core.options.ui,{time:_,mobileTime:v}=this.core.options.labels;i?(e?.classList.add(`mobile`),t?.classList.add(`mobile`),n?.classList.add(`mobile`),n?.removeAttribute(`readonly`),r?.classList.add(`mobile`),r?.removeAttribute(`readonly`),o?.classList.add(`mobile`),s?.classList.add(`mobile`),u?.classList.add(`mobile`),d?.classList.add(`mobile`),f?.classList.add(`mobile`),f?.classList.remove(`tp-ui-ripple`),p?.classList.add(`mobile`),p?.classList.remove(`tp-ui-ripple`),l?.forEach(e=>{e.classList.add(`mobile`)}),m?.forEach(e=>{e.classList.add(`mobile`)}),e&&v&&(e.textContent=v),c&&(c.innerHTML=g||dL),this.updateClockFaceAccessibility(!0)):(e?.classList.remove(`mobile`),t?.classList.remove(`mobile`),n?.classList.remove(`mobile`),r?.classList.remove(`mobile`),this.core.options.ui.editable||(n?.setAttribute(`readonly`,``),r?.setAttribute(`readonly`,``)),o?.classList.remove(`mobile`),s?.classList.remove(`mobile`),u?.classList.remove(`mobile`),d?.classList.remove(`mobile`),f?.classList.remove(`mobile`),f?.classList.add(`tp-ui-ripple`),p?.classList.remove(`mobile`),p?.classList.add(`tp-ui-ripple`),l?.forEach(e=>{e.classList.remove(`mobile`)}),m?.forEach(e=>{e.classList.remove(`mobile`)}),e&&_&&(e.textContent=_),c&&(c.innerHTML=h||uL),this.updateClockFaceAccessibility(!1))}updateClockFaceAccessibility(e){let t=this.core.getClockFace();if(!t)return;let n=t.querySelector(`.tp-ui-tips-wrapper`),r=t.querySelector(`.tp-ui-tips-wrapper-24h`),i=t.querySelectorAll(`.tp-ui-tip`);e?(t.setAttribute(`aria-hidden`,`true`),n?.setAttribute(`aria-hidden`,`true`),r?.setAttribute(`aria-hidden`,`true`),i.forEach(e=>{e.setAttribute(`tabindex`,`-1`),e.setAttribute(`aria-hidden`,`true`)})):(t.removeAttribute(`aria-hidden`),n?.removeAttribute(`aria-hidden`),r?.removeAttribute(`aria-hidden`),i.forEach(e=>{e.setAttribute(`tabindex`,`0`),e.removeAttribute(`aria-hidden`)}))}getMobileLandscapeHeight(e){return e?.classList.contains(`tp-ui-tz-mode`)?`326px`:e?.classList.contains(`tp-ui-range-mode`)?`287px`:`258px`}destroy(){}},FL=e=>{if(!e)return;let{disabledTime:t,type:n}=e.clock;if(!t||!Object.keys(t).length)return;let{hours:r,minutes:i,interval:a}=t;if(a){delete t.hours,delete t.minutes;let e=Array.isArray(a)?a:[a];if(!n)throw Error(`clockType required for interval`);return cL(e,n),{value:e.map(e=>{let[t,r]=e.trim().split(`-`),{hour:i,minutes:a,type:o}=OL({value:t.trim()},n),{hour:s,minutes:c,type:l}=OL({value:r.trim()},n),u=iL(i,s).map(e=>Number(e)===0?`00`:String(Number(e))),d=[],f=Number(a),p=Number(c);if(l===o)return f>0&&p<=0?(d.push(u[0],u[u.length-1]),u=u.slice(1,-1)):p<59&&p>0&&f<=0?(d.push(void 0,u[u.length-1]),u=u.slice(0,-1)):p>0&&f>0?(d.push(u[0],u[u.length-1]),u=u.slice(1,-1)):p===0&&f===0&&(d.push(void 0,u[u.length-1]),u.pop()),{removedStartedHour:d[0]!==void 0&&Number(d[0])<=9?`0${d[0]}`:d[0],removedEndHour:d[1]!==void 0&&Number(d[1])<=9?`0${d[1]}`:d[1],rangeArrHour:u,startMinutes:iL(a,59).map(e=>Number(e)<=9?`0${e}`:`${e}`),endMinutes:aL(0,c).map(e=>Number(e)<=9?`0${e}`:`${e}`),startType:o,endType:l};{let e=iL(i,12).map(String),t=aL(1,s).map(String),n=[],r=[];return f>0&&p<=0?(r.push(t[t.length-1]),n.push(e[0]),t.pop(),e.shift()):p<59&&p>0&&f<=0?(n.push(e[0]),r.push(t[t.length-1]),t.pop()):p>0&&f>0?(r.push(t[t.length-1]),n.push(e[0]),t.pop(),e.shift()):p===0&&f===0&&(r.push(t[t.length-1]),n.push(e[0]),t.pop()),{startType:o,endType:l,amHours:e,pmHours:t,removedAmHour:n[0]&&Number(n[0])<=9?`0${n[0]}`:n[0],removedPmHour:r[0]&&Number(r[0])<=9?`0${r[0]}`:r[0],startMinutes:Number(a)===0?[]:iL(a,59).map(e=>Number(e)<=9?`0${e}`:`${e}`),endMinutes:aL(0,c).map(e=>Number(e)<=9?`0${e}`:`${e}`)}}}).reduce((e,t)=>(Object.entries(t).forEach(([t,n])=>{Array.isArray(n)?e[t]=Array.isArray(e[t])?[...e[t],...n]:[...n]:e[t]=n}),e),{isInterval:!0,clockType:n,intervals:e})}}return r?.forEach(e=>{if(n===`12h`&&Number(e)>12)throw Error(`The disabled hours value has to be less than 13`);if(n===`24h`&&Number(e)>23)throw Error(`The disabled hours value has to be less than 24`)}),i?.forEach(e=>{if(Number(e)>59)throw Error(`The disabled minutes value has to be less than 60`)}),{value:{hours:r?.map(e=>e===`00`||Number(e)===0?`0${Number(e)}`:`${Number(e)}`),minutes:i?.map(e=>Number(e)<=9?`0${e}`:`${e}`)}}},IL=(e,t,n,r)=>{if(e){if(Array.isArray(e)&&e.length>0)return!e.map(e=>kL(e,t,n)).some(e=>e===!1);if(typeof e==`string`||typeof e==`number`){let i=kL(e,t,n),a=r?.map(Number).includes(Number(e));return!!(i&&!a)}}},LL=class{core;constructor(e){this.core=e}getDisableTime(){let e=FL(this.core.options);this.core.setDisabledTime(e||null)}destroy(){}},RL=class{inputValueHandler;mobileViewHandler;disabledTimeHandler;core;constructor(e,t){this.core=e,this.inputValueHandler=new NL(e,t),this.mobileViewHandler=new PL(e,t),this.disabledTimeHandler=new LL(e)}preventClockTypeByCurrentTime(){this.inputValueHandler.preventClockTypeByCurrentTime()}updateInputValueWithCurrentTimeOnStart(){this.inputValueHandler.updateInputValueWithCurrentTimeOnStart()}getInputValueOnOpenAndSet(){this.inputValueHandler.getInputValueOnOpenAndSet()}getInputValue(e,t,n){return this.inputValueHandler.getInputValue(e,t,n)}checkMobileOption(){this.mobileViewHandler.checkMobileOption()}toggleMobileClockFace(){this.mobileViewHandler.toggleMobileClockFace()}updateClockFaceAccessibility(e){this.mobileViewHandler.updateClockFaceAccessibility(e)}getDisableTime(){this.disabledTimeHandler.getDisableTime()}destroy(){this.inputValueHandler.destroy(),this.mobileViewHandler.destroy(),this.disabledTimeHandler.destroy()}},zL=class{core;emitter;constructor(e,t){this.core=e,this.emitter=t}setTheme(){let e=this.core.getModalElement();if(!e)return;let{theme:t}=this.core.options.ui;t&&e.setAttribute(`data-theme`,t)}setInputClassToInputElement(){let e=this.core.getInput();e&&(rL(e,`tp-ui-input`)||e.classList.add(`tp-ui-input`))}setDataOpenToInputIfDoesntExistInWrapper(){let e=this.core.getOpenElementData(),t=this.core.getInput();e===null&&t&&t.setAttribute(`data-open`,`tp-ui-input`)}setClassTopOpenElement(){let e=this.core.getOpenElement();for(let t of e)t&&t.classList.add(`tp-ui-open-element`)}setTimepickerClassToElement(){let e=this.core.element;if(!e)return;e.classList.add(AL);let t=this.core.options.ui.cssClass;t&&t!==AL&&e.classList.add(t)}destroy(){let e=this.core.getModalElement();e&&e.removeAttribute(`data-theme`)}},BL=class e extends Error{constructor(t,n){super(`[TimepickerUI] ${t}`),this.code=n,this.name=`TimepickerError`,Object.setPrototypeOf(this,e.prototype)}},VL={ELEMENT_NOT_FOUND:`ELEMENT_NOT_FOUND`,INVALID_PARAMETER:`INVALID_PARAMETER`,NO_INPUT_ELEMENT:`NO_INPUT_ELEMENT`,INSTANCE_DESTROYED:`INSTANCE_DESTROYED`,NOT_INITIALIZED:`NOT_INITIALIZED`,INVALID_TIME_FORMAT:`INVALID_TIME_FORMAT`,INLINE_CONFIG_ERROR:`INLINE_CONFIG_ERROR`,CONTAINER_NOT_FOUND:`CONTAINER_NOT_FOUND`,SSR_ENVIRONMENT:`SSR_ENVIRONMENT`},HL=(e,t)=>{if(!e)return;let n=e.querySelector(`.timepicker-announcer`);n&&(n.textContent=``,setTimeout(()=>{n.textContent=t},100))},UL=(e,t)=>{e&&e.setAttribute(`aria-pressed`,String(t))},WL=e=>e.getAttribute(`aria-disabled`)===`true`||e.classList.contains(`disabled`),GL=(e,t)=>{if(!e)return()=>{};let n=n=>{WL(e)||t(n)},r=n=>{n.key!==`Enter`&&n.key!==` `&&n.key!==`Spacebar`||((n.key===` `||n.key===`Spacebar`)&&n.preventDefault(),!WL(e)&&t(n))};return e.addEventListener(`click`,n),e.addEventListener(`keydown`,r),()=>{e.removeEventListener(`click`,n),e.removeEventListener(`keydown`,r)}},KL=()=>typeof window>`u`||typeof window.matchMedia!=`function`?!1:window.matchMedia(`(prefers-reduced-motion: reduce)`).matches,qL=class{core;emitter;constructor(e,t){this.core=e,this.emitter=t}setErrorHandler(){let e=this.core.getInput();if(!e)return!0;let{error:t,currentHour:n,currentMin:r,currentType:i,currentLength:a}=OL(e,this.core.options.clock.type);if(this.removeErrorHandler(),t){if(QI()===!1)return!1;let o=this.core.options.labels.invalidTimeFormat??`Invalid time format`,s=document.createElement(`div`);s.classList.add(`tp-ui-invalid-text`),s.setAttribute(`role`,`alert`);let c=document.createElement(`b`);c.textContent=o,s.appendChild(c),e.classList.add(`tp-ui-invalid-format`),e.nextElementSibling?.classList.contains(`tp-ui-invalid-text`)||e.after(s),HL(this.core.getModalElement(),o);let l={error:t,rejectedHour:void 0,rejectedMinute:void 0,inputHour:n,inputMinute:r,inputType:i,inputLength:a};return this.emitter.emit(`error`,l),!1}return!0}removeErrorHandler(){let e=this.core.getInput();if(!e)return;e.classList.remove(`tp-ui-invalid-format`);let t=e.nextElementSibling;t?.classList.contains(`tp-ui-invalid-text`)&&t.remove()}checkDisabledValuesOnStart(){if(!this.core.options.clock.disabledTime)return;let{disabledTime:e,type:t}=this.core.options.clock;if(e.interval){if(!t)throw new BL(`clockType is required when using disabledTime.interval`,VL.INVALID_PARAMETER);let n=Array.isArray(e.interval)?e.interval:[e.interval];try{cL(n,t)}catch(e){throw new BL(`Invalid disabledTime.interval: ${e.message}`,VL.INVALID_PARAMETER)}return}let{hours:n,minutes:r}=e,i=n?IL(n,`hour`,t):!0,a=r?IL(r,`minutes`,t):!0;if(!i||!a)throw new BL(`Invalid hours or minutes in disabledTime option`,VL.INVALID_PARAMETER)}destroy(){this.removeErrorHandler()}},JL=class{core;emitter;cleanupHandlers=[];constructor(e,t){this.core=e,this.emitter=t}handleOpenOnClick(){let e=this.core.getOpenElement();if(!e)return;let t=()=>{this.core.isDestroyed||this.emitter.emit(`show`,{})};e.forEach(e=>{this.cleanupHandlers.push(GL(e,t))})}handleCancelButton(){let e=this.core.getCancelButton();e&&this.cleanupHandlers.push(GL(e,()=>{this.core.isDestroyed||this.emitter.emit(`cancel`,{})}))}handleOkButton(){let e=this.core.getOkButton();e&&this.cleanupHandlers.push(GL(e,()=>{if(this.core.isDestroyed||e.getAttribute(`aria-disabled`)===`true`)return;let t=this.core.getHour(),n=this.core.getMinutes();if(t&&n){let e=this.core.getActiveTypeMode();this.emitter.emit(`confirm`,{hour:t.value,minutes:n.value,type:e?.textContent||void 0});return}let r=this.core.getModalElement();if(r){let e=r.querySelector(`.tp-ui-wheel-hours .tp-ui-wheel-item.is-center`),t=r.querySelector(`.tp-ui-wheel-minutes .tp-ui-wheel-item.is-center`),n=r.querySelector(`.tp-ui-wheel-ampm .tp-ui-wheel-item.is-center`);this.emitter.emit(`confirm`,{hour:e?.getAttribute(`data-value`)??void 0,minutes:t?.getAttribute(`data-value`)??void 0,type:n?.getAttribute(`data-value`)??void 0})}}))}handleAmClick(){let e=this.core.getAM();e&&this.cleanupHandlers.push(GL(e,()=>{if(this.core.isDestroyed)return;let t=this.core.getPM();e.classList.add(`active`),t?.classList.remove(`active`),UL(e,!0),UL(t,!1),HL(this.core.getModalElement(),this.core.options.labels.announceAmSelected??`AM selected`),this.emitter.emit(`select:am`,{});let n=this.core.getHour(),r=this.core.getMinutes();this.emitter.emit(`update`,{hour:n?.value,minutes:r?.value,type:`AM`})}))}handlePmClick(){let e=this.core.getPM();e&&this.cleanupHandlers.push(GL(e,()=>{if(this.core.isDestroyed)return;let t=this.core.getAM();e.classList.add(`active`),t?.classList.remove(`active`),UL(e,!0),UL(t,!1),HL(this.core.getModalElement(),this.core.options.labels.announcePmSelected??`PM selected`),this.emitter.emit(`select:pm`,{});let n=this.core.getHour(),r=this.core.getMinutes();this.emitter.emit(`update`,{hour:n?.value,minutes:r?.value,type:`PM`})}))}handleSwitchViewButton(){let e=this.core.getKeyboardClockIcon();e&&this.cleanupHandlers.push(GL(e,()=>{this.core.isDestroyed||this.emitter.emit(`switch:view`,{})}))}destroy(){this.cleanupHandlers.forEach(e=>e()),this.cleanupHandlers=[]}},YL=(e,t,n)=>Math.max(t,Math.min(n,e)),XL=(e,t)=>{if(e===``)return``;let n=parseInt(e,10);return Number.isNaN(n)?``:YL(n,+!!t,t?12:23).toString().padStart(2,`0`)},ZL=e=>{if(e===``)return``;let t=parseInt(e,10);return Number.isNaN(t)?``:YL(t,0,59).toString().padStart(2,`0`)},QL=class{core;emitter;cleanupHandlers=[];constructor(e,t){this.core=e,this.emitter=t}handleHourEvents(){let e=this.core.getHour();if(!e)return;let t=()=>{if(this.core.isDestroyed)return;e.classList.add(`active`);let t=this.core.getMinutes();t?.classList.remove(`active`),this.emitter.emit(`select:hour`,{hour:e.value});let n=this.core.getActiveTypeMode();this.emitter.emit(`update`,{hour:e.value,minutes:t?.value,type:n?.textContent||void 0})};e.addEventListener(`click`,t),this.cleanupHandlers.push(()=>e.removeEventListener(`click`,t));let n=e.value,r=()=>{if(this.core.isDestroyed||e.hasAttribute(`readonly`))return;let t=this.core.options.clock.type===`12h`,r=XL(e.value,t);if(e.value=r,e.setAttribute(`aria-valuenow`,r),e.value!==n){n=e.value,this.emitter.emit(`animation:clock`,{}),this.emitter.emit(`select:hour`,{hour:e.value});let t=this.core.getMinutes(),r=this.core.getActiveTypeMode();this.emitter.emit(`update`,{hour:e.value,minutes:t?.value,type:r?.textContent||void 0})}};e.addEventListener(`blur`,r),this.cleanupHandlers.push(()=>e.removeEventListener(`blur`,r))}handleMinutesEvents(){let e=this.core.getMinutes();if(!e)return;let t=()=>{if(this.core.isDestroyed)return;e.classList.add(`active`);let t=this.core.getHour();t?.classList.remove(`active`),this.emitter.emit(`select:minute`,{minutes:e.value});let n=this.core.getActiveTypeMode();this.emitter.emit(`update`,{hour:t?.value,minutes:e.value,type:n?.textContent||void 0})};e.addEventListener(`click`,t),this.cleanupHandlers.push(()=>e.removeEventListener(`click`,t));let n=e.value,r=()=>{if(this.core.isDestroyed||e.hasAttribute(`readonly`))return;let t=ZL(e.value);if(e.value=t,e.setAttribute(`aria-valuenow`,t),e.value!==n){n=e.value,this.emitter.emit(`animation:clock`,{}),this.emitter.emit(`select:minute`,{minutes:e.value});let t=this.core.getHour(),r=this.core.getActiveTypeMode();this.emitter.emit(`update`,{hour:t?.value,minutes:e.value,type:r?.textContent||void 0})}};e.addEventListener(`blur`,r),this.cleanupHandlers.push(()=>e.removeEventListener(`blur`,r))}destroy(){this.cleanupHandlers.forEach(e=>e()),this.cleanupHandlers=[]}},$L=class{core;emitter;cleanupHandlers=[];constructor(e,t){this.core=e,this.emitter=t}handleOpenOnEnterFocus(){let e=this.core.getInput();if(!e)return;let t=e=>{e.key===`Enter`&&!this.core.isDestroyed&&!this.core.isOpen&&this.emitter.emit(`show`,{})};e.addEventListener(`keydown`,t),this.cleanupHandlers.push(()=>e.removeEventListener(`keydown`,t))}handleEscClick(){if(QI()===!1)return;let e=e=>{this.core.isDestroyed||this.core.isOpen&&e.key===`Escape`&&this.emitter.emit(`cancel`,{})};document.addEventListener(`keydown`,e),this.cleanupHandlers.push(()=>document.removeEventListener(`keydown`,e))}handleKeyboardInput(){let e=this.core.getHour(),t=this.core.getMinutes(),n=[`ArrowUp`,`ArrowDown`,`Home`,`End`,`PageUp`,`PageDown`];if(e){let t=t=>{if(this.core.isDestroyed||!n.includes(t.key))return;t.preventDefault();let r=parseInt(e.value)||0,i=parseInt(e.getAttribute(`max`)||`23`),a=+(this.core.options.clock.type===`12h`);e.value=this.computeSpinValue(t.key,r,a,i,3).toString().padStart(2,`0`),e.setAttribute(`aria-valuenow`,e.value),e.setAttribute(`aria-valuetext`,e.value),HL(this.core.getModalElement(),`${this.core.options.labels.announceHour??`Hour`}: ${e.value}`),this.emitter.emit(`animation:clock`,{}),this.emitter.emit(`select:hour`,{hour:e.value});let o=this.core.getMinutes(),s=this.core.getActiveTypeMode();this.emitter.emit(`update`,{hour:e.value,minutes:o?.value,type:s?.textContent||void 0})};e.addEventListener(`keydown`,t),this.cleanupHandlers.push(()=>e.removeEventListener(`keydown`,t))}if(t){let e=e=>{if(this.core.isDestroyed||!n.includes(e.key))return;e.preventDefault();let r=parseInt(t.value)||0;t.value=this.computeSpinValue(e.key,r,0,59,5).toString().padStart(2,`0`),t.setAttribute(`aria-valuenow`,t.value),t.setAttribute(`aria-valuetext`,t.value),HL(this.core.getModalElement(),`${this.core.options.labels.announceMinute??`Minutes`}: ${t.value}`),this.emitter.emit(`animation:clock`,{}),this.emitter.emit(`select:minute`,{minutes:t.value});let i=this.core.getHour(),a=this.core.getActiveTypeMode();this.emitter.emit(`update`,{hour:i?.value,minutes:t.value,type:a?.textContent||void 0})};t.addEventListener(`keydown`,e),this.cleanupHandlers.push(()=>t.removeEventListener(`keydown`,e))}}computeSpinValue(e,t,n,r,i){switch(e){case`ArrowUp`:return t>=r?n:t+1;case`ArrowDown`:return t<=n?r:t-1;case`Home`:return n;case`End`:return r;case`PageUp`:return Math.min(r,t+i);case`PageDown`:return Math.max(n,t-i);default:return t}}focusTrapHandler(){if(QI()===!1)return;let e=this.core.getWrapper();if(!e)return;let t=t=>{if(this.core.isDestroyed||t.key!==`Tab`)return;let n=e.querySelectorAll(`button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])`),r=[];if(n.forEach(e=>{e.getAttribute(`aria-disabled`)!==`true`&&(e.hasAttribute(`disabled`)||e.hidden||e.getAttribute(`aria-hidden`)!==`true`&&(e.offsetParent===null&&e.getClientRects().length===0||r.push(e)))}),r.length===0)return;let i=r[0],a=r[r.length-1];t.shiftKey&&document.activeElement===i?(a?.focus(),t.preventDefault()):!t.shiftKey&&document.activeElement===a&&(i?.focus(),t.preventDefault())};e.addEventListener(`keydown`,t),this.cleanupHandlers.push(()=>e.removeEventListener(`keydown`,t))}destroy(){this.cleanupHandlers.forEach(e=>e()),this.cleanupHandlers=[]}},eR=class{core;emitter;cleanupHandlers=[];constructor(e,t){this.core=e,this.emitter=t}handleBackdropClick(){let e=this.core.getModalElement();if(!e)return;let t=t=>{this.core.isDestroyed||t.target===e&&this.emitter.emit(`cancel`,{})};e.addEventListener(`click`,t),this.cleanupHandlers.push(()=>e.removeEventListener(`click`,t))}handleMoveHand(){if(QI()===!1)return;let e=e=>{this.core.isDestroyed||e.preventDefault()};document.addEventListener(`mousedown`,e,!1),document.addEventListener(`touchstart`,e,{passive:!1}),this.cleanupHandlers.push(()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`touchstart`,e)})}destroy(){this.cleanupHandlers.forEach(e=>e()),this.cleanupHandlers=[]}},tR=class{buttonHandlers;inputHandlers;keyboardHandlers;modalHandlers;constructor(e,t){this.buttonHandlers=new JL(e,t),this.inputHandlers=new QL(e,t),this.keyboardHandlers=new $L(e,t),this.modalHandlers=new eR(e,t)}handleOpenOnClick(){this.buttonHandlers.handleOpenOnClick()}handleOpenOnEnterFocus(){this.keyboardHandlers.handleOpenOnEnterFocus()}handleCancelButton(){this.buttonHandlers.handleCancelButton()}handleOkButton(){this.buttonHandlers.handleOkButton()}handleBackdropClick(){this.modalHandlers.handleBackdropClick()}handleEscClick(){this.keyboardHandlers.handleEscClick()}handleAmClick(){this.buttonHandlers.handleAmClick()}handlePmClick(){this.buttonHandlers.handlePmClick()}handleHourEvents(){this.inputHandlers.handleHourEvents()}handleMinutesEvents(){this.inputHandlers.handleMinutesEvents()}handleKeyboardInput(){this.keyboardHandlers.handleKeyboardInput()}focusTrapHandler(){this.keyboardHandlers.focusTrapHandler()}handleMoveHand(){this.modalHandlers.handleMoveHand()}handleSwitchViewButton(){this.buttonHandlers.handleSwitchViewButton()}destroy(){this.buttonHandlers.destroy(),this.inputHandlers.destroy(),this.keyboardHandlers.destroy(),this.modalHandlers.destroy()}},nR=class{emitter;getClockSystem;setHoursToClock;setMinutesToClock;updateAmPm;convertDisabledTime;constructor(e,t,n,r,i,a){this.emitter=e,this.getClockSystem=t,this.setHoursToClock=n,this.setMinutesToClock=r,this.updateAmPm=i,this.convertDisabledTime=a}setup(){this.emitter.on(`select:hour`,({hour:e})=>{this.emitter.emit(`animation:clock`,{}),this.setHoursToClock(e||null)}),this.emitter.on(`select:minute`,({minutes:e})=>{this.emitter.emit(`animation:clock`,{}),this.setMinutesToClock(e||null)}),this.emitter.on(`select:am`,()=>{this.updateAmPm()}),this.emitter.on(`select:pm`,()=>{this.updateAmPm()}),this.emitter.on(`animation:start`,()=>{this.getClockSystem()?.blockInteractions()}),this.emitter.on(`animation:end`,()=>{this.getClockSystem()?.unblockInteractions()}),this.emitter.on(`range:switch`,e=>{this.refreshDisabledTimeForRange(e.disabledTime)})}refreshDisabledTimeForRange(e){let t=this.getClockSystem();if(!t)return;let n=this.convertDisabledTime(),r=n;if(e){let t=[...n?.hours||[],...e.hours||[]],i=[...n?.minutes||[],...e.minutes||[]];r={...n,hours:t.length>0?t:void 0,minutes:i.length>0?i:void 0,rangeFromType:e.fromType,rangeFromHour:e.fromHour}}t.updateDisabledTime(r)}},rR=/^(1[0-2]|[1-9]):([0-5][0-9])\s*(AM|PM)$/i,iR=/^([0-1]?[0-9]|2[0-3]):([0-5][0-9])$/,aR=class{static angleToIndex(e,t,n){let r=Math.round(e/30)%12;if(t===`24h`)if(n){let e=r+12;return e===12?0:e}else return r===0?12:r;return r===0?12:r}static indexToValue(e,t){if(t===`24h`)return e.toString().padStart(2,`0`);let n=e;return n===0&&(n=12),n>12&&(n-=12),n.toString().padStart(2,`0`)}static indexToAngle(e,t){return t===`24h`?e>=12?(e-12)%12*30:e%12*30:(e===0?12:e)%12*30}static isDisabled(e,t,n){return n?n.isInterval&&n.intervals&&n.clockType?this.isDisabledByInterval(e,t,n):n.rangeFromType!==void 0&&n.rangeFromHour!==void 0?this.isDisabledForRange12h(e,t,n):n.hours?n.hours.some(t=>String(t)===e||Number(t)===Number(e)||t===e):!1:!1}static isDisabledForRange12h(e,t,n){let r=n.rangeFromType,i=n.rangeFromHour,a=parseInt(e,10);return r===null||i===void 0?!1:t===`AM`&&r===`PM`?!0:t===`AM`&&r===`AM`?i===12?!1:a===12?!0:a<i:t===`PM`&&r===`AM`?!1:t===`PM`&&r===`PM`?i===12?!1:a===12?!0:a<i:!1}static isDisabledByInterval(e,t,n){if(!n.intervals)return!1;for(let r=0;r<60;r++){let i=r.toString().padStart(2,`0`);if(!this.isTimeInIntervals(e,i,t,n.intervals,n.clockType))return!1}return!0}static isTimeInIntervals(e,t,n,r,i){let a=FI(i===`12h`?`${e}:${t} ${n}`:`${e}:${t}`,i);for(let e of r){let[t,n]=e.split(`-`).map(e=>e.trim()),r=FI(t,i),o=FI(n,i);if(a>=r&&a<=o)return!0}return!1}static findNearestValid(e,t,n,r){let i=t===`24h`?23:12;for(let a=0;a<=i;a++){let o=a===0?[e]:[e+a,e-a];for(let e of o){let a=e;a<0&&(a+=i+1),a>i&&(a%=i+1);let o=this.indexToValue(a,t);if(!this.isDisabled(o,n,r))return a}}return e}},oR=class{static angleToIndex(e){return Math.round(e/6)%60}static indexToValue(e){return e.toString().padStart(2,`0`)}static indexToAngle(e){return e%60*6}static isDisabled(e,t,n,r,i){return r?r.isInterval&&r.intervals?this.isDisabledByInterval(e,t,n,r,i):r.rangeFromType!==void 0&&r.rangeFromHour!==void 0?this.isDisabledForRange12h(e,t,n,r):r.rangeFromHour!==void 0&&parseInt(t,10)!==r.rangeFromHour?!1:r.minutes?r.minutes.some(t=>String(t)===e||Number(t)===Number(e)||t===e):!1:!1}static isDisabledForRange12h(e,t,n,r){let i=r.rangeFromType,a=r.rangeFromHour,o=parseInt(t,10),s=parseInt(e,10);if(i===null||a===void 0)return!1;let c=r.minutes||[],l=c.length>0?parseInt(c[c.length-1],10)+1:0;return n===`AM`&&i===`PM`?!0:n===`PM`&&i===`AM`?!1:o===a||o===12&&a===12||n===i&&o===a?s<l:!1}static isDisabledByInterval(e,t,n,r,i){if(!r.intervals)return!1;let a=FI(i===`12h`?`${t}:${e} ${n}`:`${t}:${e}`,i);for(let e of r.intervals){let[t,n]=e.split(`-`).map(e=>e.trim()),r=FI(t,i),o=FI(n,i);if(a>=r&&a<=o)return!0}return!1}static findNearestValid(e,t,n,r,i){for(let a=0;a<60;a++){let o=a===0?[e]:[e+a,e-a];for(let e of o){let a=e;a<0&&(a+=60),a>=60&&(a%=60);let o=this.indexToValue(a);if(!this.isDisabled(o,t,n,r,i))return a}}return e}},sR=class{static normalizeAngle(e){let t=e%360;return t<0&&(t+=360),t}static calculateRawAngle(e,t){let n=e.x-t.x,r=e.y-t.y,i=Math.atan2(r,n)*180/Math.PI+90;return this.normalizeAngle(i)}static snapToIncrement(e,t){let n=Math.round(e/t)*t;return this.normalizeAngle(n)}static calculateDistance(e,t){let n=e.x-t.x,r=e.y-t.y;return Math.sqrt(n*n+r*r)}static isInnerCircle(e,t){return e<t*.75}static calculateShortestPath(e,t){let n=this.normalizeAngle(e),r=this.normalizeAngle(t)-n,i=r>=0?r:r+360,a=r<=0?r:r-360;return e+(Math.abs(i)<Math.abs(a)?i:a)}},cR=class{config;currentAngle=0;tipsCache=new Map;cachedDimensions=new Map;constructor(e){this.config=e}getCachedDimensions(e){let t=this.cachedDimensions.get(e);if(!t){let n=(e.offsetWidth-32)/2;t={width:n,height:(e.offsetHeight-32)/2,radius:n-9},this.cachedDimensions.set(e,t)}return t}setHandAngle(e){let t=sR.calculateShortestPath(this.currentAngle,e);Math.abs(this.currentAngle-t)<.01||(this.currentAngle=t,this.config.clockHand.style.transform=`rotateZ(${t}deg)`)}animateToAngle(e){let t=sR.calculateShortestPath(this.currentAngle,e);if(this.currentAngle=t,KL()){this.config.clockHand.style.transform=`rotateZ(${t}deg)`;return}this.config.tipsWrapper.classList.add(`tp-ui-tips-animation`),this.config.clockHand.style.transform=`rotateZ(${t}deg)`,setTimeout(()=>{this.config.tipsWrapper.classList.remove(`tp-ui-tips-animation`)},401)}setActiveValue(e){let t=[this.config.tipsWrapper];this.config.tipsWrapperFor24h&&t.push(this.config.tipsWrapperFor24h),t.forEach(t=>{t.querySelectorAll(`.tp-ui-value-tips, .tp-ui-value-tips-24h`).forEach(t=>{let n=t;n.textContent===e||Number(n.textContent)===Number(e)?n.classList.add(`active`):n.classList.remove(`active`)})})}renderTips(e,t,n,r,i,a=!0,o,s=``,c=`12`){if(QI()===!1)return;let l=o||this.config.tipsWrapper;a&&(l.innerHTML=``,this.tipsCache.clear());let{width:u,height:d,radius:f}=this.getCachedDimensions(l),p=document.createDocumentFragment(),m=`${t}-${this.config.theme||`default`}`;e.forEach((a,o)=>{let l=`${m}-${a}`,h=this.tipsCache.get(l);h||(h=this.createTip(a,t,i),this.tipsCache.set(l,h));let{wrapper:g,tip:_}=h;this.updateTipState(g,_,a,n,r,i,s,c);let v=o*(360/e.length)*(Math.PI/180);g.style.left=`${u+Math.sin(v)*f}px`,g.style.bottom=`${d+Math.cos(v)*f}px`,p.appendChild(g)}),l.appendChild(p)}createTip(e,t,n){if(QI()===!1){let e={};return{wrapper:e,tip:e}}let r=document.createElement(`span`),i=document.createElement(`span`);i.textContent=e,i.tabIndex=-1;let a=n===`24h`&&t.includes(`24`)?`tp-ui-value-tips-24h`:`tp-ui-value-tips`;return i.classList.add(a),r.classList.add(t),r.appendChild(i),{wrapper:r,tip:i}}updateTipState(e,t,n,r,i,a,o,s){e.classList.remove(`tp-ui-tips-disabled`),t.classList.remove(`tp-ui-tips-disabled`),t.tabIndex=-1,this.checkIfDisabled(n,r,i,a,o,s)&&(e.classList.add(`tp-ui-tips-disabled`),t.classList.add(`tp-ui-tips-disabled`))}checkIfDisabled(e,t,n,r,i,a){return n?t===`hours`?aR.isDisabled(e,i,n):t===`minutes`?oR.isDisabled(e,a,i,n,r):!1:!1}setCircleSize(e){e?this.config.circle.classList.remove(`small-circle`):this.config.circle.classList.add(`small-circle`)}setCircle24hMode(e){e?(this.config.circle.classList.add(`tp-ui-circle-hand-24h`),this.config.clockHand.classList.add(`tp-ui-clock-hand-24h`)):(this.config.circle.classList.remove(`tp-ui-circle-hand-24h`),this.config.clockHand.classList.remove(`tp-ui-clock-hand-24h`))}destroy(){this.tipsCache.clear(),this.cachedDimensions.clear(),this.config.tipsWrapper.innerHTML=``}},lR=class{static processPointerInput(e){let t=sR.calculateRawAngle(e.pointerPosition,e.clockCenter);return e.mode===`hours`?this.processHours(t,e):this.processMinutes(t,e)}static processHours(e,t){let n=t.smoothHourSnap??!0,r;if(n)r=e;else{let n=t.incrementHours*30;r=sR.snapToIncrement(e,n)}let i=sR.calculateDistance(t.pointerPosition,t.clockCenter),a=t.clockType===`24h`&&sR.isInnerCircle(i,t.clockRadius),o=aR.angleToIndex(r,t.clockType,a),s=aR.indexToValue(o,t.clockType),c=aR.isDisabled(s,t.amPm,t.disabledTime);c&&(o=aR.findNearestValid(o,t.clockType,t.amPm,t.disabledTime));let l=aR.indexToValue(o,t.clockType),u;return u=n?e:aR.indexToAngle(o,t.clockType),{angle:u,value:l,index:o,isValid:!c,isInnerCircle:t.clockType===`24h`?a:void 0}}static processMinutes(e,t){let n=t.incrementMinutes*6,r=sR.snapToIncrement(e,n),i=oR.angleToIndex(r),a=oR.indexToValue(i),o=t.currentHour||`00`,s=oR.isDisabled(a,o,t.amPm,t.disabledTime,t.clockType);s&&(i=oR.findNearestValid(i,o,t.amPm,t.disabledTime,t.clockType));let c=oR.indexToValue(i);return{angle:oR.indexToAngle(i),value:c,index:i,isValid:!s}}static valueToAngle(e,t,n){let r=parseInt(e,10);return t===`hours`?aR.indexToAngle(r,n):oR.indexToAngle(r)}},uR=class{state;renderer;clockType;disabledTime;incrementHours;incrementMinutes;smoothHourSnap;isDragging=!1;callbacks;lastProcessedX=null;lastProcessedY=null;constructor(e,t,n,r,i=1,a=1,o=!0,s={}){this.renderer=e,this.state={...t},this.clockType=n,this.disabledTime=r,this.incrementHours=i,this.incrementMinutes=a,this.smoothHourSnap=o,this.callbacks=s}handlePointerMove(e,t,n){if(this.isDragging=!0,this.lastProcessedX===e.x&&this.lastProcessedY===e.y)return;this.lastProcessedX=e.x,this.lastProcessedY=e.y;let r={pointerPosition:e,clockCenter:t,clockRadius:n,mode:this.state.mode,clockType:this.clockType,amPm:this.state.amPm,disabledTime:this.disabledTime,incrementHours:this.incrementHours,incrementMinutes:this.incrementMinutes,smoothHourSnap:this.smoothHourSnap,currentHour:this.state.hour},i=lR.processPointerInput(r);if(i.isValid){if(this.state.mode===`hours`){let e=this.state.hour;this.state.hour=i.value,this.state.hourAngle=i.angle,this.clockType===`24h`&&i.isInnerCircle!==void 0&&(this.renderer.setCircleSize(!0),this.renderer.setCircle24hMode(i.isInnerCircle)),this.callbacks.onHourChange&&e!==i.value&&this.callbacks.onHourChange(i.value)}else{let e=this.state.minute;this.state.minute=i.value,this.state.minuteAngle=i.angle,this.renderer.setCircleSize(!0),this.renderer.setCircle24hMode(!1),this.callbacks.onMinuteChange&&e!==i.value&&this.callbacks.onMinuteChange(i.value)}this.renderer.setHandAngle(i.angle),this.renderer.setActiveValue(i.value)}}handlePointerUp(){this.isDragging=!1,this.lastProcessedX=null,this.lastProcessedY=null}snapToNearestHour(){if(this.state.mode!==`hours`)return;let e=lR.valueToAngle(this.state.hour,`hours`,this.clockType);this.state.hourAngle=e,this.renderer.animateToAngle(e)}switchMode(e){this.state.mode=e;let t=e===`hours`?this.state.hourAngle:this.state.minuteAngle,n=e===`hours`?this.state.hour:this.state.minute;if(e===`hours`&&this.clockType===`24h`){let e=parseInt(n,10),t=e===0||e>=13;this.renderer.setCircleSize(!0),this.renderer.setCircle24hMode(t)}else this.renderer.setCircleSize(!0),this.renderer.setCircle24hMode(!1);this.renderer.setHandAngle(t),this.renderer.setActiveValue(n)}setValue(e,t){let n=lR.valueToAngle(t,e,this.clockType);if(e===`hours`)if(this.state.hour=t,this.state.hourAngle=n,this.clockType===`24h`){let e=parseInt(t,10),n=e===0||e>=13;this.renderer.setCircleSize(!0),this.renderer.setCircle24hMode(n)}else this.renderer.setCircle24hMode(!1);else this.state.minute=t,this.state.minuteAngle=n,this.renderer.setCircleSize(!0),this.renderer.setCircle24hMode(!1);this.state.mode===e&&(this.renderer.setHandAngle(n),this.renderer.setActiveValue(t))}setAmPm(e){this.state.amPm=e}getState(){return{...this.state}}getHour(){return this.state.hour}getMinute(){return this.state.minute}getAmPm(){return this.state.amPm}updateDisabledTime(e){this.disabledTime=e}destroy(){this.renderer.destroy()}},dR=class{controller;clockFace;isActive=!1;isBlocked=!1;config;cachedRect=null;cachedCenter=null;cachedRadius=null;rafId=null;constructor(e,t,n={}){this.controller=e,this.clockFace=t,this.config=n}attach(){this.clockFace.addEventListener(`mousedown`,this.handlePointerDown),this.clockFace.addEventListener(`touchstart`,this.handlePointerDown,{passive:!1})}detach(){this.clockFace.removeEventListener(`mousedown`,this.handlePointerDown),this.clockFace.removeEventListener(`touchstart`,this.handlePointerDown),this.removeGlobalListeners()}block(){this.isBlocked=!0}unblock(){this.isBlocked=!1}handlePointerDown=e=>{if(ZI()||this.isBlocked)return;let t=e.target;t&&t.classList&&t.classList.contains(`tp-ui-tips-disabled`)||(e.preventDefault(),this.isActive=!0,this.cachedRect=this.clockFace.getBoundingClientRect(),this.cachedCenter=this.getClockCenter(),this.cachedRadius=this.getClockRadius(),this.processPointerEvent(e),document.addEventListener(`mousemove`,this.handlePointerMove),document.addEventListener(`touchmove`,this.handlePointerMove,{passive:!1}),document.addEventListener(`mouseup`,this.handlePointerUp),document.addEventListener(`touchend`,this.handlePointerUp))};handlePointerMove=e=>{if(!this.isActive||this.isBlocked)return;let t=this.getTargetElement(e);t&&t.classList&&t.classList.contains(`tp-ui-tips-disabled`)||(e.preventDefault(),this.rafId===null&&(this.rafId=requestAnimationFrame(()=>{this.rafId=null,this.processPointerEvent(e)})))};handlePointerUp=()=>{if(!this.isActive)return;this.rafId!==null&&(cancelAnimationFrame(this.rafId),this.rafId=null),this.isActive=!1,this.cachedRect=null,this.cachedCenter=null,this.cachedRadius=null,this.controller.handlePointerUp();let{autoSwitchToMinutes:e,isMobileView:t,smoothHourSnap:n,hourElement:r,minutesElement:i}=this.config;n&&r?.classList.contains(`active`)&&this.controller.snapToNearestHour(),this.removeGlobalListeners(),e&&r?.classList.contains(`active`)&&!t?(r.classList.remove(`active`),i?.classList.add(`active`),i?.click(),i?.focus(),r.blur()):i?.classList.contains(`active`)&&this.config.onMinuteCommit&&this.config.onMinuteCommit()};processPointerEvent(e){let t=this.getPointerPosition(e),n=this.cachedCenter||this.getClockCenter(),r=this.cachedRadius||this.getClockRadius();this.controller.handlePointerMove(t,n,r)}getPointerPosition(e){let t=this.cachedRect||this.clockFace.getBoundingClientRect();if(`touches`in e){let n=e.touches[0]||e.changedTouches[0];return{x:n.clientX-t.left,y:n.clientY-t.top}}else return{x:e.clientX-t.left,y:e.clientY-t.top}}getTargetElement(e){if(`touches`in e){let t=e.touches[0]||e.changedTouches[0];if(t&&!ZI())return document.elementFromPoint(t.clientX,t.clientY)}return e.target}getClockCenter(){let e=this.clockFace.offsetWidth,t=this.clockFace.offsetHeight;return{x:e/2,y:t/2}}getClockRadius(){return this.clockFace.offsetWidth/2}removeGlobalListeners(){QI()!==!1&&(document.removeEventListener(`mousemove`,this.handlePointerMove),document.removeEventListener(`touchmove`,this.handlePointerMove),document.removeEventListener(`mouseup`,this.handlePointerUp),document.removeEventListener(`touchend`,this.handlePointerUp))}},fR=class{renderer;controller;dragHandlers;clockType;disabledTime;tipsWrapper;tipsWrapperFor24h;constructor(e){this.clockType=e.clockType,this.disabledTime=e.disabledTime,this.tipsWrapper=e.tipsWrapper,this.tipsWrapperFor24h=e.tipsWrapperFor24h;let t={clockFace:e.clockFace,tipsWrapper:e.tipsWrapper,tipsWrapperFor24h:e.tipsWrapperFor24h,clockHand:e.clockHand,circle:e.circle,theme:e.theme};this.renderer=new cR(t);let n={hour:e.initialHour,minute:e.initialMinute,amPm:e.initialAmPm,hourAngle:this.calculateInitialAngle(`hours`,e.initialHour),minuteAngle:this.calculateInitialAngle(`minutes`,e.initialMinute),mode:`hours`},r={onHourChange:e.onHourChange,onMinuteChange:e.onMinuteChange};this.controller=new uR(this.renderer,n,e.clockType,e.disabledTime,e.incrementHours||1,e.incrementMinutes||1,e.smoothHourSnap??!0,r),this.dragHandlers=new dR(this.controller,e.clockFace,e.dragConfig||{})}initialize(){this.dragHandlers.attach(),this.switchToHours()}switchToHours(){this.controller.switchMode(`hours`),this.clockType===`24h`&&this.tipsWrapperFor24h&&this.tipsWrapperFor24h.classList.remove(`none`),this.renderHourTips();let e=this.controller.getState();this.renderer.setActiveValue(e.hour)}switchToMinutes(){this.controller.switchMode(`minutes`),this.tipsWrapperFor24h&&this.tipsWrapperFor24h.classList.add(`none`),this.renderMinuteTips();let e=this.controller.getState();this.renderer.setActiveValue(e.minute)}setHour(e){this.controller.setValue(`hours`,e)}setMinute(e){this.controller.setValue(`minutes`,e)}setAmPm(e){this.controller.setAmPm(e);let t=this.controller.getState();t.mode===`hours`?(this.renderHourTips(),this.renderer.setHandAngle(t.hourAngle),this.renderer.setActiveValue(t.hour)):(this.renderMinuteTips(),this.renderer.setHandAngle(t.minuteAngle),this.renderer.setActiveValue(t.minute))}getHour(){return this.controller.getHour()}getMinute(){return this.controller.getMinute()}getAmPm(){return this.controller.getAmPm()}updateDisabledTime(e){this.disabledTime=e,this.controller.updateDisabledTime(e),this.controller.getState().mode===`hours`?this.renderHourTips():this.renderMinuteTips()}renderHourTips(){let e=this.controller.getState().amPm;this.clockType===`24h`?(this.renderer.renderTips(hL,`tp-ui-hour-time-12`,`hours`,this.disabledTime,this.clockType,!0,this.tipsWrapper,e),this.tipsWrapperFor24h&&this.renderer.renderTips(mL,`tp-ui-hour-time-24`,`hours`,this.disabledTime,this.clockType,!0,this.tipsWrapperFor24h,e)):this.renderer.renderTips(hL,`tp-ui-hour-time-12`,`hours`,this.disabledTime,this.clockType,!0,void 0,e)}renderMinuteTips(){let e=this.controller.getState(),t=e.amPm,n=e.hour;this.renderer.renderTips(gL,`tp-ui-minutes-time`,`minutes`,this.disabledTime,this.clockType,!0,void 0,t,n)}calculateInitialAngle(e,t){let n=parseInt(t,10);return e===`hours`?n%12*30:n*6}destroy(){this.dragHandlers.detach(),this.controller.destroy()}blockInteractions(){this.dragHandlers.block()}unblockInteractions(){this.dragHandlers.unblock()}},pR=class{core;emitter;clockSystem=null;constructor(e,t){this.core=e,this.emitter=t}getClockSystem(){return this.clockSystem}initialize(){let e=this.core.getClockFace(),t=this.core.getClockHand(),n=this.core.getCircle();if(!e||!t||!n)return;let r=this.core.options.clock.type===`24h`,i=this.core.getTipsWrapper();if(!i)return;let a=this.core.getHour(),o=this.core.getMinutes(),s={clockFace:e,tipsWrapper:i,tipsWrapperFor24h:r&&this.core.getTipsWrapperFor24h()||void 0,clockHand:t,circle:n,clockType:this.core.options.clock.type||`12h`,disabledTime:this.convertDisabledTime(),initialHour:a?.value||`12`,initialMinute:o?.value||`00`,initialAmPm:this.getAmPmValue(),theme:this.core.options.ui.theme,incrementHours:this.core.options.clock.incrementHours||1,incrementMinutes:this.core.options.clock.incrementMinutes||1,smoothHourSnap:this.core.options.clock.smoothHourSnap??!0,timepicker:null,dragConfig:{autoSwitchToMinutes:this.core.options.clock.autoSwitchToMinutes,isMobileView:this.core.isMobileView,smoothHourSnap:this.core.options.clock.smoothHourSnap??!0,hourElement:a,minutesElement:o,onMinuteCommit:()=>{let e=this.core.getMinutes(),t=this.core.getHour(),n=this.core.getActiveTypeMode();this.emitter.emit(`range:minute:commit`,{hour:t?.value??`12`,minutes:e?.value??`00`,type:n?.textContent??void 0})}},onHourChange:e=>{let t=this.core.getHour();t&&(t.value=e,t.setAttribute(`aria-valuenow`,e)),HL(this.core.getModalElement(),`Hour: ${e}`);let n=this.core.getMinutes(),r=this.core.getActiveTypeMode();this.emitter.emit(`update`,{hour:e,minutes:n?.value,type:r?.textContent||void 0})},onMinuteChange:e=>{let t=this.core.getMinutes();t&&(t.value=e,t.setAttribute(`aria-valuenow`,e)),HL(this.core.getModalElement(),`Minutes: ${e}`);let n=this.core.getHour(),r=this.core.getActiveTypeMode();this.emitter.emit(`update`,{hour:n?.value,minutes:e,type:r?.textContent||void 0})}};this.clockSystem=new fR(s),this.clockSystem.initialize()}convertDisabledTime(){let e=this.core.disabledTime?.value;if(!e)return null;let t;return e.intervals&&(t=Array.isArray(e.intervals)?e.intervals:[e.intervals]),{hours:e.hours,minutes:e.minutes,isInterval:e.isInterval,intervals:t,clockType:e.clockType}}getAmPmValue(){if(this.core.options.clock.type===`24h`)return``;let e=this.core.getActiveTypeMode();if(e){let t=e.textContent?.trim();if(t===`AM`||t===`PM`)return t}let t=this.core.getAM();return this.core.options.range?.enabled===!0?t?.classList.contains(`active`)?`AM`:``:t?.classList.contains(`active`)?`AM`:`PM`}destroy(){this.clockSystem&&=(this.clockSystem.destroy(),null)}},mR=class{core;constructor(e){this.core=e}removeCircleClockClasses24h(){let e=this.core.getCircle(),t=this.core.getClockHand();e?.classList.remove(`tp-ui-circle-hand-24h`),t?.classList.remove(`tp-ui-clock-hand-24h`)}setCircleClockClasses24h(){let e=this.core.getCircle(),t=this.core.getClockHand();e&&e.classList.add(`tp-ui-circle-hand-24h`),t&&t.classList.add(`tp-ui-clock-hand-24h`)}setOnStartCSSClassesIfClockType24h(){if(this.core.options.clock.type===`24h`){let e=this.core.getInput();if(!e)return;let t;e.value.length>0&&(t=e.value.split(`:`)[0]),t&&(Number(t)>12||Number(t)===0)&&this.setCircleClockClasses24h()}}setBgColorToCircleWithMinutesTips(){let e=this.core.getMinutes(),t=this.core.getCircle();if(!(!e||!t)&&e.value&&gL.includes(e.value)){let e=getComputedStyle(t).getPropertyValue(`--timepicker-primary`).trim();e&&(t.style.backgroundColor=e),t.classList.remove(`small-circle`)}}removeBgColorToCirleWithMinutesTips(){let e=this.core.getMinutes(),t=this.core.getCircle();!e||!t||e.value&&gL.includes(e.value)||(t.style.backgroundColor=``,t.classList.add(`small-circle`))}setClassActiveToHourOnOpen(){this.core.options.ui.mobile||this.core.isMobileView||this.core.getHour()?.classList.add(ML)}toggleClassActiveToValueTips(e,t){if(e)return;let n=this.core.getAllValueTips();if(!n)return;let r=n.find(e=>Number(e.innerText)===Number(t));n.forEach(e=>{e.classList.remove(ML),e.setAttribute(`aria-selected`,`false`)}),r!==void 0&&(r.classList.add(ML),r.setAttribute(`aria-selected`,`true`))}},hR=class{getClockSystem;styleHandler;getAmPmValue;clockType;constructor(e,t,n,r){this.getClockSystem=e,this.styleHandler=t,this.getAmPmValue=n,this.clockType=r}setMinutesToClock(e){let t=this.getClockSystem();t&&(this.styleHandler.removeBgColorToCirleWithMinutesTips(),e&&t.setMinute(e),t.switchToMinutes())}setHoursToClock(e){let t=this.getClockSystem();t&&(e&&t.setHour(e),t.switchToHours())}setTransformToCircleWithSwitchesHour(e){let t=this.getClockSystem();!t||!e||t.setHour(e)}setTransformToCircleWithSwitchesMinutes(e){let t=this.getClockSystem();!t||!e||t.setMinute(e)}updateAmPm(){let e=this.getClockSystem();if(!e||this.clockType===`24h`)return;let t=this.getAmPmValue();t!==``&&e.setAmPm(t)}},gR=class{systemInitializer;styleHandler;timeHandler;eventHandler;constructor(e,t){this.systemInitializer=new pR(e,t),this.styleHandler=new mR(e);let n=e.options.clock.type||`12h`;this.timeHandler=new hR(()=>this.systemInitializer.getClockSystem(),this.styleHandler,()=>this.systemInitializer.getAmPmValue(),n),this.eventHandler=new nR(t,()=>this.systemInitializer.getClockSystem(),e=>this.timeHandler.setHoursToClock(e),e=>this.timeHandler.setMinutesToClock(e),()=>this.timeHandler.updateAmPm(),()=>this.systemInitializer.convertDisabledTime()),this.eventHandler.setup()}initializeClockSystem(){this.systemInitializer.initialize()}destroyClockSystem(){this.systemInitializer.destroy()}removeCircleClockClasses24h(){this.styleHandler.removeCircleClockClasses24h()}setCircleClockClasses24h(){this.styleHandler.setCircleClockClasses24h()}setOnStartCSSClassesIfClockType24h(){this.styleHandler.setOnStartCSSClassesIfClockType24h()}setBgColorToCircleWithMinutesTips=()=>{this.styleHandler.setBgColorToCircleWithMinutesTips()};removeBgColorToCirleWithMinutesTips=()=>{this.styleHandler.removeBgColorToCirleWithMinutesTips()};setClassActiveToHourOnOpen=()=>{this.styleHandler.setClassActiveToHourOnOpen()};setMinutesToClock=e=>{this.timeHandler.setMinutesToClock(e)};setHoursToClock=e=>{this.timeHandler.setHoursToClock(e)};setTransformToCircleWithSwitchesHour=e=>{this.timeHandler.setTransformToCircleWithSwitchesHour(e)};setTransformToCircleWithSwitchesMinutes=e=>{this.timeHandler.setTransformToCircleWithSwitchesMinutes(e)};updateAmPm=()=>{this.timeHandler.updateAmPm()};toggleClassActiveToValueTips=e=>{let t=this.systemInitializer.getClockSystem()!==null;this.styleHandler.toggleClassActiveToValueTips(t,e)};destroy(){this.destroyClockSystem()}},_R=class{core;emitter;cleanupHandlers=[];wasCleared=!1;constructor(e,t){this.core=e,this.emitter=t}init(){if(!this.core.options.ui.clearButton)return;let e=this.getClearButton();e&&(this.cleanupHandlers.push(GL(e,()=>{this.core.isDestroyed||this.handleClearClick()})),this.setupInternalEventListeners())}setupInternalEventListeners(){II(this.emitter,this.cleanupHandlers,`update`,()=>{this.updateClearButtonState()}),II(this.emitter,this.cleanupHandlers,`open`,()=>{this.updateClearButtonState()}),II(this.emitter,this.cleanupHandlers,`select:hour`,()=>{this.updateClearButtonState(),this.reenableConfirmIfCleared()}),II(this.emitter,this.cleanupHandlers,`select:minute`,()=>{this.updateClearButtonState(),this.reenableConfirmIfCleared()})}handleClearClick(){let e=this.core.getInput()?.value||null;this.clearTimeValue(),this.resetClockToNeutral(),this.disableConfirmButton(),this.wasCleared=!0,HL(this.core.getModalElement(),`Time cleared`),this.emitter.emit(`clear`,{previousValue:e}),this.emitter.emit(`update`,{hour:void 0,minutes:void 0,type:void 0});let{callbacks:t}=this.core.options;t.onClear&&t.onClear({previousValue:e})}clearTimeValue(){let e=this.core.options.clearBehavior?.clearInput!==!1,t=this.core.getInput();t&&e&&(t.value=``),this.core.setDegreesHours(null),this.core.setDegreesMinutes(null);let n=pL.getClearHandler(`range`);n&&n(this.core,this.emitter);let r=pL.getClearHandler(`timezone`);r&&r(this.core,this.emitter)}resetClockToNeutral(){let e=this.core.options.clock.type,t=e===`12h`?`PM`:void 0,n=this.core.getHour(),r=this.core.getMinutes();n&&(n.value=`12`,n.removeAttribute(`aria-valuenow`)),r&&(r.value=`00`,r.removeAttribute(`aria-valuenow`));let i=this.core.getClockHand();if(i){let e=i.style.transition;i.style.transition=`none`,i.style.transform=`rotateZ(0deg)`,i.offsetHeight,requestAnimationFrame(()=>{i.style.transition=e})}if(this.removeActiveStates(),n&&n.click(),e===`12h`&&t){let e=this.core.getAM(),t=this.core.getPM();e?.classList.remove(`active`),t?.classList.remove(`active`),e?.setAttribute(`aria-pressed`,`false`),t?.setAttribute(`aria-pressed`,`false`),t?.classList.add(`active`),t?.setAttribute(`aria-pressed`,`true`)}this.emitter.emit(`animation:clock`,{})}removeActiveStates(){this.core.getAllValueTips().forEach(e=>{e.classList.remove(`active`),e.removeAttribute(`aria-selected`)});let e=this.core.getHour(),t=this.core.getMinutes();e?.removeAttribute(`aria-valuenow`),t?.removeAttribute(`aria-valuenow`)}disableConfirmButton(){let e=this.core.getOkButton();e&&(e.classList.add(`disabled`),e.setAttribute(`aria-disabled`,`true`))}updateClearButtonState(){let e=this.getClearButton();if(!e)return;let t=this.core.getInput(),n=t?.value&&t.value.trim()!==``,r=this.core.getHour(),i=this.core.getMinutes(),a=this.core.getActiveTypeMode(),o=this.core.options.clock.type,s=r?.value||``,c=i?.value||``,l=a?.textContent||``,u=n||!(o===`12h`?s===`12`&&c===`00`&&l===`PM`:s===`12`&&c===`00`);e.classList.toggle(`disabled`,!u),e.setAttribute(`aria-disabled`,String(!u))}reenableConfirmIfCleared(){if(!this.wasCleared)return;let e=this.core.getOkButton();e&&(e.classList.remove(`disabled`),e.setAttribute(`aria-disabled`,`false`),this.wasCleared=!1)}getClearButton(){return this.core.getModalElement()?.querySelector(`.tp-ui-clear-btn`)||null}destroy(){this.cleanupHandlers.forEach(e=>e()),this.cleanupHandlers=[]}},vR=class{animation;modal;config;theme;validation;events;clock;clearButton;plugins=new Map;constructor(e,t){this.animation=new tL(e,t),this.modal=new DL(e,t),this.config=new RL(e,t),this.theme=new zL(e,t),this.validation=new qL(e,t),this.events=new tR(e,t),this.clock=new gR(e,t),this.clearButton=new _R(e,t),pL.getAll().forEach(n=>{let r=n.factory(e,t);this.plugins.set(n.name,r)})}getPlugin(e){return this.plugins.get(e)}destroy(){this.animation.destroy(),this.modal.destroy(),this.config.destroy(),this.theme.destroy(),this.validation.destroy(),this.events.destroy(),this.clock.destroy(),this.clearButton.destroy(),this.plugins.forEach(e=>e.destroy()),this.plugins.clear()}},yR=`is-rippling`,bR=`ripple-hold`,xR=null,SR=(e,t)=>{let n;return(...r)=>{clearTimeout(n),n=setTimeout(()=>{e(...r)},t)}},CR=[[`onOpen`,`open`],[`onCancel`,`cancel`],[`onConfirm`,`confirm`],[`onUpdate`,`update`],[`onSelectHour`,`select:hour`],[`onSelectMinute`,`select:minute`],[`onSelectAM`,`select:am`],[`onSelectPM`,`select:pm`],[`onError`,`error`],[`onTimezoneChange`,`timezone:change`],[`onRangeConfirm`,`range:confirm`],[`onRangeSwitch`,`range:switch`],[`onRangeValidation`,`range:validation`],[`onClear`,`clear`]],wR=[{needed:e=>e.ui.mode===`wheel`||e.ui.mode===`compact-wheel`,name:`wheel`,message:`WheelPlugin is not registered. Import and register it: PluginRegistry.register(WheelPlugin)`},{needed:e=>!!e.range?.enabled,name:`range`,message:`RangePlugin is not registered. Import and register it: PluginRegistry.register(RangePlugin)`},{needed:e=>!!e.timezone?.enabled,name:`timezone`,message:`TimezonePlugin is not registered. Import and register it: PluginRegistry.register(TimezonePlugin)`}],TR=class e{static EXPANDED_EXCLUDED=[`tp-ui-select-time`,`tp-ui-mobile-clock-wrapper`,`tp-ui-wrapper`];core;managers;emitter;eventsClickMobileHandler=()=>{};mutliEventsMoveHandler=()=>{};unmountTimeouts=[];constructor(e,t,n){this.core=e,this.managers=t,this.emitter=n}init(){if(!this.core.isDestroyed&&!this.core.isInitialized){try{this.managers.config.updateInputValueWithCurrentTimeOnStart(),this.managers.validation.checkDisabledValuesOnStart()}catch{this.core.setIsDestroyed(!0);return}this.managers.theme.setTimepickerClassToElement(),this.managers.theme.setInputClassToInputElement(),this.managers.theme.setDataOpenToInputIfDoesntExistInWrapper(),this.managers.theme.setClassTopOpenElement(),this.managers.config.getDisableTime(),this.core.options.ui.inline?.enabled||this.managers.events.handleOpenOnClick(),this.managers.events.handleOpenOnEnterFocus(),WI(this.core,this.emitter),this.core.setIsInitialized(!0)}}mount(){this.core.isDestroyed||this.core.isOpen||(this.core.isInitialized||this.init(),this.eventsBundle())}unmount(e){let t=SR((...e)=>{if(e.length>2)return;let[t]=e.filter(e=>typeof e==`boolean`),[n]=e.filter(e=>typeof e==`function`);this.core.setIsMobileView(!!this.core.options.ui.mobile);let r=this.core.getModalElement();t&&r&&this.core.getOkButton()?.click(),this.core.setIsTouchMouseMove(!1),this.core.setIsOpen(!1),this.removeEventListeners(),UI(this.core.options)&&this.managers.getPlugin(`wheel`)?.detachPopover?.(),r&&this.managers.animation.removeAnimationToClose(),this.core.getOpenElement().forEach(e=>e?.classList.remove(`disabled`));let i=setTimeout(()=>{this.managers.modal.unlockScroll()},eL.SCROLLBAR_RESTORE);this.unmountTimeouts.push(i);let a=setTimeout(()=>{let e=this.core.getInput();this.core.options.behavior.focusInputAfterClose&&e?.focus();let t=this.core.getModalElement();t&&t.remove(),this.core.setIsModalRemove(!0)},eL.MODAL_REMOVE);this.unmountTimeouts.push(a),n&&n()},this.core.options.behavior.delayHandler||eL.DEFAULT_DELAY);e?t(e):t()}destroy(e){if(this.core.isDestroyed)return;this.clearUnmountTimeouts();let{keepInputValue:t=!1,callback:n}=typeof e==`function`?{callback:e}:e||{},r=this.core.getInput(),i=t?r?.value:null;this.removeEventListeners(),this.core.getModalElement()?.remove(),this.core.getOpenElement()?.forEach(e=>{e&&e.classList.remove(`disabled`,`active`,`tp-ui-open-element`)}),r&&(r.classList.remove(`tp-ui-invalid-format`,`invalid-value`,`error`,`active`,`tp-ui-input`),r.removeAttribute(`data-open`),r.removeAttribute(`data-owner-id`),t&&i&&(r.value=i));let a=this.core.element;a&&(a.classList.remove(`error`,`active`,`disabled`),a.removeAttribute(`data-owner-id`),a.removeAttribute(`data-open`),this.core.options.ui.cssClass&&a.classList.remove(this.core.options.ui.cssClass)),a?.querySelectorAll(`.tp-ui-invalid-text`)?.forEach(e=>e.remove()),this.mutliEventsMoveHandler=()=>{},this.eventsClickMobileHandler=()=>{},this.core.reset(),this.managers.destroy(),this.emitter.clear(),this.managers.modal.unlockScroll(),n&&n()}eventsBundle(){if(this.core.isDestroyed||!this.core.isModalRemove)return;this.clearUnmountTimeouts(),this.core.setIsOpen(!0),this.core.setIsModalRemove(!1),this.setupValidation(),this.disableOpenElements(),this.setupModal(),this.applyExpandedState(),this.managers.modal.setFlexEndToFooterIfNoKeyboardIcon(),this.applyThemeDeferred(),this.managers.animation.setAnimationToOpen(),this.managers.config.getInputValueOnOpenAndSet();let e=VI(this.core.options)&&pL.has(`wheel`);GI(this.core,this.emitter),this.initClockOrWheel(e),this.initOptionalPlugins(e),this.bindEventHandlers(e),this.finalizeModal(e),UI(this.core.options)&&this.managers.getPlugin(`wheel`)?.attachPopover?.(),this.managers.modal.setShowClassToBackdrop()}setupValidation(){this.managers.validation.setErrorHandler(),this.managers.validation.removeErrorHandler()}disableOpenElements(){this.core.options.ui.inline?.enabled||(this.core.getOpenElement().forEach(e=>e?.classList.add(`disabled`)),UI(this.core.options)||this.core.getInput()?.blur())}setupModal(){this.managers.modal.setScrollbarOrNot(),this.managers.modal.setModalTemplate(),this.managers.modal.setNormalizeClass(),this.managers.modal.removeBackdrop()}applyExpandedState(){if(this.core.isMobileView){this.managers.config.updateClockFaceAccessibility(!0);return}let t=this.core.getModalElement();t&&(t.querySelector(`.tp-ui-mobile-clock-wrapper`)?.classList.add(`expanded`),t.querySelector(`.tp-ui-wrapper`)?.classList.add(`expanded`),t.querySelectorAll(`*`).forEach(t=>{e.EXPANDED_EXCLUDED.some(e=>t.classList.contains(e))||t.classList.add(`expanded`)}))}applyThemeDeferred(){let e=setTimeout(()=>{this.managers.theme.setTheme();let e=this.core.getWrapper();e&&this.core.options.ui.cssClass&&e.classList.add(this.core.options.ui.cssClass)},0);this.unmountTimeouts.push(e)}initClockOrWheel(e){if(e){let e=this.managers.getPlugin(`wheel`);e&&e.init()}else this.managers.clock.initializeClockSystem(),this.managers.clock.setOnStartCSSClassesIfClockType24h(),this.managers.clock.setClassActiveToHourOnOpen()}initOptionalPlugins(e){let t=this.managers.getPlugin(`timezone`);t&&t.init();let n=this.managers.getPlugin(`range`);n&&!e&&n.init()}bindEventHandlers(e){this.managers.events.handleCancelButton(),this.managers.events.handleOkButton(),this.managers.clearButton.init(),e||(this.managers.events.handleHourEvents(),this.managers.events.handleMinutesEvents()),this.managers.events.handleKeyboardInput(),this.core.options.ui.enableSwitchIcon&&!e&&this.managers.events.handleSwitchViewButton(),this.core.options.clock.type!==`24h`&&!HI(this.core.options)&&(this.managers.events.handleAmClick(),this.managers.events.handlePmClick()),this.core.options.behavior.focusTrap&&this.managers.events.focusTrapHandler(),this.core.options.ui.inline?.enabled||(this.managers.events.handleEscClick(),UI(this.core.options)||e&&this.core.options.wheel?.ignoreOutsideClick||this.managers.events.handleBackdropClick())}finalizeModal(e){let t=this.core.getModalElement();if(t&&BI(t),!e){let e=this.core.getClockFace();e&&typeof requestAnimationFrame<`u`&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{e?.classList.add(`scale-in`)})})}}clearUnmountTimeouts(){this.unmountTimeouts.forEach(clearTimeout),this.unmountTimeouts=[]}removeEventListeners(){QI()!==!1&&(jL.split(` `).forEach(e=>{document.removeEventListener(e,this.mutliEventsMoveHandler,!1)}),document.removeEventListener(`mousedown`,this.eventsClickMobileHandler))}},ER=class{events=new Map;on(e,t){this.events.has(e)||this.events.set(e,new Set),this.events.get(e).add(t)}once(e,t){let n=r=>{t(r),this.events.get(e)?.delete(n)};n.__originalHandler=t,this.on(e,n)}off(e,t){if(!t){this.events.delete(e);return}let n=this.events.get(e);n&&n.forEach(e=>{(e===t||e.__originalHandler===t)&&n.delete(e)})}emit(e,t){let n=this.events.get(e);n&&[...n].forEach(e=>{e(t)})}clear(){this.events.clear()}hasListeners(e){return(this.events.get(e)?.size??0)>0}},DR={clock:{type:`12h`,incrementHours:1,incrementMinutes:1,autoSwitchToMinutes:!0,disabledTime:void 0,currentTime:void 0},ui:{mode:`clock`,theme:`basic`,animation:!0,backdrop:!0,mobile:!1,enableSwitchIcon:!1,editable:!1,enableScrollbar:!1,cssClass:void 0,appendModalSelector:``,iconTemplate:``,iconTemplateMobile:``,inline:void 0,clearButton:!1},labels:{am:`AM`,pm:`PM`,ok:`OK`,cancel:`Cancel`,time:`Select time`,mobileTime:`Enter Time`,mobileHour:`Hour`,mobileMinute:`Minute`,clear:`Clear`,hourLabel:`Hour`,minuteLabel:`Minute`,clockLabel:`Clock`,periodLabel:`Period`,timeLabel:`Time`,format24Label:`24-hour`,rangeSelectionLabel:`Range selection`,switchToKeyboardLabel:`Switch to keyboard input`,switchToClockLabel:`Switch to clock`,toggleLabel:`Toggle`,timezoneSelectorLabel:`Timezone`,announceHour:`Hour`,announceMinute:`Minutes`,announceAmSelected:`AM selected`,announcePmSelected:`PM selected`,invalidTimeFormat:`Invalid time format`},behavior:{focusInputAfterClose:!1,focusTrap:!0,delayHandler:300,id:void 0},callbacks:{onOpen:void 0,onCancel:void 0,onConfirm:void 0,onUpdate:void 0,onSelectHour:void 0,onSelectMinute:void 0,onSelectAM:void 0,onSelectPM:void 0,onError:void 0,onTimezoneChange:void 0,onRangeConfirm:void 0,onRangeSwitch:void 0,onRangeValidation:void 0,onClear:void 0},timezone:{enabled:!1,default:void 0,whitelist:void 0,label:`Timezone`},range:{enabled:!1,minDuration:void 0,maxDuration:void 0,fromLabel:`From`,toLabel:`To`},wheel:{placement:void 0,hideFooter:void 0,commitOnScroll:void 0,hideDisabled:void 0,ignoreOutsideClick:void 0},clearBehavior:{clearInput:!0}},OR=e=>e.replace(/[^0-9:APMapm\s]/g,``),kR=new Map,AR=class{core;managers;lifecycle;emitter;constructor(e,t){if(ZI())throw Error(`TimepickerUI requires browser environment`);let n=this.resolveInputElement(e);if(!n)throw Error(`Input element not found`);let r=t?.behavior?.id,i=r||`tp-ui-${lL()}`,a=this.createWrapperElement(n),o=KI(t||{});if(o.ui.inline?.enabled&&typeof t?.behavior?.focusTrap>`u`&&(o.behavior.focusTrap=!1),o.ui.inline?.enabled){if(!o.ui.inline.containerId)throw Error(`inline.containerId is required when inline mode is enabled`);if(!ZI()&&!document.getElementById(o.ui.inline.containerId))throw Error(`Container element with id "${o.ui.inline.containerId}" not found`)}this.emitter=new ER,this.core=new $I(a,o,i,r);let s=this.core.getInput();if(s){let e=OL(s,o.clock.type),t=Number(e.hour)*30,n=Number(e.minutes)*6;this.core.setDegreesHours(t),this.core.setDegreesMinutes(n)}this.managers=new vR(this.core,this.emitter),this.lifecycle=new TR(this.core,this.managers,this.emitter),this.managers.config.checkMobileOption(),this.managers.config.preventClockTypeByCurrentTime(),this.setupInternalEventListeners(),kR.set(this.core.instanceId,this)}setupInternalEventListeners(){this.emitter.on(`show`,()=>{this.core.isDestroyed||this.lifecycle.mount()}),this.emitter.on(`cancel`,()=>{this.core.isDestroyed||this.lifecycle.unmount()}),this.emitter.on(`confirm`,e=>{if(!this.core.isDestroyed){if(this.core.options.range?.enabled)return;let t=this.core.getInput();if(t&&e.hour&&e.minutes){let n=e.type?` ${e.type}`:``;t.value=`${e.hour}:${e.minutes}${n}`}e.autoCommit||this.lifecycle.unmount()}}),this.emitter.on(`range:confirm`,e=>{if(this.core.isDestroyed)return;let t=this.core.getInput();t&&(t.value=`${e.from} - ${e.to}`),this.lifecycle.unmount()})}create(){this.lifecycle.init(),this.core.options.ui.inline?.enabled&&this.lifecycle.mount()}open(e){this.lifecycle.mount(),e&&e()}close(e,t){this.lifecycle.unmount(e?t:void 0),!e&&t&&t()}destroy(e){kR.delete(this.core.instanceId),this.lifecycle.destroy(e)}update(e,t){this.core.isDestroyed||(this.core.updateOptions(e.options),this.managers.config.checkMobileOption(),this.managers.config.getDisableTime(),e.create&&this.create(),t&&t())}getValue(){if(this.core.isDestroyed)return{hour:``,minutes:``,type:void 0,time:``,degreesHours:null,degreesMinutes:null};let e=this.core.getModalElement(),t=this.core.getInput(),n=`12`,r=`00`,i=this.core.options.clock.type===`24h`?void 0:`AM`,a=null,o=null;if(e){let e=this.core.getHour(),t=this.core.getMinutes(),s=this.core.getActiveTypeMode();n=e?.value||`12`,r=t?.value||`00`,i=this.core.options.clock.type===`24h`?void 0:s?.textContent||`AM`,a=this.core.degreesHours,o=this.core.degreesMinutes}else if(t){let e=OL(t,this.core.options.clock.type);n=e.hour,r=e.minutes,i=e.type,a=Number(n)*30,o=Number(r)*6}let s=``;return s=this.core.options.clock.type===`24h`?`${n.padStart(2,`0`)}:${r.padStart(2,`0`)}`:`${n}:${r.padStart(2,`0`)} ${i}`,{hour:n,minutes:r,type:i,time:s,degreesHours:a,degreesMinutes:o}}setValue(e,t=!0){if(this.core.isDestroyed||!e||typeof e!=`string`)return;this.core.isInitialized||this.create();let n=OR(e.trim());try{let e=qI(this.core,n);if(JI(this.core,e),YI(this.core,e.typeValue),t){let e=this.core.getInput();e&&(e.value=n)}XI(this.core,this.managers,e)}catch{return}}getElement(){return this.core.element}get instanceId(){return this.core.instanceId}get options(){return this.core.options}get isInitialized(){return this.core.isInitialized}get isDestroyed(){return this.core.isDestroyed}get hour(){return this.core.getHour()}get minutes(){return this.core.getMinutes()}get okButton(){return this.core.getOkButton()}get cancelButton(){return this.core.getCancelButton()}get clockHand(){return this.core.getClockHand()}on(e,t){this.core.isDestroyed||this.emitter.on(e,t)}once(e,t){this.core.isDestroyed||this.emitter.once(e,t)}off(e,t){this.core.isDestroyed||this.emitter.off(e,t)}resolveInputElement(e){if(QI()===!1)return null;let t=null;if(typeof e==`string`){if(t=document.querySelector(e),!t)return null}else if(e instanceof HTMLElement)t=e;else return null;return t.tagName===`INPUT`?t:t.querySelector(`input`)}createWrapperElement(e){if(QI()===!1)return e;let t=e.parentElement;if(e.tagName===`INPUT`&&!t?.classList.contains(`tp-ui`)){let t=document.createElement(`div`);return t.className=`tp-ui`,e.parentNode?.insertBefore(t,e),t.appendChild(e),t}return t&&!t.classList.contains(`tp-ui`)&&t.classList.add(`tp-ui`),t||e}static getById(e){return kR.get(e)}static getAllInstances(){return Array.from(kR.values())}static isAvailable(e){return ZI()?!1:typeof e==`string`?document.querySelector(e)!==null:e instanceof HTMLElement?document.contains(e):!1}static destroyAll(){Array.from(kR.values()).forEach(e=>e.destroy()),kR.clear()}},jR=AR,MR=jR})),PR=_({RangeManager:()=>YR,RangePlugin:()=>XR});function FR(e){let t=e.match(GR);return t?{hour:t[1],minutes:t[2],type:t[3].toUpperCase()}:null}function IR(e){let t=e.match(KR);return t?{hour:t[1],minutes:t[2]}:null}function LR(e,t){let n=parseInt(e.hour,10),r=parseInt(e.minutes,10);if(Number.isNaN(n)||Number.isNaN(r))return 0;if(t===`12h`&&e.type){let t=e.type.toUpperCase();t===`PM`&&n!==12&&(n+=12),t===`AM`&&n===12&&(n=0)}return n*60+r}function RR(e){if(!e||e===`--:--`)return null;let t=FR(e);if(t)return{hour:t.hour,minutes:t.minutes,type:t.type};let n=e.match(/^(\d{1,2}):(\d{2})\s*(AM|PM)$/i);if(n)return{hour:n[1],minutes:n[2],type:n[3].toUpperCase()};let r=IR(e);if(r)return{hour:r.hour,minutes:r.minutes};let i=e.match(/^(\d{1,2}):(\d{2})$/);return i?{hour:i[1],minutes:i[2]}:null}function zR(e){let t=e.minutes===`--`?`--`:e.minutes.padStart(2,`0`),n=`${e.hour}:${t}`;return e.type?`${n} ${e.type}`:n}function BR(e,t){return e?LR(e,t):0}function VR(e,t,n){if(!e||!t)return 0;let r=BR(e,n);return BR(t,n)-r}function HR(e,t){return e?t===`12h`?!!(e.hour&&e.minutes&&e.type):!!(e.hour&&e.minutes):!1}function UR(e){if(!e||!e.includes(` - `))return{from:null,to:null};let t=e.split(` - `).map(e=>e.trim());return t.length!==2||t[0]===`--:--`||t[1]===`--:--`?{from:null,to:null}:{from:RR(t[0]),to:RR(t[1])}}function WR(e,t,n,r){e.on(n,r),t.push(()=>e.off(n,r))}var GR,KR,qR,JR,YR,XR,ZR=h((()=>{GR=/^(1[0-2]|[1-9]):([0-5][0-9])\s*(AM|PM)$/i,KR=/^([0-1]?[0-9]|2[0-3]):([0-5][0-9])$/,qR=class{activePart=`from`;fromValue=null;toValue=null;previewValue=null;clockType;minDuration;maxDuration;emitter;constructor(e,t,n,r){this.clockType=e,this.minDuration=t,this.maxDuration=n,this.emitter=r}getActivePart(){return this.activePart}getFromValue(){return this.fromValue}getToValue(){return this.toValue}getPreviewValue(){return this.previewValue}setFromValue(e){this.fromValue=e}setToValue(e){this.toValue=e}setPreviewValue(e){this.previewValue=e}isFromComplete(){return HR(this.fromValue,this.clockType)}isToComplete(){return HR(this.toValue,this.clockType)}canSwitchToEnd(){return this.isFromComplete()}canConfirm(){return!this.isFromComplete()||!this.isToComplete()?!1:this.getDuration()>0}setActivePart(e){if(e===`to`&&!this.canSwitchToEnd())return!1;let t=this.activePart!==e;return this.activePart=e,t&&(this.previewValue=null),t}resetActivePart(){this.activePart=`from`,this.previewValue=null}getCurrentValue(){return this.previewValue?this.previewValue:this.activePart===`from`?this.fromValue:this.toValue}getSavedValue(){return this.activePart===`from`?this.fromValue:this.toValue}commitPreview(){this.previewValue&&=(this.activePart===`from`?this.fromValue=this.previewValue:this.toValue=this.previewValue,null)}getDuration(){return VR(this.fromValue,this.toValue,this.clockType)}validate(){if(!this.fromValue||!this.toValue)return{valid:!0,duration:0};let e=this.getDuration(),t=!0;return this.minDuration!==void 0&&e<this.minDuration&&(t=!1),this.maxDuration!==void 0&&e>this.maxDuration&&(t=!1),this.emitter.emit(`range:validation`,{valid:t,duration:e,minDuration:this.minDuration,maxDuration:this.maxDuration}),{valid:t,duration:e}}getDisabledTimeForEndPart(){if(this.activePart===`from`||!this.fromValue||!this.isFromComplete())return null;let e=[],t=[],n=parseInt(this.fromValue.hour,10),r=parseInt(this.fromValue.minutes,10),i=this.fromValue.type;if(this.clockType===`24h`){for(let t=0;t<n;t++)e.push(t.toString().padStart(2,`0`));for(let e=0;e<r;e++)t.push(e.toString().padStart(2,`0`));return{hours:e,minutes:t,fromHour:n}}for(let e=0;e<r;e++)t.push(e.toString().padStart(2,`0`));return{hours:e,minutes:t,fromType:i,fromHour:n}}reset(){this.activePart=`from`,this.fromValue=null,this.toValue=null,this.previewValue=null}},JR=class{core;state;constructor(e,t){this.core=e,this.state=t}updateTabs(){let e=this.core.getModalElement();if(!e)return;let t=e.querySelector(`.tp-ui-range-tab.tp-ui-range-from`),n=e.querySelector(`.tp-ui-range-tab.tp-ui-range-to`),r=this.state.getActivePart()===`from`,i=this.state.isFromComplete();t?.classList.toggle(`active`,r),n?.classList.toggle(`active`,!r),n?.classList.toggle(`disabled`,!i),t?.setAttribute(`aria-selected`,String(r)),n?.setAttribute(`aria-selected`,String(!r)),n?.setAttribute(`aria-disabled`,String(!i)),t?.setAttribute(`tabindex`,r?`0`:`-1`),n?.setAttribute(`tabindex`,r||!i?`-1`:`0`)}updateTimeDisplay(){let e=this.core.getModalElement();if(!e)return;let t=e.querySelector(`.tp-ui-range-from-time`),n=e.querySelector(`.tp-ui-range-to-time`),r=this.state.getActivePart(),i=this.state.getPreviewValue(),a=this.state.getFromValue(),o=this.state.getToValue(),s=`--:--`;r===`from`&&i?s=zR(i):a&&(s=zR(a));let c=`--:--`;r===`to`&&i?c=zR(i):o&&(c=zR(o)),t&&(t.textContent=s),n&&(n.textContent=c)}updateOkButton(){let e=this.core.getOkButton();if(!e)return;let t=this.state.canConfirm();e.classList.toggle(`disabled`,!t),e.setAttribute(`aria-disabled`,String(!t))}updateInputValue(){let e=this.core.getInput();if(!e)return;let t=this.state.getFromValue(),n=this.state.getToValue();e.value=`${t?zR(t):`--:--`} - ${n?zR(n):`--:--`}`}syncClockToActivePart(){let e=this.state.getSavedValue(),t=this.core.getHour(),n=this.core.getMinutes();if(t&&(t.value=e?.hour??`12`),n&&(n.value=e?.minutes??`00`),this.core.options.clock.type===`12h`){let t=this.core.getAM(),n=this.core.getPM();e?.type===`AM`?(t?.classList.add(`active`),n?.classList.remove(`active`)):e?.type===`PM`?(n?.classList.add(`active`),t?.classList.remove(`active`)):(t?.classList.remove(`active`),n?.classList.remove(`active`))}n&&(n.blur(),n.classList.remove(`active`)),t&&t.click()}updateAll(){this.updateTabs(),this.updateTimeDisplay(),this.updateOkButton()}},YR=class{core;emitter;state;ui;cleanupHandlers=[];isSyncingAmPm=!1;constructor(e,t){this.core=e,this.emitter=t;let{range:n,clock:r}=e.options;this.state=new qR(r.type,n?.minDuration,n?.maxDuration,t),this.ui=new JR(e,this.state)}get isEnabled(){return this.core.options.range?.enabled===!0}init(){if(!this.isEnabled)return;let{from:e,to:t}=UR(this.core.getInput()?.value||``);this.state.setFromValue(e),this.state.setToValue(t),this.state.setActivePart(`from`),this.state.setPreviewValue(null),this.bindEvents(),this.ui.syncClockToActivePart(),this.emitAmPmSyncEvent(),this.ui.updateAll()}getActivePart(){return this.state.getActivePart()}setActivePart(e){this.isEnabled&&(this.state.setActivePart(e)&&this.emitter.emit(`range:switch`,{active:e,disabledTime:this.state.getDisabledTimeForEndPart()}),this.ui.syncClockToActivePart(),this.emitAmPmSyncEvent(),this.ui.updateAll())}getFromValue(){return this.state.getFromValue()}getToValue(){return this.state.getToValue()}getDisabledTimeForEndPart(){return this.isEnabled?this.state.getDisabledTimeForEndPart():null}getDuration(){return this.state.getDuration()}validateRange(){return this.isEnabled?this.state.validate():{valid:!0,duration:0}}canConfirm(){return this.isEnabled?this.state.canConfirm():!0}getFormattedRange(){let e=this.state.getFromValue(),t=this.state.getToValue();return!e||!t?null:{from:zR(e),to:zR(t)}}bindEvents(){let e=this.core.getModalElement();if(!e)return;let t=e.querySelector(`.tp-ui-range-tab.tp-ui-range-from`),n=e.querySelector(`.tp-ui-range-tab.tp-ui-range-to`);if(t){let e=()=>this.activatePart(`from`,t);t.addEventListener(`click`,e),this.cleanupHandlers.push(()=>t.removeEventListener(`click`,e))}if(n){let e=()=>this.activatePart(`to`,n);n.addEventListener(`click`,e),this.cleanupHandlers.push(()=>n.removeEventListener(`click`,e))}this.bindTabKeyboard(t,n),WR(this.emitter,this.cleanupHandlers,`update`,()=>this.handleUpdate()),WR(this.emitter,this.cleanupHandlers,`range:minute:commit`,e=>this.handleMinuteCommit(e)),WR(this.emitter,this.cleanupHandlers,`confirm`,()=>this.handleConfirm()),WR(this.emitter,this.cleanupHandlers,`select:am`,()=>this.handleAmPm()),WR(this.emitter,this.cleanupHandlers,`select:pm`,()=>this.handleAmPm()),WR(this.emitter,this.cleanupHandlers,`clear`,()=>this.handleClear())}isTabDisabled(e){return!e||e.getAttribute(`aria-disabled`)===`true`||e.classList.contains(`disabled`)}activatePart(e,t){this.isTabDisabled(t)||this.setActivePart(e)}bindTabKeyboard(e,t){let n=[e,t].filter(e=>e!==null);n.length!==0&&n.forEach((e,t)=>{let r=t===0?`from`:`to`,i=i=>{switch(i.key){case`ArrowRight`:case`ArrowLeft`:{i.preventDefault();let e=n[((i.key===`ArrowRight`?t+1:t-1)+n.length)%n.length];this.isTabDisabled(e)||e.focus();break}case`Home`:i.preventDefault(),n[0].focus();break;case`End`:i.preventDefault(),n[n.length-1].focus();break;case`Enter`:case` `:case`Spacebar`:i.preventDefault(),this.activatePart(r,e);break}};e.addEventListener(`keydown`,i),this.cleanupHandlers.push(()=>e.removeEventListener(`keydown`,i))})}handleClear(){this.isEnabled&&(this.state.setFromValue(null),this.state.setToValue(null),this.state.setPreviewValue(null),this.state.resetActivePart())}handleUpdate(){if(!this.isEnabled)return;let e=this.core.getHour(),t=this.core.getMinutes(),n=this.core.getActiveTypeMode(),r=e?.value??`12`,i=this.state.getSavedValue(),a=i?.minutes&&i.minutes!==`--`?t?.value??`--`:`--`,o=this.core.options.clock.type===`12h`?n?.textContent??void 0:void 0;this.state.setPreviewValue({hour:r,minutes:a,type:o}),this.ui.updateAll()}handleMinuteCommit(e){if(!this.isEnabled)return;let t={hour:e.hour,minutes:e.minutes,type:e.type??void 0};this.state.getActivePart()===`from`?(this.state.setFromValue(t),this.state.setPreviewValue(null),this.state.isFromComplete()&&(this.state.setActivePart(`to`),this.emitter.emit(`range:switch`,{active:`to`,disabledTime:this.state.getDisabledTimeForEndPart()}),this.ui.syncClockToActivePart(),this.emitAmPmSyncEvent())):(this.state.setToValue(t),this.state.setPreviewValue(null)),this.state.validate(),this.ui.updateAll()}handleAmPm(){if(!this.isEnabled||this.isSyncingAmPm||this.core.options.clock.type!==`12h`)return;let e=this.core.getActiveTypeMode()?.textContent;if(e){if(this.state.getActivePart()===`from`){let t=this.state.getFromValue();t&&(this.state.setFromValue({...t,type:e}),this.state.isFromComplete()&&(this.state.setActivePart(`to`),this.state.setPreviewValue(null),this.emitter.emit(`range:switch`,{active:`to`,disabledTime:this.state.getDisabledTimeForEndPart()}),this.ui.syncClockToActivePart(),this.emitAmPmSyncEvent()))}else{let t=this.state.getToValue();t&&this.state.setToValue({...t,type:e}),this.emitter.emit(`range:switch`,{active:`to`,disabledTime:this.state.getDisabledTimeForEndPart()})}this.state.validate(),this.ui.updateAll()}}emitAmPmSyncEvent(){if(this.core.options.clock.type!==`12h`)return;let e=this.state.getSavedValue();if(e?.type){this.isSyncingAmPm=!0;try{e.type===`AM`?this.emitter.emit(`select:am`,{}):e.type===`PM`&&this.emitter.emit(`select:pm`,{})}finally{this.isSyncingAmPm=!1}}}handleConfirm(){if(!this.isEnabled)return;this.state.commitPreview();let e=this.state.getFromValue(),t=this.state.getToValue(),n=e?zR(e):`--:--`,r=t?zR(t):`--:--`,i=this.state.getDuration();this.ui.updateInputValue(),this.emitter.emit(`range:confirm`,{from:n,to:r,duration:i})}reset(){this.state.reset()}destroy(){this.cleanupHandlers.forEach(e=>e()),this.cleanupHandlers=[],this.reset()}},XR={name:`range`,factory:(e,t)=>new YR(e,t),clearHandler:(e,t)=>{if(!e.options.range?.enabled)return;let n=e.getModalElement();if(!n)return;let r=n.querySelector(`.tp-ui-range-from`),i=n.querySelector(`.tp-ui-range-to`),a=n.querySelector(`.tp-ui-range-from-time`),o=n.querySelector(`.tp-ui-range-to-time`);a&&(a.textContent=`--:--`),o&&(o.textContent=`--:--`),r?.classList.add(`active`),i?.classList.remove(`active`),r?.setAttribute(`aria-selected`,`true`),i?.setAttribute(`aria-selected`,`false`),r?.setAttribute(`tabindex`,`0`),i?.setAttribute(`tabindex`,`-1`),i?.classList.add(`disabled`),i?.setAttribute(`aria-disabled`,`true`);let s=e.getHour();s&&s.focus(),t.emit(`range:switch`,{active:`from`,disabledTime:null})}}})),QR,$R,ez,tz=!1;async function nz(){if(!QR){let e=await Promise.resolve().then(()=>(NR(),kI));QR=e.TimepickerUI,$R=e.PluginRegistry,ez=(await Promise.resolve().then(()=>(ZR(),PR))).RangePlugin,!tz&&$R&&ez&&($R.register(ez),tz=!0)}}var rz=class{constructor(e){if(this.config={dayStartTime:`00:00`,dayEndTime:`23:59`,minuteIncrement:5,clockType:`12h`,...e},this.selectedStart=this.extractTimeAsHHMM(e.startTime),e.endTime)this.selectedEnd=this.extractTimeAsHHMM(e.endTime);else{let e=new Date(`2000-01-01T${this.selectedStart}:00Z`),n=new Date(e.getTime()+3600*1e3);this.selectedEnd=t.tools.dateTime.extractTime(n.toISOString())}this.inputElement=document.createElement(`input`),this.container=this.createUI()}extractTimeAsHHMM(e){return e.includes(`T`)?t.tools.dateTime.extractTime(e):e}createUI(){let e=document.createElement(`div`);return e.style.cssText=`
231
+ </div>`},_L=e=>{let{range:{enabled:t,fromLabel:n,toLabel:r},labels:{rangeSelectionLabel:i}}=e;return!t||!fL.has(`range`)?``:`<div class="tp-ui-range-header" role="tablist" aria-label="${i}"><button type="button" class="tp-ui-range-tab tp-ui-range-from active" role="tab" tabindex="0" aria-selected="true"><span class="tp-ui-range-tab-label">${n}</span><span class="tp-ui-range-tab-value tp-ui-range-from-time">--:--</span></button><button type="button" class="tp-ui-range-tab tp-ui-range-to" role="tab" tabindex="-1" aria-selected="false"><span class="tp-ui-range-tab-label">${r}</span><span class="tp-ui-range-tab-value tp-ui-range-to-time">--:--</span></button></div>`},vL=(e,t)=>{let{ui:{clearButton:n},labels:{clear:r}}=e;return n?`<div class="tp-ui-clear-btn ${t} disabled" data-md3-ripple tabindex="0" role="button" aria-label="${r}" aria-disabled="true">${r}</div>`:``},yL=(e,t,n)=>{if(e.isWheelMode){let t=fL.getTemplateProvider(`wheel`);return t?`<div class="tp-ui-mobile-clock-wrapper ${e.mobileClass}">${t(n,e.instanceId)}</div>`:`<div class="tp-ui-mobile-clock-wrapper ${e.mobileClass}"></div>`}let{labels:{clockLabel:r}}=n;return`<div class="tp-ui-mobile-clock-wrapper ${e.mobileClass}"><div class="tp-ui-body ${e.mobileClass}"><div class="tp-ui-clock-face ${e.mobileClass}" role="group" aria-label="${r}"><div class="tp-ui-dot ${e.mobileClass}" aria-hidden="true"></div><div class="tp-ui-clock-hand ${e.mobileClass}" aria-hidden="true"><div class="tp-ui-circle-hand ${e.mobileClass}"></div></div><div class="tp-ui-tips-wrapper ${e.mobileClass}" aria-hidden="true"></div>${e.clockType===`24h`?`<div class="tp-ui-tips-wrapper-24h ${e.mobileClass}" aria-hidden="true"></div>`:``}</div></div></div>`},bL=(e,t)=>{let{labels:{time:n,mobileTime:r,timeLabel:i,am:a,pm:o,mobileMinute:s,mobileHour:c,hourLabel:l,minuteLabel:u,periodLabel:d},ui:{editable:f}}=e,{mobileClass:p,clockType:m,instanceId:h}=t,g=p?r:n,_=m===`12h`,v=_?`1`:`0`,y=_?`12`:`23`,b=_?`12`:`0`,x=m===`24h`?``:`<div class="tp-ui-wrapper-type-time ${p}" role="group" aria-label="${d}"><div class="tp-ui-type-mode tp-ui-am ${p?`mobile`:`tp-ui-ripple`}" data-md3-ripple tabindex="0" role="button" aria-label="${a}" aria-pressed="false" data-type="AM">${a}</div><div class="tp-ui-type-mode tp-ui-pm ${p?`mobile`:`tp-ui-ripple`}" data-md3-ripple tabindex="0" role="button" aria-label="${o}" aria-pressed="false" data-type="PM">${o}</div></div>`;return`<div class="tp-ui-select-time ${p}" id="tp-ui-label-${h}">${g}</div><div class="tp-ui-header ${p}"><div class="tp-ui-wrapper-time ${p} ${m===`24h`?`tp-ui-wrapper-time-24h`:``}" role="group" aria-label="${i}"><div class="tp-ui-input-wrapper ${p}"><div class="tp-ui-input-ripple-wrapper ${p}" data-md3-ripple><input name="hour" ${!f&&!p?`readonly`:``} class="tp-ui-hour ${p}" tabindex="0" type="number" min="${v}" max="${y}" aria-label="${p?c:l}" role="spinbutton" aria-valuemin="${v}" aria-valuemax="${y}" aria-valuenow="${b}" aria-valuetext="${b}"></div><div class="tp-ui-hour-text ${p}">${c}</div></div><div class="tp-ui-dots ${p}" aria-hidden="true"><span></span><span></span></div><div class="tp-ui-input-wrapper ${p}"><div class="tp-ui-input-ripple-wrapper ${p}" data-md3-ripple><input name="minutes" ${!f&&!p?`readonly`:``} class="tp-ui-minutes ${p}" tabindex="0" type="number" min="0" max="59" aria-label="${p?s:u}" role="spinbutton" aria-valuemin="0" aria-valuemax="59" aria-valuenow="0" aria-valuetext="00"></div><div class="tp-ui-minute-text ${p}">${s}</div></div></div>${x}</div>`},xL=(e,t)=>{let{ui:{enableSwitchIcon:n,iconTemplate:r,iconTemplateMobile:i},labels:{cancel:a,ok:o,switchToKeyboardLabel:s,switchToClockLabel:c,toggleLabel:l}}=e,u=`<button aria-label="${s}" type="button" class="tp-ui-keyboard-icon">${r||lL}</button>`,d=i||`<button aria-label="${c}" type="button" class="tp-ui-keyboard-icon">${i||uL}</button>`,f=n?`<div class="tp-ui-keyboard-icon-wrapper ${t}" tabindex="0" role="button" aria-pressed="false" aria-label="${l}" data-view="desktop">${t?d:u}</div>`:``,p=vL(e,t);return`<div class="tp-ui-footer ${t}" ${t?`data-view="mobile"`:``}>${f}<div class="tp-ui-wrapper-btn ${t}">${p}<div class="tp-ui-cancel-btn ${t}" data-md3-ripple tabindex="0" role="button" aria-label="${a}">${a}</div><div class="tp-ui-ok-btn ${t}" data-md3-ripple tabindex="0" role="button" aria-label="${o}">${o}</div></div></div>`},SL=(e,t)=>{let{ui:{mode:n,animation:r,theme:i,mobile:a},clock:{incrementMinutes:o}}=e,s=a?`mobile`:``,c=n===`compact-wheel`&&fL.has(`wheel`),l=(n===`wheel`||c)&&fL.has(`wheel`),u=!!e.range?.enabled&&fL.has(`range`),d=!!e.timezone?.enabled&&fL.has(`timezone`),f={mobileClass:s,clockType:e.clock.type||`12h`,instanceId:t,isWheelMode:l,isCompactWheel:c,isRangeMode:u},p=_L(e),m=gL(e,s,t),h=c?``:bL(e,f),g=yL(f,o??1,e),_=c&&e.wheel?.hideFooter===!0?``:xL(e,s),v;return v=c?` tp-ui-compact-wheel-mode`:l?` tp-ui-wheel-mode`:``,`<div class="tp-ui-modal normalize ${s}${u?` tp-ui-range-mode`:``}${d?` tp-ui-tz-mode`:``}${v}" data-theme="${i}" role="dialog" aria-modal="true" aria-labelledby="tp-ui-label-${t}" data-owner-id="${t}" style='transition:${r?`opacity 0.15s linear`:`none`}'><div class="tp-ui-wrapper ${s}" tabindex="0">${p}${h}${m}${g}${_}</div><div class="timepicker-announcer sr-only" role="status" aria-live="polite" aria-atomic="true"></div></div>`},CL=0,wL=``,TL=``,EL=class{core;emitter;timeouts=[];scrollLocked=!1;constructor(e,t){this.core=e,this.emitter=t}runWithTimeout(e,t=$I.DEFAULT_DELAY){let n=setTimeout(e,t);this.timeouts.push(n)}clearAllTimeouts(){this.timeouts.forEach(clearTimeout),this.timeouts=[]}isPopoverMode(){return this.core.options.ui.mode===`compact-wheel`&&!!this.core.options.wheel?.placement}clearExistingModal(){if(ZI()===!1)return;let e=this.core.getModalElement();e&&e.remove()}setModalTemplate(){if(ZI()===!1)return;this.clearExistingModal();let e=SL(this.core.options,this.core.instanceId);if(this.core.options.ui.inline?.enabled){let t=document.getElementById(this.core.options.ui.inline.containerId);if(!t)return;t.innerHTML=``,t.insertAdjacentHTML(`beforeend`,e);let n=t.querySelector(`.tp-ui-modal`);if(n){n.classList.add(`tp-ui--inline`);let{showButtons:e}=this.core.options.ui.inline;(e===!1||e===void 0)&&n.querySelectorAll(`.tp-ui-wrapper-btn, .tp-ui-wrapper-btn.mobile`).forEach(e=>e.style.display=`none`)}return}let{appendModalSelector:t}=this.core.options.ui;t?document.querySelector(t)?.insertAdjacentHTML(`beforeend`,e):document.body.insertAdjacentHTML(`beforeend`,e)}lockScroll(){ZI()!==!1&&(this.core.options.ui.inline?.enabled||this.isPopoverMode()||this.core.options.ui.enableScrollbar||this.scrollLocked||(this.scrollLocked=!0,kI()))}unlockScroll(){ZI()!==!1&&this.scrollLocked&&(this.scrollLocked=!1,AI())}setScrollbarOrNot(){ZI()!==!1&&(this.core.options.ui.inline?.enabled||this.isPopoverMode()||(this.core.options.ui.enableScrollbar?this.runWithTimeout(()=>{XI()||this.runWithTimeout(()=>{this.unlockScroll()},$I.SCROLLBAR_RESTORE)},400):this.lockScroll()))}removeBackdrop(){if(this.core.options.ui.inline?.enabled||this.core.options.ui.backdrop)return;let e=this.core.getModalElement(),t=this.core.getOpenElement();e?.classList.add(`removed`),t.forEach(e=>e?.classList.add(`disabled`))}setNormalizeClass(){let e=this.core.getModalElement();e&&(e.classList.add(`tp-ui-normalize`),e.querySelectorAll(`:scope > div`).forEach(e=>e.classList.add(`tp-ui-normalize`)))}setShowClassToBackdrop(){if(this.core.options.ui.inline?.enabled||this.isPopoverMode()){this.core.getModalElement()?.classList.add(`show`),this.setInitialFocus();return}this.core.options.ui.backdrop&&this.runWithTimeout(()=>{this.core.getModalElement()?.classList.add(`show`),this.setInitialFocus()},$I.MODAL_ANIMATION)}setInitialFocus(){if(!this.core.options.behavior.focusTrap)return;let e=this.core.getWrapper();e&&typeof requestAnimationFrame<`u`&&requestAnimationFrame(()=>{e.focus()})}setFlexEndToFooterIfNoKeyboardIcon(){let e=this.core.getFooter();!this.core.options.ui.enableSwitchIcon&&e&&(e.style.justifyContent=`flex-end`)}destroy(){this.clearAllTimeouts(),this.unlockScroll(),this.clearExistingModal()}},DL=(e,t,n,r)=>{let i={hour:`12`,minutes:`00`,type:t===`24h`?void 0:`PM`};if(!e)return i;let a=e.value.trim();if(!n&&!a)return i;if(typeof n==`boolean`&&n){let[e,n]=new Date().toLocaleTimeString().split(`:`),r=e.padStart(2,`0`);if(/[a-z]/i.test(n)&&t===`12h`){let[e,t]=n.split(` `);return{hour:r,minutes:e,type:t}}return{hour:r,minutes:n,type:void 0}}if(typeof n==`object`){let{time:e,locales:i,preventClockType:a}=n,o=e??new Date;if(a&&r){let[e,t]=new Date(o).toLocaleTimeString().split(`:`);if(/[a-z]/i.test(t)){let[n,r]=t.split(` `);return{hour:e,minutes:n,type:r}}return{hour:e.padStart(2,`0`),minutes:t,type:void 0}}let[s,c]=new Date(o).toLocaleTimeString(i||`en-US`,{hour:`2-digit`,minute:`2-digit`,hour12:t===`12h`}).split(`:`);if(t===`12h`&&/[a-z]/i.test(c)){let e=c.trim().split(` `);return{hour:s,minutes:e[0],type:e[1]||`AM`}}return{hour:s,minutes:c.replace(/\D/g,``),type:void 0}}let[o,s]=a.split(` `),[c=``,l=``]=o.split(`:`),u=c.replace(/\D/g,``),d=l.replace(/\D/g,``),f={hour:u.padStart(2,`0`),minutes:d.padStart(2,`0`),type:t===`12h`?s:void 0};if(u.length>2||d.length>2)return{...f,error:`Invalid input: too many digits.`,currentHour:c,currentMin:l};if(/[a-z]/i.test(o))return{...f,error:`Input contains invalid letters.`};if(a.includes(` `)&&(!s||a.length>8||s!==`AM`&&s!==`PM`))return{...f,error:`Invalid AM/PM format or length.`,currentLength:a.length,currentType:s};let p=Number(u),m=Number(d);if(t===`12h`){if(p<1||p>12||m<0||m>59||s!==`AM`&&s!==`PM`)return{...f,error:`Invalid 12h time.`,currentHour:p,currentMin:m,currentType:s}}else if(p<0||p>23||m<0||m>59)return{...f,error:`Invalid 24h time.`,currentHour:p,currentMin:m};return f},OL=(e,t,n)=>{let r=Number(e);if(Number.isNaN(r))return!1;switch(t){case`hour`:return n===`24h`?r>=0&&r<=23:r>0&&r<=12;case`minutes`:return r>=0&&r<=59;default:return}},kL=`tp-ui`,AL=`mousedown mouseup mousemove mouseleave mouseover touchstart touchmove touchend`,jL=`active`,ML=class{core;emitter;constructor(e,t){this.core=e,this.emitter=t}isCurrentTimeEnabled(e){let t=this.core.options.clock.currentTime;return typeof t==`boolean`?t:!!t?.[e]}preventClockTypeByCurrentTime(){if(!this.isCurrentTimeEnabled(`preventClockType`))return;let e=this.core.getInput();if(!e)return;let{currentTime:t,clockType:n}={currentTime:this.core.options.clock.currentTime,clockType:this.core.options.clock.type},{type:r}=DL(e,n,t,!0);this.core.updateOptions({clock:{type:r?`12h`:`24h`}})}updateInputValueWithCurrentTimeOnStart(){if(!this.isCurrentTimeEnabled(`updateInput`))return;let e=this.core.getInput();if(!e)return;let{hour:t,minutes:n,type:r}=DL(e,this.core.options.clock.type,this.core.options.clock.currentTime);e.value=r?`${t}:${n} ${r}`:`${t}:${n}`}getInputValueOnOpenAndSet(){let e=this.core.getInput();if(!e)return;let t=DL(e,this.core.options.clock.type,this.core.options.clock.currentTime),n=this.core.getHour(),r=this.core.getMinutes(),i=this.core.getActiveTypeMode(),a=this.core.getAM();if(t===void 0){n&&(n.value=`12`),r&&(r.value=`00`);let e={hour:n?.value||`12`,minutes:r?.value||`00`,type:i?.dataset.type,degreesHours:this.core.degreesHours,degreesMinutes:this.core.degreesMinutes};this.emitter.emit(`open`,e);let t=this.core.options.range?.enabled===!0;this.core.options.clock.type!==`24h`&&a&&!t&&a.classList.add(jL);return}let[o,s,c]=e.value.split(`:`).join(` `).split(` `);e.value.length===0&&(o=t.hour,s=t.minutes,c=t.type),this.core.options.clock.type!==`24h`&&!c&&(c=t.type||`AM`),n&&(n.value=o.padStart(2,`0`)),r&&(r.value=s.padStart(2,`0`));let l=this.core.getModalElement()?.querySelector(`[data-type='${c}']`);this.core.options.clock.type!==`24h`&&l&&l.classList.add(jL);let u={...t,type:i?.dataset.type,degreesHours:this.core.degreesHours,degreesMinutes:this.core.degreesMinutes};this.emitter.emit(`open`,u)}getInputValue(e,t,n){return DL(e,t,n)}destroy(){}},NL=class{core;emitter;isAnimating=!1;constructor(e,t){this.core=e,this.emitter=t,this.setupEventListeners()}setupEventListeners(){this.emitter.on(`switch:view`,()=>{this.toggleMobileClockFace()})}checkMobileOption(){this.core.setIsMobileView(!!this.core.options.ui.mobile),this.core.options.ui.mobile&&this.core.updateOptions({ui:{editable:!0}})}toggleMobileClockFace(){if(this.isAnimating)return;let e=this.core.getModalElement();if(!e)return;let t=e.querySelector(`.tp-ui-wrapper`),n=this.core.getKeyboardClockIcon(),r=e.querySelector(`.tp-ui-mobile-clock-wrapper`),i=e.querySelectorAll(`*`),a=e.querySelector(`.tp-ui-select-time`),o=this.core.getHour(),s=this.core.getMinutes(),c=this.core.getClockFace();if(!t)return;let l=t.classList.contains(`expanded`),u=this.core.isMobileView;l?this.collapseClockFace(t,r,i,n,a,o,s,c,u):this.expandClockFace(t,r,i,n,a,o,s,c)}collapseClockFace(e,t,n,r,i,a,o,s,c){if(this.isAnimating=!0,typeof requestAnimationFrame<`u`){let l=typeof window<`u`&&window.matchMedia(`(orientation: landscape) and (min-width: 320px) and (max-width: 825px)`).matches;requestAnimationFrame(()=>{l&&e instanceof HTMLElement?this.collapseLandscape(e,t,n,r,i,a,o,s,c):this.collapsePortrait(e,t,n,r,i,a,o,s,c)})}else this.switchView(i,r,a,o,!0),this.isAnimating=!1;r?.setAttribute(`aria-label`,`Show clock face`),r?.setAttribute(`aria-pressed`,`false`)}collapseLandscape(e,t,n,r,i,a,o,s,c){s?.classList.remove(`scale-in`);let l=this.core.getModalElement(),u=this.getMobileLandscapeHeight(l);e.style.width=`328px`,e.style.height=u,t instanceof HTMLElement&&(t.style.height=`0`,t.style.opacity=`0`,t.style.transform=`scale(0)`),setTimeout(()=>{this.applyMobileClasses(e,t,n,i,c),e.classList.add(`mobile`),t&&t.classList.add(`mobile`),this.switchView(i,r,a,o,!0),requestAnimationFrame(()=>{e.style.width=``,e.style.height=``,t instanceof HTMLElement&&(t.style.height=``,t.style.opacity=``,t.style.transform=``),this.isAnimating=!1})},$I.WRAPPER_TRANSITION)}collapsePortrait(e,t,n,r,i,a,o,s,c){c?s?.classList.remove(`scale-in`):s?.classList.add(`scale-in`),t?.classList.remove(`expanded`),c&&t?.classList.add(`mobile`),requestAnimationFrame(()=>{this.applyMobileClasses(e,t,n,i,c),this.switchView(i,r,a,o,!0),setTimeout(()=>{this.isAnimating=!1},$I.MOBILE_TOGGLE)})}applyMobileClasses(e,t,n,r,i){e.classList.remove(`expanded`),t?.classList.remove(`expanded`),i&&(e.classList.add(`mobile`),t?.classList.add(`mobile`)),n.forEach(n=>{n!==t&&n!==e&&n!==r&&(n.classList.remove(`expanded`),i&&n.classList.add(`mobile`))}),r&&(r.classList.remove(`expanded`),i&&r.classList.add(`mobile`))}expandClockFace(e,t,n,r,i,a,o,s){this.isAnimating=!0,o?.classList.contains(`active`)&&o?this.emitter.emit(`select:minute`,{minutes:o.value}):a&&this.emitter.emit(`select:hour`,{hour:a.value}),n.forEach(n=>{n!==t&&n!==e&&n!==i&&(n.classList.remove(`mobile`),n.classList.add(`expanded`))}),i&&(i.classList.remove(`mobile`),i.classList.add(`expanded`)),this.switchView(i,r,a,o,!1),typeof requestAnimationFrame<`u`?requestAnimationFrame(()=>{e.classList.remove(`mobile`),e.classList.add(`expanded`),requestAnimationFrame(()=>{t&&(t.classList.remove(`mobile`),t.classList.add(`expanded`)),s&&s.classList.remove(`scale-in`),setTimeout(()=>{s&&s.classList.add(`scale-in`)},$I.CLOCK_SCALE_DELAY),setTimeout(()=>{this.isAnimating=!1},$I.MOBILE_TOGGLE)})}):this.isAnimating=!1,r?.setAttribute(`aria-label`,`Hide clock face`),r?.setAttribute(`aria-pressed`,`true`)}switchView(e,t,n,r,i){let a=this.core.getModalElement(),o=a?.querySelector(`.tp-ui-hour-text`),s=a?.querySelector(`.tp-ui-minute-text`),c=t?.querySelector(`.tp-ui-keyboard-icon`),l=this.core.getInputWrappers(),u=this.core.getHeader(),d=a?.querySelector(`.tp-ui-wrapper-type-time`),f=a?.querySelector(`.tp-ui-am`),p=a?.querySelector(`.tp-ui-pm`),m=a?.querySelectorAll(`.tp-ui-input-ripple-wrapper`),{iconTemplate:h,iconTemplateMobile:g}=this.core.options.ui,{time:_,mobileTime:v}=this.core.options.labels;i?(e?.classList.add(`mobile`),t?.classList.add(`mobile`),n?.classList.add(`mobile`),n?.removeAttribute(`readonly`),r?.classList.add(`mobile`),r?.removeAttribute(`readonly`),o?.classList.add(`mobile`),s?.classList.add(`mobile`),u?.classList.add(`mobile`),d?.classList.add(`mobile`),f?.classList.add(`mobile`),f?.classList.remove(`tp-ui-ripple`),p?.classList.add(`mobile`),p?.classList.remove(`tp-ui-ripple`),l?.forEach(e=>{e.classList.add(`mobile`)}),m?.forEach(e=>{e.classList.add(`mobile`)}),e&&v&&(e.textContent=v),c&&(c.innerHTML=g||uL),this.updateClockFaceAccessibility(!0)):(e?.classList.remove(`mobile`),t?.classList.remove(`mobile`),n?.classList.remove(`mobile`),r?.classList.remove(`mobile`),this.core.options.ui.editable||(n?.setAttribute(`readonly`,``),r?.setAttribute(`readonly`,``)),o?.classList.remove(`mobile`),s?.classList.remove(`mobile`),u?.classList.remove(`mobile`),d?.classList.remove(`mobile`),f?.classList.remove(`mobile`),f?.classList.add(`tp-ui-ripple`),p?.classList.remove(`mobile`),p?.classList.add(`tp-ui-ripple`),l?.forEach(e=>{e.classList.remove(`mobile`)}),m?.forEach(e=>{e.classList.remove(`mobile`)}),e&&_&&(e.textContent=_),c&&(c.innerHTML=h||lL),this.updateClockFaceAccessibility(!1))}updateClockFaceAccessibility(e){let t=this.core.getClockFace();if(!t)return;let n=t.querySelector(`.tp-ui-tips-wrapper`),r=t.querySelector(`.tp-ui-tips-wrapper-24h`),i=t.querySelectorAll(`.tp-ui-tip`);e?(t.setAttribute(`aria-hidden`,`true`),n?.setAttribute(`aria-hidden`,`true`),r?.setAttribute(`aria-hidden`,`true`),i.forEach(e=>{e.setAttribute(`tabindex`,`-1`),e.setAttribute(`aria-hidden`,`true`)})):(t.removeAttribute(`aria-hidden`),n?.removeAttribute(`aria-hidden`),r?.removeAttribute(`aria-hidden`),i.forEach(e=>{e.setAttribute(`tabindex`,`0`),e.removeAttribute(`aria-hidden`)}))}getMobileLandscapeHeight(e){return e?.classList.contains(`tp-ui-tz-mode`)?`326px`:e?.classList.contains(`tp-ui-range-mode`)?`287px`:`258px`}destroy(){}},PL=e=>{if(!e)return;let{disabledTime:t,type:n}=e.clock;if(!t||!Object.keys(t).length)return;let{hours:r,minutes:i,interval:a}=t;if(a){delete t.hours,delete t.minutes;let e=Array.isArray(a)?a:[a];if(!n)throw Error(`clockType required for interval`);return sL(e,n),{value:e.map(e=>{let[t,r]=e.trim().split(`-`),{hour:i,minutes:a,type:o}=DL({value:t.trim()},n),{hour:s,minutes:c,type:l}=DL({value:r.trim()},n),u=rL(i,s).map(e=>Number(e)===0?`00`:String(Number(e))),d=[],f=Number(a),p=Number(c);if(l===o)return f>0&&p<=0?(d.push(u[0],u[u.length-1]),u=u.slice(1,-1)):p<59&&p>0&&f<=0?(d.push(void 0,u[u.length-1]),u=u.slice(0,-1)):p>0&&f>0?(d.push(u[0],u[u.length-1]),u=u.slice(1,-1)):p===0&&f===0&&(d.push(void 0,u[u.length-1]),u.pop()),{removedStartedHour:d[0]!==void 0&&Number(d[0])<=9?`0${d[0]}`:d[0],removedEndHour:d[1]!==void 0&&Number(d[1])<=9?`0${d[1]}`:d[1],rangeArrHour:u,startMinutes:rL(a,59).map(e=>Number(e)<=9?`0${e}`:`${e}`),endMinutes:iL(0,c).map(e=>Number(e)<=9?`0${e}`:`${e}`),startType:o,endType:l};{let e=rL(i,12).map(String),t=iL(1,s).map(String),n=[],r=[];return f>0&&p<=0?(r.push(t[t.length-1]),n.push(e[0]),t.pop(),e.shift()):p<59&&p>0&&f<=0?(n.push(e[0]),r.push(t[t.length-1]),t.pop()):p>0&&f>0?(r.push(t[t.length-1]),n.push(e[0]),t.pop(),e.shift()):p===0&&f===0&&(r.push(t[t.length-1]),n.push(e[0]),t.pop()),{startType:o,endType:l,amHours:e,pmHours:t,removedAmHour:n[0]&&Number(n[0])<=9?`0${n[0]}`:n[0],removedPmHour:r[0]&&Number(r[0])<=9?`0${r[0]}`:r[0],startMinutes:Number(a)===0?[]:rL(a,59).map(e=>Number(e)<=9?`0${e}`:`${e}`),endMinutes:iL(0,c).map(e=>Number(e)<=9?`0${e}`:`${e}`)}}}).reduce((e,t)=>(Object.entries(t).forEach(([t,n])=>{Array.isArray(n)?e[t]=Array.isArray(e[t])?[...e[t],...n]:[...n]:e[t]=n}),e),{isInterval:!0,clockType:n,intervals:e})}}return r?.forEach(e=>{if(n===`12h`&&Number(e)>12)throw Error(`The disabled hours value has to be less than 13`);if(n===`24h`&&Number(e)>23)throw Error(`The disabled hours value has to be less than 24`)}),i?.forEach(e=>{if(Number(e)>59)throw Error(`The disabled minutes value has to be less than 60`)}),{value:{hours:r?.map(e=>e===`00`||Number(e)===0?`0${Number(e)}`:`${Number(e)}`),minutes:i?.map(e=>Number(e)<=9?`0${e}`:`${e}`)}}},FL=(e,t,n,r)=>{if(e){if(Array.isArray(e)&&e.length>0)return!e.map(e=>OL(e,t,n)).some(e=>e===!1);if(typeof e==`string`||typeof e==`number`){let i=OL(e,t,n),a=r?.map(Number).includes(Number(e));return!!(i&&!a)}}},IL=class{core;constructor(e){this.core=e}getDisableTime(){let e=PL(this.core.options);this.core.setDisabledTime(e||null)}destroy(){}},LL=class{inputValueHandler;mobileViewHandler;disabledTimeHandler;core;constructor(e,t){this.core=e,this.inputValueHandler=new ML(e,t),this.mobileViewHandler=new NL(e,t),this.disabledTimeHandler=new IL(e)}preventClockTypeByCurrentTime(){this.inputValueHandler.preventClockTypeByCurrentTime()}updateInputValueWithCurrentTimeOnStart(){this.inputValueHandler.updateInputValueWithCurrentTimeOnStart()}getInputValueOnOpenAndSet(){this.inputValueHandler.getInputValueOnOpenAndSet()}getInputValue(e,t,n){return this.inputValueHandler.getInputValue(e,t,n)}checkMobileOption(){this.mobileViewHandler.checkMobileOption()}toggleMobileClockFace(){this.mobileViewHandler.toggleMobileClockFace()}updateClockFaceAccessibility(e){this.mobileViewHandler.updateClockFaceAccessibility(e)}getDisableTime(){this.disabledTimeHandler.getDisableTime()}destroy(){this.inputValueHandler.destroy(),this.mobileViewHandler.destroy(),this.disabledTimeHandler.destroy()}},RL=class{core;emitter;constructor(e,t){this.core=e,this.emitter=t}setTheme(){let e=this.core.getModalElement();if(!e)return;let{theme:t}=this.core.options.ui;t&&e.setAttribute(`data-theme`,t)}setInputClassToInputElement(){let e=this.core.getInput();e&&(nL(e,`tp-ui-input`)||e.classList.add(`tp-ui-input`))}setDataOpenToInputIfDoesntExistInWrapper(){let e=this.core.getOpenElementData(),t=this.core.getInput();e===null&&t&&t.setAttribute(`data-open`,`tp-ui-input`)}setClassTopOpenElement(){let e=this.core.getOpenElement();for(let t of e)t&&t.classList.add(`tp-ui-open-element`)}setTimepickerClassToElement(){let e=this.core.element;if(!e)return;e.classList.add(kL);let t=this.core.options.ui.cssClass;t&&t!==kL&&e.classList.add(t)}destroy(){let e=this.core.getModalElement();e&&e.removeAttribute(`data-theme`)}},zL=class e extends Error{constructor(t,n){super(`[TimepickerUI] ${t}`),this.code=n,this.name=`TimepickerError`,Object.setPrototypeOf(this,e.prototype)}},BL={ELEMENT_NOT_FOUND:`ELEMENT_NOT_FOUND`,INVALID_PARAMETER:`INVALID_PARAMETER`,NO_INPUT_ELEMENT:`NO_INPUT_ELEMENT`,INSTANCE_DESTROYED:`INSTANCE_DESTROYED`,NOT_INITIALIZED:`NOT_INITIALIZED`,INVALID_TIME_FORMAT:`INVALID_TIME_FORMAT`,INLINE_CONFIG_ERROR:`INLINE_CONFIG_ERROR`,CONTAINER_NOT_FOUND:`CONTAINER_NOT_FOUND`,SSR_ENVIRONMENT:`SSR_ENVIRONMENT`},VL=(e,t)=>{if(!e)return;let n=e.querySelector(`.timepicker-announcer`);n&&(n.textContent=``,setTimeout(()=>{n.textContent=t},100))},HL=(e,t)=>{e&&e.setAttribute(`aria-pressed`,String(t))},UL=e=>e.getAttribute(`aria-disabled`)===`true`||e.classList.contains(`disabled`),WL=(e,t)=>{if(!e)return()=>{};let n=n=>{UL(e)||t(n)},r=n=>{n.key!==`Enter`&&n.key!==` `&&n.key!==`Spacebar`||((n.key===` `||n.key===`Spacebar`)&&n.preventDefault(),!UL(e)&&t(n))};return e.addEventListener(`click`,n),e.addEventListener(`keydown`,r),()=>{e.removeEventListener(`click`,n),e.removeEventListener(`keydown`,r)}},GL=()=>typeof window>`u`||typeof window.matchMedia!=`function`?!1:window.matchMedia(`(prefers-reduced-motion: reduce)`).matches,KL=class{core;emitter;constructor(e,t){this.core=e,this.emitter=t}setErrorHandler(){let e=this.core.getInput();if(!e)return!0;let{error:t,currentHour:n,currentMin:r,currentType:i,currentLength:a}=DL(e,this.core.options.clock.type);if(this.removeErrorHandler(),t){if(ZI()===!1)return!1;let o=this.core.options.labels.invalidTimeFormat??`Invalid time format`,s=document.createElement(`div`);s.classList.add(`tp-ui-invalid-text`),s.setAttribute(`role`,`alert`);let c=document.createElement(`b`);c.textContent=o,s.appendChild(c),e.classList.add(`tp-ui-invalid-format`),e.nextElementSibling?.classList.contains(`tp-ui-invalid-text`)||e.after(s),VL(this.core.getModalElement(),o);let l={error:t,rejectedHour:void 0,rejectedMinute:void 0,inputHour:n,inputMinute:r,inputType:i,inputLength:a};return this.emitter.emit(`error`,l),!1}return!0}removeErrorHandler(){let e=this.core.getInput();if(!e)return;e.classList.remove(`tp-ui-invalid-format`);let t=e.nextElementSibling;t?.classList.contains(`tp-ui-invalid-text`)&&t.remove()}checkDisabledValuesOnStart(){if(!this.core.options.clock.disabledTime)return;let{disabledTime:e,type:t}=this.core.options.clock;if(e.interval){if(!t)throw new zL(`clockType is required when using disabledTime.interval`,BL.INVALID_PARAMETER);let n=Array.isArray(e.interval)?e.interval:[e.interval];try{sL(n,t)}catch(e){throw new zL(`Invalid disabledTime.interval: ${e.message}`,BL.INVALID_PARAMETER)}return}let{hours:n,minutes:r}=e,i=n?FL(n,`hour`,t):!0,a=r?FL(r,`minutes`,t):!0;if(!i||!a)throw new zL(`Invalid hours or minutes in disabledTime option`,BL.INVALID_PARAMETER)}destroy(){this.removeErrorHandler()}},qL=class{core;emitter;cleanupHandlers=[];constructor(e,t){this.core=e,this.emitter=t}handleOpenOnClick(){let e=this.core.getOpenElement();if(!e)return;let t=()=>{this.core.isDestroyed||this.emitter.emit(`show`,{})};e.forEach(e=>{this.cleanupHandlers.push(WL(e,t))})}handleCancelButton(){let e=this.core.getCancelButton();e&&this.cleanupHandlers.push(WL(e,()=>{this.core.isDestroyed||this.emitter.emit(`cancel`,{})}))}handleOkButton(){let e=this.core.getOkButton();e&&this.cleanupHandlers.push(WL(e,()=>{if(this.core.isDestroyed||e.getAttribute(`aria-disabled`)===`true`)return;let t=this.core.getHour(),n=this.core.getMinutes();if(t&&n){let e=this.core.getActiveTypeMode();this.emitter.emit(`confirm`,{hour:t.value,minutes:n.value,type:e?.textContent||void 0});return}let r=this.core.getModalElement();if(r){let e=r.querySelector(`.tp-ui-wheel-hours .tp-ui-wheel-item.is-center`),t=r.querySelector(`.tp-ui-wheel-minutes .tp-ui-wheel-item.is-center`),n=r.querySelector(`.tp-ui-wheel-ampm .tp-ui-wheel-item.is-center`);this.emitter.emit(`confirm`,{hour:e?.getAttribute(`data-value`)??void 0,minutes:t?.getAttribute(`data-value`)??void 0,type:n?.getAttribute(`data-value`)??void 0})}}))}handleAmClick(){let e=this.core.getAM();e&&this.cleanupHandlers.push(WL(e,()=>{if(this.core.isDestroyed)return;let t=this.core.getPM();e.classList.add(`active`),t?.classList.remove(`active`),HL(e,!0),HL(t,!1),VL(this.core.getModalElement(),this.core.options.labels.announceAmSelected??`AM selected`),this.emitter.emit(`select:am`,{});let n=this.core.getHour(),r=this.core.getMinutes();this.emitter.emit(`update`,{hour:n?.value,minutes:r?.value,type:`AM`})}))}handlePmClick(){let e=this.core.getPM();e&&this.cleanupHandlers.push(WL(e,()=>{if(this.core.isDestroyed)return;let t=this.core.getAM();e.classList.add(`active`),t?.classList.remove(`active`),HL(e,!0),HL(t,!1),VL(this.core.getModalElement(),this.core.options.labels.announcePmSelected??`PM selected`),this.emitter.emit(`select:pm`,{});let n=this.core.getHour(),r=this.core.getMinutes();this.emitter.emit(`update`,{hour:n?.value,minutes:r?.value,type:`PM`})}))}handleSwitchViewButton(){let e=this.core.getKeyboardClockIcon();e&&this.cleanupHandlers.push(WL(e,()=>{this.core.isDestroyed||this.emitter.emit(`switch:view`,{})}))}destroy(){this.cleanupHandlers.forEach(e=>e()),this.cleanupHandlers=[]}},JL=(e,t,n)=>Math.max(t,Math.min(n,e)),YL=(e,t)=>{if(e===``)return``;let n=parseInt(e,10);return Number.isNaN(n)?``:JL(n,+!!t,t?12:23).toString().padStart(2,`0`)},XL=e=>{if(e===``)return``;let t=parseInt(e,10);return Number.isNaN(t)?``:JL(t,0,59).toString().padStart(2,`0`)},ZL=class{core;emitter;cleanupHandlers=[];constructor(e,t){this.core=e,this.emitter=t}handleHourEvents(){let e=this.core.getHour();if(!e)return;let t=()=>{if(this.core.isDestroyed)return;e.classList.add(`active`);let t=this.core.getMinutes();t?.classList.remove(`active`),this.emitter.emit(`select:hour`,{hour:e.value});let n=this.core.getActiveTypeMode();this.emitter.emit(`update`,{hour:e.value,minutes:t?.value,type:n?.textContent||void 0})};e.addEventListener(`click`,t),this.cleanupHandlers.push(()=>e.removeEventListener(`click`,t));let n=e.value,r=()=>{if(this.core.isDestroyed||e.hasAttribute(`readonly`))return;let t=this.core.options.clock.type===`12h`,r=YL(e.value,t);if(e.value=r,e.setAttribute(`aria-valuenow`,r),e.value!==n){n=e.value,this.emitter.emit(`animation:clock`,{}),this.emitter.emit(`select:hour`,{hour:e.value});let t=this.core.getMinutes(),r=this.core.getActiveTypeMode();this.emitter.emit(`update`,{hour:e.value,minutes:t?.value,type:r?.textContent||void 0})}};e.addEventListener(`blur`,r),this.cleanupHandlers.push(()=>e.removeEventListener(`blur`,r))}handleMinutesEvents(){let e=this.core.getMinutes();if(!e)return;let t=()=>{if(this.core.isDestroyed)return;e.classList.add(`active`);let t=this.core.getHour();t?.classList.remove(`active`),this.emitter.emit(`select:minute`,{minutes:e.value});let n=this.core.getActiveTypeMode();this.emitter.emit(`update`,{hour:t?.value,minutes:e.value,type:n?.textContent||void 0})};e.addEventListener(`click`,t),this.cleanupHandlers.push(()=>e.removeEventListener(`click`,t));let n=e.value,r=()=>{if(this.core.isDestroyed||e.hasAttribute(`readonly`))return;let t=XL(e.value);if(e.value=t,e.setAttribute(`aria-valuenow`,t),e.value!==n){n=e.value,this.emitter.emit(`animation:clock`,{}),this.emitter.emit(`select:minute`,{minutes:e.value});let t=this.core.getHour(),r=this.core.getActiveTypeMode();this.emitter.emit(`update`,{hour:t?.value,minutes:e.value,type:r?.textContent||void 0})}};e.addEventListener(`blur`,r),this.cleanupHandlers.push(()=>e.removeEventListener(`blur`,r))}destroy(){this.cleanupHandlers.forEach(e=>e()),this.cleanupHandlers=[]}},QL=class{core;emitter;cleanupHandlers=[];constructor(e,t){this.core=e,this.emitter=t}handleOpenOnEnterFocus(){let e=this.core.getInput();if(!e)return;let t=e=>{e.key===`Enter`&&!this.core.isDestroyed&&!this.core.isOpen&&this.emitter.emit(`show`,{})};e.addEventListener(`keydown`,t),this.cleanupHandlers.push(()=>e.removeEventListener(`keydown`,t))}handleEscClick(){if(ZI()===!1)return;let e=e=>{this.core.isDestroyed||this.core.isOpen&&e.key===`Escape`&&this.emitter.emit(`cancel`,{})};document.addEventListener(`keydown`,e),this.cleanupHandlers.push(()=>document.removeEventListener(`keydown`,e))}handleKeyboardInput(){let e=this.core.getHour(),t=this.core.getMinutes(),n=[`ArrowUp`,`ArrowDown`,`Home`,`End`,`PageUp`,`PageDown`];if(e){let t=t=>{if(this.core.isDestroyed||!n.includes(t.key))return;t.preventDefault();let r=parseInt(e.value)||0,i=parseInt(e.getAttribute(`max`)||`23`),a=+(this.core.options.clock.type===`12h`);e.value=this.computeSpinValue(t.key,r,a,i,3).toString().padStart(2,`0`),e.setAttribute(`aria-valuenow`,e.value),e.setAttribute(`aria-valuetext`,e.value),VL(this.core.getModalElement(),`${this.core.options.labels.announceHour??`Hour`}: ${e.value}`),this.emitter.emit(`animation:clock`,{}),this.emitter.emit(`select:hour`,{hour:e.value});let o=this.core.getMinutes(),s=this.core.getActiveTypeMode();this.emitter.emit(`update`,{hour:e.value,minutes:o?.value,type:s?.textContent||void 0})};e.addEventListener(`keydown`,t),this.cleanupHandlers.push(()=>e.removeEventListener(`keydown`,t))}if(t){let e=e=>{if(this.core.isDestroyed||!n.includes(e.key))return;e.preventDefault();let r=parseInt(t.value)||0;t.value=this.computeSpinValue(e.key,r,0,59,5).toString().padStart(2,`0`),t.setAttribute(`aria-valuenow`,t.value),t.setAttribute(`aria-valuetext`,t.value),VL(this.core.getModalElement(),`${this.core.options.labels.announceMinute??`Minutes`}: ${t.value}`),this.emitter.emit(`animation:clock`,{}),this.emitter.emit(`select:minute`,{minutes:t.value});let i=this.core.getHour(),a=this.core.getActiveTypeMode();this.emitter.emit(`update`,{hour:i?.value,minutes:t.value,type:a?.textContent||void 0})};t.addEventListener(`keydown`,e),this.cleanupHandlers.push(()=>t.removeEventListener(`keydown`,e))}}computeSpinValue(e,t,n,r,i){switch(e){case`ArrowUp`:return t>=r?n:t+1;case`ArrowDown`:return t<=n?r:t-1;case`Home`:return n;case`End`:return r;case`PageUp`:return Math.min(r,t+i);case`PageDown`:return Math.max(n,t-i);default:return t}}focusTrapHandler(){if(ZI()===!1)return;let e=this.core.getWrapper();if(!e)return;let t=t=>{if(this.core.isDestroyed||t.key!==`Tab`)return;let n=e.querySelectorAll(`button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])`),r=[];if(n.forEach(e=>{e.getAttribute(`aria-disabled`)!==`true`&&(e.hasAttribute(`disabled`)||e.hidden||e.getAttribute(`aria-hidden`)!==`true`&&(e.offsetParent===null&&e.getClientRects().length===0||r.push(e)))}),r.length===0)return;let i=r[0],a=r[r.length-1];t.shiftKey&&document.activeElement===i?(a?.focus(),t.preventDefault()):!t.shiftKey&&document.activeElement===a&&(i?.focus(),t.preventDefault())};e.addEventListener(`keydown`,t),this.cleanupHandlers.push(()=>e.removeEventListener(`keydown`,t))}destroy(){this.cleanupHandlers.forEach(e=>e()),this.cleanupHandlers=[]}},$L=class{core;emitter;cleanupHandlers=[];constructor(e,t){this.core=e,this.emitter=t}handleBackdropClick(){let e=this.core.getModalElement();if(!e)return;let t=t=>{this.core.isDestroyed||t.target===e&&this.emitter.emit(`cancel`,{})};e.addEventListener(`click`,t),this.cleanupHandlers.push(()=>e.removeEventListener(`click`,t))}handleMoveHand(){if(ZI()===!1)return;let e=e=>{this.core.isDestroyed||e.preventDefault()};document.addEventListener(`mousedown`,e,!1),document.addEventListener(`touchstart`,e,{passive:!1}),this.cleanupHandlers.push(()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`touchstart`,e)})}destroy(){this.cleanupHandlers.forEach(e=>e()),this.cleanupHandlers=[]}},eR=class{buttonHandlers;inputHandlers;keyboardHandlers;modalHandlers;constructor(e,t){this.buttonHandlers=new qL(e,t),this.inputHandlers=new ZL(e,t),this.keyboardHandlers=new QL(e,t),this.modalHandlers=new $L(e,t)}handleOpenOnClick(){this.buttonHandlers.handleOpenOnClick()}handleOpenOnEnterFocus(){this.keyboardHandlers.handleOpenOnEnterFocus()}handleCancelButton(){this.buttonHandlers.handleCancelButton()}handleOkButton(){this.buttonHandlers.handleOkButton()}handleBackdropClick(){this.modalHandlers.handleBackdropClick()}handleEscClick(){this.keyboardHandlers.handleEscClick()}handleAmClick(){this.buttonHandlers.handleAmClick()}handlePmClick(){this.buttonHandlers.handlePmClick()}handleHourEvents(){this.inputHandlers.handleHourEvents()}handleMinutesEvents(){this.inputHandlers.handleMinutesEvents()}handleKeyboardInput(){this.keyboardHandlers.handleKeyboardInput()}focusTrapHandler(){this.keyboardHandlers.focusTrapHandler()}handleMoveHand(){this.modalHandlers.handleMoveHand()}handleSwitchViewButton(){this.buttonHandlers.handleSwitchViewButton()}destroy(){this.buttonHandlers.destroy(),this.inputHandlers.destroy(),this.keyboardHandlers.destroy(),this.modalHandlers.destroy()}},tR=class{emitter;getClockSystem;setHoursToClock;setMinutesToClock;updateAmPm;convertDisabledTime;constructor(e,t,n,r,i,a){this.emitter=e,this.getClockSystem=t,this.setHoursToClock=n,this.setMinutesToClock=r,this.updateAmPm=i,this.convertDisabledTime=a}setup(){this.emitter.on(`select:hour`,({hour:e})=>{this.emitter.emit(`animation:clock`,{}),this.setHoursToClock(e||null)}),this.emitter.on(`select:minute`,({minutes:e})=>{this.emitter.emit(`animation:clock`,{}),this.setMinutesToClock(e||null)}),this.emitter.on(`select:am`,()=>{this.updateAmPm()}),this.emitter.on(`select:pm`,()=>{this.updateAmPm()}),this.emitter.on(`animation:start`,()=>{this.getClockSystem()?.blockInteractions()}),this.emitter.on(`animation:end`,()=>{this.getClockSystem()?.unblockInteractions()}),this.emitter.on(`range:switch`,e=>{this.refreshDisabledTimeForRange(e.disabledTime)})}refreshDisabledTimeForRange(e){let t=this.getClockSystem();if(!t)return;let n=this.convertDisabledTime(),r=n;if(e){let t=[...n?.hours||[],...e.hours||[]],i=[...n?.minutes||[],...e.minutes||[]];r={...n,hours:t.length>0?t:void 0,minutes:i.length>0?i:void 0,rangeFromType:e.fromType,rangeFromHour:e.fromHour}}t.updateDisabledTime(r)}},nR=/^(1[0-2]|[1-9]):([0-5][0-9])\s*(AM|PM)$/i,rR=/^([0-1]?[0-9]|2[0-3]):([0-5][0-9])$/,iR=class{static angleToIndex(e,t,n){let r=Math.round(e/30)%12;if(t===`24h`)if(n){let e=r+12;return e===12?0:e}else return r===0?12:r;return r===0?12:r}static indexToValue(e,t){if(t===`24h`)return e.toString().padStart(2,`0`);let n=e;return n===0&&(n=12),n>12&&(n-=12),n.toString().padStart(2,`0`)}static indexToAngle(e,t){return t===`24h`?e>=12?(e-12)%12*30:e%12*30:(e===0?12:e)%12*30}static isDisabled(e,t,n){return n?n.isInterval&&n.intervals&&n.clockType?this.isDisabledByInterval(e,t,n):n.rangeFromType!==void 0&&n.rangeFromHour!==void 0?this.isDisabledForRange12h(e,t,n):n.hours?n.hours.some(t=>String(t)===e||Number(t)===Number(e)||t===e):!1:!1}static isDisabledForRange12h(e,t,n){let r=n.rangeFromType,i=n.rangeFromHour,a=parseInt(e,10);return r===null||i===void 0?!1:t===`AM`&&r===`PM`?!0:t===`AM`&&r===`AM`?i===12?!1:a===12?!0:a<i:t===`PM`&&r===`AM`?!1:t===`PM`&&r===`PM`?i===12?!1:a===12?!0:a<i:!1}static isDisabledByInterval(e,t,n){if(!n.intervals)return!1;for(let r=0;r<60;r++){let i=r.toString().padStart(2,`0`);if(!this.isTimeInIntervals(e,i,t,n.intervals,n.clockType))return!1}return!0}static isTimeInIntervals(e,t,n,r,i){let a=PI(i===`12h`?`${e}:${t} ${n}`:`${e}:${t}`,i);for(let e of r){let[t,n]=e.split(`-`).map(e=>e.trim()),r=PI(t,i),o=PI(n,i);if(a>=r&&a<=o)return!0}return!1}static findNearestValid(e,t,n,r){let i=t===`24h`?23:12;for(let a=0;a<=i;a++){let o=a===0?[e]:[e+a,e-a];for(let e of o){let a=e;a<0&&(a+=i+1),a>i&&(a%=i+1);let o=this.indexToValue(a,t);if(!this.isDisabled(o,n,r))return a}}return e}},aR=class{static angleToIndex(e){return Math.round(e/6)%60}static indexToValue(e){return e.toString().padStart(2,`0`)}static indexToAngle(e){return e%60*6}static isDisabled(e,t,n,r,i){return r?r.isInterval&&r.intervals?this.isDisabledByInterval(e,t,n,r,i):r.rangeFromType!==void 0&&r.rangeFromHour!==void 0?this.isDisabledForRange12h(e,t,n,r):r.rangeFromHour!==void 0&&parseInt(t,10)!==r.rangeFromHour?!1:r.minutes?r.minutes.some(t=>String(t)===e||Number(t)===Number(e)||t===e):!1:!1}static isDisabledForRange12h(e,t,n,r){let i=r.rangeFromType,a=r.rangeFromHour,o=parseInt(t,10),s=parseInt(e,10);if(i===null||a===void 0)return!1;let c=r.minutes||[],l=c.length>0?parseInt(c[c.length-1],10)+1:0;return n===`AM`&&i===`PM`?!0:n===`PM`&&i===`AM`?!1:o===a||o===12&&a===12||n===i&&o===a?s<l:!1}static isDisabledByInterval(e,t,n,r,i){if(!r.intervals)return!1;let a=PI(i===`12h`?`${t}:${e} ${n}`:`${t}:${e}`,i);for(let e of r.intervals){let[t,n]=e.split(`-`).map(e=>e.trim()),r=PI(t,i),o=PI(n,i);if(a>=r&&a<=o)return!0}return!1}static findNearestValid(e,t,n,r,i){for(let a=0;a<60;a++){let o=a===0?[e]:[e+a,e-a];for(let e of o){let a=e;a<0&&(a+=60),a>=60&&(a%=60);let o=this.indexToValue(a);if(!this.isDisabled(o,t,n,r,i))return a}}return e}},oR=class{static normalizeAngle(e){let t=e%360;return t<0&&(t+=360),t}static calculateRawAngle(e,t){let n=e.x-t.x,r=e.y-t.y,i=Math.atan2(r,n)*180/Math.PI+90;return this.normalizeAngle(i)}static snapToIncrement(e,t){let n=Math.round(e/t)*t;return this.normalizeAngle(n)}static calculateDistance(e,t){let n=e.x-t.x,r=e.y-t.y;return Math.sqrt(n*n+r*r)}static isInnerCircle(e,t){return e<t*.75}static calculateShortestPath(e,t){let n=this.normalizeAngle(e),r=this.normalizeAngle(t)-n,i=r>=0?r:r+360,a=r<=0?r:r-360;return e+(Math.abs(i)<Math.abs(a)?i:a)}},sR=class{config;currentAngle=0;tipsCache=new Map;cachedDimensions=new Map;constructor(e){this.config=e}getCachedDimensions(e){let t=this.cachedDimensions.get(e);if(!t){let n=(e.offsetWidth-32)/2;t={width:n,height:(e.offsetHeight-32)/2,radius:n-9},this.cachedDimensions.set(e,t)}return t}setHandAngle(e){let t=oR.calculateShortestPath(this.currentAngle,e);Math.abs(this.currentAngle-t)<.01||(this.currentAngle=t,this.config.clockHand.style.transform=`rotateZ(${t}deg)`)}animateToAngle(e){let t=oR.calculateShortestPath(this.currentAngle,e);if(this.currentAngle=t,GL()){this.config.clockHand.style.transform=`rotateZ(${t}deg)`;return}this.config.tipsWrapper.classList.add(`tp-ui-tips-animation`),this.config.clockHand.style.transform=`rotateZ(${t}deg)`,setTimeout(()=>{this.config.tipsWrapper.classList.remove(`tp-ui-tips-animation`)},401)}setActiveValue(e){let t=[this.config.tipsWrapper];this.config.tipsWrapperFor24h&&t.push(this.config.tipsWrapperFor24h),t.forEach(t=>{t.querySelectorAll(`.tp-ui-value-tips, .tp-ui-value-tips-24h`).forEach(t=>{let n=t;n.textContent===e||Number(n.textContent)===Number(e)?n.classList.add(`active`):n.classList.remove(`active`)})})}renderTips(e,t,n,r,i,a=!0,o,s=``,c=`12`){if(ZI()===!1)return;let l=o||this.config.tipsWrapper;a&&(l.innerHTML=``,this.tipsCache.clear());let{width:u,height:d,radius:f}=this.getCachedDimensions(l),p=document.createDocumentFragment(),m=`${t}-${this.config.theme||`default`}`;e.forEach((a,o)=>{let l=`${m}-${a}`,h=this.tipsCache.get(l);h||(h=this.createTip(a,t,i),this.tipsCache.set(l,h));let{wrapper:g,tip:_}=h;this.updateTipState(g,_,a,n,r,i,s,c);let v=o*(360/e.length)*(Math.PI/180);g.style.left=`${u+Math.sin(v)*f}px`,g.style.bottom=`${d+Math.cos(v)*f}px`,p.appendChild(g)}),l.appendChild(p)}createTip(e,t,n){if(ZI()===!1){let e={};return{wrapper:e,tip:e}}let r=document.createElement(`span`),i=document.createElement(`span`);i.textContent=e,i.tabIndex=-1;let a=n===`24h`&&t.includes(`24`)?`tp-ui-value-tips-24h`:`tp-ui-value-tips`;return i.classList.add(a),r.classList.add(t),r.appendChild(i),{wrapper:r,tip:i}}updateTipState(e,t,n,r,i,a,o,s){e.classList.remove(`tp-ui-tips-disabled`),t.classList.remove(`tp-ui-tips-disabled`),t.tabIndex=-1,this.checkIfDisabled(n,r,i,a,o,s)&&(e.classList.add(`tp-ui-tips-disabled`),t.classList.add(`tp-ui-tips-disabled`))}checkIfDisabled(e,t,n,r,i,a){return n?t===`hours`?iR.isDisabled(e,i,n):t===`minutes`?aR.isDisabled(e,a,i,n,r):!1:!1}setCircleSize(e){e?this.config.circle.classList.remove(`small-circle`):this.config.circle.classList.add(`small-circle`)}setCircle24hMode(e){e?(this.config.circle.classList.add(`tp-ui-circle-hand-24h`),this.config.clockHand.classList.add(`tp-ui-clock-hand-24h`)):(this.config.circle.classList.remove(`tp-ui-circle-hand-24h`),this.config.clockHand.classList.remove(`tp-ui-clock-hand-24h`))}destroy(){this.tipsCache.clear(),this.cachedDimensions.clear(),this.config.tipsWrapper.innerHTML=``}},cR=class{static processPointerInput(e){let t=oR.calculateRawAngle(e.pointerPosition,e.clockCenter);return e.mode===`hours`?this.processHours(t,e):this.processMinutes(t,e)}static processHours(e,t){let n=t.smoothHourSnap??!0,r;if(n)r=e;else{let n=t.incrementHours*30;r=oR.snapToIncrement(e,n)}let i=oR.calculateDistance(t.pointerPosition,t.clockCenter),a=t.clockType===`24h`&&oR.isInnerCircle(i,t.clockRadius),o=iR.angleToIndex(r,t.clockType,a),s=iR.indexToValue(o,t.clockType),c=iR.isDisabled(s,t.amPm,t.disabledTime);c&&(o=iR.findNearestValid(o,t.clockType,t.amPm,t.disabledTime));let l=iR.indexToValue(o,t.clockType),u;return u=n?e:iR.indexToAngle(o,t.clockType),{angle:u,value:l,index:o,isValid:!c,isInnerCircle:t.clockType===`24h`?a:void 0}}static processMinutes(e,t){let n=t.incrementMinutes*6,r=oR.snapToIncrement(e,n),i=aR.angleToIndex(r),a=aR.indexToValue(i),o=t.currentHour||`00`,s=aR.isDisabled(a,o,t.amPm,t.disabledTime,t.clockType);s&&(i=aR.findNearestValid(i,o,t.amPm,t.disabledTime,t.clockType));let c=aR.indexToValue(i);return{angle:aR.indexToAngle(i),value:c,index:i,isValid:!s}}static valueToAngle(e,t,n){let r=parseInt(e,10);return t===`hours`?iR.indexToAngle(r,n):aR.indexToAngle(r)}},lR=class{state;renderer;clockType;disabledTime;incrementHours;incrementMinutes;smoothHourSnap;isDragging=!1;callbacks;lastProcessedX=null;lastProcessedY=null;constructor(e,t,n,r,i=1,a=1,o=!0,s={}){this.renderer=e,this.state={...t},this.clockType=n,this.disabledTime=r,this.incrementHours=i,this.incrementMinutes=a,this.smoothHourSnap=o,this.callbacks=s}handlePointerMove(e,t,n){if(this.isDragging=!0,this.lastProcessedX===e.x&&this.lastProcessedY===e.y)return;this.lastProcessedX=e.x,this.lastProcessedY=e.y;let r={pointerPosition:e,clockCenter:t,clockRadius:n,mode:this.state.mode,clockType:this.clockType,amPm:this.state.amPm,disabledTime:this.disabledTime,incrementHours:this.incrementHours,incrementMinutes:this.incrementMinutes,smoothHourSnap:this.smoothHourSnap,currentHour:this.state.hour},i=cR.processPointerInput(r);if(i.isValid){if(this.state.mode===`hours`){let e=this.state.hour;this.state.hour=i.value,this.state.hourAngle=i.angle,this.clockType===`24h`&&i.isInnerCircle!==void 0&&(this.renderer.setCircleSize(!0),this.renderer.setCircle24hMode(i.isInnerCircle)),this.callbacks.onHourChange&&e!==i.value&&this.callbacks.onHourChange(i.value)}else{let e=this.state.minute;this.state.minute=i.value,this.state.minuteAngle=i.angle,this.renderer.setCircleSize(!0),this.renderer.setCircle24hMode(!1),this.callbacks.onMinuteChange&&e!==i.value&&this.callbacks.onMinuteChange(i.value)}this.renderer.setHandAngle(i.angle),this.renderer.setActiveValue(i.value)}}handlePointerUp(){this.isDragging=!1,this.lastProcessedX=null,this.lastProcessedY=null}snapToNearestHour(){if(this.state.mode!==`hours`)return;let e=cR.valueToAngle(this.state.hour,`hours`,this.clockType);this.state.hourAngle=e,this.renderer.animateToAngle(e)}switchMode(e){this.state.mode=e;let t=e===`hours`?this.state.hourAngle:this.state.minuteAngle,n=e===`hours`?this.state.hour:this.state.minute;if(e===`hours`&&this.clockType===`24h`){let e=parseInt(n,10),t=e===0||e>=13;this.renderer.setCircleSize(!0),this.renderer.setCircle24hMode(t)}else this.renderer.setCircleSize(!0),this.renderer.setCircle24hMode(!1);this.renderer.setHandAngle(t),this.renderer.setActiveValue(n)}setValue(e,t){let n=cR.valueToAngle(t,e,this.clockType);if(e===`hours`)if(this.state.hour=t,this.state.hourAngle=n,this.clockType===`24h`){let e=parseInt(t,10),n=e===0||e>=13;this.renderer.setCircleSize(!0),this.renderer.setCircle24hMode(n)}else this.renderer.setCircle24hMode(!1);else this.state.minute=t,this.state.minuteAngle=n,this.renderer.setCircleSize(!0),this.renderer.setCircle24hMode(!1);this.state.mode===e&&(this.renderer.setHandAngle(n),this.renderer.setActiveValue(t))}setAmPm(e){this.state.amPm=e}getState(){return{...this.state}}getHour(){return this.state.hour}getMinute(){return this.state.minute}getAmPm(){return this.state.amPm}updateDisabledTime(e){this.disabledTime=e}destroy(){this.renderer.destroy()}},uR=class{controller;clockFace;isActive=!1;isBlocked=!1;config;cachedRect=null;cachedCenter=null;cachedRadius=null;rafId=null;constructor(e,t,n={}){this.controller=e,this.clockFace=t,this.config=n}attach(){this.clockFace.addEventListener(`mousedown`,this.handlePointerDown),this.clockFace.addEventListener(`touchstart`,this.handlePointerDown,{passive:!1})}detach(){this.clockFace.removeEventListener(`mousedown`,this.handlePointerDown),this.clockFace.removeEventListener(`touchstart`,this.handlePointerDown),this.removeGlobalListeners()}block(){this.isBlocked=!0}unblock(){this.isBlocked=!1}handlePointerDown=e=>{if(XI()||this.isBlocked)return;let t=e.target;t&&t.classList&&t.classList.contains(`tp-ui-tips-disabled`)||(e.preventDefault(),this.isActive=!0,this.cachedRect=this.clockFace.getBoundingClientRect(),this.cachedCenter=this.getClockCenter(),this.cachedRadius=this.getClockRadius(),this.processPointerEvent(e),document.addEventListener(`mousemove`,this.handlePointerMove),document.addEventListener(`touchmove`,this.handlePointerMove,{passive:!1}),document.addEventListener(`mouseup`,this.handlePointerUp),document.addEventListener(`touchend`,this.handlePointerUp))};handlePointerMove=e=>{if(!this.isActive||this.isBlocked)return;let t=this.getTargetElement(e);t&&t.classList&&t.classList.contains(`tp-ui-tips-disabled`)||(e.preventDefault(),this.rafId===null&&(this.rafId=requestAnimationFrame(()=>{this.rafId=null,this.processPointerEvent(e)})))};handlePointerUp=()=>{if(!this.isActive)return;this.rafId!==null&&(cancelAnimationFrame(this.rafId),this.rafId=null),this.isActive=!1,this.cachedRect=null,this.cachedCenter=null,this.cachedRadius=null,this.controller.handlePointerUp();let{autoSwitchToMinutes:e,isMobileView:t,smoothHourSnap:n,hourElement:r,minutesElement:i}=this.config;n&&r?.classList.contains(`active`)&&this.controller.snapToNearestHour(),this.removeGlobalListeners(),e&&r?.classList.contains(`active`)&&!t?(r.classList.remove(`active`),i?.classList.add(`active`),i?.click(),i?.focus(),r.blur()):i?.classList.contains(`active`)&&this.config.onMinuteCommit&&this.config.onMinuteCommit()};processPointerEvent(e){let t=this.getPointerPosition(e),n=this.cachedCenter||this.getClockCenter(),r=this.cachedRadius||this.getClockRadius();this.controller.handlePointerMove(t,n,r)}getPointerPosition(e){let t=this.cachedRect||this.clockFace.getBoundingClientRect();if(`touches`in e){let n=e.touches[0]||e.changedTouches[0];return{x:n.clientX-t.left,y:n.clientY-t.top}}else return{x:e.clientX-t.left,y:e.clientY-t.top}}getTargetElement(e){if(`touches`in e){let t=e.touches[0]||e.changedTouches[0];if(t&&!XI())return document.elementFromPoint(t.clientX,t.clientY)}return e.target}getClockCenter(){let e=this.clockFace.offsetWidth,t=this.clockFace.offsetHeight;return{x:e/2,y:t/2}}getClockRadius(){return this.clockFace.offsetWidth/2}removeGlobalListeners(){ZI()!==!1&&(document.removeEventListener(`mousemove`,this.handlePointerMove),document.removeEventListener(`touchmove`,this.handlePointerMove),document.removeEventListener(`mouseup`,this.handlePointerUp),document.removeEventListener(`touchend`,this.handlePointerUp))}},dR=class{renderer;controller;dragHandlers;clockType;disabledTime;tipsWrapper;tipsWrapperFor24h;constructor(e){this.clockType=e.clockType,this.disabledTime=e.disabledTime,this.tipsWrapper=e.tipsWrapper,this.tipsWrapperFor24h=e.tipsWrapperFor24h;let t={clockFace:e.clockFace,tipsWrapper:e.tipsWrapper,tipsWrapperFor24h:e.tipsWrapperFor24h,clockHand:e.clockHand,circle:e.circle,theme:e.theme};this.renderer=new sR(t);let n={hour:e.initialHour,minute:e.initialMinute,amPm:e.initialAmPm,hourAngle:this.calculateInitialAngle(`hours`,e.initialHour),minuteAngle:this.calculateInitialAngle(`minutes`,e.initialMinute),mode:`hours`},r={onHourChange:e.onHourChange,onMinuteChange:e.onMinuteChange};this.controller=new lR(this.renderer,n,e.clockType,e.disabledTime,e.incrementHours||1,e.incrementMinutes||1,e.smoothHourSnap??!0,r),this.dragHandlers=new uR(this.controller,e.clockFace,e.dragConfig||{})}initialize(){this.dragHandlers.attach(),this.switchToHours()}switchToHours(){this.controller.switchMode(`hours`),this.clockType===`24h`&&this.tipsWrapperFor24h&&this.tipsWrapperFor24h.classList.remove(`none`),this.renderHourTips();let e=this.controller.getState();this.renderer.setActiveValue(e.hour)}switchToMinutes(){this.controller.switchMode(`minutes`),this.tipsWrapperFor24h&&this.tipsWrapperFor24h.classList.add(`none`),this.renderMinuteTips();let e=this.controller.getState();this.renderer.setActiveValue(e.minute)}setHour(e){this.controller.setValue(`hours`,e)}setMinute(e){this.controller.setValue(`minutes`,e)}setAmPm(e){this.controller.setAmPm(e);let t=this.controller.getState();t.mode===`hours`?(this.renderHourTips(),this.renderer.setHandAngle(t.hourAngle),this.renderer.setActiveValue(t.hour)):(this.renderMinuteTips(),this.renderer.setHandAngle(t.minuteAngle),this.renderer.setActiveValue(t.minute))}getHour(){return this.controller.getHour()}getMinute(){return this.controller.getMinute()}getAmPm(){return this.controller.getAmPm()}updateDisabledTime(e){this.disabledTime=e,this.controller.updateDisabledTime(e),this.controller.getState().mode===`hours`?this.renderHourTips():this.renderMinuteTips()}renderHourTips(){let e=this.controller.getState().amPm;this.clockType===`24h`?(this.renderer.renderTips(mL,`tp-ui-hour-time-12`,`hours`,this.disabledTime,this.clockType,!0,this.tipsWrapper,e),this.tipsWrapperFor24h&&this.renderer.renderTips(pL,`tp-ui-hour-time-24`,`hours`,this.disabledTime,this.clockType,!0,this.tipsWrapperFor24h,e)):this.renderer.renderTips(mL,`tp-ui-hour-time-12`,`hours`,this.disabledTime,this.clockType,!0,void 0,e)}renderMinuteTips(){let e=this.controller.getState(),t=e.amPm,n=e.hour;this.renderer.renderTips(hL,`tp-ui-minutes-time`,`minutes`,this.disabledTime,this.clockType,!0,void 0,t,n)}calculateInitialAngle(e,t){let n=parseInt(t,10);return e===`hours`?n%12*30:n*6}destroy(){this.dragHandlers.detach(),this.controller.destroy()}blockInteractions(){this.dragHandlers.block()}unblockInteractions(){this.dragHandlers.unblock()}},fR=class{core;emitter;clockSystem=null;constructor(e,t){this.core=e,this.emitter=t}getClockSystem(){return this.clockSystem}initialize(){let e=this.core.getClockFace(),t=this.core.getClockHand(),n=this.core.getCircle();if(!e||!t||!n)return;let r=this.core.options.clock.type===`24h`,i=this.core.getTipsWrapper();if(!i)return;let a=this.core.getHour(),o=this.core.getMinutes(),s={clockFace:e,tipsWrapper:i,tipsWrapperFor24h:r&&this.core.getTipsWrapperFor24h()||void 0,clockHand:t,circle:n,clockType:this.core.options.clock.type||`12h`,disabledTime:this.convertDisabledTime(),initialHour:a?.value||`12`,initialMinute:o?.value||`00`,initialAmPm:this.getAmPmValue(),theme:this.core.options.ui.theme,incrementHours:this.core.options.clock.incrementHours||1,incrementMinutes:this.core.options.clock.incrementMinutes||1,smoothHourSnap:this.core.options.clock.smoothHourSnap??!0,timepicker:null,dragConfig:{autoSwitchToMinutes:this.core.options.clock.autoSwitchToMinutes,isMobileView:this.core.isMobileView,smoothHourSnap:this.core.options.clock.smoothHourSnap??!0,hourElement:a,minutesElement:o,onMinuteCommit:()=>{let e=this.core.getMinutes(),t=this.core.getHour(),n=this.core.getActiveTypeMode();this.emitter.emit(`range:minute:commit`,{hour:t?.value??`12`,minutes:e?.value??`00`,type:n?.textContent??void 0})}},onHourChange:e=>{let t=this.core.getHour();t&&(t.value=e,t.setAttribute(`aria-valuenow`,e)),VL(this.core.getModalElement(),`Hour: ${e}`);let n=this.core.getMinutes(),r=this.core.getActiveTypeMode();this.emitter.emit(`update`,{hour:e,minutes:n?.value,type:r?.textContent||void 0})},onMinuteChange:e=>{let t=this.core.getMinutes();t&&(t.value=e,t.setAttribute(`aria-valuenow`,e)),VL(this.core.getModalElement(),`Minutes: ${e}`);let n=this.core.getHour(),r=this.core.getActiveTypeMode();this.emitter.emit(`update`,{hour:n?.value,minutes:e,type:r?.textContent||void 0})}};this.clockSystem=new dR(s),this.clockSystem.initialize()}convertDisabledTime(){let e=this.core.disabledTime?.value;if(!e)return null;let t;return e.intervals&&(t=Array.isArray(e.intervals)?e.intervals:[e.intervals]),{hours:e.hours,minutes:e.minutes,isInterval:e.isInterval,intervals:t,clockType:e.clockType}}getAmPmValue(){if(this.core.options.clock.type===`24h`)return``;let e=this.core.getActiveTypeMode();if(e){let t=e.textContent?.trim();if(t===`AM`||t===`PM`)return t}let t=this.core.getAM();return this.core.options.range?.enabled===!0?t?.classList.contains(`active`)?`AM`:``:t?.classList.contains(`active`)?`AM`:`PM`}destroy(){this.clockSystem&&=(this.clockSystem.destroy(),null)}},pR=class{core;constructor(e){this.core=e}removeCircleClockClasses24h(){let e=this.core.getCircle(),t=this.core.getClockHand();e?.classList.remove(`tp-ui-circle-hand-24h`),t?.classList.remove(`tp-ui-clock-hand-24h`)}setCircleClockClasses24h(){let e=this.core.getCircle(),t=this.core.getClockHand();e&&e.classList.add(`tp-ui-circle-hand-24h`),t&&t.classList.add(`tp-ui-clock-hand-24h`)}setOnStartCSSClassesIfClockType24h(){if(this.core.options.clock.type===`24h`){let e=this.core.getInput();if(!e)return;let t;e.value.length>0&&(t=e.value.split(`:`)[0]),t&&(Number(t)>12||Number(t)===0)&&this.setCircleClockClasses24h()}}setBgColorToCircleWithMinutesTips(){let e=this.core.getMinutes(),t=this.core.getCircle();if(!(!e||!t)&&e.value&&hL.includes(e.value)){let e=getComputedStyle(t).getPropertyValue(`--timepicker-primary`).trim();e&&(t.style.backgroundColor=e),t.classList.remove(`small-circle`)}}removeBgColorToCirleWithMinutesTips(){let e=this.core.getMinutes(),t=this.core.getCircle();!e||!t||e.value&&hL.includes(e.value)||(t.style.backgroundColor=``,t.classList.add(`small-circle`))}setClassActiveToHourOnOpen(){this.core.options.ui.mobile||this.core.isMobileView||this.core.getHour()?.classList.add(jL)}toggleClassActiveToValueTips(e,t){if(e)return;let n=this.core.getAllValueTips();if(!n)return;let r=n.find(e=>Number(e.innerText)===Number(t));n.forEach(e=>{e.classList.remove(jL),e.setAttribute(`aria-selected`,`false`)}),r!==void 0&&(r.classList.add(jL),r.setAttribute(`aria-selected`,`true`))}},mR=class{getClockSystem;styleHandler;getAmPmValue;clockType;constructor(e,t,n,r){this.getClockSystem=e,this.styleHandler=t,this.getAmPmValue=n,this.clockType=r}setMinutesToClock(e){let t=this.getClockSystem();t&&(this.styleHandler.removeBgColorToCirleWithMinutesTips(),e&&t.setMinute(e),t.switchToMinutes())}setHoursToClock(e){let t=this.getClockSystem();t&&(e&&t.setHour(e),t.switchToHours())}setTransformToCircleWithSwitchesHour(e){let t=this.getClockSystem();!t||!e||t.setHour(e)}setTransformToCircleWithSwitchesMinutes(e){let t=this.getClockSystem();!t||!e||t.setMinute(e)}updateAmPm(){let e=this.getClockSystem();if(!e||this.clockType===`24h`)return;let t=this.getAmPmValue();t!==``&&e.setAmPm(t)}},hR=class{systemInitializer;styleHandler;timeHandler;eventHandler;constructor(e,t){this.systemInitializer=new fR(e,t),this.styleHandler=new pR(e);let n=e.options.clock.type||`12h`;this.timeHandler=new mR(()=>this.systemInitializer.getClockSystem(),this.styleHandler,()=>this.systemInitializer.getAmPmValue(),n),this.eventHandler=new tR(t,()=>this.systemInitializer.getClockSystem(),e=>this.timeHandler.setHoursToClock(e),e=>this.timeHandler.setMinutesToClock(e),()=>this.timeHandler.updateAmPm(),()=>this.systemInitializer.convertDisabledTime()),this.eventHandler.setup()}initializeClockSystem(){this.systemInitializer.initialize()}destroyClockSystem(){this.systemInitializer.destroy()}removeCircleClockClasses24h(){this.styleHandler.removeCircleClockClasses24h()}setCircleClockClasses24h(){this.styleHandler.setCircleClockClasses24h()}setOnStartCSSClassesIfClockType24h(){this.styleHandler.setOnStartCSSClassesIfClockType24h()}setBgColorToCircleWithMinutesTips=()=>{this.styleHandler.setBgColorToCircleWithMinutesTips()};removeBgColorToCirleWithMinutesTips=()=>{this.styleHandler.removeBgColorToCirleWithMinutesTips()};setClassActiveToHourOnOpen=()=>{this.styleHandler.setClassActiveToHourOnOpen()};setMinutesToClock=e=>{this.timeHandler.setMinutesToClock(e)};setHoursToClock=e=>{this.timeHandler.setHoursToClock(e)};setTransformToCircleWithSwitchesHour=e=>{this.timeHandler.setTransformToCircleWithSwitchesHour(e)};setTransformToCircleWithSwitchesMinutes=e=>{this.timeHandler.setTransformToCircleWithSwitchesMinutes(e)};updateAmPm=()=>{this.timeHandler.updateAmPm()};toggleClassActiveToValueTips=e=>{let t=this.systemInitializer.getClockSystem()!==null;this.styleHandler.toggleClassActiveToValueTips(t,e)};destroy(){this.destroyClockSystem()}},gR=class{core;emitter;cleanupHandlers=[];wasCleared=!1;constructor(e,t){this.core=e,this.emitter=t}init(){if(!this.core.options.ui.clearButton)return;let e=this.getClearButton();e&&(this.cleanupHandlers.push(WL(e,()=>{this.core.isDestroyed||this.handleClearClick()})),this.setupInternalEventListeners())}setupInternalEventListeners(){FI(this.emitter,this.cleanupHandlers,`update`,()=>{this.updateClearButtonState()}),FI(this.emitter,this.cleanupHandlers,`open`,()=>{this.updateClearButtonState()}),FI(this.emitter,this.cleanupHandlers,`select:hour`,()=>{this.updateClearButtonState(),this.reenableConfirmIfCleared()}),FI(this.emitter,this.cleanupHandlers,`select:minute`,()=>{this.updateClearButtonState(),this.reenableConfirmIfCleared()})}handleClearClick(){let e=this.core.getInput()?.value||null;this.clearTimeValue(),this.resetClockToNeutral(),this.disableConfirmButton(),this.wasCleared=!0,VL(this.core.getModalElement(),`Time cleared`),this.emitter.emit(`clear`,{previousValue:e}),this.emitter.emit(`update`,{hour:void 0,minutes:void 0,type:void 0});let{callbacks:t}=this.core.options;t.onClear&&t.onClear({previousValue:e})}clearTimeValue(){let e=this.core.options.clearBehavior?.clearInput!==!1,t=this.core.getInput();t&&e&&(t.value=``),this.core.setDegreesHours(null),this.core.setDegreesMinutes(null);let n=fL.getClearHandler(`range`);n&&n(this.core,this.emitter);let r=fL.getClearHandler(`timezone`);r&&r(this.core,this.emitter)}resetClockToNeutral(){let e=this.core.options.clock.type,t=e===`12h`?`PM`:void 0,n=this.core.getHour(),r=this.core.getMinutes();n&&(n.value=`12`,n.removeAttribute(`aria-valuenow`)),r&&(r.value=`00`,r.removeAttribute(`aria-valuenow`));let i=this.core.getClockHand();if(i){let e=i.style.transition;i.style.transition=`none`,i.style.transform=`rotateZ(0deg)`,i.offsetHeight,requestAnimationFrame(()=>{i.style.transition=e})}if(this.removeActiveStates(),n&&n.click(),e===`12h`&&t){let e=this.core.getAM(),t=this.core.getPM();e?.classList.remove(`active`),t?.classList.remove(`active`),e?.setAttribute(`aria-pressed`,`false`),t?.setAttribute(`aria-pressed`,`false`),t?.classList.add(`active`),t?.setAttribute(`aria-pressed`,`true`)}this.emitter.emit(`animation:clock`,{})}removeActiveStates(){this.core.getAllValueTips().forEach(e=>{e.classList.remove(`active`),e.removeAttribute(`aria-selected`)});let e=this.core.getHour(),t=this.core.getMinutes();e?.removeAttribute(`aria-valuenow`),t?.removeAttribute(`aria-valuenow`)}disableConfirmButton(){let e=this.core.getOkButton();e&&(e.classList.add(`disabled`),e.setAttribute(`aria-disabled`,`true`))}updateClearButtonState(){let e=this.getClearButton();if(!e)return;let t=this.core.getInput(),n=t?.value&&t.value.trim()!==``,r=this.core.getHour(),i=this.core.getMinutes(),a=this.core.getActiveTypeMode(),o=this.core.options.clock.type,s=r?.value||``,c=i?.value||``,l=a?.textContent||``,u=n||!(o===`12h`?s===`12`&&c===`00`&&l===`PM`:s===`12`&&c===`00`);e.classList.toggle(`disabled`,!u),e.setAttribute(`aria-disabled`,String(!u))}reenableConfirmIfCleared(){if(!this.wasCleared)return;let e=this.core.getOkButton();e&&(e.classList.remove(`disabled`),e.setAttribute(`aria-disabled`,`false`),this.wasCleared=!1)}getClearButton(){return this.core.getModalElement()?.querySelector(`.tp-ui-clear-btn`)||null}destroy(){this.cleanupHandlers.forEach(e=>e()),this.cleanupHandlers=[]}},_R=class{animation;modal;config;theme;validation;events;clock;clearButton;plugins=new Map;constructor(e,t){this.animation=new eL(e,t),this.modal=new EL(e,t),this.config=new LL(e,t),this.theme=new RL(e,t),this.validation=new KL(e,t),this.events=new eR(e,t),this.clock=new hR(e,t),this.clearButton=new gR(e,t),fL.getAll().forEach(n=>{let r=n.factory(e,t);this.plugins.set(n.name,r)})}getPlugin(e){return this.plugins.get(e)}destroy(){this.animation.destroy(),this.modal.destroy(),this.config.destroy(),this.theme.destroy(),this.validation.destroy(),this.events.destroy(),this.clock.destroy(),this.clearButton.destroy(),this.plugins.forEach(e=>e.destroy()),this.plugins.clear()}},vR=`is-rippling`,yR=`ripple-hold`,bR=null,xR=(e,t)=>{let n;return(...r)=>{clearTimeout(n),n=setTimeout(()=>{e(...r)},t)}},SR=[[`onOpen`,`open`],[`onCancel`,`cancel`],[`onConfirm`,`confirm`],[`onUpdate`,`update`],[`onSelectHour`,`select:hour`],[`onSelectMinute`,`select:minute`],[`onSelectAM`,`select:am`],[`onSelectPM`,`select:pm`],[`onError`,`error`],[`onTimezoneChange`,`timezone:change`],[`onRangeConfirm`,`range:confirm`],[`onRangeSwitch`,`range:switch`],[`onRangeValidation`,`range:validation`],[`onClear`,`clear`]],CR=[{needed:e=>e.ui.mode===`wheel`||e.ui.mode===`compact-wheel`,name:`wheel`,message:`WheelPlugin is not registered. Import and register it: PluginRegistry.register(WheelPlugin)`},{needed:e=>!!e.range?.enabled,name:`range`,message:`RangePlugin is not registered. Import and register it: PluginRegistry.register(RangePlugin)`},{needed:e=>!!e.timezone?.enabled,name:`timezone`,message:`TimezonePlugin is not registered. Import and register it: PluginRegistry.register(TimezonePlugin)`}],wR=class e{static EXPANDED_EXCLUDED=[`tp-ui-select-time`,`tp-ui-mobile-clock-wrapper`,`tp-ui-wrapper`];core;managers;emitter;eventsClickMobileHandler=()=>{};mutliEventsMoveHandler=()=>{};unmountTimeouts=[];constructor(e,t,n){this.core=e,this.managers=t,this.emitter=n}init(){if(!this.core.isDestroyed&&!this.core.isInitialized){try{this.managers.config.updateInputValueWithCurrentTimeOnStart(),this.managers.validation.checkDisabledValuesOnStart()}catch{this.core.setIsDestroyed(!0);return}this.managers.theme.setTimepickerClassToElement(),this.managers.theme.setInputClassToInputElement(),this.managers.theme.setDataOpenToInputIfDoesntExistInWrapper(),this.managers.theme.setClassTopOpenElement(),this.managers.config.getDisableTime(),this.core.options.ui.inline?.enabled||this.managers.events.handleOpenOnClick(),this.managers.events.handleOpenOnEnterFocus(),UI(this.core,this.emitter),this.core.setIsInitialized(!0)}}mount(){this.core.isDestroyed||this.core.isOpen||(this.core.isInitialized||this.init(),this.eventsBundle())}unmount(e){let t=xR((...e)=>{if(e.length>2)return;let[t]=e.filter(e=>typeof e==`boolean`),[n]=e.filter(e=>typeof e==`function`);this.core.setIsMobileView(!!this.core.options.ui.mobile);let r=this.core.getModalElement();t&&r&&this.core.getOkButton()?.click(),this.core.setIsTouchMouseMove(!1),this.core.setIsOpen(!1),this.removeEventListeners(),HI(this.core.options)&&this.managers.getPlugin(`wheel`)?.detachPopover?.(),r&&this.managers.animation.removeAnimationToClose(),this.core.getOpenElement().forEach(e=>e?.classList.remove(`disabled`));let i=setTimeout(()=>{this.managers.modal.unlockScroll()},$I.SCROLLBAR_RESTORE);this.unmountTimeouts.push(i);let a=setTimeout(()=>{let e=this.core.getInput();this.core.options.behavior.focusInputAfterClose&&e?.focus();let t=this.core.getModalElement();t&&t.remove(),this.core.setIsModalRemove(!0)},$I.MODAL_REMOVE);this.unmountTimeouts.push(a),n&&n()},this.core.options.behavior.delayHandler||$I.DEFAULT_DELAY);e?t(e):t()}destroy(e){if(this.core.isDestroyed)return;this.clearUnmountTimeouts();let{keepInputValue:t=!1,callback:n}=typeof e==`function`?{callback:e}:e||{},r=this.core.getInput(),i=t?r?.value:null;this.removeEventListeners(),this.core.getModalElement()?.remove(),this.core.getOpenElement()?.forEach(e=>{e&&e.classList.remove(`disabled`,`active`,`tp-ui-open-element`)}),r&&(r.classList.remove(`tp-ui-invalid-format`,`invalid-value`,`error`,`active`,`tp-ui-input`),r.removeAttribute(`data-open`),r.removeAttribute(`data-owner-id`),t&&i&&(r.value=i));let a=this.core.element;a&&(a.classList.remove(`error`,`active`,`disabled`),a.removeAttribute(`data-owner-id`),a.removeAttribute(`data-open`),this.core.options.ui.cssClass&&a.classList.remove(this.core.options.ui.cssClass)),a?.querySelectorAll(`.tp-ui-invalid-text`)?.forEach(e=>e.remove()),this.mutliEventsMoveHandler=()=>{},this.eventsClickMobileHandler=()=>{},this.core.reset(),this.managers.destroy(),this.emitter.clear(),this.managers.modal.unlockScroll(),n&&n()}eventsBundle(){if(this.core.isDestroyed||!this.core.isModalRemove)return;this.clearUnmountTimeouts(),this.core.setIsOpen(!0),this.core.setIsModalRemove(!1),this.setupValidation(),this.disableOpenElements(),this.setupModal(),this.applyExpandedState(),this.managers.modal.setFlexEndToFooterIfNoKeyboardIcon(),this.applyThemeDeferred(),this.managers.animation.setAnimationToOpen(),this.managers.config.getInputValueOnOpenAndSet();let e=BI(this.core.options)&&fL.has(`wheel`);WI(this.core,this.emitter),this.initClockOrWheel(e),this.initOptionalPlugins(e),this.bindEventHandlers(e),this.finalizeModal(e),HI(this.core.options)&&this.managers.getPlugin(`wheel`)?.attachPopover?.(),this.managers.modal.setShowClassToBackdrop()}setupValidation(){this.managers.validation.setErrorHandler(),this.managers.validation.removeErrorHandler()}disableOpenElements(){this.core.options.ui.inline?.enabled||(this.core.getOpenElement().forEach(e=>e?.classList.add(`disabled`)),HI(this.core.options)||this.core.getInput()?.blur())}setupModal(){this.managers.modal.setScrollbarOrNot(),this.managers.modal.setModalTemplate(),this.managers.modal.setNormalizeClass(),this.managers.modal.removeBackdrop()}applyExpandedState(){if(this.core.isMobileView){this.managers.config.updateClockFaceAccessibility(!0);return}let t=this.core.getModalElement();t&&(t.querySelector(`.tp-ui-mobile-clock-wrapper`)?.classList.add(`expanded`),t.querySelector(`.tp-ui-wrapper`)?.classList.add(`expanded`),t.querySelectorAll(`*`).forEach(t=>{e.EXPANDED_EXCLUDED.some(e=>t.classList.contains(e))||t.classList.add(`expanded`)}))}applyThemeDeferred(){let e=setTimeout(()=>{this.managers.theme.setTheme();let e=this.core.getWrapper();e&&this.core.options.ui.cssClass&&e.classList.add(this.core.options.ui.cssClass)},0);this.unmountTimeouts.push(e)}initClockOrWheel(e){if(e){let e=this.managers.getPlugin(`wheel`);e&&e.init()}else this.managers.clock.initializeClockSystem(),this.managers.clock.setOnStartCSSClassesIfClockType24h(),this.managers.clock.setClassActiveToHourOnOpen()}initOptionalPlugins(e){let t=this.managers.getPlugin(`timezone`);t&&t.init();let n=this.managers.getPlugin(`range`);n&&!e&&n.init()}bindEventHandlers(e){this.managers.events.handleCancelButton(),this.managers.events.handleOkButton(),this.managers.clearButton.init(),e||(this.managers.events.handleHourEvents(),this.managers.events.handleMinutesEvents()),this.managers.events.handleKeyboardInput(),this.core.options.ui.enableSwitchIcon&&!e&&this.managers.events.handleSwitchViewButton(),this.core.options.clock.type!==`24h`&&!VI(this.core.options)&&(this.managers.events.handleAmClick(),this.managers.events.handlePmClick()),this.core.options.behavior.focusTrap&&this.managers.events.focusTrapHandler(),this.core.options.ui.inline?.enabled||(this.managers.events.handleEscClick(),HI(this.core.options)||e&&this.core.options.wheel?.ignoreOutsideClick||this.managers.events.handleBackdropClick())}finalizeModal(e){let t=this.core.getModalElement();if(t&&zI(t),!e){let e=this.core.getClockFace();e&&typeof requestAnimationFrame<`u`&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{e?.classList.add(`scale-in`)})})}}clearUnmountTimeouts(){this.unmountTimeouts.forEach(clearTimeout),this.unmountTimeouts=[]}removeEventListeners(){ZI()!==!1&&(AL.split(` `).forEach(e=>{document.removeEventListener(e,this.mutliEventsMoveHandler,!1)}),document.removeEventListener(`mousedown`,this.eventsClickMobileHandler))}},TR=class{events=new Map;on(e,t){this.events.has(e)||this.events.set(e,new Set),this.events.get(e).add(t)}once(e,t){let n=r=>{t(r),this.events.get(e)?.delete(n)};n.__originalHandler=t,this.on(e,n)}off(e,t){if(!t){this.events.delete(e);return}let n=this.events.get(e);n&&n.forEach(e=>{(e===t||e.__originalHandler===t)&&n.delete(e)})}emit(e,t){let n=this.events.get(e);n&&[...n].forEach(e=>{e(t)})}clear(){this.events.clear()}hasListeners(e){return(this.events.get(e)?.size??0)>0}},ER={clock:{type:`12h`,incrementHours:1,incrementMinutes:1,autoSwitchToMinutes:!0,disabledTime:void 0,currentTime:void 0},ui:{mode:`clock`,theme:`basic`,animation:!0,backdrop:!0,mobile:!1,enableSwitchIcon:!1,editable:!1,enableScrollbar:!1,cssClass:void 0,appendModalSelector:``,iconTemplate:``,iconTemplateMobile:``,inline:void 0,clearButton:!1},labels:{am:`AM`,pm:`PM`,ok:`OK`,cancel:`Cancel`,time:`Select time`,mobileTime:`Enter Time`,mobileHour:`Hour`,mobileMinute:`Minute`,clear:`Clear`,hourLabel:`Hour`,minuteLabel:`Minute`,clockLabel:`Clock`,periodLabel:`Period`,timeLabel:`Time`,format24Label:`24-hour`,rangeSelectionLabel:`Range selection`,switchToKeyboardLabel:`Switch to keyboard input`,switchToClockLabel:`Switch to clock`,toggleLabel:`Toggle`,timezoneSelectorLabel:`Timezone`,announceHour:`Hour`,announceMinute:`Minutes`,announceAmSelected:`AM selected`,announcePmSelected:`PM selected`,invalidTimeFormat:`Invalid time format`},behavior:{focusInputAfterClose:!1,focusTrap:!0,delayHandler:300,id:void 0},callbacks:{onOpen:void 0,onCancel:void 0,onConfirm:void 0,onUpdate:void 0,onSelectHour:void 0,onSelectMinute:void 0,onSelectAM:void 0,onSelectPM:void 0,onError:void 0,onTimezoneChange:void 0,onRangeConfirm:void 0,onRangeSwitch:void 0,onRangeValidation:void 0,onClear:void 0},timezone:{enabled:!1,default:void 0,whitelist:void 0,label:`Timezone`},range:{enabled:!1,minDuration:void 0,maxDuration:void 0,fromLabel:`From`,toLabel:`To`},wheel:{placement:void 0,hideFooter:void 0,commitOnScroll:void 0,hideDisabled:void 0,ignoreOutsideClick:void 0},clearBehavior:{clearInput:!0}},DR=e=>e.replace(/[^0-9:APMapm\s]/g,``),OR=new Map,kR=class{core;managers;lifecycle;emitter;constructor(e,t){if(XI())throw Error(`TimepickerUI requires browser environment`);let n=this.resolveInputElement(e);if(!n)throw Error(`Input element not found`);let r=t?.behavior?.id,i=r||`tp-ui-${cL()}`,a=this.createWrapperElement(n),o=GI(t||{});if(o.ui.inline?.enabled&&typeof t?.behavior?.focusTrap>`u`&&(o.behavior.focusTrap=!1),o.ui.inline?.enabled){if(!o.ui.inline.containerId)throw Error(`inline.containerId is required when inline mode is enabled`);if(!XI()&&!document.getElementById(o.ui.inline.containerId))throw Error(`Container element with id "${o.ui.inline.containerId}" not found`)}this.emitter=new TR,this.core=new QI(a,o,i,r);let s=this.core.getInput();if(s){let e=DL(s,o.clock.type),t=Number(e.hour)*30,n=Number(e.minutes)*6;this.core.setDegreesHours(t),this.core.setDegreesMinutes(n)}this.managers=new _R(this.core,this.emitter),this.lifecycle=new wR(this.core,this.managers,this.emitter),this.managers.config.checkMobileOption(),this.managers.config.preventClockTypeByCurrentTime(),this.setupInternalEventListeners(),OR.set(this.core.instanceId,this)}setupInternalEventListeners(){this.emitter.on(`show`,()=>{this.core.isDestroyed||this.lifecycle.mount()}),this.emitter.on(`cancel`,()=>{this.core.isDestroyed||this.lifecycle.unmount()}),this.emitter.on(`confirm`,e=>{if(!this.core.isDestroyed){if(this.core.options.range?.enabled)return;let t=this.core.getInput();if(t&&e.hour&&e.minutes){let n=e.type?` ${e.type}`:``;t.value=`${e.hour}:${e.minutes}${n}`}e.autoCommit||this.lifecycle.unmount()}}),this.emitter.on(`range:confirm`,e=>{if(this.core.isDestroyed)return;let t=this.core.getInput();t&&(t.value=`${e.from} - ${e.to}`),this.lifecycle.unmount()})}create(){this.lifecycle.init(),this.core.options.ui.inline?.enabled&&this.lifecycle.mount()}open(e){this.lifecycle.mount(),e&&e()}close(e,t){this.lifecycle.unmount(e?t:void 0),!e&&t&&t()}destroy(e){OR.delete(this.core.instanceId),this.lifecycle.destroy(e)}update(e,t){this.core.isDestroyed||(this.core.updateOptions(e.options),this.managers.config.checkMobileOption(),this.managers.config.getDisableTime(),e.create&&this.create(),t&&t())}getValue(){if(this.core.isDestroyed)return{hour:``,minutes:``,type:void 0,time:``,degreesHours:null,degreesMinutes:null};let e=this.core.getModalElement(),t=this.core.getInput(),n=`12`,r=`00`,i=this.core.options.clock.type===`24h`?void 0:`AM`,a=null,o=null;if(e){let e=this.core.getHour(),t=this.core.getMinutes(),s=this.core.getActiveTypeMode();n=e?.value||`12`,r=t?.value||`00`,i=this.core.options.clock.type===`24h`?void 0:s?.textContent||`AM`,a=this.core.degreesHours,o=this.core.degreesMinutes}else if(t){let e=DL(t,this.core.options.clock.type);n=e.hour,r=e.minutes,i=e.type,a=Number(n)*30,o=Number(r)*6}let s=``;return s=this.core.options.clock.type===`24h`?`${n.padStart(2,`0`)}:${r.padStart(2,`0`)}`:`${n}:${r.padStart(2,`0`)} ${i}`,{hour:n,minutes:r,type:i,time:s,degreesHours:a,degreesMinutes:o}}setValue(e,t=!0){if(this.core.isDestroyed||!e||typeof e!=`string`)return;this.core.isInitialized||this.create();let n=DR(e.trim());try{let e=KI(this.core,n);if(qI(this.core,e),JI(this.core,e.typeValue),t){let e=this.core.getInput();e&&(e.value=n)}YI(this.core,this.managers,e)}catch{return}}getElement(){return this.core.element}get instanceId(){return this.core.instanceId}get options(){return this.core.options}get isInitialized(){return this.core.isInitialized}get isDestroyed(){return this.core.isDestroyed}get hour(){return this.core.getHour()}get minutes(){return this.core.getMinutes()}get okButton(){return this.core.getOkButton()}get cancelButton(){return this.core.getCancelButton()}get clockHand(){return this.core.getClockHand()}on(e,t){this.core.isDestroyed||this.emitter.on(e,t)}once(e,t){this.core.isDestroyed||this.emitter.once(e,t)}off(e,t){this.core.isDestroyed||this.emitter.off(e,t)}resolveInputElement(e){if(ZI()===!1)return null;let t=null;if(typeof e==`string`){if(t=document.querySelector(e),!t)return null}else if(e instanceof HTMLElement)t=e;else return null;return t.tagName===`INPUT`?t:t.querySelector(`input`)}createWrapperElement(e){if(ZI()===!1)return e;let t=e.parentElement;if(e.tagName===`INPUT`&&!t?.classList.contains(`tp-ui`)){let t=document.createElement(`div`);return t.className=`tp-ui`,e.parentNode?.insertBefore(t,e),t.appendChild(e),t}return t&&!t.classList.contains(`tp-ui`)&&t.classList.add(`tp-ui`),t||e}static getById(e){return OR.get(e)}static getAllInstances(){return Array.from(OR.values())}static isAvailable(e){return XI()?!1:typeof e==`string`?document.querySelector(e)!==null:e instanceof HTMLElement?document.contains(e):!1}static destroyAll(){Array.from(OR.values()).forEach(e=>e.destroy()),OR.clear()}},AR=kR,jR=AR})),NR=_({RangeManager:()=>JR,RangePlugin:()=>YR});function PR(e){let t=e.match(WR);return t?{hour:t[1],minutes:t[2],type:t[3].toUpperCase()}:null}function FR(e){let t=e.match(GR);return t?{hour:t[1],minutes:t[2]}:null}function IR(e,t){let n=parseInt(e.hour,10),r=parseInt(e.minutes,10);if(Number.isNaN(n)||Number.isNaN(r))return 0;if(t===`12h`&&e.type){let t=e.type.toUpperCase();t===`PM`&&n!==12&&(n+=12),t===`AM`&&n===12&&(n=0)}return n*60+r}function LR(e){if(!e||e===`--:--`)return null;let t=PR(e);if(t)return{hour:t.hour,minutes:t.minutes,type:t.type};let n=e.match(/^(\d{1,2}):(\d{2})\s*(AM|PM)$/i);if(n)return{hour:n[1],minutes:n[2],type:n[3].toUpperCase()};let r=FR(e);if(r)return{hour:r.hour,minutes:r.minutes};let i=e.match(/^(\d{1,2}):(\d{2})$/);return i?{hour:i[1],minutes:i[2]}:null}function RR(e){let t=e.minutes===`--`?`--`:e.minutes.padStart(2,`0`),n=`${e.hour}:${t}`;return e.type?`${n} ${e.type}`:n}function zR(e,t){return e?IR(e,t):0}function BR(e,t,n){if(!e||!t)return 0;let r=zR(e,n);return zR(t,n)-r}function VR(e,t){return e?t===`12h`?!!(e.hour&&e.minutes&&e.type):!!(e.hour&&e.minutes):!1}function HR(e){if(!e||!e.includes(` - `))return{from:null,to:null};let t=e.split(` - `).map(e=>e.trim());return t.length!==2||t[0]===`--:--`||t[1]===`--:--`?{from:null,to:null}:{from:LR(t[0]),to:LR(t[1])}}function UR(e,t,n,r){e.on(n,r),t.push(()=>e.off(n,r))}var WR,GR,KR,qR,JR,YR,XR=h((()=>{WR=/^(1[0-2]|[1-9]):([0-5][0-9])\s*(AM|PM)$/i,GR=/^([0-1]?[0-9]|2[0-3]):([0-5][0-9])$/,KR=class{activePart=`from`;fromValue=null;toValue=null;previewValue=null;clockType;minDuration;maxDuration;emitter;constructor(e,t,n,r){this.clockType=e,this.minDuration=t,this.maxDuration=n,this.emitter=r}getActivePart(){return this.activePart}getFromValue(){return this.fromValue}getToValue(){return this.toValue}getPreviewValue(){return this.previewValue}setFromValue(e){this.fromValue=e}setToValue(e){this.toValue=e}setPreviewValue(e){this.previewValue=e}isFromComplete(){return VR(this.fromValue,this.clockType)}isToComplete(){return VR(this.toValue,this.clockType)}canSwitchToEnd(){return this.isFromComplete()}canConfirm(){return!this.isFromComplete()||!this.isToComplete()?!1:this.getDuration()>0}setActivePart(e){if(e===`to`&&!this.canSwitchToEnd())return!1;let t=this.activePart!==e;return this.activePart=e,t&&(this.previewValue=null),t}resetActivePart(){this.activePart=`from`,this.previewValue=null}getCurrentValue(){return this.previewValue?this.previewValue:this.activePart===`from`?this.fromValue:this.toValue}getSavedValue(){return this.activePart===`from`?this.fromValue:this.toValue}commitPreview(){this.previewValue&&=(this.activePart===`from`?this.fromValue=this.previewValue:this.toValue=this.previewValue,null)}getDuration(){return BR(this.fromValue,this.toValue,this.clockType)}validate(){if(!this.fromValue||!this.toValue)return{valid:!0,duration:0};let e=this.getDuration(),t=!0;return this.minDuration!==void 0&&e<this.minDuration&&(t=!1),this.maxDuration!==void 0&&e>this.maxDuration&&(t=!1),this.emitter.emit(`range:validation`,{valid:t,duration:e,minDuration:this.minDuration,maxDuration:this.maxDuration}),{valid:t,duration:e}}getDisabledTimeForEndPart(){if(this.activePart===`from`||!this.fromValue||!this.isFromComplete())return null;let e=[],t=[],n=parseInt(this.fromValue.hour,10),r=parseInt(this.fromValue.minutes,10),i=this.fromValue.type;if(this.clockType===`24h`){for(let t=0;t<n;t++)e.push(t.toString().padStart(2,`0`));for(let e=0;e<r;e++)t.push(e.toString().padStart(2,`0`));return{hours:e,minutes:t,fromHour:n}}for(let e=0;e<r;e++)t.push(e.toString().padStart(2,`0`));return{hours:e,minutes:t,fromType:i,fromHour:n}}reset(){this.activePart=`from`,this.fromValue=null,this.toValue=null,this.previewValue=null}},qR=class{core;state;constructor(e,t){this.core=e,this.state=t}updateTabs(){let e=this.core.getModalElement();if(!e)return;let t=e.querySelector(`.tp-ui-range-tab.tp-ui-range-from`),n=e.querySelector(`.tp-ui-range-tab.tp-ui-range-to`),r=this.state.getActivePart()===`from`,i=this.state.isFromComplete();t?.classList.toggle(`active`,r),n?.classList.toggle(`active`,!r),n?.classList.toggle(`disabled`,!i),t?.setAttribute(`aria-selected`,String(r)),n?.setAttribute(`aria-selected`,String(!r)),n?.setAttribute(`aria-disabled`,String(!i)),t?.setAttribute(`tabindex`,r?`0`:`-1`),n?.setAttribute(`tabindex`,r||!i?`-1`:`0`)}updateTimeDisplay(){let e=this.core.getModalElement();if(!e)return;let t=e.querySelector(`.tp-ui-range-from-time`),n=e.querySelector(`.tp-ui-range-to-time`),r=this.state.getActivePart(),i=this.state.getPreviewValue(),a=this.state.getFromValue(),o=this.state.getToValue(),s=`--:--`;r===`from`&&i?s=RR(i):a&&(s=RR(a));let c=`--:--`;r===`to`&&i?c=RR(i):o&&(c=RR(o)),t&&(t.textContent=s),n&&(n.textContent=c)}updateOkButton(){let e=this.core.getOkButton();if(!e)return;let t=this.state.canConfirm();e.classList.toggle(`disabled`,!t),e.setAttribute(`aria-disabled`,String(!t))}updateInputValue(){let e=this.core.getInput();if(!e)return;let t=this.state.getFromValue(),n=this.state.getToValue();e.value=`${t?RR(t):`--:--`} - ${n?RR(n):`--:--`}`}syncClockToActivePart(){let e=this.state.getSavedValue(),t=this.core.getHour(),n=this.core.getMinutes();if(t&&(t.value=e?.hour??`12`),n&&(n.value=e?.minutes??`00`),this.core.options.clock.type===`12h`){let t=this.core.getAM(),n=this.core.getPM();e?.type===`AM`?(t?.classList.add(`active`),n?.classList.remove(`active`)):e?.type===`PM`?(n?.classList.add(`active`),t?.classList.remove(`active`)):(t?.classList.remove(`active`),n?.classList.remove(`active`))}n&&(n.blur(),n.classList.remove(`active`)),t&&t.click()}updateAll(){this.updateTabs(),this.updateTimeDisplay(),this.updateOkButton()}},JR=class{core;emitter;state;ui;cleanupHandlers=[];isSyncingAmPm=!1;constructor(e,t){this.core=e,this.emitter=t;let{range:n,clock:r}=e.options;this.state=new KR(r.type,n?.minDuration,n?.maxDuration,t),this.ui=new qR(e,this.state)}get isEnabled(){return this.core.options.range?.enabled===!0}init(){if(!this.isEnabled)return;let{from:e,to:t}=HR(this.core.getInput()?.value||``);this.state.setFromValue(e),this.state.setToValue(t),this.state.setActivePart(`from`),this.state.setPreviewValue(null),this.bindEvents(),this.ui.syncClockToActivePart(),this.emitAmPmSyncEvent(),this.ui.updateAll()}getActivePart(){return this.state.getActivePart()}setActivePart(e){this.isEnabled&&(this.state.setActivePart(e)&&this.emitter.emit(`range:switch`,{active:e,disabledTime:this.state.getDisabledTimeForEndPart()}),this.ui.syncClockToActivePart(),this.emitAmPmSyncEvent(),this.ui.updateAll())}getFromValue(){return this.state.getFromValue()}getToValue(){return this.state.getToValue()}getDisabledTimeForEndPart(){return this.isEnabled?this.state.getDisabledTimeForEndPart():null}getDuration(){return this.state.getDuration()}validateRange(){return this.isEnabled?this.state.validate():{valid:!0,duration:0}}canConfirm(){return this.isEnabled?this.state.canConfirm():!0}getFormattedRange(){let e=this.state.getFromValue(),t=this.state.getToValue();return!e||!t?null:{from:RR(e),to:RR(t)}}bindEvents(){let e=this.core.getModalElement();if(!e)return;let t=e.querySelector(`.tp-ui-range-tab.tp-ui-range-from`),n=e.querySelector(`.tp-ui-range-tab.tp-ui-range-to`);if(t){let e=()=>this.activatePart(`from`,t);t.addEventListener(`click`,e),this.cleanupHandlers.push(()=>t.removeEventListener(`click`,e))}if(n){let e=()=>this.activatePart(`to`,n);n.addEventListener(`click`,e),this.cleanupHandlers.push(()=>n.removeEventListener(`click`,e))}this.bindTabKeyboard(t,n),UR(this.emitter,this.cleanupHandlers,`update`,()=>this.handleUpdate()),UR(this.emitter,this.cleanupHandlers,`range:minute:commit`,e=>this.handleMinuteCommit(e)),UR(this.emitter,this.cleanupHandlers,`confirm`,()=>this.handleConfirm()),UR(this.emitter,this.cleanupHandlers,`select:am`,()=>this.handleAmPm()),UR(this.emitter,this.cleanupHandlers,`select:pm`,()=>this.handleAmPm()),UR(this.emitter,this.cleanupHandlers,`clear`,()=>this.handleClear())}isTabDisabled(e){return!e||e.getAttribute(`aria-disabled`)===`true`||e.classList.contains(`disabled`)}activatePart(e,t){this.isTabDisabled(t)||this.setActivePart(e)}bindTabKeyboard(e,t){let n=[e,t].filter(e=>e!==null);n.length!==0&&n.forEach((e,t)=>{let r=t===0?`from`:`to`,i=i=>{switch(i.key){case`ArrowRight`:case`ArrowLeft`:{i.preventDefault();let e=n[((i.key===`ArrowRight`?t+1:t-1)+n.length)%n.length];this.isTabDisabled(e)||e.focus();break}case`Home`:i.preventDefault(),n[0].focus();break;case`End`:i.preventDefault(),n[n.length-1].focus();break;case`Enter`:case` `:case`Spacebar`:i.preventDefault(),this.activatePart(r,e);break}};e.addEventListener(`keydown`,i),this.cleanupHandlers.push(()=>e.removeEventListener(`keydown`,i))})}handleClear(){this.isEnabled&&(this.state.setFromValue(null),this.state.setToValue(null),this.state.setPreviewValue(null),this.state.resetActivePart())}handleUpdate(){if(!this.isEnabled)return;let e=this.core.getHour(),t=this.core.getMinutes(),n=this.core.getActiveTypeMode(),r=e?.value??`12`,i=this.state.getSavedValue(),a=i?.minutes&&i.minutes!==`--`?t?.value??`--`:`--`,o=this.core.options.clock.type===`12h`?n?.textContent??void 0:void 0;this.state.setPreviewValue({hour:r,minutes:a,type:o}),this.ui.updateAll()}handleMinuteCommit(e){if(!this.isEnabled)return;let t={hour:e.hour,minutes:e.minutes,type:e.type??void 0};this.state.getActivePart()===`from`?(this.state.setFromValue(t),this.state.setPreviewValue(null),this.state.isFromComplete()&&(this.state.setActivePart(`to`),this.emitter.emit(`range:switch`,{active:`to`,disabledTime:this.state.getDisabledTimeForEndPart()}),this.ui.syncClockToActivePart(),this.emitAmPmSyncEvent())):(this.state.setToValue(t),this.state.setPreviewValue(null)),this.state.validate(),this.ui.updateAll()}handleAmPm(){if(!this.isEnabled||this.isSyncingAmPm||this.core.options.clock.type!==`12h`)return;let e=this.core.getActiveTypeMode()?.textContent;if(e){if(this.state.getActivePart()===`from`){let t=this.state.getFromValue();t&&(this.state.setFromValue({...t,type:e}),this.state.isFromComplete()&&(this.state.setActivePart(`to`),this.state.setPreviewValue(null),this.emitter.emit(`range:switch`,{active:`to`,disabledTime:this.state.getDisabledTimeForEndPart()}),this.ui.syncClockToActivePart(),this.emitAmPmSyncEvent()))}else{let t=this.state.getToValue();t&&this.state.setToValue({...t,type:e}),this.emitter.emit(`range:switch`,{active:`to`,disabledTime:this.state.getDisabledTimeForEndPart()})}this.state.validate(),this.ui.updateAll()}}emitAmPmSyncEvent(){if(this.core.options.clock.type!==`12h`)return;let e=this.state.getSavedValue();if(e?.type){this.isSyncingAmPm=!0;try{e.type===`AM`?this.emitter.emit(`select:am`,{}):e.type===`PM`&&this.emitter.emit(`select:pm`,{})}finally{this.isSyncingAmPm=!1}}}handleConfirm(){if(!this.isEnabled)return;this.state.commitPreview();let e=this.state.getFromValue(),t=this.state.getToValue(),n=e?RR(e):`--:--`,r=t?RR(t):`--:--`,i=this.state.getDuration();this.ui.updateInputValue(),this.emitter.emit(`range:confirm`,{from:n,to:r,duration:i})}reset(){this.state.reset()}destroy(){this.cleanupHandlers.forEach(e=>e()),this.cleanupHandlers=[],this.reset()}},YR={name:`range`,factory:(e,t)=>new JR(e,t),clearHandler:(e,t)=>{if(!e.options.range?.enabled)return;let n=e.getModalElement();if(!n)return;let r=n.querySelector(`.tp-ui-range-from`),i=n.querySelector(`.tp-ui-range-to`),a=n.querySelector(`.tp-ui-range-from-time`),o=n.querySelector(`.tp-ui-range-to-time`);a&&(a.textContent=`--:--`),o&&(o.textContent=`--:--`),r?.classList.add(`active`),i?.classList.remove(`active`),r?.setAttribute(`aria-selected`,`true`),i?.setAttribute(`aria-selected`,`false`),r?.setAttribute(`tabindex`,`0`),i?.setAttribute(`tabindex`,`-1`),i?.classList.add(`disabled`),i?.setAttribute(`aria-disabled`,`true`);let s=e.getHour();s&&s.focus(),t.emit(`range:switch`,{active:`from`,disabledTime:null})}}})),ZR,QR,$R,ez=!1;async function tz(){if(!ZR){let e=await Promise.resolve().then(()=>(MR(),OI));ZR=e.TimepickerUI,QR=e.PluginRegistry,$R=(await Promise.resolve().then(()=>(XR(),NR))).RangePlugin,!ez&&QR&&$R&&(QR.register($R),ez=!0)}}var nz=class{constructor(e){if(this.config={dayStartTime:`00:00`,dayEndTime:`23:59`,minuteIncrement:5,clockType:`12h`,...e},this.selectedStart=this.extractTimeAsHHMM(e.startTime),e.endTime)this.selectedEnd=this.extractTimeAsHHMM(e.endTime);else{let e=new Date(`2000-01-01T${this.selectedStart}:00Z`),n=new Date(e.getTime()+3600*1e3);this.selectedEnd=t.tools.dateTime.extractTime(n.toISOString())}this.inputElement=document.createElement(`input`),this.container=this.createUI()}extractTimeAsHHMM(e){return e.includes(`T`)?t.tools.dateTime.extractTime(e):e}createUI(){let e=document.createElement(`div`);return e.style.cssText=`
232
232
  position: fixed;
233
233
  left: -9999px;
234
234
  top: -9999px;
@@ -238,14 +238,14 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
238
238
  position: absolute;
239
239
  left: 0;
240
240
  top: 0;
241
- `,e.appendChild(this.inputElement),e}async initTimePicker(){await nz();let e=this.config.clockType??`12h`,[t,n]=this.selectedStart.split(`:`).map(Number),[r,i]=this.selectedEnd.split(`:`).map(Number);if(e===`24h`){let e=`${String(t).padStart(2,`0`)}:${String(n).padStart(2,`0`)}`,a=`${String(r).padStart(2,`0`)}:${String(i).padStart(2,`0`)}`;this.inputElement.value=`${e} - ${a}`,this.inputElement.dataset.timeFrom=e,this.inputElement.dataset.timeTo=a}else{let e=t>=12?`PM`:`AM`,a=t===0?12:t>12?t-12:t,o=`${String(a).padStart(2,`0`)}:${String(n).padStart(2,`0`)} ${e}`,s=r>=12?`PM`:`AM`,c=r===0?12:r>12?r-12:r,l=`${String(c).padStart(2,`0`)}:${String(i).padStart(2,`0`)} ${s}`;this.inputElement.value=`${o} - ${l}`,this.inputElement.dataset.timeFrom=`${String(a).padStart(2,`0`)}:${String(n).padStart(2,`0`)}`,this.inputElement.dataset.timeTo=`${String(c).padStart(2,`0`)}:${String(i).padStart(2,`0`)}`,this.inputElement.dataset.typeFrom=e,this.inputElement.dataset.typeTo=s}let a={enabled:!0,fromLabel:`Start`,toLabel:`End`};this.config.minDuration!==void 0&&(a.minDuration=this.config.minDuration),this.config.maxDuration!==void 0&&(a.maxDuration=this.config.maxDuration),this.picker=new QR(this.inputElement,{range:a,clock:{type:e,incrementMinutes:this.config.minuteIncrement||5},ui:{theme:`crane`},callbacks:{onRangeConfirm:e=>{try{let t=e.from,n=e.to;if(t&&n){let e=e=>{let t=e.match(/(\d{1,2}):(\d{2})\s*(AM|PM)/i);if(t){let e=parseInt(t[1],10),n=t[2],r=t[3].toUpperCase();return r===`PM`&&e!==12?e+=12:r===`AM`&&e===12&&(e=0),`${String(e).padStart(2,`0`)}:${n}`}let n=e.match(/(\d{1,2}):(\d{2})/);return n?`${n[1].padStart(2,`0`)}:${n[2]}`:`00:00`};this.selectedStart=e(t),this.selectedEnd=e(n),this.config.onConfirm(this.selectedStart,this.selectedEnd),this.destroy()}}catch(e){console.error(`[ModernTimePicker] Error in onRangeConfirm:`,e)}},onCancel:()=>{try{this.config.onCancel(),this.destroy()}catch(e){console.error(`[ModernTimePicker] Error in onCancel:`,e)}}}}),this.picker.create(),setTimeout(()=>{this.picker&&this.picker.open()},100)}async show(){document.body.appendChild(this.container),await this.initTimePicker()}destroy(){this.picker&&this.picker.destroy&&this.picker.destroy(),this.container.parentNode&&this.container.parentNode.removeChild(this.container)}};async function iz(e){let t=new rz(e);return await t.show(),t}var{BLOCK_TYPES:az}=t.availability,oz=`padding:6px 12px; cursor:pointer; display:flex; align-items:center; gap:8px;`,sz=`var(--chc-hover-bg)`,cz=`var(--chc-text-primary)`,lz=[[az.MAINTENANCE,`Maintenance`],[az.PRACTICE,`Practice`],[az.RESERVED,`Reserved`],[az.BLOCKED,`Blocked`]];function uz(){let e=null,t=null;function n(){e&&(e.destroy(),e=null,t=null)}function r(e){let t=document.createElement(`div`);t.style.cssText=`font-family:sans-serif; font-size:13px; min-width:150px;`;for(let r of e.blockTypes){let i=document.createElement(`div`);i.style.cssText=oz,i.innerHTML=`
241
+ `,e.appendChild(this.inputElement),e}async initTimePicker(){await tz();let e=this.config.clockType??`12h`,[t,n]=this.selectedStart.split(`:`).map(Number),[r,i]=this.selectedEnd.split(`:`).map(Number);if(e===`24h`){let e=`${String(t).padStart(2,`0`)}:${String(n).padStart(2,`0`)}`,a=`${String(r).padStart(2,`0`)}:${String(i).padStart(2,`0`)}`;this.inputElement.value=`${e} - ${a}`,this.inputElement.dataset.timeFrom=e,this.inputElement.dataset.timeTo=a}else{let e=t>=12?`PM`:`AM`,a=t===0?12:t>12?t-12:t,o=`${String(a).padStart(2,`0`)}:${String(n).padStart(2,`0`)} ${e}`,s=r>=12?`PM`:`AM`,c=r===0?12:r>12?r-12:r,l=`${String(c).padStart(2,`0`)}:${String(i).padStart(2,`0`)} ${s}`;this.inputElement.value=`${o} - ${l}`,this.inputElement.dataset.timeFrom=`${String(a).padStart(2,`0`)}:${String(n).padStart(2,`0`)}`,this.inputElement.dataset.timeTo=`${String(c).padStart(2,`0`)}:${String(i).padStart(2,`0`)}`,this.inputElement.dataset.typeFrom=e,this.inputElement.dataset.typeTo=s}let a={enabled:!0,fromLabel:`Start`,toLabel:`End`};this.config.minDuration!==void 0&&(a.minDuration=this.config.minDuration),this.config.maxDuration!==void 0&&(a.maxDuration=this.config.maxDuration),this.picker=new ZR(this.inputElement,{range:a,clock:{type:e,incrementMinutes:this.config.minuteIncrement||5},ui:{theme:`crane`},callbacks:{onRangeConfirm:e=>{try{let t=e.from,n=e.to;if(t&&n){let e=e=>{let t=e.match(/(\d{1,2}):(\d{2})\s*(AM|PM)/i);if(t){let e=parseInt(t[1],10),n=t[2],r=t[3].toUpperCase();return r===`PM`&&e!==12?e+=12:r===`AM`&&e===12&&(e=0),`${String(e).padStart(2,`0`)}:${n}`}let n=e.match(/(\d{1,2}):(\d{2})/);return n?`${n[1].padStart(2,`0`)}:${n[2]}`:`00:00`};this.selectedStart=e(t),this.selectedEnd=e(n),this.config.onConfirm(this.selectedStart,this.selectedEnd),this.destroy()}}catch(e){console.error(`[ModernTimePicker] Error in onRangeConfirm:`,e)}},onCancel:()=>{try{this.config.onCancel(),this.destroy()}catch(e){console.error(`[ModernTimePicker] Error in onCancel:`,e)}}}}),this.picker.create(),setTimeout(()=>{this.picker&&this.picker.open()},100)}async show(){document.body.appendChild(this.container),await this.initTimePicker()}destroy(){this.picker&&this.picker.destroy&&this.picker.destroy(),this.container.parentNode&&this.container.parentNode.removeChild(this.container)}};async function rz(e){let t=new nz(e);return await t.show(),t}var{BLOCK_TYPES:iz}=t.availability,az=`padding:6px 12px; cursor:pointer; display:flex; align-items:center; gap:8px;`,oz=`var(--chc-hover-bg)`,sz=`var(--chc-text-primary)`,cz=[[iz.MAINTENANCE,`Maintenance`],[iz.PRACTICE,`Practice`],[iz.RESERVED,`Reserved`],[iz.BLOCKED,`Blocked`]];function lz(){let e=null,t=null;function n(){e&&(e.destroy(),e=null,t=null)}function r(e){let t=document.createElement(`div`);t.style.cssText=`font-family:sans-serif; font-size:13px; min-width:150px;`;for(let r of e.blockTypes){let i=document.createElement(`div`);i.style.cssText=az,i.innerHTML=`
242
242
  <span style="width:10px;height:10px;border-radius:2px;background:${r.color};display:inline-block;"></span>
243
243
  ${r.label}
244
- `,i.addEventListener(`mouseenter`,()=>{i.style.background=sz,i.style.color=cz}),i.addEventListener(`mouseleave`,()=>{i.style.background=`transparent`,i.style.color=``}),i.addEventListener(`click`,()=>{e.onTypeSelected(r.type),n()}),t.appendChild(i)}if(e.onAdjustTime||e.onDelete){let e=document.createElement(`div`);e.style.cssText=`border-top:1px solid var(--chc-border-primary); margin:4px 0;`,t.appendChild(e)}if(e.onAdjustTime){let r=document.createElement(`div`);r.style.cssText=oz,r.innerHTML=`<span style="font-size:14px;">&#128339;</span> Adjust Time`,r.addEventListener(`mouseenter`,()=>{r.style.background=sz,r.style.color=cz}),r.addEventListener(`mouseleave`,()=>{r.style.background=`transparent`,r.style.color=``}),r.addEventListener(`click`,()=>{let t=e.onAdjustTime;n(),e.startTime&&e.endTime&&iz({startTime:e.startTime,endTime:e.endTime,dayStartTime:`06:00`,dayEndTime:`22:00`,minuteIncrement:5,onConfirm:(e,n)=>t(e,n),onCancel:()=>{}})}),t.appendChild(r)}if(e.onDelete){let r=document.createElement(`div`);r.style.cssText=`padding:6px 12px; cursor:pointer; display:flex; align-items:center; gap:8px; color:#e74c3c;`,r.innerHTML=`<span style="font-size:14px;">&#128465;</span> Delete`,r.addEventListener(`mouseenter`,()=>{r.style.background=`#fdecea`}),r.addEventListener(`mouseleave`,()=>{r.style.background=`transparent`}),r.addEventListener(`click`,()=>{let t=e.onDelete;n(),t()}),t.appendChild(r)}return t}function i(e){let{blockId:t,engine:r,day:i,onBlockChanged:o,onManageRegistrations:s}=e,c=document.createElement(`div`);c.style.cssText=`font-family:sans-serif; font-size:13px; min-width:150px;`;for(let[e,a]of lz){let s=yI[e],l=document.createElement(`div`);l.style.cssText=oz,l.innerHTML=`
244
+ `,i.addEventListener(`mouseenter`,()=>{i.style.background=oz,i.style.color=sz}),i.addEventListener(`mouseleave`,()=>{i.style.background=`transparent`,i.style.color=``}),i.addEventListener(`click`,()=>{e.onTypeSelected(r.type),n()}),t.appendChild(i)}if(e.onAdjustTime||e.onDelete){let e=document.createElement(`div`);e.style.cssText=`border-top:1px solid var(--chc-border-primary); margin:4px 0;`,t.appendChild(e)}if(e.onAdjustTime){let r=document.createElement(`div`);r.style.cssText=az,r.innerHTML=`<span style="font-size:14px;">&#128339;</span> Adjust Time`,r.addEventListener(`mouseenter`,()=>{r.style.background=oz,r.style.color=sz}),r.addEventListener(`mouseleave`,()=>{r.style.background=`transparent`,r.style.color=``}),r.addEventListener(`click`,()=>{let t=e.onAdjustTime;n(),e.startTime&&e.endTime&&rz({startTime:e.startTime,endTime:e.endTime,dayStartTime:`06:00`,dayEndTime:`22:00`,minuteIncrement:5,onConfirm:(e,n)=>t(e,n),onCancel:()=>{}})}),t.appendChild(r)}if(e.onDelete){let r=document.createElement(`div`);r.style.cssText=`padding:6px 12px; cursor:pointer; display:flex; align-items:center; gap:8px; color:#e74c3c;`,r.innerHTML=`<span style="font-size:14px;">&#128465;</span> Delete`,r.addEventListener(`mouseenter`,()=>{r.style.background=`#fdecea`}),r.addEventListener(`mouseleave`,()=>{r.style.background=`transparent`}),r.addEventListener(`click`,()=>{let t=e.onDelete;n(),t()}),t.appendChild(r)}return t}function i(e){let{blockId:t,engine:r,day:i,onBlockChanged:o,onManageRegistrations:s}=e,c=document.createElement(`div`);c.style.cssText=`font-family:sans-serif; font-size:13px; min-width:150px;`;for(let[e,a]of cz){let s=vI[e],l=document.createElement(`div`);l.style.cssText=az,l.innerHTML=`
245
245
  <span style="width:10px;height:10px;border-radius:2px;background:${s};display:inline-block;"></span>
246
246
  ${a}
247
- `,l.addEventListener(`mouseenter`,()=>{l.style.background=sz,l.style.color=cz}),l.addEventListener(`mouseleave`,()=>{l.style.background=`transparent`,l.style.color=``}),l.addEventListener(`click`,()=>{let s=r.getDayBlocks(i).find(e=>e.id===t);s&&(r.removeBlock(t),r.applyBlock({courts:[s.court],timeRange:{start:s.start,end:s.end},type:e,reason:a}),o()),n()}),c.appendChild(l)}let l=document.createElement(`div`);l.style.cssText=`border-top:1px solid var(--chc-border-primary); margin:4px 0;`,c.appendChild(l);let u=document.createElement(`div`);u.style.cssText=oz,u.innerHTML=`<span style="font-size:14px;">&#128339;</span> Adjust Time`,u.addEventListener(`mouseenter`,()=>{u.style.background=sz,u.style.color=cz}),u.addEventListener(`mouseleave`,()=>{u.style.background=`transparent`,u.style.color=``}),u.addEventListener(`click`,()=>{n();let e=r.getDayBlocks(i).find(e=>e.id===t);e&&iz({startTime:e.start,endTime:e.end,dayStartTime:`06:00`,dayEndTime:`22:00`,minuteIncrement:5,onConfirm:(n,i)=>{let a=e.start.slice(0,10);r.resizeBlock({blockId:t,newTimeRange:{start:`${a}T${n}:00`,end:`${a}T${i}:00`}}),o()},onCancel:()=>{}})}),c.appendChild(u);let d=r.getDayBlocks(i).find(e=>e.id===t);if(s&&d?.type===az.PRACTICE){let e=document.createElement(`div`);e.style.cssText=oz,e.innerHTML=`<span style="font-size:14px;">&#128101;</span> Manage Registrations`,e.addEventListener(`mouseenter`,()=>{e.style.background=sz,e.style.color=cz}),e.addEventListener(`mouseleave`,()=>{e.style.background=`transparent`,e.style.color=``}),e.addEventListener(`click`,()=>{n();let e=r.getDayBlocks(i).find(e=>e.id===t);e&&s({blockId:t,courtId:e.court.courtId,venueId:e.court.venueId,date:i,startTime:a(e.start),endTime:a(e.end)})}),c.appendChild(e)}let f=document.createElement(`div`);return f.style.cssText=`padding:6px 12px; cursor:pointer; display:flex; align-items:center; gap:8px; color:#e74c3c;`,f.innerHTML=`<span style="font-size:14px;">&#128465;</span> Delete`,f.addEventListener(`mouseenter`,()=>{f.style.background=`#fdecea`}),f.addEventListener(`mouseleave`,()=>{f.style.background=`transparent`}),f.addEventListener(`click`,()=>{r.removeBlock(t),o(),n()}),c.appendChild(f),c}function a(e){return(e.includes(`T`)?e.split(`T`)[1]:e).slice(0,5)}function o(r,i,a){n();let o=Om(r,{content:i,allowHTML:!0,interactive:!0,trigger:`manual`,placement:`bottom`,appendTo:document.body,onHidden:()=>{e=null,t=null}});e=o,t=a,o.show()}return{show(e,i){if(t===i.itemId){n();return}o(e,r(i),i.itemId)},showForEngineBlock(e,r){if(t===r.itemId){n();return}o(e,i(r),r.itemId)},destroy(){n()},isActiveFor(e){return t===e}}}var dz={day:{label:`1 Day`,days:1,timeAxis:{scale:`hour`,step:1}},days3:{label:`3 Days`,days:3,timeAxis:{scale:`hour`,step:3}},week:{label:`Week`,days:7,timeAxis:{scale:`hour`,step:6}},all:{label:`Tournament`,days:0,timeAxis:{scale:`hour`,step:6}}};function fz(e,t,n,r){let i=r?.labels,a=document.createElement(`div`);a.className=`tg-view-toolbar`;let o=document.createElement(`span`);o.textContent=(i?.view??`View`)+`:`,o.className=`tg-view-toolbar-label`,a.appendChild(o);let s=document.createElement(`input`);s.type=`text`,s.readOnly=!0,s.className=`tg-view-toolbar-date`,n&&s.addEventListener(`changeDate`,()=>{let e=s.value;e&&n(e)}),a.appendChild(s);let c={day:i?.day1??`1 Day`,days3:i?.days3??`3 Days`,week:i?.week??`Week`,all:i?.tournament??`Tournament`},l=[],u=[],d=t||`day`,f=e=>{l.forEach((t,n)=>{u[n]===e?t.className=`sp-btn sp-btn--active`:t.className=`sp-btn`})};for(let[t]of Object.entries(dz)){let n=document.createElement(`button`);n.textContent=c[t],n.className=t===d?`sp-btn sp-btn--active`:`sp-btn`,n.addEventListener(`click`,()=>{f(t),e(t)}),l.push(n),u.push(t),a.appendChild(n)}if(r?.onSetDefaultAvailability||r?.onSave){let e=document.createElement(`div`);e.className=`tg-view-toolbar-spacer`,a.appendChild(e)}if(r?.onSetDefaultAvailability){let e=document.createElement(`button`);e.textContent=i?.setDefaultAvailability??`Set Default Availability`,e.className=`sp-btn sp-btn--fill-muted`,e.addEventListener(`click`,r.onSetDefaultAvailability),a.appendChild(e)}let p=null;return r?.onSave&&(p=document.createElement(`button`),p.textContent=i?.saveToTournament??`Save to Tournament`,p.className=`sp-btn sp-btn--fill`,p.disabled=!0,p.addEventListener(`click`,r.onSave),a.appendChild(p)),{element:a,dateInput:s,setActiveView:f,setDate:e=>{s.value=e},setSaveEnabled:e=>{p&&(p.disabled=!e)}}}var pz=class{constructor(e,t,n){this._dailyStartMin=0,this._dailyEndMin=1440,this._useDailyBounds=!1,this._visibleDays=null,this._visibleDayMs=null,this._start=e.getTime(),this._end=t.getTime(),this._width=Math.max(n,1),this._min=this._start,this._max=this._end,this._zoomMin=900*1e3,this._zoomMax=(this._end-this._start)*2}get start(){return new Date(this._start)}get end(){return new Date(this._end)}get width(){return this._width}get duration(){return this._end-this._start}get msPerPx(){if(!this._useDailyBounds)return this.duration/this._width;let e=this.toCollapsedMin(new Date(this._start)),t=this.toCollapsedMin(new Date(this._end))-e;return t<=0?1:t*60*1e3/this._width}getDailyBounds(){return this._useDailyBounds?{startMin:this._dailyStartMin,endMin:this._dailyEndMin}:null}getVisibleDays(){return this._visibleDays}timeToX(e){if(!this._useDailyBounds)return(e.getTime()-this._start)/this.duration*this._width;let t=this.toCollapsedMin(e),n=this.toCollapsedMin(new Date(this._start)),r=this.toCollapsedMin(new Date(this._end))-n;return r<=0?0:(t-n)/r*this._width}xToTime(e){if(!this._useDailyBounds){let t=e/this._width*this.duration;return new Date(this._start+t)}let t=this.toCollapsedMin(new Date(this._start)),n=this.toCollapsedMin(new Date(this._end))-t;if(n<=0)return new Date(this._start);let r=t+e/this._width*n;return this.fromCollapsedMin(r)}snap(e,t){let n=e.getTime(),r=t*60*1e3;return new Date(Math.round(n/r)*r)}setWindow(e,t){this._start=e.getTime(),this._end=t.getTime(),this.clampBounds()}setLimits(e){e.min!==void 0&&(this._min=e.min.getTime()),e.max!==void 0&&(this._max=e.max.getTime()),e.zoomMin!==void 0&&(this._zoomMin=e.zoomMin),e.zoomMax!==void 0&&(this._zoomMax=e.zoomMax)}setWidth(e){this._width=Math.max(e,1)}setDailyBounds(e,t){let[n,r]=e.split(`:`).map(Number),[i,a]=t.split(`:`).map(Number);this._dailyStartMin=n*60+r,this._dailyEndMin=i*60+a,this._useDailyBounds=!0}clearDailyBounds(){this._useDailyBounds=!1,this._dailyStartMin=0,this._dailyEndMin=1440,this._visibleDays=null,this._visibleDayMs=null}setVisibleDays(e){this._visibleDays=e,this._visibleDayMs=e.map(e=>new Date(e+`T00:00:00`).getTime())}clearVisibleDays(){this._visibleDays=null,this._visibleDayMs=null}pan(e){if(this._visibleDays)return;if(this._useDailyBounds){let t=this.toCollapsedMin(new Date(this._start)),n=this.toCollapsedMin(new Date(this._end)),r=n-t;if(r<=0)return;let i=e/this._width*r,a=this.fromCollapsedMin(t+i),o=this.fromCollapsedMin(n+i);this._start=a.getTime(),this._end=o.getTime(),this.clampBounds();return}let t=e*this.msPerPx,n=this._start+t,r=this._end+t;if(n<this._min){let e=this._min-n;n+=e,r+=e}if(r>this._max){let e=r-this._max;n-=e,r-=e}this._start=n,this._end=r}zoom(e,t){if(this._visibleDays)return;if(this._useDailyBounds){let n=this.toCollapsedMin(new Date(this._start)),r=this.toCollapsedMin(new Date(this._end))-n,i=n+t/this._width*r,a=r*e,o=this._zoomMin/(60*1e3),s=this._zoomMax/(60*1e3);a=Math.max(o,Math.min(s,a));let c=t/this._width,l=this.fromCollapsedMin(i-a*c),u=this.fromCollapsedMin(i+a*(1-c));this._start=l.getTime(),this._end=u.getTime(),this.clampBounds();return}let n=this._start+t/this._width*this.duration,r=this.duration*e;r=Math.max(this._zoomMin,Math.min(this._zoomMax,r));let i=t/this._width;this._start=n-r*i,this._end=n+r*(1-i),this.clampBounds()}toCollapsedMin(e){let t=this._dailyEndMin-this._dailyStartMin;if(t<=0)return 0;let n=e.getHours()*60+e.getMinutes()+e.getSeconds()/60,r=Math.max(this._dailyStartMin,Math.min(this._dailyEndMin,n))-this._dailyStartMin;if(this._visibleDays&&this._visibleDayMs){let n=new Date(e);n.setHours(0,0,0,0);let i=n.getTime(),a=-1;for(let e=0;e<this._visibleDayMs.length;e++)if(this._visibleDayMs[e]===i){a=e;break}if(a===-1){if(i<this._visibleDayMs[0])return 0;if(i>this._visibleDayMs[this._visibleDayMs.length-1])return this._visibleDayMs.length*t;for(let e=0;e<this._visibleDayMs.length-1;e++)if(i>this._visibleDayMs[e]&&i<this._visibleDayMs[e+1])return(e+1)*t;return 0}return a*t+r}let i=new Date(this._start);i.setHours(0,0,0,0);let a=new Date(e);return a.setHours(0,0,0,0),Math.round((a.getTime()-i.getTime())/(1440*60*1e3))*t+r}fromCollapsedMin(e){let t=this._dailyEndMin-this._dailyStartMin;if(t<=0)return new Date(this._start);let n=Math.floor(e/t),r=e-n*t;if(this._visibleDays&&this._visibleDayMs){let e=Math.max(0,Math.min(n,this._visibleDayMs.length-1)),t=new Date(this._visibleDayMs[e]),i=this._dailyStartMin+r;return t.setHours(Math.floor(i/60),Math.round(i%60),0,0),t}let i=new Date(this._start);i.setHours(0,0,0,0);let a=new Date(i);a.setDate(a.getDate()+n);let o=this._dailyStartMin+r;return a.setHours(Math.floor(o/60),Math.round(o%60),0,0),a}clampBounds(){let e=this._end-this._start;this._start<this._min&&(this._start=this._min,this._end=this._min+e),this._end>this._max&&(this._end=this._max,this._start=this._max-e),this._start<this._min&&(this._start=this._min),this._end>this._max&&(this._end=this._max)}},mz=`tg-tick-day`,hz=`tg-tick-hour`,gz=class{constructor(e,t){this.scale=e,this.tickConfig=_z(t),this.dayEl=document.createElement(`div`),this.dayEl.className=`tg-day-axis`,this.dayEl.setAttribute(`role`,`presentation`),this.hourEl=document.createElement(`div`),this.hourEl.className=`tg-hour-axis`,this.hourEl.setAttribute(`role`,`presentation`),this.dayEl.addEventListener(`click`,e=>{let t=(e.target.closest?.(`.${mz}`))?.dataset.day;t&&this.onDayClick&&this.onDayClick(t)})}getDayElement(){return this.dayEl}getHourElement(){return this.hourEl}setTimeAxisOptions(e){this.tickConfig=_z(e)}render(){this.renderDayLabels(),this.renderHourTicks()}renderDayLabels(){this.dayEl.innerHTML=``;let{dayFormat:e}=this.tickConfig,t=this.tickConfig.scale,n=this.scale.getDailyBounds();if(n&&t===`hour`){this.renderDayLabelsWithBounds(n,e);return}if(t===`hour`){let t=this.scale.start.getTime(),n=yz(t,this.scale.end.getTime());if(n.length===0){let n=new Date(t);n.setHours(0,0,0,0);let r=document.createElement(`div`);r.className=mz,r.style.left=`0px`,r.style.maxWidth=`${this.scale.width}px`,r.dataset.day=vz(n),r.textContent=e.format(n),this.dayEl.appendChild(r);return}for(let t of n){let n=this.scale.timeToX(t),r=document.createElement(`div`);r.className=mz,r.style.left=`${n}px`,r.dataset.day=vz(t),r.textContent=e.format(t),this.dayEl.appendChild(r)}}else if(t===`day`){let e=xz(this.scale.start.getTime(),this.scale.end.getTime());for(let t of e){let e=this.scale.timeToX(t),n=document.createElement(`div`);n.className=mz,n.style.left=`${e}px`,n.dataset.day=vz(t),n.textContent=this.tickConfig.dayFormat.format(t),this.dayEl.appendChild(n)}}}renderDayLabelsWithBounds(e,t){let n=this.getVisibleDayDates(e),r=this.scale.getVisibleDays(),i=n.length,a=i>0?this.scale.width/i:this.scale.width,o=a<150?new Intl.DateTimeFormat(void 0,{weekday:`short`,day:`numeric`}):t;if(r&&r.length>0)for(let t of n){let n=new Date(t);n.setHours(0,0,0,0),n.setMinutes(e.startMin);let r=this.scale.timeToX(n),i=document.createElement(`div`);i.className=mz,i.style.left=`${r}px`,i.style.maxWidth=`${Math.floor(a)-4}px`,i.dataset.day=vz(t),i.textContent=o.format(n),this.dayEl.appendChild(i)}else{let t=this.scale.width;for(let r of n){let n=new Date(r);n.setHours(0,0,0,0),n.setMinutes(e.startMin);let i=new Date(r);i.setHours(0,0,0,0),i.setDate(i.getDate()+1),i.setMinutes(e.startMin);let a=this.scale.timeToX(n),s=this.scale.timeToX(i),c=Math.max(a,0),l=Math.min(s,t)-c;if(l<=0)continue;let u=document.createElement(`div`);u.className=mz,u.style.left=`${c}px`,u.style.maxWidth=`${l}px`,u.dataset.day=vz(r),u.textContent=o.format(n),this.dayEl.appendChild(u)}}}renderHourTicks(){this.hourEl.innerHTML=``;let{hourFormat:e}=this.tickConfig,t=this.tickConfig.scale,n=this.tickConfig.step,r=this.scale.getDailyBounds();if(r&&t===`hour`){this.renderHourTicksWithBounds(r,n,e);return}let i=this.scale.start.getTime(),a=this.scale.end.getTime();if(t===`hour`){let t=new Set(yz(i,a).map(e=>e.getTime())),r=bz(i,a,n);for(let n of r){if(t.has(n.getTime()))continue;let r=this.scale.timeToX(n),i=document.createElement(`div`);i.className=hz,i.style.left=`${r}px`,i.textContent=e.format(n),this.hourEl.appendChild(i)}}else if(t===`day`){let e=new Set(xz(i,a).map(e=>e.getTime())),t=yz(i,a);for(let n of t){if(e.has(n.getTime()))continue;let t=this.scale.timeToX(n),r=document.createElement(`div`);r.className=hz,r.style.left=`${t}px`,r.textContent=new Intl.DateTimeFormat(void 0,{weekday:`short`,day:`numeric`}).format(n),this.hourEl.appendChild(r)}}}renderHourTicksWithBounds(e,t,n){let r=this.getVisibleDayDates(e);for(let i of r){let r=new Date(i);r.setHours(0,0,0,0),r.setMinutes(e.startMin);let a=new Date(i);a.setHours(0,0,0,0),a.setMinutes(e.endMin);let o=Math.ceil(e.startMin/60),s=new Date(i);for(s.setHours(o,0,0,0),s.getHours()%t!==0&&s.setHours(s.getHours()+(t-s.getHours()%t));s.getTime()<=a.getTime();){if(s.getTime()!==r.getTime()){let e=this.scale.timeToX(s),t=document.createElement(`div`);t.className=hz,t.style.left=`${e}px`,t.textContent=n.format(s),this.hourEl.appendChild(t)}s.setHours(s.getHours()+t)}}}getVisibleDayDates(e){let t=this.scale.getVisibleDays();if(t&&t.length>0)return t.map(e=>new Date(e+`T00:00:00`));let n=this.scale.start.getTime(),r=this.scale.end.getTime(),i=[],a=new Date(n);for(a.setHours(0,0,0,0);;){let t=new Date(a);if(t.setHours(0,0,0,0),t.setMinutes(e.endMin),t.getTime()<n){a.setDate(a.getDate()+1);continue}let o=new Date(a);if(o.setHours(0,0,0,0),o.setMinutes(e.startMin),o.getTime()>r)break;i.push(new Date(a)),a.setDate(a.getDate()+1)}return i}renderGridlines(e,t){e.querySelectorAll(`.tg-gridline`).forEach(e=>e.remove());let n=this.computeTickPositions();for(let{x:r,isMajor:i}of n){let n=document.createElement(`div`);n.className=i?`tg-gridline tg-gridline-major`:`tg-gridline`,n.style.left=`${r}px`,n.style.height=`${t}px`,e.appendChild(n)}}computeTickPositions(){let e=[],t=this.tickConfig.scale,n=this.tickConfig.step,r=this.scale.getDailyBounds(),i=this.scale.start.getTime(),a=this.scale.end.getTime();if(r&&t===`hour`){let t=this.getVisibleDayDates(r);for(let i of t){let t=new Date(i);t.setHours(0,0,0,0),t.setMinutes(r.startMin);let a=new Date(i);a.setHours(0,0,0,0),a.setMinutes(r.endMin),e.push({x:this.scale.timeToX(t),isMajor:!0});let o=Math.ceil(r.startMin/60),s=new Date(i);for(s.setHours(o,0,0,0),s.getHours()%n!==0&&s.setHours(s.getHours()+(n-s.getHours()%n));s.getTime()<=a.getTime();)s.getTime()!==t.getTime()&&e.push({x:this.scale.timeToX(s),isMajor:!1}),s.setHours(s.getHours()+n)}}else if(t===`hour`){let t=yz(i,a),r=new Set(t.map(e=>e.getTime()));for(let n of t)e.push({x:this.scale.timeToX(n),isMajor:!0});for(let t of bz(i,a,n))r.has(t.getTime())||e.push({x:this.scale.timeToX(t),isMajor:!1})}else if(t===`day`){let t=xz(i,a),n=new Set(t.map(e=>e.getTime()));for(let n of t)e.push({x:this.scale.timeToX(n),isMajor:!0});for(let t of yz(i,a))n.has(t.getTime())||e.push({x:this.scale.timeToX(t),isMajor:!1})}return e}destroy(){this.dayEl.remove(),this.hourEl.remove()}};function _z(e){let t=e?.scale??`hour`,n=e?.step??1;switch(t){case`hour`:return{scale:t,step:n,hourFormat:new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`,hour12:!1}),dayFormat:new Intl.DateTimeFormat(void 0,{weekday:`short`,day:`numeric`,month:`short`})};case`day`:return{scale:t,step:n,hourFormat:new Intl.DateTimeFormat(void 0,{weekday:`short`,day:`numeric`}),dayFormat:new Intl.DateTimeFormat(void 0,{month:`long`,year:`numeric`})};default:return{scale:`hour`,step:1,hourFormat:new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`,hour12:!1}),dayFormat:new Intl.DateTimeFormat(void 0,{weekday:`short`,day:`numeric`,month:`short`})}}}function vz(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function yz(e,t){let n=[],r=new Date(e);for(r.setHours(0,0,0,0);r.getTime()<=t;)r.getTime()>=e&&n.push(new Date(r)),r.setDate(r.getDate()+1);return n}function bz(e,t,n){let r=[],i=new Date(e);i.setMinutes(0,0,0);let a=i.getHours();for(i.setHours(a-a%n);i.getTime()<=t;)i.getTime()>=e&&r.push(new Date(i)),i.setHours(i.getHours()+n);return r}function xz(e,t){let n=[],r=new Date(e);r.setHours(0,0,0,0);let i=r.getDay(),a=i===0?6:i-1;for(r.setDate(r.getDate()-a);r.getTime()<=t;)r.getTime()>=e&&n.push(new Date(r)),r.setDate(r.getDate()+7);return n}var Sz=class{constructor(e=40){this.groups=[],this.groupIndex=new Map,this.rowHeight=e,this.labelPanel=document.createElement(`div`),this.labelPanel.className=`tg-label-panel`,this.labelPanel.setAttribute(`role`,`rowheader`),this.contentArea=document.createElement(`div`),this.contentArea.className=`tg-content`,this.contentArea.setAttribute(`role`,`grid`)}getLabelPanel(){return this.labelPanel}getContentArea(){return this.contentArea}getRowHeight(){return this.rowHeight}getGroups(){return this.groups}getGroupCount(){return this.groups.length}getGroupAtIndex(e){return this.groups[e]}yToGroupId(e){let t=Math.floor(e/this.rowHeight);return t<0||t>=this.groups.length?null:this.groups[t].id}groupIdToRowIndex(e){return this.groupIndex.get(e)??-1}getRowRange(e,t){let n=Math.max(0,Math.floor(Math.min(e,t)/this.rowHeight)),r=Math.min(this.groups.length-1,Math.floor(Math.max(e,t)/this.rowHeight)),i=[];for(let e=n;e<=r;e++)i.push(this.groups[e].id);return i}getRowTop(e){return e*this.rowHeight}setGroups(e){this.groups=e.slice().sort((e,t)=>e.order!==void 0&&t.order!==void 0?e.order-t.order:e.order===void 0?t.order===void 0?e.content.localeCompare(t.content,void 0,{numeric:!0}):1:-1),this.groupIndex.clear();for(let e=0;e<this.groups.length;e++)this.groupIndex.set(this.groups[e].id,e)}render(){this.renderLabels(),this.renderRows()}renderLabels(){this.labelPanel.innerHTML=``;for(let e of this.groups){let t=document.createElement(`div`);t.className=`tg-label`,t.style.height=`${this.rowHeight}px`,t.textContent=e.content,t.title=e.content,t.dataset.groupId=e.id,this.labelPanel.appendChild(t)}}renderRows(){this.contentArea.querySelectorAll(`.tg-row`).forEach(e=>e.remove());for(let e=0;e<this.groups.length;e++){let t=document.createElement(`div`);t.className=`tg-row`,t.style.height=`${this.rowHeight}px`,t.style.top=`${e*this.rowHeight}px`,t.dataset.groupId=this.groups[e].id,this.contentArea.appendChild(t)}this.contentArea.style.height=`${this.groups.length*this.rowHeight}px`}destroy(){this.labelPanel.remove(),this.contentArea.remove()}},Cz=class{constructor(e,t){this.items=[],this.itemElements=new Map,this.ghostEl=null,this.ghostCountBadge=null,this.scale=e,this.layout=t,this.contentArea=t.getContentArea()}setItems(e){this.items=e}render(){for(let e of this.itemElements.values())e.remove();this.itemElements.clear(),this.contentArea.querySelectorAll(`[data-item-id]`).forEach(e=>{e.dataset.itemId!==`__ghost__`&&e.remove()});for(let e of this.items){let t=this.renderItem(e);t&&(this.contentArea.appendChild(t),this.itemElements.set(e.id,t))}}renderItem(e){let t=this.layout.groupIdToRowIndex(e.group);if(t===-1)return null;let n=e.start instanceof Date?e.start:new Date(e.start),r=e.end?e.end instanceof Date?e.end:new Date(e.end):n,i=this.scale.timeToX(n),a=this.scale.timeToX(r)-i,o=this.layout.getRowTop(t),s=this.layout.getRowHeight();if(a<.5)return null;let c=document.createElement(`div`);if(c.dataset.itemId=e.id,c.title=e.title||e.content,e.type===`background`||e.isSegment)c.className=`tg-item-background ${e.className||``}`.trim(),e.style&&(c.style.cssText=e.style),c.style.position=`absolute`,c.style.left=`${i}px`,c.style.top=`${o}px`,c.style.width=`${a}px`,c.style.height=`${s}px`,c.style.pointerEvents=`none`;else{c.className=`tg-item tg-item-range ${e.className||``}`.trim(),e.style&&(c.style.cssText+=e.style),c.style.position=`absolute`,c.style.left=`${i}px`,c.style.top=`${o+2}px`,c.style.width=`${a}px`,c.style.height=`${s-4}px`,c.style.cursor=`move`;let t=document.createElement(`span`);t.className=`tg-item-content`,t.textContent=e.content,c.appendChild(t);let n=document.createElement(`div`);n.className=`tg-resize-handle tg-resize-left`,n.dataset.handle=`left`,c.appendChild(n);let r=document.createElement(`div`);r.className=`tg-resize-handle tg-resize-right`,r.dataset.handle=`right`,c.appendChild(r)}return c}updateItemPosition(e,t,n,r){let i=this.itemElements.get(e);i&&(i.style.left=`${t}px`,i.style.top=`${n+2}px`,i.style.width=`${r}px`)}showGhost(e){if(!this.ghostEl){this.ghostEl=document.createElement(`div`),this.ghostEl.className=`tg-ghost`,this.ghostEl.dataset.itemId=`__ghost__`;for(let e of[`left`,`right`,`top`,`bottom`]){let t=document.createElement(`div`);t.className=`tg-resize-handle tg-resize-${e}`,t.dataset.handle=e,this.ghostEl.appendChild(t)}this.ghostCountBadge=document.createElement(`div`),this.ghostCountBadge.className=`tg-ghost-count`,this.ghostEl.appendChild(this.ghostCountBadge),this.contentArea.appendChild(this.ghostEl)}let t=this.scale.timeToX(e.startTime),n=this.scale.timeToX(e.endTime)-t,r=this.layout.getRowHeight(),i=e.topRowIndex*r,a=(e.bottomRowIndex-e.topRowIndex+1)*r,o=e.bottomRowIndex-e.topRowIndex+1;this.ghostEl.style.left=`${t}px`,this.ghostEl.style.top=`${i}px`,this.ghostEl.style.width=`${n}px`,this.ghostEl.style.height=`${a}px`,this.ghostEl.style.display=`block`,this.ghostCountBadge&&(this.ghostCountBadge.textContent=`${o} court${o>1?`s`:``}`,this.ghostCountBadge.style.display=o>1?`flex`:`none`)}clearGhost(){this.ghostEl&&(this.ghostEl.remove(),this.ghostEl=null,this.ghostCountBadge=null)}isGhostVisible(){return this.ghostEl!==null&&this.ghostEl.style.display!==`none`}highlightRows(e){this.clearHighlights();for(let t of e){let e=this.contentArea.querySelectorAll(`.tg-row`);e[t]&&e[t].classList.add(`tg-row-highlight`)}}clearHighlights(){this.contentArea.querySelectorAll(`.tg-row-highlight`).forEach(e=>{e.classList.remove(`tg-row-highlight`)})}static hitTest(e){if(!(e instanceof HTMLElement))return{itemId:null,handle:null};let t=e.closest(`.tg-resize-handle`)?.dataset.handle??null;return{itemId:e.closest(`[data-item-id]`)?.dataset.itemId??null,handle:t}}destroy(){this.clearGhost(),this.clearHighlights();for(let e of this.itemElements.values())e.remove();this.itemElements.clear()}},wz=3,Tz=30,Ez=8,Dz=3600*1e3,Oz=class{constructor(e,t,n,r,i=5,a=!1){this.mode=`IDLE`,this.gesture=null,this.items=[],this.ghostStartTime=null,this.ghostEndTime=null,this.ghostTopRow=0,this.ghostBottomRow=0,this.justDragged=!1,this.autoScrollRaf=null,this.autoScrollDelta=0,this.scrollContainer=null,this.onPointerDown=e=>{if(e.button!==0)return;let{itemId:t,handle:n}=Cz.hitTest(e.target);if(this.mode===`GHOST_EDITING`){if(t===`__ghost__`&&n){this.startGesture(e,`__ghost__`,n===`left`?`RESIZING_LEFT`:n===`right`?`RESIZING_RIGHT`:n===`top`?`RESIZING_TOP`:`RESIZING_BOTTOM`);return}if(t===`__ghost__`&&!n){this.confirmGhost();return}this.cancelGhost();return}if(t)if(n===`left`)this.startGesture(e,t,`RESIZING_LEFT`);else if(n===`right`)this.startGesture(e,t,`RESIZING_RIGHT`);else{let n=this.items.find(e=>e.id===t);if(!n||n.isSegment||n.type===`background`)return;this.startGesture(e,t,`DRAGGING`)}},this.onPointerMove=e=>{if(this.gesture){if(this.gesture.currentX=e.clientX,this.gesture.currentY=e.clientY,!this.gesture.thresholdExceeded){let t=Math.abs(e.clientX-this.gesture.startX),n=Math.abs(e.clientY-this.gesture.startY);if(t<wz&&n<wz)return;this.gesture.thresholdExceeded=!0}switch(this.checkAutoScroll(e),this.mode){case`DRAGGING`:this.handleDragMove(e);break;case`RESIZING_LEFT`:case`RESIZING_RIGHT`:this.gesture.itemId===`__ghost__`?this.handleGhostTimeResize(e):this.handleResizeMove(e);break;case`RESIZING_TOP`:case`RESIZING_BOTTOM`:this.handleGhostRowResize(e);break}}},this.onPointerUp=e=>{if(document.removeEventListener(`pointermove`,this.onPointerMove),document.removeEventListener(`pointerup`,this.onPointerUp),this.stopAutoScroll(),!this.gesture){this.mode=`IDLE`;return}let t=this.gesture.itemId===`__ghost__`;if(!this.gesture.thresholdExceeded&&!t){this.gesture.itemId&&this.callbacks.onItemClick?.(this.gesture.itemId,e),this.gesture=null,this.mode=`IDLE`,this.renderer.clearHighlights();return}if(t){this.gesture=null,this.mode=`GHOST_EDITING`;return}if(this.gesture.itemId&&this.gesture.thresholdExceeded){this.justDragged=!0,setTimeout(()=>this.justDragged=!1,300);let t=(e.clientX-this.gesture.startX)*this.scale.msPerPx,n=this.gesture.originalEnd.getTime()-this.gesture.originalStart.getTime(),r,i,a=this.gesture.originalGroup;if(this.mode===`DRAGGING`){r=this.scale.snap(new Date(this.gesture.originalStart.getTime()+t),this.snapMinutes),i=new Date(r.getTime()+n);let o=this.contentArea.getBoundingClientRect(),s=e.clientY-o.top+this.contentArea.scrollTop;a=this.layout.yToGroupId(s)||this.gesture.originalGroup}else this.mode===`RESIZING_LEFT`?(r=this.scale.snap(new Date(this.gesture.originalStart.getTime()+t),this.snapMinutes),i=this.gesture.originalEnd,r>=i&&(r=new Date(i.getTime()-this.snapMinutes*60*1e3))):(r=this.gesture.originalStart,i=this.scale.snap(new Date(this.gesture.originalEnd.getTime()+t),this.snapMinutes),i<=r&&(i=new Date(r.getTime()+this.snapMinutes*60*1e3)));this.callbacks.onMove?.({id:this.gesture.itemId,group:a,start:r,end:i})}this.gesture=null,this.mode=`IDLE`,this.renderer.clearHighlights()},this.onDblClick=e=>{if(this.justDragged)return;let{itemId:t}=Cz.hitTest(e.target);if(t)return;let n=this.contentArea.getBoundingClientRect(),r=e.clientX-n.left+this.contentArea.scrollLeft,i=e.clientY-n.top+this.contentArea.scrollTop,a=this.scale.xToTime(r),o=this.scale.snap(a,this.snapMinutes),s=new Date(o.getTime()+Dz),c=this.layout.yToGroupId(i);if(!c)return;let l=this.layout.groupIdToRowIndex(c);l<0||(this.ghostStartTime=o,this.ghostEndTime=s,this.ghostTopRow=l,this.ghostBottomRow=l,this.mode=`GHOST_EDITING`,this.renderer.showGhost({startTime:o,endTime:s,topRowIndex:l,bottomRowIndex:l}),this.renderer.highlightRows([l]))},this.onWheel=e=>{if(!((e.ctrlKey||e.metaKey)&&!this.enablePinchZoom)){if(e.preventDefault(),(e.ctrlKey||e.metaKey)&&this.enablePinchZoom){let t=e.deltaY>0?1.15:.87,n=this.contentArea.getBoundingClientRect(),r=e.clientX-n.left;this.scale.zoom(t,r)}else if(e.shiftKey||Math.abs(e.deltaX)>Math.abs(e.deltaY)){let t=e.deltaX||e.deltaY;this.scale.pan(t)}else{this.scrollContainer&&(this.scrollContainer.scrollTop+=e.deltaY);return}this.onScaleChanged?.()}},this.onScaleChanged=null,this.onKeyDown=e=>{e.key===`Escape`&&this.mode===`GHOST_EDITING`&&this.cancelGhost()},this.scale=e,this.layout=t,this.renderer=n,this.contentArea=t.getContentArea(),this.wheelTarget=this.contentArea,this.callbacks=r,this.snapMinutes=i,this.enablePinchZoom=a}setItems(e){this.items=e}setScrollContainer(e){this.scrollContainer=e}setWheelTarget(e){this.wheelTarget=e}attach(){this.contentArea.addEventListener(`pointerdown`,this.onPointerDown),this.contentArea.addEventListener(`dblclick`,this.onDblClick),this.wheelTarget.addEventListener(`wheel`,this.onWheel,{passive:!1}),document.addEventListener(`keydown`,this.onKeyDown)}detach(){this.contentArea.removeEventListener(`pointerdown`,this.onPointerDown),this.contentArea.removeEventListener(`dblclick`,this.onDblClick),this.wheelTarget.removeEventListener(`wheel`,this.onWheel),document.removeEventListener(`keydown`,this.onKeyDown),document.removeEventListener(`pointermove`,this.onPointerMove),document.removeEventListener(`pointerup`,this.onPointerUp),this.stopAutoScroll()}getMode(){return this.mode}startGesture(e,t,n){e.preventDefault();let r=this.items.find(e=>e.id===t),i,a,o;if(t===`__ghost__`)i=this.ghostStartTime,a=this.ghostEndTime,o=``;else if(r)i=r.start instanceof Date?r.start:new Date(r.start),a=r.end?r.end instanceof Date?r.end:new Date(r.end):i,o=r.group;else return;this.gesture={mode:n,itemId:t,startX:e.clientX,startY:e.clientY,originalStart:i,originalEnd:a,originalGroup:o,currentX:e.clientX,currentY:e.clientY,thresholdExceeded:!1},this.mode=n,this.contentArea.setPointerCapture(e.pointerId),document.addEventListener(`pointermove`,this.onPointerMove),document.addEventListener(`pointerup`,this.onPointerUp)}handleDragMove(e){if(!this.gesture||!this.gesture.itemId)return;let t=(e.clientX-this.gesture.startX)*this.scale.msPerPx,n=this.gesture.originalEnd.getTime()-this.gesture.originalStart.getTime(),r=this.scale.snap(new Date(this.gesture.originalStart.getTime()+t),this.snapMinutes),i=new Date(r.getTime()+n),a=this.contentArea.getBoundingClientRect(),o=e.clientY-a.top+this.contentArea.scrollTop,s=this.layout.yToGroupId(o)||this.gesture.originalGroup;if(this.callbacks.onMoving){let e=this.callbacks.onMoving({id:this.gesture.itemId,group:s,start:r,end:i});if(e===null)return;r=e.start,i=e.end}let c=this.scale.timeToX(r),l=this.scale.timeToX(i)-c,u=this.layout.groupIdToRowIndex(s),d=this.layout.getRowTop(u>=0?u:0);this.renderer.updateItemPosition(this.gesture.itemId,c,d,l),u>=0&&this.renderer.highlightRows([u])}handleResizeMove(e){if(!this.gesture||!this.gesture.itemId)return;let t=(e.clientX-this.gesture.startX)*this.scale.msPerPx,n=this.gesture.originalStart,r=this.gesture.originalEnd;if(this.mode===`RESIZING_LEFT`?(n=this.scale.snap(new Date(this.gesture.originalStart.getTime()+t),this.snapMinutes),n>=r&&(n=new Date(r.getTime()-this.snapMinutes*60*1e3))):(r=this.scale.snap(new Date(this.gesture.originalEnd.getTime()+t),this.snapMinutes),r<=n&&(r=new Date(n.getTime()+this.snapMinutes*60*1e3))),this.callbacks.onMoving){let e=this.callbacks.onMoving({id:this.gesture.itemId,group:this.gesture.originalGroup,start:n,end:r});if(e===null)return;n=e.start,r=e.end}let i=this.scale.timeToX(n),a=this.scale.timeToX(r)-i,o=this.layout.groupIdToRowIndex(this.gesture.originalGroup),s=this.layout.getRowTop(o>=0?o:0);this.renderer.updateItemPosition(this.gesture.itemId,i,s,a)}handleGhostTimeResize(e){if(!this.gesture)return;let t=this.contentArea.getBoundingClientRect(),n=e.clientX-t.left+this.contentArea.scrollLeft,r=this.scale.snap(this.scale.xToTime(n),this.snapMinutes);this.mode===`RESIZING_LEFT`?r<this.ghostEndTime&&(this.ghostStartTime=r):r>this.ghostStartTime&&(this.ghostEndTime=r),this.updateGhostDisplay()}handleGhostRowResize(e){if(!this.gesture)return;let t=this.contentArea.getBoundingClientRect(),n=e.clientY-t.top+this.contentArea.scrollTop,r=Math.floor(n/this.layout.getRowHeight()),i=Math.max(0,Math.min(this.layout.getGroupCount()-1,r));this.mode===`RESIZING_TOP`?i<=this.ghostBottomRow&&(this.ghostTopRow=i):i>=this.ghostTopRow&&(this.ghostBottomRow=i),this.updateGhostDisplay()}updateGhostDisplay(){this.renderer.showGhost({startTime:this.ghostStartTime,endTime:this.ghostEndTime,topRowIndex:this.ghostTopRow,bottomRowIndex:this.ghostBottomRow});let e=[];for(let t=this.ghostTopRow;t<=this.ghostBottomRow;t++)e.push(t);this.renderer.highlightRows(e)}confirmGhost(){if(!this.ghostStartTime||!this.ghostEndTime){this.cancelGhost();return}let e=[];for(let t=this.ghostTopRow;t<=this.ghostBottomRow;t++){let n=this.layout.getGroupAtIndex(t);n&&e.push(n.id)}if(e.length===0){this.cancelGhost();return}let t={groupIds:e,topRowIndex:this.ghostTopRow,bottomRowIndex:this.ghostBottomRow,startTime:this.ghostStartTime,endTime:this.ghostEndTime};this.renderer.clearGhost(),this.renderer.clearHighlights(),this.mode=`IDLE`,this.callbacks.onMultiRowCreate?.(t),this.ghostStartTime=null,this.ghostEndTime=null}cancelGhost(){this.renderer.clearGhost(),this.renderer.clearHighlights(),this.mode=`IDLE`,this.ghostStartTime=null,this.ghostEndTime=null}checkAutoScroll(e){if(!this.scrollContainer)return;let t=this.scrollContainer.getBoundingClientRect(),n=t.bottom-e.clientY,r=e.clientY-t.top;n<Tz?(this.autoScrollDelta=Ez*(1-n/Tz),this.startAutoScroll()):r<Tz?(this.autoScrollDelta=-8*(1-r/Tz),this.startAutoScroll()):this.stopAutoScroll()}startAutoScroll(){if(this.autoScrollRaf!==null)return;let e=()=>{this.scrollContainer&&(this.scrollContainer.scrollTop+=this.autoScrollDelta,this.autoScrollRaf=requestAnimationFrame(e))};this.autoScrollRaf=requestAnimationFrame(e)}stopAutoScroll(){this.autoScrollRaf!==null&&(cancelAnimationFrame(this.autoScrollRaf),this.autoScrollRaf=null),this.autoScrollDelta=0}},kz=class{constructor(e,t,n,r={}){this.callbacks={},this.resizeObserver=null,this._batchUpdating=!1,this.eventListeners=new Map,this.options={rowHeight:40,...r};let i=new Date,a=r.start||i,o=r.end||new Date(i.getTime()+720*60*1e3),s=e.clientWidth||800;this.scale=new pz(a,o,s),(r.min||r.max||r.zoomMin||r.zoomMax)&&this.scale.setLimits({min:r.min,max:r.max,zoomMin:r.zoomMin,zoomMax:r.zoomMax}),this.timeAxis=new gz(this.scale,r.timeAxis),this.layout=new Sz(this.options.rowHeight),this.renderer=new Cz(this.scale,this.layout),this.interaction=new Oz(this.scale,this.layout,this.renderer,this.callbacks,5,r.enablePinchZoom??!1),this.rootEl=document.createElement(`div`),this.rootEl.className=`tg-timeline`,r.height&&(this.rootEl.style.height=r.height);let c=document.createElement(`div`);c.className=`tg-axis-header`;let l=document.createElement(`div`);l.className=`tg-axis-spacer`,c.appendChild(l),c.appendChild(this.timeAxis.getDayElement()),c.appendChild(this.timeAxis.getHourElement()),this.rootEl.appendChild(c),this.bodyEl=document.createElement(`div`),this.bodyEl.className=`tg-body`,this.bodyEl.appendChild(this.layout.getLabelPanel());let u=document.createElement(`div`);u.className=`tg-scroll-wrapper`,u.appendChild(this.layout.getContentArea()),this.bodyEl.appendChild(u),this.rootEl.appendChild(this.bodyEl),e.appendChild(this.rootEl),u.addEventListener(`scroll`,()=>{this.layout.getLabelPanel().scrollTop=u.scrollTop}),this.interaction.setScrollContainer(u),this.interaction.setWheelTarget(this.rootEl),this.interaction.onScaleChanged=()=>this.renderAll(),this.layout.setGroups(n),this.renderer.setItems(t),this.interaction.setItems(t),this.interaction.attach(),this.renderAll(),this.resizeObserver=new ResizeObserver(()=>{let t=u.clientWidth||e.clientWidth;this.scale.setWidth(t),this.renderAll()}),this.resizeObserver.observe(u)}setGroups(e){this.layout.setGroups(e),this.renderAll()}setItems(e){this.renderer.setItems(e),this.interaction.setItems(e),this.renderAll()}setWindow(e,t,n){this.scale.setWindow(e,t),this.renderAll()}setOptions(e){(e.min!==void 0||e.max!==void 0||e.zoomMin!==void 0||e.zoomMax!==void 0)&&this.scale.setLimits({min:e.min,max:e.max,zoomMin:e.zoomMin,zoomMax:e.zoomMax}),e.timeAxis&&this.timeAxis.setTimeAxisOptions(e.timeAxis),e.rowHeight!==void 0&&(this.options.rowHeight=e.rowHeight),Object.assign(this.options,e),this.renderAll()}on(e,t){this.eventListeners.has(e)||this.eventListeners.set(e,new Set),this.eventListeners.get(e).add(t),e===`click`&&(this.callbacks.onItemClick=(e,t)=>{this.emit(`click`,{item:e,event:t})})}off(e,t){this.eventListeners.get(e)?.delete(t)}emit(e,t){let n=this.eventListeners.get(e);if(n)for(let e of n)e(t)}onMultiRowCreate(e){this.callbacks.onMultiRowCreate=e}onAdd(e){this.callbacks.onAdd=e}onMove(e){this.callbacks.onMove=e}onMoving(e){this.callbacks.onMoving=e}onDayClick(e){this.timeAxis.onDayClick=e}getContentElement(){return this.layout.getContentArea()}setDailyBounds(e,t){this.scale.setDailyBounds(e,t),this.renderAll()}clearDailyBounds(){this.scale.clearDailyBounds(),this.renderAll()}setVisibleDays(e){this.scale.setVisibleDays(e),this.renderAll()}clearVisibleDays(){this.scale.clearVisibleDays(),this.renderAll()}beginBatchUpdate(){this._batchUpdating=!0}endBatchUpdate(){this._batchUpdating=!1,this.renderAll()}renderAll(){if(this._batchUpdating)return;this.timeAxis.render(),this.layout.render(),this.renderer.render();let e=this.layout.getContentArea(),t=this.layout.getGroupCount()*(this.options.rowHeight??40);this.timeAxis.renderGridlines(e,t)}destroy(){this.interaction.detach(),this.resizeObserver?.disconnect(),this.timeAxis.destroy(),this.layout.destroy(),this.renderer.destroy(),this.rootEl.remove(),this.eventListeners.clear()}},{BLOCK_TYPES:Az}=t.availability,jz=class{constructor(e,t){this.timeline=null,this.unsubscribe=null,this.currentItems=new Map,this.isRendering=!1,this.popoverManager=uz(),this.viewState=new vI,this.currentDay=null,this.currentView=`day`,this.selectedCourts=new Set,this.visibleCourts=null,this.handleOnMove=e=>{let t=DI(e.id);if(!t)return!1;let n=EI(e.group),r=this.toLocalISO(e.start),i=this.toLocalISO(e.end),a=this.engine.moveBlock({blockId:t,newTimeRange:{start:r,end:i},newCourt:n||void 0});return a.conflicts.some(e=>e.severity===`ERROR`)?(this.showConflictDialog(a.conflicts),!1):(this.render(),!0)},this.handleOnMoving=e=>{this.popoverManager.destroy();let t=this.currentItems.get(e.id);if(t&&(t.isSegment||t.type===`background`))return null;let{start:n,end:r}=e,i=EI(e.group);if(i){let e=n.toISOString().slice(0,10),t=this.engine.getCourtAvailability(i,e),a=new Date(`${e}T${t.startTime}:00`),o=new Date(`${e}T${t.endTime}:00`);n<a&&(n=a),r>o&&(r=o)}return{start:n,end:r}},this.handleTimelineClick=e=>{let t=e.item;if(!t){this.popoverManager.destroy();return}let n=this.currentItems.get(t);if(!n){this.popoverManager.destroy();return}if(n.isSegment||n.type===`background`){this.popoverManager.destroy();return}if(this.popoverManager.isActiveFor(t)){this.popoverManager.destroy();return}let r=DI(t);if(!r)return;let i=(e.event?.target)?.closest?.(`.tg-item`)??this.config.container.querySelector(`[data-item-id="${t}"]`);if(i){let e=String(n.start).slice(0,10);this.popoverManager.showForEngineBlock(i,{itemId:t,blockId:r,engine:this.engine,day:e,onBlockChanged:()=>this.render(),onManageRegistrations:this.config.onManageRegistrations})}this.config.onBlockSelected&&this.config.onBlockSelected(r)},this.handleMultiRowCreate=e=>{let t=[];for(let n of e.groupIds){let e=EI(n);e&&t.push(e)}if(t.length===0)return;let n=this.toLocalISO(e.startTime),r=this.toLocalISO(e.endTime),i=this.engine.applyBlock({courts:t,timeRange:{start:n,end:r},type:Az.BLOCKED,reason:`New Block`});if(this.render(),i.applied.length>0){let e=i.applied[0].block.id,t=`block-${e}`,r=n.slice(0,10);setTimeout(()=>{let n=this.config.container.querySelector(`[data-item-id="${t}"]`);n&&this.popoverManager.showForEngineBlock(n,{itemId:t,blockId:e,engine:this.engine,day:r,onBlockChanged:()=>this.render(),onManageRegistrations:this.config.onManageRegistrations})},50)}this.config.onTimeRangeSelected&&this.config.onTimeRangeSelected({courts:t,start:n,end:r})},this.handleEngineEvent=e=>{switch(e.type){case`STATE_CHANGED`:case`BLOCKS_CHANGED`:this.render(),e.type===`BLOCKS_CHANGED`&&this.config.onBlocksChanged&&this.config.onBlocksChanged();break;case`CONFLICTS_CHANGED`:this.config.showConflicts&&this.render();break;case`AVAILABILITY_CHANGED`:this.updateTimelineWindow(),this.render();break}},this.engine=e,this.config={groupingMode:`BY_VENUE`,showConflicts:!0,showSegmentLabels:!1,colorScheme:yI,...t},this.initialize()}initialize(){if(this.config.initialDay)this.currentDay=this.config.initialDay;else{let e=this.engine.getActiveDays();this.currentDay=e.length>0?e[0]:t.tools.dateTime.extractDate(new Date().toISOString())}this.viewState.setSelectedDay(this.currentDay),this.config.initialView&&(this.currentView=this.config.initialView),this.unsubscribe=this.engine.subscribe(this.handleEngineEvent),this.ensureTimeline()}ensureTimeline(){this.timeline||setTimeout(()=>{this.timeline||this.createTimelineWithData()},0)}getViewDays(){if(!this.currentDay)return[];let e=dz[this.currentView],t=e?e.days:1;if(t<=0)return this.engine.getActiveDays();if(t<=1)return[this.currentDay];let n=this.engine.getActiveDays(),r=n.indexOf(this.currentDay);return r===-1?[this.currentDay]:n.slice(r,r+t)}buildViewData(){if(!this.currentDay)return{groups:[],items:[]};let e=this.getViewDays(),t=this.engine.listCourtMeta(),n=this.viewState.getLayerVisibility(),r={groupingMode:this.config.groupingMode,layerVisibility:n,showSegmentLabels:this.config.showSegmentLabels,colorScheme:this.config.colorScheme},i=bI(this.engine.getDayTimeline(e[0]),t,r);this.visibleCourts!==null&&this.visibleCourts.size>0&&(i=i.filter(e=>this.visibleCourts.has(String(e.id))));let a=this.visibleCourts!==null&&this.visibleCourts.size>0&&i.length>0?new Set(i.map(e=>String(e.id))):null,o=e.length<=1?this.engine.getActiveDays():e,s=[],c=[];for(let e of o){let t=this.engine.getDayTimeline(e);s.push(...xI(t,r)),c.push(...CI(this.engine.getDayBlocks(e),r))}let l=a?s.filter(e=>a.has(String(e.group))):s,u=a?c.filter(e=>a.has(String(e.group))):c,d=[...l,...u];return{groups:i.map((e,t)=>({id:String(e.id),content:typeof e.content==`string`?e.content:``,order:t,courtRef:e.courtRef,surface:e.surface,indoor:e.indoor,hasLights:e.hasLights,tags:e.tags})),items:d.map(e=>({id:String(e.id),group:String(e.group),content:e.content,start:e.start,end:e.end,type:e.type===`background`?`background`:`range`,className:e.className,style:e.style,title:e.title,editable:e.editable,blockId:e.blockId,status:e.status,reason:e.reason,isBlock:e.isBlock,isSegment:e.isSegment,isConflict:e.isConflict}))}}createTimelineWithData(){let e=this.engine.getConfig(),n=this.currentDay||t.tools.dateTime.extractDate(new Date().toISOString()),r=this.getViewDays(),i=r[0]||n,a=r[r.length-1]||n,o=this.engine.getVisibleTimeRange(i),s=this.engine.getVisibleTimeRange(a),c=OI({dayStartTime:o.startTime,dayEndTime:o.endTime,slotMinutes:e.slotMinutes,day:i}),l=dz[this.currentView],u=r.length>1?new Date(`${a}T${s.endTime}:00`):c.end,d=this.engine.getActiveDays(),f=d[0]||i,p=d[d.length-1]||a,m=this.engine.getVisibleTimeRange(f),h=this.engine.getVisibleTimeRange(p),g=new Date(`${f}T${m.startTime}:00`),_=new Date(`${p}T${h.endTime}:00`),{groups:v,items:y}=this.buildViewData();this.currentItems.clear();for(let e of y)this.currentItems.set(e.id,e);this.timeline=new kz(this.config.container,y,v,{start:c.start,end:u,min:g,max:_,zoomMin:c.zoomMin,zoomMax:_.getTime()-g.getTime(),snap:e=>this.snapToMinutes(e,5),rowHeight:40,height:`100%`,timeAxis:l?l.timeAxis:{scale:`hour`,step:1},showTooltips:!0}),this.timeline.setDailyBounds(o.startTime,o.endTime),r.length>1&&this.timeline.setVisibleDays(r),this.timeline.on(`click`,this.handleTimelineClick),this.timeline.onMove(this.handleOnMove),this.timeline.onMoving(this.handleOnMoving),this.timeline.onMultiRowCreate(this.handleMultiRowCreate),this.timeline.onDayClick(e=>{this.setDay(e),this.setViewPreset(`day`),this.config.onDayNavigate?.(e)}),this.config.onBlocksChanged?.()}setDay(e){this.currentDay!==e&&(this.currentDay=e,this.viewState.setSelectedDay(e),this.updateTimelineWindow(),this.render())}getDay(){return this.currentDay}setView(e){this.currentView=e,this.updateTimelineWindow()}setViewPreset(e){let t=dz[e];if(!t||!this.timeline||!this.currentDay)return;this.currentView=e;let n=this.getViewDays(),r=n[0],i=n[n.length-1],a=this.engine.getVisibleTimeRange(r),o=this.engine.getVisibleTimeRange(i);this.timeline.beginBatchUpdate();let s=t.days===0||t.days>1;this.timeline.setDailyBounds(a.startTime,a.endTime),s?this.timeline.setVisibleDays(n):this.timeline.clearVisibleDays();let c=new Date(`${r}T${a.startTime}:00`),l=new Date(`${i}T${o.endTime}:00`);this.timeline.setWindow(c,l,{animation:!1}),this.timeline.setOptions({timeAxis:t.timeAxis});let{groups:u,items:d}=this.buildViewData();this.currentItems.clear();for(let e of d)this.currentItems.set(e.id,e);this.timeline.setGroups(u),this.timeline.setItems(d),this.timeline.endBatchUpdate(),this.config.onBlocksChanged?.()}setSelectedCourts(e){this.selectedCourts=new Set(e)}getSelectedCourts(){return Array.from(this.selectedCourts)}setVisibleCourts(e){e&&e.size===0?this.visibleCourts=null:this.visibleCourts=e,this.render()}setLayerVisibility(e,t){this.viewState.setLayerVisibility(e,t),this.render()}refresh(){this.updateTimelineWindow(),this.render()}destroy(){this.popoverManager.destroy(),this.unsubscribe&&this.unsubscribe(),this.timeline&&=(this.timeline.destroy(),null)}updateTimelineWindow(){if(!this.timeline||!this.currentDay)return;let e=this.engine.getConfig(),t=this.getViewDays(),n=t[0]||this.currentDay,r=t[t.length-1]||this.currentDay,i=this.engine.getVisibleTimeRange(n),a=this.engine.getVisibleTimeRange(r),o=OI({dayStartTime:i.startTime,dayEndTime:i.endTime,slotMinutes:e.slotMinutes,day:n}),s=dz[this.currentView],c=t.length>1?new Date(`${r}T${a.endTime}:00`):o.end,l=this.engine.getActiveDays(),u=l[0]||n,d=l[l.length-1]||r,f=this.engine.getVisibleTimeRange(u),p=this.engine.getVisibleTimeRange(d),m=new Date(`${u}T${f.startTime}:00`),h=new Date(`${d}T${p.endTime}:00`);this.timeline.beginBatchUpdate(),this.timeline.setDailyBounds(i.startTime,i.endTime),t.length>1?this.timeline.setVisibleDays(t):this.timeline.clearVisibleDays(),this.timeline.setOptions({min:m,max:h}),this.timeline.setWindow(o.start,c,{animation:!1}),s&&this.timeline.setOptions({timeAxis:s.timeAxis}),this.timeline.endBatchUpdate()}render(){if(this.currentDay&&!this.isRendering){if(!this.timeline){this.ensureTimeline();return}this.isRendering=!0;try{let{groups:e,items:t}=this.buildViewData();this.currentItems.clear();for(let e of t)this.currentItems.set(e.id,e);this.timeline.setGroups(e),this.timeline.setItems(t)}finally{this.isRendering=!1}}}getPopoverManager(){return this.popoverManager}snapToMinutes(e,t){let n=e.getTime(),r=t*60*1e3,i=Math.round(n/r)*r;return new Date(i)}toLocalISO(e){let t=e=>e.toString().padStart(2,`0`);return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}T${t(e.getHours())}:${t(e.getMinutes())}:${t(e.getSeconds())}`}showConflictDialog(e){let t=e.filter(e=>e.severity===`ERROR`);if(t.length===0)return;if(this.config.onConflict){this.config.onConflict(t);return}let n=t.map(e=>e.message).join(`
248
- `);console.warn(`[availability-grid] cannot complete operation:\n${n}`)}getTimeline(){return this.timeline}getEngine(){return this.engine}getViewState(){return this.viewState}};function Mz(e){let t=e?.totalHours??`Total Hours`,n=e?.blocked??`Blocked`,r=e?.available??`Available`,i=e?.avgPerCourt??`Avg Avail/Court`,a=document.createElement(`div`);a.className=`tg-stats-bar`;let o=e=>{let t=document.createElement(`span`);return t.innerHTML=`${e}: <b>&mdash;</b>`,a.appendChild(t),t},s=o(t),c=o(n),l=o(r),u=o(i);return{element:a,update:e=>{s.innerHTML=`${t}: <b>${e.totalHours.toFixed(1)}h</b>`,c.innerHTML=`${n}: <b>${e.blockedHours.toFixed(1)}h</b>`,l.innerHTML=`${r}: <b>${e.availableHours.toFixed(1)}h</b>`,u.innerHTML=`${i}: <b>${e.avgPerCourt.toFixed(1)}h</b>`}}}var Nz,Pz,Fz,Iz=!1;async function Lz(){if(!Nz){let e=await Promise.resolve().then(()=>(NR(),kI));Nz=e.TimepickerUI,Pz=e.PluginRegistry,Fz=(await Promise.resolve().then(()=>(ZR(),PR))).RangePlugin,!Iz&&Pz&&Fz&&(Pz.register(Fz),Iz=!0)}}var Rz=0;async function zz(e){let{title:t,currentDay:n,currentStartTime:r,currentEndTime:i,showScopeToggle:a=!0,venueBounds:o,onConfirm:s,onCancel:c,labels:l={}}=e;await Lz();let u=new Date(n+`T12:00:00`).toLocaleDateString(`en-US`,{month:`short`,day:`numeric`}),d=`tp-court-avail-${++Rz}`,f=a?`current-day`:`all-days`,p=document.createElement(`div`);p.className=`tg-modal`,p.style.cssText=`
247
+ `,l.addEventListener(`mouseenter`,()=>{l.style.background=oz,l.style.color=sz}),l.addEventListener(`mouseleave`,()=>{l.style.background=`transparent`,l.style.color=``}),l.addEventListener(`click`,()=>{let s=r.getDayBlocks(i).find(e=>e.id===t);s&&(r.removeBlock(t),r.applyBlock({courts:[s.court],timeRange:{start:s.start,end:s.end},type:e,reason:a}),o()),n()}),c.appendChild(l)}let l=document.createElement(`div`);l.style.cssText=`border-top:1px solid var(--chc-border-primary); margin:4px 0;`,c.appendChild(l);let u=document.createElement(`div`);u.style.cssText=az,u.innerHTML=`<span style="font-size:14px;">&#128339;</span> Adjust Time`,u.addEventListener(`mouseenter`,()=>{u.style.background=oz,u.style.color=sz}),u.addEventListener(`mouseleave`,()=>{u.style.background=`transparent`,u.style.color=``}),u.addEventListener(`click`,()=>{n();let e=r.getDayBlocks(i).find(e=>e.id===t);e&&rz({startTime:e.start,endTime:e.end,dayStartTime:`06:00`,dayEndTime:`22:00`,minuteIncrement:5,onConfirm:(n,i)=>{let a=e.start.slice(0,10);r.resizeBlock({blockId:t,newTimeRange:{start:`${a}T${n}:00`,end:`${a}T${i}:00`}}),o()},onCancel:()=>{}})}),c.appendChild(u);let d=r.getDayBlocks(i).find(e=>e.id===t);if(s&&d?.type===iz.PRACTICE){let e=document.createElement(`div`);e.style.cssText=az,e.innerHTML=`<span style="font-size:14px;">&#128101;</span> Manage Registrations`,e.addEventListener(`mouseenter`,()=>{e.style.background=oz,e.style.color=sz}),e.addEventListener(`mouseleave`,()=>{e.style.background=`transparent`,e.style.color=``}),e.addEventListener(`click`,()=>{n();let e=r.getDayBlocks(i).find(e=>e.id===t);e&&s({blockId:t,courtId:e.court.courtId,venueId:e.court.venueId,date:i,startTime:a(e.start),endTime:a(e.end)})}),c.appendChild(e)}let f=document.createElement(`div`);return f.style.cssText=`padding:6px 12px; cursor:pointer; display:flex; align-items:center; gap:8px; color:#e74c3c;`,f.innerHTML=`<span style="font-size:14px;">&#128465;</span> Delete`,f.addEventListener(`mouseenter`,()=>{f.style.background=`#fdecea`}),f.addEventListener(`mouseleave`,()=>{f.style.background=`transparent`}),f.addEventListener(`click`,()=>{r.removeBlock(t),o(),n()}),c.appendChild(f),c}function a(e){return(e.includes(`T`)?e.split(`T`)[1]:e).slice(0,5)}function o(r,i,a){n();let o=Dm(r,{content:i,allowHTML:!0,interactive:!0,trigger:`manual`,placement:`bottom`,appendTo:document.body,onHidden:()=>{e=null,t=null}});e=o,t=a,o.show()}return{show(e,i){if(t===i.itemId){n();return}o(e,r(i),i.itemId)},showForEngineBlock(e,r){if(t===r.itemId){n();return}o(e,i(r),r.itemId)},destroy(){n()},isActiveFor(e){return t===e}}}var uz={day:{label:`1 Day`,days:1,timeAxis:{scale:`hour`,step:1}},days3:{label:`3 Days`,days:3,timeAxis:{scale:`hour`,step:3}},week:{label:`Week`,days:7,timeAxis:{scale:`hour`,step:6}},all:{label:`Tournament`,days:0,timeAxis:{scale:`hour`,step:6}}};function dz(e,t,n,r){let i=r?.labels,a=document.createElement(`div`);a.className=`tg-view-toolbar`;let o=document.createElement(`span`);o.textContent=(i?.view??`View`)+`:`,o.className=`tg-view-toolbar-label`,a.appendChild(o);let s=document.createElement(`input`);s.type=`text`,s.readOnly=!0,s.className=`tg-view-toolbar-date`,n&&s.addEventListener(`changeDate`,()=>{let e=s.value;e&&n(e)}),a.appendChild(s);let c={day:i?.day1??`1 Day`,days3:i?.days3??`3 Days`,week:i?.week??`Week`,all:i?.tournament??`Tournament`},l=[],u=[],d=t||`day`,f=e=>{l.forEach((t,n)=>{u[n]===e?t.className=`sp-btn sp-btn--active`:t.className=`sp-btn`})};for(let[t]of Object.entries(uz)){let n=document.createElement(`button`);n.textContent=c[t],n.className=t===d?`sp-btn sp-btn--active`:`sp-btn`,n.addEventListener(`click`,()=>{f(t),e(t)}),l.push(n),u.push(t),a.appendChild(n)}if(r?.onSetDefaultAvailability||r?.onSave){let e=document.createElement(`div`);e.className=`tg-view-toolbar-spacer`,a.appendChild(e)}if(r?.onSetDefaultAvailability){let e=document.createElement(`button`);e.textContent=i?.setDefaultAvailability??`Set Default Availability`,e.className=`sp-btn sp-btn--fill-muted`,e.addEventListener(`click`,r.onSetDefaultAvailability),a.appendChild(e)}let p=null;return r?.onSave&&(p=document.createElement(`button`),p.textContent=i?.saveToTournament??`Save to Tournament`,p.className=`sp-btn sp-btn--fill`,p.disabled=!0,p.addEventListener(`click`,r.onSave),a.appendChild(p)),{element:a,dateInput:s,setActiveView:f,setDate:e=>{s.value=e},setSaveEnabled:e=>{p&&(p.disabled=!e)}}}var fz=class{constructor(e,t,n){this._dailyStartMin=0,this._dailyEndMin=1440,this._useDailyBounds=!1,this._visibleDays=null,this._visibleDayMs=null,this._start=e.getTime(),this._end=t.getTime(),this._width=Math.max(n,1),this._min=this._start,this._max=this._end,this._zoomMin=900*1e3,this._zoomMax=(this._end-this._start)*2}get start(){return new Date(this._start)}get end(){return new Date(this._end)}get width(){return this._width}get duration(){return this._end-this._start}get msPerPx(){if(!this._useDailyBounds)return this.duration/this._width;let e=this.toCollapsedMin(new Date(this._start)),t=this.toCollapsedMin(new Date(this._end))-e;return t<=0?1:t*60*1e3/this._width}getDailyBounds(){return this._useDailyBounds?{startMin:this._dailyStartMin,endMin:this._dailyEndMin}:null}getVisibleDays(){return this._visibleDays}timeToX(e){if(!this._useDailyBounds)return(e.getTime()-this._start)/this.duration*this._width;let t=this.toCollapsedMin(e),n=this.toCollapsedMin(new Date(this._start)),r=this.toCollapsedMin(new Date(this._end))-n;return r<=0?0:(t-n)/r*this._width}xToTime(e){if(!this._useDailyBounds){let t=e/this._width*this.duration;return new Date(this._start+t)}let t=this.toCollapsedMin(new Date(this._start)),n=this.toCollapsedMin(new Date(this._end))-t;if(n<=0)return new Date(this._start);let r=t+e/this._width*n;return this.fromCollapsedMin(r)}snap(e,t){let n=e.getTime(),r=t*60*1e3;return new Date(Math.round(n/r)*r)}setWindow(e,t){this._start=e.getTime(),this._end=t.getTime(),this.clampBounds()}setLimits(e){e.min!==void 0&&(this._min=e.min.getTime()),e.max!==void 0&&(this._max=e.max.getTime()),e.zoomMin!==void 0&&(this._zoomMin=e.zoomMin),e.zoomMax!==void 0&&(this._zoomMax=e.zoomMax)}setWidth(e){this._width=Math.max(e,1)}setDailyBounds(e,t){let[n,r]=e.split(`:`).map(Number),[i,a]=t.split(`:`).map(Number);this._dailyStartMin=n*60+r,this._dailyEndMin=i*60+a,this._useDailyBounds=!0}clearDailyBounds(){this._useDailyBounds=!1,this._dailyStartMin=0,this._dailyEndMin=1440,this._visibleDays=null,this._visibleDayMs=null}setVisibleDays(e){this._visibleDays=e,this._visibleDayMs=e.map(e=>new Date(e+`T00:00:00`).getTime())}clearVisibleDays(){this._visibleDays=null,this._visibleDayMs=null}pan(e){if(this._visibleDays)return;if(this._useDailyBounds){let t=this.toCollapsedMin(new Date(this._start)),n=this.toCollapsedMin(new Date(this._end)),r=n-t;if(r<=0)return;let i=e/this._width*r,a=this.fromCollapsedMin(t+i),o=this.fromCollapsedMin(n+i);this._start=a.getTime(),this._end=o.getTime(),this.clampBounds();return}let t=e*this.msPerPx,n=this._start+t,r=this._end+t;if(n<this._min){let e=this._min-n;n+=e,r+=e}if(r>this._max){let e=r-this._max;n-=e,r-=e}this._start=n,this._end=r}zoom(e,t){if(this._visibleDays)return;if(this._useDailyBounds){let n=this.toCollapsedMin(new Date(this._start)),r=this.toCollapsedMin(new Date(this._end))-n,i=n+t/this._width*r,a=r*e,o=this._zoomMin/(60*1e3),s=this._zoomMax/(60*1e3);a=Math.max(o,Math.min(s,a));let c=t/this._width,l=this.fromCollapsedMin(i-a*c),u=this.fromCollapsedMin(i+a*(1-c));this._start=l.getTime(),this._end=u.getTime(),this.clampBounds();return}let n=this._start+t/this._width*this.duration,r=this.duration*e;r=Math.max(this._zoomMin,Math.min(this._zoomMax,r));let i=t/this._width;this._start=n-r*i,this._end=n+r*(1-i),this.clampBounds()}toCollapsedMin(e){let t=this._dailyEndMin-this._dailyStartMin;if(t<=0)return 0;let n=e.getHours()*60+e.getMinutes()+e.getSeconds()/60,r=Math.max(this._dailyStartMin,Math.min(this._dailyEndMin,n))-this._dailyStartMin;if(this._visibleDays&&this._visibleDayMs){let n=new Date(e);n.setHours(0,0,0,0);let i=n.getTime(),a=-1;for(let e=0;e<this._visibleDayMs.length;e++)if(this._visibleDayMs[e]===i){a=e;break}if(a===-1){if(i<this._visibleDayMs[0])return 0;if(i>this._visibleDayMs[this._visibleDayMs.length-1])return this._visibleDayMs.length*t;for(let e=0;e<this._visibleDayMs.length-1;e++)if(i>this._visibleDayMs[e]&&i<this._visibleDayMs[e+1])return(e+1)*t;return 0}return a*t+r}let i=new Date(this._start);i.setHours(0,0,0,0);let a=new Date(e);return a.setHours(0,0,0,0),Math.round((a.getTime()-i.getTime())/(1440*60*1e3))*t+r}fromCollapsedMin(e){let t=this._dailyEndMin-this._dailyStartMin;if(t<=0)return new Date(this._start);let n=Math.floor(e/t),r=e-n*t;if(this._visibleDays&&this._visibleDayMs){let e=Math.max(0,Math.min(n,this._visibleDayMs.length-1)),t=new Date(this._visibleDayMs[e]),i=this._dailyStartMin+r;return t.setHours(Math.floor(i/60),Math.round(i%60),0,0),t}let i=new Date(this._start);i.setHours(0,0,0,0);let a=new Date(i);a.setDate(a.getDate()+n);let o=this._dailyStartMin+r;return a.setHours(Math.floor(o/60),Math.round(o%60),0,0),a}clampBounds(){let e=this._end-this._start;this._start<this._min&&(this._start=this._min,this._end=this._min+e),this._end>this._max&&(this._end=this._max,this._start=this._max-e),this._start<this._min&&(this._start=this._min),this._end>this._max&&(this._end=this._max)}},pz=`tg-tick-day`,mz=`tg-tick-hour`,hz=class{constructor(e,t){this.scale=e,this.tickConfig=gz(t),this.dayEl=document.createElement(`div`),this.dayEl.className=`tg-day-axis`,this.dayEl.setAttribute(`role`,`presentation`),this.hourEl=document.createElement(`div`),this.hourEl.className=`tg-hour-axis`,this.hourEl.setAttribute(`role`,`presentation`),this.dayEl.addEventListener(`click`,e=>{let t=(e.target.closest?.(`.${pz}`))?.dataset.day;t&&this.onDayClick&&this.onDayClick(t)})}getDayElement(){return this.dayEl}getHourElement(){return this.hourEl}setTimeAxisOptions(e){this.tickConfig=gz(e)}render(){this.renderDayLabels(),this.renderHourTicks()}renderDayLabels(){this.dayEl.innerHTML=``;let{dayFormat:e}=this.tickConfig,t=this.tickConfig.scale,n=this.scale.getDailyBounds();if(n&&t===`hour`){this.renderDayLabelsWithBounds(n,e);return}if(t===`hour`){let t=this.scale.start.getTime(),n=vz(t,this.scale.end.getTime());if(n.length===0){let n=new Date(t);n.setHours(0,0,0,0);let r=document.createElement(`div`);r.className=pz,r.style.left=`0px`,r.style.maxWidth=`${this.scale.width}px`,r.dataset.day=_z(n),r.textContent=e.format(n),this.dayEl.appendChild(r);return}for(let t of n){let n=this.scale.timeToX(t),r=document.createElement(`div`);r.className=pz,r.style.left=`${n}px`,r.dataset.day=_z(t),r.textContent=e.format(t),this.dayEl.appendChild(r)}}else if(t===`day`){let e=bz(this.scale.start.getTime(),this.scale.end.getTime());for(let t of e){let e=this.scale.timeToX(t),n=document.createElement(`div`);n.className=pz,n.style.left=`${e}px`,n.dataset.day=_z(t),n.textContent=this.tickConfig.dayFormat.format(t),this.dayEl.appendChild(n)}}}renderDayLabelsWithBounds(e,t){let n=this.getVisibleDayDates(e),r=this.scale.getVisibleDays(),i=n.length,a=i>0?this.scale.width/i:this.scale.width,o=a<150?new Intl.DateTimeFormat(void 0,{weekday:`short`,day:`numeric`}):t;if(r&&r.length>0)for(let t of n){let n=new Date(t);n.setHours(0,0,0,0),n.setMinutes(e.startMin);let r=this.scale.timeToX(n),i=document.createElement(`div`);i.className=pz,i.style.left=`${r}px`,i.style.maxWidth=`${Math.floor(a)-4}px`,i.dataset.day=_z(t),i.textContent=o.format(n),this.dayEl.appendChild(i)}else{let t=this.scale.width;for(let r of n){let n=new Date(r);n.setHours(0,0,0,0),n.setMinutes(e.startMin);let i=new Date(r);i.setHours(0,0,0,0),i.setDate(i.getDate()+1),i.setMinutes(e.startMin);let a=this.scale.timeToX(n),s=this.scale.timeToX(i),c=Math.max(a,0),l=Math.min(s,t)-c;if(l<=0)continue;let u=document.createElement(`div`);u.className=pz,u.style.left=`${c}px`,u.style.maxWidth=`${l}px`,u.dataset.day=_z(r),u.textContent=o.format(n),this.dayEl.appendChild(u)}}}renderHourTicks(){this.hourEl.innerHTML=``;let{hourFormat:e}=this.tickConfig,t=this.tickConfig.scale,n=this.tickConfig.step,r=this.scale.getDailyBounds();if(r&&t===`hour`){this.renderHourTicksWithBounds(r,n,e);return}let i=this.scale.start.getTime(),a=this.scale.end.getTime();if(t===`hour`){let t=new Set(vz(i,a).map(e=>e.getTime())),r=yz(i,a,n);for(let n of r){if(t.has(n.getTime()))continue;let r=this.scale.timeToX(n),i=document.createElement(`div`);i.className=mz,i.style.left=`${r}px`,i.textContent=e.format(n),this.hourEl.appendChild(i)}}else if(t===`day`){let e=new Set(bz(i,a).map(e=>e.getTime())),t=vz(i,a);for(let n of t){if(e.has(n.getTime()))continue;let t=this.scale.timeToX(n),r=document.createElement(`div`);r.className=mz,r.style.left=`${t}px`,r.textContent=new Intl.DateTimeFormat(void 0,{weekday:`short`,day:`numeric`}).format(n),this.hourEl.appendChild(r)}}}renderHourTicksWithBounds(e,t,n){let r=this.getVisibleDayDates(e);for(let i of r){let r=new Date(i);r.setHours(0,0,0,0),r.setMinutes(e.startMin);let a=new Date(i);a.setHours(0,0,0,0),a.setMinutes(e.endMin);let o=Math.ceil(e.startMin/60),s=new Date(i);for(s.setHours(o,0,0,0),s.getHours()%t!==0&&s.setHours(s.getHours()+(t-s.getHours()%t));s.getTime()<=a.getTime();){if(s.getTime()!==r.getTime()){let e=this.scale.timeToX(s),t=document.createElement(`div`);t.className=mz,t.style.left=`${e}px`,t.textContent=n.format(s),this.hourEl.appendChild(t)}s.setHours(s.getHours()+t)}}}getVisibleDayDates(e){let t=this.scale.getVisibleDays();if(t&&t.length>0)return t.map(e=>new Date(e+`T00:00:00`));let n=this.scale.start.getTime(),r=this.scale.end.getTime(),i=[],a=new Date(n);for(a.setHours(0,0,0,0);;){let t=new Date(a);if(t.setHours(0,0,0,0),t.setMinutes(e.endMin),t.getTime()<n){a.setDate(a.getDate()+1);continue}let o=new Date(a);if(o.setHours(0,0,0,0),o.setMinutes(e.startMin),o.getTime()>r)break;i.push(new Date(a)),a.setDate(a.getDate()+1)}return i}renderGridlines(e,t){e.querySelectorAll(`.tg-gridline`).forEach(e=>e.remove());let n=this.computeTickPositions();for(let{x:r,isMajor:i}of n){let n=document.createElement(`div`);n.className=i?`tg-gridline tg-gridline-major`:`tg-gridline`,n.style.left=`${r}px`,n.style.height=`${t}px`,e.appendChild(n)}}computeTickPositions(){let e=[],t=this.tickConfig.scale,n=this.tickConfig.step,r=this.scale.getDailyBounds(),i=this.scale.start.getTime(),a=this.scale.end.getTime();if(r&&t===`hour`){let t=this.getVisibleDayDates(r);for(let i of t){let t=new Date(i);t.setHours(0,0,0,0),t.setMinutes(r.startMin);let a=new Date(i);a.setHours(0,0,0,0),a.setMinutes(r.endMin),e.push({x:this.scale.timeToX(t),isMajor:!0});let o=Math.ceil(r.startMin/60),s=new Date(i);for(s.setHours(o,0,0,0),s.getHours()%n!==0&&s.setHours(s.getHours()+(n-s.getHours()%n));s.getTime()<=a.getTime();)s.getTime()!==t.getTime()&&e.push({x:this.scale.timeToX(s),isMajor:!1}),s.setHours(s.getHours()+n)}}else if(t===`hour`){let t=vz(i,a),r=new Set(t.map(e=>e.getTime()));for(let n of t)e.push({x:this.scale.timeToX(n),isMajor:!0});for(let t of yz(i,a,n))r.has(t.getTime())||e.push({x:this.scale.timeToX(t),isMajor:!1})}else if(t===`day`){let t=bz(i,a),n=new Set(t.map(e=>e.getTime()));for(let n of t)e.push({x:this.scale.timeToX(n),isMajor:!0});for(let t of vz(i,a))n.has(t.getTime())||e.push({x:this.scale.timeToX(t),isMajor:!1})}return e}destroy(){this.dayEl.remove(),this.hourEl.remove()}};function gz(e){let t=e?.scale??`hour`,n=e?.step??1;switch(t){case`hour`:return{scale:t,step:n,hourFormat:new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`,hour12:!1}),dayFormat:new Intl.DateTimeFormat(void 0,{weekday:`short`,day:`numeric`,month:`short`})};case`day`:return{scale:t,step:n,hourFormat:new Intl.DateTimeFormat(void 0,{weekday:`short`,day:`numeric`}),dayFormat:new Intl.DateTimeFormat(void 0,{month:`long`,year:`numeric`})};default:return{scale:`hour`,step:1,hourFormat:new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`,hour12:!1}),dayFormat:new Intl.DateTimeFormat(void 0,{weekday:`short`,day:`numeric`,month:`short`})}}}function _z(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function vz(e,t){let n=[],r=new Date(e);for(r.setHours(0,0,0,0);r.getTime()<=t;)r.getTime()>=e&&n.push(new Date(r)),r.setDate(r.getDate()+1);return n}function yz(e,t,n){let r=[],i=new Date(e);i.setMinutes(0,0,0);let a=i.getHours();for(i.setHours(a-a%n);i.getTime()<=t;)i.getTime()>=e&&r.push(new Date(i)),i.setHours(i.getHours()+n);return r}function bz(e,t){let n=[],r=new Date(e);r.setHours(0,0,0,0);let i=r.getDay(),a=i===0?6:i-1;for(r.setDate(r.getDate()-a);r.getTime()<=t;)r.getTime()>=e&&n.push(new Date(r)),r.setDate(r.getDate()+7);return n}var xz=class{constructor(e=40){this.groups=[],this.groupIndex=new Map,this.rowHeight=e,this.labelPanel=document.createElement(`div`),this.labelPanel.className=`tg-label-panel`,this.labelPanel.setAttribute(`role`,`rowheader`),this.contentArea=document.createElement(`div`),this.contentArea.className=`tg-content`,this.contentArea.setAttribute(`role`,`grid`)}getLabelPanel(){return this.labelPanel}getContentArea(){return this.contentArea}getRowHeight(){return this.rowHeight}getGroups(){return this.groups}getGroupCount(){return this.groups.length}getGroupAtIndex(e){return this.groups[e]}yToGroupId(e){let t=Math.floor(e/this.rowHeight);return t<0||t>=this.groups.length?null:this.groups[t].id}groupIdToRowIndex(e){return this.groupIndex.get(e)??-1}getRowRange(e,t){let n=Math.max(0,Math.floor(Math.min(e,t)/this.rowHeight)),r=Math.min(this.groups.length-1,Math.floor(Math.max(e,t)/this.rowHeight)),i=[];for(let e=n;e<=r;e++)i.push(this.groups[e].id);return i}getRowTop(e){return e*this.rowHeight}setGroups(e){this.groups=e.slice().sort((e,t)=>e.order!==void 0&&t.order!==void 0?e.order-t.order:e.order===void 0?t.order===void 0?e.content.localeCompare(t.content,void 0,{numeric:!0}):1:-1),this.groupIndex.clear();for(let e=0;e<this.groups.length;e++)this.groupIndex.set(this.groups[e].id,e)}render(){this.renderLabels(),this.renderRows()}renderLabels(){this.labelPanel.innerHTML=``;for(let e of this.groups){let t=document.createElement(`div`);t.className=`tg-label`,t.style.height=`${this.rowHeight}px`,t.textContent=e.content,t.title=e.content,t.dataset.groupId=e.id,this.labelPanel.appendChild(t)}}renderRows(){this.contentArea.querySelectorAll(`.tg-row`).forEach(e=>e.remove());for(let e=0;e<this.groups.length;e++){let t=document.createElement(`div`);t.className=`tg-row`,t.style.height=`${this.rowHeight}px`,t.style.top=`${e*this.rowHeight}px`,t.dataset.groupId=this.groups[e].id,this.contentArea.appendChild(t)}this.contentArea.style.height=`${this.groups.length*this.rowHeight}px`}destroy(){this.labelPanel.remove(),this.contentArea.remove()}},Sz=class{constructor(e,t){this.items=[],this.itemElements=new Map,this.ghostEl=null,this.ghostCountBadge=null,this.scale=e,this.layout=t,this.contentArea=t.getContentArea()}setItems(e){this.items=e}render(){for(let e of this.itemElements.values())e.remove();this.itemElements.clear(),this.contentArea.querySelectorAll(`[data-item-id]`).forEach(e=>{e.dataset.itemId!==`__ghost__`&&e.remove()});for(let e of this.items){let t=this.renderItem(e);t&&(this.contentArea.appendChild(t),this.itemElements.set(e.id,t))}}renderItem(e){let t=this.layout.groupIdToRowIndex(e.group);if(t===-1)return null;let n=e.start instanceof Date?e.start:new Date(e.start),r=e.end?e.end instanceof Date?e.end:new Date(e.end):n,i=this.scale.timeToX(n),a=this.scale.timeToX(r)-i,o=this.layout.getRowTop(t),s=this.layout.getRowHeight();if(a<.5)return null;let c=document.createElement(`div`);if(c.dataset.itemId=e.id,c.title=e.title||e.content,e.type===`background`||e.isSegment)c.className=`tg-item-background ${e.className||``}`.trim(),e.style&&(c.style.cssText=e.style),c.style.position=`absolute`,c.style.left=`${i}px`,c.style.top=`${o}px`,c.style.width=`${a}px`,c.style.height=`${s}px`,c.style.pointerEvents=`none`;else{c.className=`tg-item tg-item-range ${e.className||``}`.trim(),e.style&&(c.style.cssText+=e.style),c.style.position=`absolute`,c.style.left=`${i}px`,c.style.top=`${o+2}px`,c.style.width=`${a}px`,c.style.height=`${s-4}px`,c.style.cursor=`move`;let t=document.createElement(`span`);t.className=`tg-item-content`,t.textContent=e.content,c.appendChild(t);let n=document.createElement(`div`);n.className=`tg-resize-handle tg-resize-left`,n.dataset.handle=`left`,c.appendChild(n);let r=document.createElement(`div`);r.className=`tg-resize-handle tg-resize-right`,r.dataset.handle=`right`,c.appendChild(r)}return c}updateItemPosition(e,t,n,r){let i=this.itemElements.get(e);i&&(i.style.left=`${t}px`,i.style.top=`${n+2}px`,i.style.width=`${r}px`)}showGhost(e){if(!this.ghostEl){this.ghostEl=document.createElement(`div`),this.ghostEl.className=`tg-ghost`,this.ghostEl.dataset.itemId=`__ghost__`;for(let e of[`left`,`right`,`top`,`bottom`]){let t=document.createElement(`div`);t.className=`tg-resize-handle tg-resize-${e}`,t.dataset.handle=e,this.ghostEl.appendChild(t)}this.ghostCountBadge=document.createElement(`div`),this.ghostCountBadge.className=`tg-ghost-count`,this.ghostEl.appendChild(this.ghostCountBadge),this.contentArea.appendChild(this.ghostEl)}let t=this.scale.timeToX(e.startTime),n=this.scale.timeToX(e.endTime)-t,r=this.layout.getRowHeight(),i=e.topRowIndex*r,a=(e.bottomRowIndex-e.topRowIndex+1)*r,o=e.bottomRowIndex-e.topRowIndex+1;this.ghostEl.style.left=`${t}px`,this.ghostEl.style.top=`${i}px`,this.ghostEl.style.width=`${n}px`,this.ghostEl.style.height=`${a}px`,this.ghostEl.style.display=`block`,this.ghostCountBadge&&(this.ghostCountBadge.textContent=`${o} court${o>1?`s`:``}`,this.ghostCountBadge.style.display=o>1?`flex`:`none`)}clearGhost(){this.ghostEl&&(this.ghostEl.remove(),this.ghostEl=null,this.ghostCountBadge=null)}isGhostVisible(){return this.ghostEl!==null&&this.ghostEl.style.display!==`none`}highlightRows(e){this.clearHighlights();for(let t of e){let e=this.contentArea.querySelectorAll(`.tg-row`);e[t]&&e[t].classList.add(`tg-row-highlight`)}}clearHighlights(){this.contentArea.querySelectorAll(`.tg-row-highlight`).forEach(e=>{e.classList.remove(`tg-row-highlight`)})}static hitTest(e){if(!(e instanceof HTMLElement))return{itemId:null,handle:null};let t=e.closest(`.tg-resize-handle`)?.dataset.handle??null;return{itemId:e.closest(`[data-item-id]`)?.dataset.itemId??null,handle:t}}destroy(){this.clearGhost(),this.clearHighlights();for(let e of this.itemElements.values())e.remove();this.itemElements.clear()}},Cz=3,wz=30,Tz=8,Ez=3600*1e3,Dz=class{constructor(e,t,n,r,i=5,a=!1){this.mode=`IDLE`,this.gesture=null,this.items=[],this.ghostStartTime=null,this.ghostEndTime=null,this.ghostTopRow=0,this.ghostBottomRow=0,this.justDragged=!1,this.autoScrollRaf=null,this.autoScrollDelta=0,this.scrollContainer=null,this.onPointerDown=e=>{if(e.button!==0)return;let{itemId:t,handle:n}=Sz.hitTest(e.target);if(this.mode===`GHOST_EDITING`){if(t===`__ghost__`&&n){this.startGesture(e,`__ghost__`,n===`left`?`RESIZING_LEFT`:n===`right`?`RESIZING_RIGHT`:n===`top`?`RESIZING_TOP`:`RESIZING_BOTTOM`);return}if(t===`__ghost__`&&!n){this.confirmGhost();return}this.cancelGhost();return}if(t)if(n===`left`)this.startGesture(e,t,`RESIZING_LEFT`);else if(n===`right`)this.startGesture(e,t,`RESIZING_RIGHT`);else{let n=this.items.find(e=>e.id===t);if(!n||n.isSegment||n.type===`background`)return;this.startGesture(e,t,`DRAGGING`)}},this.onPointerMove=e=>{if(this.gesture){if(this.gesture.currentX=e.clientX,this.gesture.currentY=e.clientY,!this.gesture.thresholdExceeded){let t=Math.abs(e.clientX-this.gesture.startX),n=Math.abs(e.clientY-this.gesture.startY);if(t<Cz&&n<Cz)return;this.gesture.thresholdExceeded=!0}switch(this.checkAutoScroll(e),this.mode){case`DRAGGING`:this.handleDragMove(e);break;case`RESIZING_LEFT`:case`RESIZING_RIGHT`:this.gesture.itemId===`__ghost__`?this.handleGhostTimeResize(e):this.handleResizeMove(e);break;case`RESIZING_TOP`:case`RESIZING_BOTTOM`:this.handleGhostRowResize(e);break}}},this.onPointerUp=e=>{if(document.removeEventListener(`pointermove`,this.onPointerMove),document.removeEventListener(`pointerup`,this.onPointerUp),this.stopAutoScroll(),!this.gesture){this.mode=`IDLE`;return}let t=this.gesture.itemId===`__ghost__`;if(!this.gesture.thresholdExceeded&&!t){this.gesture.itemId&&this.callbacks.onItemClick?.(this.gesture.itemId,e),this.gesture=null,this.mode=`IDLE`,this.renderer.clearHighlights();return}if(t){this.gesture=null,this.mode=`GHOST_EDITING`;return}if(this.gesture.itemId&&this.gesture.thresholdExceeded){this.justDragged=!0,setTimeout(()=>this.justDragged=!1,300);let t=(e.clientX-this.gesture.startX)*this.scale.msPerPx,n=this.gesture.originalEnd.getTime()-this.gesture.originalStart.getTime(),r,i,a=this.gesture.originalGroup;if(this.mode===`DRAGGING`){r=this.scale.snap(new Date(this.gesture.originalStart.getTime()+t),this.snapMinutes),i=new Date(r.getTime()+n);let o=this.contentArea.getBoundingClientRect(),s=e.clientY-o.top+this.contentArea.scrollTop;a=this.layout.yToGroupId(s)||this.gesture.originalGroup}else this.mode===`RESIZING_LEFT`?(r=this.scale.snap(new Date(this.gesture.originalStart.getTime()+t),this.snapMinutes),i=this.gesture.originalEnd,r>=i&&(r=new Date(i.getTime()-this.snapMinutes*60*1e3))):(r=this.gesture.originalStart,i=this.scale.snap(new Date(this.gesture.originalEnd.getTime()+t),this.snapMinutes),i<=r&&(i=new Date(r.getTime()+this.snapMinutes*60*1e3)));this.callbacks.onMove?.({id:this.gesture.itemId,group:a,start:r,end:i})}this.gesture=null,this.mode=`IDLE`,this.renderer.clearHighlights()},this.onDblClick=e=>{if(this.justDragged)return;let{itemId:t}=Sz.hitTest(e.target);if(t)return;let n=this.contentArea.getBoundingClientRect(),r=e.clientX-n.left+this.contentArea.scrollLeft,i=e.clientY-n.top+this.contentArea.scrollTop,a=this.scale.xToTime(r),o=this.scale.snap(a,this.snapMinutes),s=new Date(o.getTime()+Ez),c=this.layout.yToGroupId(i);if(!c)return;let l=this.layout.groupIdToRowIndex(c);l<0||(this.ghostStartTime=o,this.ghostEndTime=s,this.ghostTopRow=l,this.ghostBottomRow=l,this.mode=`GHOST_EDITING`,this.renderer.showGhost({startTime:o,endTime:s,topRowIndex:l,bottomRowIndex:l}),this.renderer.highlightRows([l]))},this.onWheel=e=>{if(!((e.ctrlKey||e.metaKey)&&!this.enablePinchZoom)){if(e.preventDefault(),(e.ctrlKey||e.metaKey)&&this.enablePinchZoom){let t=e.deltaY>0?1.15:.87,n=this.contentArea.getBoundingClientRect(),r=e.clientX-n.left;this.scale.zoom(t,r)}else if(e.shiftKey||Math.abs(e.deltaX)>Math.abs(e.deltaY)){let t=e.deltaX||e.deltaY;this.scale.pan(t)}else{this.scrollContainer&&(this.scrollContainer.scrollTop+=e.deltaY);return}this.onScaleChanged?.()}},this.onScaleChanged=null,this.onKeyDown=e=>{e.key===`Escape`&&this.mode===`GHOST_EDITING`&&this.cancelGhost()},this.scale=e,this.layout=t,this.renderer=n,this.contentArea=t.getContentArea(),this.wheelTarget=this.contentArea,this.callbacks=r,this.snapMinutes=i,this.enablePinchZoom=a}setItems(e){this.items=e}setScrollContainer(e){this.scrollContainer=e}setWheelTarget(e){this.wheelTarget=e}attach(){this.contentArea.addEventListener(`pointerdown`,this.onPointerDown),this.contentArea.addEventListener(`dblclick`,this.onDblClick),this.wheelTarget.addEventListener(`wheel`,this.onWheel,{passive:!1}),document.addEventListener(`keydown`,this.onKeyDown)}detach(){this.contentArea.removeEventListener(`pointerdown`,this.onPointerDown),this.contentArea.removeEventListener(`dblclick`,this.onDblClick),this.wheelTarget.removeEventListener(`wheel`,this.onWheel),document.removeEventListener(`keydown`,this.onKeyDown),document.removeEventListener(`pointermove`,this.onPointerMove),document.removeEventListener(`pointerup`,this.onPointerUp),this.stopAutoScroll()}getMode(){return this.mode}startGesture(e,t,n){e.preventDefault();let r=this.items.find(e=>e.id===t),i,a,o;if(t===`__ghost__`)i=this.ghostStartTime,a=this.ghostEndTime,o=``;else if(r)i=r.start instanceof Date?r.start:new Date(r.start),a=r.end?r.end instanceof Date?r.end:new Date(r.end):i,o=r.group;else return;this.gesture={mode:n,itemId:t,startX:e.clientX,startY:e.clientY,originalStart:i,originalEnd:a,originalGroup:o,currentX:e.clientX,currentY:e.clientY,thresholdExceeded:!1},this.mode=n,this.contentArea.setPointerCapture(e.pointerId),document.addEventListener(`pointermove`,this.onPointerMove),document.addEventListener(`pointerup`,this.onPointerUp)}handleDragMove(e){if(!this.gesture||!this.gesture.itemId)return;let t=(e.clientX-this.gesture.startX)*this.scale.msPerPx,n=this.gesture.originalEnd.getTime()-this.gesture.originalStart.getTime(),r=this.scale.snap(new Date(this.gesture.originalStart.getTime()+t),this.snapMinutes),i=new Date(r.getTime()+n),a=this.contentArea.getBoundingClientRect(),o=e.clientY-a.top+this.contentArea.scrollTop,s=this.layout.yToGroupId(o)||this.gesture.originalGroup;if(this.callbacks.onMoving){let e=this.callbacks.onMoving({id:this.gesture.itemId,group:s,start:r,end:i});if(e===null)return;r=e.start,i=e.end}let c=this.scale.timeToX(r),l=this.scale.timeToX(i)-c,u=this.layout.groupIdToRowIndex(s),d=this.layout.getRowTop(u>=0?u:0);this.renderer.updateItemPosition(this.gesture.itemId,c,d,l),u>=0&&this.renderer.highlightRows([u])}handleResizeMove(e){if(!this.gesture||!this.gesture.itemId)return;let t=(e.clientX-this.gesture.startX)*this.scale.msPerPx,n=this.gesture.originalStart,r=this.gesture.originalEnd;if(this.mode===`RESIZING_LEFT`?(n=this.scale.snap(new Date(this.gesture.originalStart.getTime()+t),this.snapMinutes),n>=r&&(n=new Date(r.getTime()-this.snapMinutes*60*1e3))):(r=this.scale.snap(new Date(this.gesture.originalEnd.getTime()+t),this.snapMinutes),r<=n&&(r=new Date(n.getTime()+this.snapMinutes*60*1e3))),this.callbacks.onMoving){let e=this.callbacks.onMoving({id:this.gesture.itemId,group:this.gesture.originalGroup,start:n,end:r});if(e===null)return;n=e.start,r=e.end}let i=this.scale.timeToX(n),a=this.scale.timeToX(r)-i,o=this.layout.groupIdToRowIndex(this.gesture.originalGroup),s=this.layout.getRowTop(o>=0?o:0);this.renderer.updateItemPosition(this.gesture.itemId,i,s,a)}handleGhostTimeResize(e){if(!this.gesture)return;let t=this.contentArea.getBoundingClientRect(),n=e.clientX-t.left+this.contentArea.scrollLeft,r=this.scale.snap(this.scale.xToTime(n),this.snapMinutes);this.mode===`RESIZING_LEFT`?r<this.ghostEndTime&&(this.ghostStartTime=r):r>this.ghostStartTime&&(this.ghostEndTime=r),this.updateGhostDisplay()}handleGhostRowResize(e){if(!this.gesture)return;let t=this.contentArea.getBoundingClientRect(),n=e.clientY-t.top+this.contentArea.scrollTop,r=Math.floor(n/this.layout.getRowHeight()),i=Math.max(0,Math.min(this.layout.getGroupCount()-1,r));this.mode===`RESIZING_TOP`?i<=this.ghostBottomRow&&(this.ghostTopRow=i):i>=this.ghostTopRow&&(this.ghostBottomRow=i),this.updateGhostDisplay()}updateGhostDisplay(){this.renderer.showGhost({startTime:this.ghostStartTime,endTime:this.ghostEndTime,topRowIndex:this.ghostTopRow,bottomRowIndex:this.ghostBottomRow});let e=[];for(let t=this.ghostTopRow;t<=this.ghostBottomRow;t++)e.push(t);this.renderer.highlightRows(e)}confirmGhost(){if(!this.ghostStartTime||!this.ghostEndTime){this.cancelGhost();return}let e=[];for(let t=this.ghostTopRow;t<=this.ghostBottomRow;t++){let n=this.layout.getGroupAtIndex(t);n&&e.push(n.id)}if(e.length===0){this.cancelGhost();return}let t={groupIds:e,topRowIndex:this.ghostTopRow,bottomRowIndex:this.ghostBottomRow,startTime:this.ghostStartTime,endTime:this.ghostEndTime};this.renderer.clearGhost(),this.renderer.clearHighlights(),this.mode=`IDLE`,this.callbacks.onMultiRowCreate?.(t),this.ghostStartTime=null,this.ghostEndTime=null}cancelGhost(){this.renderer.clearGhost(),this.renderer.clearHighlights(),this.mode=`IDLE`,this.ghostStartTime=null,this.ghostEndTime=null}checkAutoScroll(e){if(!this.scrollContainer)return;let t=this.scrollContainer.getBoundingClientRect(),n=t.bottom-e.clientY,r=e.clientY-t.top;n<wz?(this.autoScrollDelta=Tz*(1-n/wz),this.startAutoScroll()):r<wz?(this.autoScrollDelta=-8*(1-r/wz),this.startAutoScroll()):this.stopAutoScroll()}startAutoScroll(){if(this.autoScrollRaf!==null)return;let e=()=>{this.scrollContainer&&(this.scrollContainer.scrollTop+=this.autoScrollDelta,this.autoScrollRaf=requestAnimationFrame(e))};this.autoScrollRaf=requestAnimationFrame(e)}stopAutoScroll(){this.autoScrollRaf!==null&&(cancelAnimationFrame(this.autoScrollRaf),this.autoScrollRaf=null),this.autoScrollDelta=0}},Oz=class{constructor(e,t,n,r={}){this.callbacks={},this.resizeObserver=null,this._batchUpdating=!1,this.eventListeners=new Map,this.options={rowHeight:40,...r};let i=new Date,a=r.start||i,o=r.end||new Date(i.getTime()+720*60*1e3),s=e.clientWidth||800;this.scale=new fz(a,o,s),(r.min||r.max||r.zoomMin||r.zoomMax)&&this.scale.setLimits({min:r.min,max:r.max,zoomMin:r.zoomMin,zoomMax:r.zoomMax}),this.timeAxis=new hz(this.scale,r.timeAxis),this.layout=new xz(this.options.rowHeight),this.renderer=new Sz(this.scale,this.layout),this.interaction=new Dz(this.scale,this.layout,this.renderer,this.callbacks,5,r.enablePinchZoom??!1),this.rootEl=document.createElement(`div`),this.rootEl.className=`tg-timeline`,r.height&&(this.rootEl.style.height=r.height);let c=document.createElement(`div`);c.className=`tg-axis-header`;let l=document.createElement(`div`);l.className=`tg-axis-spacer`,c.appendChild(l),c.appendChild(this.timeAxis.getDayElement()),c.appendChild(this.timeAxis.getHourElement()),this.rootEl.appendChild(c),this.bodyEl=document.createElement(`div`),this.bodyEl.className=`tg-body`,this.bodyEl.appendChild(this.layout.getLabelPanel());let u=document.createElement(`div`);u.className=`tg-scroll-wrapper`,u.appendChild(this.layout.getContentArea()),this.bodyEl.appendChild(u),this.rootEl.appendChild(this.bodyEl),e.appendChild(this.rootEl),u.addEventListener(`scroll`,()=>{this.layout.getLabelPanel().scrollTop=u.scrollTop}),this.interaction.setScrollContainer(u),this.interaction.setWheelTarget(this.rootEl),this.interaction.onScaleChanged=()=>this.renderAll(),this.layout.setGroups(n),this.renderer.setItems(t),this.interaction.setItems(t),this.interaction.attach(),this.renderAll(),this.resizeObserver=new ResizeObserver(()=>{let t=u.clientWidth||e.clientWidth;this.scale.setWidth(t),this.renderAll()}),this.resizeObserver.observe(u)}setGroups(e){this.layout.setGroups(e),this.renderAll()}setItems(e){this.renderer.setItems(e),this.interaction.setItems(e),this.renderAll()}setWindow(e,t,n){this.scale.setWindow(e,t),this.renderAll()}setOptions(e){(e.min!==void 0||e.max!==void 0||e.zoomMin!==void 0||e.zoomMax!==void 0)&&this.scale.setLimits({min:e.min,max:e.max,zoomMin:e.zoomMin,zoomMax:e.zoomMax}),e.timeAxis&&this.timeAxis.setTimeAxisOptions(e.timeAxis),e.rowHeight!==void 0&&(this.options.rowHeight=e.rowHeight),Object.assign(this.options,e),this.renderAll()}on(e,t){this.eventListeners.has(e)||this.eventListeners.set(e,new Set),this.eventListeners.get(e).add(t),e===`click`&&(this.callbacks.onItemClick=(e,t)=>{this.emit(`click`,{item:e,event:t})})}off(e,t){this.eventListeners.get(e)?.delete(t)}emit(e,t){let n=this.eventListeners.get(e);if(n)for(let e of n)e(t)}onMultiRowCreate(e){this.callbacks.onMultiRowCreate=e}onAdd(e){this.callbacks.onAdd=e}onMove(e){this.callbacks.onMove=e}onMoving(e){this.callbacks.onMoving=e}onDayClick(e){this.timeAxis.onDayClick=e}getContentElement(){return this.layout.getContentArea()}setDailyBounds(e,t){this.scale.setDailyBounds(e,t),this.renderAll()}clearDailyBounds(){this.scale.clearDailyBounds(),this.renderAll()}setVisibleDays(e){this.scale.setVisibleDays(e),this.renderAll()}clearVisibleDays(){this.scale.clearVisibleDays(),this.renderAll()}beginBatchUpdate(){this._batchUpdating=!0}endBatchUpdate(){this._batchUpdating=!1,this.renderAll()}renderAll(){if(this._batchUpdating)return;this.timeAxis.render(),this.layout.render(),this.renderer.render();let e=this.layout.getContentArea(),t=this.layout.getGroupCount()*(this.options.rowHeight??40);this.timeAxis.renderGridlines(e,t)}destroy(){this.interaction.detach(),this.resizeObserver?.disconnect(),this.timeAxis.destroy(),this.layout.destroy(),this.renderer.destroy(),this.rootEl.remove(),this.eventListeners.clear()}},{BLOCK_TYPES:kz}=t.availability,Az=class{constructor(e,t){this.timeline=null,this.unsubscribe=null,this.currentItems=new Map,this.isRendering=!1,this.popoverManager=lz(),this.viewState=new _I,this.currentDay=null,this.currentView=`day`,this.selectedCourts=new Set,this.visibleCourts=null,this.handleOnMove=e=>{let t=EI(e.id);if(!t)return!1;let n=TI(e.group),r=this.toLocalISO(e.start),i=this.toLocalISO(e.end),a=this.engine.moveBlock({blockId:t,newTimeRange:{start:r,end:i},newCourt:n||void 0});return a.conflicts.some(e=>e.severity===`ERROR`)?(this.showConflictDialog(a.conflicts),!1):(this.render(),!0)},this.handleOnMoving=e=>{this.popoverManager.destroy();let t=this.currentItems.get(e.id);if(t&&(t.isSegment||t.type===`background`))return null;let{start:n,end:r}=e,i=TI(e.group);if(i){let e=n.toISOString().slice(0,10),t=this.engine.getCourtAvailability(i,e),a=new Date(`${e}T${t.startTime}:00`),o=new Date(`${e}T${t.endTime}:00`);n<a&&(n=a),r>o&&(r=o)}return{start:n,end:r}},this.handleTimelineClick=e=>{let t=e.item;if(!t){this.popoverManager.destroy();return}let n=this.currentItems.get(t);if(!n){this.popoverManager.destroy();return}if(n.isSegment||n.type===`background`){this.popoverManager.destroy();return}if(this.popoverManager.isActiveFor(t)){this.popoverManager.destroy();return}let r=EI(t);if(!r)return;let i=(e.event?.target)?.closest?.(`.tg-item`)??this.config.container.querySelector(`[data-item-id="${t}"]`);if(i){let e=String(n.start).slice(0,10);this.popoverManager.showForEngineBlock(i,{itemId:t,blockId:r,engine:this.engine,day:e,onBlockChanged:()=>this.render(),onManageRegistrations:this.config.onManageRegistrations})}this.config.onBlockSelected&&this.config.onBlockSelected(r)},this.handleMultiRowCreate=e=>{let t=[];for(let n of e.groupIds){let e=TI(n);e&&t.push(e)}if(t.length===0)return;let n=this.toLocalISO(e.startTime),r=this.toLocalISO(e.endTime),i=this.engine.applyBlock({courts:t,timeRange:{start:n,end:r},type:kz.BLOCKED,reason:`New Block`});if(this.render(),i.applied.length>0){let e=i.applied[0].block.id,t=`block-${e}`,r=n.slice(0,10);setTimeout(()=>{let n=this.config.container.querySelector(`[data-item-id="${t}"]`);n&&this.popoverManager.showForEngineBlock(n,{itemId:t,blockId:e,engine:this.engine,day:r,onBlockChanged:()=>this.render(),onManageRegistrations:this.config.onManageRegistrations})},50)}this.config.onTimeRangeSelected&&this.config.onTimeRangeSelected({courts:t,start:n,end:r})},this.handleEngineEvent=e=>{switch(e.type){case`STATE_CHANGED`:case`BLOCKS_CHANGED`:this.render(),e.type===`BLOCKS_CHANGED`&&this.config.onBlocksChanged&&this.config.onBlocksChanged();break;case`CONFLICTS_CHANGED`:this.config.showConflicts&&this.render();break;case`AVAILABILITY_CHANGED`:this.updateTimelineWindow(),this.render();break}},this.engine=e,this.config={groupingMode:`BY_VENUE`,showConflicts:!0,showSegmentLabels:!1,colorScheme:vI,...t},this.initialize()}initialize(){if(this.config.initialDay)this.currentDay=this.config.initialDay;else{let e=this.engine.getActiveDays();this.currentDay=e.length>0?e[0]:t.tools.dateTime.extractDate(new Date().toISOString())}this.viewState.setSelectedDay(this.currentDay),this.config.initialView&&(this.currentView=this.config.initialView),this.unsubscribe=this.engine.subscribe(this.handleEngineEvent),this.ensureTimeline()}ensureTimeline(){this.timeline||setTimeout(()=>{this.timeline||this.createTimelineWithData()},0)}getViewDays(){if(!this.currentDay)return[];let e=uz[this.currentView],t=e?e.days:1;if(t<=0)return this.engine.getActiveDays();if(t<=1)return[this.currentDay];let n=this.engine.getActiveDays(),r=n.indexOf(this.currentDay);return r===-1?[this.currentDay]:n.slice(r,r+t)}buildViewData(){if(!this.currentDay)return{groups:[],items:[]};let e=this.getViewDays(),t=this.engine.listCourtMeta(),n=this.viewState.getLayerVisibility(),r={groupingMode:this.config.groupingMode,layerVisibility:n,showSegmentLabels:this.config.showSegmentLabels,colorScheme:this.config.colorScheme},i=yI(this.engine.getDayTimeline(e[0]),t,r);this.visibleCourts!==null&&this.visibleCourts.size>0&&(i=i.filter(e=>this.visibleCourts.has(String(e.id))));let a=this.visibleCourts!==null&&this.visibleCourts.size>0&&i.length>0?new Set(i.map(e=>String(e.id))):null,o=e.length<=1?this.engine.getActiveDays():e,s=[],c=[];for(let e of o){let t=this.engine.getDayTimeline(e);s.push(...bI(t,r)),c.push(...SI(this.engine.getDayBlocks(e),r))}let l=a?s.filter(e=>a.has(String(e.group))):s,u=a?c.filter(e=>a.has(String(e.group))):c,d=[...l,...u];return{groups:i.map((e,t)=>({id:String(e.id),content:typeof e.content==`string`?e.content:``,order:t,courtRef:e.courtRef,surface:e.surface,indoor:e.indoor,hasLights:e.hasLights,tags:e.tags})),items:d.map(e=>({id:String(e.id),group:String(e.group),content:e.content,start:e.start,end:e.end,type:e.type===`background`?`background`:`range`,className:e.className,style:e.style,title:e.title,editable:e.editable,blockId:e.blockId,status:e.status,reason:e.reason,isBlock:e.isBlock,isSegment:e.isSegment,isConflict:e.isConflict}))}}createTimelineWithData(){let e=this.engine.getConfig(),n=this.currentDay||t.tools.dateTime.extractDate(new Date().toISOString()),r=this.getViewDays(),i=r[0]||n,a=r[r.length-1]||n,o=this.engine.getVisibleTimeRange(i),s=this.engine.getVisibleTimeRange(a),c=DI({dayStartTime:o.startTime,dayEndTime:o.endTime,slotMinutes:e.slotMinutes,day:i}),l=uz[this.currentView],u=r.length>1?new Date(`${a}T${s.endTime}:00`):c.end,d=this.engine.getActiveDays(),f=d[0]||i,p=d[d.length-1]||a,m=this.engine.getVisibleTimeRange(f),h=this.engine.getVisibleTimeRange(p),g=new Date(`${f}T${m.startTime}:00`),_=new Date(`${p}T${h.endTime}:00`),{groups:v,items:y}=this.buildViewData();this.currentItems.clear();for(let e of y)this.currentItems.set(e.id,e);this.timeline=new Oz(this.config.container,y,v,{start:c.start,end:u,min:g,max:_,zoomMin:c.zoomMin,zoomMax:_.getTime()-g.getTime(),snap:e=>this.snapToMinutes(e,5),rowHeight:40,height:`100%`,timeAxis:l?l.timeAxis:{scale:`hour`,step:1},showTooltips:!0}),this.timeline.setDailyBounds(o.startTime,o.endTime),r.length>1&&this.timeline.setVisibleDays(r),this.timeline.on(`click`,this.handleTimelineClick),this.timeline.onMove(this.handleOnMove),this.timeline.onMoving(this.handleOnMoving),this.timeline.onMultiRowCreate(this.handleMultiRowCreate),this.timeline.onDayClick(e=>{this.setDay(e),this.setViewPreset(`day`),this.config.onDayNavigate?.(e)}),this.config.onBlocksChanged?.()}setDay(e){this.currentDay!==e&&(this.currentDay=e,this.viewState.setSelectedDay(e),this.updateTimelineWindow(),this.render())}getDay(){return this.currentDay}setView(e){this.currentView=e,this.updateTimelineWindow()}setViewPreset(e){let t=uz[e];if(!t||!this.timeline||!this.currentDay)return;this.currentView=e;let n=this.getViewDays(),r=n[0],i=n[n.length-1],a=this.engine.getVisibleTimeRange(r),o=this.engine.getVisibleTimeRange(i);this.timeline.beginBatchUpdate();let s=t.days===0||t.days>1;this.timeline.setDailyBounds(a.startTime,a.endTime),s?this.timeline.setVisibleDays(n):this.timeline.clearVisibleDays();let c=new Date(`${r}T${a.startTime}:00`),l=new Date(`${i}T${o.endTime}:00`);this.timeline.setWindow(c,l,{animation:!1}),this.timeline.setOptions({timeAxis:t.timeAxis});let{groups:u,items:d}=this.buildViewData();this.currentItems.clear();for(let e of d)this.currentItems.set(e.id,e);this.timeline.setGroups(u),this.timeline.setItems(d),this.timeline.endBatchUpdate(),this.config.onBlocksChanged?.()}setSelectedCourts(e){this.selectedCourts=new Set(e)}getSelectedCourts(){return Array.from(this.selectedCourts)}setVisibleCourts(e){e&&e.size===0?this.visibleCourts=null:this.visibleCourts=e,this.render()}setLayerVisibility(e,t){this.viewState.setLayerVisibility(e,t),this.render()}refresh(){this.updateTimelineWindow(),this.render()}destroy(){this.popoverManager.destroy(),this.unsubscribe&&this.unsubscribe(),this.timeline&&=(this.timeline.destroy(),null)}updateTimelineWindow(){if(!this.timeline||!this.currentDay)return;let e=this.engine.getConfig(),t=this.getViewDays(),n=t[0]||this.currentDay,r=t[t.length-1]||this.currentDay,i=this.engine.getVisibleTimeRange(n),a=this.engine.getVisibleTimeRange(r),o=DI({dayStartTime:i.startTime,dayEndTime:i.endTime,slotMinutes:e.slotMinutes,day:n}),s=uz[this.currentView],c=t.length>1?new Date(`${r}T${a.endTime}:00`):o.end,l=this.engine.getActiveDays(),u=l[0]||n,d=l[l.length-1]||r,f=this.engine.getVisibleTimeRange(u),p=this.engine.getVisibleTimeRange(d),m=new Date(`${u}T${f.startTime}:00`),h=new Date(`${d}T${p.endTime}:00`);this.timeline.beginBatchUpdate(),this.timeline.setDailyBounds(i.startTime,i.endTime),t.length>1?this.timeline.setVisibleDays(t):this.timeline.clearVisibleDays(),this.timeline.setOptions({min:m,max:h}),this.timeline.setWindow(o.start,c,{animation:!1}),s&&this.timeline.setOptions({timeAxis:s.timeAxis}),this.timeline.endBatchUpdate()}render(){if(this.currentDay&&!this.isRendering){if(!this.timeline){this.ensureTimeline();return}this.isRendering=!0;try{let{groups:e,items:t}=this.buildViewData();this.currentItems.clear();for(let e of t)this.currentItems.set(e.id,e);this.timeline.setGroups(e),this.timeline.setItems(t)}finally{this.isRendering=!1}}}getPopoverManager(){return this.popoverManager}snapToMinutes(e,t){let n=e.getTime(),r=t*60*1e3,i=Math.round(n/r)*r;return new Date(i)}toLocalISO(e){let t=e=>e.toString().padStart(2,`0`);return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}T${t(e.getHours())}:${t(e.getMinutes())}:${t(e.getSeconds())}`}showConflictDialog(e){let t=e.filter(e=>e.severity===`ERROR`);if(t.length===0)return;if(this.config.onConflict){this.config.onConflict(t);return}let n=t.map(e=>e.message).join(`
248
+ `);console.warn(`[availability-grid] cannot complete operation:\n${n}`)}getTimeline(){return this.timeline}getEngine(){return this.engine}getViewState(){return this.viewState}};function jz(e){let t=e?.totalHours??`Total Hours`,n=e?.blocked??`Blocked`,r=e?.available??`Available`,i=e?.avgPerCourt??`Avg Avail/Court`,a=document.createElement(`div`);a.className=`tg-stats-bar`;let o=e=>{let t=document.createElement(`span`);return t.innerHTML=`${e}: <b>&mdash;</b>`,a.appendChild(t),t},s=o(t),c=o(n),l=o(r),u=o(i);return{element:a,update:e=>{s.innerHTML=`${t}: <b>${e.totalHours.toFixed(1)}h</b>`,c.innerHTML=`${n}: <b>${e.blockedHours.toFixed(1)}h</b>`,l.innerHTML=`${r}: <b>${e.availableHours.toFixed(1)}h</b>`,u.innerHTML=`${i}: <b>${e.avgPerCourt.toFixed(1)}h</b>`}}}var Mz,Nz,Pz,Fz=!1;async function Iz(){if(!Mz){let e=await Promise.resolve().then(()=>(MR(),OI));Mz=e.TimepickerUI,Nz=e.PluginRegistry,Pz=(await Promise.resolve().then(()=>(XR(),NR))).RangePlugin,!Fz&&Nz&&Pz&&(Nz.register(Pz),Fz=!0)}}var Lz=0;async function Rz(e){let{title:t,currentDay:n,currentStartTime:r,currentEndTime:i,showScopeToggle:a=!0,venueBounds:o,onConfirm:s,onCancel:c,labels:l={}}=e;await Iz();let u=new Date(n+`T12:00:00`).toLocaleDateString(`en-US`,{month:`short`,day:`numeric`}),d=`tp-court-avail-${++Lz}`,f=a?`current-day`:`all-days`,p=document.createElement(`div`);p.className=`tg-modal`,p.style.cssText=`
249
249
  position: fixed; top: 0; left: 0; right: 0; bottom: 0;
250
250
  background: var(--chc-bg-overlay); z-index: 10000;
251
251
  display: flex; align-items: center; justify-content: center;
@@ -260,14 +260,14 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
260
260
  display: none; padding: 8px 12px; margin-bottom: 12px; border-radius: 6px;
261
261
  background: #fef3c7; border: 1px solid #f59e0b; color: #92400e;
262
262
  font-size: 12px; line-height: 1.4;
263
- `,v.appendChild(e),v.dataset.venueBoundsStart=o.startTime,v.dataset.venueBoundsEnd=o.endTime}if(a){let e=document.createElement(`div`);e.style.cssText=`margin-bottom: 8px;`;let t=document.createElement(`div`);t.textContent=(l.applyTo||`Apply to`)+`:`,t.style.cssText=`font-size: 12px; color: var(--chc-text-secondary); margin-bottom: 6px; font-weight: 500;`,e.appendChild(t);let n=`availability-scope-${d}`,r=(t,r,i)=>{let a=document.createElement(`label`);a.style.cssText=`display: flex; align-items: center; gap: 8px; padding: 3px 0; cursor: pointer; font-size: 13px; color: var(--chc-text-primary);`;let o=document.createElement(`input`);o.type=`radio`,o.name=n,o.value=t,o.checked=i,o.style.cursor=`pointer`,o.addEventListener(`change`,()=>{o.checked&&(f=t)});let s=document.createElement(`span`);s.textContent=r,a.appendChild(o),a.appendChild(s),e.appendChild(a)};r(`current-day`,l.currentDayOnly?l.currentDayOnly.replace("${day}",u):`Current day only (${u})`,!0),r(`all-days`,l.allDays||`All tournament days`,!1),v.appendChild(e)}p.appendChild(m),p.addEventListener(`click`,e=>{e.target===p&&(C(),c?.())}),document.body.appendChild(p);let y=new Nz(g,{range:{enabled:!0,fromLabel:l.startTime||`Start`,toLabel:l.endTime||`End`},clock:{type:`12h`,incrementMinutes:5},ui:{theme:`crane`,inline:{enabled:!0,containerId:d,showButtons:!0}},labels:{ok:l.apply||`Apply`,cancel:l.cancel||`Cancel`},callbacks:{onRangeConfirm:e=>{let t=e.from||r,n=e.to||i;C(),s({startTime:t,endTime:n,scope:f})},onCancel:()=>{C(),c?.()}}});y.create();let b=_.querySelector(`.tp-ui-wrapper`),x=b?.querySelector(`.tp-ui-footer`),S=document.createElement(`div`);if(S.textContent=t,S.style.cssText=`
263
+ `,v.appendChild(e),v.dataset.venueBoundsStart=o.startTime,v.dataset.venueBoundsEnd=o.endTime}if(a){let e=document.createElement(`div`);e.style.cssText=`margin-bottom: 8px;`;let t=document.createElement(`div`);t.textContent=(l.applyTo||`Apply to`)+`:`,t.style.cssText=`font-size: 12px; color: var(--chc-text-secondary); margin-bottom: 6px; font-weight: 500;`,e.appendChild(t);let n=`availability-scope-${d}`,r=(t,r,i)=>{let a=document.createElement(`label`);a.style.cssText=`display: flex; align-items: center; gap: 8px; padding: 3px 0; cursor: pointer; font-size: 13px; color: var(--chc-text-primary);`;let o=document.createElement(`input`);o.type=`radio`,o.name=n,o.value=t,o.checked=i,o.style.cursor=`pointer`,o.addEventListener(`change`,()=>{o.checked&&(f=t)});let s=document.createElement(`span`);s.textContent=r,a.appendChild(o),a.appendChild(s),e.appendChild(a)};r(`current-day`,l.currentDayOnly?l.currentDayOnly.replace("${day}",u):`Current day only (${u})`,!0),r(`all-days`,l.allDays||`All tournament days`,!1),v.appendChild(e)}p.appendChild(m),p.addEventListener(`click`,e=>{e.target===p&&(C(),c?.())}),document.body.appendChild(p);let y=new Mz(g,{range:{enabled:!0,fromLabel:l.startTime||`Start`,toLabel:l.endTime||`End`},clock:{type:`12h`,incrementMinutes:5},ui:{theme:`crane`,inline:{enabled:!0,containerId:d,showButtons:!0}},labels:{ok:l.apply||`Apply`,cancel:l.cancel||`Cancel`},callbacks:{onRangeConfirm:e=>{let t=e.from||r,n=e.to||i;C(),s({startTime:t,endTime:n,scope:f})},onCancel:()=>{C(),c?.()}}});y.create();let b=_.querySelector(`.tp-ui-wrapper`),x=b?.querySelector(`.tp-ui-footer`),S=document.createElement(`div`);if(S.textContent=t,S.style.cssText=`
264
264
  text-align: center; font-size: 16px; font-weight: 600;
265
265
  padding: 12px 24px 4px;
266
266
  background: var(--tp-bg); color: var(--tp-text);
267
- `,b?b.prepend(S):_.prepend(S),x&&b?x.before(v):m.appendChild(v),o){let e=v.querySelector(`.tp-court-avail-warning`);((t,n)=>{if(!e||!t||!n||t===`--:--`||n===`--:--`)return;let r=t<o.startTime,i=n>o.endTime;r||i?(e.textContent=(l.venueWarning||"Venue hours are ${startTime}–${endTime}. The venue will be widened to accommodate this change.").replace("${startTime}",o.startTime).replace("${endTime}",o.endTime),e.style.display=`block`):e.style.display=`none`})(r,i)}function C(){y?.destroy&&y.destroy(),p.remove()}}var{calculateCapacityStats:Bz}=t.availability,Vz=class{constructor(e){this.control=null,this.rootElement=null,this.venueTreeElement=null,this.calendarElement=null,this.capacityElement=null,this.statsBarInstance=null,this.viewToolbarResult=null,this.datepicker=null,this.visibleCourts=new Set,this.initialSnapshot=``,this.isDirty=!1,this.handleEngineEvent=e=>{e.type===`BLOCKS_CHANGED`&&(this.updateCapacityStats(),this.updateStatsBar(),this.checkDirtyState(),this.config.onMutationsApplied&&this.config.onMutationsApplied(e.payload.mutations)),e.type===`AVAILABILITY_CHANGED`&&this.checkDirtyState()},this.handleBlockSelected=e=>{},this.handleCourtSelected=e=>{},this.handleTimeRangeSelected=e=>{},this.handleCourtCheckboxChange=e=>{let t=e.target,n=t.dataset.courtId,r=t.dataset.venueId,i=t.dataset.tournamentId;if(!n||!r||!i)return;let a=`${i}|${r}|${n}`;t.checked?this.visibleCourts.add(a):this.visibleCourts.delete(a),this.updateVenueCheckboxState(r);let o=new Set(this.visibleCourts);this.control?.setVisibleCourts(o)},this.handleVenueCheckboxChange=e=>{let t=e.target,n=t.dataset.venue,r=t.dataset.tournamentId;if(!n||!r)return;this.engine.listCourtMeta().filter(e=>e.ref.venueId===n).forEach(e=>{let n=`${e.ref.tournamentId}|${e.ref.venueId}|${e.ref.courtId}`;t.checked?this.visibleCourts.add(n):this.visibleCourts.delete(n)}),(this.venueTreeElement?.querySelectorAll(`.court-checkbox[data-venue-id="${n}"]`))?.forEach(e=>{e.checked=t.checked});let i=new Set(this.visibleCourts);this.control?.setVisibleCourts(i)},this.config={showVenueTree:!0,showCapacity:!0,showToolbar:!0,groupingMode:`BY_VENUE`,showConflicts:!0,showSegmentLabels:!1,...e},this.engine=new t.AvailabilityEngine,this.engine.init(e.tournamentRecord,e.engineConfig),this.initialSnapshot=this.takeSnapshot(),this.engine.subscribe(this.handleEngineEvent)}render(e){e.innerHTML=``,this.rootElement=this.createRootElement(),e.appendChild(this.rootElement),this.config.showToolbar&&this.renderToolbar(),this.config.showCapacity&&this.renderCapacityIndicator();let t=this.rootElement.querySelector(`.availability-grid-main`);if(!t)return;let n=document.createElement(`div`);n.className=`availability-grid-layout`,t.appendChild(n),this.config.showVenueTree&&this.renderVenueTree(n),this.renderCalendar(n),this.calendarElement&&(this.control=new jz(this.engine,{container:this.calendarElement,initialDay:this.config.initialDay,initialView:this.config.initialView,groupingMode:this.config.groupingMode,showConflicts:this.config.showConflicts,showSegmentLabels:this.config.showSegmentLabels,onBlockSelected:this.handleBlockSelected,onCourtSelected:this.handleCourtSelected,onTimeRangeSelected:this.handleTimeRangeSelected,onManageRegistrations:this.config.onManageRegistrations,onBlocksChanged:()=>{this.updateCapacityStats(),this.updateStatsBar()},onDayNavigate:e=>{this.viewToolbarResult?.setActiveView(`day`),this.viewToolbarResult?.setDate(e),this.datepicker&&this.datepicker.setDate(e,{clear:!0}),this.updateCapacityStats(),this.updateStatsBar()}}),this.config.showToolbar&&this.initDatepicker())}destroy(){this.datepicker&&=(this.datepicker.destroy(),null),this.control&&=(this.control.destroy(),null),this.rootElement&&this.rootElement.parentNode&&this.rootElement.parentNode.removeChild(this.rootElement),this.rootElement=null,this.venueTreeElement=null,this.calendarElement=null,this.capacityElement=null,this.viewToolbarResult=null}createRootElement(){let e=document.createElement(`div`);return e.className=`availability-grid-root`,e.innerHTML=`
267
+ `,b?b.prepend(S):_.prepend(S),x&&b?x.before(v):m.appendChild(v),o){let e=v.querySelector(`.tp-court-avail-warning`);((t,n)=>{if(!e||!t||!n||t===`--:--`||n===`--:--`)return;let r=t<o.startTime,i=n>o.endTime;r||i?(e.textContent=(l.venueWarning||"Venue hours are ${startTime}–${endTime}. The venue will be widened to accommodate this change.").replace("${startTime}",o.startTime).replace("${endTime}",o.endTime),e.style.display=`block`):e.style.display=`none`})(r,i)}function C(){y?.destroy&&y.destroy(),p.remove()}}var{calculateCapacityStats:zz}=t.availability,Bz=class{constructor(e){this.control=null,this.rootElement=null,this.venueTreeElement=null,this.calendarElement=null,this.capacityElement=null,this.statsBarInstance=null,this.viewToolbarResult=null,this.datepicker=null,this.visibleCourts=new Set,this.initialSnapshot=``,this.isDirty=!1,this.handleEngineEvent=e=>{e.type===`BLOCKS_CHANGED`&&(this.updateCapacityStats(),this.updateStatsBar(),this.checkDirtyState(),this.config.onMutationsApplied&&this.config.onMutationsApplied(e.payload.mutations)),e.type===`AVAILABILITY_CHANGED`&&this.checkDirtyState()},this.handleBlockSelected=e=>{},this.handleCourtSelected=e=>{},this.handleTimeRangeSelected=e=>{},this.handleCourtCheckboxChange=e=>{let t=e.target,n=t.dataset.courtId,r=t.dataset.venueId,i=t.dataset.tournamentId;if(!n||!r||!i)return;let a=`${i}|${r}|${n}`;t.checked?this.visibleCourts.add(a):this.visibleCourts.delete(a),this.updateVenueCheckboxState(r);let o=new Set(this.visibleCourts);this.control?.setVisibleCourts(o)},this.handleVenueCheckboxChange=e=>{let t=e.target,n=t.dataset.venue,r=t.dataset.tournamentId;if(!n||!r)return;this.engine.listCourtMeta().filter(e=>e.ref.venueId===n).forEach(e=>{let n=`${e.ref.tournamentId}|${e.ref.venueId}|${e.ref.courtId}`;t.checked?this.visibleCourts.add(n):this.visibleCourts.delete(n)}),(this.venueTreeElement?.querySelectorAll(`.court-checkbox[data-venue-id="${n}"]`))?.forEach(e=>{e.checked=t.checked});let i=new Set(this.visibleCourts);this.control?.setVisibleCourts(i)},this.config={showVenueTree:!0,showCapacity:!0,showToolbar:!0,groupingMode:`BY_VENUE`,showConflicts:!0,showSegmentLabels:!1,...e},this.engine=new t.AvailabilityEngine,this.engine.init(e.tournamentRecord,e.engineConfig),this.initialSnapshot=this.takeSnapshot(),this.engine.subscribe(this.handleEngineEvent)}render(e){e.innerHTML=``,this.rootElement=this.createRootElement(),e.appendChild(this.rootElement),this.config.showToolbar&&this.renderToolbar(),this.config.showCapacity&&this.renderCapacityIndicator();let t=this.rootElement.querySelector(`.availability-grid-main`);if(!t)return;let n=document.createElement(`div`);n.className=`availability-grid-layout`,t.appendChild(n),this.config.showVenueTree&&this.renderVenueTree(n),this.renderCalendar(n),this.calendarElement&&(this.control=new Az(this.engine,{container:this.calendarElement,initialDay:this.config.initialDay,initialView:this.config.initialView,groupingMode:this.config.groupingMode,showConflicts:this.config.showConflicts,showSegmentLabels:this.config.showSegmentLabels,onBlockSelected:this.handleBlockSelected,onCourtSelected:this.handleCourtSelected,onTimeRangeSelected:this.handleTimeRangeSelected,onManageRegistrations:this.config.onManageRegistrations,onBlocksChanged:()=>{this.updateCapacityStats(),this.updateStatsBar()},onDayNavigate:e=>{this.viewToolbarResult?.setActiveView(`day`),this.viewToolbarResult?.setDate(e),this.datepicker&&this.datepicker.setDate(e,{clear:!0}),this.updateCapacityStats(),this.updateStatsBar()}}),this.config.showToolbar&&this.initDatepicker())}destroy(){this.datepicker&&=(this.datepicker.destroy(),null),this.control&&=(this.control.destroy(),null),this.rootElement&&this.rootElement.parentNode&&this.rootElement.parentNode.removeChild(this.rootElement),this.rootElement=null,this.venueTreeElement=null,this.calendarElement=null,this.capacityElement=null,this.viewToolbarResult=null}createRootElement(){let e=document.createElement(`div`);return e.className=`availability-grid-root`,e.innerHTML=`
268
268
  <div class="availability-grid-header"></div>
269
269
  <div class="availability-grid-main"></div>
270
- `,e}renderToolbar(){let e=this.rootElement?.querySelector(`.availability-grid-header`);if(!e)return;let t=this.config.labels;this.viewToolbarResult=fz(e=>this.control?.setViewPreset(e),this.config.initialView||`day`,e=>this.handleDateChange(e),{labels:t,onSetDefaultAvailability:this.config.onSetDefaultAvailability,onSave:this.config.onSave}),e.appendChild(this.viewToolbarResult.element);let n=this.engine.getActiveDays(),r=this.config.initialDay||(n.length>0?n[0]:``);r&&this.viewToolbarResult.setDate(r),this.statsBarInstance=Mz(t),e.appendChild(this.statsBarInstance.element)}initDatepicker(){if(this.datepicker||!this.viewToolbarResult)return;let e=this.engine.getActiveDays(),t=new Set(e);this.datepicker=new sn(this.viewToolbarResult.dateInput,{format:`yyyy-mm-dd`,language:this.config.language||`en`,autohide:!0,beforeShowDay:e=>{let n=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,`0`),i=String(e.getDate()).padStart(2,`0`);return t.has(`${n}-${r}-${i}`)?{classes:`tg-datepicker-active-day`}:{}}});let n=this.config.initialDay||(e.length>0?e[0]:``);n&&this.datepicker.setDate(n,{clear:!0})}handleDateChange(e){let t=this.engine.getActiveDays();if(t.length===0)return;let n=e;t.includes(e)||(n=t.reduce((t,n)=>Math.abs(new Date(n).getTime()-new Date(e).getTime())<Math.abs(new Date(t).getTime()-new Date(e).getTime())?n:t,t[0])),this.control?.setDay(n),this.updateCapacityStats(),this.updateStatsBar(),this.viewToolbarResult&&this.viewToolbarResult.setDate(n),this.datepicker&&this.datepicker.setDate(n,{clear:!0})}renderCapacityIndicator(){let e=this.rootElement?.querySelector(`.availability-grid-header`);if(!e)return;let t=this.config.labels,n=t?.courtAvailability??`Court Availability`,r=t?.totalHours??`Total Hours`,i=t?.avgPerCourt??`Avg/Court`,a=document.createElement(`div`);a.className=`availability-grid-capacity`,a.innerHTML=`
270
+ `,e}renderToolbar(){let e=this.rootElement?.querySelector(`.availability-grid-header`);if(!e)return;let t=this.config.labels;this.viewToolbarResult=dz(e=>this.control?.setViewPreset(e),this.config.initialView||`day`,e=>this.handleDateChange(e),{labels:t,onSetDefaultAvailability:this.config.onSetDefaultAvailability,onSave:this.config.onSave}),e.appendChild(this.viewToolbarResult.element);let n=this.engine.getActiveDays(),r=this.config.initialDay||(n.length>0?n[0]:``);r&&this.viewToolbarResult.setDate(r),this.statsBarInstance=jz(t),e.appendChild(this.statsBarInstance.element)}initDatepicker(){if(this.datepicker||!this.viewToolbarResult)return;let e=this.engine.getActiveDays(),t=new Set(e);this.datepicker=new sn(this.viewToolbarResult.dateInput,{format:`yyyy-mm-dd`,language:this.config.language||`en`,autohide:!0,beforeShowDay:e=>{let n=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,`0`),i=String(e.getDate()).padStart(2,`0`);return t.has(`${n}-${r}-${i}`)?{classes:`tg-datepicker-active-day`}:{}}});let n=this.config.initialDay||(e.length>0?e[0]:``);n&&this.datepicker.setDate(n,{clear:!0})}handleDateChange(e){let t=this.engine.getActiveDays();if(t.length===0)return;let n=e;t.includes(e)||(n=t.reduce((t,n)=>Math.abs(new Date(n).getTime()-new Date(e).getTime())<Math.abs(new Date(t).getTime()-new Date(e).getTime())?n:t,t[0])),this.control?.setDay(n),this.updateCapacityStats(),this.updateStatsBar(),this.viewToolbarResult&&this.viewToolbarResult.setDate(n),this.datepicker&&this.datepicker.setDate(n,{clear:!0})}renderCapacityIndicator(){let e=this.rootElement?.querySelector(`.availability-grid-header`);if(!e)return;let t=this.config.labels,n=t?.courtAvailability??`Court Availability`,r=t?.totalHours??`Total Hours`,i=t?.avgPerCourt??`Avg/Court`,a=document.createElement(`div`);a.className=`availability-grid-capacity`,a.innerHTML=`
271
271
  <div class="capacity-label">${n}:</div>
272
272
  <div class="capacity-stats">
273
273
  <div class="stat">
@@ -286,7 +286,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
286
286
  <div class="tree-content" id="venue-tree-content">
287
287
  <!-- Tree will be populated dynamically -->
288
288
  </div>
289
- `,e.appendChild(t),this.venueTreeElement=t,this.updateVenueTree()}renderCalendar(e){let t=document.createElement(`div`);t.className=`availability-grid-calendar`,e.appendChild(t),this.calendarElement=t}takeSnapshot(){let e=this.engine.getActiveDays(),t=this.engine.listCourtMeta(),n=[];for(let r of e){let e=this.engine.getDayBlocks(r).map(e=>({id:e.id,type:e.type,start:e.start,end:e.end,court:`${e.court?.venueId}|${e.court?.courtId}`})),i=t.map(e=>{let t=this.engine.getCourtAvailability(e.ref,r);return{ref:`${e.ref.venueId}|${e.ref.courtId}`,s:t.startTime,e:t.endTime}});n.push({day:r,blocks:e,avails:i})}return JSON.stringify(n)}checkDirtyState(){let e=this.takeSnapshot(),t=this.isDirty;this.isDirty=e!==this.initialSnapshot,this.isDirty!==t&&(this.viewToolbarResult?.setSaveEnabled(this.isDirty),this.config.onDirtyChange&&this.config.onDirtyChange(this.isDirty))}resetDirtyState(){this.initialSnapshot=this.takeSnapshot(),this.isDirty=!1,this.viewToolbarResult?.setSaveEnabled(!1),this.config.onDirtyChange&&this.config.onDirtyChange(!1)}updateStatsBar(){if(!this.statsBarInstance||!this.control)return;let e=this.control.getViewDays();if(e.length===0)return;let t=0,n=0,r=0,i=0;for(let a of e){let e=Bz(this.engine.getCapacityCurve(a));t+=e.totalCourtHours,n+=e.totalUnavailableHours??0,r+=e.totalAvailableHours??0,i=e.totalCourts??0}let a=i||1;this.statsBarInstance.update({totalHours:t,blockedHours:n,availableHours:r,avgPerCourt:r/a})}updateCapacityStats(){if(!this.capacityElement||!this.control)return;let e=this.control.getViewDays();if(e.length===0)return;let t=0,n=0;for(let r of e){let e=Bz(this.engine.getCapacityCurve(r));t+=e.totalAvailableHours??0,n=e.totalCourts??0}let r=this.capacityElement.querySelector(`#total-hours`),i=this.capacityElement.querySelector(`#avg-hours`);r&&(r.textContent=`${t.toFixed(1)}h`);let a=n>0?t/n:0;i&&(i.textContent=`${a.toFixed(1)}h`)}updateVenueTree(){if(!this.venueTreeElement)return;let e=this.venueTreeElement.querySelector(`#venue-tree-content`);if(!e)return;let t=this.engine.listCourtMeta(),n=this.engine.getConfig().tournamentId;this.visibleCourts.size===0&&t.forEach(e=>{let t=`${e.ref.tournamentId}|${e.ref.venueId}|${e.ref.courtId}`;this.visibleCourts.add(t)});let r=new Map;for(let e of this.config.tournamentRecord?.venues||[]){let t=e.venueId;t&&r.set(t,e.venueName||e.venueAbbreviation||t)}let i=new Map;for(let e of t){let t=e.ref.venueId;i.has(t)||i.set(t,[]),i.get(t).push(e)}let a=``;for(let[e,t]of i){let i=t.every(e=>{let t=`${e.ref.tournamentId}|${e.ref.venueId}|${e.ref.courtId}`;return this.visibleCourts.has(t)}),o=r.get(e)||e;a+=`
289
+ `,e.appendChild(t),this.venueTreeElement=t,this.updateVenueTree()}renderCalendar(e){let t=document.createElement(`div`);t.className=`availability-grid-calendar`,e.appendChild(t),this.calendarElement=t}takeSnapshot(){let e=this.engine.getActiveDays(),t=this.engine.listCourtMeta(),n=[];for(let r of e){let e=this.engine.getDayBlocks(r).map(e=>({id:e.id,type:e.type,start:e.start,end:e.end,court:`${e.court?.venueId}|${e.court?.courtId}`})),i=t.map(e=>{let t=this.engine.getCourtAvailability(e.ref,r);return{ref:`${e.ref.venueId}|${e.ref.courtId}`,s:t.startTime,e:t.endTime}});n.push({day:r,blocks:e,avails:i})}return JSON.stringify(n)}checkDirtyState(){let e=this.takeSnapshot(),t=this.isDirty;this.isDirty=e!==this.initialSnapshot,this.isDirty!==t&&(this.viewToolbarResult?.setSaveEnabled(this.isDirty),this.config.onDirtyChange&&this.config.onDirtyChange(this.isDirty))}resetDirtyState(){this.initialSnapshot=this.takeSnapshot(),this.isDirty=!1,this.viewToolbarResult?.setSaveEnabled(!1),this.config.onDirtyChange&&this.config.onDirtyChange(!1)}updateStatsBar(){if(!this.statsBarInstance||!this.control)return;let e=this.control.getViewDays();if(e.length===0)return;let t=0,n=0,r=0,i=0;for(let a of e){let e=zz(this.engine.getCapacityCurve(a));t+=e.totalCourtHours,n+=e.totalUnavailableHours??0,r+=e.totalAvailableHours??0,i=e.totalCourts??0}let a=i||1;this.statsBarInstance.update({totalHours:t,blockedHours:n,availableHours:r,avgPerCourt:r/a})}updateCapacityStats(){if(!this.capacityElement||!this.control)return;let e=this.control.getViewDays();if(e.length===0)return;let t=0,n=0;for(let r of e){let e=zz(this.engine.getCapacityCurve(r));t+=e.totalAvailableHours??0,n=e.totalCourts??0}let r=this.capacityElement.querySelector(`#total-hours`),i=this.capacityElement.querySelector(`#avg-hours`);r&&(r.textContent=`${t.toFixed(1)}h`);let a=n>0?t/n:0;i&&(i.textContent=`${a.toFixed(1)}h`)}updateVenueTree(){if(!this.venueTreeElement)return;let e=this.venueTreeElement.querySelector(`#venue-tree-content`);if(!e)return;let t=this.engine.listCourtMeta(),n=this.engine.getConfig().tournamentId;this.visibleCourts.size===0&&t.forEach(e=>{let t=`${e.ref.tournamentId}|${e.ref.venueId}|${e.ref.courtId}`;this.visibleCourts.add(t)});let r=new Map;for(let e of this.config.tournamentRecord?.venues||[]){let t=e.venueId;t&&r.set(t,e.venueName||e.venueAbbreviation||t)}let i=new Map;for(let e of t){let t=e.ref.venueId;i.has(t)||i.set(t,[]),i.get(t).push(e)}let a=``;for(let[e,t]of i){let i=t.every(e=>{let t=`${e.ref.tournamentId}|${e.ref.venueId}|${e.ref.courtId}`;return this.visibleCourts.has(t)}),o=r.get(e)||e;a+=`
290
290
  <div class="venue-group">
291
291
  <div class="venue-header">
292
292
  <input type="checkbox" class="venue-checkbox"
@@ -318,5 +318,5 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
318
318
  `}).join(``)}
319
319
  </div>
320
320
  </div>
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();zz({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);zz({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 Hz(e,t){let n=new Vz(e);return n.render(t),n}var{LUCKY_DRAW:Uz,ROUND_ROBIN:Wz,AD_HOC:Gz}=t.drawDefinitionConstants;function Kz(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 qz(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 Jz(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 Yz(e){let t=Math.max(2,e);return t&t-1?Jz(e).length:Math.ceil(Math.log2(t))}function Xz(e,t){let n=Math.max(2,e);if(!(n&n-1))return Math.floor(n/2**t);let r=Jz(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 Zz(e,t,n){return e===Wz?(n?.groupSize||Math.min(t,4))-1:e===Gz?n?.roundsCount||1:e===Uz?Yz(t):qz(t)}function Qz(e,t,n){return e===Uz?Xz(t,n):Math.floor(t/2**n)}var{ROUND_ROBIN:$z,AD_HOC:eB,LUCKY_DRAW:tB}=t.drawDefinitionConstants,nB=0;function rB({structureType:e,drawSize:t,stage:n,structureId:r,qualifyingPositions:i,structureOptions:a}){return e===$z?aB({drawSize:t,stage:n,structureId:r,structureOptions:a}):e===eB?sB({drawSize:t,stage:n,structureId:r,roundsCount:a?.roundsCount||1}):e===tB?oB({drawSize:t,stage:n,structureId:r}):iB({drawSize:t,stage:n,structureId:r,qualifyingPositions:i})}function iB({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-${++nB}`,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 aB({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-${++nB}`,roundNumber:r,roundPosition:e*o+a,isRoundRobin:!0,stage:t,structureId:`${n}-g${e}`})}return i}function oB({drawSize:e,stage:t,structureId:n}){let r=Math.max(2,e);if(!(r&r-1))return iB({drawSize:e,stage:t,structureId:n});let i=Jz(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-${++nB}`,roundNumber:u,roundPosition:r,drawPositions:i?[s++,s++]:[],finishingRound:a-e,roundFactor:1,preFeedRound:!!c,stage:t,structureId:n})}}return o}function sB({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-${++nB}`,roundNumber:e,roundPosition:r,finishingRound:1,stage:t,structureId:n});return i}var{ROUND_ROBIN:cB}=t.drawDefinitionConstants,lB=new Map;function uB(e,n,r){let i=`${e}:${n}:${r||``}`,a=lB.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 dB(i,{});let c=(s.structures||[])[0];if(!c)return dB(i,{});let l=c.structureType===`CONTAINER`,u={};if(l||e===cB){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 dB(i,u)}catch{return dB(i,{})}}function dB(e,t){return lB.set(e,t),t}var{MAIN:fB,QUALIFYING:pB,CONSOLATION:mB,PLAY_OFF:hB,ROUND_ROBIN:gB,AD_HOC:_B,LUCKY_DRAW:vB,WINNER:yB,LOSER:bB}=t.drawDefinitionConstants,xB=240,SB=48,CB=16;function wB(e){if(e.structureType===gB)return(e.structureOptions?.groupSize||Math.min(e.drawSize,4))-1;if(e.structureType===_B)return e.structureOptions?.roundsCount||1;if(e.structureType===vB)return Yz(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 TB(e){let t=wB(e);return Math.max(xB,t*SB+CB)}var EB={[fB]:`tb-card-badge--main`,[pB]:`tb-card-badge--qualifying`,[mB]:`tb-card-badge--consolation`,[hB]:`tb-card-badge--playoff`};function DB(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=`${TB(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 ${EB[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||rB({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=Di({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=parseInt(n.getAttribute(`data-round-number`)||`0`),r=i.filter(t=>t.roundNumber===e);if(!r.length)continue;let a=r.find(e=>e.isSelected)||r.find(e=>e.linkType===bB)||r.find(e=>e.linkType===yB)||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=uB(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 OB(e,t){let n=TB(e);switch(t){case`input`:return{x:e.position.x,y:e.position.y+160/2};case`winner`:return{x:e.position.x+n,y:e.position.y+160/2-8};case`loser`:return{x:e.position.x+n,y:e.position.y+160/2+8}}}var{MAIN:kB,QUALIFYING:AB,CONSOLATION:jB,WINNER:MB,LOSER:NB,ROUND_ROBIN:PB}=t.drawDefinitionConstants,FB=`POSITION`,IB=0;function LB(e){return`${e}-${++IB}-${Date.now().toString(36)}`}function RB(e){let t=2;for(;t*2<=e;)t*=2;return t}var zB=60,BB=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:LB(`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===MB&&this.state.edges.find(t=>t.sourceNodeId===e.sourceNodeId&&t.linkType===MB))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===PB&&e.linkType!==FB||t?.stage===AB&&n&&n.stage!==AB&&n.stage!==kB||n?.stage===AB&&t&&t.stage!==AB)return null;let r={...e,id:LB(`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!==jB)return;let n=this.inboundCapacity(e);n>0&&t.drawSize>n&&(t.drawSize=RB(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===NB){let r=e.sourceRoundNumber||1;n+=Qz(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+TB(t));return{x:e+zB,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===kB);i.push(...t.length?t:[e[0]])}let a=new Map,o=new Set(e.filter(e=>e.stage===AB).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=>TB(e)));t.forEach((e,t)=>{e.position={x:p,y:t*190+40}}),p+=n+zB}}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:VB,LOSER:HB,QUALIFYING:UB,CONSOLATION:WB,ROUND_ROBIN:GB}=t.drawDefinitionConstants,KB=`POSITION`,qB=e=>e===GB;function JB(e,t){if(!qB(e.structureType))return;let n=t.edges.filter(t=>t.sourceNodeId===e.id&&t.linkType===KB);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 YB=`http://www.w3.org/2000/svg`,XB={[VB]:`tb-edge--winner`,[HB]:`tb-edge--loser`,[KB]:`tb-edge--position`};function ZB(e){let t=document.createElement(`div`);t.className=`tb-canvas`;let n=document.createElementNS(YB,`svg`);n.classList.add(`tb-canvas-svg`);let r=document.createElementNS(YB,`defs`);for(let[e,t]of Object.entries(XB)){let n=document.createElementNS(YB,`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(YB,`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===VB).map(e=>e.sourceNodeId).filter(t=>{let n=e.nodes.find(e=>e.id===t);return n&&n.stage===UB&&!qB(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===VB){let t=e.nodes.find(e=>e.id===n.sourceNodeId);t&&(r=wB(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!==VB)continue;let r=n.targetRoundNumber||1;if(r<=1)continue;let i=e.nodes.find(e=>e.id===n.sourceNodeId);if(!i||i.stage!==UB)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=Kz(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(!qB(n.structureType))continue;let r=e.edges.filter(e=>e.sourceNodeId===n.id&&e.linkType===KB);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&&qB(e.structureType)?KB:n===`loser`||t?.stage===WB?HB:VB}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=OB(i,r),s=document.createElementNS(YB,`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=DB(n,c,e.selectedNodeId===n.id,t.has(n.id),r.get(n.id),o.get(n.id),JB(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)=>{v(n,t,e,r>1?(i-(r-1)/2)*14:0)})}let h=600,_=400;for(let t of e.nodes)h=Math.max(h,t.position.x+TB(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=OB(a,n.linkType===HB?`loser`:`winner`),c=OB(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(YB,`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(YB,`path`);if(m.setAttribute(`d`,f),m.classList.add(XB[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(YB,`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:QB,ROUND_ROBIN:$B,FEED_IN:eV,FEED_IN_CHAMPIONSHIP:tV,FIRST_MATCH_LOSER_CONSOLATION:nV,COMPASS:rV,OLYMPIC:iV,AD_HOC:aV,LUCKY_DRAW:oV,MAIN:sV,QUALIFYING:cV,CONSOLATION:lV,PLAY_OFF:uV,WINNER:dV}=t.drawDefinitionConstants,fV=`POSITION`,pV=[{label:`Single Elimination`,value:QB},{label:`Round Robin`,value:$B},{label:`Feed-In Championship`,value:tV},{label:`FMLC`,value:nV},{label:`Compass`,value:rV},{label:`Olympic`,value:iV},{label:`Ad-hoc`,value:aV}],mV=[{label:`Single Elimination`,value:QB},{label:`Round Robin`,value:$B},{label:`Lucky Draw`,value:oV},{label:`Staggered Entry`,value:eV},{label:`Ad-hoc`,value:aV}],hV=[{label:`Main`,value:sV},{label:`Qualifying`,value:cV},{label:`Consolation`,value:lV},{label:`Playoff`,value:uV}];function gV(e){let t=[],n=Math.floor(e/2);for(;n>=1;)t.push(n),n=Math.floor(n/2);return t}function _V(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 vV(e,t,n,r,i,a){let o=_V(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===fV),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&&yV(u,t,l,i)}function yV(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 bV(e,t,n,r,i,a){let o=t.edges.find(t=>t.targetNodeId===e.id&&t.linkType===fV);if(!o||t.nodes.find(e=>e.id===o.sourceNodeId)?.structureType!==$B)return;let s=e.structureOptions?.playoffDrawType||QB;if(i.push({label:`Playoff Draw Type`,field:`playoffDrawType`,value:s,disabled:n,options:pV.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===$B){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 xV(e,t,n,r,i){let a=gV(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 SV(e,t,n){let r=Kz(e.drawSize),i=new Map,a=[];for(let n of t.edges){if(n.linkType!==dV||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!==cV)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 CV(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:Lx(1),error:`Name required`}},{label:`Stage`,field:`stage`,value:i.stage,disabled:n,options:hV.map(e=>({...e,selected:e.value===i.stage}))},{label:`Structure Type`,field:`structureType`,value:i.structureType,disabled:n,options:mV.map(e=>({...e,selected:e.value===i.structureType}))},{label:i.stage===sV?`Draw Size`:`Structure Size`,field:`drawSize`,type:`number`,value:String(i.drawSize),...n?{disabled:!0}:i.structureType===aV?{validator:zx(0,256),error:`Must be 0-256`}:{validator:zx(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===aV?0:2))return;let r={drawSize:n};if(i.structureType===$B){let e=i.structureOptions?.groupSize||4,t=_V(n);!t.includes(e)&&t.length>0&&(r.structureOptions={...i.structureOptions,groupSize:t[0]})}e.onUpdateNode(i.id,r)}}];i.structureType===$B&&vV(i,r,n,e,s,c),i.stage===uV&&bV(i,r,n,e,s,c),i.stage===cV&&xV(i,n,e,s,c),Oi(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=()=>{Va({existingMatchUpFormat:i.matchUpFormat,callback:t=>{e.onUpdateNode(i.id,{matchUpFormat:t||void 0}),d.textContent=t||`Not set`}})},l.appendChild(d),o.appendChild(l),SV(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:wV,LOSER:TV,TOP_DOWN:EV,BOTTOM_UP:DV,QUALIFYING:OV,ROUND_ROBIN:kV}=t.drawDefinitionConstants,AV=`POSITION`,jV=`ALTERNATING`,MV=e=>e===kV,NV=[{label:`Winner`,value:wV},{label:`Loser`,value:TV},{label:`Position`,value:AV}],PV=[{label:`Top-Down`,value:EV},{label:`Bottom-Up`,value:DV},{label:`Alternating`,value:jV}];function FV(e){let t=document.createElement(`div`),n=!!e.readOnly;function r(t,r,i,a,o,s){let c=[],l=[],u=r?uB(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===AV),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===wV&&s?.stage===OV,p=s?Zz(s.structureType,s.drawSize,s.structureOptions):8,m=c?Zz(c.structureType,c.drawSize,c.structureOptions):8,h=o.linkType===AV&&s&&MV(s.structureType),g=[{label:`Link Type`,field:`linkType`,value:o.linkType,disabled:n,options:NV.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===TV&&(g.push({label:`Feed Profile`,field:`feedProfile`,value:o.feedProfile||EV,disabled:n,options:PV.map(e=>({...e,selected:e.value===(o.feedProfile||EV)}))}),n||_.push({control:`feedProfile`,onChange:({e:t})=>e.onUpdateEdge(o.id,{feedProfile:t.target.value})})),o.linkType===AV&&!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})}})),Oi(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:IV,QUALIFYING:LV,CONSOLATION:RV,WINNER:zV,LOSER:BV,SINGLE_ELIMINATION:VV,ROUND_ROBIN:HV,AD_HOC:UV}=t.drawDefinitionConstants,WV=`POSITION`;function GV(e){let t=[],n=KV(e,t);return JV(e,qV(e),t),YV(e,t),XV(e,t),ZV(e,t),QV(e,n,t),$V(e,t),eH(e,t),nH(e,t),rH(e,t),iH(e)&&t.push({severity:`error`,message:`Circular dependency detected between structures`}),t}function KV(e,t){let n=e.nodes.filter(e=>e.stage===IV);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 qV(e){let t=new Set;for(let n of e.edges)n.linkType===zV&&(n.targetRoundNumber||1)>1&&e.nodes.find(e=>e.id===n.sourceNodeId)?.stage===LV&&t.add(n.targetNodeId);let n=new Map;for(let t of e.edges)t.linkType===BV&&n.set(t.targetNodeId,(n.get(t.targetNodeId)||0)+1);for(let[e,r]of n)r>1&&t.add(e);return t}function JV(e,t,n){for(let r of e.nodes){if(r.structureType===VV&&!t.has(r.id)){let t=e.edges.some(e=>e.targetNodeId===r.id);(r.stage===IV||r.stage===LV)&&!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===UV?0:2;r.drawSize<i&&n.push({message:`"${r.structureName}" draw size must be at least ${i}`,severity:`error`,nodeId:r.id})}}function YV(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=Zz(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=Zz(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 XV(e,t){let n=new Map;for(let t of e.edges)t.linkType===zV&&(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 ZV(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 QV(e,t,n){let r=e.nodes.filter(e=>e.stage===LV);for(let i of r){let r=e.edges.find(e=>e.sourceNodeId===i.id&&e.linkType===zV&&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 $V(e,t){let n=new Map;for(let t of e.edges){if(t.linkType!==zV)continue;let r=t.targetRoundNumber||1;if(r<=1)continue;let i=e.nodes.find(e=>e.id===t.sourceNodeId);if(!i||i.stage!==LV)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=Kz(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 eH(e,t){for(let n of e.edges){if(n.linkType!==BV)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=Qz(r.structureType,r.drawSize,a),c=Kz(i.drawSize);o!==1&&tH(c,o,s,r,i,a,n.id,t)}}function tH(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 nH(e,t){let n=e.nodes.filter(e=>e.stage===RV);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===BV){let e=t.sourceRoundNumber||1;i+=Qz(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 rH(e,t){let n=new Map;for(let r of e.edges){if(r.linkType!==WV)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===HV){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 iH(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:aH,QUALIFYING:oH,CONSOLATION:sH,PLAY_OFF:cH,LUCKY_DRAW:lH}=t.drawDefinitionConstants;function uH(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=GV(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:aH,onClick:()=>e.onAddStructure(aH),close:!0},{label:`Lucky Draw`,value:lH,onClick:()=>e.onAddStructure(aH,lH),close:!0},{label:`Qualifying`,value:oH,onClick:()=>e.onAddStructure(oH),close:!0},{label:`Consolation`,value:sH,onClick:()=>e.onAddStructure(sH),close:!0},{label:`Playoff`,value:cH,onClick:()=>e.onAddStructure(cH),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()}),lP({target:a,items:l});function u(e){s=e}return{element:r,update:u}}function dH({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:fH,FEED_IN:pH,ROUND_ROBIN:mH,LUCKY_DRAW:hH,MAIN:gH,QUALIFYING:_H,CONSOLATION:vH,PLAY_OFF:yH}=t.drawDefinitionConstants,bH=`WINNER`,xH=`LOSER`,SH=`POSITION`,CH=`tpl-edge-1`,wH=`tpl-edge-2`,TH=`tpl-edge-3`,EH=`tpl-edge-4`,DH=`tpl-edge-5`,OH=`tpl-edge-6`,kH=`tpl-edge-7`,AH=`R1 losers → R1`,jH=[{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:gH,structureType:fH,drawSize:32,position:{x:320,y:40}},{id:`tpl-qual`,structureName:`Qualifying`,stage:_H,structureType:fH,drawSize:16,qualifyingPositions:4,position:{x:40,y:40}}],edges:[{id:CH,sourceNodeId:`tpl-qual`,targetNodeId:`tpl-main`,linkType:bH,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:gH,structureType:fH,drawSize:32,position:{x:40,y:40}},{id:`tpl-cons`,structureName:`Consolation`,stage:vH,structureType:fH,drawSize:16,position:{x:320,y:40}}],edges:[{id:CH,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:xH,sourceRoundNumber:1,targetRoundNumber:1,label:AH}]}},{name:`Feed-In Championship (FIC)`,description:`Main draw with multi-round fed consolation`,state:{drawName:`FIC`,nodes:[{id:`tpl-main`,structureName:`Main Draw`,stage:gH,structureType:fH,drawSize:32,position:{x:40,y:40}},{id:`tpl-cons`,structureName:`Consolation`,stage:vH,structureType:pH,drawSize:31,position:{x:460,y:40}}],edges:[{id:CH,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:xH,sourceRoundNumber:1,targetRoundNumber:1,label:AH},{id:wH,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:xH,sourceRoundNumber:2,targetRoundNumber:2,label:`R2 losers → R2`},{id:TH,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:xH,sourceRoundNumber:3,targetRoundNumber:4,label:`R3 losers → R4`},{id:EH,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:xH,sourceRoundNumber:4,targetRoundNumber:6,label:`R4 losers → R6`},{id:DH,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:xH,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:gH,structureType:fH,drawSize:32,position:{x:40,y:40}},{id:`tpl-west`,structureName:`West`,stage:vH,structureType:fH,drawSize:16,position:{x:400,y:40}},{id:`tpl-north`,structureName:`North`,stage:vH,structureType:fH,drawSize:8,position:{x:400,y:210}},{id:`tpl-ne`,structureName:`Northeast`,stage:vH,structureType:fH,drawSize:4,position:{x:400,y:380}},{id:`tpl-south`,structureName:`South`,stage:vH,structureType:fH,drawSize:8,position:{x:680,y:40}},{id:`tpl-sw`,structureName:`Southwest`,stage:vH,structureType:fH,drawSize:4,position:{x:680,y:210}},{id:`tpl-nw`,structureName:`Northwest`,stage:vH,structureType:fH,drawSize:4,position:{x:680,y:380}},{id:`tpl-se`,structureName:`Southeast`,stage:vH,structureType:fH,drawSize:4,position:{x:960,y:40}}],edges:[{id:CH,sourceNodeId:`tpl-east`,targetNodeId:`tpl-west`,linkType:xH,sourceRoundNumber:1,targetRoundNumber:1,label:AH},{id:wH,sourceNodeId:`tpl-east`,targetNodeId:`tpl-north`,linkType:xH,sourceRoundNumber:2,targetRoundNumber:1,label:`R2 losers → R1`},{id:TH,sourceNodeId:`tpl-east`,targetNodeId:`tpl-ne`,linkType:xH,sourceRoundNumber:3,targetRoundNumber:1,label:`R3 losers → R1`},{id:EH,sourceNodeId:`tpl-west`,targetNodeId:`tpl-south`,linkType:xH,sourceRoundNumber:1,targetRoundNumber:1,label:AH},{id:DH,sourceNodeId:`tpl-west`,targetNodeId:`tpl-sw`,linkType:xH,sourceRoundNumber:2,targetRoundNumber:1,label:`R2 losers → R1`},{id:OH,sourceNodeId:`tpl-north`,targetNodeId:`tpl-nw`,linkType:xH,sourceRoundNumber:1,targetRoundNumber:1,label:AH},{id:kH,sourceNodeId:`tpl-south`,targetNodeId:`tpl-se`,linkType:xH,sourceRoundNumber:1,targetRoundNumber:1,label:AH}]}},{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:gH,structureType:mH,drawSize:16,structureOptions:{groupSize:4},position:{x:40,y:40}},{id:`tpl-playoff-gold`,structureName:`Gold Flight`,stage:yH,structureType:fH,drawSize:8,position:{x:320,y:40}},{id:`tpl-playoff-silver`,structureName:`Silver Flight`,stage:yH,structureType:fH,drawSize:8,position:{x:320,y:220}}],edges:[{id:CH,sourceNodeId:`tpl-main`,targetNodeId:`tpl-playoff-gold`,linkType:SH,finishingPositions:[1,2],label:`positions 1,2`},{id:wH,sourceNodeId:`tpl-main`,targetNodeId:`tpl-playoff-silver`,linkType:SH,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:gH,structureType:hH,drawSize:11,position:{x:40,y:40}},{id:`tpl-cons`,structureName:`Consolation`,stage:vH,structureType:fH,drawSize:4,position:{x:340,y:40}}],edges:[{id:CH,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:xH,sourceRoundNumber:1,targetRoundNumber:1,label:AH}]}},{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:gH,structureType:hH,drawSize:25,position:{x:40,y:40}},{id:`tpl-cons-rr`,structureName:`Consolation RR`,stage:vH,structureType:mH,drawSize:12,structureOptions:{groupSize:4},position:{x:500,y:40}}],edges:[{id:CH,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons-rr`,linkType:xH,sourceRoundNumber:1,targetRoundNumber:1,label:AH}]}},{name:`Adaptive (drawSize 11)`,description:`Compass-like multi-structure topology with lucky draw structures`,state:{drawName:`Adaptive`,nodes:[{id:`tpl-east`,structureName:`East`,stage:gH,structureType:hH,drawSize:11,position:{x:40,y:40}},{id:`tpl-west`,structureName:`West`,stage:vH,structureType:hH,drawSize:6,position:{x:340,y:40}},{id:`tpl-north`,structureName:`North`,stage:vH,structureType:fH,drawSize:2,position:{x:340,y:250}},{id:`tpl-south`,structureName:`South`,stage:vH,structureType:fH,drawSize:2,position:{x:600,y:40}}],edges:[{id:CH,sourceNodeId:`tpl-east`,targetNodeId:`tpl-west`,linkType:xH,sourceRoundNumber:1,targetRoundNumber:1,label:`R1 losers → R1 (6 losers)`},{id:wH,sourceNodeId:`tpl-east`,targetNodeId:`tpl-north`,linkType:xH,sourceRoundNumber:2,targetRoundNumber:1,label:`R2 losers → R1 (2 losers)`},{id:TH,sourceNodeId:`tpl-west`,targetNodeId:`tpl-south`,linkType:xH,sourceRoundNumber:1,targetRoundNumber:1,label:`R1 losers → R1 (2 losers)`}]}}],{MAIN:MH,QUALIFYING:NH,CONSOLATION:PH,PLAY_OFF:FH,SINGLE_ELIMINATION:IH,LUCKY_DRAW:LH,WINNER:RH,LOSER:zH}=t.drawDefinitionConstants,BH=`POSITION`,VH=class{constructor(e={}){this.config=e,this.store=new BB(e.initialState);let t=[...jH,...e.templates||[]],n=!!e.readOnly,r=this.buildToolbarPanel(t,n),i=this.buildCanvasPanel(n),a=CV({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=FV({onUpdateEdge:n?()=>{}:(e,t)=>this.store.updateEdge(e,t),onDeleteEdge:n?()=>{}:e=>this.store.removeEdge(e),readOnly:n});this.layout=dH({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 uH({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 ZB({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===BH){let i=this.store.getState().edges.filter(t=>t.sourceNodeId===e&&t.linkType===BH),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===zH){let i=this.store.getState().edges.filter(t=>t.sourceNodeId===e&&t.linkType===zH),a=new Set(i.map(e=>e.sourceRoundNumber)),o=r?Zz(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===RH&&r?.stage===NH;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===LH,r=this.store.getState().nodes.filter(t=>t.stage===e).length,i={[MH]:n?`Lucky Draw`:`Main Draw`,[NH]:`Qualifying ${r+1}`,[PH]:`Consolation`,[FH]:`Playoff ${r+1}`},a={[MH]:n?11:32,[NH]:16,[PH]:16,[FH]:4}[e]||16,o=this.store.addNode({structureName:i[e]||e,stage:e,structureType:t||IH,drawSize:a,...e===NH&&{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+TB(e)+40;n>t.scrollLeft+t.clientWidth&&t.scrollTo({left:n-t.clientWidth,behavior:`smooth`})})}handleGenerate(){let e=this.store.getState(),t=GV(e);t.some(e=>e.severity===`error`)&&console.warn(`Topology validation errors:`,t),this.config.onGenerate&&this.config.onGenerate(e)}},{MAIN:HH,CONSOLATION:UH,QUALIFYING:WH,PLAY_OFF:GH,SINGLE_ELIMINATION:KH,FEED_IN:qH,FIRST_MATCH_LOSER_CONSOLATION:JH,FEED_IN_CHAMPIONSHIP:YH,COMPASS:XH,WINNER:ZH,LOSER:QH,ROUND_ROBIN:$H,AD_HOC:eU,LUCKY_DRAW:tU}=t.drawDefinitionConstants,nU=`POSITION`;function rU(e,t){let n=e.nodes.filter(e=>e.stage===UH),r=e.nodes.filter(e=>e.stage===WH),i=e.nodes.filter(e=>e.stage===GH);if(t.structureType===$H)return e.edges.some(n=>n.sourceNodeId===t.id&&n.linkType===nU&&e.nodes.some(e=>e.id===n.targetNodeId&&e.stage===GH))?`ROUND_ROBIN_WITH_PLAYOFF`:$H;if(t.structureType===eU)return eU;if(t.structureType===qH)return qH;if(t.structureType===tU)return tU;if(n.length===7&&r.length===0&&i.length===0){let n=e.edges.filter(e=>e.linkType===QH&&e.sourceNodeId===t.id),r=new Set(n.map(e=>e.sourceRoundNumber));if(r.has(1)&&r.has(2)&&r.has(3))return XH}if(n.length===1&&r.length===0&&i.length===0){let r=n[0],i=e.edges.filter(e=>e.linkType===QH&&e.sourceNodeId===t.id&&e.targetNodeId===r.id);if(r.structureType===qH||i.length>1)return YH;if(i.length===1&&i[0].sourceRoundNumber===1)return JH}return KH}function iU(e){let t=e.nodes.find(e=>e.stage===HH);if(!t)throw Error(`No main structure node found`);let n=e.nodes.filter(e=>e.stage===WH),r=e.nodes.filter(e=>e.stage===GH),i=rU(e,t);i===KH&&!lU(t.drawSize)&&(i=qH);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&&sU(a,n,e.edges);let o=[];return aU(e,t,i,o),oU(e,t,r,a),{drawOptions:a,postGenerationMethods:o}}function aU(e,t,n,r){let i=e.nodes.filter(e=>e.stage===UH),a=e.edges.filter(e=>e.linkType===QH&&e.sourceNodeId===t.id&&i.some(t=>t.id===e.targetNodeId)),o=[JH,YH,XH];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 oU(e,t,n,r){let i=t.structureType===$H,a=i?e.edges.filter(e=>e.sourceNodeId===t.id&&e.linkType===nU&&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||KH,s={finishingPositions:a,structureName:e.structureName,drawType:o};o===$H&&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=cU(t.id,n,e.edges);i&&(r.withPlayoffs=i)}}function sU(e,t,n){let r=n.filter(e=>e.linkType===ZH&&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 cU(e,t,n){let r=n.filter(n=>n.sourceNodeId===e&&n.linkType===QH&&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=cU(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 lU(e){return e>0&&(e&e-1)==0}var{MAIN:uU}=t.drawDefinitionConstants,dU=()=>`spl-layout`,fU=()=>`spl-left`,pU=()=>`spl-toggle`,mU=()=>`spl-center`,hU=()=>`spl-center-header`,gU=()=>`spl-center-title`,_U=()=>`spl-center-actions`,vU=()=>`spl-center-leading`,yU=()=>`spl-grid-slot`,bU=()=>`spl-right`,xU=()=>`spl-matchup-card`,SU=()=>`spl-card-title`,CU=()=>`spl-card-sides`,wU=()=>`spl-card-meta`,TU=()=>`spl-card-chips`,EU=()=>`spl-card-chip`,DU=()=>`sp-panel`,OU=()=>`sp-panel-header`,kU=()=>`sp-panel-title`,AU=()=>`sp-panel-meta`,jU=()=>`sp-date-strip`,MU=()=>`sp-date-chip`,NU=()=>`sp-badges`,PU=()=>`sp-catalog`,FU=()=>`sp-catalog-toolbar`,IU=()=>`sp-input`,LU=()=>`sp-select`,RU=()=>`sp-group`,zU=()=>`sp-group-header`,BU=()=>`sp-group-body`,VU=()=>`sp-group-chevron`,HU=()=>`sp-issues`,UU=()=>`sp-issue`,WU=()=>`sp-issue-code`,GU=()=>`sp-issue-msg`,KU=()=>`sp-inspector`,qU=()=>`sp-kv`,JU=()=>`sp-kv-key`,YU=()=>`sp-kv-value`,XU=()=>`sp-small`;function ZU(e,t,n){let r=!!n?.hideLeft,i=n?.catalogSide===`left`,a=document.createElement(`div`);a.className=dU();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=fU(),s=document.createElement(`button`),s.className=pU(),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=bU(),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.update(t)}return{element:a,update:u}}function QU(e){let t=e.sides;if(t?.length===2){let e=$U(t[0]),n=$U(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 $U(e){return e?`${e.participantName??``}${e.seedNumber?` [${e.seedNumber}]`:``}`:``}function eW(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 tW(){let e=document.createElement(`div`);e.className=DU();let t=document.createElement(`div`);t.className=OU();let n=document.createElement(`div`);n.className=kU(),n.textContent=`Inspector`,t.appendChild(n),e.appendChild(t);let r=document.createElement(`div`);r.className=KU(),e.appendChild(r);function i(e){r.innerHTML=``;let t=e.selectedMatchUp;if(!t){let e=document.createElement(`div`);e.className=XU(),e.textContent=`Select a matchUp in the catalog to see details.`,r.appendChild(e);return}if(nW(r,`Event`,t.eventName),nW(r,`Draw`,t.drawName??t.drawId),nW(r,`Round`,t.roundName??`Round ${t.roundNumber}`),nW(r,`Type`,t.matchUpType??`—`),nW(r,`Format`,t.matchUpFormat??`—`),nW(r,`Scheduled`,t.isScheduled?`Yes`:`No`),t.scheduledTime&&nW(r,`Time`,t.scheduledTime),t.scheduledCourtName&&nW(r,`Court`,t.scheduledCourtName),t.sides?.length){let e=document.createElement(`div`);e.className=XU(),e.style.marginTop=`8px`,e.textContent=`Participants:`,r.appendChild(e);let n=document.createElement(`div`);n.className=`spl-inspector-sides`;for(let e of t.sides){let t=document.createElement(`div`);t.className=`spl-inspector-side`;let r=document.createElement(`span`);if(r.textContent=$U(e)||`TBD`,t.appendChild(r),e.ranking){let n=document.createElement(`span`);n.className=`spl-inspector-seed`,n.textContent=`#${e.ranking}`,t.appendChild(n)}n.appendChild(t)}r.appendChild(n)}}return{element:e,update:i}}function nW(e,t,n){let r=document.createElement(`div`);r.className=qU();let i=document.createElement(`div`);i.className=JU(),i.textContent=t;let a=document.createElement(`div`);a.className=YU(),a.textContent=n,r.appendChild(i),r.appendChild(a),e.appendChild(r)}var rW=new Set([`COMPLETED`,`RETIRED`,`WALKOVER`,`DEFAULTED`,`DOUBLE_WALKOVER`,`DOUBLE_DEFAULT`,`CANCELLED`,`ABANDONED`,`DEAD_RUBBER`]);function iW(e){return!!e&&rW.has(e)}function aW(e,t,n=`dim`,r,i=!1){let a=t.toLowerCase().trim();return e.filter(e=>n===`hide`&&e.isScheduled||!i&&iW(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?eW(e).includes(a):!0)}function oW(e){let t=new Map;for(let n of e){if(n.isScheduled||iW(n.matchUpStatus))continue;let e=t.get(n.eventId);(e===void 0||n.roundNumber<e)&&t.set(n.eventId,n.roundNumber)}return t}var sW={CONSOLATION:`Consolation`,PLAYOFF:`Playoff`,QUALIFYING:`Qualifying`,ROUND_ROBIN:`Round Robin`,PLAY_OFF:`Playoff`,Q_PLAYOFF:`Qualifying Playoff`,COMPASS:`Compass`,VOLUNTARY_CONSOLATION:`Voluntary Consolation`},cW=`Unscheduled`;function lW(e){if(e.structureName&&e.structureName.trim())return e.structureName.trim();let t=e.stage;return!t||t===`MAIN`?``:sW[t]??t.charAt(0)+t.slice(1).toLowerCase().replace(/_/g,` `)}function uW(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 dW(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=lW(e);return t?`${e.eventName} \u2014 ${t}`:e.eventName}return t===`time`?e.scheduledTime??cW:e.eventName};for(let t of e){let e=r(t),i=n.get(e);i?i.push(t):n.set(e,[t])}return new Map([...n.entries()].sort((e,t)=>{let n=uW(e[1]),r=uW(t[1]);return n!==void 0&&r!==void 0&&n!==r?n.localeCompare(r):n!==void 0&&r===void 0?-1:n===void 0&&r!==void 0?1:e[0].localeCompare(t[0],void 0,{numeric:!0})}))}function fW(e,t,n={}){let r=document.createElement(`div`);r.className=xU(),r.setAttribute(`data-matchup-id`,e.matchUpId);let i=iW(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`})),t.onClick&&r.addEventListener(`click`,n=>{n.stopPropagation(),t.onClick(e)});let a=document.createElement(`div`);if(a.className=SU(),typeof n.roundOffset==`number`){let e=n.roundOffset===0?`spl-card-title--round-current`:n.roundOffset===1?`spl-card-title--round-next`:`spl-card-title--round-later`;a.classList.add(e)}let o=`${e.eventName} \u2014 ${e.roundName??`Round `+e.roundNumber}`,s=n.prominentTime&&!!e.scheduledTime;if(s){a.classList.add(`with-time`);let t=document.createElement(`span`);t.className=`spl-card-title-text`,t.textContent=o;let n=document.createElement(`span`);n.className=`spl-card-time-header`,n.textContent=e.scheduledTime,a.appendChild(t),a.appendChild(n)}else a.textContent=o;r.appendChild(a);let c=document.createElement(`div`);c.className=CU(),c.textContent=QU(e),r.appendChild(c);let l=document.createElement(`div`);l.className=wU();let u=[];e.drawName&&u.push(e.drawName),e.matchUpType&&u.push(e.matchUpType.toLowerCase()),l.textContent=u.join(` · `),r.appendChild(l);let d=document.createElement(`div`);if(d.className=TU(),e.scheduledTime&&!s&&d.appendChild(pW(e.scheduledTime,`time`)),e.scheduledCourtName&&d.appendChild(pW(e.scheduledCourtName,`court`)),e.matchUpFormat&&d.appendChild(pW(e.matchUpFormat,`type`)),i&&e.matchUpStatus){let t=e.matchUpStatus.replace(/_/g,` `);d.appendChild(pW(t,`status`))}if(e.stage&&e.stage!==`MAIN`){let t=e.stage.replace(/_/g,` `);d.appendChild(pW(t,`stage`))}if(d.children.length&&r.appendChild(d),e.isScheduled){let e=document.createElement(`span`);e.className=`spl-matchup-check`,e.textContent=`✓`,r.appendChild(e)}return r}function pW(e,t){let n=document.createElement(`div`);return n.className=EU()+` `+t,n.textContent=e,n}function mW(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 hW(e){let t=document.createElement(`div`);t.className=DU();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=OU();let l=document.createElement(`div`);l.className=`spl-catalog-title-row`;let u=document.createElement(`div`);u.className=kU(),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=AU(),c.appendChild(l),c.appendChild(f),t.appendChild(c);let p=document.createElement(`div`);p.className=FU();let m=document.createElement(`input`);m.type=`text`,m.placeholder=`Search matchUps...`,m.className=IU(),m.addEventListener(`input`,()=>e.onSearchChange(m.value));let h=Yx(m,()=>{m.value=``,e.onSearchChange(``),m.focus()}),g=document.createElement(`select`);g.className=LU();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:mW(t,e=>e.matchUpType)},{label:`All Events`,key:`eventName`,values:mW(t,e=>e.eventName)},{label:`All Flights`,key:`drawName`,values:mW(t,e=>e.drawName)},{label:`All Genders`,key:`gender`,values:mW(t,e=>e.gender)},{label:`All Rounds`,key:`roundName`,values:mW(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=Om(d,{content:b(),placement:`bottom-start`,interactive:!0,trigger:`manual`,appendTo:()=>t,onClickOutside:()=>_(),theme:``}),o.show()});let x=document.createElement(`div`);x.className=PU(),t.appendChild(x);function S(t){a=t,s=t.catalogFilters??{},y();let n=oW(t.matchUpCatalog),r=t.showScheduled?t.scheduledBehavior:`hide`,o=aW(t.matchUpCatalog,t.catalogSearchQuery,r,t.catalogFilters,t.showCompleted),c=dW(o,t.catalogGroupBy);f.textContent=`${o.filter(e=>!e.isScheduled).length} unscheduled`,m.value!==t.catalogSearchQuery&&(m.value=t.catalogSearchQuery,Xx(h)),g.value!==t.catalogGroupBy&&(g.value=t.catalogGroupBy),x.innerHTML=``;for(let[r,o]of c){let s=document.createElement(`div`);s.className=RU();let c=i.has(r),l=document.createElement(`div`);l.className=zU();let u=document.createElement(`span`);u.className=VU(),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=BU(),c&&(f.style.display=`none`);for(let r of o){let i=n.get(r.eventId),a=fW(r,{onClick:t=>e.onMatchUpSelected?.(t)},{roundOffset:i!==void 0&&!r.isScheduled&&!iW(r.matchUpStatus)?Math.max(0,r.roundNumber-i):void 0});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 gW(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 _W=`spl-cell--issue-pulse`;function vW(){let e=document.createElement(`div`);e.className=DU();let t=document.createElement(`div`);t.className=OU();let n=document.createElement(`div`);n.className=kU(),n.textContent=`Issues`;let r=document.createElement(`div`);r.className=AU(),t.appendChild(n),t.appendChild(r),e.appendChild(t);let i=document.createElement(`div`);i.className=HU(),e.appendChild(i);function a(e){let t=gW(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=XU(),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=UU(),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=WU(),n.textContent=e.severity;let r=document.createElement(`div`);if(r.className=GU(),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(_W),n.offsetWidth,n.classList.add(_W),n.addEventListener(`animationend`,()=>n.classList.remove(_W),{once:!0}))}return{element:e,update:a}}function yW(e){let t=document.createElement(`div`);t.className=DU();let n=document.createElement(`div`);n.className=OU();let r=document.createElement(`div`);r.className=kU(),r.textContent=`Dates`;let i=document.createElement(`div`);i.className=AU(),n.appendChild(r),n.appendChild(i),t.appendChild(n);let a=document.createElement(`div`);a.className=jU(),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=MU(),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=NU(),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 bW(e,t,n){let r=document.createElement(`div`);r.className=mU();let i=document.createElement(`div`);i.className=hU();let a=n?.titleLeadingActions,o;if(n?.titleSlot?o=n.titleSlot:(o=document.createElement(`div`),o.className=gU(),o.textContent=`Court Grid`),a){let e=document.createElement(`div`);e.className=vU();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=_U();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=yU(),n?.gridMaxHeight&&(c.style.maxHeight=n.gridMaxHeight),e&&c.appendChild(e),c.addEventListener(`dragover`,e=>{e.preventDefault(),e.dataTransfer.dropEffect=`move`}),c.addEventListener(`drop`,e=>{if(e.preventDefault(),!t.onMatchUpDrop)return;let n;try{n=JSON.parse(e.dataTransfer.getData(`application/json`))}catch{return}(n.type===`CATALOG_MATCHUP`||n.type===`GRID_MATCHUP`)&&t.onMatchUpDrop(n,e)}),r.appendChild(c);function l(e){}return{element:r,update:l}}var xW=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:e.scheduleDates[0]?.date??null,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}}getState(){return this.state}setMatchUpCatalog(e){this.setState({matchUpCatalog:e}),this.state.selectedMatchUp&&(e.some(e=>e.matchUpId===this.state.selectedMatchUp?.matchUpId)||this.setState({selectedMatchUp:null}))}setScheduleDates(e){this.setState({scheduleDates:e})}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})}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)}},SW=class{constructor(e){this.container=null,this.store=new xW(e);let t=yW({onDateSelected:e=>this.store.selectDate(e)}),n=vW(),r=bW(e.courtGridElement,{onMatchUpDrop:(e,t)=>{this.store.handleMatchUpDrop(e,t)}},{gridMaxHeight:e.gridMaxHeight,headerActions:e.headerActions,titleLeadingActions:e.titleLeadingActions,titleSlot:e.titleSlot}),i=hW({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)}}),a=tW();this.layout=ZU({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}save(){return this.store.save()}discardPending(){this.store.discardPending()}get hasUnsavedChanges(){return this.store.getState().hasUnsavedChanges}getStore(){return this.store}},CW=new Set([`IN_PROGRESS`,`SUSPENDED`]),wW=new Set([`CANCELLED`,`ABANDONED`,`COMPLETED`,`DEAD_RUBBER`,`DEFAULTED`,`DOUBLE_WALKOVER`,`DOUBLE_DEFAULT`,`RETIRED`,`WALKOVER`]),TW=`in-progress`,EW=`pending`,DW=`completed`;function OW(e,t,n){let r=e.matchUpStatus;return r&&t.has(r)||e.hasScore&&e.winningSide===void 0&&(!r||!n.has(r))?TW:r&&n.has(r)||e.winningSide!==void 0?DW:EW}function kW(e,t){let n=t?.inProgressStatuses??CW,r=t?.completedStatuses??wW,i=e.cells,a=-1;for(let t=0;t<i.length;t++){let o=i[t];if(!o)continue;let s=OW(o,n,r);if(s===TW)return{courtId:e.courtId,state:TW,matchUp:o,rowIndex:t};s===EW&&a===-1&&(a=t)}return a===-1?{courtId:e.courtId,state:`free`}:{courtId:e.courtId,state:`next`,matchUp:i[a],rowIndex:a}}function AW(e,t){return e.columns.map(e=>kW(e,t))}function jW(e,t){if(t.size===0)return!1;for(let n of e.participantIds)if(t.has(n))return!0;return!1}function MW(e,t){return t.roundNumber!==void 0&&t.drawId!==void 0&&e.drawId===t.drawId&&e.roundNumber!==void 0&&e.roundNumber<t.roundNumber}function NW(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&&jW(o,n)&&(r=e),e>i&&MW(o,t)&&(i=e))}return{participantFloor:r,earlierRoundFloor:i}}function PW(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 FW(e,t,n){let r=e.columns.find(e=>e.courtId===t);if(!r)throw Error(`computeActiveStripDropTarget: court "${t}" not present in grid`);let{participantFloor:i,earlierRoundFloor:a}=NW(e,n);return{courtId:t,rowIndex:PW(r,Math.max(0,i+1,a+1),n.matchUpId)}}var IW=`drop-over`;function LW(e,t,n,r){e.addEventListener(`dragover`,t=>{t.preventDefault(),e.classList.add(IW),t.dataTransfer&&(t.dataTransfer.dropEffect=`move`)}),e.addEventListener(`dragleave`,()=>{e.classList.remove(IW)}),e.addEventListener(`drop`,i=>{if(e.classList.remove(IW),i.preventDefault(),!n.onMatchUpDrop)return;let a;try{a=JSON.parse(i.dataTransfer?.getData(`application/json`)??``)}catch{return}if(a.type!==`CATALOG_MATCHUP`&&a.type!==`GRID_MATCHUP`)return;let o={matchUpId:a.matchUp.matchUpId,drawId:a.matchUp.drawId,roundNumber:a.matchUp.roundNumber,participantIds:(a.matchUp.sides??[]).map(e=>e.participantId).filter(e=>!!e)},s=FW(r(),t.courtId,o);n.onMatchUpDrop(a,s,i)})}function RW(e){return e===`in-progress`?`LIVE`:e===`next`?`NEXT`:null}function zW(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=RW(e.state);if(o){let e=document.createElement(`span`);e.className=`spl-active-strip-state-pill`,e.textContent=o,a.appendChild(e)}return LW(a,e,t,n),a}function BW(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 VW(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(BW(t));let a=AW(r.grid,t.statusOptions);for(let o of a){let a=r.courtBlocks?.[o.courtId];n.appendChild(zW(o,e,i,t,a))}}function o(e){r=e,a()}function s(e){n.hidden=!e.activeStripVisible}return{element:n,setData:o,update:s}}var HW=`spl-cell--conflict-highlight`,UW=`spl-cell--complete`,WW={header:[`time`],body:[`eventRound`,`participants`],footer:[`score`],participantDisplay:{nameFormat:`full`,showSeed:!1,showRanking:!1,showNationality:!1,boldWinner:!0,showPotentials:!0}};function GW(e,t){let n=t??WW;return e.isBlocked?KW(e):e.matchUpId?JW(e,n):qW()}function KW(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 qW(){let e=document.createElement(`div`);return e.className=`spl-grid-cell spl-cell--empty`,e}function JW(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),YW(n,e),t.header.length){let r=document.createElement(`div`);r.className=`spl-grid-cell__header`,XW(r,t.header,e,t),n.appendChild(r)}if(t.body.length){let r=document.createElement(`div`);r.className=`spl-grid-cell__body`,XW(r,t.body,e,t),n.appendChild(r)}if(t.footer.length){let r=document.createElement(`div`);r.className=`spl-grid-cell__footer`,XW(r,t.footer,e,t),n.appendChild(r)}return e.issueIds?.length&&(n.addEventListener(`mouseenter`,()=>{n.classList.add(HW);for(let t of e.issueIds)document.querySelectorAll(`[data-matchup-id="${t}"]`).forEach(e=>e.classList.add(HW))}),n.addEventListener(`mouseleave`,()=>{n.classList.remove(HW);for(let t of e.issueIds)document.querySelectorAll(`[data-matchup-id="${t}"]`).forEach(e=>e.classList.remove(HW))})),n}function YW(e,t){let n=t.matchUpStatus?.toUpperCase();n===`COMPLETED`||n===`RETIRED`||n===`DEFAULTED`||n===`WALKOVER`?e.classList.add(UW):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 XW(e,t,n,r){for(let i of t){let t=ZW(i,n,r);t&&e.appendChild(t)}}function ZW(e,t,n){switch(e){case`time`:return QW(t);case`eventRound`:return $W(t);case`participants`:return eG(t,n.participantDisplay);case`score`:return aG(t);case`matchUpStatus`:return oG(t);case`matchUpFormat`:return sG(t);case`umpire`:return cG(t);default:return null}}function QW(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 $W(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 eG(e,t){let n=t??WW.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(rG());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(nG()):(t>0&&!i[t-1]?.bye&&r.appendChild(rG()),r.appendChild(tG(a,e,n,a.sideNumber??t+1)))}return(a||o)&&i.length===1&&!i[0].bye&&r.appendChild(nG()),r}function tG(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=iG(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 nG(){let e=document.createElement(`div`);return e.className=`spl-grid-cell__bye`,e.textContent=`BYE`,e}function rG(){let e=document.createElement(`div`);return e.className=`spl-grid-cell__vs`,e.textContent=`vs.`,e}function iG(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 aG(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 oG(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 sG(e){if(!e.matchUpFormat)return null;let t=document.createElement(`div`);return t.className=`spl-grid-cell__format`,t.textContent=e.matchUpFormat,t}function cG(e){if(!e.umpire)return null;let t=document.createElement(`div`);return t.className=`spl-grid-cell__umpire`,t.textContent=e.umpire,t}function lG(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 uG({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++}ce({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 dG(e,t){let n=new SW(e);return n.render(t),n}var fG=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}}:{}})}},pG=()=>`ce-layout`,mG=()=>`ce-left`,hG=()=>`ce-right`,gG=()=>`ce-name-row`,_G=()=>`ce-name-label`,vG=()=>`ce-name-input`,yG=()=>`ce-section`,bG=()=>`ce-section-header`,xG=()=>`ce-section-chevron`,SG=()=>`ce-section-body`,CG=()=>`ce-field`,wG=()=>`ce-field-label`,TG=()=>`ce-field-control`,EG=()=>`ce-select`,DG=()=>`ce-text-input`,OG=()=>`ce-color-input`,kG=()=>`ce-toggle`,AG=()=>`ce-toggle-track`,jG=()=>`ce-preview`,MG=()=>`ce-preview-header`,NG=()=>`ce-preview-body`,PG=()=>`ce-preview-matchup`,FG=()=>`ce-subgroup`,IG=()=>`ce-subgroup-title`;function LG(e,t){let n=document.createElement(`div`);n.className=yG();let r=document.createElement(`div`);r.className=bG();let i=document.createElement(`span`);i.className=xG();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=SG();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 RG(e,t,n,r=!1){let i=document.createElement(`div`);i.className=CG();let a=document.createElement(`span`);a.className=wG(),a.textContent=e,i.appendChild(a);let o=document.createElement(`label`);o.className=kG();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=AG(),o.appendChild(s),o.appendChild(c);let l=document.createElement(`div`);return l.className=TG(),l.appendChild(o),i.appendChild(l),{element:i,setChecked:e=>{s.checked=e},setDisabled:e=>{s.disabled=e}}}function zG(e,t,n,r,i=!1){let a=document.createElement(`div`);a.className=CG();let o=document.createElement(`span`);o.className=wG(),o.textContent=e,a.appendChild(o);let s=document.createElement(`select`);s.className=EG(),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=TG(),c.appendChild(s),a.appendChild(c),{element:a,setValue:e=>{s.value=e}}}function BG(e,t,n,r=``,i=!1){let a=document.createElement(`div`);a.className=CG();let o=document.createElement(`span`);o.className=wG(),o.textContent=e,a.appendChild(o);let s=document.createElement(`input`);s.type=`text`,s.className=DG(),s.value=t,s.placeholder=r,s.disabled=i,s.addEventListener(`input`,()=>n(s.value));let c=document.createElement(`div`);return c.className=TG(),c.appendChild(s),a.appendChild(c),{element:a,setValue:e=>{s.value=e}}}function VG(e,t,n,r=!1){let i=document.createElement(`div`);i.className=CG();let a=document.createElement(`span`);a.className=wG(),a.textContent=e,i.appendChild(a);let o=document.createElement(`input`);o.type=`color`,o.className=OG(),o.value=t||`#000000`,o.disabled=r,o.addEventListener(`input`,()=>n(o.value));let s=document.createElement(`div`);return s.className=TG(),s.appendChild(o),i.appendChild(s),{element:i,setValue:e=>{o.value=e||`#000000`}}}var HG=[],UG=new Set;for(let[,e]of Object.entries(mi))if(!UG.has(e.theme)){UG.add(e.theme);let t=e.theme.replace(`chc-theme-`,``).replace(/-/g,` `).replace(/\b\w/g,e=>e.toUpperCase());HG.push({value:e.theme,label:t})}function WG(e){let t=document.createElement(`div`),n=zG(`Load preset`,[{value:``,label:`— Load preset —`},...Object.keys(mi).map(e=>({value:e,label:e}))],``,t=>{if(!t)return;let r=mi[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=zG(`Color theme`,HG,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 GG=[{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`}],KG=/^#[0-9a-f]{6}$/i;function qG(e,t,n,r){let i=document.createElement(`div`);i.className=CG();let a=document.createElement(`span`);a.className=wG(),a.textContent=e.label,i.appendChild(a);let o=document.createElement(`div`);o.className=TG(),o.style.display=`flex`,o.style.gap=`0.4rem`,o.style.alignItems=`center`;let s=document.createElement(`input`);s.type=`color`,s.className=OG(),s.disabled=r;let c=document.createElement(`input`);c.type=`text`,c.className=DG(),c.placeholder=e.hint||`#rrggbb or color name`,c.disabled=r,c.style.flex=`1`;function l(e){c.value=e||``,e&&KG.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&&KG.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 JG(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=GG.map(r=>{let i=qG(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=CG();let o=document.createElement(`span`);o.className=wG(),o.textContent=`Left-edge width`,a.appendChild(o);let s=document.createElement(`div`);s.className=TG();let c=document.createElement(`input`);c.type=`text`,c.className=DG(),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 YG(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=RG(`Nationality flags`,!!r.flags,t=>e.setConfigField(`flags`,t),n),a=zG(`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=zG(`Seed element`,[{value:``,label:`Default`},{value:`sup`,label:`Superscript`},{value:`span`,label:`Inline`}],r.seedingElement||``,t=>e.setConfigField(`seedingElement`,t||void 0),n),s=RG(`Draw positions (1st round)`,!!r.drawPositions,t=>e.setConfigField(`drawPositions`,t),n),c=RG(`Draw positions (all rounds)`,!!r.allDrawPositions,t=>e.setConfigField(`allDrawPositions`,t),n),l=RG(`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 XG(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=RG(`Score box`,!!r.scoreBox,t=>e.setConfigField(`scoreBox`,t),n),a=RG(`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=FG();let s=document.createElement(`div`);s.className=IG(),s.textContent=`Game Score Display`,o.appendChild(s);let c=zG(`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=RG(`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 ZG(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=RG(`Gender color`,!!r.genderColor,t=>e.setConfigField(`genderColor`,t),n),a=RG(`Winner color`,!!r.winnerColor,t=>e.setConfigField(`winnerColor`,t),n),o=zG(`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=BG(`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 QG(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=BG(`TBD text`,r.placeHolders?.tbd||``,t=>e.setConfigNestedField(`placeHolders`,`tbd`,t||void 0),`TBD`,n),a=BG(`Bye text`,r.placeHolders?.bye||``,t=>e.setConfigNestedField(`placeHolders`,`bye`,t||void 0),`Bye`,n),o=BG(`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 $G=[{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 eK(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration.scaleAttributes||{},i=zG(`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=zG(`Scale name`,[{value:``,label:`None`},...$G.map(e=>({value:e.scaleName,label:e.label}))],r.scaleName||``,t=>{e.setConfigNestedField(`scaleAttributes`,`scaleName`,t||void 0);let n=$G.find(e=>e.scaleName===t);e.setConfigNestedField(`scaleAttributes`,`accessor`,n?.accessor||void 0)},n),o=VG(`Color`,r.scaleColor||`#ff0000`,t=>e.setConfigNestedField(`scaleAttributes`,`scaleColor`,t),n),s=zG(`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=RG(`Fallback`,!!r.fallback,t=>e.setConfigNestedField(`scaleAttributes`,`fallback`,t),n),l=RG(`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 tK(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=RG(`Schedule info`,!!r.scheduleInfo,t=>e.setConfigField(`scheduleInfo`,t),n),a=RG(`Round header`,!!r.roundHeader,t=>e.setConfigField(`roundHeader`,t),n),o=RG(`MatchUp footer`,!!r.matchUpFooter,t=>e.setConfigField(`matchUpFooter`,t),n),s=RG(`Center info`,!!r.centerInfo,t=>e.setConfigField(`centerInfo`,t),n),c=RG(`Set number`,!!r.resultsInfo,t=>e.setConfigField(`resultsInfo`,t),n),l=RG(`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:nK,SINGLES:rK}=t.eventConstants,{AD_HOC:iK}=t.drawDefinitionConstants,{INDIVIDUAL:aK}=t.participantConstants;function oK({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===nK?nK:rK,completionGoal:f,qualifyingProfiles:r,participantsCount:i,seedsCount:8,matchUpFormat:e,drawSize:o,drawType:l,outcomes:c};l===iK&&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:[aK]}});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||rK}})})}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 sK=null;function cK(){if(!sK){let{matchUps:e}=oK({drawSize:8,eventType:`SINGLES`,randomWinningSide:!0,matchUpFormat:`SET3-S:6/TB7`,withAllRatings:$G.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}]};sK=[...t,i,a,o,s]}return sK}var lK=null;function uK(){if(!lK){let{matchUps:e}=oK({drawSize:4,eventType:`SINGLES`,matchUpFormat:`SET3-S:6/TB7`,completionGoal:50,randomWinningSide:!0});lK=e}return lK}function dK(){let e=document.createElement(`div`);e.className=jG();let t=document.createElement(`div`);t.className=MG(),t.textContent=`Preview`,e.appendChild(t);let n=document.createElement(`div`);n.className=NG(),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=``,br(n),yr(n,e.colors);let s={theme:e.theme,configuration:{...e.configuration,matchUpFooter:!0},colors:e.colors?{...e.colors}:void 0},c=_r({roundNumber:1,roundProfile:{1:{roundName:`Round 1`}}});n.appendChild(c);let l=cK();for(let e of l){let t=document.createElement(`div`);t.className=PG();let r=ei({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=ni({matchUps:uK(),composition:s});n.appendChild(d)}return{element:e,update:o}}var fK=[{id:`theme`,label:`Theme & Preset`,factory:WG},{id:`colors`,label:`Colors`,factory:JG},{id:`display`,label:`Display`,factory:YG},{id:`score`,label:`Score`,factory:XG},{id:`participant`,label:`Participant`,factory:ZG},{id:`placeholder`,label:`Placeholders`,factory:QG},{id:`scale`,label:`Scale Attributes`,factory:eK},{id:`layout`,label:`Layout & Info`,factory:tK}];function pK(e,t){let n=new fG(t),r=document.createElement(`div`);r.className=pG();let i=document.createElement(`div`);i.className=mG();let a=document.createElement(`div`);a.className=gG();let o=document.createElement(`span`);o.className=_G(),o.textContent=`Name`;let s=document.createElement(`input`);s.type=`text`,s.className=vG(),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=fK.map(e=>{let t=LG(e,n);return i.appendChild(t.element),t}),l=document.createElement(`div`);l.className=hG();let u=dK();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 mK=[`grand-slam`,`itf`,`minimal`,`none`],hK=[`standard`,`seedings`,`officials`,`none`],gK=[`a4`,`letter`],_K=[`auto`,`portrait`,`landscape`],vK={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 yK(e,t){let n=MK(vK,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(bK(n,r,l)),a.appendChild(xK(n,r,l)),a.appendChild(SK(n,r,l)),a.appendChild(CK(n,r,t.printType,l)),!r&&t.onSave&&a.appendChild(wK(()=>t.onSave?.(NK(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?.(NK(n))}return c(),e.appendChild(i),{destroy:()=>{i.parentNode&&i.parentNode.removeChild(i)},getConfig:()=>NK(n),setConfig:e=>{Object.assign(n,MK(vK,e)),c()}}}function bK(e,t,n){let{section:r,body:i}=kK(`Page`);i.appendChild(TK(`Size`,gK,e.page?.pageSize??`a4`,t,t=>{jK(e,`page`).pageSize=t,n()})),i.appendChild(TK(`Orientation`,_K,e.page?.orientation??`auto`,t,t=>{jK(e,`page`).orientation=t,n()}));let a=Q(`div`,`pce-field pce-field-full`);a.appendChild(AK(`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(DK(r,e.page?.margins?.[r]??10,t,t=>{let i=jK(jK(e,`page`),`margins`);i[r]=t,n()}))}),a.appendChild(o),i.appendChild(a),r}function xK(e,t,n){let{section:r,body:i}=kK(`Header`);return i.appendChild(TK(`Layout`,mK,e.header?.layout??`itf`,t,t=>{jK(e,`header`).layout=t,n()})),i.appendChild(EK(`Tournament name`,e.header?.tournamentName??``,t,t=>{jK(e,`header`).tournamentName=t,n()})),i.appendChild(EK(`Subtitle`,e.header?.subtitle??``,t,t=>{jK(e,`header`).subtitle=t||void 0,n()})),r}function SK(e,t,n){let{section:r,body:i}=kK(`Footer`);return i.appendChild(TK(`Layout`,hK,e.footer?.layout??`standard`,t,t=>{jK(e,`footer`).layout=t,n()})),i.appendChild(OK(`Show timestamp`,e.footer?.showTimestamp??!0,t,t=>{jK(e,`footer`).showTimestamp=t,n()})),i.appendChild(OK(`Show page numbers`,e.footer?.showPageNumbers??!0,t,t=>{jK(e,`footer`).showPageNumbers=t,n()})),r}function CK(e,t,n,r){let{section:i,body:a}=kK(`Content — ${n}`);if(n===`draw`){let n=jK(jK(e,`content`),`draw`);a.appendChild(OK(`Include seedings`,!!n.includeSeedings,t,e=>{n.includeSeedings=e,r()})),a.appendChild(OK(`Include scores`,!!n.includeScores,t,e=>{n.includeScores=e,r()})),a.appendChild(OK(`Show byes`,!!n.showByes,t,e=>{n.showByes=e,r()})),a.appendChild(OK(`Show draw positions`,!!n.showDrawPositions,t,e=>{n.showDrawPositions=e,r()}))}else if(n===`schedule`){let n=jK(jK(e,`content`),`schedule`);a.appendChild(TK(`Cell style`,[`detailed`,`compact`],n.cellStyle??`detailed`,t,e=>{n.cellStyle=e,r()})),a.appendChild(OK(`Show match numbers`,!!n.showMatchNumbers,t,e=>{n.showMatchNumbers=e,r()})),a.appendChild(EK(`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 wK(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 TK(e,t,n,r,i){let a=Q(`div`,`pce-field`);a.appendChild(AK(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 EK(e,t,n,r){let i=Q(`div`,`pce-field`);i.appendChild(AK(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 DK(e,t,n,r){let i=Q(`div`,`pce-field`);i.appendChild(AK(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 OK(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=AK(e);return o.style.fontSize=`13px`,o.style.color=`var(--chc-text-primary, #222)`,i.appendChild(o),i}function kK(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 AK(e){let t=Q(`label`,`pce-field-label`);return t.textContent=e,t}function jK(e,t){return(e[t]===void 0||e[t]===null)&&(e[t]={}),e[t]}function MK(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 NK(e){return JSON.parse(JSON.stringify(e))}var PK=`chc-scorecard-side-score--winner`;function FK({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=WK(e,a)||``,c=WK(e,o)||``,l=r?VK(e.winningSide):e.winningSide,u=IK({side1Name:s,side2Name:c,sets:r?HK(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=BK({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 IK({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=RK(e,`end`),l=RK(t,`start`),u=zK(n,1,r,i),d=zK(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 LK(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(PK),o.classList.remove(PK);let s=r?`side2Score`:`side1Score`,c=r?`side1Score`:`side2Score`;a.textContent=String(i[s]??0),o.textContent=String(i[c]??0);let l=r?VK(e.winningSide):e.winningSide;l===1&&a.classList.add(PK),l===2&&o.classList.add(PK)}function RK(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 zK(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(PK),a.textContent=String(i),a}function BK({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=ei({matchUp:i?UK(e):e,isLucky:!0,eventHandlers:r,composition:n});t.classList.add(`chc-scorecard-card`),f.appendChild(t)}return a.appendChild(f),a}function VK(e){if(e===1)return 2;if(e===2)return 1}function HK(e){if(e)return e.map(e=>({...e,side1Score:e.side2Score,side2Score:e.side1Score,side1TiebreakScore:e.side2TiebreakScore,side2TiebreakScore:e.side1TiebreakScore}))}function UK(e){let t=e.sides?.map(e=>({...e,sideNumber:e.sideNumber===1?2:1}));return{...e,sides:t,score:e.score?{...e.score,sets:HK(e.score.sets)}:e.score,winningSide:VK(e.winningSide)}}function WK(e,t){return e.sides?.find(e=>e.sideNumber===t)?.participant?.participantName}function GK(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 KK=`chc-iss-score-cell`;function qK(e){if(!e?.matchUpId)throw Error(`buildInteractiveScoringShell: matchUpId is required`);if(!e?.matchUpFormat)throw Error(`buildInteractiveScoringShell: matchUpFormat is required`);let t=e.initialMatchUp??JK(e),n=new Set,r=new hs({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(YK(e),XK(r,e,t),ZK(r,e,o),QK(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 JK(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 YK(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 XK(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=KK,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=KK,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=KK,e.textContent=`0`,s.append(e);let t=document.createElement(`div`);t.className=KK,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 ZK(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 QK(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 $K(){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 eq=class{constructor(e){this.listeners=new Set,this.config=e;let t=$(e.initialPolicy??$K()),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)}},tq=()=>`re-section`,nq=()=>`re-section-header`,rq=()=>`re-section-chevron`,iq=()=>`re-section-count`,aq=()=>`re-section-body`,oq=()=>`re-field-row`,sq=()=>`re-field-label`,cq=()=>`re-field-input re-field-input--text`,lq=()=>`re-field-input re-field-input--number`,uq=()=>`re-field-input re-field-input--date`,dq=()=>`re-field-select`,fq=()=>`re-checkbox-row`,pq=()=>`re-points-input`,mq=()=>`re-profile-card`,hq=()=>`re-profile-header`,gq=()=>`re-profile-name-input`,_q=()=>`re-profile-body`,vq=()=>`re-profile-actions`,yq=()=>`re-icon-btn`,bq=()=>`re-icon-btn re-icon-btn--danger`,xq=()=>`re-empty`,Sq=()=>`re-editor`,Cq=[`totalPoints`,`bestResult`,`headToHead`,`numberOfWins`,`recentResults`,`drawSize`,`numberOfResults`];function wq(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=sq(),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=dq();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=lq(),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=bq(),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=xq(),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=dq(),i.style.fontSize=`0.75rem`;let a=new Set(n),o=Cq.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=bq(),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=sq(),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=lq(),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=xq(),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=fq();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 Tq(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=cq(),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=bq(),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(Eq(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(Eq(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(Eq(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=bq(),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=sq(),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`?lq():cq(),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=xq(),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=fq();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 Eq(e,t){let n=document.createElement(`input`);return n.type=`number`,n.className=pq(),n.value=String(e),n.addEventListener(`change`,()=>{let e=Number.parseFloat(n.value);Number.isNaN(e)||t(e)}),n}function Dq(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=oq();let r=document.createElement(`div`);r.className=sq(),r.textContent=`Name`;let i=document.createElement(`input`);i.type=`text`,i.className=cq(),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=sq(),o.textContent=`Version`;let s=document.createElement(`input`);s.type=`text`,s.className=cq(),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=sq(),l.textContent=`Valid from`;let u=document.createElement(`input`);u.type=`date`,u.className=uq(),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=sq(),f.textContent=`Valid until`;let p=document.createElement(`input`);p.type=`date`,p.className=uq(),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=sq(),h.textContent=`Doubles attribution`;let g=document.createElement(`select`);g.className=dq();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=sq(),v.textContent=`Category resolution`;let y=document.createElement(`select`);y.className=dq();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=fq();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=fq();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 Oq={1:`W`,2:`F`,4:`SF`,8:`QF`,16:`R16`,32:`R32`,64:`R64`,128:`R128`,256:`R256`},kq=`level-keyed`;function Aq(e){return Oq[e]??`R${e}`}function jq(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=Mq(t);return n.hasConditionalArray?{type:`conditional`}:n.hasLevelFlightNesting?Nq(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 Mq(e){let t=new Set,n=new Set,r=!1,i=!1;for(let a of e){let e=Pq(a);if(e.type===kq){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 Nq(e,t){let n={},r=[...t].sort((e,t)=>e-t);for(let t of e){let e=Pq(t);if(e.type===kq&&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 Pq(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:kq,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:kq,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 Fq(e,t={}){if(typeof e==`number`)return e;if(e!=null){if(Array.isArray(e))return Iq(e,t);if(typeof e==`object`){if(e.level!==void 0&&t.level!==void 0)return Lq(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 Iq(e,t){for(let n of e){if(n.drawSizes&&t.drawSize&&n.drawSizes.includes(t.drawSize))return Fq(n,t);if(n.drawSize!==void 0&&t.drawSize!==void 0&&(n.threshold?t.drawSize>=n.drawSize:t.drawSize===n.drawSize))return Fq({...n,drawSize:void 0,drawSizes:void 0,threshold:void 0},t);if(n.drawSize===void 0&&n.drawSizes===void 0)return Fq(n,t)}}function Lq(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?Fq(n,t):typeof n==`number`?n:void 0}function Rq(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 zq(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 Bq(e){return e==null?`--`:e.toLocaleString()}var Vq=[1,2,4,8,16,32,64,128],Hq=`font-size:0.8rem;margin-bottom:0;border-collapse:collapse`,Uq=`width:3.5rem;text-align:center`;function Wq(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=xq(),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=jq(i),o=Object.keys(i).map(Number).sort((e,t)=>e-t);a.type===`flat`?Gq(n,o,i,r.readonly,e,t):a.type===`level-columns`?Kq(n,o,i,a.levels,r.readonly,e,t):qq(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 Gq(e,t,n,r,i,a){let o=document.createElement(`table`);o.style.cssText=Hq;let s=document.createElement(`thead`),c=document.createElement(`tr`);Jq(c,`Pos`,Uq),Jq(c,`Points`,`text-align:right`),r||Jq(c,``,`width:2rem`),s.appendChild(c),o.appendChild(s);let l=document.createElement(`tbody`);for(let e of t){let t=document.createElement(`tr`);Yq(t,e);let o=document.createElement(`td`);o.style.cssText=`text-align:right;padding:2px 4px`,r?(o.style.fontVariantNumeric=`tabular-nums`,o.textContent=Bq(typeof n[e]==`number`?n[e]:Fq(n[e]))):o.appendChild(Zq(typeof n[e]==`number`?n[e]:Fq(n[e])??0,t=>i.setFlatPositionPoints(a,e,t))),t.appendChild(o),r||Xq(t,()=>i.removePositionRow(a,e)),l.appendChild(t)}o.appendChild(l),e.appendChild(o),r||Qq(e,t,i,a)}function Kq(e,t,n,r,i,a,o){let s=document.createElement(`table`);s.style.cssText=Hq;let c=document.createElement(`thead`),l=document.createElement(`tr`);Jq(l,`Pos`,Uq);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=bq(),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||Jq(l,``,`width:2rem`),c.appendChild(l),s.appendChild(c);let u=document.createElement(`tbody`);for(let e of t){let t=document.createElement(`tr`);Yq(t,e);for(let s of r){let r=document.createElement(`td`);r.style.cssText=`text-align:right;padding:2px 4px`;let c=Fq(n[e],{level:s});i?(r.style.fontVariantNumeric=`tabular-nums`,r.textContent=Bq(c),c===void 0&&(r.style.color=`var(--sp-muted)`)):r.appendChild(Zq(c??0,t=>a.setLevelPositionPoints(o,e,s,t))),t.appendChild(r)}i||Xq(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=pq(),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),$q(n,t,a,o),e.appendChild(n)}}function qq(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=Hq;let o=document.createElement(`thead`),s=document.createElement(`tr`);if(Jq(s,`Pos`,Uq),r.type===`flight-columns`)for(let e of r.flights)Jq(s,`F${e}`,`text-align:right;min-width:3.5rem`);else Jq(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`);Yq(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=Fq(i,{flight:e});n.textContent=Bq(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=Bq(Fq(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 Jq(e,t,n){let r=document.createElement(`th`);r.textContent=t,r.style.cssText=n+`;padding:2px 4px`,e.appendChild(r)}function Yq(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=Aq(t),e.appendChild(n)}function Xq(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=bq(),r.textContent=`×`,r.title=`Remove position`,r.style.cursor=`pointer`,r.addEventListener(`click`,t),n.appendChild(r),e.appendChild(n)}function Zq(e,t){let n=document.createElement(`input`);return n.type=`number`,n.className=pq(),n.value=String(e),n.addEventListener(`change`,()=>{let e=Number.parseFloat(n.value);Number.isNaN(e)||t(e)}),n}function Qq(e,t,n,r){let i=document.createElement(`div`);i.style.cssText=`display:flex;gap:8px;margin-top:6px;flex-wrap:wrap`,$q(i,t,n,r),e.appendChild(i)}function $q(e,t,n,r){let i=new Set(t),a=Vq.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=Aq(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 eJ(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=sq(),i.textContent=`Per-Win`,i.style.minWidth=`80px`;let a=document.createElement(`input`);a.type=`number`,a.className=pq(),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))):s===void 0?i&&(a.style.display=`none`,o.style.display=``,o.textContent=(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(` | `)}).join(`; `)):(a.style.display=`none`,o.style.display=``,o.textContent=`${Bq(Fq(s))} pts/win (complex)`),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 tJ(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(Aq).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=pq(),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=pq(),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=bq(),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 nJ(e){let t=document.createElement(`div`);t.style.cssText=`display:inline-flex;gap:0.25rem;flex-wrap:wrap;margin-bottom:0`;let n=zq(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 rJ=[{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}],iJ=[[`maxDrawSize`,`Max draw size`],[`maxLevel`,`Max level`],[`priority`,`Priority`],[`participationOrder`,`Participation order`]];function aJ(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 rJ){let t=a[e.field]??[];o&&!t.length||i.appendChild(s(e,t,o))}for(let[n,r]of iJ){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=sq(),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=lq(),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=rJ.map(e=>n?.[e.field]??[]),i=iJ.map(([e])=>n?.[e]),o=JSON.stringify([r,i,e.readonly]);o!==a&&(a=o,c(e))}return{element:n,update:l}}function oJ(e,t){let n=document.createElement(`div`);n.className=mq();let r=document.createElement(`div`);r.className=hq();let i=document.createElement(`span`);i.className=rq(),i.style.flexShrink=`0`,r.appendChild(i);let a=document.createElement(`input`);a.type=`text`,a.className=gq(),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=vq();let l=document.createElement(`button`);l.className=yq(),l.textContent=`⎘`,l.title=`Duplicate profile`,l.addEventListener(`click`,n=>{n.stopPropagation(),e.duplicateProfile(t)});let u=document.createElement(`button`);u.className=bq(),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=_q();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=Wq(e,t);d.appendChild(p.element);let m=eJ(e,t);d.appendChild(m.element);let h=tJ(e,t);d.appendChild(h.element);let g=aJ(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=nJ(r);if(y.style.flexGrow=`1`,o.appendChild(y),s.textContent=l?``:Rq(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 sJ(e,t){let n=document.createElement(`div`);n.className=Sq();let r=Dq(e),i=Tq(e),a=wq(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=tq();let c=document.createElement(`div`);c.className=nq();let l=document.createElement(`span`);l.className=rq();let u=document.createElement(`span`);u.textContent=t.label;let d=document.createElement(`span`);d.className=iq(),c.appendChild(l),c.appendChild(u),c.appendChild(d),c.addEventListener(`click`,()=>e.toggleSection(t.id));let f=document.createElement(`div`);f.className=aq(),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=oJ(e,t);c.push(s),r.appendChild(s.element),a++}if(!a){let e=document.createElement(`div`);e.className=xq(),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 cJ=class e{constructor(e){this.container=null,this.store=new eq(e),this.panel=sJ(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=new e({initialPolicy:t.initialData,onChange:e=>t.onChange(e),readonly:t.readonly});return{element:n.panel.element,setData(e){n.setData(e)},getData(){return n.getData()},destroy(){n.destroy()}}}};function lJ(e){return uJ[e]??e}var uJ={"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 dJ(){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 fJ(e){return structuredClone(e)}var pJ=class{constructor(e){this.listeners=new Set,this.config=e,this.state={draft:fJ(e.initialPolicy??dJ()),expandedSections:new Set([`modificationFlags`,`dailyLimits`,`defaultTimes`,`averageTimes`,`recoveryTimes`]),dirty:!1}}getState(){return this.state}getData(){return fJ(this.state.draft)}setData(e){this.state={...this.state,draft:fJ(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=fJ(this.state.draft);n.allowModificationWhenMatchUpsScheduled||={courts:!1,venues:!1},n.allowModificationWhenMatchUpsScheduled[e]=t,this.commitDraft(n)}setDailyLimit(e,t){let n=fJ(this.state.draft);n.defaultDailyLimits||={},n.defaultDailyLimits[e]=t,this.commitDraft(n)}setDefaultAverageTime(e,t,n){let r=fJ(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=fJ(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=fJ(this.state.draft);e.matchUpAverageTimes||=[],e.matchUpAverageTimes.push({matchUpFormatCodes:[],averageTimes:[{categoryNames:[],minutes:{default:60}}]}),this.commitDraft(e)}removeAverageFormatGroup(e){let t=fJ(this.state.draft);t.matchUpAverageTimes&&(t.matchUpAverageTimes.splice(e,1),this.commitDraft(t))}setAverageFormatCodes(e,t){let n=fJ(this.state.draft),r=n.matchUpAverageTimes?.[e];r&&(r.matchUpFormatCodes=t,this.commitDraft(n))}setAverageTime(e,t,n,r){let i=fJ(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=fJ(this.state.draft),n=t.matchUpAverageTimes?.[e];n&&(n.averageTimes.push({categoryTypes:[],minutes:{default:60}}),this.commitDraft(t))}removeAverageCategoryOverride(e,t){let n=fJ(this.state.draft),r=n.matchUpAverageTimes?.[e];r&&(r.averageTimes.splice(t,1),this.commitDraft(n))}setAverageOverrideCategories(e,t,n,r){let i=fJ(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=fJ(this.state.draft);e.matchUpRecoveryTimes||=[],e.matchUpRecoveryTimes.push({matchUpFormatCodes:[],recoveryTimes:[{categoryNames:[],minutes:{default:30}}]}),this.commitDraft(e)}removeRecoveryFormatGroup(e){let t=fJ(this.state.draft);t.matchUpRecoveryTimes&&(t.matchUpRecoveryTimes.splice(e,1),this.commitDraft(t))}setRecoveryFormatCodes(e,t){let n=fJ(this.state.draft),r=n.matchUpRecoveryTimes?.[e];r&&(r.matchUpFormatCodes=t,this.commitDraft(n))}setRecoveryTime(e,t,n,r){let i=fJ(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=fJ(this.state.draft),n=t.matchUpRecoveryTimes?.[e];n&&(n.recoveryTimes.push({categoryTypes:[],minutes:{default:30}}),this.commitDraft(t))}removeRecoveryCategoryOverride(e,t){let n=fJ(this.state.draft),r=n.matchUpRecoveryTimes?.[e];r&&(r.recoveryTimes.splice(t,1),this.commitDraft(n))}setRecoveryOverrideCategories(e,t,n,r){let i=fJ(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?.(fJ(e))}emit(){for(let e of this.listeners)e(this.state)}},mJ=()=>`se-section`,hJ=()=>`se-section-header`,gJ=()=>`se-section-chevron`,_J=()=>`se-section-body`,vJ=()=>`se-field-row`,yJ=()=>`se-field-label`,bJ=()=>`se-field-input`,xJ=()=>`se-field-unit`,SJ=()=>`se-checkbox-row`,CJ=()=>`se-format-group`,wJ=()=>`se-format-group-header`,TJ=()=>`se-format-group-label`,EJ=()=>`se-tag-picker`,DJ=()=>`sp-chip`,OJ=()=>`sp-chip__remove`,kJ=()=>`se-tag-add-wrap`,AJ=()=>`sp-btn-icon`,jJ=()=>`se-override-row`,MJ=()=>`se-override-categories`,NJ=()=>`se-override-remove`,PJ=()=>`sp-btn sp-btn--sm sp-btn--outline se-add-btn`,FJ=()=>`sp-btn-icon sp-btn-icon--danger`,IJ=()=>`se-editor`;function LJ(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=SJ();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=SJ();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 RJ=`is-success`,zJ=`is-danger`;function BJ(e){if(e===``)return!0;let t=parseInt(e,10);return!isNaN(t)&&t>=0&&String(t)===e.trim()}function VJ(e,t){if(t===``){e.classList.remove(RJ,zJ);return}BJ(t)?(e.classList.remove(zJ),e.classList.add(RJ)):(e.classList.remove(RJ),e.classList.add(zJ))}function HJ(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=vJ();let o=document.createElement(`div`);o.className=yJ(),o.textContent=i;let s=document.createElement(`input`);s.type=`text`,s.className=bJ(),s.placeholder=`0`,s.addEventListener(`input`,()=>{VJ(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 UJ=`is-success`,WJ=`is-danger`;function GJ(e){if(e===``)return!0;let t=parseInt(e,10);return!isNaN(t)&&t>=0&&String(t)===e.trim()}function KJ(e,t,n){if(t===``&&n){e.classList.remove(UJ,WJ);return}GJ(t)&&(t!==``||n)?(e.classList.remove(WJ),e.classList.add(UJ)):(e.classList.remove(UJ),e.classList.add(WJ))}function qJ(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=JJ(`Default`,`min`,!1),i=JJ(`Doubles override`,`min`,!0);t.appendChild(r.row),t.appendChild(i.row),r.input.addEventListener(`input`,()=>{KJ(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`,()=>{KJ(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=JJ(`Default`,`min`,!1),c=JJ(`Doubles override`,`min`,!0);t.appendChild(s.row),t.appendChild(c.row),s.input.addEventListener(`input`,()=>{KJ(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`,()=>{KJ(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 JJ(e,t,n){let r=document.createElement(`div`);r.className=vJ();let i=document.createElement(`div`);i.className=yJ(),i.textContent=e;let a=document.createElement(`input`);a.type=`text`,a.className=bJ(),a.placeholder=n?`—`:`0`;let o=document.createElement(`div`);return o.className=xJ(),o.textContent=t,r.appendChild(i),r.appendChild(a),r.appendChild(o),{row:r,input:a}}var YJ=`is-success`,XJ=`is-danger`;function ZJ(e){if(e===``)return!0;let t=parseInt(e,10);return!isNaN(t)&&t>=0&&String(t)===e.trim()}function QJ(e,t,n){if(t===``&&n){e.classList.remove(YJ,XJ);return}ZJ(t)&&(t!==``||n)?(e.classList.remove(XJ),e.classList.add(YJ)):(e.classList.remove(YJ),e.classList.add(XJ))}function $J(e){let t=document.createElement(`div`);t.className=CJ();let n=document.createElement(`div`);n.className=wJ();let r=document.createElement(`div`);r.style.flex=`1`;let i=document.createElement(`div`);i.className=TJ(),i.textContent=`Formats`,r.appendChild(i);let a=document.createElement(`div`);a.className=EJ();for(let t of e.formatCodes){let n=document.createElement(`span`);n.className=DJ(),n.title=`${t} — click to edit`;let r=document.createElement(`span`);r.textContent=lJ(t),n.addEventListener(`click`,()=>{Va({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=OJ(),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=kJ();let s=document.createElement(`button`);s.className=AJ(),s.textContent=`+`,s.type=`button`,s.title=`Add format code`,s.addEventListener(`click`,t=>{t.stopPropagation(),Va({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=FJ(),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=jJ();let a=document.createElement(`div`);a.className=`${MJ()}${r.isDefault?` all`:``}`,a.textContent=r.categoryLabel;let o=document.createElement(`input`);o.type=`text`,o.className=bJ(),o.value=String(r.defaultMinutes),o.placeholder=`0`;let s=n;o.addEventListener(`input`,()=>{QJ(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=xJ(),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=bJ(),u.value=r.doublesMinutes===void 0?``:String(r.doublesMinutes),u.placeholder=`—`,u.addEventListener(`input`,()=>{QJ(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=NJ(),t.textContent=`×`,t.addEventListener(`click`,()=>e.onRemoveOverride(s)),i.appendChild(t)}t.appendChild(i)}let l=document.createElement(`button`);return l.className=PJ(),l.textContent=`+ Add Override`,l.type=`button`,l.addEventListener(`click`,()=>e.onAddOverride()),t.appendChild(l),t}function eY(e,t){let n=document.createElement(`div`),r=document.createElement(`div`);n.appendChild(r);let i=document.createElement(`button`);i.className=PJ(),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=$J({formatCodes:a.matchUpFormatCodes,overrides:o,availableFormats:t.matchUpFormatCodes??tY(),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 tY(){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 nY(e,t){let n=document.createElement(`div`),r=document.createElement(`div`);n.appendChild(r);let i=document.createElement(`button`);i.className=PJ(),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=$J({formatCodes:a.matchUpFormatCodes,overrides:o,availableFormats:t.matchUpFormatCodes??rY(),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 rY(){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 iY(e,t){let n=document.createElement(`div`);n.className=IJ();let r=[{id:`modificationFlags`,label:`Modification Flags`,factory:()=>LJ(e)},{id:`dailyLimits`,label:`Daily Limits`,factory:()=>HJ(e)},{id:`defaultTimes`,label:`Default Times`,factory:()=>qJ(e)},{id:`averageTimes`,label:`Match Average Times`,factory:()=>eY(e,t)},{id:`recoveryTimes`,label:`Match Recovery Times`,factory:()=>nY(e,t)}],i=[];for(let t of r){let r=document.createElement(`div`);r.className=mJ();let a=document.createElement(`div`);a.className=hJ();let o=document.createElement(`span`);o.className=gJ();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=_J();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 aY=class e{constructor(e){this.container=null,this.store=new pJ(e),this.panel=iY(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=new e({initialPolicy:t.initialData,onChange:e=>t.onChange(e)});return{element:n.panel.element,setData(e){n.setData(e)},getData(){return n.getData()},destroy(){n.destroy()}}}};function oY(e,t){let n=new aY(e);return n.render(t),n}var sY=pa,cY=(()=>{let e=new Map;for(let t of sY)t.format&&e.set(t.format,t);return e})();function lY(e){if(e)return cY.get(e)}var uY=sY.filter(e=>e.format&&e.name).sort((e,t)=>(e.name??``).localeCompare(t.name??``));function dY(e){return typeof e==`string`?e:e.matchUpFormat}function fY(e){return(typeof e==`string`?``:e.name??``)||(lY(dY(e))?.name??``)}function pY(e){return(typeof e==`string`?``:e.description??``)||(lY(dY(e))?.desc??``)}function mY(e){return typeof e==`string`?{matchUpFormat:e}:{...e}}var hY=`SET3-S:6/TB7`;function gY(){return{defaultMatchUpFormat:hY,matchUpFormats:[],requireParticipantsForScoring:!1,allowChangePropagation:!1,allowDeletionWithScoresPresent:{drawDefinitions:!1,structures:!1},matchUpStatusCodes:{ABANDONED:[],CANCELLED:[],DEFAULTED:[],INCOMPLETE:[],RETIRED:[],WALKOVER:[]}}}function _Y(e){return structuredClone(e)}var vY=class{constructor(e){this.listeners=new Set,this.config=e,this.state={draft:_Y(e.initialPolicy??gY()),expandedSections:new Set([`defaults`,`allowedFormats`]),expandedStatuses:new Set,advancedOpen:!1,dirty:!1}}isReadonly(){return this.config.readonly===!0}getState(){return this.state}getData(){return _Y(this.state.draft)}setData(e){this.state={...this.state,draft:_Y(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=_Y(this.state.draft);t.defaultMatchUpFormat=e,this.commitDraft(t)}setRequireParticipants(e){if(this.isReadonly())return;let t=_Y(this.state.draft);t.requireParticipantsForScoring=e,this.commitDraft(t)}setRequireAllPositions(e){if(this.isReadonly())return;let t=_Y(this.state.draft);e==="default"?delete t.requireAllPositionsAssigned:t.requireAllPositionsAssigned=e===`true`,this.commitDraft(t)}setAllowChangePropagation(e){if(this.isReadonly())return;let t=_Y(this.state.draft);t.allowChangePropagation=e,this.commitDraft(t)}setAllowDeletionDraws(e){if(this.isReadonly())return;let t=_Y(this.state.draft);t.allowDeletionWithScoresPresent??={},t.allowDeletionWithScoresPresent.drawDefinitions=e,this.commitDraft(t)}setAllowDeletionStructures(e){if(this.isReadonly())return;let t=_Y(this.state.draft);t.allowDeletionWithScoresPresent??={},t.allowDeletionWithScoresPresent.structures=e,this.commitDraft(t)}addAllowedFormat(e){if(this.isReadonly())return;let t=_Y(this.state.draft);t.matchUpFormats??=[];let n={matchUpFormat:``,...e};t.matchUpFormats.push(n),this.commitDraft(t)}removeAllowedFormat(e){if(this.isReadonly())return;let t=_Y(this.state.draft);t.matchUpFormats&&(t.matchUpFormats.splice(e,1),this.commitDraft(t))}setAllowedFormatField(e,t,n){if(this.isReadonly())return;let r=_Y(this.state.draft);if(!r.matchUpFormats?.[e])return;let i=mY(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&&dY(e)===n):!1}addAllowedFormatCategory(e,t,n){if(this.isReadonly())return;let r=n.trim();if(!r)return;let i=_Y(this.state.draft);if(!i.matchUpFormats?.[e])return;let a=mY(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=_Y(this.state.draft),i=r.matchUpFormats?.[e];if(!i)return;let a=mY(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=_Y(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=_Y(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=_Y(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=_Y(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?.(_Y(e))}emit(){for(let e of this.listeners)e(this.state)}},yY=`__custom__`,bY=`standard`,xY=`tiebreak`,SY=`timed`,CY=`sc-format-row`,wY=`sc-format-label`,TY=`sc-format-select`;function EY(){return{bestOf:3,setType:bY,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 DY(e){let n=EY(),r=t.matchUpFormatCode.parse?.(e);return r?(typeof r.bestOf==`number`&&(n.bestOf=r.bestOf),r.setFormat&&OY(n,r.setFormat),r.finalSetFormat&&kY(n,r.finalSetFormat),n):n}function OY(e,t){if(t.timed){e.setType=SY,typeof t.minutes==`number`&&(e.minutes=t.minutes),e.timedBasis=t.based===`P`?`P`:`G`;return}if(t.tiebreakSet){e.setType=xY,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=bY,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 kY(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 AY(e){let t={bestOf:e.bestOf};if(e.setType===SY)t.setFormat={timed:!0,minutes:e.minutes},e.timedBasis===`P`&&(t.setFormat.based=`P`);else if(e.setType===xY)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&&(e.finalKind===`matchTiebreak`?t.finalSetFormat={tiebreakSet:{tiebreakTo:e.finalMatchTbTo}}:t.finalSetFormat={setTo:e.finalSetTo,tiebreakAt:e.finalSetTo,tiebreakFormat:{tiebreakTo:e.finalTbTo}}),t}function jY(e){try{return t.matchUpFormatCode.stringify?.(e)}catch{return}}function MY(e){return e?!!t.matchUpFormatCode.parse?.(e):!1}function NY(e){let t=e.initialValue||`SET3-S:6/TB7`,n=DY(t),r=document.createElement(`div`);r.className=`sc-format-picker`;let i=document.createElement(`div`);i.className=CY;let a=document.createElement(`label`);a.textContent=`Preset`,a.className=wY;let o=document.createElement(`select`);o.className=TY;for(let e of uY){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=yY,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=wY;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=DY(r)),v(),p&&y(),e.onChange(r)}function v(){let e=lY(t);e?.format?(o.value=e.format,c.style.display=`none`):(o.value=yY,c.style.display=``,u.value=t),h.textContent=t;let n=MY(t);g.textContent=n?`✓ valid`:`✗ invalid`,g.dataset.valid=n?`true`:`false`}o.addEventListener(`change`,()=>{let e=o.value;if(e===yY){c.style.display=``,u.value=t,u.focus();return}_(e)}),u.addEventListener(`input`,()=>{_(u.value,{skipBuilderResync:!0})});function y(){f.innerHTML=``,f.appendChild(PY(`Best of`,[1,3,5],n.bestOf,e=>{n.bestOf=e,b()})),f.appendChild(FY(`Set type`,[{value:bY,label:`Standard`},{value:xY,label:`Tiebreak set`},{value:SY,label:`Timed`}],n.setType,e=>{n.setType=e,b()})),n.setType===bY?(f.appendChild(PY(`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(IY(`Tiebreak at set end`,n.hasTiebreak,e=>{n.hasTiebreak=e,b()})),n.hasTiebreak&&f.appendChild(PY(`Tiebreak first to`,[5,7,10,12,15,21],n.tiebreakTo,e=>{n.tiebreakTo=e,b()})),f.appendChild(IY(`No-advantage games`,n.noAd,e=>{n.noAd=e,b()}))):n.setType===xY?(f.appendChild(PY(`First to`,[7,10,11,15,21],n.tbOnlyTo,e=>{n.tbOnlyTo=e,b()})),f.appendChild(FY(`Scoring`,[{value:``,label:`Sideout`},{value:`RALLY`,label:`Rally`}],n.tbOnlyModifier,e=>{n.tbOnlyModifier=e,b()})),f.appendChild(IY(`No-advantage`,n.tbOnlyNoAd,e=>{n.tbOnlyNoAd=e,b()}))):(f.appendChild(PY(`Minutes`,[10,15,20,25,30,45],n.minutes,e=>{n.minutes=e,b()})),f.appendChild(FY(`Basis`,[{value:`G`,label:`Games`},{value:`P`,label:`Points`}],n.timedBasis,e=>{n.timedBasis=e,b()}))),f.appendChild(IY(`Different final-set rules`,n.differentFinal,e=>{n.differentFinal=e,b()})),n.differentFinal&&(f.appendChild(FY(`Final set`,[{value:`standard`,label:`Standard set`},{value:`matchTiebreak`,label:`Match tiebreak`}],n.finalKind,e=>{n.finalKind=e,b()})),n.finalKind===`standard`?(f.appendChild(PY(`Final games to`,[4,6,8],n.finalSetTo,e=>{n.finalSetTo=e,b()})),f.appendChild(PY(`Final tiebreak to`,[7,10,12,15],n.finalTbTo,e=>{n.finalTbTo=e,b()}))):f.appendChild(PY(`Match tiebreak to`,[7,10,15,21],n.finalMatchTbTo,e=>{n.finalMatchTbTo=e,b()})))}function b(){let e=jY(AY(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=DY(r),v(),p&&y())},destroy(){r.remove()}}}function PY(e,t,n,r){let i=document.createElement(`div`);i.className=CY;let a=document.createElement(`label`);a.textContent=e,a.className=wY;let o=document.createElement(`select`);o.className=TY;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 FY(e,t,n,r){let i=document.createElement(`div`);i.className=CY;let a=document.createElement(`span`);a.textContent=e,a.className=wY;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 IY(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 LY(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=NY({initialValue:e.getData().defaultMatchUpFormat,readonly:e.isReadonly(),onChange:t=>e.setDefaultMatchUpFormat(t)});n.appendChild(a.element),t.appendChild(n);let o=RY({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=RY({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=RY({label:`Draw definitions`,help:``,initial:!!e.getData().allowDeletionWithScoresPresent?.drawDefinitions,readonly:e.isReadonly(),onChange:t=>e.setAllowDeletionDraws(t)}),h=RY({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 RY(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 zY(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 BY(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(VY(``)),r.appendChild(VY(`Name`)),r.appendChild(VY(`Format`)),r.appendChild(VY(`Description`)),r.appendChild(VY(``)),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 uY){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=uY.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=HY(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 VY(e){let t=document.createElement(`div`);return t.className=`sc-format-list-header-label`,t.textContent=e,t}function HY(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=WY(`Display name`,a),u=WY(`SET3-S:6/TB7`,a);u.classList.add(`sc-format-list-format-input`);let d=WY(`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 _=UY({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=UY({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=mY(e),n=fY(e),r=dY(e),i=pY(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 UY(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=zY({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 WY(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 GY=[`ABANDONED`,`CANCELLED`,`DEFAULTED`,`INCOMPLETE`,`RETIRED`,`WALKOVER`];function KY(e){let t=document.createElement(`div`);t.className=`sc-section-body-inner`;let n=GY.map(t=>qY(e,t));for(let r of n)t.appendChild(JY(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=zY({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 qY(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=zY({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 JY(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=YY(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 YY(e){return e.charAt(0)+e.slice(1).toLowerCase()}function XY(e){let t=document.createElement(`div`);t.className=`sc-editor`;let n=[{id:`defaults`,label:`Defaults`,factory:()=>LY(e)},{id:`allowedFormats`,label:`Allowed match-up formats`,factory:()=>BY(e)},{id:`statusCodes`,label:`Status code refinements`,factory:()=>KY(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 ZY=class e{constructor(e){this.container=null,this.store=new vY(e),this.panel=XY(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=new e({initialPolicy:t.initialData,readonly:t.readonly,onChange:e=>t.onChange(e)});return{element:n.panel.element,setData(e){n.setData(e)},getData(){return n.getData()},destroy(){n.destroy()}}}},QY=[{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)`}],$Y=[`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 eX(){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 tX(e){return structuredClone(e)}var nX=class{constructor(e){this.listeners=new Set,this.config=e,this.state={draft:tX(e.initialPolicy??eX()),expandedSections:new Set([`profile`,`flags`,`thresholds`,`drawTypeOverrides`]),dirty:!1}}getState(){return this.state}getData(){return tX(this.state.draft)}setData(e){this.state={...this.state,draft:tX(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=tX(this.state.draft);t.policyName=e,this.commitDraft(t)}setPositioning(e){let t=tX(this.state.draft);t.seedingProfile??={},t.seedingProfile.positioning=e,this.commitDraft(t)}setValidSeedPositionsIgnore(e){let t=tX(this.state.draft);t.validSeedPositions={ignore:e},this.commitDraft(t)}setDuplicateSeedNumbers(e){let t=tX(this.state.draft);t.duplicateSeedNumbers=e,this.commitDraft(t)}setDrawSizeProgression(e){let t=tX(this.state.draft);t.drawSizeProgression=e,this.commitDraft(t)}addThreshold(){let e=tX(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=tX(this.state.draft);t.seedsCountThresholds&&(t.seedsCountThresholds.splice(e,1),this.commitDraft(t))}setThresholdField(e,t,n){let r=tX(this.state.draft),i=r.seedsCountThresholds?.[e];i&&(i[t]=n,this.commitDraft(r))}sortThresholds(){let e=tX(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=tX(this.state.draft);n.seedingProfile??={},n.seedingProfile.drawTypes??={},n.seedingProfile.drawTypes[e]={positioning:t},this.commitDraft(n)}removeDrawTypeOverride(e){let t=tX(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=tX(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?.(tX(e))}emit(){for(let e of this.listeners)e(this.state)}},rX=()=>`sd-editor`,iX=()=>`sd-section`,aX=()=>`sd-section-header`,oX=()=>`sd-section-chevron`,sX=()=>`sd-section-body`,cX=()=>`sd-field-row`,lX=()=>`sd-field-label`,uX=()=>`sd-field-input`,dX=()=>`sd-checkbox-row`,fX=()=>`sd-checkbox-desc`,pX=()=>`sd-radio-group`,mX=()=>`sd-radio-option`,hX=()=>`sp-btn sp-btn--sm sp-btn--outline sd-add-btn`,gX=()=>`sp-btn sp-btn--sm sp-btn--ghost sd-sort-btn`,_X=()=>`sp-btn-icon sp-btn-icon--danger sd-remove-btn`,vX=()=>`sd-table-wrap`,yX=()=>`sd-table`,bX=()=>`sd-number-cell-input`,xX=()=>`sd-empty`,SX=()=>`sd-actions-row`,CX=()=>`sd-override-row`,wX=()=>`sd-override-add-row`,TX=()=>`sd-override-drawtype`,EX=()=>`sd-select`;function DX(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=cX();let r=document.createElement(`div`);r.className=lX(),r.textContent=`Policy name`;let i=document.createElement(`input`);i.type=`text`,i.className=uX()+` 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=cX()+` sd-field-row--top`;let o=document.createElement(`div`);o.className=lX(),o.textContent=`Default positioning`,a.appendChild(o);let s=document.createElement(`div`);s.className=pX();let c=[];for(let t of QY){let n=document.createElement(`label`);n.className=mX();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 OX(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=dX();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=fX(),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 kX=[{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 AX(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=vX();let r=document.createElement(`table`);r.className=yX();let i=document.createElement(`thead`),a=document.createElement(`tr`);for(let e of kX){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=xX(),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=SX();let u=document.createElement(`button`);u.type=`button`,u.className=hX(),u.textContent=`+ Add threshold`,u.addEventListener(`click`,()=>e.addThreshold());let d=document.createElement(`button`);d.type=`button`,d.className=gX(),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 kX){let a=document.createElement(`td`),o=document.createElement(`input`);o.type=`number`,o.min=String(n.min),o.className=bX(),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=_X(),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 jX(e,t){let n=document.createElement(`select`);n.className=EX();for(let e of QY){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 MX(e,t){let n=document.createElement(`div`),r=t.drawTypes??$Y,i=document.createElement(`div`);n.appendChild(i);let a=document.createElement(`div`);a.className=xX(),a.textContent=`No draw-type overrides. The default positioning is used for every drawType.`,n.appendChild(a);let o=document.createElement(`div`);o.className=wX();let s=document.createElement(`select`);s.className=EX();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=jX(`WATERFALL`,()=>{}),u=document.createElement(`button`);u.type=`button`,u.className=hX(),u.textContent=`+ Add override`,u.addEventListener(`click`,()=>{let t=s.value;t&&e.addDrawTypeOverride(t,l.value)});let d=document.createElement(`div`);d.className=SX(),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=CX();let a=document.createElement(`div`);a.className=TX(),a.textContent=t;let o=jX(n,n=>e.setDrawTypeOverridePositioning(t,n)),s=document.createElement(`button`);s.type=`button`,s.className=_X(),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 NX(e,t){let n=document.createElement(`div`);n.className=rX();let r=[{id:`profile`,label:`Profile`,factory:()=>DX(e)},{id:`flags`,label:`Flags`,factory:()=>OX(e)},{id:`thresholds`,label:`Seed Count Thresholds`,factory:()=>AX(e)},{id:`drawTypeOverrides`,label:`Draw Type Overrides`,factory:()=>MX(e,t)}],i=[];for(let t of r){let r=document.createElement(`div`);r.className=iX();let a=document.createElement(`div`);a.className=aX();let o=document.createElement(`span`);o.className=oX();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=sX();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 PX=class e{constructor(e){this.container=null,this.store=new nX(e),this.panel=NX(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=new e({initialPolicy:t.initialData,onChange:e=>t.onChange(e)});return{element:n.panel.element,setData(e){n.setData(e)},getData(){return n.getData()},destroy(){n.destroy()}}}},FX=()=>`pc-layout`,IX=()=>`pc-panel`,LX=()=>`pc-panel-header`,RX=()=>`pc-panel-title`,zX=()=>`pc-panel-meta`,BX=()=>`pc-toolbar`,VX=()=>`pc-input`,HX=()=>`pc-select`,UX=()=>`pc-catalog`,WX=()=>`pc-group`,GX=()=>`pc-group-header`,KX=()=>`pc-group-chevron`,qX=()=>`pc-group-body`,JX=()=>`pc-card`,YX=()=>`pc-card-title`,XX=()=>`pc-card-meta`,ZX=()=>`pc-type-badge`,QX=()=>`pc-editor`,$X=()=>`pc-editor-header`,eZ=()=>`pc-editor-header-left`,tZ=()=>`pc-editor-actions`,nZ=()=>`sp-btn sp-btn--sm`,rZ=()=>`sp-btn sp-btn--sm sp-btn--accent`,iZ=()=>`pc-dirty-dot`,aZ=()=>`pc-editor-body`,oZ=()=>`pc-empty`,sZ=()=>`pc-json-editor`,cZ=()=>`pc-json-error`;function lZ(e){let t=document.createElement(`div`);t.className=FX(),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 uZ=`scheduling`,dZ=`scoring`,fZ=`seeding`,pZ=`draws`,mZ=`avoidance`,hZ=`feedIn`,gZ=`progression`,_Z=`roundNaming`,vZ=`positionActions`,yZ=`matchUpActions`,bZ=`roundRobinTally`,xZ=`rankingPoints`,SZ=`competitiveBands`,CZ=`voluntaryConsolation`,wZ=`participant`,TZ=`display`,EZ=`audit`,DZ=`Tournament Operations`,OZ=`Scoring & Results`,kZ=`Ranking Points`,AZ=`Draw Configuration`,jZ=`Participants`,MZ=`Display & Audit`,NZ=(e,t,n,r,i)=>({policyType:e,label:t,description:n,group:r,hasEditor:i}),PZ=[NZ(uZ,`Scheduling`,`Match scheduling, average times, recovery times, daily limits`,DZ,!0),NZ(vZ,`Position Actions`,`Allowed position actions (alternates, walkovers, withdrawals)`,DZ,!1),NZ(yZ,`MatchUp Actions`,`Allowed matchUp status transitions and actions`,DZ,!1),NZ(mZ,`Avoidance`,`Draw placement avoidance rules (club, nationality, region)`,DZ,!1),NZ(dZ,`Scoring`,`Score entry validation and completion rules`,OZ,!0),NZ(bZ,`Round Robin Tally`,`Round-robin group standing calculation method`,OZ,!1),NZ(xZ,`Ranking Points`,`Point allocation by draw size, round, and result`,kZ,!0),NZ(SZ,`Competitive Bands`,`Rating/ranking band definitions for competitive grouping`,OZ,!1),NZ(pZ,`Draws`,`Draw generation rules and structure options`,AZ,!1),NZ(fZ,`Seeding`,`Seeding thresholds and placement rules by draw size`,AZ,!0),NZ(hZ,`Feed-In`,`Feed-in consolation structure rules`,AZ,!1),NZ(gZ,`Progression`,`Player progression between draw structures`,AZ,!1),NZ(CZ,`Voluntary Consolation`,`Voluntary consolation entry rules`,AZ,!1),NZ(_Z,`Round Naming`,`Custom round name labels (QF, SF, F, etc.)`,AZ,!1),NZ(wZ,`Participant`,`Participant display and data rules`,jZ,!1),NZ(TZ,`Display`,`Client display configuration (public vs admin views)`,MZ,!1),NZ(EZ,`Audit`,`Audit trail and change logging configuration`,MZ,!1)];function FZ(e){return PZ.find(t=>t.policyType===e)}function IZ(e){return e===`rankingPoints`?$K():e===`scheduling`?dJ():e===`scoring`?gY():e===`seeding`?eX():{}}var LZ=[DZ,OZ,kZ,AZ,jZ,MZ];function RZ(e,t){let n=t.toLowerCase().trim();return n?e.filter(e=>{let t=FZ(e.policyType);return[e.name,e.description,e.policyType,t?.label??``,e.source].join(` `).toLowerCase().includes(n)}):e}function zZ(e,t){let n=new Map;if(t===`type`){for(let e of LZ)n.set(e,[]);for(let t of e){let e=FZ(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 BZ(e){let t=document.createElement(`div`);t.className=IX(),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=LX();let a=document.createElement(`div`);a.className=RX(),a.textContent=`Policy Catalog`;let o=document.createElement(`div`);o.className=zX(),i.appendChild(a),i.appendChild(o),t.appendChild(i);let s=document.createElement(`div`);s.className=BX();let c=document.createElement(`input`);c.type=`text`,c.placeholder=`Search policies...`,c.className=VX(),c.addEventListener(`input`,()=>e.onSearchChange(c.value));let l=document.createElement(`select`);l.className=HX();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=PZ.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=UX(),t.appendChild(m);function h(t){r=t;let i=RZ(t.catalog,t.searchQuery),a=zZ(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=WX();let s=n.has(i),c=document.createElement(`div`);c.className=GX();let l=document.createElement(`span`);l.className=KX(),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=qX(),s&&(d.style.display=`none`);for(let n of o){let r=document.createElement(`div`);r.className=JX(),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=YX(),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=XX();let s=FZ(n.policyType),c=document.createElement(`span`);c.className=ZX(),c.textContent=s?.label??n.policyType;let l=document.createElement(`span`);l.className=`${ZX()} ${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 VZ(e){return structuredClone(e)}var HZ=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:VZ(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:VZ(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:VZ(e.policyData),editedName:e.name,dirty:!1})}applyPolicy(){let e=this.getSelectedItem();if(!e)return;let t={...e,policyData:this.state.editorDraft?VZ(this.state.editorDraft):VZ(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:IZ(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:VZ(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:VZ(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 UZ(e){let t=document.createElement(`div`);t.className=IX();let n=document.createElement(`div`);n.className=QX();let r=document.createElement(`div`);r.className=$X();let i=document.createElement(`div`);i.className=eZ();let a=document.createElement(`div`);a.className=RX();let o=document.createElement(`input`);o.type=`text`,o.className=`${RX()} 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=ZX();let c=document.createElement(`span`);c.className=ZX(),c.textContent=`read-only`,c.style.display=`none`;let l=document.createElement(`div`);l.className=iZ(),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=tZ();let d=document.createElement(`button`);d.className=nZ(),d.textContent=`Reset`,d.addEventListener(`click`,()=>e.onReset());let f=document.createElement(`button`);f.className=rZ(),f.textContent=`Save`,f.addEventListener(`click`,()=>e.onSave());let p=document.createElement(`button`);p.className=nZ(),p.textContent=`Apply`,p.addEventListener(`click`,()=>e.onApply());let m=document.createElement(`button`);m.className=nZ(),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=tZ();let g=document.createElement(`button`);g.className=rZ(),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=aZ(),n.appendChild(r),n.appendChild(_);let v=document.createElement(`div`);v.className=oZ(),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),s.textContent=FZ(r.policyType)?.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 WZ(e){let t=document.createElement(`div`);t.className=sZ();let n=document.createElement(`textarea`);n.value=JSON.stringify(e.initialData,null,2);let r=document.createElement(`div`);r.className=cZ(),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 GZ=class{constructor(e){this.currentEditor=null,this.container=null,this.store=new HZ(e);let t=BZ({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=UZ({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=lZ({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};e.policyType===`scheduling`?this.currentEditor=aY.createEditorInstance(n):e.policyType===`rankingPoints`?this.currentEditor=cJ.createEditorInstance(n):e.policyType===`seeding`?this.currentEditor=PX.createEditorInstance(n):e.policyType===`scoring`?this.currentEditor=ZY.createEditorInstance(n):this.currentEditor=WZ(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 KZ(e,t,n,r){e!==void 0&&e<0&&r.push({severity:`error`,path:t,message:n})}function qZ(e,t){if(!e.defaultTimes)return;let n=e.defaultTimes.averageTimes;if(n)for(let e=0;e<n.length;e++)KZ(n[e].minutes.default,`defaultTimes.averageTimes[${e}].minutes.default`,`Default average time must be non-negative`,t),KZ(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++)KZ(r[e].minutes.default,`defaultTimes.recoveryTimes[${e}].minutes.default`,`Default recovery time must be non-negative`,t)}function JZ(e,t){if(!e.defaultDailyLimits)return;let n=e.defaultDailyLimits;KZ(n.SINGLES,`defaultDailyLimits.SINGLES`,`Singles daily limit must be non-negative`,t),KZ(n.DOUBLES,`defaultDailyLimits.DOUBLES`,`Doubles daily limit must be non-negative`,t),KZ(n.total,`defaultDailyLimits.total`,`Total daily limit must be non-negative`,t)}function YZ(e){let t=[];return qZ(e,t),JZ(e,t),e.matchUpAverageTimes&&XZ(e.matchUpAverageTimes,`matchUpAverageTimes`,`averageTimes`,t),e.matchUpRecoveryTimes&&ZZ(e.matchUpRecoveryTimes,`matchUpRecoveryTimes`,t),QZ(e,t),t}function XZ(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++)KZ(o[e].minutes.default,`${t}[${i}].${n}[${e}].minutes.default`,`Time must be non-negative`,r),KZ(o[e].minutes.DOUBLES,`${t}[${i}].${n}[${e}].minutes.DOUBLES`,`Doubles time must be non-negative`,r)}}function ZZ(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++)KZ(i.recoveryTimes[e].minutes.default,`${t}[${r}].recoveryTimes[${e}].minutes.default`,`Recovery time must be non-negative`,n),KZ(i.recoveryTimes[e].minutes.DOUBLES,`${t}[${r}].recoveryTimes[${e}].minutes.DOUBLES`,`Doubles recovery time must be non-negative`,n)}}function QZ(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 $Z(e,t){let n=new GZ(e);return n.render(t),n}e.AvailabilityGrid=Vz,e.COMPETITIVENESS_BUCKETS=Nv,e.COMPETITIVENESS_COLORS=uM,e.COURT_SVG_RESOURCE_SUB_TYPE=fh,e.CompositionEditorStore=fG,e.DEFAULT_COMPETITIVE_BANDS=cM,e.DEFAULT_COURT_CARD_CONFIG=N_,e.DEFAULT_DRAW_CARD_CONFIG=Zv,e.DEFAULT_EVENT_CARD_CONFIG=Uy,e.DEFAULT_SCHEDULE_CELL_CONFIG=WW,e.DEFAULT_TOURNAMENT_CARD_CONFIG=Ah,e.DEFAULT_VENUE_CARD_CONFIG=Ug,e.DrawStateManager=Kx,e.EVENT_CARD_LIGHT_MODE_THRESHOLD=Wy,e.InlineScoringManager=hs,e.MATCH_FORMATS=Fx,e.NEUTRAL_SEGMENT_COLOR=dM,e.POLICY_TYPE_GROUPS=LZ,e.POLICY_TYPE_METADATA=PZ,e.PolicyCatalogControl=GZ,e.PolicyCatalogStore=HZ,e.ProfileStore=rI,e.SchedulePageControl=SW,e.SchedulePageStore=xW,e.SchedulingEditorControl=aY,e.SchedulingEditorStore=pJ,e.SchedulingProfileControl=gI,e.TopologyBuilderControl=VH,e.TopologyStore=BB,e.activateScheduleCellTypeAhead=uG,e.aggregateCompetitiveness=Iv,e.applyDropCommit=qF,e.badmintonCourt=uh,e.barButton=GN,e.baseballDiamond=sh,e.basketballCourt=oh,e.buildActiveStripPanel=VW,e.buildCardSkeleton=kh,e.buildCompetitivenessBar=zv,e.buildCompetitivenessDonut=Xv,e.buildCourtCard=$_,e.buildCourtGridSlot=bW,e.buildCourtSkeletonCard=hv,e.buildDateStrip=mI,e.buildDrawCard=_y,e.buildDrawSkeletonCard=Iy,e.buildEdgeEditor=FV,e.buildEditorShell=UZ,e.buildEventCard=_b,e.buildEventSkeletonCard=Fb,e.buildHiveIDLogin=kx,e.buildInteractiveScoringShell=qK,e.buildIssueIndex=GF,e.buildIssuesPanel=kF,e.buildJsonEditor=WZ,e.buildLadderChart=IN,e.buildMatchUpCard=fW,e.buildMatchUpCatalog=hW,e.buildNodeEditor=CV,e.buildPolicyCatalogLayout=lZ,e.buildPolicyCatalogPanel=BZ,e.buildRatingDistributionChart=kN,e.buildRoundCard=lI,e.buildRoundCatalog=wF,e.buildScheduleDateStrip=yW,e.buildScheduleGridCell=GW,e.buildScheduleInspectorPanel=tW,e.buildScheduleIssueIndex=gW,e.buildScheduleIssuesPanel=vW,e.buildSchedulePageLayout=ZU,e.buildSchedulingEditorPanel=iY,e.buildSchedulingProfileLayout=sF,e.buildSetScore=Ws,e.buildSkeletonCard=xg,e.buildStructureCard=DB,e.buildStructureMinimap=Ci,e.buildTeamCard=Av,e.buildToolbar=uH,e.buildTopologyBuilderLayout=dH,e.buildTopologyCanvas=ZB,e.buildTournamentCard=ng,e.buildVenueBoard=dI,e.buildVenueCard=u_,e.buildVenueSkeletonCard=D_,e.burstChart=UM,e.cModal=z,e.calculateComplement=Bs,e.competitivenessColor=yM,e.completeMagicLink=Ax,e.compositions=mi,e.computeBaseRoundByEvent=oW,e.consumeMagicLink=bx,e.controlBar=lP,e.courthiveComponentsVersion=Px,e.createAvailabilityGrid=Hz,e.createCardPopoverManager=cF,e.createCompositionEditor=pK,e.createCourtSvg=yh,e.createInlineScoringFooter=GK,e.createNotesEditor=Qm,e.createPolicyCatalog=$Z,e.createPrintCompositionEditor=yK,e.createSchedulePage=dG,e.createSchedulingEditor=oY,e.createSchedulingProfile=_I,e.destroyTipster=nh,e.drawer=yd,e.dropDownButton=BN,e.emptySchedulingPolicy=dJ,e.engineToMatchUp=ps,e.extractCourtSvgSport=Oh,e.extractImageURL=Dh,e.filterCatalog=vF,e.filterMatchUpCatalog=aW,e.filterPolicyCatalog=RZ,e.findIssuesForLocator=$F,e.formatAddress=xh,e.formatCodeLabel=lJ,e.formatDateRange=Th,e.formatFeeRange=Lg,e.formatVenueLocation=Sh,e.fromFactoryDrawData=YM,e.fromLegacyDraw=QM,e.generatePreviewMatchUps=rB,e.getAgeCategoryModal=ko,e.getCategoryModal=Mo,e.getCompetitivenessBand=gM,e.getCompetitivenessFromScoreString=_M,e.getFlightProfileModal=ls,e.getGenerateTeamsModal=Gi,e.getMatchUpFormatModal=Va,e.getMatchWinner=zs,e.getMaxAllowedScore=Fs,e.getMockParticipantsModal=zi,e.getPlannedRoundKeys=bF,e.getPolicyTypeMeta=FZ,e.getPortPosition=OB,e.getRoundAt=QF,e.getScoringConfig=vs,e.getSetFormatForIndex=Ms,e.getSetWinner=Ls,e.getVenueRounds=ZF,e.groupCatalog=yF,e.groupMatchUpCatalog=dW,e.groupPolicyCatalog=zZ,e.hockeyRink=ch,e.initDrawer=bd,e.isCompletedStatus=iW,e.isExistingUserConflict=xx,e.isMatchComplete=Rs,e.isSetComplete=Is,e.isSetTiebreakOnly=Ns,e.isSetTimed=Ps,e.mapCourtToCardData=Sv,e.mapDrawDefinitionToCardData=Hy,e.mapEventToCardData=Qb,e.mapMatchUpToCellData=lG,e.mapTournamentToCardData=Vg,e.mapVenueToCardData=M_,e.matchUpLabel=QU,e.matchUpSearchKey=eW,e.maxSeverity=tI,e.mergeCourtCardConfig=P_,e.mergeDrawCardConfig=Qv,e.mergeEventCardConfig=Gy,e.mergeTournamentCardConfig=jh,e.mergeVenueCardConfig=Wg,e.notesToolbar=Pm,e.openCompositionEditorModal=Zi,e.openScheduleCellConfigModal=$i,e.padelCourt=dh,e.participantLabel=$U,e.pickleballCourt=lh,e.renderButtons=Ix,e.renderContainer=ii,e.renderField=gn,e.renderForm=Oi,e.renderInlineMatchUp=ds,e.renderMatchUp=ei,e.renderMenu=$m,e.renderOptions=hn,e.renderParticipant=hr,e.renderParticipantInput=Cn,e.renderRound=ti,e.renderRoundHeader=_r,e.renderSchematicMatchUp=Ti,e.renderSchematicRound=Ei,e.renderSchematicStructure=Di,e.renderScorecard=FK,e.renderStructure=ni,e.renderTeamVsHeader=IK,e.requestMagicLink=yx,e.resetScoringConfig=bs,e.resolveCourtSport=_h,e.resolveEventStatus=Rb,e.resolvePublishedComposition=gi,e.resolveTournamentStatus=jg,e.scoringModal=cu,e.selectItem=HN,e.setScoringConfig=ys,e.shouldApplySmartComplement=Vs,e.shouldCreateNextSet=Us,e.shouldShowTiebreak=Hs,e.showCourtAvailabilityModal=zz,e.signup=_x,e.sportFromMatchUpFormat=gh,e.standardTemplates=jH,e.syncClearVisibility=Xx,e.tennisCourt=ah,e.tipster=rh,e.toggleOverlay=$N,e.topologyToDrawOptions=iU,e.totalBuckets=Lv,e.updateHeadingSelect=Im,e.updateTieScore=LK,e.updateToolbarState=Fm,e.validateProfile=NF,e.validateSchedulingPolicy=YZ,e.validateTopology=GV,e.validator=fn,Object.defineProperty(e,"validators",{enumerable:!0,get:function(){return Gx}}),e.verifyExisting=vx,e.wrapSearchWithClear=Yx});
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();Rz({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);Rz({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 Vz(e,t){let n=new Bz(e);return n.render(t),n}var{LUCKY_DRAW:Hz,ROUND_ROBIN:Uz,AD_HOC:Wz}=t.drawDefinitionConstants;function Gz(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 Kz(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 qz(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 Jz(e){let t=Math.max(2,e);return t&t-1?qz(e).length:Math.ceil(Math.log2(t))}function Yz(e,t){let n=Math.max(2,e);if(!(n&n-1))return Math.floor(n/2**t);let r=qz(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 Xz(e,t,n){return e===Uz?(n?.groupSize||Math.min(t,4))-1:e===Wz?n?.roundsCount||1:e===Hz?Jz(t):Kz(t)}function Zz(e,t,n){return e===Hz?Yz(t,n):Math.floor(t/2**n)}var{ROUND_ROBIN:Qz,AD_HOC:$z,LUCKY_DRAW:eB}=t.drawDefinitionConstants,tB=0;function nB({structureType:e,drawSize:t,stage:n,structureId:r,qualifyingPositions:i,structureOptions:a}){return e===Qz?iB({drawSize:t,stage:n,structureId:r,structureOptions:a}):e===$z?oB({drawSize:t,stage:n,structureId:r,roundsCount:a?.roundsCount||1}):e===eB?aB({drawSize:t,stage:n,structureId:r}):rB({drawSize:t,stage:n,structureId:r,qualifyingPositions:i})}function rB({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-${++tB}`,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 iB({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-${++tB}`,roundNumber:r,roundPosition:e*o+a,isRoundRobin:!0,stage:t,structureId:`${n}-g${e}`})}return i}function aB({drawSize:e,stage:t,structureId:n}){let r=Math.max(2,e);if(!(r&r-1))return rB({drawSize:e,stage:t,structureId:n});let i=qz(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-${++tB}`,roundNumber:u,roundPosition:r,drawPositions:i?[s++,s++]:[],finishingRound:a-e,roundFactor:1,preFeedRound:!!c,stage:t,structureId:n})}}return o}function oB({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-${++tB}`,roundNumber:e,roundPosition:r,finishingRound:1,stage:t,structureId:n});return i}var{ROUND_ROBIN:sB}=t.drawDefinitionConstants,cB=new Map;function lB(e,n,r){let i=`${e}:${n}:${r||``}`,a=cB.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 uB(i,{});let c=(s.structures||[])[0];if(!c)return uB(i,{});let l=c.structureType===`CONTAINER`,u={};if(l||e===sB){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 uB(i,u)}catch{return uB(i,{})}}function uB(e,t){return cB.set(e,t),t}var{MAIN:dB,QUALIFYING:fB,CONSOLATION:pB,PLAY_OFF:mB,ROUND_ROBIN:hB,AD_HOC:gB,LUCKY_DRAW:_B,WINNER:vB,LOSER:yB}=t.drawDefinitionConstants,bB=240,xB=48,SB=16;function CB(e){if(e.structureType===hB)return(e.structureOptions?.groupSize||Math.min(e.drawSize,4))-1;if(e.structureType===gB)return e.structureOptions?.roundsCount||1;if(e.structureType===_B)return Jz(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 wB(e){let t=CB(e);return Math.max(bB,t*xB+SB)}var TB={[dB]:`tb-card-badge--main`,[fB]:`tb-card-badge--qualifying`,[pB]:`tb-card-badge--consolation`,[mB]:`tb-card-badge--playoff`};function EB(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=`${wB(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 ${TB[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||nB({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=Di({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=parseInt(n.getAttribute(`data-round-number`)||`0`),r=i.filter(t=>t.roundNumber===e);if(!r.length)continue;let a=r.find(e=>e.isSelected)||r.find(e=>e.linkType===yB)||r.find(e=>e.linkType===vB)||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=lB(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 DB(e,t){let n=wB(e);switch(t){case`input`:return{x:e.position.x,y:e.position.y+160/2};case`winner`:return{x:e.position.x+n,y:e.position.y+160/2-8};case`loser`:return{x:e.position.x+n,y:e.position.y+160/2+8}}}var{MAIN:OB,QUALIFYING:kB,CONSOLATION:AB,WINNER:jB,LOSER:MB,ROUND_ROBIN:NB}=t.drawDefinitionConstants,PB=`POSITION`,FB=0;function IB(e){return`${e}-${++FB}-${Date.now().toString(36)}`}function LB(e){let t=2;for(;t*2<=e;)t*=2;return t}var RB=60,zB=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:IB(`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===jB&&this.state.edges.find(t=>t.sourceNodeId===e.sourceNodeId&&t.linkType===jB))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===NB&&e.linkType!==PB||t?.stage===kB&&n&&n.stage!==kB&&n.stage!==OB||n?.stage===kB&&t&&t.stage!==kB)return null;let r={...e,id:IB(`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!==AB)return;let n=this.inboundCapacity(e);n>0&&t.drawSize>n&&(t.drawSize=LB(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===MB){let r=e.sourceRoundNumber||1;n+=Zz(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+wB(t));return{x:e+RB,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===OB);i.push(...t.length?t:[e[0]])}let a=new Map,o=new Set(e.filter(e=>e.stage===kB).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=>wB(e)));t.forEach((e,t)=>{e.position={x:p,y:t*190+40}}),p+=n+RB}}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:BB,LOSER:VB,QUALIFYING:HB,CONSOLATION:UB,ROUND_ROBIN:WB}=t.drawDefinitionConstants,GB=`POSITION`,KB=e=>e===WB;function qB(e,t){if(!KB(e.structureType))return;let n=t.edges.filter(t=>t.sourceNodeId===e.id&&t.linkType===GB);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 JB=`http://www.w3.org/2000/svg`,YB={[BB]:`tb-edge--winner`,[VB]:`tb-edge--loser`,[GB]:`tb-edge--position`};function XB(e){let t=document.createElement(`div`);t.className=`tb-canvas`;let n=document.createElementNS(JB,`svg`);n.classList.add(`tb-canvas-svg`);let r=document.createElementNS(JB,`defs`);for(let[e,t]of Object.entries(YB)){let n=document.createElementNS(JB,`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(JB,`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===BB).map(e=>e.sourceNodeId).filter(t=>{let n=e.nodes.find(e=>e.id===t);return n&&n.stage===HB&&!KB(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===BB){let t=e.nodes.find(e=>e.id===n.sourceNodeId);t&&(r=CB(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!==BB)continue;let r=n.targetRoundNumber||1;if(r<=1)continue;let i=e.nodes.find(e=>e.id===n.sourceNodeId);if(!i||i.stage!==HB)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=Gz(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(!KB(n.structureType))continue;let r=e.edges.filter(e=>e.sourceNodeId===n.id&&e.linkType===GB);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&&KB(e.structureType)?GB:n===`loser`||t?.stage===UB?VB:BB}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=DB(i,r),s=document.createElementNS(JB,`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=EB(n,c,e.selectedNodeId===n.id,t.has(n.id),r.get(n.id),o.get(n.id),qB(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)=>{v(n,t,e,r>1?(i-(r-1)/2)*14:0)})}let h=600,_=400;for(let t of e.nodes)h=Math.max(h,t.position.x+wB(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=DB(a,n.linkType===VB?`loser`:`winner`),c=DB(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(JB,`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(JB,`path`);if(m.setAttribute(`d`,f),m.classList.add(YB[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(JB,`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:ZB,ROUND_ROBIN:QB,FEED_IN:$B,FEED_IN_CHAMPIONSHIP:eV,FIRST_MATCH_LOSER_CONSOLATION:tV,COMPASS:nV,OLYMPIC:rV,AD_HOC:iV,LUCKY_DRAW:aV,MAIN:oV,QUALIFYING:sV,CONSOLATION:cV,PLAY_OFF:lV,WINNER:uV}=t.drawDefinitionConstants,dV=`POSITION`,fV=[{label:`Single Elimination`,value:ZB},{label:`Round Robin`,value:QB},{label:`Feed-In Championship`,value:eV},{label:`FMLC`,value:tV},{label:`Compass`,value:nV},{label:`Olympic`,value:rV},{label:`Ad-hoc`,value:iV}],pV=[{label:`Single Elimination`,value:ZB},{label:`Round Robin`,value:QB},{label:`Lucky Draw`,value:aV},{label:`Staggered Entry`,value:$B},{label:`Ad-hoc`,value:iV}],mV=[{label:`Main`,value:oV},{label:`Qualifying`,value:sV},{label:`Consolation`,value:cV},{label:`Playoff`,value:lV}];function hV(e){let t=[],n=Math.floor(e/2);for(;n>=1;)t.push(n),n=Math.floor(n/2);return t}function gV(e,t=8){let n=[];for(let r=3;r<=t;r++){let t=Math.ceil(e/r),i=t*r-e,a=Math.ceil(e/t),o=Math.ceil(i/t);(!i||i<r)&&a===r&&a>=3&&o<2&&n.push(r)}return n}function _V(e,t,n,r,i,a){let o=gV(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===dV),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&&vV(u,t,l,i)}function vV(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 yV(e,t,n,r,i,a){let o=t.edges.find(t=>t.targetNodeId===e.id&&t.linkType===dV);if(!o||t.nodes.find(e=>e.id===o.sourceNodeId)?.structureType!==QB)return;let s=e.structureOptions?.playoffDrawType||ZB;if(i.push({label:`Playoff Draw Type`,field:`playoffDrawType`,value:s,disabled:n,options:fV.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===QB){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 bV(e,t,n,r,i){let a=hV(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 xV(e,t,n){let r=Gz(e.drawSize),i=new Map,a=[];for(let n of t.edges){if(n.linkType!==uV||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!==sV)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 SV(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:Ix(1),error:`Name required`}},{label:`Stage`,field:`stage`,value:i.stage,disabled:n,options:mV.map(e=>({...e,selected:e.value===i.stage}))},{label:`Structure Type`,field:`structureType`,value:i.structureType,disabled:n,options:pV.map(e=>({...e,selected:e.value===i.structureType}))},{label:i.stage===oV?`Draw Size`:`Structure Size`,field:`drawSize`,type:`number`,value:String(i.drawSize),...n?{disabled:!0}:i.structureType===iV?{validator:Rx(0,256),error:`Must be 0-256`}:{validator:Rx(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===iV?0:2))return;let r={drawSize:n};if(i.structureType===QB){let e=i.structureOptions?.groupSize||4,t=gV(n);!t.includes(e)&&t.length>0&&(r.structureOptions={...i.structureOptions,groupSize:t[0]})}e.onUpdateNode(i.id,r)}}];i.structureType===QB&&_V(i,r,n,e,s,c),i.stage===lV&&yV(i,r,n,e,s,c),i.stage===sV&&bV(i,n,e,s,c),Oi(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=()=>{Va({existingMatchUpFormat:i.matchUpFormat,callback:t=>{e.onUpdateNode(i.id,{matchUpFormat:t||void 0}),d.textContent=t||`Not set`}})},l.appendChild(d),o.appendChild(l),xV(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:CV,LOSER:wV,TOP_DOWN:TV,BOTTOM_UP:EV,QUALIFYING:DV,ROUND_ROBIN:OV}=t.drawDefinitionConstants,kV=`POSITION`,AV=`ALTERNATING`,jV=e=>e===OV,MV=[{label:`Winner`,value:CV},{label:`Loser`,value:wV},{label:`Position`,value:kV}],NV=[{label:`Top-Down`,value:TV},{label:`Bottom-Up`,value:EV},{label:`Alternating`,value:AV}];function PV(e){let t=document.createElement(`div`),n=!!e.readOnly;function r(t,r,i,a,o,s){let c=[],l=[],u=r?lB(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===kV),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===CV&&s?.stage===DV,p=s?Xz(s.structureType,s.drawSize,s.structureOptions):8,m=c?Xz(c.structureType,c.drawSize,c.structureOptions):8,h=o.linkType===kV&&s&&jV(s.structureType),g=[{label:`Link Type`,field:`linkType`,value:o.linkType,disabled:n,options:MV.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===wV&&(g.push({label:`Feed Profile`,field:`feedProfile`,value:o.feedProfile||TV,disabled:n,options:NV.map(e=>({...e,selected:e.value===(o.feedProfile||TV)}))}),n||_.push({control:`feedProfile`,onChange:({e:t})=>e.onUpdateEdge(o.id,{feedProfile:t.target.value})})),o.linkType===kV&&!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})}})),Oi(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:FV,QUALIFYING:IV,CONSOLATION:LV,WINNER:RV,LOSER:zV,SINGLE_ELIMINATION:BV,ROUND_ROBIN:VV,AD_HOC:HV}=t.drawDefinitionConstants,UV=`POSITION`;function WV(e){let t=[],n=GV(e,t);return qV(e,KV(e),t),JV(e,t),YV(e,t),XV(e,t),ZV(e,n,t),QV(e,t),$V(e,t),tH(e,t),nH(e,t),rH(e)&&t.push({severity:`error`,message:`Circular dependency detected between structures`}),t}function GV(e,t){let n=e.nodes.filter(e=>e.stage===FV);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 KV(e){let t=new Set;for(let n of e.edges)n.linkType===RV&&(n.targetRoundNumber||1)>1&&e.nodes.find(e=>e.id===n.sourceNodeId)?.stage===IV&&t.add(n.targetNodeId);let n=new Map;for(let t of e.edges)t.linkType===zV&&n.set(t.targetNodeId,(n.get(t.targetNodeId)||0)+1);for(let[e,r]of n)r>1&&t.add(e);return t}function qV(e,t,n){for(let r of e.nodes){if(r.structureType===BV&&!t.has(r.id)){let t=e.edges.some(e=>e.targetNodeId===r.id);(r.stage===FV||r.stage===IV)&&!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===HV?0:2;r.drawSize<i&&n.push({message:`"${r.structureName}" draw size must be at least ${i}`,severity:`error`,nodeId:r.id})}}function JV(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=Xz(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=Xz(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 YV(e,t){let n=new Map;for(let t of e.edges)t.linkType===RV&&(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 XV(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 ZV(e,t,n){let r=e.nodes.filter(e=>e.stage===IV);for(let i of r){let r=e.edges.find(e=>e.sourceNodeId===i.id&&e.linkType===RV&&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 QV(e,t){let n=new Map;for(let t of e.edges){if(t.linkType!==RV)continue;let r=t.targetRoundNumber||1;if(r<=1)continue;let i=e.nodes.find(e=>e.id===t.sourceNodeId);if(!i||i.stage!==IV)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=Gz(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 $V(e,t){for(let n of e.edges){if(n.linkType!==zV)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=Zz(r.structureType,r.drawSize,a),c=Gz(i.drawSize);o!==1&&eH(c,o,s,r,i,a,n.id,t)}}function eH(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 tH(e,t){let n=e.nodes.filter(e=>e.stage===LV);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===zV){let e=t.sourceRoundNumber||1;i+=Zz(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 nH(e,t){let n=new Map;for(let r of e.edges){if(r.linkType!==UV)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===VV){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 rH(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:iH,QUALIFYING:aH,CONSOLATION:oH,PLAY_OFF:sH,LUCKY_DRAW:cH}=t.drawDefinitionConstants;function lH(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=WV(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:iH,onClick:()=>e.onAddStructure(iH),close:!0},{label:`Lucky Draw`,value:cH,onClick:()=>e.onAddStructure(iH,cH),close:!0},{label:`Qualifying`,value:aH,onClick:()=>e.onAddStructure(aH),close:!0},{label:`Consolation`,value:oH,onClick:()=>e.onAddStructure(oH),close:!0},{label:`Playoff`,value:sH,onClick:()=>e.onAddStructure(sH),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()}),cP({target:a,items:l});function u(e){s=e}return{element:r,update:u}}function uH({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:dH,FEED_IN:fH,ROUND_ROBIN:pH,LUCKY_DRAW:mH,MAIN:hH,QUALIFYING:gH,CONSOLATION:_H,PLAY_OFF:vH}=t.drawDefinitionConstants,yH=`WINNER`,bH=`LOSER`,xH=`POSITION`,SH=`tpl-edge-1`,CH=`tpl-edge-2`,wH=`tpl-edge-3`,TH=`tpl-edge-4`,EH=`tpl-edge-5`,DH=`tpl-edge-6`,OH=`tpl-edge-7`,kH=`R1 losers → R1`,AH=[{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:hH,structureType:dH,drawSize:32,position:{x:320,y:40}},{id:`tpl-qual`,structureName:`Qualifying`,stage:gH,structureType:dH,drawSize:16,qualifyingPositions:4,position:{x:40,y:40}}],edges:[{id:SH,sourceNodeId:`tpl-qual`,targetNodeId:`tpl-main`,linkType:yH,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:hH,structureType:dH,drawSize:32,position:{x:40,y:40}},{id:`tpl-cons`,structureName:`Consolation`,stage:_H,structureType:dH,drawSize:16,position:{x:320,y:40}}],edges:[{id:SH,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:bH,sourceRoundNumber:1,targetRoundNumber:1,label:kH}]}},{name:`Feed-In Championship (FIC)`,description:`Main draw with multi-round fed consolation`,state:{drawName:`FIC`,nodes:[{id:`tpl-main`,structureName:`Main Draw`,stage:hH,structureType:dH,drawSize:32,position:{x:40,y:40}},{id:`tpl-cons`,structureName:`Consolation`,stage:_H,structureType:fH,drawSize:31,position:{x:460,y:40}}],edges:[{id:SH,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:bH,sourceRoundNumber:1,targetRoundNumber:1,label:kH},{id:CH,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:bH,sourceRoundNumber:2,targetRoundNumber:2,label:`R2 losers → R2`},{id:wH,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:bH,sourceRoundNumber:3,targetRoundNumber:4,label:`R3 losers → R4`},{id:TH,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:bH,sourceRoundNumber:4,targetRoundNumber:6,label:`R4 losers → R6`},{id:EH,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:bH,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:hH,structureType:dH,drawSize:32,position:{x:40,y:40}},{id:`tpl-west`,structureName:`West`,stage:_H,structureType:dH,drawSize:16,position:{x:400,y:40}},{id:`tpl-north`,structureName:`North`,stage:_H,structureType:dH,drawSize:8,position:{x:400,y:210}},{id:`tpl-ne`,structureName:`Northeast`,stage:_H,structureType:dH,drawSize:4,position:{x:400,y:380}},{id:`tpl-south`,structureName:`South`,stage:_H,structureType:dH,drawSize:8,position:{x:680,y:40}},{id:`tpl-sw`,structureName:`Southwest`,stage:_H,structureType:dH,drawSize:4,position:{x:680,y:210}},{id:`tpl-nw`,structureName:`Northwest`,stage:_H,structureType:dH,drawSize:4,position:{x:680,y:380}},{id:`tpl-se`,structureName:`Southeast`,stage:_H,structureType:dH,drawSize:4,position:{x:960,y:40}}],edges:[{id:SH,sourceNodeId:`tpl-east`,targetNodeId:`tpl-west`,linkType:bH,sourceRoundNumber:1,targetRoundNumber:1,label:kH},{id:CH,sourceNodeId:`tpl-east`,targetNodeId:`tpl-north`,linkType:bH,sourceRoundNumber:2,targetRoundNumber:1,label:`R2 losers → R1`},{id:wH,sourceNodeId:`tpl-east`,targetNodeId:`tpl-ne`,linkType:bH,sourceRoundNumber:3,targetRoundNumber:1,label:`R3 losers → R1`},{id:TH,sourceNodeId:`tpl-west`,targetNodeId:`tpl-south`,linkType:bH,sourceRoundNumber:1,targetRoundNumber:1,label:kH},{id:EH,sourceNodeId:`tpl-west`,targetNodeId:`tpl-sw`,linkType:bH,sourceRoundNumber:2,targetRoundNumber:1,label:`R2 losers → R1`},{id:DH,sourceNodeId:`tpl-north`,targetNodeId:`tpl-nw`,linkType:bH,sourceRoundNumber:1,targetRoundNumber:1,label:kH},{id:OH,sourceNodeId:`tpl-south`,targetNodeId:`tpl-se`,linkType:bH,sourceRoundNumber:1,targetRoundNumber:1,label:kH}]}},{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:hH,structureType:pH,drawSize:16,structureOptions:{groupSize:4},position:{x:40,y:40}},{id:`tpl-playoff-gold`,structureName:`Gold Flight`,stage:vH,structureType:dH,drawSize:8,position:{x:320,y:40}},{id:`tpl-playoff-silver`,structureName:`Silver Flight`,stage:vH,structureType:dH,drawSize:8,position:{x:320,y:220}}],edges:[{id:SH,sourceNodeId:`tpl-main`,targetNodeId:`tpl-playoff-gold`,linkType:xH,finishingPositions:[1,2],label:`positions 1,2`},{id:CH,sourceNodeId:`tpl-main`,targetNodeId:`tpl-playoff-silver`,linkType:xH,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:hH,structureType:mH,drawSize:11,position:{x:40,y:40}},{id:`tpl-cons`,structureName:`Consolation`,stage:_H,structureType:dH,drawSize:4,position:{x:340,y:40}}],edges:[{id:SH,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:bH,sourceRoundNumber:1,targetRoundNumber:1,label:kH}]}},{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:hH,structureType:mH,drawSize:25,position:{x:40,y:40}},{id:`tpl-cons-rr`,structureName:`Consolation RR`,stage:_H,structureType:pH,drawSize:12,structureOptions:{groupSize:4},position:{x:500,y:40}}],edges:[{id:SH,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons-rr`,linkType:bH,sourceRoundNumber:1,targetRoundNumber:1,label:kH}]}},{name:`Adaptive (drawSize 11)`,description:`Compass-like multi-structure topology with lucky draw structures`,state:{drawName:`Adaptive`,nodes:[{id:`tpl-east`,structureName:`East`,stage:hH,structureType:mH,drawSize:11,position:{x:40,y:40}},{id:`tpl-west`,structureName:`West`,stage:_H,structureType:mH,drawSize:6,position:{x:340,y:40}},{id:`tpl-north`,structureName:`North`,stage:_H,structureType:dH,drawSize:2,position:{x:340,y:250}},{id:`tpl-south`,structureName:`South`,stage:_H,structureType:dH,drawSize:2,position:{x:600,y:40}}],edges:[{id:SH,sourceNodeId:`tpl-east`,targetNodeId:`tpl-west`,linkType:bH,sourceRoundNumber:1,targetRoundNumber:1,label:`R1 losers → R1 (6 losers)`},{id:CH,sourceNodeId:`tpl-east`,targetNodeId:`tpl-north`,linkType:bH,sourceRoundNumber:2,targetRoundNumber:1,label:`R2 losers → R1 (2 losers)`},{id:wH,sourceNodeId:`tpl-west`,targetNodeId:`tpl-south`,linkType:bH,sourceRoundNumber:1,targetRoundNumber:1,label:`R1 losers → R1 (2 losers)`}]}}],{MAIN:jH,QUALIFYING:MH,CONSOLATION:NH,PLAY_OFF:PH,SINGLE_ELIMINATION:FH,LUCKY_DRAW:IH,WINNER:LH,LOSER:RH}=t.drawDefinitionConstants,zH=`POSITION`,BH=class{constructor(e={}){this.config=e,this.store=new zB(e.initialState);let t=[...AH,...e.templates||[]],n=!!e.readOnly,r=this.buildToolbarPanel(t,n),i=this.buildCanvasPanel(n),a=SV({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=PV({onUpdateEdge:n?()=>{}:(e,t)=>this.store.updateEdge(e,t),onDeleteEdge:n?()=>{}:e=>this.store.removeEdge(e),readOnly:n});this.layout=uH({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 lH({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 XB({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===zH){let i=this.store.getState().edges.filter(t=>t.sourceNodeId===e&&t.linkType===zH),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===RH){let i=this.store.getState().edges.filter(t=>t.sourceNodeId===e&&t.linkType===RH),a=new Set(i.map(e=>e.sourceRoundNumber)),o=r?Xz(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===LH&&r?.stage===MH;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===IH,r=this.store.getState().nodes.filter(t=>t.stage===e).length,i={[jH]:n?`Lucky Draw`:`Main Draw`,[MH]:`Qualifying ${r+1}`,[NH]:`Consolation`,[PH]:`Playoff ${r+1}`},a={[jH]:n?11:32,[MH]:16,[NH]:16,[PH]:4}[e]||16,o=this.store.addNode({structureName:i[e]||e,stage:e,structureType:t||FH,drawSize:a,...e===MH&&{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+wB(e)+40;n>t.scrollLeft+t.clientWidth&&t.scrollTo({left:n-t.clientWidth,behavior:`smooth`})})}handleGenerate(){let e=this.store.getState(),t=WV(e);t.some(e=>e.severity===`error`)&&console.warn(`Topology validation errors:`,t),this.config.onGenerate&&this.config.onGenerate(e)}},{MAIN:VH,CONSOLATION:HH,QUALIFYING:UH,PLAY_OFF:WH,SINGLE_ELIMINATION:GH,FEED_IN:KH,FIRST_MATCH_LOSER_CONSOLATION:qH,FEED_IN_CHAMPIONSHIP:JH,COMPASS:YH,WINNER:XH,LOSER:ZH,ROUND_ROBIN:QH,AD_HOC:$H,LUCKY_DRAW:eU}=t.drawDefinitionConstants,tU=`POSITION`;function nU(e,t){let n=e.nodes.filter(e=>e.stage===HH),r=e.nodes.filter(e=>e.stage===UH),i=e.nodes.filter(e=>e.stage===WH);if(t.structureType===QH)return e.edges.some(n=>n.sourceNodeId===t.id&&n.linkType===tU&&e.nodes.some(e=>e.id===n.targetNodeId&&e.stage===WH))?`ROUND_ROBIN_WITH_PLAYOFF`:QH;if(t.structureType===$H)return $H;if(t.structureType===KH)return KH;if(t.structureType===eU)return eU;if(n.length===7&&r.length===0&&i.length===0){let n=e.edges.filter(e=>e.linkType===ZH&&e.sourceNodeId===t.id),r=new Set(n.map(e=>e.sourceRoundNumber));if(r.has(1)&&r.has(2)&&r.has(3))return YH}if(n.length===1&&r.length===0&&i.length===0){let r=n[0],i=e.edges.filter(e=>e.linkType===ZH&&e.sourceNodeId===t.id&&e.targetNodeId===r.id);if(r.structureType===KH||i.length>1)return JH;if(i.length===1&&i[0].sourceRoundNumber===1)return qH}return GH}function rU(e){let t=e.nodes.find(e=>e.stage===VH);if(!t)throw Error(`No main structure node found`);let n=e.nodes.filter(e=>e.stage===UH),r=e.nodes.filter(e=>e.stage===WH),i=nU(e,t);i===GH&&!cU(t.drawSize)&&(i=KH);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&&oU(a,n,e.edges);let o=[];return iU(e,t,i,o),aU(e,t,r,a),{drawOptions:a,postGenerationMethods:o}}function iU(e,t,n,r){let i=e.nodes.filter(e=>e.stage===HH),a=e.edges.filter(e=>e.linkType===ZH&&e.sourceNodeId===t.id&&i.some(t=>t.id===e.targetNodeId)),o=[qH,JH,YH];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 aU(e,t,n,r){let i=t.structureType===QH,a=i?e.edges.filter(e=>e.sourceNodeId===t.id&&e.linkType===tU&&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||GH,s={finishingPositions:a,structureName:e.structureName,drawType:o};o===QH&&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=sU(t.id,n,e.edges);i&&(r.withPlayoffs=i)}}function oU(e,t,n){let r=n.filter(e=>e.linkType===XH&&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 sU(e,t,n){let r=n.filter(n=>n.sourceNodeId===e&&n.linkType===ZH&&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=sU(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 cU(e){return e>0&&(e&e-1)==0}var{MAIN:lU}=t.drawDefinitionConstants,uU=()=>`spl-layout`,dU=()=>`spl-left`,fU=()=>`spl-toggle`,pU=()=>`spl-center`,mU=()=>`spl-center-header`,hU=()=>`spl-center-title`,gU=()=>`spl-center-actions`,_U=()=>`spl-center-leading`,vU=()=>`spl-grid-slot`,yU=()=>`spl-right`,bU=()=>`spl-matchup-card`,xU=()=>`spl-card-title`,SU=()=>`spl-card-sides`,CU=()=>`spl-card-meta`,wU=()=>`spl-card-chips`,TU=()=>`spl-card-chip`,EU=()=>`sp-panel`,DU=()=>`sp-panel-header`,OU=()=>`sp-panel-title`,kU=()=>`sp-panel-meta`,AU=()=>`sp-date-strip`,jU=()=>`sp-date-chip`,MU=()=>`sp-badges`,NU=()=>`sp-catalog`,PU=()=>`sp-catalog-toolbar`,FU=()=>`sp-input`,IU=()=>`sp-select`,LU=()=>`sp-group`,RU=()=>`sp-group-header`,zU=()=>`sp-group-body`,BU=()=>`sp-group-chevron`,VU=()=>`sp-issues`,HU=()=>`sp-issue`,UU=()=>`sp-issue-code`,WU=()=>`sp-issue-msg`,GU=()=>`sp-inspector`,KU=()=>`sp-kv`,qU=()=>`sp-kv-key`,JU=()=>`sp-kv-value`,YU=()=>`sp-small`;function XU(e,t,n){let r=!!n?.hideLeft,i=n?.catalogSide===`left`,a=document.createElement(`div`);a.className=uU();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=dU(),s=document.createElement(`button`),s.className=fU(),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=yU(),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.update(t)}return{element:a,update:u}}function ZU(e){let t=e.sides;if(t?.length===2){let e=QU(t[0]),n=QU(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 QU(e){return e?`${e.participantName??``}${e.seedNumber?` [${e.seedNumber}]`:``}`:``}function $U(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 eW(){let e=document.createElement(`div`);e.className=EU();let t=document.createElement(`div`);t.className=DU();let n=document.createElement(`div`);n.className=OU(),n.textContent=`Inspector`,t.appendChild(n),e.appendChild(t);let r=document.createElement(`div`);r.className=GU(),e.appendChild(r);function i(e){r.innerHTML=``;let t=e.selectedMatchUp;if(!t){let e=document.createElement(`div`);e.className=YU(),e.textContent=`Select a matchUp in the catalog to see details.`,r.appendChild(e);return}if(tW(r,`Event`,t.eventName),tW(r,`Draw`,t.drawName??t.drawId),tW(r,`Round`,t.roundName??`Round ${t.roundNumber}`),tW(r,`Type`,t.matchUpType??`—`),tW(r,`Format`,t.matchUpFormat??`—`),tW(r,`Scheduled`,t.isScheduled?`Yes`:`No`),t.scheduledTime&&tW(r,`Time`,t.scheduledTime),t.scheduledCourtName&&tW(r,`Court`,t.scheduledCourtName),t.sides?.length){let e=document.createElement(`div`);e.className=YU(),e.style.marginTop=`8px`,e.textContent=`Participants:`,r.appendChild(e);let n=document.createElement(`div`);n.className=`spl-inspector-sides`;for(let e of t.sides){let t=document.createElement(`div`);t.className=`spl-inspector-side`;let r=document.createElement(`span`);if(r.textContent=QU(e)||`TBD`,t.appendChild(r),e.ranking){let n=document.createElement(`span`);n.className=`spl-inspector-seed`,n.textContent=`#${e.ranking}`,t.appendChild(n)}n.appendChild(t)}r.appendChild(n)}}return{element:e,update:i}}function tW(e,t,n){let r=document.createElement(`div`);r.className=KU();let i=document.createElement(`div`);i.className=qU(),i.textContent=t;let a=document.createElement(`div`);a.className=JU(),a.textContent=n,r.appendChild(i),r.appendChild(a),e.appendChild(r)}var nW=new Set([`COMPLETED`,`RETIRED`,`WALKOVER`,`DEFAULTED`,`DOUBLE_WALKOVER`,`DOUBLE_DEFAULT`,`CANCELLED`,`ABANDONED`,`DEAD_RUBBER`]);function rW(e){return!!e&&nW.has(e)}function iW(e,t,n=`dim`,r,i=!1){let a=t.toLowerCase().trim();return e.filter(e=>n===`hide`&&e.isScheduled||!i&&rW(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?$U(e).includes(a):!0)}function aW(e){let t=new Map;for(let n of e){if(n.isScheduled||rW(n.matchUpStatus))continue;let e=t.get(n.eventId);(e===void 0||n.roundNumber<e)&&t.set(n.eventId,n.roundNumber)}return t}var oW={CONSOLATION:`Consolation`,PLAYOFF:`Playoff`,QUALIFYING:`Qualifying`,ROUND_ROBIN:`Round Robin`,PLAY_OFF:`Playoff`,Q_PLAYOFF:`Qualifying Playoff`,COMPASS:`Compass`,VOLUNTARY_CONSOLATION:`Voluntary Consolation`},sW=`Unscheduled`;function cW(e){if(e.structureName&&e.structureName.trim())return e.structureName.trim();let t=e.stage;return!t||t===`MAIN`?``:oW[t]??t.charAt(0)+t.slice(1).toLowerCase().replace(/_/g,` `)}function lW(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 uW(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=cW(e);return t?`${e.eventName} \u2014 ${t}`:e.eventName}return t===`time`?e.scheduledTime??sW:e.eventName};for(let t of e){let e=r(t),i=n.get(e);i?i.push(t):n.set(e,[t])}return new Map([...n.entries()].sort((e,t)=>{let n=lW(e[1]),r=lW(t[1]);return n!==void 0&&r!==void 0&&n!==r?n.localeCompare(r):n!==void 0&&r===void 0?-1:n===void 0&&r!==void 0?1:e[0].localeCompare(t[0],void 0,{numeric:!0})}))}function dW(e,t,n={}){let r=document.createElement(`div`);r.className=bU(),r.setAttribute(`data-matchup-id`,e.matchUpId);let i=rW(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`})),t.onClick&&r.addEventListener(`click`,n=>{n.stopPropagation(),t.onClick(e)});let a=document.createElement(`div`);if(a.className=xU(),typeof n.roundOffset==`number`){let e=n.roundOffset===0?`spl-card-title--round-current`:n.roundOffset===1?`spl-card-title--round-next`:`spl-card-title--round-later`;a.classList.add(e)}let o=`${e.eventName} \u2014 ${e.roundName??`Round `+e.roundNumber}`,s=n.prominentTime&&!!e.scheduledTime;if(s){a.classList.add(`with-time`);let t=document.createElement(`span`);t.className=`spl-card-title-text`,t.textContent=o;let n=document.createElement(`span`);n.className=`spl-card-time-header`,n.textContent=e.scheduledTime,a.appendChild(t),a.appendChild(n)}else a.textContent=o;r.appendChild(a);let c=document.createElement(`div`);c.className=SU(),c.textContent=ZU(e),r.appendChild(c);let l=document.createElement(`div`);l.className=CU();let u=[];e.drawName&&u.push(e.drawName),e.matchUpType&&u.push(e.matchUpType.toLowerCase()),l.textContent=u.join(` · `),r.appendChild(l);let d=document.createElement(`div`);if(d.className=wU(),e.scheduledTime&&!s&&d.appendChild(fW(e.scheduledTime,`time`)),e.scheduledCourtName&&d.appendChild(fW(e.scheduledCourtName,`court`)),e.matchUpFormat&&d.appendChild(fW(e.matchUpFormat,`type`)),i&&e.matchUpStatus){let t=e.matchUpStatus.replace(/_/g,` `);d.appendChild(fW(t,`status`))}if(e.stage&&e.stage!==`MAIN`){let t=e.stage.replace(/_/g,` `);d.appendChild(fW(t,`stage`))}if(d.children.length&&r.appendChild(d),e.isScheduled){let e=document.createElement(`span`);e.className=`spl-matchup-check`,e.textContent=`✓`,r.appendChild(e)}return r}function fW(e,t){let n=document.createElement(`div`);return n.className=TU()+` `+t,n.textContent=e,n}function pW(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 mW(e){let t=document.createElement(`div`);t.className=EU();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=DU();let l=document.createElement(`div`);l.className=`spl-catalog-title-row`;let u=document.createElement(`div`);u.className=OU(),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=kU(),c.appendChild(l),c.appendChild(f),t.appendChild(c);let p=document.createElement(`div`);p.className=PU();let m=document.createElement(`input`);m.type=`text`,m.placeholder=`Search matchUps...`,m.className=FU(),m.addEventListener(`input`,()=>e.onSearchChange(m.value));let h=Jx(m,()=>{m.value=``,e.onSearchChange(``),m.focus()}),g=document.createElement(`select`);g.className=IU();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:pW(t,e=>e.matchUpType)},{label:`All Events`,key:`eventName`,values:pW(t,e=>e.eventName)},{label:`All Flights`,key:`drawName`,values:pW(t,e=>e.drawName)},{label:`All Genders`,key:`gender`,values:pW(t,e=>e.gender)},{label:`All Rounds`,key:`roundName`,values:pW(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=Dm(d,{content:b(),placement:`bottom-start`,interactive:!0,trigger:`manual`,appendTo:()=>t,onClickOutside:()=>_(),theme:``}),o.show()});let x=document.createElement(`div`);x.className=NU(),t.appendChild(x);function S(t){a=t,s=t.catalogFilters??{},y();let n=aW(t.matchUpCatalog),r=t.showScheduled?t.scheduledBehavior:`hide`,o=iW(t.matchUpCatalog,t.catalogSearchQuery,r,t.catalogFilters,t.showCompleted),c=uW(o,t.catalogGroupBy);f.textContent=`${o.filter(e=>!e.isScheduled).length} unscheduled`,m.value!==t.catalogSearchQuery&&(m.value=t.catalogSearchQuery,Yx(h)),g.value!==t.catalogGroupBy&&(g.value=t.catalogGroupBy),x.innerHTML=``;for(let[r,o]of c){let s=document.createElement(`div`);s.className=LU();let c=i.has(r),l=document.createElement(`div`);l.className=RU();let u=document.createElement(`span`);u.className=BU(),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=zU(),c&&(f.style.display=`none`);for(let r of o){let i=n.get(r.eventId),a=dW(r,{onClick:t=>e.onMatchUpSelected?.(t)},{roundOffset:i!==void 0&&!r.isScheduled&&!rW(r.matchUpStatus)?Math.max(0,r.roundNumber-i):void 0});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 hW(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 gW=`spl-cell--issue-pulse`;function _W(){let e=document.createElement(`div`);e.className=EU();let t=document.createElement(`div`);t.className=DU();let n=document.createElement(`div`);n.className=OU(),n.textContent=`Issues`;let r=document.createElement(`div`);r.className=kU(),t.appendChild(n),t.appendChild(r),e.appendChild(t);let i=document.createElement(`div`);i.className=VU(),e.appendChild(i);function a(e){let t=hW(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=YU(),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=HU(),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=UU(),n.textContent=e.severity;let r=document.createElement(`div`);if(r.className=WU(),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(gW),n.offsetWidth,n.classList.add(gW),n.addEventListener(`animationend`,()=>n.classList.remove(gW),{once:!0}))}return{element:e,update:a}}function vW(e){let t=document.createElement(`div`);t.className=EU();let n=document.createElement(`div`);n.className=DU();let r=document.createElement(`div`);r.className=OU(),r.textContent=`Dates`;let i=document.createElement(`div`);i.className=kU(),n.appendChild(r),n.appendChild(i),t.appendChild(n);let a=document.createElement(`div`);a.className=AU(),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=jU(),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=MU(),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 yW(e,t,n){let r=document.createElement(`div`);r.className=pU();let i=document.createElement(`div`);i.className=mU();let a=n?.titleLeadingActions,o;if(n?.titleSlot?o=n.titleSlot:(o=document.createElement(`div`),o.className=hU(),o.textContent=`Court Grid`),a){let e=document.createElement(`div`);e.className=_U();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=gU();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=vU(),n?.gridMaxHeight&&(c.style.maxHeight=n.gridMaxHeight),e&&c.appendChild(e),c.addEventListener(`dragover`,e=>{e.preventDefault(),e.dataTransfer.dropEffect=`move`}),c.addEventListener(`drop`,e=>{if(e.preventDefault(),!t.onMatchUpDrop)return;let n;try{n=JSON.parse(e.dataTransfer.getData(`application/json`))}catch{return}(n.type===`CATALOG_MATCHUP`||n.type===`GRID_MATCHUP`)&&t.onMatchUpDrop(n,e)}),r.appendChild(c);function l(e){}return{element:r,update:l}}var bW=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:e.scheduleDates[0]?.date??null,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}}getState(){return this.state}setMatchUpCatalog(e){this.setState({matchUpCatalog:e}),this.state.selectedMatchUp&&(e.some(e=>e.matchUpId===this.state.selectedMatchUp?.matchUpId)||this.setState({selectedMatchUp:null}))}setScheduleDates(e){this.setState({scheduleDates:e})}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})}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)}},xW=class{constructor(e){this.container=null,this.store=new bW(e);let t=vW({onDateSelected:e=>this.store.selectDate(e)}),n=_W(),r=yW(e.courtGridElement,{onMatchUpDrop:(e,t)=>{this.store.handleMatchUpDrop(e,t)}},{gridMaxHeight:e.gridMaxHeight,headerActions:e.headerActions,titleLeadingActions:e.titleLeadingActions,titleSlot:e.titleSlot}),i=mW({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)}}),a=eW();this.layout=XU({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}save(){return this.store.save()}discardPending(){this.store.discardPending()}get hasUnsavedChanges(){return this.store.getState().hasUnsavedChanges}getStore(){return this.store}},SW=new Set([`IN_PROGRESS`,`SUSPENDED`]),CW=new Set([`CANCELLED`,`ABANDONED`,`COMPLETED`,`DEAD_RUBBER`,`DEFAULTED`,`DOUBLE_WALKOVER`,`DOUBLE_DEFAULT`,`RETIRED`,`WALKOVER`]),wW=`in-progress`,TW=`pending`,EW=`completed`;function DW(e,t,n){let r=e.matchUpStatus;return r&&t.has(r)||e.hasScore&&e.winningSide===void 0&&(!r||!n.has(r))?wW:r&&n.has(r)||e.winningSide!==void 0?EW:TW}function OW(e,t){let n=t?.inProgressStatuses??SW,r=t?.completedStatuses??CW,i=e.cells,a=-1;for(let t=0;t<i.length;t++){let o=i[t];if(!o)continue;let s=DW(o,n,r);if(s===wW)return{courtId:e.courtId,state:wW,matchUp:o,rowIndex:t};s===TW&&a===-1&&(a=t)}return a===-1?{courtId:e.courtId,state:`free`}:{courtId:e.courtId,state:`next`,matchUp:i[a],rowIndex:a}}function kW(e,t){return e.columns.map(e=>OW(e,t))}function AW(e,t){if(t.size===0)return!1;for(let n of e.participantIds)if(t.has(n))return!0;return!1}function jW(e,t){return t.roundNumber!==void 0&&t.drawId!==void 0&&e.drawId===t.drawId&&e.roundNumber!==void 0&&e.roundNumber<t.roundNumber}function MW(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&&AW(o,n)&&(r=e),e>i&&jW(o,t)&&(i=e))}return{participantFloor:r,earlierRoundFloor:i}}function NW(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 PW(e,t,n){let r=e.columns.find(e=>e.courtId===t);if(!r)throw Error(`computeActiveStripDropTarget: court "${t}" not present in grid`);let{participantFloor:i,earlierRoundFloor:a}=MW(e,n);return{courtId:t,rowIndex:NW(r,Math.max(0,i+1,a+1),n.matchUpId)}}var FW=`drop-over`;function IW(e,t,n,r){e.addEventListener(`dragover`,t=>{t.preventDefault(),e.classList.add(FW),t.dataTransfer&&(t.dataTransfer.dropEffect=`move`)}),e.addEventListener(`dragleave`,()=>{e.classList.remove(FW)}),e.addEventListener(`drop`,i=>{if(e.classList.remove(FW),i.preventDefault(),!n.onMatchUpDrop)return;let a;try{a=JSON.parse(i.dataTransfer?.getData(`application/json`)??``)}catch{return}if(a.type!==`CATALOG_MATCHUP`&&a.type!==`GRID_MATCHUP`)return;let o={matchUpId:a.matchUp.matchUpId,drawId:a.matchUp.drawId,roundNumber:a.matchUp.roundNumber,participantIds:(a.matchUp.sides??[]).map(e=>e.participantId).filter(e=>!!e)},s=PW(r(),t.courtId,o);n.onMatchUpDrop(a,s,i)})}function LW(e){return e===`in-progress`?`LIVE`:e===`next`?`NEXT`:null}function RW(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=LW(e.state);if(o){let e=document.createElement(`span`);e.className=`spl-active-strip-state-pill`,e.textContent=o,a.appendChild(e)}return IW(a,e,t,n),a}function zW(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 BW(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(zW(t));let a=kW(r.grid,t.statusOptions);for(let o of a){let a=r.courtBlocks?.[o.courtId];n.appendChild(RW(o,e,i,t,a))}}function o(e){r=e,a()}function s(e){n.hidden=!e.activeStripVisible}return{element:n,setData:o,update:s}}var VW=`spl-cell--conflict-highlight`,HW=`spl-cell--complete`,UW={header:[`time`],body:[`eventRound`,`participants`],footer:[`score`],participantDisplay:{nameFormat:`full`,showSeed:!1,showRanking:!1,showNationality:!1,boldWinner:!0,showPotentials:!0}};function WW(e,t){let n=t??UW;return e.isBlocked?GW(e):e.matchUpId?qW(e,n):KW()}function GW(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 KW(){let e=document.createElement(`div`);return e.className=`spl-grid-cell spl-cell--empty`,e}function qW(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),JW(n,e),t.header.length){let r=document.createElement(`div`);r.className=`spl-grid-cell__header`,YW(r,t.header,e,t),n.appendChild(r)}if(t.body.length){let r=document.createElement(`div`);r.className=`spl-grid-cell__body`,YW(r,t.body,e,t),n.appendChild(r)}if(t.footer.length){let r=document.createElement(`div`);r.className=`spl-grid-cell__footer`,YW(r,t.footer,e,t),n.appendChild(r)}return e.issueIds?.length&&(n.addEventListener(`mouseenter`,()=>{n.classList.add(VW);for(let t of e.issueIds)document.querySelectorAll(`[data-matchup-id="${t}"]`).forEach(e=>e.classList.add(VW))}),n.addEventListener(`mouseleave`,()=>{n.classList.remove(VW);for(let t of e.issueIds)document.querySelectorAll(`[data-matchup-id="${t}"]`).forEach(e=>e.classList.remove(VW))})),n}function JW(e,t){let n=t.matchUpStatus?.toUpperCase();n===`COMPLETED`||n===`RETIRED`||n===`DEFAULTED`||n===`WALKOVER`?e.classList.add(HW):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 YW(e,t,n,r){for(let i of t){let t=XW(i,n,r);t&&e.appendChild(t)}}function XW(e,t,n){switch(e){case`time`:return ZW(t);case`eventRound`:return QW(t);case`participants`:return $W(t,n.participantDisplay);case`score`:return iG(t);case`matchUpStatus`:return aG(t);case`matchUpFormat`:return oG(t);case`umpire`:return sG(t);default:return null}}function ZW(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 QW(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 $W(e,t){let n=t??UW.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(nG());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(tG()):(t>0&&!i[t-1]?.bye&&r.appendChild(nG()),r.appendChild(eG(a,e,n,a.sideNumber??t+1)))}return(a||o)&&i.length===1&&!i[0].bye&&r.appendChild(tG()),r}function eG(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=rG(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 tG(){let e=document.createElement(`div`);return e.className=`spl-grid-cell__bye`,e.textContent=`BYE`,e}function nG(){let e=document.createElement(`div`);return e.className=`spl-grid-cell__vs`,e.textContent=`vs.`,e}function rG(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 iG(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 aG(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 oG(e){if(!e.matchUpFormat)return null;let t=document.createElement(`div`);return t.className=`spl-grid-cell__format`,t.textContent=e.matchUpFormat,t}function sG(e){if(!e.umpire)return null;let t=document.createElement(`div`);return t.className=`spl-grid-cell__umpire`,t.textContent=e.umpire,t}function cG(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 lG({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++}ce({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 uG(e,t){let n=new xW(e);return n.render(t),n}var dG=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}}:{}})}},fG=()=>`ce-layout`,pG=()=>`ce-left`,mG=()=>`ce-right`,hG=()=>`ce-name-row`,gG=()=>`ce-name-label`,_G=()=>`ce-name-input`,vG=()=>`ce-section`,yG=()=>`ce-section-header`,bG=()=>`ce-section-chevron`,xG=()=>`ce-section-body`,SG=()=>`ce-field`,CG=()=>`ce-field-label`,wG=()=>`ce-field-control`,TG=()=>`ce-select`,EG=()=>`ce-text-input`,DG=()=>`ce-color-input`,OG=()=>`ce-toggle`,kG=()=>`ce-toggle-track`,AG=()=>`ce-preview`,jG=()=>`ce-preview-header`,MG=()=>`ce-preview-body`,NG=()=>`ce-preview-matchup`,PG=()=>`ce-subgroup`,FG=()=>`ce-subgroup-title`;function IG(e,t){let n=document.createElement(`div`);n.className=vG();let r=document.createElement(`div`);r.className=yG();let i=document.createElement(`span`);i.className=bG();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=xG();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 LG(e,t,n,r=!1){let i=document.createElement(`div`);i.className=SG();let a=document.createElement(`span`);a.className=CG(),a.textContent=e,i.appendChild(a);let o=document.createElement(`label`);o.className=OG();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=kG(),o.appendChild(s),o.appendChild(c);let l=document.createElement(`div`);return l.className=wG(),l.appendChild(o),i.appendChild(l),{element:i,setChecked:e=>{s.checked=e},setDisabled:e=>{s.disabled=e}}}function RG(e,t,n,r,i=!1){let a=document.createElement(`div`);a.className=SG();let o=document.createElement(`span`);o.className=CG(),o.textContent=e,a.appendChild(o);let s=document.createElement(`select`);s.className=TG(),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=wG(),c.appendChild(s),a.appendChild(c),{element:a,setValue:e=>{s.value=e}}}function zG(e,t,n,r=``,i=!1){let a=document.createElement(`div`);a.className=SG();let o=document.createElement(`span`);o.className=CG(),o.textContent=e,a.appendChild(o);let s=document.createElement(`input`);s.type=`text`,s.className=EG(),s.value=t,s.placeholder=r,s.disabled=i,s.addEventListener(`input`,()=>n(s.value));let c=document.createElement(`div`);return c.className=wG(),c.appendChild(s),a.appendChild(c),{element:a,setValue:e=>{s.value=e}}}function BG(e,t,n,r=!1){let i=document.createElement(`div`);i.className=SG();let a=document.createElement(`span`);a.className=CG(),a.textContent=e,i.appendChild(a);let o=document.createElement(`input`);o.type=`color`,o.className=DG(),o.value=t||`#000000`,o.disabled=r,o.addEventListener(`input`,()=>n(o.value));let s=document.createElement(`div`);return s.className=wG(),s.appendChild(o),i.appendChild(s),{element:i,setValue:e=>{o.value=e||`#000000`}}}var VG=[],HG=new Set;for(let[,e]of Object.entries(mi))if(!HG.has(e.theme)){HG.add(e.theme);let t=e.theme.replace(`chc-theme-`,``).replace(/-/g,` `).replace(/\b\w/g,e=>e.toUpperCase());VG.push({value:e.theme,label:t})}function UG(e){let t=document.createElement(`div`),n=RG(`Load preset`,[{value:``,label:`— Load preset —`},...Object.keys(mi).map(e=>({value:e,label:e}))],``,t=>{if(!t)return;let r=mi[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=RG(`Color theme`,VG,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 WG=[{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`}],GG=/^#[0-9a-f]{6}$/i;function KG(e,t,n,r){let i=document.createElement(`div`);i.className=SG();let a=document.createElement(`span`);a.className=CG(),a.textContent=e.label,i.appendChild(a);let o=document.createElement(`div`);o.className=wG(),o.style.display=`flex`,o.style.gap=`0.4rem`,o.style.alignItems=`center`;let s=document.createElement(`input`);s.type=`color`,s.className=DG(),s.disabled=r;let c=document.createElement(`input`);c.type=`text`,c.className=EG(),c.placeholder=e.hint||`#rrggbb or color name`,c.disabled=r,c.style.flex=`1`;function l(e){c.value=e||``,e&&GG.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&&GG.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 qG(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=WG.map(r=>{let i=KG(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=SG();let o=document.createElement(`span`);o.className=CG(),o.textContent=`Left-edge width`,a.appendChild(o);let s=document.createElement(`div`);s.className=wG();let c=document.createElement(`input`);c.type=`text`,c.className=EG(),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 JG(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=LG(`Nationality flags`,!!r.flags,t=>e.setConfigField(`flags`,t),n),a=RG(`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=RG(`Seed element`,[{value:``,label:`Default`},{value:`sup`,label:`Superscript`},{value:`span`,label:`Inline`}],r.seedingElement||``,t=>e.setConfigField(`seedingElement`,t||void 0),n),s=LG(`Draw positions (1st round)`,!!r.drawPositions,t=>e.setConfigField(`drawPositions`,t),n),c=LG(`Draw positions (all rounds)`,!!r.allDrawPositions,t=>e.setConfigField(`allDrawPositions`,t),n),l=LG(`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 YG(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=LG(`Score box`,!!r.scoreBox,t=>e.setConfigField(`scoreBox`,t),n),a=LG(`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=PG();let s=document.createElement(`div`);s.className=FG(),s.textContent=`Game Score Display`,o.appendChild(s);let c=RG(`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=LG(`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 XG(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=LG(`Gender color`,!!r.genderColor,t=>e.setConfigField(`genderColor`,t),n),a=LG(`Winner color`,!!r.winnerColor,t=>e.setConfigField(`winnerColor`,t),n),o=RG(`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=zG(`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 ZG(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=zG(`TBD text`,r.placeHolders?.tbd||``,t=>e.setConfigNestedField(`placeHolders`,`tbd`,t||void 0),`TBD`,n),a=zG(`Bye text`,r.placeHolders?.bye||``,t=>e.setConfigNestedField(`placeHolders`,`bye`,t||void 0),`Bye`,n),o=zG(`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 QG=[{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 $G(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration.scaleAttributes||{},i=RG(`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=RG(`Scale name`,[{value:``,label:`None`},...QG.map(e=>({value:e.scaleName,label:e.label}))],r.scaleName||``,t=>{e.setConfigNestedField(`scaleAttributes`,`scaleName`,t||void 0);let n=QG.find(e=>e.scaleName===t);e.setConfigNestedField(`scaleAttributes`,`accessor`,n?.accessor||void 0)},n),o=BG(`Color`,r.scaleColor||`#ff0000`,t=>e.setConfigNestedField(`scaleAttributes`,`scaleColor`,t),n),s=RG(`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=LG(`Fallback`,!!r.fallback,t=>e.setConfigNestedField(`scaleAttributes`,`fallback`,t),n),l=LG(`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 eK(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=LG(`Schedule info`,!!r.scheduleInfo,t=>e.setConfigField(`scheduleInfo`,t),n),a=LG(`Round header`,!!r.roundHeader,t=>e.setConfigField(`roundHeader`,t),n),o=LG(`MatchUp footer`,!!r.matchUpFooter,t=>e.setConfigField(`matchUpFooter`,t),n),s=LG(`Center info`,!!r.centerInfo,t=>e.setConfigField(`centerInfo`,t),n),c=LG(`Set number`,!!r.resultsInfo,t=>e.setConfigField(`resultsInfo`,t),n),l=LG(`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:tK,SINGLES:nK}=t.eventConstants,{AD_HOC:rK}=t.drawDefinitionConstants,{INDIVIDUAL:iK}=t.participantConstants;function aK({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===tK?tK:nK,completionGoal:f,qualifyingProfiles:r,participantsCount:i,seedsCount:8,matchUpFormat:e,drawSize:o,drawType:l,outcomes:c};l===rK&&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:[iK]}});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||nK}})})}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 oK=null;function sK(){if(!oK){let{matchUps:e}=aK({drawSize:8,eventType:`SINGLES`,randomWinningSide:!0,matchUpFormat:`SET3-S:6/TB7`,withAllRatings:QG.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}]};oK=[...t,i,a,o,s]}return oK}var cK=null;function lK(){if(!cK){let{matchUps:e}=aK({drawSize:4,eventType:`SINGLES`,matchUpFormat:`SET3-S:6/TB7`,completionGoal:50,randomWinningSide:!0});cK=e}return cK}function uK(){let e=document.createElement(`div`);e.className=AG();let t=document.createElement(`div`);t.className=jG(),t.textContent=`Preview`,e.appendChild(t);let n=document.createElement(`div`);n.className=MG(),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=``,br(n),yr(n,e.colors);let s={theme:e.theme,configuration:{...e.configuration,matchUpFooter:!0},colors:e.colors?{...e.colors}:void 0},c=_r({roundNumber:1,roundProfile:{1:{roundName:`Round 1`}}});n.appendChild(c);let l=sK();for(let e of l){let t=document.createElement(`div`);t.className=NG();let r=ei({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=ni({matchUps:lK(),composition:s});n.appendChild(d)}return{element:e,update:o}}var dK=[{id:`theme`,label:`Theme & Preset`,factory:UG},{id:`colors`,label:`Colors`,factory:qG},{id:`display`,label:`Display`,factory:JG},{id:`score`,label:`Score`,factory:YG},{id:`participant`,label:`Participant`,factory:XG},{id:`placeholder`,label:`Placeholders`,factory:ZG},{id:`scale`,label:`Scale Attributes`,factory:$G},{id:`layout`,label:`Layout & Info`,factory:eK}];function fK(e,t){let n=new dG(t),r=document.createElement(`div`);r.className=fG();let i=document.createElement(`div`);i.className=pG();let a=document.createElement(`div`);a.className=hG();let o=document.createElement(`span`);o.className=gG(),o.textContent=`Name`;let s=document.createElement(`input`);s.type=`text`,s.className=_G(),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=dK.map(e=>{let t=IG(e,n);return i.appendChild(t.element),t}),l=document.createElement(`div`);l.className=mG();let u=uK();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 pK=[`grand-slam`,`itf`,`minimal`,`none`],mK=[`standard`,`seedings`,`officials`,`none`],hK=[`a4`,`letter`],gK=[`auto`,`portrait`,`landscape`],_K={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 vK(e,t){let n=jK(_K,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(yK(n,r,l)),a.appendChild(bK(n,r,l)),a.appendChild(xK(n,r,l)),a.appendChild(SK(n,r,t.printType,l)),!r&&t.onSave&&a.appendChild(CK(()=>t.onSave?.(MK(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?.(MK(n))}return c(),e.appendChild(i),{destroy:()=>{i.parentNode&&i.parentNode.removeChild(i)},getConfig:()=>MK(n),setConfig:e=>{Object.assign(n,jK(_K,e)),c()}}}function yK(e,t,n){let{section:r,body:i}=OK(`Page`);i.appendChild(wK(`Size`,hK,e.page?.pageSize??`a4`,t,t=>{AK(e,`page`).pageSize=t,n()})),i.appendChild(wK(`Orientation`,gK,e.page?.orientation??`auto`,t,t=>{AK(e,`page`).orientation=t,n()}));let a=Q(`div`,`pce-field pce-field-full`);a.appendChild(kK(`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(EK(r,e.page?.margins?.[r]??10,t,t=>{let i=AK(AK(e,`page`),`margins`);i[r]=t,n()}))}),a.appendChild(o),i.appendChild(a),r}function bK(e,t,n){let{section:r,body:i}=OK(`Header`);return i.appendChild(wK(`Layout`,pK,e.header?.layout??`itf`,t,t=>{AK(e,`header`).layout=t,n()})),i.appendChild(TK(`Tournament name`,e.header?.tournamentName??``,t,t=>{AK(e,`header`).tournamentName=t,n()})),i.appendChild(TK(`Subtitle`,e.header?.subtitle??``,t,t=>{AK(e,`header`).subtitle=t||void 0,n()})),r}function xK(e,t,n){let{section:r,body:i}=OK(`Footer`);return i.appendChild(wK(`Layout`,mK,e.footer?.layout??`standard`,t,t=>{AK(e,`footer`).layout=t,n()})),i.appendChild(DK(`Show timestamp`,e.footer?.showTimestamp??!0,t,t=>{AK(e,`footer`).showTimestamp=t,n()})),i.appendChild(DK(`Show page numbers`,e.footer?.showPageNumbers??!0,t,t=>{AK(e,`footer`).showPageNumbers=t,n()})),r}function SK(e,t,n,r){let{section:i,body:a}=OK(`Content — ${n}`);if(n===`draw`){let n=AK(AK(e,`content`),`draw`);a.appendChild(DK(`Include seedings`,!!n.includeSeedings,t,e=>{n.includeSeedings=e,r()})),a.appendChild(DK(`Include scores`,!!n.includeScores,t,e=>{n.includeScores=e,r()})),a.appendChild(DK(`Show byes`,!!n.showByes,t,e=>{n.showByes=e,r()})),a.appendChild(DK(`Show draw positions`,!!n.showDrawPositions,t,e=>{n.showDrawPositions=e,r()}))}else if(n===`schedule`){let n=AK(AK(e,`content`),`schedule`);a.appendChild(wK(`Cell style`,[`detailed`,`compact`],n.cellStyle??`detailed`,t,e=>{n.cellStyle=e,r()})),a.appendChild(DK(`Show match numbers`,!!n.showMatchNumbers,t,e=>{n.showMatchNumbers=e,r()})),a.appendChild(TK(`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 CK(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 wK(e,t,n,r,i){let a=Q(`div`,`pce-field`);a.appendChild(kK(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 TK(e,t,n,r){let i=Q(`div`,`pce-field`);i.appendChild(kK(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 EK(e,t,n,r){let i=Q(`div`,`pce-field`);i.appendChild(kK(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 DK(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=kK(e);return o.style.fontSize=`13px`,o.style.color=`var(--chc-text-primary, #222)`,i.appendChild(o),i}function OK(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 kK(e){let t=Q(`label`,`pce-field-label`);return t.textContent=e,t}function AK(e,t){return(e[t]===void 0||e[t]===null)&&(e[t]={}),e[t]}function jK(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 MK(e){return JSON.parse(JSON.stringify(e))}var NK=`chc-scorecard-side-score--winner`;function PK({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=UK(e,a)||``,c=UK(e,o)||``,l=r?BK(e.winningSide):e.winningSide,u=FK({side1Name:s,side2Name:c,sets:r?VK(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=zK({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 FK({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=LK(e,`end`),l=LK(t,`start`),u=RK(n,1,r,i),d=RK(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 IK(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(NK),o.classList.remove(NK);let s=r?`side2Score`:`side1Score`,c=r?`side1Score`:`side2Score`;a.textContent=String(i[s]??0),o.textContent=String(i[c]??0);let l=r?BK(e.winningSide):e.winningSide;l===1&&a.classList.add(NK),l===2&&o.classList.add(NK)}function LK(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 RK(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(NK),a.textContent=String(i),a}function zK({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=ei({matchUp:i?HK(e):e,isLucky:!0,eventHandlers:r,composition:n});t.classList.add(`chc-scorecard-card`),f.appendChild(t)}return a.appendChild(f),a}function BK(e){if(e===1)return 2;if(e===2)return 1}function VK(e){if(e)return e.map(e=>({...e,side1Score:e.side2Score,side2Score:e.side1Score,side1TiebreakScore:e.side2TiebreakScore,side2TiebreakScore:e.side1TiebreakScore}))}function HK(e){let t=e.sides?.map(e=>({...e,sideNumber:e.sideNumber===1?2:1}));return{...e,sides:t,score:e.score?{...e.score,sets:VK(e.score.sets)}:e.score,winningSide:BK(e.winningSide)}}function UK(e,t){return e.sides?.find(e=>e.sideNumber===t)?.participant?.participantName}function WK(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 GK=`chc-iss-score-cell`;function KK(e){if(!e?.matchUpId)throw Error(`buildInteractiveScoringShell: matchUpId is required`);if(!e?.matchUpFormat)throw Error(`buildInteractiveScoringShell: matchUpFormat is required`);let t=e.initialMatchUp??qK(e),n=new Set,r=new hs({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(JK(e),YK(r,e,t),XK(r,e,o),ZK(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 qK(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 JK(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 YK(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=GK,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=GK,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=GK,e.textContent=`0`,s.append(e);let t=document.createElement(`div`);t.className=GK,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 XK(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 ZK(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 QK(){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 $K=class{constructor(e){this.listeners=new Set,this.config=e;let t=$(e.initialPolicy??QK()),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)}},eq=()=>`re-section`,tq=()=>`re-section-header`,nq=()=>`re-section-chevron`,rq=()=>`re-section-count`,iq=()=>`re-section-body`,aq=()=>`re-field-row`,oq=()=>`re-field-label`,sq=()=>`re-field-input re-field-input--text`,cq=()=>`re-field-input re-field-input--number`,lq=()=>`re-field-input re-field-input--date`,uq=()=>`re-field-select`,dq=()=>`re-checkbox-row`,fq=()=>`re-points-input`,pq=()=>`re-profile-card`,mq=()=>`re-profile-header`,hq=()=>`re-profile-name-input`,gq=()=>`re-profile-body`,_q=()=>`re-profile-actions`,vq=()=>`re-icon-btn`,yq=()=>`re-icon-btn re-icon-btn--danger`,bq=()=>`re-empty`,xq=()=>`re-editor`,Sq=[`totalPoints`,`bestResult`,`headToHead`,`numberOfWins`,`recentResults`,`drawSize`,`numberOfResults`];function Cq(e){let t=document.createElement(`div`),n=``;function r(t,n,r,i,a,o){let s=document.createElement(`div`);s.className=aq();let c=document.createElement(`div`);if(c.className=oq(),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=uq();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=cq(),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=yq(),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=bq(),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=uq(),i.style.fontSize=`0.75rem`;let a=new Set(n),o=Sq.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=yq(),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=aq();let a=document.createElement(`div`);a.className=oq(),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=cq(),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=bq(),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=dq();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 wq(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=sq(),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=yq(),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(Tq(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(Tq(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(Tq(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=yq(),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=aq();let s=document.createElement(`div`);if(s.className=oq(),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`?cq():sq(),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=bq(),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=dq();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 Tq(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 Eq(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=aq();let r=document.createElement(`div`);r.className=oq(),r.textContent=`Name`;let i=document.createElement(`input`);i.type=`text`,i.className=sq(),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=aq();let o=document.createElement(`div`);o.className=oq(),o.textContent=`Version`;let s=document.createElement(`input`);s.type=`text`,s.className=sq(),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=aq();let l=document.createElement(`div`);l.className=oq(),l.textContent=`Valid from`;let u=document.createElement(`input`);u.type=`date`,u.className=lq(),u.addEventListener(`change`,()=>e.setValidDateRange(`startDate`,u.value)),c.appendChild(l),c.appendChild(u),t.appendChild(c);let d=document.createElement(`div`);d.className=aq();let f=document.createElement(`div`);f.className=oq(),f.textContent=`Valid until`;let p=document.createElement(`input`);p.type=`date`,p.className=lq(),p.addEventListener(`change`,()=>e.setValidDateRange(`endDate`,p.value)),d.appendChild(f),d.appendChild(p),t.appendChild(d);let m=document.createElement(`div`);m.className=aq();let h=document.createElement(`div`);h.className=oq(),h.textContent=`Doubles attribution`;let g=document.createElement(`select`);g.className=uq();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=aq();let v=document.createElement(`div`);v.className=oq(),v.textContent=`Category resolution`;let y=document.createElement(`select`);y.className=uq();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=dq();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=dq();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 Dq={1:`W`,2:`F`,4:`SF`,8:`QF`,16:`R16`,32:`R32`,64:`R64`,128:`R128`,256:`R256`},Oq=`level-keyed`;function kq(e){return Dq[e]??`R${e}`}function Aq(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=jq(t);return n.hasConditionalArray?{type:`conditional`}:n.hasLevelFlightNesting?Mq(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 jq(e){let t=new Set,n=new Set,r=!1,i=!1;for(let a of e){let e=Nq(a);if(e.type===Oq){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 Mq(e,t){let n={},r=[...t].sort((e,t)=>e-t);for(let t of e){let e=Nq(t);if(e.type===Oq&&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 Nq(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:Oq,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:Oq,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 Pq(e,t={}){if(typeof e==`number`)return e;if(e!=null){if(Array.isArray(e))return Fq(e,t);if(typeof e==`object`){if(e.level!==void 0&&t.level!==void 0)return Iq(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 Fq(e,t){for(let n of e){if(n.drawSizes&&t.drawSize&&n.drawSizes.includes(t.drawSize))return Pq(n,t);if(n.drawSize!==void 0&&t.drawSize!==void 0&&(n.threshold?t.drawSize>=n.drawSize:t.drawSize===n.drawSize))return Pq({...n,drawSize:void 0,drawSizes:void 0,threshold:void 0},t);if(n.drawSize===void 0&&n.drawSizes===void 0)return Pq(n,t)}}function Iq(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?Pq(n,t):typeof n==`number`?n:void 0}function Lq(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 Rq(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 zq(e){return e==null?`--`:e.toLocaleString()}var Bq=[1,2,4,8,16,32,64,128],Vq=`font-size:0.8rem;margin-bottom:0;border-collapse:collapse`,Hq=`width:3.5rem;text-align:center`;function Uq(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=bq(),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=Aq(i),o=Object.keys(i).map(Number).sort((e,t)=>e-t);a.type===`flat`?Wq(n,o,i,r.readonly,e,t):a.type===`level-columns`?Gq(n,o,i,a.levels,r.readonly,e,t):Kq(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 Wq(e,t,n,r,i,a){let o=document.createElement(`table`);o.style.cssText=Vq;let s=document.createElement(`thead`),c=document.createElement(`tr`);qq(c,`Pos`,Hq),qq(c,`Points`,`text-align:right`),r||qq(c,``,`width:2rem`),s.appendChild(c),o.appendChild(s);let l=document.createElement(`tbody`);for(let e of t){let t=document.createElement(`tr`);Jq(t,e);let o=document.createElement(`td`);o.style.cssText=`text-align:right;padding:2px 4px`,r?(o.style.fontVariantNumeric=`tabular-nums`,o.textContent=zq(typeof n[e]==`number`?n[e]:Pq(n[e]))):o.appendChild(Xq(typeof n[e]==`number`?n[e]:Pq(n[e])??0,t=>i.setFlatPositionPoints(a,e,t))),t.appendChild(o),r||Yq(t,()=>i.removePositionRow(a,e)),l.appendChild(t)}o.appendChild(l),e.appendChild(o),r||Zq(e,t,i,a)}function Gq(e,t,n,r,i,a,o){let s=document.createElement(`table`);s.style.cssText=Vq;let c=document.createElement(`thead`),l=document.createElement(`tr`);qq(l,`Pos`,Hq);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=yq(),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||qq(l,``,`width:2rem`),c.appendChild(l),s.appendChild(c);let u=document.createElement(`tbody`);for(let e of t){let t=document.createElement(`tr`);Jq(t,e);for(let s of r){let r=document.createElement(`td`);r.style.cssText=`text-align:right;padding:2px 4px`;let c=Pq(n[e],{level:s});i?(r.style.fontVariantNumeric=`tabular-nums`,r.textContent=zq(c),c===void 0&&(r.style.color=`var(--sp-muted)`)):r.appendChild(Xq(c??0,t=>a.setLevelPositionPoints(o,e,s,t))),t.appendChild(r)}i||Yq(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),Qq(n,t,a,o),e.appendChild(n)}}function Kq(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=Vq;let o=document.createElement(`thead`),s=document.createElement(`tr`);if(qq(s,`Pos`,Hq),r.type===`flight-columns`)for(let e of r.flights)qq(s,`F${e}`,`text-align:right;min-width:3.5rem`);else qq(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`);Jq(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=Pq(i,{flight:e});n.textContent=zq(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=zq(Pq(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 qq(e,t,n){let r=document.createElement(`th`);r.textContent=t,r.style.cssText=n+`;padding:2px 4px`,e.appendChild(r)}function Jq(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=kq(t),e.appendChild(n)}function Yq(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=yq(),r.textContent=`×`,r.title=`Remove position`,r.style.cursor=`pointer`,r.addEventListener(`click`,t),n.appendChild(r),e.appendChild(n)}function Xq(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 Zq(e,t,n,r){let i=document.createElement(`div`);i.style.cssText=`display:flex;gap:8px;margin-top:6px;flex-wrap:wrap`,Qq(i,t,n,r),e.appendChild(i)}function Qq(e,t,n,r){let i=new Set(t),a=Bq.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=kq(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 $q(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=aq();let i=document.createElement(`div`);i.className=oq(),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))):s===void 0?i&&(a.style.display=`none`,o.style.display=``,o.textContent=(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(` | `)}).join(`; `)):(a.style.display=`none`,o.style.display=``,o.textContent=`${zq(Pq(s))} pts/win (complex)`),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 eJ(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(kq).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=yq(),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 tJ(e){let t=document.createElement(`div`);t.style.cssText=`display:inline-flex;gap:0.25rem;flex-wrap:wrap;margin-bottom:0`;let n=Rq(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 nJ=[{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}],rJ=[[`maxDrawSize`,`Max draw size`],[`maxLevel`,`Max level`],[`priority`,`Priority`],[`participationOrder`,`Participation order`]];function iJ(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 nJ){let t=a[e.field]??[];o&&!t.length||i.appendChild(s(e,t,o))}for(let[n,r]of rJ){let s=a[n];if(o&&s===void 0)continue;let c=document.createElement(`div`);c.className=aq();let l=document.createElement(`div`);if(l.className=oq(),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=cq(),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=nJ.map(e=>n?.[e.field]??[]),i=rJ.map(([e])=>n?.[e]),o=JSON.stringify([r,i,e.readonly]);o!==a&&(a=o,c(e))}return{element:n,update:l}}function aJ(e,t){let n=document.createElement(`div`);n.className=pq();let r=document.createElement(`div`);r.className=mq();let i=document.createElement(`span`);i.className=nq(),i.style.flexShrink=`0`,r.appendChild(i);let a=document.createElement(`input`);a.type=`text`,a.className=hq(),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=_q();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=yq(),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=gq();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=Uq(e,t);d.appendChild(p.element);let m=$q(e,t);d.appendChild(m.element);let h=eJ(e,t);d.appendChild(h.element);let g=iJ(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=tJ(r);if(y.style.flexGrow=`1`,o.appendChild(y),s.textContent=l?``:Lq(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 oJ(e,t){let n=document.createElement(`div`);n.className=xq();let r=Eq(e),i=wq(e),a=Cq(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=eq();let c=document.createElement(`div`);c.className=tq();let l=document.createElement(`span`);l.className=nq();let u=document.createElement(`span`);u.textContent=t.label;let d=document.createElement(`span`);d.className=rq(),c.appendChild(l),c.appendChild(u),c.appendChild(d),c.addEventListener(`click`,()=>e.toggleSection(t.id));let f=document.createElement(`div`);f.className=iq(),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=aJ(e,t);c.push(s),r.appendChild(s.element),a++}if(!a){let e=document.createElement(`div`);e.className=bq(),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 sJ=class e{constructor(e){this.container=null,this.store=new $K(e),this.panel=oJ(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=new e({initialPolicy:t.initialData,onChange:e=>t.onChange(e),readonly:t.readonly});return{element:n.panel.element,setData(e){n.setData(e)},getData(){return n.getData()},destroy(){n.destroy()}}}};function cJ(e){return lJ[e]??e}var lJ={"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 uJ(){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 dJ(e){return structuredClone(e)}var fJ=class{constructor(e){this.listeners=new Set,this.config=e,this.state={draft:dJ(e.initialPolicy??uJ()),expandedSections:new Set([`modificationFlags`,`dailyLimits`,`defaultTimes`,`averageTimes`,`recoveryTimes`]),dirty:!1}}getState(){return this.state}getData(){return dJ(this.state.draft)}setData(e){this.state={...this.state,draft:dJ(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=dJ(this.state.draft);n.allowModificationWhenMatchUpsScheduled||={courts:!1,venues:!1},n.allowModificationWhenMatchUpsScheduled[e]=t,this.commitDraft(n)}setDailyLimit(e,t){let n=dJ(this.state.draft);n.defaultDailyLimits||={},n.defaultDailyLimits[e]=t,this.commitDraft(n)}setDefaultAverageTime(e,t,n){let r=dJ(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=dJ(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=dJ(this.state.draft);e.matchUpAverageTimes||=[],e.matchUpAverageTimes.push({matchUpFormatCodes:[],averageTimes:[{categoryNames:[],minutes:{default:60}}]}),this.commitDraft(e)}removeAverageFormatGroup(e){let t=dJ(this.state.draft);t.matchUpAverageTimes&&(t.matchUpAverageTimes.splice(e,1),this.commitDraft(t))}setAverageFormatCodes(e,t){let n=dJ(this.state.draft),r=n.matchUpAverageTimes?.[e];r&&(r.matchUpFormatCodes=t,this.commitDraft(n))}setAverageTime(e,t,n,r){let i=dJ(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=dJ(this.state.draft),n=t.matchUpAverageTimes?.[e];n&&(n.averageTimes.push({categoryTypes:[],minutes:{default:60}}),this.commitDraft(t))}removeAverageCategoryOverride(e,t){let n=dJ(this.state.draft),r=n.matchUpAverageTimes?.[e];r&&(r.averageTimes.splice(t,1),this.commitDraft(n))}setAverageOverrideCategories(e,t,n,r){let i=dJ(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=dJ(this.state.draft);e.matchUpRecoveryTimes||=[],e.matchUpRecoveryTimes.push({matchUpFormatCodes:[],recoveryTimes:[{categoryNames:[],minutes:{default:30}}]}),this.commitDraft(e)}removeRecoveryFormatGroup(e){let t=dJ(this.state.draft);t.matchUpRecoveryTimes&&(t.matchUpRecoveryTimes.splice(e,1),this.commitDraft(t))}setRecoveryFormatCodes(e,t){let n=dJ(this.state.draft),r=n.matchUpRecoveryTimes?.[e];r&&(r.matchUpFormatCodes=t,this.commitDraft(n))}setRecoveryTime(e,t,n,r){let i=dJ(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=dJ(this.state.draft),n=t.matchUpRecoveryTimes?.[e];n&&(n.recoveryTimes.push({categoryTypes:[],minutes:{default:30}}),this.commitDraft(t))}removeRecoveryCategoryOverride(e,t){let n=dJ(this.state.draft),r=n.matchUpRecoveryTimes?.[e];r&&(r.recoveryTimes.splice(t,1),this.commitDraft(n))}setRecoveryOverrideCategories(e,t,n,r){let i=dJ(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?.(dJ(e))}emit(){for(let e of this.listeners)e(this.state)}},pJ=()=>`se-section`,mJ=()=>`se-section-header`,hJ=()=>`se-section-chevron`,gJ=()=>`se-section-body`,_J=()=>`se-field-row`,vJ=()=>`se-field-label`,yJ=()=>`se-field-input`,bJ=()=>`se-field-unit`,xJ=()=>`se-checkbox-row`,SJ=()=>`se-format-group`,CJ=()=>`se-format-group-header`,wJ=()=>`se-format-group-label`,TJ=()=>`se-tag-picker`,EJ=()=>`sp-chip`,DJ=()=>`sp-chip__remove`,OJ=()=>`se-tag-add-wrap`,kJ=()=>`sp-btn-icon`,AJ=()=>`se-override-row`,jJ=()=>`se-override-categories`,MJ=()=>`se-override-remove`,NJ=()=>`sp-btn sp-btn--sm sp-btn--outline se-add-btn`,PJ=()=>`sp-btn-icon sp-btn-icon--danger`,FJ=()=>`se-editor`;function IJ(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=xJ();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=xJ();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 LJ=`is-success`,RJ=`is-danger`;function zJ(e){if(e===``)return!0;let t=parseInt(e,10);return!isNaN(t)&&t>=0&&String(t)===e.trim()}function BJ(e,t){if(t===``){e.classList.remove(LJ,RJ);return}zJ(t)?(e.classList.remove(RJ),e.classList.add(LJ)):(e.classList.remove(LJ),e.classList.add(RJ))}function VJ(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=_J();let o=document.createElement(`div`);o.className=vJ(),o.textContent=i;let s=document.createElement(`input`);s.type=`text`,s.className=yJ(),s.placeholder=`0`,s.addEventListener(`input`,()=>{BJ(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 HJ=`is-success`,UJ=`is-danger`;function WJ(e){if(e===``)return!0;let t=parseInt(e,10);return!isNaN(t)&&t>=0&&String(t)===e.trim()}function GJ(e,t,n){if(t===``&&n){e.classList.remove(HJ,UJ);return}WJ(t)&&(t!==``||n)?(e.classList.remove(UJ),e.classList.add(HJ)):(e.classList.remove(HJ),e.classList.add(UJ))}function KJ(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=qJ(`Default`,`min`,!1),i=qJ(`Doubles override`,`min`,!0);t.appendChild(r.row),t.appendChild(i.row),r.input.addEventListener(`input`,()=>{GJ(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`,()=>{GJ(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=qJ(`Default`,`min`,!1),c=qJ(`Doubles override`,`min`,!0);t.appendChild(s.row),t.appendChild(c.row),s.input.addEventListener(`input`,()=>{GJ(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`,()=>{GJ(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 qJ(e,t,n){let r=document.createElement(`div`);r.className=_J();let i=document.createElement(`div`);i.className=vJ(),i.textContent=e;let a=document.createElement(`input`);a.type=`text`,a.className=yJ(),a.placeholder=n?`—`:`0`;let o=document.createElement(`div`);return o.className=bJ(),o.textContent=t,r.appendChild(i),r.appendChild(a),r.appendChild(o),{row:r,input:a}}var JJ=`is-success`,YJ=`is-danger`;function XJ(e){if(e===``)return!0;let t=parseInt(e,10);return!isNaN(t)&&t>=0&&String(t)===e.trim()}function ZJ(e,t,n){if(t===``&&n){e.classList.remove(JJ,YJ);return}XJ(t)&&(t!==``||n)?(e.classList.remove(YJ),e.classList.add(JJ)):(e.classList.remove(JJ),e.classList.add(YJ))}function QJ(e){let t=document.createElement(`div`);t.className=SJ();let n=document.createElement(`div`);n.className=CJ();let r=document.createElement(`div`);r.style.flex=`1`;let i=document.createElement(`div`);i.className=wJ(),i.textContent=`Formats`,r.appendChild(i);let a=document.createElement(`div`);a.className=TJ();for(let t of e.formatCodes){let n=document.createElement(`span`);n.className=EJ(),n.title=`${t} — click to edit`;let r=document.createElement(`span`);r.textContent=cJ(t),n.addEventListener(`click`,()=>{Va({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=DJ(),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=OJ();let s=document.createElement(`button`);s.className=kJ(),s.textContent=`+`,s.type=`button`,s.title=`Add format code`,s.addEventListener(`click`,t=>{t.stopPropagation(),Va({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=PJ(),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=AJ();let a=document.createElement(`div`);a.className=`${jJ()}${r.isDefault?` all`:``}`,a.textContent=r.categoryLabel;let o=document.createElement(`input`);o.type=`text`,o.className=yJ(),o.value=String(r.defaultMinutes),o.placeholder=`0`;let s=n;o.addEventListener(`input`,()=>{ZJ(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=bJ(),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=yJ(),u.value=r.doublesMinutes===void 0?``:String(r.doublesMinutes),u.placeholder=`—`,u.addEventListener(`input`,()=>{ZJ(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=MJ(),t.textContent=`×`,t.addEventListener(`click`,()=>e.onRemoveOverride(s)),i.appendChild(t)}t.appendChild(i)}let l=document.createElement(`button`);return l.className=NJ(),l.textContent=`+ Add Override`,l.type=`button`,l.addEventListener(`click`,()=>e.onAddOverride()),t.appendChild(l),t}function $J(e,t){let n=document.createElement(`div`),r=document.createElement(`div`);n.appendChild(r);let i=document.createElement(`button`);i.className=NJ(),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=QJ({formatCodes:a.matchUpFormatCodes,overrides:o,availableFormats:t.matchUpFormatCodes??eY(),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 eY(){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 tY(e,t){let n=document.createElement(`div`),r=document.createElement(`div`);n.appendChild(r);let i=document.createElement(`button`);i.className=NJ(),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=QJ({formatCodes:a.matchUpFormatCodes,overrides:o,availableFormats:t.matchUpFormatCodes??nY(),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 nY(){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 rY(e,t){let n=document.createElement(`div`);n.className=FJ();let r=[{id:`modificationFlags`,label:`Modification Flags`,factory:()=>IJ(e)},{id:`dailyLimits`,label:`Daily Limits`,factory:()=>VJ(e)},{id:`defaultTimes`,label:`Default Times`,factory:()=>KJ(e)},{id:`averageTimes`,label:`Match Average Times`,factory:()=>$J(e,t)},{id:`recoveryTimes`,label:`Match Recovery Times`,factory:()=>tY(e,t)}],i=[];for(let t of r){let r=document.createElement(`div`);r.className=pJ();let a=document.createElement(`div`);a.className=mJ();let o=document.createElement(`span`);o.className=hJ();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=gJ();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 iY=class e{constructor(e){this.container=null,this.store=new fJ(e),this.panel=rY(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=new e({initialPolicy:t.initialData,onChange:e=>t.onChange(e)});return{element:n.panel.element,setData(e){n.setData(e)},getData(){return n.getData()},destroy(){n.destroy()}}}};function aY(e,t){let n=new iY(e);return n.render(t),n}var oY=pa,sY=(()=>{let e=new Map;for(let t of oY)t.format&&e.set(t.format,t);return e})();function cY(e){if(e)return sY.get(e)}var lY=oY.filter(e=>e.format&&e.name).sort((e,t)=>(e.name??``).localeCompare(t.name??``));function uY(e){return typeof e==`string`?e:e.matchUpFormat}function dY(e){return(typeof e==`string`?``:e.name??``)||(cY(uY(e))?.name??``)}function fY(e){return(typeof e==`string`?``:e.description??``)||(cY(uY(e))?.desc??``)}function pY(e){return typeof e==`string`?{matchUpFormat:e}:{...e}}var mY=`SET3-S:6/TB7`;function hY(){return{defaultMatchUpFormat:mY,matchUpFormats:[],requireParticipantsForScoring:!1,allowChangePropagation:!1,allowDeletionWithScoresPresent:{drawDefinitions:!1,structures:!1},matchUpStatusCodes:{ABANDONED:[],CANCELLED:[],DEFAULTED:[],INCOMPLETE:[],RETIRED:[],WALKOVER:[]}}}function gY(e){return structuredClone(e)}var _Y=class{constructor(e){this.listeners=new Set,this.config=e,this.state={draft:gY(e.initialPolicy??hY()),expandedSections:new Set([`defaults`,`allowedFormats`]),expandedStatuses:new Set,advancedOpen:!1,dirty:!1}}isReadonly(){return this.config.readonly===!0}getState(){return this.state}getData(){return gY(this.state.draft)}setData(e){this.state={...this.state,draft:gY(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=gY(this.state.draft);t.defaultMatchUpFormat=e,this.commitDraft(t)}setRequireParticipants(e){if(this.isReadonly())return;let t=gY(this.state.draft);t.requireParticipantsForScoring=e,this.commitDraft(t)}setRequireAllPositions(e){if(this.isReadonly())return;let t=gY(this.state.draft);e==="default"?delete t.requireAllPositionsAssigned:t.requireAllPositionsAssigned=e===`true`,this.commitDraft(t)}setAllowChangePropagation(e){if(this.isReadonly())return;let t=gY(this.state.draft);t.allowChangePropagation=e,this.commitDraft(t)}setAllowDeletionDraws(e){if(this.isReadonly())return;let t=gY(this.state.draft);t.allowDeletionWithScoresPresent??={},t.allowDeletionWithScoresPresent.drawDefinitions=e,this.commitDraft(t)}setAllowDeletionStructures(e){if(this.isReadonly())return;let t=gY(this.state.draft);t.allowDeletionWithScoresPresent??={},t.allowDeletionWithScoresPresent.structures=e,this.commitDraft(t)}addAllowedFormat(e){if(this.isReadonly())return;let t=gY(this.state.draft);t.matchUpFormats??=[];let n={matchUpFormat:``,...e};t.matchUpFormats.push(n),this.commitDraft(t)}removeAllowedFormat(e){if(this.isReadonly())return;let t=gY(this.state.draft);t.matchUpFormats&&(t.matchUpFormats.splice(e,1),this.commitDraft(t))}setAllowedFormatField(e,t,n){if(this.isReadonly())return;let r=gY(this.state.draft);if(!r.matchUpFormats?.[e])return;let i=pY(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&&uY(e)===n):!1}addAllowedFormatCategory(e,t,n){if(this.isReadonly())return;let r=n.trim();if(!r)return;let i=gY(this.state.draft);if(!i.matchUpFormats?.[e])return;let a=pY(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=gY(this.state.draft),i=r.matchUpFormats?.[e];if(!i)return;let a=pY(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=gY(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=gY(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=gY(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=gY(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?.(gY(e))}emit(){for(let e of this.listeners)e(this.state)}},vY=`__custom__`,yY=`standard`,bY=`tiebreak`,xY=`timed`,SY=`sc-format-row`,CY=`sc-format-label`,wY=`sc-format-select`;function TY(){return{bestOf:3,setType:yY,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 EY(e){let n=TY(),r=t.matchUpFormatCode.parse?.(e);return r?(typeof r.bestOf==`number`&&(n.bestOf=r.bestOf),r.setFormat&&DY(n,r.setFormat),r.finalSetFormat&&OY(n,r.finalSetFormat),n):n}function DY(e,t){if(t.timed){e.setType=xY,typeof t.minutes==`number`&&(e.minutes=t.minutes),e.timedBasis=t.based===`P`?`P`:`G`;return}if(t.tiebreakSet){e.setType=bY,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=yY,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 OY(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 kY(e){let t={bestOf:e.bestOf};if(e.setType===xY)t.setFormat={timed:!0,minutes:e.minutes},e.timedBasis===`P`&&(t.setFormat.based=`P`);else if(e.setType===bY)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&&(e.finalKind===`matchTiebreak`?t.finalSetFormat={tiebreakSet:{tiebreakTo:e.finalMatchTbTo}}:t.finalSetFormat={setTo:e.finalSetTo,tiebreakAt:e.finalSetTo,tiebreakFormat:{tiebreakTo:e.finalTbTo}}),t}function AY(e){try{return t.matchUpFormatCode.stringify?.(e)}catch{return}}function jY(e){return e?!!t.matchUpFormatCode.parse?.(e):!1}function MY(e){let t=e.initialValue||`SET3-S:6/TB7`,n=EY(t),r=document.createElement(`div`);r.className=`sc-format-picker`;let i=document.createElement(`div`);i.className=SY;let a=document.createElement(`label`);a.textContent=`Preset`,a.className=CY;let o=document.createElement(`select`);o.className=wY;for(let e of lY){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=vY,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=CY;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=EY(r)),v(),p&&y(),e.onChange(r)}function v(){let e=cY(t);e?.format?(o.value=e.format,c.style.display=`none`):(o.value=vY,c.style.display=``,u.value=t),h.textContent=t;let n=jY(t);g.textContent=n?`✓ valid`:`✗ invalid`,g.dataset.valid=n?`true`:`false`}o.addEventListener(`change`,()=>{let e=o.value;if(e===vY){c.style.display=``,u.value=t,u.focus();return}_(e)}),u.addEventListener(`input`,()=>{_(u.value,{skipBuilderResync:!0})});function y(){f.innerHTML=``,f.appendChild(NY(`Best of`,[1,3,5],n.bestOf,e=>{n.bestOf=e,b()})),f.appendChild(PY(`Set type`,[{value:yY,label:`Standard`},{value:bY,label:`Tiebreak set`},{value:xY,label:`Timed`}],n.setType,e=>{n.setType=e,b()})),n.setType===yY?(f.appendChild(NY(`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(FY(`Tiebreak at set end`,n.hasTiebreak,e=>{n.hasTiebreak=e,b()})),n.hasTiebreak&&f.appendChild(NY(`Tiebreak first to`,[5,7,10,12,15,21],n.tiebreakTo,e=>{n.tiebreakTo=e,b()})),f.appendChild(FY(`No-advantage games`,n.noAd,e=>{n.noAd=e,b()}))):n.setType===bY?(f.appendChild(NY(`First to`,[7,10,11,15,21],n.tbOnlyTo,e=>{n.tbOnlyTo=e,b()})),f.appendChild(PY(`Scoring`,[{value:``,label:`Sideout`},{value:`RALLY`,label:`Rally`}],n.tbOnlyModifier,e=>{n.tbOnlyModifier=e,b()})),f.appendChild(FY(`No-advantage`,n.tbOnlyNoAd,e=>{n.tbOnlyNoAd=e,b()}))):(f.appendChild(NY(`Minutes`,[10,15,20,25,30,45],n.minutes,e=>{n.minutes=e,b()})),f.appendChild(PY(`Basis`,[{value:`G`,label:`Games`},{value:`P`,label:`Points`}],n.timedBasis,e=>{n.timedBasis=e,b()}))),f.appendChild(FY(`Different final-set rules`,n.differentFinal,e=>{n.differentFinal=e,b()})),n.differentFinal&&(f.appendChild(PY(`Final set`,[{value:`standard`,label:`Standard set`},{value:`matchTiebreak`,label:`Match tiebreak`}],n.finalKind,e=>{n.finalKind=e,b()})),n.finalKind===`standard`?(f.appendChild(NY(`Final games to`,[4,6,8],n.finalSetTo,e=>{n.finalSetTo=e,b()})),f.appendChild(NY(`Final tiebreak to`,[7,10,12,15],n.finalTbTo,e=>{n.finalTbTo=e,b()}))):f.appendChild(NY(`Match tiebreak to`,[7,10,15,21],n.finalMatchTbTo,e=>{n.finalMatchTbTo=e,b()})))}function b(){let e=AY(kY(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=EY(r),v(),p&&y())},destroy(){r.remove()}}}function NY(e,t,n,r){let i=document.createElement(`div`);i.className=SY;let a=document.createElement(`label`);a.textContent=e,a.className=CY;let o=document.createElement(`select`);o.className=wY;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 PY(e,t,n,r){let i=document.createElement(`div`);i.className=SY;let a=document.createElement(`span`);a.textContent=e,a.className=CY;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 FY(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 IY(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=MY({initialValue:e.getData().defaultMatchUpFormat,readonly:e.isReadonly(),onChange:t=>e.setDefaultMatchUpFormat(t)});n.appendChild(a.element),t.appendChild(n);let o=LY({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=LY({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=LY({label:`Draw definitions`,help:``,initial:!!e.getData().allowDeletionWithScoresPresent?.drawDefinitions,readonly:e.isReadonly(),onChange:t=>e.setAllowDeletionDraws(t)}),h=LY({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 LY(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 RY(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 zY(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(BY(``)),r.appendChild(BY(`Name`)),r.appendChild(BY(`Format`)),r.appendChild(BY(`Description`)),r.appendChild(BY(``)),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 lY){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=lY.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=VY(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 BY(e){let t=document.createElement(`div`);return t.className=`sc-format-list-header-label`,t.textContent=e,t}function VY(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=UY(`Display name`,a),u=UY(`SET3-S:6/TB7`,a);u.classList.add(`sc-format-list-format-input`);let d=UY(`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 _=HY({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=HY({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=pY(e),n=dY(e),r=uY(e),i=fY(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 HY(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=RY({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 UY(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 WY=[`ABANDONED`,`CANCELLED`,`DEFAULTED`,`INCOMPLETE`,`RETIRED`,`WALKOVER`];function GY(e){let t=document.createElement(`div`);t.className=`sc-section-body-inner`;let n=WY.map(t=>KY(e,t));for(let r of n)t.appendChild(qY(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=RY({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 KY(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=RY({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 qY(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=JY(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 JY(e){return e.charAt(0)+e.slice(1).toLowerCase()}function YY(e){let t=document.createElement(`div`);t.className=`sc-editor`;let n=[{id:`defaults`,label:`Defaults`,factory:()=>IY(e)},{id:`allowedFormats`,label:`Allowed match-up formats`,factory:()=>zY(e)},{id:`statusCodes`,label:`Status code refinements`,factory:()=>GY(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 XY=class e{constructor(e){this.container=null,this.store=new _Y(e),this.panel=YY(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=new e({initialPolicy:t.initialData,readonly:t.readonly,onChange:e=>t.onChange(e)});return{element:n.panel.element,setData(e){n.setData(e)},getData(){return n.getData()},destroy(){n.destroy()}}}},ZY=[{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)`}],QY=[`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 $Y(){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 eX(e){return structuredClone(e)}var tX=class{constructor(e){this.listeners=new Set,this.config=e,this.state={draft:eX(e.initialPolicy??$Y()),expandedSections:new Set([`profile`,`flags`,`thresholds`,`drawTypeOverrides`]),dirty:!1}}getState(){return this.state}getData(){return eX(this.state.draft)}setData(e){this.state={...this.state,draft:eX(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=eX(this.state.draft);t.policyName=e,this.commitDraft(t)}setPositioning(e){let t=eX(this.state.draft);t.seedingProfile??={},t.seedingProfile.positioning=e,this.commitDraft(t)}setValidSeedPositionsIgnore(e){let t=eX(this.state.draft);t.validSeedPositions={ignore:e},this.commitDraft(t)}setDuplicateSeedNumbers(e){let t=eX(this.state.draft);t.duplicateSeedNumbers=e,this.commitDraft(t)}setDrawSizeProgression(e){let t=eX(this.state.draft);t.drawSizeProgression=e,this.commitDraft(t)}addThreshold(){let e=eX(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=eX(this.state.draft);t.seedsCountThresholds&&(t.seedsCountThresholds.splice(e,1),this.commitDraft(t))}setThresholdField(e,t,n){let r=eX(this.state.draft),i=r.seedsCountThresholds?.[e];i&&(i[t]=n,this.commitDraft(r))}sortThresholds(){let e=eX(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=eX(this.state.draft);n.seedingProfile??={},n.seedingProfile.drawTypes??={},n.seedingProfile.drawTypes[e]={positioning:t},this.commitDraft(n)}removeDrawTypeOverride(e){let t=eX(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=eX(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?.(eX(e))}emit(){for(let e of this.listeners)e(this.state)}},nX=()=>`sd-editor`,rX=()=>`sd-section`,iX=()=>`sd-section-header`,aX=()=>`sd-section-chevron`,oX=()=>`sd-section-body`,sX=()=>`sd-field-row`,cX=()=>`sd-field-label`,lX=()=>`sd-field-input`,uX=()=>`sd-checkbox-row`,dX=()=>`sd-checkbox-desc`,fX=()=>`sd-radio-group`,pX=()=>`sd-radio-option`,mX=()=>`sp-btn sp-btn--sm sp-btn--outline sd-add-btn`,hX=()=>`sp-btn sp-btn--sm sp-btn--ghost sd-sort-btn`,gX=()=>`sp-btn-icon sp-btn-icon--danger sd-remove-btn`,_X=()=>`sd-table-wrap`,vX=()=>`sd-table`,yX=()=>`sd-number-cell-input`,bX=()=>`sd-empty`,xX=()=>`sd-actions-row`,SX=()=>`sd-override-row`,CX=()=>`sd-override-add-row`,wX=()=>`sd-override-drawtype`,TX=()=>`sd-select`;function EX(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=sX();let r=document.createElement(`div`);r.className=cX(),r.textContent=`Policy name`;let i=document.createElement(`input`);i.type=`text`,i.className=lX()+` 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=sX()+` sd-field-row--top`;let o=document.createElement(`div`);o.className=cX(),o.textContent=`Default positioning`,a.appendChild(o);let s=document.createElement(`div`);s.className=fX();let c=[];for(let t of ZY){let n=document.createElement(`label`);n.className=pX();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 DX(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=uX();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=dX(),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 OX=[{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 kX(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=_X();let r=document.createElement(`table`);r.className=vX();let i=document.createElement(`thead`),a=document.createElement(`tr`);for(let e of OX){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=bX(),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=xX();let u=document.createElement(`button`);u.type=`button`,u.className=mX(),u.textContent=`+ Add threshold`,u.addEventListener(`click`,()=>e.addThreshold());let d=document.createElement(`button`);d.type=`button`,d.className=hX(),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 OX){let a=document.createElement(`td`),o=document.createElement(`input`);o.type=`number`,o.min=String(n.min),o.className=yX(),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=gX(),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 AX(e,t){let n=document.createElement(`select`);n.className=TX();for(let e of ZY){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 jX(e,t){let n=document.createElement(`div`),r=t.drawTypes??QY,i=document.createElement(`div`);n.appendChild(i);let a=document.createElement(`div`);a.className=bX(),a.textContent=`No draw-type overrides. The default positioning is used for every drawType.`,n.appendChild(a);let o=document.createElement(`div`);o.className=CX();let s=document.createElement(`select`);s.className=TX();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=AX(`WATERFALL`,()=>{}),u=document.createElement(`button`);u.type=`button`,u.className=mX(),u.textContent=`+ Add override`,u.addEventListener(`click`,()=>{let t=s.value;t&&e.addDrawTypeOverride(t,l.value)});let d=document.createElement(`div`);d.className=xX(),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=SX();let a=document.createElement(`div`);a.className=wX(),a.textContent=t;let o=AX(n,n=>e.setDrawTypeOverridePositioning(t,n)),s=document.createElement(`button`);s.type=`button`,s.className=gX(),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 MX(e,t){let n=document.createElement(`div`);n.className=nX();let r=[{id:`profile`,label:`Profile`,factory:()=>EX(e)},{id:`flags`,label:`Flags`,factory:()=>DX(e)},{id:`thresholds`,label:`Seed Count Thresholds`,factory:()=>kX(e)},{id:`drawTypeOverrides`,label:`Draw Type Overrides`,factory:()=>jX(e,t)}],i=[];for(let t of r){let r=document.createElement(`div`);r.className=rX();let a=document.createElement(`div`);a.className=iX();let o=document.createElement(`span`);o.className=aX();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=oX();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 NX=class e{constructor(e){this.container=null,this.store=new tX(e),this.panel=MX(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=new e({initialPolicy:t.initialData,onChange:e=>t.onChange(e)});return{element:n.panel.element,setData(e){n.setData(e)},getData(){return n.getData()},destroy(){n.destroy()}}}},PX=()=>`pc-layout`,FX=()=>`pc-panel`,IX=()=>`pc-panel-header`,LX=()=>`pc-panel-title`,RX=()=>`pc-panel-meta`,zX=()=>`pc-toolbar`,BX=()=>`pc-input`,VX=()=>`pc-select`,HX=()=>`pc-catalog`,UX=()=>`pc-group`,WX=()=>`pc-group-header`,GX=()=>`pc-group-chevron`,KX=()=>`pc-group-body`,qX=()=>`pc-card`,JX=()=>`pc-card-title`,YX=()=>`pc-card-meta`,XX=()=>`pc-type-badge`,ZX=()=>`pc-editor`,QX=()=>`pc-editor-header`,$X=()=>`pc-editor-header-left`,eZ=()=>`pc-editor-actions`,tZ=()=>`sp-btn sp-btn--sm`,nZ=()=>`sp-btn sp-btn--sm sp-btn--accent`,rZ=()=>`pc-dirty-dot`,iZ=()=>`pc-editor-body`,aZ=()=>`pc-empty`,oZ=()=>`pc-json-editor`,sZ=()=>`pc-json-error`;function cZ(e){let t=document.createElement(`div`);t.className=PX(),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 lZ=`scheduling`,uZ=`scoring`,dZ=`seeding`,fZ=`draws`,pZ=`avoidance`,mZ=`feedIn`,hZ=`progression`,gZ=`roundNaming`,_Z=`positionActions`,vZ=`matchUpActions`,yZ=`roundRobinTally`,bZ=`rankingPoints`,xZ=`competitiveBands`,SZ=`voluntaryConsolation`,CZ=`participant`,wZ=`display`,TZ=`audit`,EZ=`Tournament Operations`,DZ=`Scoring & Results`,OZ=`Ranking Points`,kZ=`Draw Configuration`,AZ=`Participants`,jZ=`Display & Audit`,MZ=(e,t,n,r,i)=>({policyType:e,label:t,description:n,group:r,hasEditor:i}),NZ=[MZ(lZ,`Scheduling`,`Match scheduling, average times, recovery times, daily limits`,EZ,!0),MZ(_Z,`Position Actions`,`Allowed position actions (alternates, walkovers, withdrawals)`,EZ,!1),MZ(vZ,`MatchUp Actions`,`Allowed matchUp status transitions and actions`,EZ,!1),MZ(pZ,`Avoidance`,`Draw placement avoidance rules (club, nationality, region)`,EZ,!1),MZ(uZ,`Scoring`,`Score entry validation and completion rules`,DZ,!0),MZ(yZ,`Round Robin Tally`,`Round-robin group standing calculation method`,DZ,!1),MZ(bZ,`Ranking Points`,`Point allocation by draw size, round, and result`,OZ,!0),MZ(xZ,`Competitive Bands`,`Rating/ranking band definitions for competitive grouping`,DZ,!1),MZ(fZ,`Draws`,`Draw generation rules and structure options`,kZ,!1),MZ(dZ,`Seeding`,`Seeding thresholds and placement rules by draw size`,kZ,!0),MZ(mZ,`Feed-In`,`Feed-in consolation structure rules`,kZ,!1),MZ(hZ,`Progression`,`Player progression between draw structures`,kZ,!1),MZ(SZ,`Voluntary Consolation`,`Voluntary consolation entry rules`,kZ,!1),MZ(gZ,`Round Naming`,`Custom round name labels (QF, SF, F, etc.)`,kZ,!1),MZ(CZ,`Participant`,`Participant display and data rules`,AZ,!1),MZ(wZ,`Display`,`Client display configuration (public vs admin views)`,jZ,!1),MZ(TZ,`Audit`,`Audit trail and change logging configuration`,jZ,!1)];function PZ(e){return NZ.find(t=>t.policyType===e)}function FZ(e){return e===`rankingPoints`?QK():e===`scheduling`?uJ():e===`scoring`?hY():e===`seeding`?$Y():{}}var IZ=[EZ,DZ,OZ,kZ,AZ,jZ];function LZ(e,t){let n=t.toLowerCase().trim();return n?e.filter(e=>{let t=PZ(e.policyType);return[e.name,e.description,e.policyType,t?.label??``,e.source].join(` `).toLowerCase().includes(n)}):e}function RZ(e,t){let n=new Map;if(t===`type`){for(let e of IZ)n.set(e,[]);for(let t of e){let e=PZ(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 zZ(e){let t=document.createElement(`div`);t.className=FX(),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=IX();let a=document.createElement(`div`);a.className=LX(),a.textContent=`Policy Catalog`;let o=document.createElement(`div`);o.className=RX(),i.appendChild(a),i.appendChild(o),t.appendChild(i);let s=document.createElement(`div`);s.className=zX();let c=document.createElement(`input`);c.type=`text`,c.placeholder=`Search policies...`,c.className=BX(),c.addEventListener(`input`,()=>e.onSearchChange(c.value));let l=document.createElement(`select`);l.className=VX();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=NZ.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=HX(),t.appendChild(m);function h(t){r=t;let i=LZ(t.catalog,t.searchQuery),a=RZ(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=UX();let s=n.has(i),c=document.createElement(`div`);c.className=WX();let l=document.createElement(`span`);l.className=GX(),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=KX(),s&&(d.style.display=`none`);for(let n of o){let r=document.createElement(`div`);r.className=qX(),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=JX(),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=YX();let s=PZ(n.policyType),c=document.createElement(`span`);c.className=XX(),c.textContent=s?.label??n.policyType;let l=document.createElement(`span`);l.className=`${XX()} ${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 BZ(e){return structuredClone(e)}var VZ=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:BZ(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:BZ(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:BZ(e.policyData),editedName:e.name,dirty:!1})}applyPolicy(){let e=this.getSelectedItem();if(!e)return;let t={...e,policyData:this.state.editorDraft?BZ(this.state.editorDraft):BZ(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:FZ(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:BZ(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:BZ(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 HZ(e){let t=document.createElement(`div`);t.className=FX();let n=document.createElement(`div`);n.className=ZX();let r=document.createElement(`div`);r.className=QX();let i=document.createElement(`div`);i.className=$X();let a=document.createElement(`div`);a.className=LX();let o=document.createElement(`input`);o.type=`text`,o.className=`${LX()} 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=XX();let c=document.createElement(`span`);c.className=XX(),c.textContent=`read-only`,c.style.display=`none`;let l=document.createElement(`div`);l.className=rZ(),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=eZ();let d=document.createElement(`button`);d.className=tZ(),d.textContent=`Reset`,d.addEventListener(`click`,()=>e.onReset());let f=document.createElement(`button`);f.className=nZ(),f.textContent=`Save`,f.addEventListener(`click`,()=>e.onSave());let p=document.createElement(`button`);p.className=tZ(),p.textContent=`Apply`,p.addEventListener(`click`,()=>e.onApply());let m=document.createElement(`button`);m.className=tZ(),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=eZ();let g=document.createElement(`button`);g.className=nZ(),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=iZ(),n.appendChild(r),n.appendChild(_);let v=document.createElement(`div`);v.className=aZ(),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),s.textContent=PZ(r.policyType)?.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 UZ(e){let t=document.createElement(`div`);t.className=oZ();let n=document.createElement(`textarea`);n.value=JSON.stringify(e.initialData,null,2);let r=document.createElement(`div`);r.className=sZ(),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 WZ=class{constructor(e){this.currentEditor=null,this.container=null,this.store=new VZ(e);let t=zZ({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=HZ({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=cZ({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};e.policyType===`scheduling`?this.currentEditor=iY.createEditorInstance(n):e.policyType===`rankingPoints`?this.currentEditor=sJ.createEditorInstance(n):e.policyType===`seeding`?this.currentEditor=NX.createEditorInstance(n):e.policyType===`scoring`?this.currentEditor=XY.createEditorInstance(n):this.currentEditor=UZ(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 GZ(e,t,n,r){e!==void 0&&e<0&&r.push({severity:`error`,path:t,message:n})}function KZ(e,t){if(!e.defaultTimes)return;let n=e.defaultTimes.averageTimes;if(n)for(let e=0;e<n.length;e++)GZ(n[e].minutes.default,`defaultTimes.averageTimes[${e}].minutes.default`,`Default average time must be non-negative`,t),GZ(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++)GZ(r[e].minutes.default,`defaultTimes.recoveryTimes[${e}].minutes.default`,`Default recovery time must be non-negative`,t)}function qZ(e,t){if(!e.defaultDailyLimits)return;let n=e.defaultDailyLimits;GZ(n.SINGLES,`defaultDailyLimits.SINGLES`,`Singles daily limit must be non-negative`,t),GZ(n.DOUBLES,`defaultDailyLimits.DOUBLES`,`Doubles daily limit must be non-negative`,t),GZ(n.total,`defaultDailyLimits.total`,`Total daily limit must be non-negative`,t)}function JZ(e){let t=[];return KZ(e,t),qZ(e,t),e.matchUpAverageTimes&&YZ(e.matchUpAverageTimes,`matchUpAverageTimes`,`averageTimes`,t),e.matchUpRecoveryTimes&&XZ(e.matchUpRecoveryTimes,`matchUpRecoveryTimes`,t),ZZ(e,t),t}function YZ(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++)GZ(o[e].minutes.default,`${t}[${i}].${n}[${e}].minutes.default`,`Time must be non-negative`,r),GZ(o[e].minutes.DOUBLES,`${t}[${i}].${n}[${e}].minutes.DOUBLES`,`Doubles time must be non-negative`,r)}}function XZ(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++)GZ(i.recoveryTimes[e].minutes.default,`${t}[${r}].recoveryTimes[${e}].minutes.default`,`Recovery time must be non-negative`,n),GZ(i.recoveryTimes[e].minutes.DOUBLES,`${t}[${r}].recoveryTimes[${e}].minutes.DOUBLES`,`Doubles recovery time must be non-negative`,n)}}function ZZ(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 QZ(e,t){let n=new WZ(e);return n.render(t),n}e.AvailabilityGrid=Bz,e.COMPETITIVENESS_BUCKETS=Mv,e.COMPETITIVENESS_COLORS=lM,e.COURT_SVG_RESOURCE_SUB_TYPE=dh,e.CompositionEditorStore=dG,e.DEFAULT_COMPETITIVE_BANDS=sM,e.DEFAULT_COURT_CARD_CONFIG=M_,e.DEFAULT_DRAW_CARD_CONFIG=Xv,e.DEFAULT_EVENT_CARD_CONFIG=Hy,e.DEFAULT_SCHEDULE_CELL_CONFIG=UW,e.DEFAULT_TOURNAMENT_CARD_CONFIG=kh,e.DEFAULT_VENUE_CARD_CONFIG=Hg,e.DrawStateManager=Gx,e.EVENT_CARD_LIGHT_MODE_THRESHOLD=Uy,e.InlineScoringManager=hs,e.MATCH_FORMATS=Px,e.NEUTRAL_SEGMENT_COLOR=uM,e.POLICY_TYPE_GROUPS=IZ,e.POLICY_TYPE_METADATA=NZ,e.PolicyCatalogControl=WZ,e.PolicyCatalogStore=VZ,e.ProfileStore=nI,e.SchedulePageControl=xW,e.SchedulePageStore=bW,e.SchedulingEditorControl=iY,e.SchedulingEditorStore=fJ,e.SchedulingProfileControl=hI,e.TopologyBuilderControl=BH,e.TopologyStore=zB,e.activateScheduleCellTypeAhead=lG,e.aggregateCompetitiveness=Fv,e.applyDropCommit=KF,e.badmintonCourt=lh,e.barButton=WN,e.baseballDiamond=oh,e.basketballCourt=ah,e.buildActiveStripPanel=BW,e.buildCardSkeleton=Oh,e.buildCompetitivenessBar=Rv,e.buildCompetitivenessDonut=Yv,e.buildCourtCard=Q_,e.buildCourtGridSlot=yW,e.buildCourtSkeletonCard=mv,e.buildDateStrip=pI,e.buildDrawCard=gy,e.buildDrawSkeletonCard=Fy,e.buildEdgeEditor=PV,e.buildEditorShell=HZ,e.buildEventCard=gb,e.buildEventSkeletonCard=Pb,e.buildHiveIDLogin=Ox,e.buildInteractiveScoringShell=KK,e.buildIssueIndex=WF,e.buildIssuesPanel=OF,e.buildJsonEditor=UZ,e.buildLadderChart=FN,e.buildMatchUpCard=dW,e.buildMatchUpCatalog=mW,e.buildNodeEditor=SV,e.buildPolicyCatalogLayout=cZ,e.buildPolicyCatalogPanel=zZ,e.buildRatingDistributionChart=ON,e.buildRoundCard=cI,e.buildRoundCatalog=CF,e.buildScheduleDateStrip=vW,e.buildScheduleGridCell=WW,e.buildScheduleInspectorPanel=eW,e.buildScheduleIssueIndex=hW,e.buildScheduleIssuesPanel=_W,e.buildSchedulePageLayout=XU,e.buildSchedulingEditorPanel=rY,e.buildSchedulingProfileLayout=oF,e.buildSetScore=Ws,e.buildSkeletonCard=bg,e.buildStructureCard=EB,e.buildStructureMinimap=Ci,e.buildTeamCard=kv,e.buildToolbar=lH,e.buildTopologyBuilderLayout=uH,e.buildTopologyCanvas=XB,e.buildTournamentCard=tg,e.buildVenueBoard=uI,e.buildVenueCard=l_,e.buildVenueSkeletonCard=E_,e.burstChart=HM,e.cModal=z,e.calculateComplement=Bs,e.competitivenessColor=vM,e.completeMagicLink=kx,e.compositions=mi,e.computeBaseRoundByEvent=aW,e.consumeMagicLink=yx,e.controlBar=cP,e.courthiveComponentsVersion=Nx,e.createAvailabilityGrid=Vz,e.createCardPopoverManager=sF,e.createCompositionEditor=fK,e.createCourtSvg=vh,e.createInlineScoringFooter=WK,e.createNotesEditor=Zm,e.createPolicyCatalog=QZ,e.createPrintCompositionEditor=vK,e.createSchedulePage=uG,e.createSchedulingEditor=aY,e.createSchedulingProfile=gI,e.destroyTipster=th,e.drawer=yd,e.dropDownButton=zN,e.emptySchedulingPolicy=uJ,e.engineToMatchUp=ps,e.extractCourtSvgSport=Dh,e.extractImageURL=Eh,e.filterCatalog=_F,e.filterMatchUpCatalog=iW,e.filterPolicyCatalog=LZ,e.findIssuesForLocator=QF,e.formatAddress=bh,e.formatCodeLabel=cJ,e.formatDateRange=wh,e.formatFeeRange=Ig,e.formatVenueLocation=xh,e.fromFactoryDrawData=JM,e.fromLegacyDraw=ZM,e.generatePreviewMatchUps=nB,e.getAgeCategoryModal=ko,e.getCategoryModal=Mo,e.getCompetitivenessBand=hM,e.getCompetitivenessFromScoreString=gM,e.getFlightProfileModal=ls,e.getGenerateTeamsModal=Gi,e.getMatchUpFormatModal=Va,e.getMatchWinner=zs,e.getMaxAllowedScore=Fs,e.getMockParticipantsModal=zi,e.getPlannedRoundKeys=yF,e.getPolicyTypeMeta=PZ,e.getPortPosition=DB,e.getRoundAt=ZF,e.getScoringConfig=vs,e.getSetFormatForIndex=Ms,e.getSetWinner=Ls,e.getVenueRounds=XF,e.groupCatalog=vF,e.groupMatchUpCatalog=uW,e.groupPolicyCatalog=RZ,e.hockeyRink=sh,e.initDrawer=bd,e.isCompletedStatus=rW,e.isExistingUserConflict=bx,e.isMatchComplete=Rs,e.isSetComplete=Is,e.isSetTiebreakOnly=Ns,e.isSetTimed=Ps,e.mapCourtToCardData=xv,e.mapDrawDefinitionToCardData=Vy,e.mapEventToCardData=Zb,e.mapMatchUpToCellData=cG,e.mapTournamentToCardData=Bg,e.mapVenueToCardData=j_,e.matchUpLabel=ZU,e.matchUpSearchKey=$U,e.maxSeverity=eI,e.mergeCourtCardConfig=N_,e.mergeDrawCardConfig=Zv,e.mergeEventCardConfig=Wy,e.mergeTournamentCardConfig=Ah,e.mergeVenueCardConfig=Ug,e.notesToolbar=Nm,e.openCompositionEditorModal=Zi,e.openScheduleCellConfigModal=$i,e.padelCourt=uh,e.participantLabel=QU,e.pickleballCourt=ch,e.renderButtons=Fx,e.renderContainer=ii,e.renderField=gn,e.renderForm=Oi,e.renderInlineMatchUp=ds,e.renderMatchUp=ei,e.renderMenu=Qm,e.renderOptions=hn,e.renderParticipant=hr,e.renderParticipantInput=Cn,e.renderRound=ti,e.renderRoundHeader=_r,e.renderSchematicMatchUp=Ti,e.renderSchematicRound=Ei,e.renderSchematicStructure=Di,e.renderScorecard=PK,e.renderStructure=ni,e.renderTeamVsHeader=FK,e.requestMagicLink=vx,e.resetScoringConfig=bs,e.resolveCourtSport=gh,e.resolveEventStatus=Lb,e.resolvePublishedComposition=gi,e.resolveTournamentStatus=Ag,e.scoringModal=cu,e.selectItem=VN,e.setScoringConfig=ys,e.shouldApplySmartComplement=Vs,e.shouldCreateNextSet=Us,e.shouldShowTiebreak=Hs,e.showCourtAvailabilityModal=Rz,e.signup=gx,e.sportFromMatchUpFormat=hh,e.standardTemplates=AH,e.syncClearVisibility=Yx,e.tennisCourt=ih,e.tipster=nh,e.toggleOverlay=QN,e.topologyToDrawOptions=rU,e.totalBuckets=Iv,e.updateHeadingSelect=Fm,e.updateTieScore=IK,e.updateToolbarState=Pm,e.validateProfile=MF,e.validateSchedulingPolicy=JZ,e.validateTopology=WV,e.validator=fn,Object.defineProperty(e,"validators",{enumerable:!0,get:function(){return Wx}}),e.verifyExisting=_x,e.wrapSearchWithClear=Jx});